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