- .vault-tools/trading-plattform-pruefung/LIESMICH.md - .vault-tools/trading-plattform-pruefung/angriffe.py - .vault-tools/trading-plattform-pruefung/browserlauf_zugang.py - .vault-tools/trading-plattform-pruefung/handabruf_kerzen.py - .vault-tools/trading-plattform-pruefung/lies_paper_protokoll.py - .vault-tools/trading-plattform-pruefung/pruef_beobachtung_echt.py - .vault-tools/trading-plattform-pruefung/start_probe_backend.py - .vault-tools/trading-plattform-pruefung/start_probe_zugang.py Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py. Co-Authored-By: Claude Opus 5 <[email protected]>
42 lines
2.3 KiB
Python
42 lines
2.3 KiB
Python
"""Liest ein Paper- oder Probe-Protokoll mit eigenem Code und fasst zusammen, was darin steht.
|
|
|
|
Koordinator-Werkzeug zu Teil 10, nicht fuers Repo. Es tut etwas und beurteilt wenig: Die Zahlen liest
|
|
der Koordinator selbst. Binaer gelesen, nur an b"\\n" getrennt.
|
|
|
|
Aufruf: python lies_paper_protokoll.py <protokoll.jsonl>
|
|
"""
|
|
|
|
import json
|
|
import sys
|
|
from collections import Counter
|
|
from pathlib import Path
|
|
|
|
zeilen = [json.loads(z) for z in Path(sys.argv[1]).read_bytes().split(b"\n") if z.strip()]
|
|
arten = Counter(z.get("art") for z in zeilen)
|
|
print("zeilen:", len(zeilen), dict(arten))
|
|
|
|
kopf = next(z for z in zeilen if z.get("art") == "kopf")
|
|
print("kopf:", {k: kopf.get(k) for k in ("modus", "agent", "instrument", "fenster", "basis_menge", "feed", "glatt_vor_schluss_min")})
|
|
|
|
takte = [z for z in zeilen if z.get("art") == "takt"]
|
|
print("takte:", len(takte), "phasen:", dict(Counter(t.get("phase") for t in takte)))
|
|
print("killswitch in takten:", dict(Counter(t.get("killswitch") for t in takte)))
|
|
print("frische kerze:", dict(Counter(t.get("frische_kerze") for t in takte)))
|
|
erste_entscheidung = next((t for t in takte if t.get("aktion") is not None), None)
|
|
if erste_entscheidung:
|
|
print("erste entscheidung: schritt", erste_entscheidung["schritt"], "kerzen", erste_entscheidung["kerzen"], "letzte_kerze", erste_entscheidung["letzte_kerze"], "aktion", erste_entscheidung["aktion"], "ziel", erste_entscheidung["zielposition"])
|
|
print("aktionen:", dict(Counter(t.get("aktion") for t in takte)))
|
|
print("positionen:", dict(Counter(t.get("position") for t in takte)))
|
|
schliesst = [t for t in takte if t.get("phase") == "schliesst"]
|
|
if schliesst:
|
|
print("schlussphase: von", schliesst[0]["letzte_kerze"], "bis", schliesst[-1]["letzte_kerze"], "positionen", [t["position"] for t in schliesst])
|
|
|
|
for order in (z for z in zeilen if z.get("art") == "order"):
|
|
print("order:", {k: order.get(k) for k in ("seite", "menge", "gefuellt", "status", "position_danach")})
|
|
for ereignis in (z for z in zeilen if z.get("art") == "ereignis"):
|
|
print("ereignis:", ereignis.get("was"), "|", str(ereignis.get("text"))[:140])
|
|
ende = [z for z in zeilen if z.get("art") == "ende"]
|
|
print("ende:", ende)
|
|
hinweise = Counter(t.get("hinweis") for t in takte if t.get("hinweis"))
|
|
print("hinweise in takten:", dict(hinweise))
|