convert2zenodo has an issue with reading people's affiliations
I called the codemeta to zenodo.json converter in a fresh install of the eossr library like so:
eossr-codemeta2zenodo -i codemeta.json
The codemeta file is this one: codemeta.json
❯ eossr-codemeta2zenodo -i codemeta.json
Traceback (most recent call last):
File "/home/manon.marchand/miniconda3/envs/cds-tutos-dev/bin/eossr-codemeta2zenodo", line 8, in <module>
sys.exit(main())
File "/home/manon.marchand/miniconda3/envs/cds-tutos-dev/lib/python3.10/site-packages/eossr/scripts/eossr_codemeta2zenodo.py", line 65, in main
parse_codemeta_and_write_zenodo_metadata_file(
File "/home/manon.marchand/miniconda3/envs/cds-tutos-dev/lib/python3.10/site-packages/eossr/metadata/codemeta2zenodo.py", line 333, in parse_codemeta_and_write_zenodo_metadata_file
meta_converter.convert()
File "/home/manon.marchand/miniconda3/envs/cds-tutos-dev/lib/python3.10/site-packages/eossr/metadata/codemeta2zenodo.py", line 270, in convert
self.zenodo_data = find_matching_metadata(self.codemeta_data)
File "/home/manon.marchand/miniconda3/envs/cds-tutos-dev/lib/python3.10/site-packages/eossr/metadata/codemeta2zenodo.py", line 210, in find_matching_metadata
add_author_metadata(metadata_zenodo, codemeta_json[person_type], person_field=person_type)
File "/home/manon.marchand/miniconda3/envs/cds-tutos-dev/lib/python3.10/site-packages/eossr/metadata/codemeta2zenodo.py", line 91, in add_author_metadata
zenodo_person = parse_person_schema_property(person_property, person_field)
File "/home/manon.marchand/miniconda3/envs/cds-tutos-dev/lib/python3.10/site-packages/eossr/metadata/codemeta2zenodo.py", line 55, in parse_person_schema_property
zenodo_person['affiliation'] = person_property['affiliation']['name']
TypeError: list indices must be integers or slices, not str
The issue occurs because one of the authors has more than one affiliation. It looks like this in the codemeta.json
.
{
"@type": "Person",
"@id": "0000-0000-0000-0000",
"givenName": "Jane",
"familyName": "Doe",
"affiliation": [
{
"@type": "Organization",
"name": "Univ. Lille, CNRS, Centrale Lille, UMR 9189 CRIStAL, F-59000 Lille, France"
},
{
"@type": "Organization",
"name": "Université Paris-Saclay, CNRS, Institut d'Astrophysique Spatiale, 91405, Orsay, France"
},
{
"@type": "Organization",
"name": "Leibniz-Institut für Astrophysik (AIP), An der Sternwarte 16, D-14482 Potsdam, Germany"
}
]
},
I'm not sure how this would be translated in terms of zenodo.json
otherwise I'd fix that. Do you know? Their doc says this:
(Please add other relevant labels if any)