From adfb935150ce7a4881d54a472d97eff2594214f1 Mon Sep 17 00:00:00 2001 From: Josh Humphries Date: Tue, 19 Mar 2024 18:05:00 +0000 Subject: [PATCH] fix: add a timeout to GBIF API requests --- ckanext/nhm/lib/external_links.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/ckanext/nhm/lib/external_links.py b/ckanext/nhm/lib/external_links.py index aa92fd58..168fea77 100644 --- a/ckanext/nhm/lib/external_links.py +++ b/ckanext/nhm/lib/external_links.py @@ -63,13 +63,18 @@ def _get_gbif_record(occurrence_id: str, institution_code: str) -> Optional[dict if occurrence_id is None or institution_code is None: return None - r = requests.get( - "https://api.gbif.org/v1/occurrence/search", - params={ - "occurrenceID": occurrence_id, - "institutionCode": institution_code, - }, - ) + try: + r = requests.get( + "https://api.gbif.org/v1/occurrence/search", + params={ + "occurrenceID": occurrence_id, + "institutionCode": institution_code, + }, + timeout=5 + ) + except requests.Timeout: + return None + if r.ok: results = r.json() if results.get("count") == 1: