Files
tft/.planer/einheiten/backend__tft__constants__loader.py.md
2026-07-24 11:24:24 +02:00

1.7 KiB
Raw Permalink Blame History

Einheiten: backend/tft/constants/loader.py

stand: f41ac76b57

backend/tft/constants/loader.py::load_constants

beschreibung: Lädt die TOML-Konstantendatei für ein gegebenes Set und gibt das eingelesene Dict zurück. input: set_number (int) die zu ladende Set-Nummer. output: dict die deserialisierten Konstanten aus der TOML-Datei. entscheidungen:

  • Fehlt die Set-Datei, bricht der Lader mit einer FileNotFoundError ab und gibt einen Hinweis zur Behebung. beleg: "if not path.exists():"
  • Die Datei wird im Binary-Modus geöffnet, da tomllib rohe Bytes erwartet. beleg: "with path.open("rb") as f:"
  • Geladene Werte werden unmittelbar über validate einer Konsistenzprüfung unterzogen. beleg: "validate(c)" kanten:
  • ruft-auf: backend/tft/constants/loader.py::validate

backend/tft/constants/loader.py::validate

beschreibung: Validiert die Struktur und Plausibilität der geladenen Konstanten und wirft bei Verstößen ValueError. input: c (dict) das zuvor aus TOML geladene Konstanten-Dict. output: None signalisiert Gültigkeit durch stilles Zurückkehren oder Auslösen einer Ausnahme. entscheidungen:

  • Jede Shop-Odds-Zeile muss genau 5 Einträge besitzen. beleg: "if len(row) != 5:"
  • Die Pool-Größenliste muss exakt 5 Kostenstufen umfassen. beleg: "if len(c["pool"]["sizes"]) != 5:"
  • Die Anzahl der XP-Stufen-Übergänge muss zur maximalen Stufe passen (to_next = max_level 1). beleg: "if len(xp["to_next"]) != xp["max_level"] - 1:"
  • Die streak_gold-Tabelle muss aufsteigend nach Streak-Länge sortiert sein. beleg: "if streaks != sorted(streaks):"
  • Jede Shop-Odds-Zeile muss in Summe genau 100 ergeben. beleg: "if sum(row) != 100:" kanten:
  • wird-genutzt-von: backend/tft/constants/loader.py::load_constants