def get_config_value()

in backend/bms_app/settings.py [0:0]


def get_config_value(attr, default=None):
    """Retrive config value from env or config file."""
    value = None

    def read_env():
        return os.environ.get(attr)

    def read_cfg():
        return getattr(cfg, attr, None) if cfg else None

    def read_default():
        return default

    for func in (read_env, read_cfg, read_default):
        value = func()

        if value is not None:
            break

    if value is None:
        raise ValueError(f'missing {attr} setting')

    return value