From 21988965ff1eb2a5bc7705f1b100a893aa04134a Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Thu, 1 Oct 2026 10:25:26 +0200 Subject: add a timeout to overpass API request --- fietsboek/osm.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/fietsboek/osm.py b/fietsboek/osm.py index 436e033..8f6f3fe 100644 --- a/fietsboek/osm.py +++ b/fietsboek/osm.py @@ -14,6 +14,7 @@ HEADERS = { "user-agent": f"Fietsboek/{__VERSION__}", "accept-encoding": "gzip;q=1.0, identity;q=0.5", } +API_TIMEOUT = 20 MAX_SIMILARITY_STREETNAME = 100 MAX_DISTANCE_PEAK = 750 @@ -47,13 +48,19 @@ def find_name(path: Path) -> str | None: (._;>;); out; """ - with session.post(OVERPASS_API_URL, data={"data": overpass_script}) as response: - if response.status_code != 200: - LOGGER.info( - "Error response from overpass: %s %s", response.status_code, response.reason - ) - return None - data = response.content + try: + with session.post( + OVERPASS_API_URL, data={"data": overpass_script}, timeout=API_TIMEOUT + ) as response: + if response.status_code != 200: + LOGGER.info( + "Error response from overpass: %s %s", response.status_code, response.reason + ) + return None + data = response.content + except requests.ReadTimeout: + LOGGER.info("Overpass API timeout, skipping") + return None LOGGER.debug("Got %s bytes of OSM-XML data, parsing...", len(data)) tree = ElementTree.fromstring(data) -- cgit v1.2.3