From: Sarah Hoffmann Date: Fri, 25 Oct 2024 21:43:59 +0000 (+0200) Subject: fix backward compatibility issues with Python 3.7 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/b9e4563bebaf2b2bfba5440001b4b5750eaebe43 fix backward compatibility issues with Python 3.7 --- diff --git a/Makefile b/Makefile index cd7280fe..421b671a 100644 --- a/Makefile +++ b/Makefile @@ -18,7 +18,7 @@ build-api: tests: mypy lint pytest bdd mypy: - mypy --strict src + mypy --strict --python-version 3.8 src pytest: pytest test/python diff --git a/src/nominatim_api/server/falcon/server.py b/src/nominatim_api/server/falcon/server.py index c1196ddb..558ff943 100644 --- a/src/nominatim_api/server/falcon/server.py +++ b/src/nominatim_api/server/falcon/server.py @@ -7,7 +7,7 @@ """ Server implementation using the falcon webserver framework. """ -from typing import Optional, Mapping, cast, Any, List +from typing import Optional, Mapping, Any, List from pathlib import Path import datetime as dt import asyncio @@ -72,11 +72,11 @@ class ParamWrapper(ASGIAdaptor): def get(self, name: str, default: Optional[str] = None) -> Optional[str]: - return cast(Optional[str], self.request.get_param(name, default=default)) + return self.request.get_param(name, default=default) def get_header(self, name: str, default: Optional[str] = None) -> Optional[str]: - return cast(Optional[str], self.request.get_header(name, default=default)) + return self.request.get_header(name, default=default) def error(self, msg: str, status: int = 400) -> HTTPNominatimError: @@ -91,7 +91,7 @@ class ParamWrapper(ASGIAdaptor): def base_uri(self) -> str: - return cast (str, self.request.forwarded_prefix) + return self.request.forwarded_prefix def config(self) -> Configuration: return self._config @@ -183,7 +183,7 @@ def get_application(project_dir: Path, app.add_error_handler(HTTPNominatimError, nominatim_error_handler) app.add_error_handler(TimeoutError, timeout_error_handler) # different from TimeoutError in Python <= 3.10 - app.add_error_handler(asyncio.TimeoutError, timeout_error_handler) + app.add_error_handler(asyncio.TimeoutError, timeout_error_handler) # type: ignore[arg-type] legacy_urls = api.config.get_bool('SERVE_LEGACY_URLS') formatter = load_format_dispatcher('v1', project_dir) diff --git a/src/nominatim_api/v1/helpers.py b/src/nominatim_api/v1/helpers.py index 9c220834..4e1e4e55 100644 --- a/src/nominatim_api/v1/helpers.py +++ b/src/nominatim_api/v1/helpers.py @@ -62,13 +62,13 @@ def extend_query_parts(queryparts: Dict[str, Any], details: Dict[str, Any], """ parsed = SearchDetails.from_kwargs(details) if parsed.geometry_output != GeometryFormat.NONE: - if GeometryFormat.GEOJSON in parsed.geometry_output: + if GeometryFormat.GEOJSON & parsed.geometry_output: queryparts['polygon_geojson'] = '1' - if GeometryFormat.KML in parsed.geometry_output: + if GeometryFormat.KML & parsed.geometry_output: queryparts['polygon_kml'] = '1' - if GeometryFormat.SVG in parsed.geometry_output: + if GeometryFormat.SVG & parsed.geometry_output: queryparts['polygon_svg'] = '1' - if GeometryFormat.TEXT in parsed.geometry_output: + if GeometryFormat.TEXT & parsed.geometry_output: queryparts['polygon_text'] = '1' if parsed.address_details: queryparts['addressdetails'] = '1'