"""Waxwing application config — env-driven, no pydantic-settings dependency.""" from __future__ import annotations import os from pathlib import Path from circuitforge_core.config.settings import load_env _ROOT = Path(__file__).resolve().parents[2] load_env(_ROOT / ".env") class Settings: API_PREFIX: str = os.environ.get("API_PREFIX", "/api/v1") PROJECT_NAME: str = "Waxwing — Gardening Assistant" CORS_ORIGINS: list[str] = [ o.strip() for o in os.environ.get("CORS_ORIGINS", "").split(",") if o.strip() ] DATA_DIR: Path = Path(os.environ.get("DATA_DIR", str(_ROOT / "data"))) DB_PATH: Path = Path(os.environ.get("DB_PATH", str(DATA_DIR / "waxwing.db"))) COORDINATOR_URL: str = os.environ.get("COORDINATOR_URL", "http://localhost:7700") CF_LICENSE_KEY: str | None = os.environ.get("CF_LICENSE_KEY") DEBUG: bool = os.environ.get("DEBUG", "false").lower() in ("1", "true", "yes") CLOUD_MODE: bool = os.environ.get("CLOUD_MODE", "false").lower() in ("1", "true", "yes") CLOUD_DATA_ROOT: Path = Path(os.environ.get("CLOUD_DATA_ROOT", "/devl/waxwing-cloud-data")) def ensure_dirs(self) -> None: self.DATA_DIR.mkdir(parents=True, exist_ok=True) settings = Settings()