Coverage report: 66%

Files Functions Classes

coverage.py v7.14.0, created at 2026-09-23 22:14 -0400

File class   statements missing excluded   coverage
src / quber / __init__.py (no class)   5 0 0   100%
src / quber / cli.py (no class)   570 412 2   28%
src / quber / core / __init__.py (no class)   0 0 0   100%
src / quber / core / consolidation.py HeaderConsolidator   101 41 0   59%
src / quber / core / consolidation.py (no class)   17 0 0   100%
src / quber / core / extractors / __init__.py (no class)   6 0 0   100%
src / quber / core / extractors / base.py TableExtractor   2 0 0   100%
src / quber / core / extractors / base.py ExtractedTable   3 1 0   67%
src / quber / core / extractors / base.py ExtractionRecord   0 0 0   100%
src / quber / core / extractors / base.py FilledCell   0 0 0   100%
src / quber / core / extractors / base.py LocatedMarker   0 0 0   100%
src / quber / core / extractors / base.py CellStatus   0 0 0   100%
src / quber / core / extractors / base.py GroundedCell   3 0 0   100%
src / quber / core / extractors / base.py CellFlag   0 0 0   100%
src / quber / core / extractors / base.py MergedCellBox   0 0 0   100%
src / quber / core / extractors / base.py (no class)   133 2 0   98%
src / quber / core / extractors / camelot / __init__.py (no class)   3 0 0   100%
src / quber / core / extractors / camelot / acquire.py CamelotCandidate   0 0 0   100%
src / quber / core / extractors / camelot / acquire.py (no class)   122 49 2   60%
src / quber / core / extractors / camelot / correspondence / __init__.py (no class)   2 0 0   100%
src / quber / core / extractors / camelot / correspondence / correction.py StructureCorrection   0 0 0   100%
src / quber / core / extractors / camelot / correspondence / correction.py (no class)   104 7 0   93%
src / quber / core / extractors / camelot / correspondence / geometry.py (no class)   81 22 0   73%
src / quber / core / extractors / camelot / correspondence / matching.py ChunkAssignment   0 0 0   100%
src / quber / core / extractors / camelot / correspondence / matching.py (no class)   42 27 0   36%
src / quber / core / extractors / camelot / correspondence / orchestrator.py CamelotCorrespondenceExtractor   179 146 0   18%
src / quber / core / extractors / camelot / correspondence / orchestrator.py (no class)   38 0 0   100%
src / quber / core / extractors / camelot / correspondence / recovery.py (no class)   39 27 0   31%
src / quber / core / extractors / camelot / llm / __init__.py (no class)   2 0 0   100%
src / quber / core / extractors / camelot / llm / orchestrator.py CamelotLLMTableExtractor   15 1 0   93%
src / quber / core / extractors / camelot / llm / orchestrator.py (no class)   22 0 0   100%
src / quber / core / extractors / camelot / llm / pipeline.py SequencedCandidate   0 0 0   100%
src / quber / core / extractors / camelot / llm / pipeline.py ClassifiedCandidate   0 0 0   100%
src / quber / core / extractors / camelot / llm / pipeline.py PageGroup   0 0 0   100%
src / quber / core / extractors / camelot / llm / pipeline.py UnifiedTableRow   0 0 0   100%
src / quber / core / extractors / camelot / llm / pipeline.py CorrectedTableItem   0 0 0   100%
src / quber / core / extractors / camelot / llm / pipeline.py PipelineState   0 0 0   100%
src / quber / core / extractors / camelot / llm / pipeline.py PipelineDeps   0 0 0   100%
src / quber / core / extractors / camelot / llm / pipeline.py (no class)   164 7 0   96%
src / quber / core / extractors / camelot / recapture.py (no class)   60 6 0   90%
src / quber / core / extractors / camelot / tighten.py (no class)   95 2 0   98%
src / quber / core / extractors / dual / __init__.py (no class)   4 0 0   100%
src / quber / core / extractors / dual / camelot.py (no class)   18 0 0   100%
src / quber / core / extractors / dual / models.py VisualTable   0 0 0   100%
src / quber / core / extractors / dual / models.py CamelotTable   0 0 0   100%
src / quber / core / extractors / dual / models.py DualResult   8 0 0   100%
src / quber / core / extractors / dual / models.py (no class)   20 0 0   100%
src / quber / core / extractors / dual / orchestrator.py DualFlowExtractor   8 8 0   0%
src / quber / core / extractors / dual / orchestrator.py (no class)   13 0 0   100%
src / quber / core / extractors / dual / vision.py (no class)   18 0 0   100%
src / quber / core / extractors / mock.py MockTableExtractor   4 0 0   100%
src / quber / core / extractors / mock.py (no class)   8 0 0   100%
src / quber / core / extractors / set_of_mark / __init__.py (no class)   4 0 0   100%
src / quber / core / extractors / set_of_mark / assemble.py TableAssembly   0 0 0   100%
src / quber / core / extractors / set_of_mark / assemble.py CamelotOrigin   0 0 0   100%
src / quber / core / extractors / set_of_mark / assemble.py (no class)   47 9 0   81%
src / quber / core / extractors / set_of_mark / extent.py (no class)   38 0 0   100%
src / quber / core / extractors / set_of_mark / inspection.py (no class)   48 4 0   92%
src / quber / core / extractors / set_of_mark / merge_grounding.py (no class)   392 9 0   98%
src / quber / core / extractors / set_of_mark / orchestrator.py SetOfMarkExtractor   15 15 0   0%
src / quber / core / extractors / set_of_mark / orchestrator.py (no class)   17 0 0   100%
src / quber / core / extractors / set_of_mark / pipeline.py SetOfMarkDeps   0 0 0   100%
src / quber / core / extractors / set_of_mark / pipeline.py SetOfMarkState   0 0 0   100%
src / quber / core / extractors / set_of_mark / pipeline.py LocatedTableRef   0 0 0   100%
src / quber / core / extractors / set_of_mark / pipeline.py CapturedTable   0 0 0   100%
src / quber / core / extractors / set_of_mark / pipeline.py (no class)   85 37 0   56%
src / quber / core / extractors / set_of_mark / split.py (no class)   112 23 0   79%
src / quber / core / figures / __init__.py (no class)   3 0 0   100%
src / quber / core / figures / capture.py (no class)   139 15 0   89%
src / quber / core / figures / correct.py (no class)   75 5 0   93%
src / quber / core / figures / crosscheck.py (no class)   77 5 0   94%
src / quber / core / figures / dpt3 / __init__.py (no class)   6 0 0   100%
src / quber / core / figures / dpt3 / blocks.py (no class)   75 5 0   93%
src / quber / core / figures / dpt3 / digest.py UnrecognizedResponse   0 0 0   100%
src / quber / core / figures / dpt3 / digest.py _GridText   30 3 0   90%
src / quber / core / figures / dpt3 / digest.py (no class)   116 6 0   95%
src / quber / core / figures / dpt3 / footnotes.py (no class)   161 10 0   94%
src / quber / core / figures / dpt3 / graft.py (no class)   67 6 0   91%
src / quber / core / figures / dpt3 / models.py PageDigest   0 0 0   100%
src / quber / core / figures / dpt3 / models.py DigestedFigure   0 0 0   100%
src / quber / core / figures / dpt3 / models.py DigestedTable   0 0 0   100%
src / quber / core / figures / dpt3 / models.py DigestedText   0 0 0   100%
src / quber / core / figures / dpt3 / models.py FigureValueTable   0 0 0   100%
src / quber / core / figures / dpt3 / models.py FigureValueCell   0 0 0   100%
src / quber / core / figures / dpt3 / models.py PlacedNote   0 0 0   100%
src / quber / core / figures / dpt3 / models.py ResolvedNote   0 0 0   100%
src / quber / core / figures / dpt3 / models.py (no class)   49 0 0   100%
src / quber / core / figures / geometry.py (no class)   29 4 0   86%
src / quber / core / figures / graft.py (no class)   220 13 0   94%
src / quber / core / figures / grid.py _CellText   19 0 0   100%
src / quber / core / figures / grid.py (no class)   83 2 0   98%
src / quber / core / figures / models.py FigureRecord   0 0 0   100%
src / quber / core / figures / models.py ScannedTable   0 0 0   100%
src / quber / core / figures / models.py ChartContext   0 0 0   100%
src / quber / core / figures / models.py PageScan   0 0 0   100%
src / quber / core / figures / models.py RemovedText   0 0 0   100%
src / quber / core / figures / models.py FigureValue   0 0 0   100%
src / quber / core / figures / models.py FigureValueRun   2 2 0   0%
src / quber / core / figures / models.py FigureRun   8 3 0   62%
src / quber / core / figures / models.py (no class)   88 0 0   100%
src / quber / core / figures / nominate.py NominatedPage   0 0 0   100%
src / quber / core / figures / nominate.py (no class)   74 24 0   68%
src / quber / core / figures / orchestrator.py ChartOutput   0 0 0   100%
src / quber / core / figures / orchestrator.py (no class)   211 106 0   50%
src / quber / core / figures / scan.py (no class)   39 5 0   87%
src / quber / core / figures / values.py PageFragment   0 0 0   100%
src / quber / core / figures / values.py ParsedValue   0 0 0   100%
src / quber / core / figures / values.py ReadValue   0 0 0   100%
src / quber / core / figures / values.py ScanValueParser   1 0 0   100%
src / quber / core / figures / values.py LocalValueReader   0 0 0   100%
src / quber / core / figures / values.py (no class)   158 26 0   84%
src / quber / core / fusion / __init__.py (no class)   5 0 0   100%
src / quber / core / fusion / footnotes.py FootnoteResolution   5 0 0   100%
src / quber / core / fusion / footnotes.py ResolvedFootnote   0 0 0   100%
src / quber / core / fusion / footnotes.py (no class)   136 6 0   96%
src / quber / core / fusion / fusion.py DocumentFusion   11 11 0   0%
src / quber / core / fusion / fusion.py (no class)   72 46 0   36%
src / quber / core / fusion / graft.py (no class)   327 39 0   88%
src / quber / core / fusion / heading_review.py (no class)   76 6 2   92%
src / quber / core / fusion / matching.py (no class)   142 6 0   96%
src / quber / core / fusion / models.py RegionMatch   0 0 0   100%
src / quber / core / fusion / models.py FusionResult   0 0 0   100%
src / quber / core / fusion / models.py (no class)   22 0 4   100%
src / quber / core / models.py TableMetadata   0 0 0   100%
src / quber / core / models.py (no class)   14 0 0   100%
src / quber / core / ocr / __init__.py (no class)   2 0 0   100%
src / quber / core / ocr / well.py OcrFragment   0 0 0   100%
src / quber / core / ocr / well.py PageWell   10 0 0   100%
src / quber / core / ocr / well.py DocumentWell   4 0 0   100%
src / quber / core / ocr / well.py (no class)   60 31 0   48%
src / quber / core / parsers / __init__.py (no class)   11 0 2   100%
src / quber / core / parsers / base.py Parser   0 0 1   100%
src / quber / core / parsers / base.py (no class)   4 0 1   100%
src / quber / core / parsers / docling_parser.py DoclingParser   23 17 2   26%
src / quber / core / parsers / docling_parser.py LegacyDoclingParser   5 0 0   100%
src / quber / core / parsers / docling_parser.py TunedFinancialParser   14 2 0   86%
src / quber / core / parsers / docling_parser.py (no class)   41 0 2   100%
src / quber / core / parsers / mock.py MockParser   3 0 0   100%
src / quber / core / parsers / mock.py (no class)   7 0 0   100%
src / quber / core / parsers / result.py ParsedCell   0 0 0   100%
src / quber / core / parsers / result.py PageParse   0 0 0   100%
src / quber / core / parsers / result.py PageScore   0 0 0   100%
src / quber / core / parsers / result.py TableProvenance   0 0 0   100%
src / quber / core / parsers / result.py ParseResult   29 28 0   3%
src / quber / core / parsers / result.py (no class)   77 26 3   66%
src / quber / core / printed_text.py (no class)   27 0 0   100%
src / quber / core / validate.py CountMismatch   1 0 0   100%
src / quber / core / validate.py ValidationReport   1 0 0   100%
src / quber / core / validate.py (no class)   54 4 0   93%
src / quber / db / __init__.py (no class)   4 0 0   100%
src / quber / db / connection.py (no class)   50 0 0   100%
src / quber / db / embeddings.py EmbeddingProvider   0 0 0   100%
src / quber / db / embeddings.py EmbeddingService   63 18 0   71%
src / quber / db / embeddings.py (no class)   23 0 0   100%
src / quber / db / importer.py (no class)   114 13 0   89%
src / quber / db / models.py Base   0 0 0   100%
src / quber / db / models.py Document   0 0 1   100%
src / quber / db / models.py ExtractedTable   0 0 4   100%
src / quber / db / models.py (no class)   41 0 2   100%
src / quber / files / __init__.py (no class)   0 0 0   100%
src / quber / files / cache.py (no class)   58 16 0   72%
src / quber / files / output.py (no class)   32 15 0   53%
src / quber / files / pdf.py (no class)   32 9 2   72%
src / quber / playground / __init__.py (no class)   0 0 0   100%
src / quber / playground / agent.py GroundedAnswer   0 0 0   100%
src / quber / playground / agent.py (no class)   63 27 0   57%
src / quber / playground / answers / __init__.py (no class)   3 0 0   100%
src / quber / playground / answers / declared.py DeclaredScalar   0 0 0   100%
src / quber / playground / answers / declared.py DeclaredProse   0 0 0   100%
src / quber / playground / answers / declared.py (no class)   49 20 0   59%
src / quber / playground / answers / document.py DocumentIdentity   6 0 0   100%
src / quber / playground / answers / document.py (no class)   17 0 0   100%
src / quber / playground / answers / expectation.py (no class)   34 17 0   50%
src / quber / playground / answers / figures.py (no class)   23 2 0   91%
src / quber / playground / answers / fixed.py (no class)   27 8 0   70%
src / quber / playground / answers / planned.py FieldSpec   0 0 0   100%
src / quber / playground / answers / planned.py Plan   0 0 0   100%
src / quber / playground / answers / planned.py (no class)   44 8 0   82%
src / quber / playground / answers / shapes.py Scalar   1 0 0   100%
src / quber / playground / answers / shapes.py Point   1 0 0   100%
src / quber / playground / answers / shapes.py Series   0 0 0   100%
src / quber / playground / answers / shapes.py Grid   0 0 0   100%
src / quber / playground / answers / shapes.py Prose   0 0 0   100%
src / quber / playground / answers / shapes.py Unanswerable   0 0 0   100%
src / quber / playground / answers / shapes.py Answer   0 0 0   100%
src / quber / playground / answers / shapes.py (no class)   42 0 0   100%
src / quber / playground / answers / streaming.py (no class)   29 18 0   38%
src / quber / playground / app.py ChatRequest   0 0 0   100%
src / quber / playground / app.py Reference   0 0 0   100%
src / quber / playground / app.py RetrievedInfo   0 0 0   100%
src / quber / playground / app.py ChatResponse   0 0 0   100%
src / quber / playground / app.py DocumentPatch   0 0 0   100%
src / quber / playground / app.py Flag   0 0 0   100%
src / quber / playground / app.py JobStatus   0 0 0   100%
src / quber / playground / app.py BatchRequest   0 0 0   100%
src / quber / playground / app.py (no class)   602 341 0   43%
src / quber / playground / auth.py ActivityMeter   17 17 0   0%
src / quber / playground / auth.py LoginGate   25 25 0   0%
src / quber / playground / auth.py (no class)   66 24 0   64%
src / quber / playground / backfill_boxes.py (no class)   60 60 2   0%
src / quber / playground / batch.py RunStore   4 0 0   100%
src / quber / playground / batch.py BatchRow   0 0 0   100%
src / quber / playground / batch.py RunState   0 0 0   100%
src / quber / playground / batch.py _Run   6 0 0   100%
src / quber / playground / batch.py BatchRunner   98 27 1   72%
src / quber / playground / batch.py (no class)   62 0 0   100%
src / quber / playground / benchmark / __init__.py (no class)   0 0 0   100%
src / quber / playground / benchmark / load.py (no class)   45 45 2   0%
src / quber / playground / benchmark / pages.py (no class)   26 26 2   0%
src / quber / playground / benchmark / run_shapes.py ProseAnswer   0 0 0   100%
src / quber / playground / benchmark / run_shapes.py (no class)   173 121 2   30%
src / quber / playground / benchmark / verify_gold.py (no class)   69 23 2   67%
src / quber / playground / db.py (no class)   25 3 0   88%
src / quber / playground / embedding.py (no class)   20 5 0   75%
src / quber / playground / export.py ExportRow   0 0 0   100%
src / quber / playground / export.py (no class)   107 4 0   96%
src / quber / playground / gpu.py (no class)   122 92 0   25%
src / quber / playground / ingest_fusion.py (no class)   550 485 2   12%
src / quber / playground / jobs.py BatchStore   34 34 0   0%
src / quber / playground / jobs.py (no class)   92 56 0   39%
src / quber / playground / metadata.py (no class)   75 1 0   99%
src / quber / playground / ranking.py ChunkRanker   1 0 0   100%
src / quber / playground / ranking.py PageScore   0 0 0   100%
src / quber / playground / ranking.py ChunkScore   0 0 0   100%
src / quber / playground / ranking.py Ranking   6 1 0   83%
src / quber / playground / ranking.py _Tally   10 10 0   0%
src / quber / playground / ranking.py (no class)   156 93 2   40%
src / quber / playground / retrieval.py RetrievedChunk   0 0 0   100%
src / quber / playground / retrieval.py (no class)   80 36 0   55%
src / quber / playground / selection.py Selection   0 0 0   100%
src / quber / playground / selection.py (no class)   36 36 2   0%
src / quber / playground / session.py WorkOS   0 0 0   100%
src / quber / playground / session.py Identity   0 0 0   100%
src / quber / playground / session.py SignIn   0 0 0   100%
src / quber / playground / session.py SignInError   0 0 0   100%
src / quber / playground / session.py (no class)   173 46 0   73%
src / quber / playground / storage.py (no class)   69 52 2   25%
src / quber / playground / tracing.py (no class)   13 5 0   62%
src / quber / processors / __init__.py (no class)   2 0 0   100%
src / quber / processors / period.py PeriodInference   0 0 0   100%
src / quber / processors / period.py PeriodInferenceProcessor   8 8 0   0%
src / quber / processors / period.py (no class)   16 16 0   0%
src / quber / processors / table_inference.py TableContext   0 0 0   100%
src / quber / processors / table_inference.py TableInfo   0 0 0   100%
src / quber / processors / table_inference.py ExecutiveSummary   0 0 0   100%
src / quber / processors / table_inference.py TableInferenceProcessor   149 65 0   56%
src / quber / processors / table_inference.py (no class)   47 1 2   98%
src / quber / prompts / __init__.py (no class)   2 0 0   100%
src / quber / prompts / loader.py (no class)   26 4 0   85%
src / quber / providers / __init__.py (no class)   0 0 0   100%
src / quber / providers / landing / __init__.py (no class)   2 0 0   100%
src / quber / providers / landing / client.py (no class)   64 48 0   25%
src / quber / providers / landing / orchestrator.py RunSummary   0 0 0   100%
src / quber / providers / landing / orchestrator.py (no class)   42 23 0   45%
src / quber / review / __init__.py (no class)   4 0 0   100%
src / quber / review / annotated.py (no class)   24 17 0   29%
src / quber / review / flags.py (no class)   51 3 0   94%
src / quber / review / html.py (no class)   73 41 0   44%
src / quber / settings / __init__.py LLMSettings   0 0 0   100%
src / quber / settings / __init__.py DBSettings   0 0 0   100%
src / quber / settings / __init__.py S3CacheSettings   0 0 0   100%
src / quber / settings / __init__.py EmbeddingSettings   0 0 0   100%
src / quber / settings / __init__.py LandingSettings   0 0 0   100%
src / quber / settings / __init__.py TypeSafeSettings   0 0 0   100%
src / quber / settings / __init__.py PlaygroundSettings   0 0 0   100%
src / quber / settings / __init__.py ObservabilitySettings   0 0 0   100%
src / quber / settings / __init__.py Settings   0 0 0   100%
src / quber / settings / __init__.py (no class)   102 1 0   99%
src / quber / utils / __init__.py (no class)   2 0 0   100%
src / quber / utils / cuda_runtime.py (no class)   20 3 0   85%
src / quber / utils / logging.py (no class)   37 0 0   100%
Total     9829 3386 51   66%

No items found using the specified filter.