py.lib.aw_config

Yohn Y. 2024-05-05 Parent:b76a704f31b1 Child:cafe05bbad21

3:bac1fe0751a9 Browse Files

. Декорируем возможные ошибки в чтении файла конфигурации.

pyproject.toml setup.py src/aw_config/file.py

     1.1 --- a/pyproject.toml	Sat May 04 20:36:03 2024 +0300
     1.2 +++ b/pyproject.toml	Sun May 05 11:32:45 2024 +0300
     1.3 @@ -4,7 +4,7 @@
     1.4  
     1.5  [project]
     1.6  name = "aw_config"
     1.7 -version = "0.202405.7"
     1.8 +version = "0.202405.8"
     1.9  description = "Модуль поддержки процесса конфигурирования приложения"
    1.10  #readme = "README.md"
    1.11  requires-python = ">=3.9"
     2.1 --- a/setup.py	Sat May 04 20:36:03 2024 +0300
     2.2 +++ b/setup.py	Sun May 05 11:32:45 2024 +0300
     2.3 @@ -3,7 +3,7 @@
     2.4  
     2.5  setup(
     2.6      name='aw_config',
     2.7 -    version='0.202405.7',
     2.8 +    version='0.202405.8',
     2.9      packages=['aw_config'],
    2.10      package_dir={'aw_config': 'src/aw_config'},
    2.11      url='https://devel.a0fs.ru/py.lib.aw_config',
     3.1 --- a/src/aw_config/file.py	Sat May 04 20:36:03 2024 +0300
     3.2 +++ b/src/aw_config/file.py	Sun May 05 11:32:45 2024 +0300
     3.3 @@ -114,7 +114,17 @@
     3.4          """\
     3.5          Производим разбор файла конфигурации и создаём корневой раздел конфигурации
     3.6          """
     3.7 -        return ConfigFileContent(toml.load(self.file_name))
     3.8 +        try:
     3.9 +            return ConfigFileContent(toml.load(self.file_name))
    3.10 +
    3.11 +        except OSError as e:
    3.12 +            raise ConfigFileError(f'Ошибка чтения файла "{self.file_name}": {e}')
    3.13 +
    3.14 +        except toml.TomlDecodeError as e:
    3.15 +            raise ConfigFileError(f'Ошибка в разборе файла конфигурации: {e}')
    3.16 +
    3.17 +        except ValueError as e:
    3.18 +            raise ConfigFileError(f'Ошибка разбора файла конфигурации: {ConfigFileError.fmt_error(e)}')
    3.19  
    3.20      def __exit__(self, exc_type, exc_val, exc_tb):
    3.21          pass