]> 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.
 """
 """
 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:
     """ 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()
 
         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.
     """
     """ 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, ))
 
     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]