from __future__ import annotations from contextlib import suppress from .convert import convert def get_env_var(key, as_type, env): """ Get the environment variable option. :param key: the config key requested :param as_type: the type we would like to convert it to :param env: environment variables to use :return: """ environ_key = f"VIRTUALENV_{key.upper()}" if env.get(environ_key): value = env[environ_key] with suppress(Exception): # note the converter already logs a warning when failures happen source = f"env var {environ_key}" as_type = convert(value, as_type, source) return as_type, source return None __all__ = [ "get_env_var", ]