35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
import sys, json, contextlib, io
|
|
sys.path.insert(0, ".")
|
|
from pathlib import Path
|
|
import smart_extractor as se
|
|
from _lines import separator_barriers
|
|
|
|
D = Path("output/AndhraJyothi_Siddipet District_20260602_20260603_144919/pages")
|
|
|
|
|
|
def blocks_for(pg, strip_mc):
|
|
png = D / f"page_{pg:03d}.png"
|
|
regs = json.loads((D / f"page_{pg:03d}.regions.json").read_text())["regions"]
|
|
regs = se.drop_masthead_regions(regs, "andhra_jyothi", pg, png)
|
|
ds = se.find_article_starts_by_dateline(regs, str(png), "andhra_jyothi")
|
|
bars = separator_barriers(str(png), regs)
|
|
if strip_mc:
|
|
bars = [{k: v for k, v in b.items() if k not in ("mc", "anchor")} for b in bars]
|
|
bl = se.cluster_all_article_blocks(regs, dateline_starts=ds, sep_lines=bars)
|
|
return {b["anchor_id"]: tuple(sorted(b["members"])) for b in bl}
|
|
|
|
|
|
for pg in (1, 2, 3, 4):
|
|
with contextlib.redirect_stdout(io.StringIO()):
|
|
cur = blocks_for(pg, False)
|
|
base = blocks_for(pg, True)
|
|
print(f"==== PAGE {pg} ====")
|
|
changed = False
|
|
for k in sorted(set(cur) | set(base)):
|
|
if cur.get(k) != base.get(k):
|
|
changed = True
|
|
print(f" anchor {k}: base={base.get(k)}")
|
|
print(f" curr={cur.get(k)}")
|
|
if not changed:
|
|
print(" (no change from mc clamp)")
|