import os from pydantic import SecretStr from pydantic_settings import ( BaseSettings, PydanticBaseSettingsSource, SettingsConfigDict, ) from mappingservice.config_consul import ConsulConfigSettingsSource class Settings(BaseSettings): model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8") api_key: SecretStr huggingface_access_token: SecretStr hf_hub_cache: str app_env: str = "prod" @classmethod def settings_customise_sources( cls, settings_cls, init_settings: PydanticBaseSettingsSource, env_settings: PydanticBaseSettingsSource, dotenv_settings: PydanticBaseSettingsSource, file_secret_settings: PydanticBaseSettingsSource, ): settings_list = [ init_settings, env_settings, dotenv_settings, file_secret_settings, ConsulConfigSettingsSource(settings_cls), ] if os.getenv("APP_ENV", "prod").lower() == "dev": del settings_list[-1] return tuple(settings_list)