Skip to content

Commit 87695f1

Browse files
committed
New way of describing provenance for a dataset ("GeneratedBy":"Id"
1 parent e584867 commit 87695f1

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

bids_prov/merge.py

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,15 @@ def get_described_datasets(layout: BIDSLayout) -> list:
6262
for file in files:
6363
metadata = file.get_dict()
6464
if 'GeneratedBy' in metadata:
65-
for generated_by_obj in metadata['GeneratedBy']:
66-
if 'Id' in generated_by_obj:
67-
out_files.append(file)
68-
break
65+
# If GeneratedBy is either a list of objects or a list of activity ids
66+
if isinstance(metadata['GeneratedBy'], list):
67+
for generated_by_obj in metadata['GeneratedBy']:
68+
if 'Name' not in generated_by_obj:
69+
out_files.append(file)
70+
break
71+
# If GeneratedBy is an activity id
72+
else:
73+
out_files.append(file)
6974

7075
return out_files
7176

@@ -98,9 +103,12 @@ def get_dataset_entity_record(description_file: BIDSJSONFile) -> dict:
98103
}
99104

100105
# Get provenance-related metadata
101-
for generated_by_obj in metadata['GeneratedBy']:
102-
if 'Id' in generated_by_obj:
103-
entity['GeneratedBy'].append(generated_by_obj['Id'])
106+
if isinstance(metadata['GeneratedBy'], list):
107+
for generated_by_obj in metadata['GeneratedBy']:
108+
if 'Name' not in generated_by_obj:
109+
entity['GeneratedBy'].append(generated_by_obj)
110+
else:
111+
entity['GeneratedBy'].append(metadata['GeneratedBy'])
104112

105113
return entity
106114

0 commit comments

Comments
 (0)