]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/db/connection.py
move complex typing annotations to extra file
[nominatim.git] / nominatim / db / connection.py
index 2cc0fef8596db5ae4d1f259476f3da477ec20f7a..729e8a700761843ea33e36f7630482cc063faa72 100644 (file)
@@ -7,7 +7,7 @@
 """
 Specialised connection and cursor functions.
 """
-from typing import Union, List, Optional, Any, Callable, ContextManager, Mapping, cast, TypeVar, overload, Tuple, Sequence
+from typing import List, Optional, Any, Callable, ContextManager, Mapping, cast, overload, Tuple
 import contextlib
 import logging
 import os
@@ -17,11 +17,9 @@ import psycopg2.extensions
 import psycopg2.extras
 from psycopg2 import sql as pysql
 
+from nominatim.typing import Query, T_cursor
 from nominatim.errors import UsageError
 
-Query = Union[str, bytes, pysql.Composable]
-T = TypeVar('T', bound=psycopg2.extensions.cursor)
-
 LOG = logging.getLogger()
 
 class _Cursor(psycopg2.extras.DictCursor):
@@ -38,7 +36,8 @@ class _Cursor(psycopg2.extras.DictCursor):
         super().execute(query, args)
 
 
-    def execute_values(self, sql: Query, argslist: List[Any], template: Optional[str] = None) -> None:
+    def execute_values(self, sql: Query, argslist: List[Any],
+                       template: Optional[str] = None) -> None:
         """ Wrapper for the psycopg2 convenience function to execute
             SQL for a list of values.
         """
@@ -91,7 +90,7 @@ class _Connection(psycopg2.extensions.connection):
         ...
 
     @overload
-    def cursor(self, cursor_factory: Callable[..., T]) -> T:
+    def cursor(self, cursor_factory: Callable[..., T_cursor]) -> T_cursor:
         ...
 
     def cursor(self, cursor_factory  = _Cursor, **kwargs): # type: ignore