Explorer
/tmp/p2t_fix2.py
← Zurück ↓ Download
#!/usr/bin/env python3
"""
AA-043-P2T v2: line-range-based removal of the legacy post-queue path.
Works on exact line numbers found by scanning, preserving indentation of
the surrounding try-block.
"""
p = "/opt/struktur/obsidian-graphiti-import/importer.py"
lines = open(p, encoding="utf-8").read().split("\n")

# locate markers (1-based line numbers from sed output: 257..263)
i_transition = next(i for i, l in enumerate(lines) if "POST /episodes" in l)
i_result = i_transition + 1
assert "result=post(row)" in lines[i_result]
i_verified = next(i for i, l in enumerate(lines) if l.strip() == "verified=check(row)")
# find end: the line with done+=1 (end of legacy verified block)
i_done = next(i for i, l in enumerate(lines) if "'done','verified','complete'" in l)
print("removing lines", i_verified + 1, "to", i_done + 1)
del lines[i_verified:i_done + 1]

# replace the transition+result line
new_lines = [
    "    transition(c,row['id'],'processing','processing','AA-043 reconciliation enqueue',started); c.commit()",
    "    result=post(row); c.execute('update files set attempts=attempts+1,last_attempt=? where id=?',(NOW(),row['id']))",
    "    if result.get('status')=='queued':",
    "     transition(c,row['id'],'queued','aa043_queued','AA-043 queued for single writer (action='+str(result.get('action'))+')',started); c.commit(); done+=1; continue",
    "    if result.get('status')=='no_write':",
    "     transition(c,row['id'],'done','aa043_no_write','AA-043: source already present, no write needed',started); c.commit(); done+=1; continue",
    "    if result.get('status')=='blocked':",
    "     transition(c,row['id'],'review','aa043_blocked','AA-043 blocked classification: '+str(result.get('classification')),started); c.commit(); continue",
    "    raise RuntimeError('aa043_bridge unknown status: '+str(result))",
]
lines[i_transition:i_result + 1] = new_lines

open(p, "w", encoding="utf-8").write("\n".join(lines))
import py_compile
py_compile.compile(p, doraise=True)
print("P2T fix applied + SYNTAX_OK")