Add field validation for configuration settings in Settings class

- Introduced a field validator to parse integer values with inline comments for access token expiration, HSTS max age, editor tip max length, and highlights max length.
- Enhanced the configuration management by ensuring cleaner input handling for specific settings.
This commit is contained in:
smueller
2026-07-09 10:59:37 +02:00
parent 1674efd587
commit 8a556b18ea

View File

@@ -1,3 +1,4 @@
from pydantic import field_validator
from pydantic_settings import BaseSettings, SettingsConfigDict from pydantic_settings import BaseSettings, SettingsConfigDict
@@ -25,6 +26,20 @@ class Settings(BaseSettings):
model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore") model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore")
@field_validator(
"access_token_expire_minutes",
"hsts_max_age",
"editor_tip_max_length",
"highlights_max_length",
mode="before",
)
@classmethod
def _parse_int_with_inline_comment(cls, value):
if isinstance(value, str):
cleaned = value.split("#", 1)[0].strip()
return int(cleaned) if cleaned else value
return value
@property @property
def is_production(self) -> bool: def is_production(self) -> bool:
return self.environment.lower() == "production" return self.environment.lower() == "production"