From e6775e713c2a1c009f7a01fad674a545e0e6bb39 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Tue, 5 Jul 2022 10:34:55 +0200 Subject: [PATCH] add typing information to DB properties --- lib-sql/tables.sql | 2 +- nominatim/db/properties.py | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lib-sql/tables.sql b/lib-sql/tables.sql index 538286b8..03431d95 100644 --- a/lib-sql/tables.sql +++ b/lib-sql/tables.sql @@ -45,7 +45,7 @@ GRANT SELECT ON TABLE country_name TO "{{config.DATABASE_WEBUSER}}"; DROP TABLE IF EXISTS nominatim_properties; CREATE TABLE nominatim_properties ( - property TEXT, + property TEXT NOT NULL, value TEXT ); GRANT SELECT ON TABLE nominatim_properties TO "{{config.DATABASE_WEBUSER}}"; diff --git a/nominatim/db/properties.py b/nominatim/db/properties.py index 27020487..9dac2053 100644 --- a/nominatim/db/properties.py +++ b/nominatim/db/properties.py @@ -7,8 +7,11 @@ """ 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: @@ -23,7 +26,8 @@ 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. """ @@ -34,4 +38,7 @@ def get_property(conn, name): 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] -- 2.39.5