]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/db/properties.py
add typing information to DB properties
[nominatim.git] / nominatim / db / properties.py
index 9cc371fee22c0f9287b32a6c8985f890db6bef40..9dac2053ba6d6dbd2c92589f11f9948a798baf52 100644 (file)
@@ -1,8 +1,17 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# This file is part of Nominatim. (https://nominatim.org)
+#
+# Copyright (C) 2022 by the Nominatim developer community.
+# For a full list of authors see the git log.
 """
 Query and access functions for the in-database property table.
 """
+from typing import Optional, cast
 
-def set_property(conn, name, value):
+from nominatim.db.connection import Connection
+
+def set_property(conn: Connection, name: str, value: str) -> None:
     """ Add or replace the propery with the given name.
     """
     with conn.cursor() as cur:
@@ -17,12 +26,19 @@ def set_property(conn, name, value):
         cur.execute(sql, (value, name))
     conn.commit()
 
-def get_property(conn, name):
+
+def get_property(conn: Connection, name: str) -> Optional[str]:
     """ Return the current value of the given propery or None if the property
         is not set.
     """
+    if not conn.table_exists('nominatim_properties'):
+        return None
+
     with conn.cursor() as cur:
         cur.execute('SELECT value FROM nominatim_properties WHERE property = %s',
                     (name, ))
 
-        return cur.fetchone()[0] if cur.rowcount > 0 else None
+        if cur.rowcount == 0:
+            return None
+
+        return cast(Optional[str], cur.fetchone()[0]) # type: ignore[no-untyped-call]