Source code for orghandbookapi.loader
from pydantic_settings import BaseSettings
from orghandbookapi.config_loader import ConfigReader, ConfigType
[docs]
class ConfigRunSectionModel(BaseSettings):
"""Модель конфигурации секции 'Run'."""
host: str = "127.0.0.1"
port: int = 8000
[docs]
class ConfigDatabaseSectionModel(BaseSettings):
"""Модель конфигурации секции 'Database'."""
host: str = "localhost"
port: int = 5432
name: str = "orghandbookapi"
user: str = "admin"
password: str = "password" # noqa: S105
url_format: str = "postgresql+asyncpg://{user}:{password}@{host}:{port}/{name}"
expire_on_commit: bool = False
[docs]
class ConfigSecuritySectionModel(BaseSettings):
"""Модель конфигурации секции 'Security'."""
api_key: str = "secret-static-api-key"
api_key_header: str = "X-API-Key"
[docs]
class ConfigModel(BaseSettings):
"""Модель конфигурации."""
run: ConfigRunSectionModel
database: ConfigDatabaseSectionModel
security: ConfigSecuritySectionModel
[docs]
def load_config() -> ConfigModel:
"""
Загрузка конфигурации в модель.
Returns:
ConfigModel: модель конфигурации
"""
config_reader = ConfigReader("orghandbookapi.toml", ConfigType.TOML)
return ConfigModel(**config_reader.config)
config = load_config()