mt5-manager/config.py
2025-11-20 14:02:48 +03:00

41 lines
1.1 KiB
Python

'''
File: config.py
Description: Класс работы с конфигурацией приложения
'''
__version__ = '0.1.0'
from pydantic_settings import BaseSettings, JsonConfigSettingsSource, SettingsConfigDict
import os
class Config(BaseSettings):
# Словарь с информацией о терминалах
terminals: dict
# Путь к папке с экземплярами терминалов
mt5_folder: str
# Имя исполняемого файла терминала
mt5_exe: str
model_config = SettingsConfigDict()
@classmethod
def settings_customise_sources(
cls,
settings_cls,
init_settings,
env_settings,
dotenv_settings,
file_secret_settings,
):
# Получаем путь к файлу из переменной окружения
config_file = os.getenv("MT5_MANAGER_CONFIG_FILE", "config.json")
return (
init_settings,
JsonConfigSettingsSource(settings_cls, json_file=config_file),
env_settings,
dotenv_settings,
file_secret_settings,
)