File size: 1,113 Bytes
f006f31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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)