parse-bench 1.0.1__tar.gz → 1.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {parse_bench-1.0.1 → parse_bench-1.0.2}/CHANGELOG.md +18 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/PKG-INFO +1 -1
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/__init__.py +1 -1
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_adapters/adapters.py +46 -3
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_chart.py +85 -12
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_chart_data_point_rule.py +74 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/.gitignore +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/LICENSE +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/README.md +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/pyproject.toml +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/analysis/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/analysis/aggregation_report.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/analysis/cli.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/analysis/comparison.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/analysis/comparison_core.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/analysis/comparison_report.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/analysis/detailed_report.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/analysis/leaderboard_report.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/analysis/metric_definitions.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/cli.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/data/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/data/cli.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/data/download.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/cli.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/base.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/extract.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/layoutdet.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/parse.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/qa.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_adapters/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_adapters/base.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_adapters/registry.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/base.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/mappers.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/projection.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/registry.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metric_aggregation.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/constants.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/core.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/evaluate.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/geometry.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/text_utils.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/base.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/downstream/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/json_subset_match.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/json_subset_match_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/list_unwrap.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/rule_based_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/test_rules.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/test_types.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/core.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/extract_adapter.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/parse_adapter.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/rule_filters.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/value_compare.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/layoutdet/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/layoutdet/classification_utils.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/layoutdet/iou.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/_vendor_grits_reference.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/cross_page_table_consistency.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/emphasis_spans.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/fast_tree_edit.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/grits_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/grits_reference_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/header_accuracy_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/llm_normalization/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/llm_normalization/base.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/llm_normalization/config.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/llm_normalization/postprocess.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/llm_normalization/strategy_judge.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/mermaid_graph.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rule_based_judge_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rule_based_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_bag.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_base.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_diagram.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_form.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_formatting.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_heading.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_list.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_page_decoration.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_table.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_text.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_watermark.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/structural_consistency_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_extraction.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_merging.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_pairing.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_parsing.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_record_match_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_splitting.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_title_stripping.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/teds_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/test_rules.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/test_types.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/text_content_projection.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/text_similarity_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/utils.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/qa/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/qa/answer_comparison.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/qa/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/qa/llm_service.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/reports/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/reports/csv.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/reports/html.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/reports/markdown.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/reports/rule_csv.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/runner.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/stats.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/extensions.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/geometry/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/geometry/rotated_bbox.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/chunkr_layout_extraction.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/cli.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/layout_extraction.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/pipelines/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/pipelines/extract.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/pipelines/layout.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/pipelines/parse.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/pipelines.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/base.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/cancellation.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/extract/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/extract/citations.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/extract/extend.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/extract/llamaextract_v2_api.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/adapters.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/base.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/chandra.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/docling.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/dots_ocr.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/layout_v3.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/layout_v3_byoc.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/paddle.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/qwen3vl.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/surya.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/yolo.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/_docling_common.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/_layout_utils.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/amazon_nova.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/anthropic.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/azure_document_intelligence.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/chandra2.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/chunkr.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/databricks_ai_parse.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/datalab.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/deepseekocr2.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/docling.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/docling_serve.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/dots_ocr.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/extend_parse.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/falconocr.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/florin_parser_nano.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/gemma4.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/glm_zai.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/google.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/google_agentic_vision.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/google_docai.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/google_docai_layout_normalization.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/granite_vision.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/infinity_parser2.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/kdl_frontier_nano.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/landingai.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/liteparse.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/llamaparse.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/llamaparse_v2_normalization.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/markitdown.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/mineru25.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/mineru2605pro.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/mineru_diffusion.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/mistral_ocr.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/nemotron_omni.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/oi_parser.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/openai.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/opendataloader.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/paddleocr.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/pdf_inspector.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/pulse.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/pymupdf.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/pymupdf4llm.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/pypdf.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/qwen.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/rakedoc_nano.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/reducto.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/surya2.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/tesseract.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/textract.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/unlimitedocr.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/unstructured.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/warp_ingest.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/providers/registry.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/renormalize.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/inference/runner.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/layout_label_mapping.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/layout_projection.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/pipeline/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/pipeline/cli.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/py.typed +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/schemas/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/schemas/evaluation.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/schemas/extract_output.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/schemas/layout_detection_output.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/schemas/layout_ontology.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/schemas/metrics.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/schemas/parse_output.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/schemas/pipeline.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/schemas/pipeline_io.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/schemas/product.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/test_cases/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/test_cases/bbox_value_strict_comparator.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/test_cases/extract_field_paths.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/test_cases/layout_attribution_generation.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/test_cases/loader.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/test_cases/parse_rule_schemas.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/test_cases/rule_filters.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/test_cases/rule_ids.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/test_cases/schema.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/utils/__init__.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/utils/gemini_layout_utils.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/utils/text_aggregation.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/analysis/test_comparison_consistency.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/analysis/test_comparison_core.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/analysis/test_comparison_directory_suffix.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/analysis/test_detailed_report.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/evaluators/test_extract_empty_expected_output.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/evaluators/test_parse_evaluator_layout_rule_filter.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/evaluators/test_parse_evaluator_styling_rollup.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/evaluators/test_parse_evaluator_table_pages.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_adapters/test_docling_parse_layout_adapter.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_adapters/test_llamaparse_attribution_scope.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_adapters/test_llamaparse_canonical_layout_pages.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_label_mappers/test_llamaparse_label_mapper.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_label_mappers/test_projection_attributes.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_label_mappers/test_projection_dual_read.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_label_mappers/test_pymupdf4llm_label_mapper.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/attribution/test_attribution_overclaim.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/extract/test_json_subset_match.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/field_grounding/test_extract_adapter.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/layoutdet/test_classification_utils_paging.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/layoutdet/test_rotated_iou.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_chart_label_punctuation.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_cross_page_table_consistency_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_degenerate_marker_rules.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_diagram_rules.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_fast_table_parity.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_form_field_rule.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_formatting_rule_adjacent_spans.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_grits_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_grits_perf_equivalence.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_grits_trm_composite.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_header_accuracy_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_heading_structure_rule.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_merge_preceding_titles.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_normalize_cell_text.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_normalize_text_inline_tag_separator.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_page_decoration_rule.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_combining_mark_tokenization.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_formatting_rule_paragraph_spans.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_formatting_rule_quotes.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_formatting_rule_span_scope.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_list_level_rule.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_table_cell_augmentation.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_text_order_rule_html.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_text_presence_rule.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_relaxed_normalize_cell_text.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_rule_metric_budget_and_bag_images.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_rule_metric_side_inputs.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_caption_title_band.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_cell_inline_marker_separator.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_dot_leaders.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_extraction.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_marker_cells_rule.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_merging_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_pairing.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_record_match_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_row_header_th.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_splitting.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_tbody_provenance.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_title_stripping.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_teds_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_text_color_rule.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_text_content_projection.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_text_similarity_metric.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_title_hierarchy_inapplicable.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_watermark_removal_rule.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/qa/test_answer_comparison_exact_choice.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/test_cli_detailed_report_nonfatal.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/test_runner_aggregation.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/test_runner_result_files.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/test_runner_worker_timeout.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/evaluation/test_stats.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/geometry/test_rotated_bbox.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/extract/test_extend_cost_stats.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/extract/test_extend_schema_adapter.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_amazon_nova.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_anthropic_pricing.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_azure_document_intelligence_layout.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_chandra2_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_datalab.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_deepseekocr2_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_extend_parse_pages.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_falconocr_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_gemma4_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_glm_zai.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_google_parse_pricing.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_granite_vision_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_infinity_parser2.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_kdl_frontier_nano.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_layout_coordinate_frames.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_layout_utils.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_liteparse_layout.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_llamaparse_picture_type.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_llamaparse_polling.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_llamaparse_usage_metadata.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_llamaparse_v2_normalization.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_llamaparse_v2_null_page_fields.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_mineru25_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_mineru2605pro_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_mineru_diffusion_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_nemotron_omni_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_openai_parse_errors.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_paddleocr_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_pymupdf4llm.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_qwen.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_reducto_normalize.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_surya2_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_textract_cost.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_unlimitedocr_multipage.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_warp_ingest.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/test_cli.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/test_layout_extraction.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/test_parse_pipelines.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/test_renormalize.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/inference/test_runner.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/test_cases/test_loader_stem_twins.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/test_cases/test_parse_rule_schemas.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/test_cases/test_rule_ids.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/test_evaluation_schema_extra_fields.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/test_extensions.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/parse_bench/test_layout_label_mapping_code_alias.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/test_data_dir_routing.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/test_extract_integration.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/test_llamaparse_base_url.py +0 -0
- {parse_bench-1.0.1 → parse_bench-1.0.2}/tests/test_pulse_public_api.py +0 -0
|
@@ -4,6 +4,24 @@ All notable changes to `parse-bench` are recorded here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project uses
|
|
5
5
|
[Semantic Versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [1.0.2] - 2026-09-04
|
|
8
|
+
|
|
9
|
+
Ports two fixes that landed in the internal harness while 1.0.1 was being cut.
|
|
10
|
+
|
|
11
|
+
### Scoring (changes evaluation numbers)
|
|
12
|
+
- `chart_data_point`: number parsing accepts accounting negatives (`(4)`,
|
|
13
|
+
`$(4)`, `($4)`, trailing minus), the `bn` billion suffix, and no longer
|
|
14
|
+
reads a comma followed by a space as a decimal separator. A numeric rule
|
|
15
|
+
value no longer fuzzy-matches a compound cell (`249` vs `249, 188`); a cell
|
|
16
|
+
that carries one numeric token plus an axis unit (`68.7 days`) does match.
|
|
17
|
+
A repeated column header after a body section label counts as local scope
|
|
18
|
+
only when the complete pair precedes the candidate.
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
- Granular pages carry a `cells` layer; the LlamaParse adapter reads the
|
|
22
|
+
provider-neutral `granular_layers` on normalized pages before falling back
|
|
23
|
+
to the grounded-page payload.
|
|
24
|
+
|
|
7
25
|
## [1.0.1] - 2026-09-03
|
|
8
26
|
|
|
9
27
|
Harness-facing release: no evaluation number changes. Everything here lets a
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: parse-bench
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: ParseBench: a benchmark and evaluation harness for document parsing systems on real-world enterprise documents
|
|
5
5
|
Project-URL: Homepage, https://parsebench.ai
|
|
6
6
|
Project-URL: Repository, https://github.com/run-llama/ParseBench
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_adapters/adapters.py
RENAMED
|
@@ -4,7 +4,7 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import re
|
|
6
6
|
from collections.abc import Sequence
|
|
7
|
-
from dataclasses import dataclass
|
|
7
|
+
from dataclasses import dataclass, field
|
|
8
8
|
from typing import Any, cast
|
|
9
9
|
|
|
10
10
|
from parse_bench.evaluation.layout_adapters.base import LayoutAdapter
|
|
@@ -60,6 +60,7 @@ class _GranularPage:
|
|
|
60
60
|
page_number: int
|
|
61
61
|
lines: list[_GranularTextUnit]
|
|
62
62
|
words: list[_GranularTextUnit]
|
|
63
|
+
cells: list[_GranularTextUnit] = field(default_factory=list)
|
|
63
64
|
|
|
64
65
|
|
|
65
66
|
@register_layout_adapter("__default__", priority=-100)
|
|
@@ -213,8 +214,12 @@ class LlamaParseLayoutAdapter(LayoutAdapter):
|
|
|
213
214
|
)
|
|
214
215
|
|
|
215
216
|
def to_granular_pages(self, inference_result: InferenceResult) -> list[_GranularPage]:
|
|
216
|
-
if isinstance(inference_result.output, ParseOutput)
|
|
217
|
-
|
|
217
|
+
if isinstance(inference_result.output, ParseOutput):
|
|
218
|
+
normalized_pages = _build_normalized_granular_pages(inference_result.output.layout_pages)
|
|
219
|
+
if normalized_pages:
|
|
220
|
+
return normalized_pages
|
|
221
|
+
if inference_result.output.grounded_pages:
|
|
222
|
+
return _build_llamaparse_granular_pages_from_payload(inference_result.output.grounded_pages)
|
|
218
223
|
|
|
219
224
|
raw_output = inference_result.raw_output if isinstance(inference_result.raw_output, dict) else {}
|
|
220
225
|
grounded_pages = raw_output.get("v2_grounded_items", raw_output.get("grounded_items"))
|
|
@@ -284,6 +289,44 @@ class WarpIngestLayoutAdapter(LayoutAdapter):
|
|
|
284
289
|
)
|
|
285
290
|
|
|
286
291
|
|
|
292
|
+
def _build_normalized_granular_pages(layout_pages: list[Any]) -> list[_GranularPage]:
|
|
293
|
+
"""Read provider-neutral granular layers retained on normalized Parse pages."""
|
|
294
|
+
pages: list[_GranularPage] = []
|
|
295
|
+
for page in layout_pages:
|
|
296
|
+
units_by_granularity: dict[str, list[_GranularTextUnit]] = {
|
|
297
|
+
"line": [],
|
|
298
|
+
"word": [],
|
|
299
|
+
"cell": [],
|
|
300
|
+
}
|
|
301
|
+
for layer in page.granular_layers:
|
|
302
|
+
if layer.granularity not in units_by_granularity:
|
|
303
|
+
continue
|
|
304
|
+
for unit in layer.units:
|
|
305
|
+
units_by_granularity[layer.granularity].append(
|
|
306
|
+
_GranularTextUnit(
|
|
307
|
+
text=unit.text,
|
|
308
|
+
bbox=_GranularSegment(
|
|
309
|
+
x=unit.bbox.x,
|
|
310
|
+
y=unit.bbox.y,
|
|
311
|
+
w=unit.bbox.w,
|
|
312
|
+
h=unit.bbox.h,
|
|
313
|
+
r=unit.bbox.r,
|
|
314
|
+
),
|
|
315
|
+
order_index=unit.order_index,
|
|
316
|
+
)
|
|
317
|
+
)
|
|
318
|
+
if any(units_by_granularity.values()):
|
|
319
|
+
pages.append(
|
|
320
|
+
_GranularPage(
|
|
321
|
+
page_number=page.page_number,
|
|
322
|
+
lines=units_by_granularity["line"],
|
|
323
|
+
words=units_by_granularity["word"],
|
|
324
|
+
cells=units_by_granularity["cell"],
|
|
325
|
+
)
|
|
326
|
+
)
|
|
327
|
+
return pages
|
|
328
|
+
|
|
329
|
+
|
|
287
330
|
def _build_llamaparse_granular_pages_from_payload(grounded_pages: Any) -> list[_GranularPage]:
|
|
288
331
|
if not isinstance(grounded_pages, list):
|
|
289
332
|
return []
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_chart.py
RENAMED
|
@@ -45,6 +45,7 @@ def normalize_number_string(s: str) -> float | None:
|
|
|
45
45
|
|
|
46
46
|
Handles:
|
|
47
47
|
- Currency symbols: $, €, £, ¥
|
|
48
|
+
- Accounting negatives: (4), $(4), ($4), and trailing minus
|
|
48
49
|
- Thousands separators: commas
|
|
49
50
|
- Suffixes: k, K, m, M, million, billion, b, B, etc.
|
|
50
51
|
- Percentage signs
|
|
@@ -61,15 +62,19 @@ def normalize_number_string(s: str) -> float | None:
|
|
|
61
62
|
if not s:
|
|
62
63
|
return None
|
|
63
64
|
|
|
64
|
-
# Remove whitespace and normalize
|
|
65
|
-
s = s.strip()
|
|
65
|
+
# Remove whitespace / approximate prefixes and normalize sign glyphs.
|
|
66
|
+
s = re.sub(r"^[~≈]\s*", "", s.strip().replace("−", "-"))
|
|
66
67
|
|
|
67
|
-
#
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
# Accounting reports commonly print negatives with parentheses, sometimes with
|
|
69
|
+
# the currency symbol outside them ("$(4)") and sometimes inside ("($4)").
|
|
70
|
+
negative = False
|
|
71
|
+
s = re.sub(r"[$€£¥]", "", s).strip()
|
|
72
|
+
if len(s) >= 2 and s.startswith("(") and s.endswith(")"):
|
|
73
|
+
negative = True
|
|
74
|
+
s = s[1:-1].strip()
|
|
75
|
+
if s.endswith("-"):
|
|
76
|
+
negative = not negative
|
|
77
|
+
s = s[:-1].strip()
|
|
73
78
|
|
|
74
79
|
# Remove percentage sign (but remember the value)
|
|
75
80
|
s = s.rstrip("%")
|
|
@@ -85,7 +90,7 @@ def normalize_number_string(s: str) -> float | None:
|
|
|
85
90
|
multiplier = 1.0
|
|
86
91
|
suffix_patterns = [
|
|
87
92
|
(r"(?i)\s*(trillion|trill|trn)$", 1e12),
|
|
88
|
-
(r"(?i)\s*(billion|bill|bln)$", 1e9),
|
|
93
|
+
(r"(?i)\s*(billion|bill|bln|bn)$", 1e9),
|
|
89
94
|
(r"(?i)\s*(million|mill|mln)$", 1e6),
|
|
90
95
|
(r"(?i)\s*t$", 1e12),
|
|
91
96
|
(r"(?i)\s*g$", 1e9), # G = giga = billion
|
|
@@ -102,7 +107,8 @@ def normalize_number_string(s: str) -> float | None:
|
|
|
102
107
|
|
|
103
108
|
# Try to parse as float
|
|
104
109
|
try:
|
|
105
|
-
|
|
110
|
+
value = float(s) * multiplier
|
|
111
|
+
return -value if negative else value
|
|
106
112
|
except ValueError:
|
|
107
113
|
return None
|
|
108
114
|
|
|
@@ -120,7 +126,7 @@ def _normalize_number_candidates(s: str) -> list[float]:
|
|
|
120
126
|
if val is not None:
|
|
121
127
|
candidates.append(val)
|
|
122
128
|
# If s contains a comma, also try the decimal-separator interpretation.
|
|
123
|
-
if "," in s:
|
|
129
|
+
if "," in s and not re.search(r",\s", s):
|
|
124
130
|
val2 = normalize_number_string(s.replace(",", "."))
|
|
125
131
|
if val2 is not None and val2 not in candidates:
|
|
126
132
|
candidates.append(val2)
|
|
@@ -264,11 +270,28 @@ class ChartDataPointRule(ParseTestRule):
|
|
|
264
270
|
# Try exact fuzzy match first
|
|
265
271
|
threshold = max(0.5, 1.0 - (self.max_diffs / max(len(value), 1)))
|
|
266
272
|
similarity = fuzz.ratio(value, cell_text) / 100.0
|
|
273
|
+
numeric_rule = self.normalize_numbers and bool(extract_numeric_parts(value))
|
|
267
274
|
|
|
268
|
-
|
|
275
|
+
# Fuzzy text distance is not meaningful for numeric rules:
|
|
276
|
+
# ``249`` must not match the compound cell ``249, 188``.
|
|
277
|
+
if not numeric_rule and similarity >= threshold:
|
|
269
278
|
matches.append((row_idx, col_idx))
|
|
270
279
|
elif self.normalize_numbers and numbers_match(value, cell_text, self.relative_tolerance):
|
|
271
280
|
matches.append((row_idx, col_idx))
|
|
281
|
+
elif self.normalize_numbers:
|
|
282
|
+
# Parsers often retain the axis unit in a numeric cell
|
|
283
|
+
# (for example ``68.7 days``) even when the chart rule
|
|
284
|
+
# stores only the numeric datum. Accept that form only
|
|
285
|
+
# when the cell contains one numeric token; a cell such as
|
|
286
|
+
# ``249, 188`` remains ambiguous and must not satisfy
|
|
287
|
+
# either value independently.
|
|
288
|
+
numeric_parts = extract_numeric_parts(cell_text)
|
|
289
|
+
if len(numeric_parts) == 1 and numbers_match(
|
|
290
|
+
value,
|
|
291
|
+
numeric_parts[0],
|
|
292
|
+
self.relative_tolerance,
|
|
293
|
+
):
|
|
294
|
+
matches.append((row_idx, col_idx))
|
|
272
295
|
|
|
273
296
|
# Fallback: try composite value decomposition for values like "25 (13.0%)"
|
|
274
297
|
# where the number and percentage are in adjacent cells.
|
|
@@ -499,8 +522,58 @@ class ChartDataPointRule(ParseTestRule):
|
|
|
499
522
|
if (header_row, value_col) not in table_data.header_cells:
|
|
500
523
|
add(table_array[header_row, value_col])
|
|
501
524
|
|
|
525
|
+
# A chart data table may repeat a column header after a body section
|
|
526
|
+
# label, for example ``Urban`` followed by ``[blank], Total, Rural``.
|
|
527
|
+
# Some parsers preserve both rows as ``td`` cells. Treat them as local
|
|
528
|
+
# scope only when the complete pair occurs before this candidate. A
|
|
529
|
+
# lone body row or a lone header-like row is never allowed to leak.
|
|
530
|
+
body_section_scope = self._candidate_body_section_scope(
|
|
531
|
+
table_array,
|
|
532
|
+
value_row,
|
|
533
|
+
value_col,
|
|
534
|
+
table_data,
|
|
535
|
+
)
|
|
536
|
+
for item in body_section_scope:
|
|
537
|
+
add(item)
|
|
538
|
+
|
|
502
539
|
return scope
|
|
503
540
|
|
|
541
|
+
def _candidate_body_section_scope( # type: ignore[no-untyped-def]
|
|
542
|
+
self,
|
|
543
|
+
table_array,
|
|
544
|
+
value_row: int,
|
|
545
|
+
value_col: int,
|
|
546
|
+
table_data: TableData,
|
|
547
|
+
) -> list[str]:
|
|
548
|
+
"""Return a paired body section label and repeated column header."""
|
|
549
|
+
if value_row not in table_data.tbody_rows:
|
|
550
|
+
return []
|
|
551
|
+
|
|
552
|
+
_, cols = table_array.shape
|
|
553
|
+
repeated_header: str | None = None
|
|
554
|
+
|
|
555
|
+
for row_idx in range(value_row - 1, -1, -1):
|
|
556
|
+
if row_idx not in table_data.tbody_rows:
|
|
557
|
+
break
|
|
558
|
+
|
|
559
|
+
cells = [normalize_text(str(table_array[row_idx, col_idx])) for col_idx in range(cols)]
|
|
560
|
+
nonempty = [cell for cell in cells if cell]
|
|
561
|
+
if not nonempty:
|
|
562
|
+
continue
|
|
563
|
+
|
|
564
|
+
all_text = all(not extract_numeric_parts(cell) for cell in nonempty)
|
|
565
|
+
if repeated_header is None:
|
|
566
|
+
if all_text and not cells[0] and value_col < cols and cells[value_col]:
|
|
567
|
+
repeated_header = cells[value_col]
|
|
568
|
+
continue
|
|
569
|
+
|
|
570
|
+
# Colspan expansion may repeat the section label in every cell,
|
|
571
|
+
# so compare unique non-empty text rather than physical cells.
|
|
572
|
+
if all_text and len(set(nonempty)) == 1:
|
|
573
|
+
return [nonempty[0], repeated_header]
|
|
574
|
+
|
|
575
|
+
return []
|
|
576
|
+
|
|
504
577
|
def _labels_match_candidate_scope( # type: ignore[no-untyped-def]
|
|
505
578
|
self,
|
|
506
579
|
table_array,
|
|
@@ -5,6 +5,7 @@ import pytest
|
|
|
5
5
|
from parse_bench.evaluation.metrics.parse.rules_chart import (
|
|
6
6
|
ChartDataPointRule,
|
|
7
7
|
extract_numeric_parts,
|
|
8
|
+
numbers_match,
|
|
8
9
|
)
|
|
9
10
|
from parse_bench.evaluation.metrics.parse.table_parsing import (
|
|
10
11
|
parse_html_tables,
|
|
@@ -37,6 +38,9 @@ class TestExtractNumericParts:
|
|
|
37
38
|
def test_thousands_separator(self):
|
|
38
39
|
assert extract_numeric_parts("1,234 (56.7%)") == ["1,234", "56.7%"]
|
|
39
40
|
|
|
41
|
+
def test_billion_abbreviation_matches_full_value(self):
|
|
42
|
+
assert numbers_match("$4.2bn", "4,200,000,000", tolerance=0)
|
|
43
|
+
|
|
40
44
|
|
|
41
45
|
# ---------------------------------------------------------------------------
|
|
42
46
|
# parse_html_tables – colspan/rowspan grid alignment
|
|
@@ -810,6 +814,76 @@ class TestChartDataPointRuleCandidateScope:
|
|
|
810
814
|
assert rule.run(within)[0]
|
|
811
815
|
assert not rule.run(outside)[0]
|
|
812
816
|
|
|
817
|
+
def test_single_numeric_token_with_axis_unit_matches(self) -> None:
|
|
818
|
+
table = """\
|
|
819
|
+
| Category | Actual |
|
|
820
|
+
| --- | --- |
|
|
821
|
+
| Series A | 68.7 days |
|
|
822
|
+
"""
|
|
823
|
+
|
|
824
|
+
passed, message, score = _chart_rule(
|
|
825
|
+
"68.7",
|
|
826
|
+
["Series A", "Actual"],
|
|
827
|
+
normalize_numbers=True,
|
|
828
|
+
).run(table)
|
|
829
|
+
|
|
830
|
+
assert passed, message
|
|
831
|
+
assert score == 1.0
|
|
832
|
+
|
|
833
|
+
def test_multiple_numeric_tokens_in_one_cell_stay_ambiguous(self) -> None:
|
|
834
|
+
table = """\
|
|
835
|
+
| Country | Panel A |
|
|
836
|
+
| --- | --- |
|
|
837
|
+
| Finland | 249, 188 |
|
|
838
|
+
"""
|
|
839
|
+
|
|
840
|
+
passed, message, score = _chart_rule(
|
|
841
|
+
"249",
|
|
842
|
+
["Finland", "Panel A"],
|
|
843
|
+
normalize_numbers=True,
|
|
844
|
+
).run(table)
|
|
845
|
+
|
|
846
|
+
assert not passed, message
|
|
847
|
+
assert score == 0.0
|
|
848
|
+
|
|
849
|
+
def test_paired_body_section_and_repeated_header_supply_local_scope(self) -> None:
|
|
850
|
+
table = """\
|
|
851
|
+
<table>
|
|
852
|
+
<thead><tr><th></th><th>Total</th><th>Rural</th></tr></thead>
|
|
853
|
+
<tbody>
|
|
854
|
+
<tr><td>FY2016</td><td>926</td><td>637</td></tr>
|
|
855
|
+
<tr><td>Urban</td><td></td><td></td></tr>
|
|
856
|
+
<tr><td></td><td>Total</td><td>Rural</td></tr>
|
|
857
|
+
<tr><td>FY2016</td><td>960</td><td>715</td></tr>
|
|
858
|
+
<tr><td>Rural</td><td></td><td></td></tr>
|
|
859
|
+
<tr><td></td><td>Total</td><td>Rural</td></tr>
|
|
860
|
+
<tr><td>FY2016</td><td>1,042</td><td>774</td></tr>
|
|
861
|
+
</tbody>
|
|
862
|
+
</table>
|
|
863
|
+
"""
|
|
864
|
+
|
|
865
|
+
urban_passed, urban_message, _ = _chart_rule("960", ["Urban", "FY2016", "Total"]).run(table)
|
|
866
|
+
rural_passed, rural_message, _ = _chart_rule("774", ["Rural", "FY2016", "Rural"]).run(table)
|
|
867
|
+
stale_passed, _, stale_score = _chart_rule("774", ["Urban", "FY2016", "Rural"]).run(table)
|
|
868
|
+
|
|
869
|
+
assert urban_passed, urban_message
|
|
870
|
+
assert rural_passed, rural_message
|
|
871
|
+
assert not stale_passed
|
|
872
|
+
assert stale_score == 0.0
|
|
873
|
+
|
|
874
|
+
def test_body_section_without_repeated_header_does_not_leak(self) -> None:
|
|
875
|
+
table = """\
|
|
876
|
+
<table><tbody>
|
|
877
|
+
<tr><td>Urban</td><td></td></tr>
|
|
878
|
+
<tr><td>FY2016</td><td>960</td></tr>
|
|
879
|
+
</tbody></table>
|
|
880
|
+
"""
|
|
881
|
+
|
|
882
|
+
passed, message, score = _chart_rule("960", ["Urban", "FY2016"]).run(table)
|
|
883
|
+
|
|
884
|
+
assert not passed, message
|
|
885
|
+
assert score == 0.0
|
|
886
|
+
|
|
813
887
|
def test_later_correct_duplicate_value_is_selected(self) -> None:
|
|
814
888
|
table = """\
|
|
815
889
|
| Country | Year | Value |
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_adapters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_adapters/registry.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/__init__.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/base.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/mappers.py
RENAMED
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/__init__.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/constants.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/core.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/evaluate.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/geometry.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/text_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/downstream/__init__.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/list_unwrap.py
RENAMED
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/test_rules.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/test_types.py
RENAMED
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/core.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/layoutdet/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/emphasis_spans.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/fast_tree_edit.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/grits_metric.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/mermaid_graph.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_bag.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_base.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_diagram.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_form.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_formatting.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_heading.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_list.py
RENAMED
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_table.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_text.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_watermark.py
RENAMED
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_extraction.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_merging.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_pairing.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_parsing.py
RENAMED
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_splitting.py
RENAMED
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/teds_metric.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/test_rules.py
RENAMED
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/test_types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{parse_bench-1.0.1 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/qa/answer_comparison.py
RENAMED
|
File without changes
|