"""Run the repo's pinned docling on an iXBRL primary document and report what survives."""

import json
import time
from pathlib import Path

from docling.document_converter import DocumentConverter

SRC = Path(__file__).parent / "aapl-20260627.htm"

start = time.time()
converter = DocumentConverter()
result = converter.convert(SRC)
elapsed = time.time() - start
doc = result.document

texts = len(doc.texts)
tables = len(doc.tables)
pictures = len(doc.pictures)
markdown = doc.export_to_markdown()

report = {
    "status": str(result.status),
    "elapsed_s": round(elapsed, 1),
    "texts": texts,
    "tables": tables,
    "pictures": pictures,
    "markdown_chars": len(markdown),
    # Did the tagged fact values survive as text? Spot-check known Apple figures.
    "contains_ix_markup": "ix:nonFraction" in markdown,
    "contains_contextRef": "contextRef" in markdown,
}

# Grab the first table's first rows as a sample.
if doc.tables:
    t0 = doc.tables[0]
    grid = t0.export_to_dataframe()
    report["table0_shape"] = list(grid.shape)
    report["table0_head"] = grid.head(4).to_dict(orient="records")

out = Path(__file__).parent
out.joinpath("docling_report.json").write_text(json.dumps(report, indent=2, default=str))
out.joinpath("aapl-20260627.docling.md").write_text(markdown)
out.joinpath("aapl-20260627.docling.json").write_text(doc.model_dump_json())
print(json.dumps(report, indent=2, default=str)[:2000])
