lavkach3

Форк
0
/
service_config.py 
65 строк · 1.5 Кб
1
import logging
2
import os
3

4

5
from pydantic import BaseConfig
6
from pydantic_settings import BaseSettings
7

8
BaseConfig.arbitrary_types_allowed = True
9
logging.basicConfig(level=logging.INFO)
10

11

12

13
class Config(BaseSettings):
14
    APP_HOST: str = os.environ.get("APP_HOST") or 'localhost'
15
    APP_PORT: int = os.environ.get("APP_PORT") or '8000'
16
    APP_PROTOCOL: str = os.environ.get('APP_PROTOCOL') or 'http'
17
    BUS_HOST: str = os.environ.get('BUS_HOST') or '127.0.0.1'
18
    BUS_PORT: str = os.environ.get('BUS_PORT') or '8099'
19
    INTERCO_TOKEN: str = os.environ.get('INTERCO_TOKEN') or 'netu'
20

21

22
class DevelopmentConfig(Config):
23
    ...
24

25
class DockerConfig(Config):
26
    BUS_HOST: str = 'bus_app'
27
    BUS_PORT: str = '80'
28

29
class LocalConfig(Config):
30
    ...
31

32

33
class ProductionConfig(Config):
34
    ...
35

36
class ModuleEnv:
37
    ...
38

39

40
def my_import(name):
41
    """
42
    Метод для удобного импорта адаптеров по пути
43
    """
44
    components = name.split('.')
45
    mod = __import__(components[0])
46
    for comp in components[1:]:
47
        mod = getattr(mod, comp)
48
    return mod
49

50
def get_config():
51
    env = os.getenv("ENV", "local")
52
    for name, value in os.environ.items():
53
        logging.info("{0}: {1}".format(name, value))
54
        #print("{0}: {1}".format(name, value))
55
        pass
56
    config_type = {
57
        "dev": DevelopmentConfig(),
58
        "local": LocalConfig(),
59
        "docker": DockerConfig(),
60
        "prod": ProductionConfig(),
61
    }
62
    config = config_type[env]
63
    return config
64

65
config: Config = get_config()
66

67

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.