From 0dff71a4101cadd2c46be7c446d0a4d2428b22db Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Tue, 5 Jul 2022 11:24:53 +0200 Subject: [PATCH] add type annotations for SQL preprocessor --- nominatim/config.py | 6 +++++- nominatim/db/sql_preprocessor.py | 17 ++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/nominatim/config.py b/nominatim/config.py index adc022e2..78496550 100644 --- a/nominatim/config.py +++ b/nominatim/config.py @@ -66,7 +66,11 @@ class Configuration: self._config.update(dotenv_values(str((project_dir / '.env').resolve()))) class _LibDirs: - pass + module: Path + osm2pgsql: Path + php: Path + sql: Path + data: Path self.lib_dir = _LibDirs() diff --git a/nominatim/db/sql_preprocessor.py b/nominatim/db/sql_preprocessor.py index 4de53886..b450422d 100644 --- a/nominatim/db/sql_preprocessor.py +++ b/nominatim/db/sql_preprocessor.py @@ -7,10 +7,13 @@ """ Preprocessing of SQL files. """ +from typing import Set, Dict, Any import jinja2 +from nominatim.db.connection import Connection +from nominatim.config import Configuration -def _get_partitions(conn): +def _get_partitions(conn: Connection) -> Set[int]: """ Get the set of partitions currently in use. """ with conn.cursor() as cur: @@ -22,7 +25,7 @@ def _get_partitions(conn): return partitions -def _get_tables(conn): +def _get_tables(conn: Connection) -> Set[str]: """ Return the set of tables currently in use. Only includes non-partitioned """ @@ -32,7 +35,7 @@ def _get_tables(conn): return set((row[0] for row in list(cur))) -def _setup_tablespace_sql(config): +def _setup_tablespace_sql(config: Configuration) -> Dict[str, str]: """ Returns a dict with tablespace expressions for the different tablespace kinds depending on whether a tablespace is configured or not. """ @@ -47,7 +50,7 @@ def _setup_tablespace_sql(config): return out -def _setup_postgresql_features(conn): +def _setup_postgresql_features(conn: Connection) -> Dict[str, Any]: """ Set up a dictionary with various optional Postgresql/Postgis features that depend on the database version. """ @@ -69,11 +72,11 @@ class SQLPreprocessor: and follows its syntax. """ - def __init__(self, conn, config): + def __init__(self, conn: Connection, config: Configuration) -> None: self.env = jinja2.Environment(autoescape=False, loader=jinja2.FileSystemLoader(str(config.lib_dir.sql))) - db_info = {} + db_info: Dict[str, Any] = {} db_info['partitions'] = _get_partitions(conn) db_info['tables'] = _get_tables(conn) db_info['reverse_only'] = 'search_name' not in db_info['tables'] @@ -84,7 +87,7 @@ class SQLPreprocessor: self.env.globals['postgres'] = _setup_postgresql_features(conn) - def run_sql_file(self, conn, name, **kwargs): + def run_sql_file(self, conn: Connection, name: str, **kwargs: Any) -> None: """ Execute the given SQL file on the connection. The keyword arguments may supply additional parameters for preprocessing. """ -- 2.39.5