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/.

file_name
def load_config(self):
70    def load_config(self):
71        """Загружает (или перезагружает) конфигурацию из YAML-файла."""
72        self.yaml = self._load_config()
73        # self._validate_config()

Загружает (или перезагружает) конфигурацию из YAML-файла.

config = <Config object>