Ein Projekt, das andere ausführen können · Abschlussprojekt
Abschlussprojekt: Projekt: Den Quellcode herunterladen, nicht den Rechner
Alles, was dieses Kapitel zugesagt hat, ist jetzt vorhanden. Im letzten Schritt untersuchst du einen echten Download: Hole das Projekt aus Python Land heraus und sieh dir an, was tatsächlich mitkommt.
Prüfe zuerst den Inhalt des Arbeitsbereichs. Die gespeicherte Struktur sollte genau die sechs selbst verfassten Dateien enthalten und sonst nichts. Kein erzeugtes JSON aus einem früheren Lauf, keine .venv, kein Cache-Verzeichnis, kein Archiv eines früheren Versuchs, keinen kopierten Nachweisordner. Wenn du beim Durcharbeiten des Kapitels etwas davon erstellt hast, entferne es jetzt.
ls
ls tests
Du solltest API_CONTRACT.md, README.md, api_catalog.py, requirements.txt, requirements-dev.txt und tests/test_api_catalog.py sehen.
Führe die Suite ein letztes Mal aus, damit du weißt, dass das Projekt, das du gleich weitergibst, funktioniert:
python -m pytest -q
Hole es von der Website herunter
Verwende Download project, während du angemeldet bist. Du erhältst ein ZIP namens python-land-python-in-practice-a-project-someone-else-can-run.zip mit deinen sechs Dateien und einer PYTHONLAND_README.md, die Python Land für dich erzeugt. Die Einträge liegen im Stamm des Archivs. Entpacke es deshalb in einen neuen leeren Ordner statt in einen, der bereits Dateien enthält.
Diese erzeugte Anleitung ist nicht deine README. Deine erklärt, wie man die Umgebung neu aufbaut und die Tests ausführt. Behalte beide; sie beantworten unterschiedliche Fragen.
Öffne den entpackten Ordner und lies deine eigene README.md, als hättest du das Projekt noch nie gesehen. Befolge sie. Wenn ein Schritt etwas voraussetzt, das du nur als Autor weißt, ist genau dieser Schritt zu verbessern.
Was mitkommt und was zurückbleibt
Der Download ist bewusst klein. Er enthält Entscheidungen statt Zustand: Quellcode, Dokumentation, Abhängigkeitsdateien und Tests. Er enthält weder die Umgebung, die sich aus diesen Dateien wieder aufbauen lässt, noch die Caches deiner Werkzeuge oder das JSON, das ein Lauf zufällig erzeugt hat.
Eine klare Grenze gehört dazu. Der Hostname practice-api in diesem Projekt ist intern für Python Land. Ein tatsächlicher Abruf wird deshalb nicht funktionieren, sobald das Projekt auf deinem eigenen Rechner liegt. Die Tests bestehen weiterhin, weil sie Fake-Antworten statt eines laufenden Dienstes verwenden. Genau dafür hast du sie so geschrieben.
Was ergänzt der Download-Dienst, statt dass du es selbst verfasst?
Git ist hier das naheliegende nächste Lernthema. Ein so sauberes Projekt ist genau das, was ein erstes Repository enthalten sollte. Der schwierigste Teil beim Anlegen ist die Entscheidung, was draußen bleibt, und die hast du bereits getroffen:
Bitte Monty, deine README.md mit fremdem Blick zu lesen und die erste Anweisung zu nennen, die Wissen voraussetzt, das du nie aufgeschrieben hast.
Aufgabe
Gib das genau vorgegebene saubere UTF-8-Projekt aus sechs Dateien ab und führe seine Fake-HTTP-Suite erneut aus. Verwende anschließend Download project, während du angemeldet bist. Halte erzeugtes JSON, abgeleiteten oder privaten Zustand, .gitignore und Git-Verlauf aus der selbst verfassten Struktur heraus. Trenne Belege aus der Quellcodebewertung von Aussagen über den Klick, PowerShell, Bereitstellung oder eine laufende API.