Source code for mixinforge.utility_functions.env_var_name_validator

"""Environment variable name validation helpers.

Provides a strict, portable validator for environment variable names to keep
usage consistent across macOS, Windows, and Ubuntu.
"""
import re
from typing import Final

__all__ = ["is_valid_env_name"]

_STRICT_ENV_NAME_PATTERN: Final[re.Pattern[str]] = re.compile(
    r"^[A-Za-z_][A-Za-z0-9_]*$"
)


[docs] def is_valid_env_name(name: str) -> bool: """Validate a portable environment variable name. Enforces a strict, shell-safe subset (POSIX identifiers) so names are portable across macOS, Windows, and Ubuntu. Names must start with an ASCII letter or underscore and contain only ASCII letters, digits, and underscores. Args: name: Candidate environment variable name. Returns: True if name is a valid portable identifier, False otherwise. """ if not isinstance(name, str): return False return _STRICT_ENV_NAME_PATTERN.fullmatch(name) is not None