lavkach3

Форк
0
/
front_config.py 
75 строк · 1.7 Кб
1
import logging
2
import os
3

4
from dotenv import load_dotenv
5
from pydantic import BaseConfig
6

7
from core.db_config import Config as CoreConfig
8

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

12
load_dotenv()
13

14

15
def my_import(name):
16
    """
17
    Метод для удобного импорта адаптеров по пути
18
    """
19
    components = name.split('.')
20
    mod = __import__(components[0])
21
    for comp in components[1:]:
22
        mod = getattr(mod, comp)
23
    return mod
24

25

26
class Config(CoreConfig):
27
    BROKER_PATH: str = 'app.front.front_server:app'
28
    services: dict = {
29
        'bus': {
30
            'DOMAIN': f'{os.environ.get("BUS_DOMAIN")}' or '127.0.0.1',
31
            'PORT': '8099',
32
        },
33
        'basic': {
34
            'DOMAIN': f'http://{os.environ.get("BASIC_DOMAIN")}' or '127.0.0.1',
35
            'PORT': '8001',
36
        },
37
        'inventory': {
38
            'DOMAIN': f'http://{os.environ.get("INVENTORY_DOMAIN")}' or '127.0.0.1',
39
            'PORT': '8002',
40
        }
41
    }
42
    css_engine: str = '1tailwind'
43
    style: str = 'good_html'
44

45

46
class DevelopmentConfig(Config):
47
    ...
48
class DockerConfig(Config):
49
    APP_HOST: str = 'front_app'
50
    APP_PORT: int = '80'
51

52
class LocalConfig(Config):
53
    ...
54

55

56
class ProductionConfig(Config):
57
    ...
58

59

60
def get_config():
61
    env = os.getenv("ENV", "local")
62
    for name, value in os.environ.items():
63
        # logging.info("{0}: {1}".format(name, value))
64
        # print("{0}: {1}".format(name, value))
65
        pass
66
    config_type = {
67
        "dev": DevelopmentConfig(),
68
        "local": LocalConfig(),
69
        "docker": DockerConfig(),
70
        "prod": ProductionConfig(),
71
    }
72
    return config_type[env]
73

74

75
config: Config = get_config()
76

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

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

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

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