From ab486398b754c8bf51ad610584af535e83bd7fa1 Mon Sep 17 00:00:00 2001 From: Enrique Garcia <garcia@lapp.in2p3.fr> Date: Thu, 14 Oct 2021 16:51:56 +0200 Subject: [PATCH] check related identifiers in similar records function --- eossr/metadata/codemeta2zenodo.py | 1 - eossr/scripts/eossr_upload_repository.py | 14 +++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/eossr/metadata/codemeta2zenodo.py b/eossr/metadata/codemeta2zenodo.py index 5067e16b..e0aab931 100644 --- a/eossr/metadata/codemeta2zenodo.py +++ b/eossr/metadata/codemeta2zenodo.py @@ -1,7 +1,6 @@ #!/usr/bin/env python import json -from copy import deepcopy from pathlib import Path codemeta_creators_fields = ['author', 'creator', 'maintainer', 'contributor'] diff --git a/eossr/scripts/eossr_upload_repository.py b/eossr/scripts/eossr_upload_repository.py index 7cd47926..4ac55648 100644 --- a/eossr/scripts/eossr_upload_repository.py +++ b/eossr/scripts/eossr_upload_repository.py @@ -29,10 +29,14 @@ def find_similar_records(zenodo_api, record): if user_rec.title == record.title: similar_records.append(user_rec) - relid1 = [r['identifier'] for r in user_rec.data['metadata']['related_identifiers']] - relid2 = [r['identifier'] for r in record.data['metadata']['related_identifiers']] - if set(relid1).intersection(relid2): - similar_records.append(user_rec) + if 'related_identifiers' in user_rec.data['metadata'] and \ + 'related_identifiers' in record.data['metadata']: + + relid1 = [r['identifier'] for r in user_rec.data['metadata']['related_identifiers']] + relid2 = [r['identifier'] for r in record.data['metadata']['related_identifiers']] + + if set(relid1).intersection(relid2): + similar_records.append(user_rec) return similar_records @@ -76,7 +80,7 @@ def upload(zenodo_token, sandbox_flag, upload_directory, zip_root_dir=False, rec else: raise FileNotFoundError("No metadata provided") - metadata_for_check = {'metadata':metadata} + metadata_for_check = {'metadata': metadata} metadata_for_check['id'] = 1 # fake id to create fake record record = Record(metadata_for_check) -- GitLab