From b9462d85bda9757696ee4c0deefcac11ec16e5eb Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Mon, 14 Apr 2025 09:01:52 -0500 Subject: Implement computation for publication differences. --- uploader/publications/misc.py | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'uploader') 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 -- cgit v1.2.3