refactored the base classes

This commit is contained in:
Hellow 2023-04-15 12:35:11 +02:00
parent 6269667798
commit 7599e0db21
2 changed files with 18 additions and 2 deletions

View File

@ -2,6 +2,7 @@ from typing import Union, Tuple, Dict, Iterable, List
import logging import logging
import os import os
from ..exception.config import SettingNotFound, SettingValueError
from ..path_manager import LOCATIONS from ..path_manager import LOCATIONS
from .base_classes import Description, Attribute, Section, EmptyLine, COMMENT_PREFIX from .base_classes import Description, Attribute, Section, EmptyLine, COMMENT_PREFIX
from .audio import AUDIO_SECTION from .audio import AUDIO_SECTION
@ -44,10 +45,16 @@ class Config:
self._length += 1 self._length += 1
def set_name_to_value(self, name: str, value: str): def set_name_to_value(self, name: str, value: str):
"""
:raises SettingValueError, SettingNotFound:
:param name:
:param value:
:return:
"""
if name not in self._name_section_map: if name not in self._name_section_map:
raise KeyError(f"There is no such setting, as: {name}") raise SettingNotFound(setting_name=name)
self._name_section_map[name][name] = value self._name_section_map[name].modify_setting(setting_name=name, new_value=value)
def __len__(self): def __len__(self):
return self._length return self._length
@ -57,6 +64,12 @@ class Config:
return "\n\n".join(str(element) for element in self.config_elements) return "\n\n".join(str(element) for element in self.config_elements)
def _parse_conf_line(self, line: str, index: int): def _parse_conf_line(self, line: str, index: int):
"""
:raises SettingValueError, SettingNotFound:
:param line:
:param index:
:return:
"""
line = line.strip() line = line.strip()
if line.startswith(COMMENT_PREFIX): if line.startswith(COMMENT_PREFIX):
return return

View File

@ -6,6 +6,9 @@ class SettingNotFound(SettingException):
def __init__(self, setting_name: str): def __init__(self, setting_name: str):
self.setting_name = setting_name self.setting_name = setting_name
def __str__(self):
return f"Setting '{self.setting_name}' not found."
class SettingValueError(SettingException): class SettingValueError(SettingException):
def __init__(self, setting_name: str, setting_value: str, rule: str): def __init__(self, setting_name: str, setting_value: str, rule: str):