Example #1
0
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
Example #3
0
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