#!/usr/bin/env python3 """Precise (id,line) -> end_line/bytes delta between my parse and the pin.""" import importlib.util import json import re import sys BEGIN = "" END = "" doc = open("/root/troupe-standup/docs/queue-index.md", encoding="utf-8").read() body = doc.split(BEGIN, 1)[1].split(END, 1)[0] m = re.search(r"```json\n(.*?)\n```", body, re.S) pinned = json.loads(m.group(1)) SPEC = importlib.util.spec_from_file_location( "qe", "/root/troupe-standup/wizard-work/ledger/queue-extract.py") qm = importlib.util.module_from_spec(SPEC) SPEC.loader.exec_module(qm) mine, _, _ = qm.extract() pin_by_key = {(it["id"], it["line"]): it for it in pinned["items"]} mine_by_key = {(it["id"], it["line"]): it for it in mine} delta = [] for k in sorted(set(pin_by_key) & set(mine_by_key), key=lambda t: (t[1], t[0])): pa, ma = pin_by_key[k], mine_by_key[k] if pa["end_line"] != ma["end_line"] or pa["lines"] != ma["lines"] or pa["bytes"] != ma["bytes"]: delta.append((k, pa, ma)) print("total shared keys:", len(pin_by_key)) print("keys with end_line/lines/bytes divergence:", len(delta)) for k, pa, ma in delta: print(" %s mine(end=%-5d lines=%-4d by=%-6d) pin(end=%-5d lines=%-4d by=%-6d)" % (k, ma["end_line"], ma["lines"], ma["bytes"], pa["end_line"], pa["lines"], pa["bytes"])) content = open("/root/troupe-standup/WORK-QUEUE.md", encoding="utf-8").read() lines, trailing = qm.split_lines(content) fenced = qm.fence_mask(lines) items, end_of = qm.build_items(lines, fenced) sizes2 = [qm.line_bytes(ln, i == len(lines) - 1, trailing) for i, ln in enumerate(lines)] spans = sorted([(it["line"], end_of(it["line"])) for it in items]) overlap = 0 prev_end = 0 for (a, b) in spans: if a < prev_end + 1: overlap += 1 prev_end = max(prev_end, b) print("items:", len(items), "first:", items[0]["line"], "last:", items[-1]["end_line"]) print("overlap count:", overlap) print("end of last:", items[-1]["end_line"], "file lines:", len(lines)) print("my item byte sum:", sum(it["bytes"] for it in items))