]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/db/sqlalchemy_types.py
add deletable endpoint
[nominatim.git] / nominatim / db / sqlalchemy_types.py
index f5ec82bdbc4ef24b46d357c5ea060195b6302e68..f31966cd60093a4bc09095a8fff83cbf33743219 100644 (file)
@@ -7,7 +7,8 @@
 """
 Custom types for SQLAlchemy.
 """
-from typing import Callable, Any
+from typing import Callable, Any, cast
+import sys
 
 import sqlalchemy as sa
 from sqlalchemy import types
@@ -16,7 +17,7 @@ from nominatim.typing import SaColumn, SaBind
 
 #pylint: disable=all
 
-class Geometry(types.UserDefinedType[Any]):
+class Geometry(types.UserDefinedType): # type: ignore[type-arg]
     """ Simplified type decorator for PostGIS geometry. This type
         only supports geometries in 4326 projection.
     """
@@ -33,9 +34,9 @@ class Geometry(types.UserDefinedType[Any]):
     def bind_processor(self, dialect: 'sa.Dialect') -> Callable[[Any], str]:
         def process(value: Any) -> str:
             if isinstance(value, str):
-                return 'SRID=4326;' + value
+                return value
 
-            return 'SRID=4326;' + value.to_wkt()
+            return cast(str, value.to_wkt())
         return process
 
 
@@ -47,10 +48,10 @@ class Geometry(types.UserDefinedType[Any]):
 
 
     def bind_expression(self, bindvalue: SaBind) -> SaColumn:
-        return sa.func.ST_GeomFromText(bindvalue, type_=self)
+        return sa.func.ST_GeomFromText(bindvalue, sa.text('4326'), type_=self)
 
 
-    class comparator_factory(types.UserDefinedType.Comparator):
+    class comparator_factory(types.UserDefinedType.Comparator): # type: ignore[type-arg]
 
         def intersects(self, other: SaColumn) -> 'sa.Operators':
             return self.op('&&')(other)