aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)