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