from __future__ import annotations import re SESSION_NAME_RE = re.compile(r"^[A-Za-z0-9._-]{1,64}$") def is_valid_session_name(name: str) -> bool: return SESSION_NAME_RE.fullmatch(name) is not None def validate_session_name(name: str) -> None: if not is_valid_session_name(name): raise ValueError( "session name must be 1-64 ASCII letters, numbers, '.', '_' or '-'" )