27 lines
810 B
Python
27 lines
810 B
Python
import os
|
|
|
|
|
|
def env_bool(name: str, default: bool = False) -> bool:
|
|
raw = os.getenv(name)
|
|
if raw is None:
|
|
return default
|
|
if raw in ("1", "true", "True", "yes", "YES", "on", "ON"):
|
|
return True
|
|
if raw in ("0", "false", "False", "no", "NO", "off", "OFF"):
|
|
return False
|
|
raise RuntimeError(f"{name} must be boolean, got {raw!r}")
|
|
|
|
|
|
def env_int(name: str, default: int, min_value: int, max_value: int) -> int:
|
|
raw = os.getenv(name)
|
|
if raw is None:
|
|
return default
|
|
try:
|
|
value = int(raw)
|
|
except ValueError as exc:
|
|
raise RuntimeError(f"{name} must be int, got {raw!r}") from exc
|
|
if not (min_value <= value <= max_value):
|
|
raise RuntimeError(
|
|
f"{name}={value} outside [{min_value}, {max_value}]")
|
|
return value
|