fix backward compatibility issues with Python 3.7

This commit is contained in:
Sarah Hoffmann 2024-10-25 23:43:59 +02:00
parent 2c0f2e1ede
commit b9e4563beb
3 changed files with 10 additions and 10 deletions

View File

@ -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

View File

@ -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)

View File

@ -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'