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

35 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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