Files
RadioPropagationApi/api/app/config.py
T
2026-06-23 13:14:27 +03:00

26 lines
905 B
Python

from functools import lru_cache
from pathlib import Path
from pydantic import Field
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
app_name: str = "RF Propagation API"
api_v1_prefix: str = "/api/v1"
database_url: str = "postgresql+psycopg://radio:radio@postgis:5432/radio"
redis_url: str = "redis://redis:6379/0"
dem_path: Path = Field(default=Path("/data/dem"))
landcover_path: Path = Field(default=Path("/data/landcover"))
canopy_path: Path = Field(default=Path("/data/canopy"))
buildings_query_limit: int = Field(default=5000, gt=0)
p833_gamma_db_per_m: float = Field(default=0.15, ge=0)
p833_max_attenuation_db: float = Field(default=25.0, gt=0)
@lru_cache
def get_settings() -> Settings:
return Settings()