Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
Adressen Integration
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Model registry
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Maximilian Loch
Adressen Integration
Commits
d39241e2
Commit
d39241e2
authored
1 year ago
by
Maximilian Loch
Browse files
Options
Downloads
Patches
Plain Diff
switched inline docstrings from sphinx to google
parent
8f25ed3f
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
script_helper.py
+49
-34
49 additions, 34 deletions
script_helper.py
with
49 additions
and
34 deletions
script_helper.py
+
49
−
34
View file @
d39241e2
...
...
@@ -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
=
{}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment