class SQLTranslatorConfig: """ Provide access to SQL Translator config values. """ def __init__(self, env: dict = os.environ): self.store = EnvReader(var_store=env, log=logging.getLogger(__name__).debug) def default_limit(self) -> int: var = IntVar(DEFAULT_LIMIT_VAR, default_value=FALLBACK_LIMIT) return self.store.safe_read(var) def keep_raw_entity(self) -> bool: var = BoolVar(KEEP_RAW_ENTITY_VAR, False) return self.store.safe_read(var)
def configured_insert_max_size_in_bytes() -> Optional[int]: """ Read the insert max size env var and return its value in bytes if set to a parsable value or ``None`` otherwise. Notice if a value is present but is garbage we still return ``None`` but we also log a warning. :return: the max size in bytes if available, ``None`` otherwise. """ env_reader = EnvReader(log=_log().debug) parsed = env_reader.safe_read(BitSizeVar(INSERT_MAX_SIZE_VAR, None)) if parsed: return int(parsed.to_Byte()) return None
def log_level() -> int: """ Read the log level to use from the ``LOGLEVEL`` environment variable. If the variable isn't set, return the info level ID. If set but its value isn't one of the strings recognised by the ``logging`` lib (case-insensitive comparison), then return the info level ID again. Otherwise return the corresponding log level ID. :return: one of the log level IDs known to the ``logging`` lib. """ r = EnvReader() level_name = r.safe_read(LOG_LEVEL_VAR).upper() try: return logging._nameToLevel[level_name] except KeyError: return logging.INFO