""" Переменные окружения для контейнеризации. """ import os from .mod_result import Result def env_str(name_env: str) -> Result[str]: """Возвращает строку из переменной окружения""" param = os.getenv(name_env) if param is None or param == "": return Result(err=f"env_str(): env {name_env} not set") return Result(result=param) def env_int(name_env: str) -> Result[int]: """Возвращает целое из переменной окружения""" param: str | None = os.getenv(name_env) if param is None or param == "": return Result(err=f"env_int(): env {name_env} not set") iparam = 0 err = "" try: iparam = int(param) # type: ignore except TypeError as e: err = f"env_int(): in convert str to int, err=\n\t{e}" except ValueError as e: err = f"env_int(): in convert str to int, err=\n\t{e}" if err != "": return Result(err=err) return Result(result=iparam) def env_float(name_env: str) -> Result[float]: """Возвращает вещественное из переменной окружения""" param: str | None = os.getenv(name_env) if param is None or param == "": return Result(err=f"env_float(): env {name_env} not set") iparam = 0 err = "" try: iparam = float(param) # type: ignore except TypeError as e: err = f"env_float(): in convert str to float, err=\n\t{e}" except ValueError as e: err = f"env_float(): in convert str to float, err=\n\t{e}" if err != "": return Result(err=err) return Result(result=iparam) def env_bool(name_env: str) -> Result[bool]: """Возвращает строку из переменной окружения""" param: str | None = os.getenv(name_env) if param is None: return Result(err=f"env_bool(): env {name_env} is None") param = param.upper() if param == "TRUE": return Result(result=True) if param == "FALSE": return Result(result=False) return Result(err=f"env_bool(): env {name_env} bad, val={param}")