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,
|
| | | )
|