config
Загрузка и управление конфигурацией приложения.
Загружает YAML-конфигурацию из директории configs/ относительно расположения скрипта. При ошибках завершает программу.
1""" 2Загрузка и управление конфигурацией приложения. 3 4Загружает YAML-конфигурацию из директории configs/ относительно 5расположения скрипта. При ошибках завершает программу. 6""" 7 8from abc import ABC 9from pathlib import Path 10import sys 11import yaml 12 13from loguru import logger 14 15 16class Config(ABC): 17 """Управляет загрузкой и хранением конфигурации приложения. 18 19 Загружает YAML-файл из директории configs/ и предоставляет 20 доступ к данным через атрибут yaml. 21 22 Attributes: 23 file_name: Имя файла конфигурации. 24 yaml: Загруженные данные конфигурации. 25 """ 26 27 def __init__(self, file_name: str = "config.yml"): 28 """Инициализирует загрузчик конфигурации. 29 30 Args: 31 file_name: Имя YAML-файла в директории configs/. 32 """ 33 self.file_name = file_name 34 self.load_config() 35 36 def _load_config(self): 37 """Загружает конфигурационный файл YAML. 38 39 Путь к файлу определяется относительно директории скрипта. 40 В случае ошибки завершает программу. 41 42 Returns: 43 dict: Загруженная конфигурация. 44 """ 45 try: 46 # Получаем путь к директории скрипта 47 script_dir = Path(__file__).parent 48 config_path = script_dir / "configs" / self.file_name 49 50 logger.debug(f"Попытка загрузить конфиг из: {config_path}") 51 with open(config_path, "r", encoding="utf-8") as file: 52 config = yaml.safe_load(file) 53 logger.debug("Конфигурационный файл успешно загружен") 54 55 return config 56 57 except FileNotFoundError: 58 logger.error(f"Файл конфигурации не найден: {config_path}") 59 sys.exit(1) 60 61 except yaml.YAMLError as e: 62 logger.error(f"Ошибка парсинга YAML: {e}") 63 sys.exit(1) 64 65 except Exception as e: 66 logger.error(f"Неожиданная ошибка при загрузке конфига: {e}") 67 sys.exit(1) 68 69 def load_config(self): 70 """Загружает (или перезагружает) конфигурацию из YAML-файла.""" 71 self.yaml = self._load_config() 72 # self._validate_config() 73 74 75config = Config()
class
Config(abc.ABC):
17class Config(ABC): 18 """Управляет загрузкой и хранением конфигурации приложения. 19 20 Загружает YAML-файл из директории configs/ и предоставляет 21 доступ к данным через атрибут yaml. 22 23 Attributes: 24 file_name: Имя файла конфигурации. 25 yaml: Загруженные данные конфигурации. 26 """ 27 28 def __init__(self, file_name: str = "config.yml"): 29 """Инициализирует загрузчик конфигурации. 30 31 Args: 32 file_name: Имя YAML-файла в директории configs/. 33 """ 34 self.file_name = file_name 35 self.load_config() 36 37 def _load_config(self): 38 """Загружает конфигурационный файл YAML. 39 40 Путь к файлу определяется относительно директории скрипта. 41 В случае ошибки завершает программу. 42 43 Returns: 44 dict: Загруженная конфигурация. 45 """ 46 try: 47 # Получаем путь к директории скрипта 48 script_dir = Path(__file__).parent 49 config_path = script_dir / "configs" / self.file_name 50 51 logger.debug(f"Попытка загрузить конфиг из: {config_path}") 52 with open(config_path, "r", encoding="utf-8") as file: 53 config = yaml.safe_load(file) 54 logger.debug("Конфигурационный файл успешно загружен") 55 56 return config 57 58 except FileNotFoundError: 59 logger.error(f"Файл конфигурации не найден: {config_path}") 60 sys.exit(1) 61 62 except yaml.YAMLError as e: 63 logger.error(f"Ошибка парсинга YAML: {e}") 64 sys.exit(1) 65 66 except Exception as e: 67 logger.error(f"Неожиданная ошибка при загрузке конфига: {e}") 68 sys.exit(1) 69 70 def load_config(self): 71 """Загружает (или перезагружает) конфигурацию из YAML-файла.""" 72 self.yaml = self._load_config() 73 # self._validate_config()
Управляет загрузкой и хранением конфигурации приложения.
Загружает YAML-файл из директории configs/ и предоставляет доступ к данным через атрибут yaml.
Attributes: file_name: Имя файла конфигурации. yaml: Загруженные данные конфигурации.
Config(file_name: str = 'config.yml')
28 def __init__(self, file_name: str = "config.yml"): 29 """Инициализирует загрузчик конфигурации. 30 31 Args: 32 file_name: Имя YAML-файла в директории configs/. 33 """ 34 self.file_name = file_name 35 self.load_config()
Инициализирует загрузчик конфигурации.
Args: file_name: Имя YAML-файла в директории configs/.
config =
<Config object>