py.lib.aw_config

Yohn Y. 2024-10-30 Parent:75523df5b946

14:23acfa856975 Go to Latest

py.lib.aw_config/src/aw_config/env.py

.. 0.202410.2 . Подгонка системы сборки под текущую версию Python . Небольшой рефакторинг

History
1 # coding: utf-8
3 from os import environ as sysenv
4 from typing import Optional, Any
6 from .error import Error
7 from ._lib import _UNDEFINED
10 class EnvConfigError(Error):
11 def __init__(self, param_name: str, message: Any):
12 super().__init__(f'Ошибка в параметре: {param_name} - {message}')
15 def get_env(name: str, type_name: type, default: Optional[Any] = _UNDEFINED, mandatory: bool = False):
16 try:
17 return type_name(sysenv[name])
19 except (ValueError, TypeError) as e:
20 raise EnvConfigError(name, f'Ошибка преобразования типа - {e}')
22 except KeyError:
23 if default is not _UNDEFINED:
24 return default
26 elif mandatory:
27 raise EnvConfigError(name, 'Не установлен параметр')
29 else:
30 return None