forked from hans/Nominatim
adapt annotations for SQLAlchemy 2.x
It is not possible to produce type annotations that work with both versions 1.4 and 2.0. So keep to the principle of only supporting newest versions when it comes to mypy. This means that some types may have to be string quoted to not cause issues when running with SQLAlchemy 1.4.
This commit is contained in:
8
.github/workflows/ci-tests.yml
vendored
8
.github/workflows/ci-tests.yml
vendored
@@ -109,8 +109,8 @@ jobs:
|
|||||||
- name: Install Python webservers
|
- name: Install Python webservers
|
||||||
run: pip3 install falcon sanic sanic-testing sanic-cors starlette
|
run: pip3 install falcon sanic sanic-testing sanic-cors starlette
|
||||||
|
|
||||||
- name: Install latest pylint/mypy
|
- name: Install latest pylint
|
||||||
run: pip3 install -U pylint mypy types-PyYAML types-jinja2 types-psycopg2 types-psutil types-requests types-ujson typing-extensions asgi_lifespan sqlalchemy2-stubs
|
run: pip3 install -U pylint asgi_lifespan
|
||||||
|
|
||||||
- name: PHP linting
|
- name: PHP linting
|
||||||
run: phpcs --report-width=120 .
|
run: phpcs --report-width=120 .
|
||||||
@@ -134,8 +134,8 @@ jobs:
|
|||||||
python3 -m behave -DREMOVE_TEMPLATE=1 -DBUILDDIR=$GITHUB_WORKSPACE/build --format=progress3
|
python3 -m behave -DREMOVE_TEMPLATE=1 -DBUILDDIR=$GITHUB_WORKSPACE/build --format=progress3
|
||||||
working-directory: Nominatim/test/bdd
|
working-directory: Nominatim/test/bdd
|
||||||
|
|
||||||
- name: Install newer Python packages (for typechecking info)
|
- name: Install mypy and typechecking info
|
||||||
run: pip3 install -U osmium uvicorn
|
run: pip3 install -U mypy osmium uvicorn types-PyYAML types-jinja2 types-psycopg2 types-psutil types-requests types-ujson typing-extensions
|
||||||
if: matrix.flavour != 'oldstuff'
|
if: matrix.flavour != 'oldstuff'
|
||||||
|
|
||||||
- name: Python static typechecking
|
- name: Python static typechecking
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ sudo apt install php-cgi phpunit php-codesniffer \
|
|||||||
|
|
||||||
pip3 install --user behave mkdocs mkdocstrings pytest pylint \
|
pip3 install --user behave mkdocs mkdocstrings pytest pylint \
|
||||||
mypy types-PyYAML types-jinja2 types-psycopg2 types-psutil \
|
mypy types-PyYAML types-jinja2 types-psycopg2 types-psutil \
|
||||||
types-ujosn \
|
types-ujosn types-requests typing-extensions\
|
||||||
sanic-testing httpx asgi-lifespan
|
sanic-testing httpx asgi-lifespan
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class SearchConnection:
|
|||||||
|
|
||||||
async def execute(self, sql: sa.sql.base.Executable,
|
async def execute(self, sql: sa.sql.base.Executable,
|
||||||
params: Union[Mapping[str, Any], Sequence[Mapping[str, Any]], None] = None
|
params: Union[Mapping[str, Any], Sequence[Mapping[str, Any]], None] = None
|
||||||
) -> sa.engine.Result:
|
) -> 'sa.engine.Result[Any]':
|
||||||
""" Execute a 'execute()' query on the connection.
|
""" Execute a 'execute()' query on the connection.
|
||||||
"""
|
"""
|
||||||
return await self.connection.execute(sql, params)
|
return await self.connection.execute(sql, params)
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ class NominatimAPIAsync:
|
|||||||
self.server_version = 0
|
self.server_version = 0
|
||||||
|
|
||||||
if self.server_version >= 110000:
|
if self.server_version >= 110000:
|
||||||
@sa.event.listens_for(engine.sync_engine, "connect") # type: ignore[misc]
|
@sa.event.listens_for(engine.sync_engine, "connect")
|
||||||
def _on_connect(dbapi_con: Any, _: Any) -> None:
|
def _on_connect(dbapi_con: Any, _: Any) -> None:
|
||||||
cursor = dbapi_con.cursor()
|
cursor = dbapi_con.cursor()
|
||||||
cursor.execute("SET jit_above_cost TO '-1'")
|
cursor.execute("SET jit_above_cost TO '-1'")
|
||||||
|
|||||||
Reference in New Issue
Block a user