Skip to content

guidellm.utils.env_validator

get_valid_env_vars(*models, ctx=None)

Get all valid environment variable names from Click context and Settings.

Collects environment variable names that are recognized by the application.

Parameters:

Name Type Description Default
models type[BaseModel]

Pydantic model classes to extract valid env var names from.

()
ctx Context | None

Click context for extracting Click option env vars.

None

Returns:

Type Description
tuple[set[str], set[str]]

Tuple of (exact env var names, valid env var prefixes).

Source code in src/guidellm/utils/env_validator.py
def get_valid_env_vars(
    *models: type[BaseModel],
    ctx: click.Context | None = None,
) -> tuple[set[str], set[str]]:
    """
    Get all valid environment variable names from Click context and Settings.

    Collects environment variable names that are recognized by the application.

    :param models: Pydantic model classes to extract valid env var names from.
    :param ctx: Click context for extracting Click option env vars.
    :return: Tuple of (exact env var names, valid env var prefixes).
    """
    valid_envs: set[str] = set()
    valid_prefixes: set[str] = set()

    if ctx is not None:
        valid_envs.update(_extract_click_env_vars(ctx))

    for model in models:
        envs, prefixes = _extract_model_env_vars(model)
        valid_envs.update(envs)
        valid_prefixes.update(prefixes)

    return valid_envs, valid_prefixes

list_set_env(prefix='GUIDELLM_')

List all set environment variables prefixed with the given prefix.

Parameters:

Name Type Description Default
prefix str

The prefix to filter environment variables.

'GUIDELLM_'

Returns:

Type Description
set[str]

List of environment variable names that are set with the given prefix.

Source code in src/guidellm/utils/env_validator.py
def list_set_env(prefix: str = "GUIDELLM_") -> set[str]:
    """
    List all set environment variables prefixed with the given prefix.

    :param prefix: The prefix to filter environment variables.
    :return: List of environment variable names that are set with the given prefix.
    """
    return {key for key in os.environ if key.startswith(prefix)}

validate_env_vars(*models, ctx=None)

Validate if the given environment variable name is recognized.

Checks if the environment variable is in the set of valid environment variables extracted from the Click context and Pydantic Settings.

Parameters:

Name Type Description Default
models type[BaseModel]

Pydantic model classes to extract valid env var names from.

()
ctx Context | None

Click context for extracting Click option env vars.

None

Returns:

Type Description
tuple[set[str], set[str]]

Tuple of (invalid env vars, valid env vars) that are currently set.

Source code in src/guidellm/utils/env_validator.py
def validate_env_vars(
    *models: type[BaseModel],
    ctx: click.Context | None = None,
) -> tuple[set[str], set[str]]:
    """
    Validate if the given environment variable name is recognized.

    Checks if the environment variable is in the set of valid environment variables
    extracted from the Click context and Pydantic Settings.

    :param models: Pydantic model classes to extract valid env var names from.
    :param ctx: Click context for extracting Click option env vars.
    :return: Tuple of (invalid env vars, valid env vars) that are currently set.
    """
    set_vars = list_set_env()
    valid_vars, valid_prefixes = get_valid_env_vars(*models, ctx=ctx)

    def _is_valid(env_var: str) -> bool:
        return env_var in valid_vars or any(
            env_var.startswith(p) for p in valid_prefixes
        )

    invalid_set_vars, valid_set_vars = partition(_is_valid, set_vars)
    return set(invalid_set_vars), set(valid_set_vars)