SPB Git

spb/wp41_uqo

Public
779 B · 23 lines python
1"""YAML config loading with environment overrides (paths only; no secrets)."""2from __future__ import annotations34import os5from pathlib import Path67import yaml8910def load_config(path: str | Path) -> dict:11    cfg = yaml.safe_load(Path(path).read_text())12    cfg.setdefault("paths", {})13    cache = os.environ.get("WP41_CACHE", cfg["paths"].get("cache", "~/wp41-cache"))14    cfg["paths"]["cache"] = os.path.expanduser(cache) if cache.startswith("~") or cache.startswith("/") else str(Path(path).resolve().parent.parent / cache)15    cfg["paths"]["root"] = str(Path(path).resolve().parent.parent)16    return cfg171819def results_dir(cfg: dict, *parts: str) -> Path:20    p = Path(cfg["paths"]["root"]) / "results" / Path(*parts)21    p.mkdir(parents=True, exist_ok=True)22    return p23
Files · main
Menu

Theme