diff --git a/app/config.py b/app/config.py index 361847b..6ad0184 100644 --- a/app/config.py +++ b/app/config.py @@ -1,28 +1 @@ -from functools import lru_cache - -from pydantic import Field, model_validator -from pydantic_settings import BaseSettings, SettingsConfigDict - - -class Settings(BaseSettings): - model_config = SettingsConfigDict(env_prefix="MONITOR_", env_file=".env", extra="ignore") - - log_level: str = "INFO" - total_timeout_seconds: float = Field(10.0, gt=0, le=60) - connect_timeout_seconds: float = Field(3.0, gt=0, le=30) - read_timeout_seconds: float = Field(5.0, gt=0, le=30) - max_redirects: int = Field(5, ge=0, le=10) - user_agent: str = "endpoint-monitor/0.1" - - @model_validator(mode="after") - def timeout_parts_fit(self) -> "Settings": - if self.connect_timeout_seconds > self.total_timeout_seconds: - raise ValueError("connect timeout cannot exceed total timeout") - if self.read_timeout_seconds > self.total_timeout_seconds: - raise ValueError("read timeout cannot exceed total timeout") - return self - - -@lru_cache -def get_settings() -> Settings: - return Settings() +"""Typed settings."""