py.lib.aw_config

Yohn Y. 2024-05-04 Child:26be458b26bb

0:bece3a8a67a5 Go to Latest

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

.. init

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