Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import os | |
| from dataclasses import dataclass | |
| from functools import lru_cache | |
| from pathlib import Path | |
| from typing import List | |
| def _split_csv(value: str | None, *, fallback: List[str]) -> List[str]: | |
| if not value: | |
| return fallback | |
| return [item.strip() for item in value.split(",") if item.strip()] | |
| class Settings: | |
| app_name: str | |
| api_prefix: str | |
| cors_origins: List[str] | |
| storage_dir: Path | |
| max_upload_mb: int | |
| frontend_base_url: str | |
| pdf_timeout_ms: int | |
| def get_settings() -> Settings: | |
| return Settings( | |
| app_name=os.getenv("APP_NAME", "Starter API"), | |
| api_prefix=os.getenv("API_PREFIX", "/api"), | |
| cors_origins=_split_csv( | |
| os.getenv("CORS_ORIGINS"), fallback=["http://localhost:5173"] | |
| ), | |
| storage_dir=Path(os.getenv("STORAGE_DIR", "data")).resolve(), | |
| max_upload_mb=int(os.getenv("MAX_UPLOAD_MB", "50")), | |
| frontend_base_url=os.getenv("FRONTEND_BASE_URL", "http://localhost:5173"), | |
| pdf_timeout_ms=int(os.getenv("PDF_TIMEOUT_MS", "90000")), | |
| ) | |