This commit is contained in:
team3
2026-07-24 11:24:24 +02:00
parent f41ac76b57
commit 848c8ea1aa
41 changed files with 1776 additions and 15 deletions

View File

@@ -0,0 +1,34 @@
# Einheiten: backend/tft/cli.py
stand: f41ac76b5789
## backend/tft/cli.py::current_set
beschreibung: Liefert die aktuell aktive TFT-Set-Nummer aus dem statischen Daten-Zeiger.
input: keine Argumente; liest den vom Modul `tft.paths` bereitgestellten latest-Pointer
output: `int` die Set-Nummer aus dem gelesenen JSON
entscheidungen:
- Bricht hart ab, wenn noch keine statischen Daten existieren, statt einen Default zurückzugeben
beleg: "raise SystemExit(\"no static data yet: run `fetch-static` first\")"
- Bezieht den Set-Schlüssel ausschließlich aus dem Feld `set` des Pointer-JSONs
beleg: "return json.loads(pointer.read_text())[\"set\"]"
- Kapselt den Import von `tft.paths` lokal in der Funktion, um Modullade-Reihenfolge unabhängig zu halten
beleg: "from tft import paths"
kanten:
- wird-genutzt-von: backend/tft/cli.py::main
## backend/tft/cli.py::main
beschreibung: Stellt die Kommandozeilen-Schnittstelle des `tft`-Tools bereit und verzweigt eingegebene Subcommands auf die passenden Pipeline-Funktionen.
input: Prozess-Argumente aus `argparse` (Subcommand + Optionen wie `--set`, `--policy`, `--games`)
output: Konsolen-Statusmeldungen bzw. Fehlerausgaben; bei `refresh` ruft es rekursiv Sub-Stages als Subprozess auf
entscheidungen:
- Erlaubt ausschließlich die registrierten Subcommands, indem `required=True` gesetzt wird
beleg: "sub = parser.add_subparsers(dest=\"command\", required=True)"
- Trennt Subcommand-Implementierungen per Lazy-Import innerhalb der `elif`-Zweige
beleg: "if args.command == \"fetch-static\":"
- Bricht den `refresh`-Lauf beim ersten nicht-null Returncode eines Subprozesses ab
beleg: "if result.returncode != 0:"
- Übergibt beim `autoplay`-Subcommand die Default-Politik `econ`, falls `--policy` fehlt
beleg: "default=\"econ\""
- Nutzt beim `calibrate`-Pfad strikt Holdout-Daten via `holdout_only=True`
beleg: "holdout_only=True)"
kanten:
- wird-genutzt-von: backend/tft/cli.py::main