diff options
Diffstat (limited to 'uploader/publications/misc.py')
-rw-r--r-- | uploader/publications/misc.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/uploader/publications/misc.py b/uploader/publications/misc.py index d93ecdd..fca6f71 100644 --- a/uploader/publications/misc.py +++ b/uploader/publications/misc.py @@ -4,7 +4,22 @@ def publications_differences( filedata: tuple[dict, ...], dbdata: tuple[dict, ...], - pubmedid2pubidmap: dict[str, int] + pubmedid2pubidmap: tuple[dict, ...] ) -> tuple[dict, ...]: """Compute the differences between file data and db data""" - return tuple() + diff = tuple() + for filerow, dbrow in zip( + sorted(filedata, key=lambda item: ( + item["phenotype_id"], item["xref_id"])), + sorted(dbdata, key=lambda item: ( + item["PhenotypeId"], item["xref_id"]))): + if filerow["PubMed_ID"] == dbrow["PubMed_ID"]: + continue + + newpubmed = filerow["PubMed_ID"] + diff = diff + ({ + **dbrow, + "PubMed_ID": newpubmed, + "PublicationId": pubmedid2pubidmap.get(newpubmed)},) + + return diff |