from datetime import date from pydantic import BaseModel from pydantic_settings import ( BaseSettings, PydanticBaseSettingsSource, SettingsConfigDict, ) from pydantic_settings.sources import TomlConfigSettingsSource class LinkedInConfig(BaseModel): cookies: dict[str, str] class AppConfig(BaseSettings): linkedin: LinkedInConfig admin_key: str tross_key: str tross_key_valid_until: date model_config = SettingsConfigDict(populate_by_name=True, toml_file="config.toml") @classmethod def settings_customise_sources( cls, settings_cls: type[BaseSettings], init_settings: PydanticBaseSettingsSource, env_settings: PydanticBaseSettingsSource, dotenv_settings: PydanticBaseSettingsSource, file_secret_settings: PydanticBaseSettingsSource, ) -> tuple[PydanticBaseSettingsSource, ...]: toml_source = TomlConfigSettingsSource(settings_cls) return (init_settings, env_settings, toml_source, file_secret_settings) config = AppConfig() # type: ignore