Coverage for src / quber / core / extractors / dual / __init__.py: 100%
4 statements
« prev ^ index » next coverage.py v7.14.0, created at 2026-09-23 22:14 -0400
« prev ^ index » next coverage.py v7.14.0, created at 2026-09-23 22:14 -0400
1"""Two independent table-extraction flows, run side by side.
3DEPRECATED and dormant: this side-by-side, un-reconciled exploration was the
4step before `SetOfMarkExtractor`, which fuses the two (vision directs Camelot).
5Kept importable for comparison only; do not build new work on it.
8A *visual* flow identifies tables by looking at the rendered page (the grid
9locator owns the table count and identity), and a *camelot* flow extracts
10cell grids straight from the PDF. The two run concurrently and each emits
11its own result; nothing here matches or reconciles them — that is a later
12step. This package deliberately avoids the detector-driven box repair,
13targeted recovery, and grid escalation of the correspondence flow: each
14flow stands on its own.
15"""
17from __future__ import annotations
19from quber.core.extractors.dual.models import CamelotTable, DualResult, VisualTable
20from quber.core.extractors.dual.orchestrator import DualFlowExtractor
22__all__ = ["CamelotTable", "DualResult", "VisualTable", "DualFlowExtractor"]