Coverage for src / quber / core / extractors / camelot / llm / __init__.py: 100%

2 statements  

« prev     ^ index     » next       coverage.py v7.14.0, created at 2026-09-23 22:14 -0400

1""" 

2CamelotLLMTableExtractor — Camelot for cell values, LLM for structure. 

3 

4The integrity contract: 

5 

6- Camelot DataFrame numeric values flow into the output unchanged. 

7- The page PNG raster flows into both the count-tables audit and the 

8 structure-correction call. 

9- The LLM is forbidden from touching numbers (enforced by the system 

10 prompt in `quber.agents.llm_client`). 

11 

12Camelot output from both flavors flows into the classifier (drops 

13non-tables) and then the unifier (combines the flavor outputs per page). 

14 

15The package is split by what a reader needs in view at once: 

16 

17- `orchestrator` — the public face: constructor defaults, deps wiring, 

18 `extract_tables` / `extract_tables_sync`. 

19- `pipeline` — the pydantic-graph async graph: edge payload models, 

20 state/deps, steps, and the builder (the graph topology notes live on 

21 its module docstring). 

22 

23The Camelot layer (page rendering, both flavors in spawn-context 

24subprocesses, content-empty shell detection) is shared with the 

25correspondence extractor and lives in 

26`quber.core.extractors.camelot.acquire`. 

27""" 

28 

29from quber.core.extractors.camelot.llm.orchestrator import CamelotLLMTableExtractor 

30 

31__all__ = ["CamelotLLMTableExtractor"]