Skip to content

Commit 6d681ae

Browse files
committed
Make getting publications from ResearchFish optional
1 parent 83a6878 commit 6d681ae

File tree

1 file changed

+40
-37
lines changed

1 file changed

+40
-37
lines changed

rfparser/__init__.py

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -524,50 +524,53 @@ def main() -> None:
524524
config_key = config_key[9:]
525525
config[config_key] = os.environ[env_var]
526526

527-
assert config.get("rf_username"), "ResearchFish username not configured"
528-
assert config.get("rf_password"), "ResearchFish password not configured"
529527
assert config.get("email"), "Email not configured"
530528

531529
# Create dictionary of publications indexed by DOI
532530
pubs_with_doi: dict[DOI, dict[str, Any]] = {}
533531

534532
get_dois_from_old_xml(config.get("nbiros_pub_export_xml_url"), pubs_with_doi)
535-
log.info(f"Unique publication DOIs: {len(pubs_with_doi)}")
533+
log.info(f"Unique publication DOIs from NBIROS: {len(pubs_with_doi)}")
536534

537-
# Login to ResearchFish API
538-
rf_session = RF_login(config["rf_username"], config["rf_password"])
539-
log.debug("Successfully logged in to ResearchFish API")
540-
541-
# Get awards
542-
# awards = RF_get_paginated(rf_session, f"{BASE_RF_URL}/award")
543-
# with open("/tmp/awards.txt", "w") as f:
544-
# for award in awards:
545-
# print(award["fa_name"], file=f)
546-
547-
# Get publication dois
548-
params = {
549-
"section": "publications",
550-
}
551-
publications = RF_get_paginated(rf_session, f"{BASE_RF_URL}/outcome", params=params, max_pages=args.pages)
552-
log.info(f"Total publications on ResearchFish: {len(publications)}")
553-
554-
for p in publications:
555-
try:
556-
doi = DOI(p["r1_2_19"])
557-
except ValueError as e:
558-
log.warning(
559-
"Skipping ResearchFish publication '%s' (doi: '%s'; title '%s'; type '%s'): %s",
560-
p["id"],
561-
p["r1_2_19"],
562-
p["title"],
563-
p["r1_2"],
564-
e,
565-
)
566-
else:
567-
pubs_with_doi.setdefault(doi, {})
568-
pubs_with_doi[doi].setdefault("rf_entries", [])
569-
pubs_with_doi[doi]["rf_entries"].append(p)
570-
log.info(f"Unique publication DOIs: {len(pubs_with_doi)}")
535+
if not config.get("rf_username"):
536+
log.warning("ResearchFish username not configured, skipping ResearchFish publications")
537+
elif not config.get("rf_password"):
538+
log.warning("ResearchFish password not configured, skipping ResearchFish publications")
539+
else:
540+
# Login to ResearchFish API
541+
rf_session = RF_login(config["rf_username"], config["rf_password"])
542+
log.debug("Successfully logged in to ResearchFish API")
543+
544+
# Get awards
545+
# awards = RF_get_paginated(rf_session, f"{BASE_RF_URL}/award")
546+
# with open("/tmp/awards.txt", "w") as f:
547+
# for award in awards:
548+
# print(award["fa_name"], file=f)
549+
550+
# Get publication dois
551+
params = {
552+
"section": "publications",
553+
}
554+
publications = RF_get_paginated(rf_session, f"{BASE_RF_URL}/outcome", params=params, max_pages=args.pages)
555+
log.info(f"Total publications on ResearchFish: {len(publications)}")
556+
557+
for p in publications:
558+
try:
559+
doi = DOI(p["r1_2_19"])
560+
except ValueError as e:
561+
log.warning(
562+
"Skipping ResearchFish publication '%s' (doi: '%s'; title '%s'; type '%s'): %s",
563+
p["id"],
564+
p["r1_2_19"],
565+
p["title"],
566+
p["r1_2"],
567+
e,
568+
)
569+
else:
570+
pubs_with_doi.setdefault(doi, {})
571+
pubs_with_doi[doi].setdefault("rf_entries", [])
572+
pubs_with_doi[doi]["rf_entries"].append(p)
573+
log.info(f"Unique publication DOIs from NBIROS and ResearchFish: {len(pubs_with_doi)}")
571574

572575
# Process publications with a DOI
573576
cr_headers = {

0 commit comments

Comments
 (0)