def replace_parameter_with_data()

in src/loading_manifest/csv_to_json.py [0:0]


def replace_parameter_with_data(root_object, keys, parameter, data_row, col_index):
    data = ''
    if col_index is not None and col_index > -1:
        data = data_row[col_index].strip()
    if len(data) == 0:
        # ignore it, will clean up later
        return

    parent_object, key = get_deepest_key_object(root_object, keys)

    result = parent_object[key].replace(parameter, data)

    # check if this needs be evaluated
    pattern = '(int|float|bool|datetime_YYYY-MM-DD|datetime_MM/DD/YYYY)\(' + re.escape(parameter) + '\)'
    if re.fullmatch(pattern, parent_object[key].strip()):
        if result.startswith('bool'):
            parent_object[key] = (data.lower() in ('true','yes','y','t','1'))
        elif result.startswith('datetime_YYYY-MM-DD'):
            input_date_time = datetime.datetime.strptime(data, '%Y-%m-%d')
            parent_object[key] = input_date_time.strftime("%Y-%m-%dT%H:%M:%SZ")
        elif result.startswith('datetime_MM/DD/YYYY'):
            parent_object[key] = datetime.datetime.strptime(data, '%m/%d/%Y').isoformat()
        elif result.startswith('int'):
            parent_object[key] = int(data)
        elif result.startswith('float'):
            parent_object[key] = float(data)
    else:
        parent_object[key] = result