Simplified and documented parse_attribute function.
This commit is contained in:
@ -39,19 +39,18 @@ def get_review_status(filename_path):
|
|||||||
workflow_steps.append(line)
|
workflow_steps.append(line)
|
||||||
return workflow_steps[-1]
|
return workflow_steps[-1]
|
||||||
|
|
||||||
def parse_attribute(attr_value):
|
def parse_attribute(attr_value : dict):
|
||||||
|
"Parse a dictionary attribute into an equivalent numpy structured array, which compatible with compound HDF5 type"
|
||||||
dtype = []
|
dtype = []
|
||||||
values_list = []
|
values_list = []
|
||||||
max_length = max(len(item) for item in attr_value.keys())
|
max_length = max(len(str(attr_value[key])) for key in attr_value.keys())
|
||||||
for key in attr_value.keys():
|
for key in attr_value.keys():
|
||||||
if (not key=='rename_as'):
|
if (not key=='rename_as'):
|
||||||
dtype.append((key,f'S{max_length}'))
|
dtype.append((key,f'S{max_length}'))
|
||||||
values_list.append(attr_value[key])
|
values_list.append(attr_value[key])
|
||||||
|
|
||||||
if len(values_list)>1:
|
if values_list:
|
||||||
new_attr_value = np.array([tuple(values_list)],dtype=dtype)
|
new_attr_value = np.array([tuple(values_list)],dtype=dtype)
|
||||||
elif values_list:
|
|
||||||
new_attr_value = values_list[0]
|
|
||||||
else:
|
else:
|
||||||
new_attr_value = 'missing'
|
new_attr_value = 'missing'
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user