aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schadt <kingdread@gmx.de>2026-10-01 10:25:26 +0200
committerDaniel Schadt <kingdread@gmx.de>2026-10-01 10:25:26 +0200
commit21988965ff1eb2a5bc7705f1b100a893aa04134a (patch)
treec715bbacdb2ed2728425f3a3205a5436ee44ce00
parent4a19f38ab4ff54f9e80698482ebc9dce7707ba6f (diff)
downloadfietsboek-21988965ff1eb2a5bc7705f1b100a893aa04134a.tar.gz
fietsboek-21988965ff1eb2a5bc7705f1b100a893aa04134a.tar.bz2
fietsboek-21988965ff1eb2a5bc7705f1b100a893aa04134a.zip
add a timeout to overpass API request
-rw-r--r--fietsboek/osm.py21
1 files 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)