# WERKZEUGE fuer Entwicklung, Messung und Pruefung — NICHT fuer den Live-Betrieb.
#
# ⚠ Bewusst getrennt von `requirements.txt`: der Bot soll sich auf einer frischen
# Maschine mit einer moeglichst kleinen Oberflaeche wiederherstellen lassen. scipy
# und scikit-learn haben nichts im Handelspfad zu suchen, auch wenn Backtests sie
# nutzen.
#
# Installation:  python -m pip install -r requirements-dev.txt

-r requirements.txt

# ── Pruefung (laeuft im pre-commit-Hook) ─────────────────────────────────
pytest==9.1.1
ruff==0.16.1              # ersetzt pyflakes: gleiche Befunde, deutlich schneller
pyflakes==3.4.0           # Rueckfall in `tools/check_nfalle.py`, falls ruff fehlt
# Eigenschafts-Tests auf den REINEN Funktionen (tests/test_invarianten.py).
# ⚠ Aufgenommen NACH einer Gegenprobe, nicht auf Verdacht: hypothesis findet den
#   real am 10.08. gefundenen Rundungsfehler (`frei` auf gerundetem Abstand ->
#   0,59765625 rutscht durchs 0,6-Gate) in Sekunden. Die Suite prueft sonst nur
#   BEISPIELE, und die waehle ich selbst aus - genau dort sitzt der blinde Fleck.
# ⚠ Optional: `tests/test_invarianten.py` ueberspringt sich per `importorskip`,
#   die Suite laeuft also auch ohne.
hypothesis==6.165.10

# ── Messung / Backtests ──────────────────────────────────────────────────
numpy==2.2.6
scipy==1.18.0             # `backtest_cost_gate.ci95` (Bootstrap-Konfidenzintervalle)
scikit-learn==1.9.0       # bislang ungenutzt; Kandidat fuer P(break)-Nachbau
pandas==3.0.2             # bislang ungenutzt
# Typpruefung (Aritaet) — Stufe A3 in tools/check_nfalle.py, seit 2026-08-19
ty==0.0.73
