in src/loading_manifest/csv_to_json.py [0:0]
def parse_template_parameters(root_object, parameters_object):
def parse_str(root_object, keys, val, root_list, parameters_object):
val = val.strip()
parameter_start_index = val.find(parameter_start_delimiter)
parameter_end_index = val.find(parameter_end_delimiter)
if parameter_start_index >= 0 and parameter_end_index >= 0:
parameter = val[parameter_start_index:parameter_end_index + len(parameter_end_delimiter)]
if len(parameter) > 0:
parameter_recs = parameters_object.get(parameter)
if parameter_recs is None:
parameter_recs = []
parameters_object[parameter] = parameter_recs
parameter_recs.append((root_object, keys, root_list))
val_left = val[parameter_end_index + len(parameter_end_delimiter):]
if len(val_left) > 0:
parse_str(root_object, keys, val_left, root_list, parameters_object)
def parse_dict(parent_object, root_object, keys, root_list, parameters_object):
for key, val in parent_object.items():
new_keys = list(keys)
new_keys.append(key)
if type(val) is dict:
parse_dict(val, root_object, new_keys, root_list, parameters_object)
if type(val) is list:
if len(val) == 1:
new_root_list = list(root_list)
new_root_list.append((root_object, new_keys))
new_root_object = {0: val[0]}
parse_dict(new_root_object, new_root_object, [], new_root_list, parameters_object)
if type(val) is str:
f_root_list = list(root_list)
parse_str(root_object, new_keys, val, f_root_list, parameters_object)
parse_dict(root_object, root_object, [], [], parameters_object)