2025-11-20 14:02:48 +03:00
|
|
|
'''
|
|
|
|
|
File: config.py
|
|
|
|
|
Description: Класс работы с конфигурацией приложения
|
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
__version__ = '0.1.0'
|
|
|
|
|
|
2025-11-11 12:15:50 +03:00
|
|
|
from pydantic_settings import BaseSettings, JsonConfigSettingsSource, SettingsConfigDict
|
|
|
|
|
import os
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Config(BaseSettings):
|
2025-11-20 14:02:48 +03:00
|
|
|
# Словарь с информацией о терминалах
|
2025-11-11 12:15:50 +03:00
|
|
|
terminals: dict
|
2025-11-20 14:02:48 +03:00
|
|
|
|
|
|
|
|
# Путь к папке с экземплярами терминалов
|
2025-11-11 12:15:50 +03:00
|
|
|
mt5_folder: str
|
2025-11-20 14:02:48 +03:00
|
|
|
|
|
|
|
|
# Имя исполняемого файла терминала
|
2025-11-11 12:15:50 +03:00
|
|
|
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,
|
|
|
|
|
)
|