Modul erstellen¶
Es ist nicht sehr praktisch, Jupyter jedes Mal zu starten und alle Zellen des httpx-Notebooks zu durchlaufen, nur um die Funktionen verwenden zu können. Stattdessen sollten wir unsere Funktionen in einem separaten Modul speichern, wie in nominatim.py:
Hierfür habe ich in Jupyter an derselben Stelle, wie diese Notebooks eine neue Textdatei erstellt, ihr den Namen
nominatim.py
gegeben.Anschließend habe ich die Importe, die Methode
nominatim_search
und deren Decoratorlru_cache
hineinkopiert und die Datei gespeichert.Nun können wir zu unserem Notebook zurückkehren und den Code aus dieser Datei importieren und unsere Suchen ausführen:
[1]:
from nominatim import nominatim_search
[2]:
nominatim_search("Alexanderplatz, Berlin, Germany")
[2]:
[{'place_id': 261767431,
'licence': 'Data © OpenStreetMap contributors, ODbL 1.0. https://www.openstreetmap.org/copyright',
'osm_type': 'way',
'osm_id': 783052052,
'lat': '52.5219814',
'lon': '13.413635717448294',
'class': 'place',
'type': 'square',
'place_rank': 25,
'importance': 0.47149825263735834,
'addresstype': 'square',
'name': 'Alexanderplatz',
'display_name': 'Alexanderplatz, Mitte, Berlin, 10178, Deutschland',
'boundingbox': ['52.5201457', '52.5238113', '13.4103097', '13.4160801']}]
Das Auslagern des Codes von Notebooks in Module erleichtert nicht nur dessen Wiederverwendbarkeit, es macht auch die Notebooks lesbarer.
Damit der Code jedoch funktioniert, muss sich nominatim.py im selben Ordner wie ein Jupyter-Notizbuch befinden. Wenn Sie dieses Modul von einer anderen Stelle aus aufrufen möchten, müsste die Pfadangabe im import
geändert werden. In diesem Fall sollte besser ein eigenes Paket erstellt werden, wie dies in Paketierung beschrieben ist.