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