24 lines
783 B
Python
24 lines
783 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)
|
|
|
|
|
|
@lru_cache
|
|
def get_settings() -> Settings:
|
|
return Settings()
|