| '''
|
| File: config.py
|
| Description: Класс работы с конфигурацией приложения
|
| '''
|
|
|
| __version__ = '0.2.0'
|
|
|
| from pydantic_settings import BaseSettings, JsonConfigSettingsSource, SettingsConfigDict
|
| import os
|
|
|
|
|
| class Config(BaseSettings):
|
| # Словарь с информацией о терминалах
|
| terminals: dict
|
|
|
| # Путь к папке с экземплярами терминалов
|
| mt5_folder: str
|
|
|
| # Имя исполняемого файла терминала
|
| mt5_exe: str
|
|
|
| # Путь к общей базе SQLite (папка Common/Files, зависит от профиля Windows)
|
| database: 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,
|
| )
|