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:
@@ -1,3 +1,4 @@
|
||||
from pydantic import field_validator
|
||||
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")
|
||||
|
||||
@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
|
||||
def is_production(self) -> bool:
|
||||
return self.environment.lower() == "production"
|
||||
|
||||
Reference in New Issue
Block a user