diff options
| -rw-r--r-- | fietsboek/osm.py | 21 |
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) |
