in src/loading_manifest/csv_to_json.py [0:0]
def clear_non_filled_parameters(ldm):
def clear_list(lst):
for i in range(len(lst) - 1, -1, -1):
list_val = lst[i]
if type(list_val) is dict:
clear_dict(list_val)
elif type(list_val) is list:
clear_list(list_val)
elif type(list_val) is str:
parameter_start_index = list_val.find(parameter_start_delimiter)
parameter_end_index = list_val.find(parameter_end_delimiter)
if parameter_start_index >= 0 and parameter_end_index >= 0:
# delete it
del lst[i]
# remove extra empty item in list
def is_item_empty(item):
item_is_empty = True
if type(item) is dict:
for key, val in item.items():
if not is_item_empty(val):
item_is_empty = False
break
elif type(item) is list:
for val in item:
if not is_item_empty(val):
item_is_empty = False
break
else:
item_is_empty = False
return item_is_empty
# remove extra empty item in list
for i in range(len(lst) - 1, -1, -1):
if is_item_empty(lst[i]):
del lst[i]
def clear_dict(d):
to_be_deleted = []
for key, val in d.items():
if type(val) is dict:
clear_dict(val)
if len(val) == 0:
# delete it
to_be_deleted.append(key)
elif type(val) is list:
clear_list(val)
if len(val) == 0:
# delete it
to_be_deleted.append(key)
elif type(val) is str:
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:
# delete it
to_be_deleted.append(key)
for del_key in to_be_deleted:
del d[del_key]
clear_dict(ldm)