← Files LegalQuants TransactionalARCHIVED FILE

skills/diligence/scripts/extract_metadata_prep.py

1.28 KB · Oct 3, 2026 · 06:34 UTC

↓ Download file

#!/usr/bin/env python3
"""Public Diligence entrypoint for shared metadata preparation."""

from __future__ import annotations

import json
import runpy
import shutil
import sys
from pathlib import Path

SHARED_DIR = Path(__file__).with_name("shared")


def main() -> None:
    sys.path.insert(0, str(SHARED_DIR))
    runpy.run_path(str(SHARED_DIR / "extract_metadata_prep.py"), run_name="__main__")
    try:
        outdir = Path(sys.argv[sys.argv.index("--outdir") + 1])
    except (ValueError, IndexError):
        return
    records = outdir / "regex-metadata"
    legacy_records = outdir / "metadata"
    legacy_records.mkdir(parents=True, exist_ok=True)
    for source in sorted(records.glob("*.json")):
        shutil.copyfile(source, legacy_records / source.name)
    read_plan_path = outdir / "read-plan.json"
    if not read_plan_path.is_file():
        return
    read_plan = json.loads(read_plan_path.read_text(encoding="utf-8"))
    needs_model = sorted(
        row["id"]
        for row in read_plan.get("documents", [])
        if row.get("disposition") in {"reader-required", "regex-audit"}
    )
    (outdir / "worklist.json").write_text(
        json.dumps({"needs_model": needs_model}, indent=2, sort_keys=True) + "\n",
        encoding="utf-8",
    )


if __name__ == "__main__":
    main()

SHA-256: b28c85c5d044c21815d37b7a0056fb947edfa01163a6e87f8dc62192fbafdc26