py.lib.aw_config

Yohn Y. 2024-05-14 Parent:bece3a8a67a5 Child:493b42d19c8c

7:26be458b26bb Go to Latest

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

+ Добавлен объект, отвечающий за неопределённое состояние параметра, для отличия от заданного пользователем неопределённого значения (присвоенного `None`) параметра.

History
     1.1 --- a/src/aw_config/env.py	Sun May 05 15:03:17 2024 +0300
     1.2 +++ b/src/aw_config/env.py	Tue May 14 09:44:41 2024 +0300
     1.3 @@ -2,7 +2,9 @@
     1.4  
     1.5  from os import environ as sysenv
     1.6  from typing import Optional, Any
     1.7 +
     1.8  from .error import Error
     1.9 +from ._lib import _UNDEFINED
    1.10  
    1.11  
    1.12  class EnvConfigError(Error):
    1.13 @@ -10,7 +12,7 @@
    1.14          super().__init__(f'Ошибка в параметре: {param_name} - {message}')
    1.15  
    1.16  
    1.17 -def get_env(name: str, type_name: type, default: Optional[Any] = None, mandatory: bool = False):
    1.18 +def get_env(name: str, type_name: type, default: Optional[Any] = _UNDEFINED, mandatory: bool = False):
    1.19      try:
    1.20          return type_name(sysenv[name])
    1.21  
    1.22 @@ -18,7 +20,7 @@
    1.23          raise EnvConfigError(name, f'Ошибка преобразования типа - {e}')
    1.24  
    1.25      except KeyError:
    1.26 -        if default is None and not mandatory:
    1.27 +        if default is _UNDEFINED and mandatory:
    1.28              raise EnvConfigError(name, 'Не установлен параметр')
    1.29  
    1.30          else: