diff --git a/script_helper.py b/script_helper.py index d7425875fc1e610855e06499d913efd455c46efa..51e39de0f21a6a73ea8a38b7c6c238466f8ef0f5 100644 --- a/script_helper.py +++ b/script_helper.py @@ -6,22 +6,24 @@ import json class DBTools: - """ - Tools für das arbeiten mit der Datenbank, hier sind die select Funktionen - zum auslesen der Daten und zum updaten der Daten mit den Adressen. + """Tools für das Arbeiten mit der DB. + + Hier sind die select Funktionen zum selektieren und updaten der Daten + in der Datenbank. """ def __init__(self, conn: str) -> None: - """ - Aufbauen der Verbindung zu der Datenbank + """Aufbauen der Verbindung zu der Datenbank - :param str data: Connection String mit allen Informationen für die - Verbindung zur Datenbank + Args: + data: Connection String mit allen Informationen für die + Verbindung zur Datenbank """ self.db_connection = psycopg2.connect(conn) self.cursor = self.db_connection.cursor() def select_adress(self) -> "list[tuple[str, ... ]]": - """ + """Selektieren der Adressdaten + Funktion zum selektieren der Adressdaten der Schulen aus der Datenbank. Die folgenden Daten werden aus der Datenbank ausgelesen: * ID der Schule in der Datenbank @@ -30,9 +32,9 @@ class DBTools: * PLZ * Ortsname - :returns: Liste mit mehreren Tupeln welche die Adressdaten der + Returns: + Liste mit mehreren Tupeln welche die Adressdaten der Schulen enthalten. - :rtype: list """ select_sql = """ @@ -51,13 +53,14 @@ class DBTools: return query_result def select_uri(self) -> "list[tuple[str, ... ]]": - """ + """Selektieren der AREG URI + Funktion zum selektieren der URI aus dem Datensatz um diese mit aktuellen AREG Adressdaten anzureichern. - :return: Liste mit meheren Tupeln welche die AREG URI enthalten. + Returns: + Liste mit meheren Tupeln welche die AREG URI enthalten. Es wird sichergestellt, dass keine NULL Werte vorkommen. - :rtype: list """ select_sql = """ @@ -74,11 +77,13 @@ class DBTools: return query_data def update_uri(self, param_dbid: str, param_uri: str) -> None: - """ + """Update der URI in der DB + Funktion zum Update der Datenbank mit den neuen URI aus dem Geocoder. - :param str param_dbid: ID der Schule aus der Datenbank (nicht AREG URI) - :param str param_uri: AREG URI + Args: + param_dbid: ID der Schule aus der Datenbank (nicht AREG URI) + param_uri: AREG URI """ sql_alter = """ @@ -101,12 +106,14 @@ class DBTools: self.cursor.execute(sql_update) def update_adress(self, data: "dict[str,str]", param_uri: str) -> None: - """ + """Updaten der Adressen mit AREG URI + Funktion zum Update der Datenbank mit den neuen Adressdaten aus dem AREG anhand der AREG URI. - :param dict data: Dictionary mit neuen Adressdaten aus der AREG API - :param str param_uri: AREG URI zum zuordnen der Adressdaten + Args: + data: Dictionary mit neuen Adressdaten aus der AREG API + param_uri: AREG URI zum zuordnen der Adressdaten """ geometry = str(data['geometry']) geometry = geometry.replace("'", '"') @@ -143,7 +150,8 @@ class DBTools: self.cursor.execute(sql_update) def closecursor(self) -> None: - """ + """Commit und Schließen der DB-Connection + Funktion zum Commit und Schießen der Datenbankverbindung nachdem alle Änderungen vorgenommen wurden. """ @@ -154,31 +162,36 @@ class DBTools: class APITools: - """ - Tools für das Arbeiten mit der pygeoAPI. Hier sind die Funktionen zum - aufrufen des Geocoder Prozesses und zum Finden der Adresse anhand der URI + """Tools für das Arbeiten mit der pygeoAPI. + + Hier sind die Funktionen zum aufrufen des Geocoder Prozesses und zum + Finden der Adresse anhand der URI """ def __init__(self, param_url): - """ + """Initialisiert Instanz der APITools. + Festlegen der Basis URL der API für die weitere Verwendung in den Funktionen der Klasse. - :param str param_url: Basis URL der API + Args: + param_url: Basis URL der API """ self.base_url = param_url def geocode(self, data: "dict[str,str]") -> "dict[str,str]": - """ + """Aufrufen des API Geocoders + Funktion zum Aufrufen des Geocoder Prozesses in der API. Bereinigung der Adressdaten finden nicht in dieser Funktion oder diesem Skript sondern im Geocoder statt! - :param dict data: Dictionary mit den alten Adressdaten - :returns: Dictionary entweder mit einem `uri` Objekt oder einem + Args: + data: Dictionary mit den alten Adressdaten + Returns: + Dictionary entweder mit einem `uri` Objekt oder einem `message` Objekt. Wenn `uri` kommt ist alles gut, wenn `message` kommt ist ein Fehler aufgetreten. Der genaue Fehler ist in `message` enthalten. - :rtype: dict """ url = self.base_url + r"processes/geocoder/execution" @@ -207,13 +220,15 @@ class APITools: return result def findadresse(self, param_uri: str) -> "dict[str,str]": - """ - Funktion zum finden der Adresse im AREG anhand der vergebenen AREG URI. + """Findet Adresse anhand von URI - :param str param_uri: URL zur API mit AREG URI der Adresse. + Funktion zum finden der Adresse im AREG API anhand der vergebenen + AREG URI. - :return: Adressdaten des jeweiligen Items das der AREG URI entspricht - :rtype: dict + Args: + param_uri: URL zur API mit AREG URI der Adresse. + Returns: + Adressdaten des jeweiligen Items das der AREG URI entspricht """ url = param_uri + r"?f=json" result = {}