from __future__ import annotations import os from pathlib import Path from dotenv import load_dotenv def load_secrets(secrets_path: Path) -> None: """Load a source-local secrets file plus an optional repo-root .env.""" load_dotenv(secrets_path) load_dotenv(".env") def require_env(name: str) -> str: value = os.environ.get(name) if not value: raise RuntimeError(f"required environment variable is not set: {name}") return value