Task_3: Docstrings und Typehints verwenden

This commit is contained in:
Marco Schmid 2026-05-11 17:40:37 +02:00
parent 801539a40b
commit f92fdd93e4
2 changed files with 36 additions and 5 deletions

14
TASK.md
View File

@ -1,6 +1,12 @@
# TASK 2:
# TASK 3:
Als nächstes versucht ihr eine einfache fetch_bergbahn() zu bauen, die API lautet "https://overpass-api.de/api/interpreter"
Nutzt dazu die request-Library in Python, wo ihr `post-` und `get`-Requests bauen könnt.
Für `Task_2` habt ihr das requests-Modul benötigt, welches mit `pip install requests` installiert werden musste.
Ich habe zusätzlich eine neue Datei `requirements.txt` erstellt, worin das installierte Modul `requests`
nun aufgeführt ist. Das hilft, dass andere Programmierer am Schluss euer Projekt einfach nachbauen/ausführen können.
Verwendet die Unterrichtsfolien als Hilfe zum Bauen des requests.
* Fügt der aktuellen Funktion einen aussagekräftigen **Docstrings** und **Typehints** hinzu.
Ziel ist es in unserem Miniprojekt ab nun stets aktuelle und aussagekräfte Docstrings und überall Typehints zu verwenden!
Das mag zwar beim Erstellen ein wenig lästig sein, ist aber eine Investition in die Zukunft!
Denkt immer daran: "Ein Code wird meist häufiger gelesen als geschrieben..."

27
main.py
View File

@ -1,8 +1,33 @@
import requests
from pprint import pprint
OVERPASS_URL = "https://overpass-api.de/api/interpreter"
BERGBAHN_QUERY = """
[out:json][timeout:3][maxsize:500000];
(
node["aerialway"="station"]({bbox});
way["aerialway"="station"]({bbox});
node["railway"="funicular"]({bbox});
way["railway"="funicular"]({bbox});
node["railway"="station"]["funicular"="yes"]({bbox});
);
out center body;
"""
def fetch_bergbahnen(bbox) -> dict:
return {}
bbox_str = ",".join(map(str, bbox))
query = BERGBAHN_QUERY.format(bbox=bbox_str)
resp = requests.post(
OVERPASS_URL,
data={"data": query},
timeout=5,
headers={"User-Agent": "CDS Exercise"},
)
return resp.json()
if __name__ == "__main__":