def get_value_from_etl_config()

in source/lambda/es_loader/index.py [0:0]


def get_value_from_etl_config(logtype, key, keytype=None):
    try:
        if keytype is None:
            value = etl_config[logtype][key]
        elif keytype == 'bool':
            value = etl_config[logtype].getboolean(key)
        elif keytype == 'int':
            value = etl_config[logtype].getint(key)
        elif keytype == 're':
            rawdata = etl_config[logtype][key]
            if rawdata:
                value = re.compile(rawdata)
            else:
                value = ''
        elif keytype == 'list':
            temp = etl_config[logtype][key]
            if temp.startswith('['):
                value = [x.strip() for x in temp.strip('[|]').split(',')]
            else:
                value = temp.split()
        else:
            value = ''
    except KeyError:
        logger.exception('unknown error')
        raise KeyError("Can't find the key in logconfig")
    except re.error:
        logger.exception(f'invalid regex pattern for {key}')
        raise Exception(f'invalid regex pattern for {key}') from None
    except Exception:
        logger.exception('unknown error')
        raise Exception('unknown error') from None
    return value