File size: 1,222 Bytes
3370983 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
"""
Main application settings.
This module aggregates all settings into a single Settings class.
For most use cases, import individual settings directly:
from src.backend.configs import get_cv_settings, get_openai_settings
cv = get_cv_settings()
openai = get_openai_settings()
"""
from functools import lru_cache
from pydantic import Field
from pydantic_settings import BaseSettings, SettingsConfigDict
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
from .cv import CVUploadSettings
from .database import DatabaseSettings
from .openai import OpenAISettings
class Settings(BaseSettings):
"""
Aggregated application settings.
Combines all configuration in one place. Individual settings
can also be accessed via their dedicated getter functions.
"""
model_config = SettingsConfigDict(
extra="ignore",
)
cv: CVUploadSettings = Field(default_factory=CVUploadSettings)
database: DatabaseSettings = Field(default_factory=DatabaseSettings)
openai: OpenAISettings = Field(default_factory=OpenAISettings)
@lru_cache
def get_settings() -> Settings:
"""Get cached main settings instance."""
return Settings()
|