Skip to content

vllm.envs_impl

Module-level getattr that reads env vars with automatic type conversion.

Uses pydantic's TypeAdapter for coercion and field validators (BeforeValidator) declared via Annotated types in _variables.py.

Use import vllm.envs_impl as envs to access environment variables.

Modules:

Name Description
utils

Utility functions for environment variable handling.

_EnvsModuleWrapper

Module wrapper to support "VAR_NAME" in envs syntax.

Source code in vllm/envs_impl/__init__.py
class _EnvsModuleWrapper:
    """Module wrapper to support ``"VAR_NAME" in envs`` syntax."""

    def __init__(self, original_module):
        self._original_module = original_module

    def __getattr__(self, name: str) -> Any:
        if name in self._original_module.__dict__:
            return self._original_module.__dict__[name]
        return self._original_module.__dict__["__getattr__"](name)

    def __contains__(self, env_var_name: str) -> bool:
        return env_var_name in os.environ

    def __dir__(self):
        return list(self._original_module.__dict__.get("_env_fields", {}).keys())

__getattr__

__getattr__(name: str) -> Any

Read an env var, run its BeforeValidator (if any), else return the default.

Source code in vllm/envs_impl/__init__.py
def __getattr__(name: str) -> Any:
    """Read an env var, run its BeforeValidator (if any), else return the default."""
    if name not in _env_fields:
        raise AttributeError(f"module {__name__!r} has no attribute {name!r}")

    env_value = os.getenv(name)

    if env_value is None:
        field = _env_fields[name]
        if field.default is not PydanticUndefined:
            return field.default
        if field.default_factory is not None:
            return field.default_factory()  # type: ignore[call-arg]
        raise ValueError(f"Env var {name!r} has no default value")  # shouldn't happen

    return _adapters[name].validate_python(env_value)

_is_envs_cache_enabled

_is_envs_cache_enabled() -> bool

Return True if getattr is currently wrapped with functools.cache.

Source code in vllm/envs_impl/__init__.py
def _is_envs_cache_enabled() -> bool:
    """Return True if __getattr__ is currently wrapped with functools.cache."""
    return hasattr(__getattr__, "__wrapped__")

disable_envs_cache

disable_envs_cache() -> None

Revert enable_envs_cache() so env vars are read fresh.

Source code in vllm/envs_impl/__init__.py
def disable_envs_cache() -> None:
    """Revert enable_envs_cache() so env vars are read fresh."""
    global __getattr__
    if hasattr(__getattr__, "__wrapped__"):
        __getattr__ = __getattr__.__wrapped__

enable_envs_cache

enable_envs_cache() -> None

Cache env var reads so each variable is parsed only once.

Source code in vllm/envs_impl/__init__.py
def enable_envs_cache() -> None:
    """Cache env var reads so each variable is parsed only once."""
    global __getattr__
    if not hasattr(__getattr__, "__wrapped__"):
        __getattr__ = functools.cache(__getattr__)

is_set

is_set(env_var_name: str) -> bool

Check if an environment variable is explicitly set (in os.environ).

Source code in vllm/envs_impl/__init__.py
def is_set(env_var_name: str) -> bool:
    """Check if an environment variable is explicitly set (in os.environ)."""
    return env_var_name in os.environ

maybe_convert_bool

maybe_convert_bool(val: str | bool | None) -> bool | None

Convert a string like "1"/"true" to bool. Pass through bool/None.

Source code in vllm/envs_impl/__init__.py
def maybe_convert_bool(val: str | bool | None) -> bool | None:
    """Convert a string like "1"/"true" to bool. Pass through bool/None."""
    if isinstance(val, bool):
        return val
    if val is None:
        return None
    if isinstance(val, str):
        return val.lower() in ("1", "true", "yes", "on")
    return bool(val)