ó
    À‘´j&
  ã                   ód   • S r SSKJrJr  SSKJrJrJrJr  SSK	J
r
  SSKJrJrJr  SSKJr  / SQrg)	ub  The dpt-3 track: digest a v2 scan response, graft it, resolve its footnotes.

The figure workflow's dpt-2 path reads a response as a flat chunks list. The
dpt-3 models return a different shape â€” one long text and a tree pointing into
it â€” and this package is the code that reads it. The orchestrator selects the
track by model name; the dpt-2 path is untouched.

Four modules, in the order the orchestrator uses them:

- `digest` turns one page's raw response into the track's records and projects
  them to the `PageScan` every downstream consumer already reads. What the
  projection leaves out â€” figure kind, structured value tables, per-value
  provenance â€” stays in the `models` records.
- `graft` writes the records into the document. Its figure graft is the shared
  `quber.core.figures.graft.graft_figures`, called so that footnote- and
  caption-labelled text under a read picture stays. It also inserts captured
  tables over regions the parse holds nothing for (`insert_orphan_tables`) and
  flags scanned tables that found no home (`unhomed_tables`).
- `footnotes` resolves each figure's markers against two sources â€” the
  correction agent's image read and the page text the graft preserved â€”
  inserts the resolved notes after the picture, and attaches each note to the
  value its label matches.
- `blocks` groups the parse's floating text by the scan's block partition, so
  a stat panel's label and value travel as one unit instead of as unrelated
  records.

Nomination upstream and the consumers of projected records â€” table capture, the
correction sweep, value reconciliation â€” are shared with the dpt-2 path. The
track differs in two places. The page list gains every page whose dpt-3
response is already stored in a local output directory, and table capture runs with
`orphans=True`, so it also captures grids over regions the parse holds nothing
for.
é    )Ú
SCAN_BLOCKÚgroup_scanned_text)ÚUnrecognizedResponseÚdigest_pageÚproject_scanÚresponse_generation)Úresolve_figure_footnotes)Úgraft_figuresÚinsert_orphan_tablesÚunhomed_tables)Ú
PageDigest)r   r   r   r   r
   r   r   r   r	   r   r   N)Ú__doc__Úquber.core.figures.dpt3.blocksr   r   Úquber.core.figures.dpt3.digestr   r   r   r   Ú!quber.core.figures.dpt3.footnotesr	   Úquber.core.figures.dpt3.graftr
   r   r   Úquber.core.figures.dpt3.modelsr   Ú__all__© ó    Ú>/home/mande/repo/quber/src/quber/core/figures/dpt3/__init__.pyÚ<module>r      s1   ðñ ÷D J÷ó õ Gß ]Ñ ]Ý 5ò�r   