aidial_adapter_bedrock/utils/env.py (35 lines of code) (raw):

import json import os from functools import cache from typing import Dict, Optional from aidial_adapter_bedrock.utils.log_config import app_logger as log def get_env(name: str, err_msg: Optional[str] = None) -> str: if (val := os.getenv(name)) is None: raise Exception(err_msg or f"{name} env variable is not set") return val def get_str_dict(name: str) -> Dict[str, str]: if (val := os.getenv(name)) is None: return {} try: dct = json.loads(val) assert isinstance(dct, dict) assert all( isinstance(k, str) and isinstance(v, str) for k, v in dct.items() ) return dct except Exception: raise ValueError( f"{name} env variable doesn't contain a valid string to string JSON dictionary" ) @cache def get_aws_default_region() -> str: region = os.getenv("DEFAULT_REGION") if region is not None: log.warning( "DEFAULT_REGION env variable is deprecated. Use AWS_DEFAULT_REGION instead." ) return region region = os.getenv("AWS_DEFAULT_REGION") if region is not None: return region raise ValueError("AWS_DEFAULT_REGION env variable is not set")