update
This commit is contained in:
31
.planer/einheiten/backend__tft__staticdata__fetch.py.md
Normal file
31
.planer/einheiten/backend__tft__staticdata__fetch.py.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Einheiten: backend/tft/staticdata/fetch.py
|
||||
stand: f41ac76b5789
|
||||
|
||||
## backend/tft/staticdata/fetch.py::fetch_static
|
||||
beschreibung: Lädt TFT-Rohdaten von Community Dragon, parst sie und schreibt sie zusammen mit Metadaten versioniert auf die Festplatte.
|
||||
input: optionale `set_override`-ID, sonst aktuelle Set-Auswahl der Quelldaten
|
||||
output: das geparste TFT-Statikdaten-Dictionary (zugleich als versionierte JSON-Dateien inklusive Pointer-Datei persistiert)
|
||||
entscheidungen:
|
||||
- Patch wird aus dem Content-Metadata-Endpoint auf die ersten zwei Versionssegmente reduziert.
|
||||
beleg: "patch = \".\".join(version.split(\".\")[:2])"
|
||||
- Rohdaten werden unverändert zusätzlich als `raw.json` archiviert.
|
||||
beleg: "(out_dir / \"raw.json\").write_text(json.dumps(raw))"
|
||||
- Geschriebene Domänen-Dateien werden mit eingerücktem, nicht-ASCII-escapiertem JSON serialisiert.
|
||||
beleg: "json.dumps(parsed[name], indent=1, ensure_ascii=False)"
|
||||
- Nach erfolgreichem Schreiben wird ein `latest_static_pointer` aktualisiert, damit Aufrufer das aktuelle Verzeichnis finden.
|
||||
beleg: "paths.latest_static_pointer().write_text(json.dumps(pointer, indent=1))"
|
||||
kanten:
|
||||
|
||||
## backend/tft/staticdata/fetch.py::load_static
|
||||
beschreibung: Lädt den zuletzt von `fetch_static` geschriebenen Satz normalisierter TFT-Statikdaten über den Pointer wieder ein.
|
||||
input: nichts; liest selbstständig den Pointer-Pfad aus `tft.paths`
|
||||
output: ein Dictionary mit den Schlüsseln `units`, `traits`, `items`, `augments` und `meta` aus dem zuletzt gespeicherten Statikdaten-Verzeichnis
|
||||
entscheidungen:
|
||||
- Das Zielverzeichnis wird über `paths.latest_static_pointer()` und nicht über einen Aufrufparameter bestimmt.
|
||||
beleg: "pointer = json.loads(paths.latest_static_pointer().read_text())"
|
||||
- Der `pathlib`-Import erfolgt erst innerhalb der Funktion, um den Modulimport schlank zu halten.
|
||||
beleg: "from pathlib import Path"
|
||||
- Beim Laden werden ausschließlich die fünf bekannten Domänen-Schlüssel zusammengeführt, unbekannte Einträge ignoriert.
|
||||
beleg: "for name in (\"units\", \"traits\", \"items\", \"augments\", \"meta\")"
|
||||
kanten:
|
||||
- wird-genutzt-von: backend/tft/staticdata/fetch.py::fetch_static
|
||||
Reference in New Issue
Block a user