コンテンツにスキップ

pytilpack.environ

必要なextra

pip install pytilpack[environ]

pytilpack.environ

環境変数ユーティリティ。

load_dotenv(path=None, override=False)

python-dotenvを使用して.envファイルを読み込む。

ソースコード位置: pytilpack/environ.py
def load_dotenv(path: str | pathlib.Path | None = None, override: bool = False) -> None:
    """python-dotenvを使用して.envファイルを読み込む。"""
    dotenv.load_dotenv(dotenv_path=path, override=override)

get_str(key, default=_UNSET, *, environ=None)

get_str(
    key: str,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> str
get_str(
    key: str,
    default: str,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> str

環境変数を文字列として取得する。

ソースコード位置: pytilpack/environ.py
def get_str(
    key: str,
    default: str | _Unset = _UNSET,
    *,
    environ: collections.abc.Mapping[str, str] | None = None,
) -> str:
    """環境変数を文字列として取得する。"""
    return _get_typed(key, lambda v: v, default, environ)

get_int(key, default=_UNSET, *, environ=None)

get_int(
    key: str,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> int
get_int(
    key: str,
    default: int,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> int

環境変数を整数として取得する。

ソースコード位置: pytilpack/environ.py
def get_int(
    key: str,
    default: int | _Unset = _UNSET,
    *,
    environ: collections.abc.Mapping[str, str] | None = None,
) -> int:
    """環境変数を整数として取得する。"""
    return _get_typed(key, lambda v: pytilpack.python.convert(v, int, 0, errors="strict"), default, environ)

get_float(key, default=_UNSET, *, environ=None)

get_float(
    key: str,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> float
get_float(
    key: str,
    default: float,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> float

環境変数を浮動小数点数として取得する。

ソースコード位置: pytilpack/environ.py
def get_float(
    key: str,
    default: float | _Unset = _UNSET,
    *,
    environ: collections.abc.Mapping[str, str] | None = None,
) -> float:
    """環境変数を浮動小数点数として取得する。"""
    return _get_typed(key, lambda v: pytilpack.python.convert(v, float, 0.0, errors="strict"), default, environ)

get_bool(key, default=_UNSET, *, environ=None)

get_bool(
    key: str,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> bool
get_bool(
    key: str,
    default: bool,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> bool

環境変数を真偽値として取得する。

ソースコード位置: pytilpack/environ.py
def get_bool(
    key: str,
    default: bool | _Unset = _UNSET,
    *,
    environ: collections.abc.Mapping[str, str] | None = None,
) -> bool:
    """環境変数を真偽値として取得する。"""
    return _get_typed(key, lambda v: pytilpack.python.convert(v, bool, False, errors="strict"), default, environ)

get_decimal(key, default=_UNSET, *, environ=None)

get_decimal(
    key: str,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> decimal.Decimal
get_decimal(
    key: str,
    default: decimal.Decimal,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> decimal.Decimal

環境変数をDecimalとして取得する。

ソースコード位置: pytilpack/environ.py
def get_decimal(
    key: str,
    default: decimal.Decimal | _Unset = _UNSET,
    *,
    environ: collections.abc.Mapping[str, str] | None = None,
) -> decimal.Decimal:
    """環境変数をDecimalとして取得する。"""
    return _get_typed(key, lambda v: _to_decimal(v, key), default, environ)

get_path(key, default=_UNSET, *, environ=None)

get_path(
    key: str,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> pathlib.Path
get_path(
    key: str,
    default: pathlib.Path,
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> pathlib.Path

環境変数をPathとして取得する。

ソースコード位置: pytilpack/environ.py
def get_path(
    key: str,
    default: pathlib.Path | _Unset = _UNSET,
    *,
    environ: collections.abc.Mapping[str, str] | None = None,
) -> pathlib.Path:
    """環境変数をPathとして取得する。"""
    return _get_typed(key, lambda v: pathlib.Path(v).resolve(), default, environ)

get_list(key, separator=',', *, default=_UNSET, environ=None)

get_list(
    key: str,
    separator: str = ",",
    *,
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> list[str]
get_list(
    key: str,
    separator: str = ",",
    *,
    default: list[str],
    environ: collections.abc.Mapping[str, str]
    | None = None,
) -> list[str]

環境変数をリストとして取得する。

セパレータで分割し、各要素の前後の空白を除去し、空文字列を除外する。

ソースコード位置: pytilpack/environ.py
def get_list(
    key: str,
    separator: str = ",",
    *,
    default: list[str] | _Unset = _UNSET,
    environ: collections.abc.Mapping[str, str] | None = None,
) -> list[str]:
    """環境変数をリストとして取得する。

    セパレータで分割し、各要素の前後の空白を除去し、空文字列を除外する。
    """
    value = (os.environ if environ is None else environ).get(key)
    if value is None:
        if isinstance(default, _Unset):
            raise ValueError(f"環境変数 {key} が設定されていません")
        return default
    return [s for s in (item.strip() for item in value.split(separator)) if s]

get_or_none(key, *, environ=None)

環境変数を取得する。未設定の場合はNoneを返す。

ソースコード位置: pytilpack/environ.py
def get_or_none(key: str, *, environ: collections.abc.Mapping[str, str] | None = None) -> str | None:
    """環境変数を取得する。未設定の場合はNoneを返す。"""
    return (os.environ if environ is None else environ).get(key)