parse-bench 1.0.0__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.
Files changed (359) hide show
  1. {parse_bench-1.0.0 → parse_bench-1.0.2}/CHANGELOG.md +79 -0
  2. {parse_bench-1.0.0 → parse_bench-1.0.2}/PKG-INFO +1 -1
  3. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/__init__.py +1 -1
  4. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/parse.py +10 -1
  5. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_adapters/adapters.py +511 -277
  6. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_adapters/registry.py +29 -2
  7. parse_bench-1.0.2/src/parse_bench/evaluation/layout_label_mappers/projection.py +155 -0
  8. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/layoutdet/__init__.py +4 -0
  9. parse_bench-1.0.2/src/parse_bench/evaluation/metrics/layoutdet/iou.py +421 -0
  10. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/grits_metric.py +94 -7
  11. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rule_based_metric.py +89 -11
  12. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_base.py +5 -2
  13. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_chart.py +85 -12
  14. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/runner.py +12 -0
  15. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/extensions.py +4 -1
  16. parse_bench-1.0.2/src/parse_bench/geometry/__init__.py +1 -0
  17. parse_bench-1.0.2/src/parse_bench/geometry/rotated_bbox.py +227 -0
  18. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/pipelines/parse.py +30 -0
  19. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/extract/citations.py +1 -1
  20. parse_bench-1.0.2/src/parse_bench/py.typed +0 -0
  21. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/schemas/evaluation.py +15 -3
  22. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/schemas/extract_output.py +4 -1
  23. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/schemas/layout_detection_output.py +53 -4
  24. parse_bench-1.0.2/src/parse_bench/schemas/parse_output.py +282 -0
  25. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/test_cases/parse_rule_schemas.py +2 -1
  26. parse_bench-1.0.2/tests/parse_bench/evaluation/layout_label_mappers/test_projection_dual_read.py +331 -0
  27. parse_bench-1.0.2/tests/parse_bench/evaluation/metrics/layoutdet/test_rotated_iou.py +113 -0
  28. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_chart_data_point_rule.py +74 -0
  29. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_grits_perf_equivalence.py +44 -0
  30. parse_bench-1.0.2/tests/parse_bench/evaluation/metrics/parse/test_rule_metric_side_inputs.py +201 -0
  31. parse_bench-1.0.2/tests/parse_bench/geometry/test_rotated_bbox.py +103 -0
  32. parse_bench-1.0.2/tests/parse_bench/test_evaluation_schema_extra_fields.py +36 -0
  33. parse_bench-1.0.0/src/parse_bench/evaluation/layout_label_mappers/projection.py +0 -74
  34. parse_bench-1.0.0/src/parse_bench/evaluation/metrics/layoutdet/iou.py +0 -76
  35. parse_bench-1.0.0/src/parse_bench/schemas/parse_output.py +0 -152
  36. {parse_bench-1.0.0 → parse_bench-1.0.2}/.gitignore +0 -0
  37. {parse_bench-1.0.0 → parse_bench-1.0.2}/LICENSE +0 -0
  38. {parse_bench-1.0.0 → parse_bench-1.0.2}/README.md +0 -0
  39. {parse_bench-1.0.0 → parse_bench-1.0.2}/pyproject.toml +0 -0
  40. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/analysis/__init__.py +0 -0
  41. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/analysis/aggregation_report.py +0 -0
  42. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/analysis/cli.py +0 -0
  43. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/analysis/comparison.py +0 -0
  44. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/analysis/comparison_core.py +0 -0
  45. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/analysis/comparison_report.py +0 -0
  46. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/analysis/detailed_report.py +0 -0
  47. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/analysis/leaderboard_report.py +0 -0
  48. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/analysis/metric_definitions.py +0 -0
  49. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/cli.py +0 -0
  50. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/data/__init__.py +0 -0
  51. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/data/cli.py +0 -0
  52. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/data/download.py +0 -0
  53. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/__init__.py +0 -0
  54. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/cli.py +0 -0
  55. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/__init__.py +0 -0
  56. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/base.py +0 -0
  57. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/extract.py +0 -0
  58. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/layoutdet.py +0 -0
  59. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/evaluators/qa.py +0 -0
  60. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_adapters/__init__.py +0 -0
  61. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_adapters/base.py +0 -0
  62. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/__init__.py +0 -0
  63. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/base.py +0 -0
  64. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/mappers.py +0 -0
  65. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/layout_label_mappers/registry.py +0 -0
  66. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metric_aggregation.py +0 -0
  67. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/__init__.py +0 -0
  68. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/__init__.py +0 -0
  69. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/constants.py +0 -0
  70. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/core.py +0 -0
  71. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/evaluate.py +0 -0
  72. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/geometry.py +0 -0
  73. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/attribution/text_utils.py +0 -0
  74. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/base.py +0 -0
  75. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/downstream/__init__.py +0 -0
  76. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/__init__.py +0 -0
  77. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/json_subset_match.py +0 -0
  78. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/json_subset_match_metric.py +0 -0
  79. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/list_unwrap.py +0 -0
  80. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/rule_based_metric.py +0 -0
  81. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/test_rules.py +0 -0
  82. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/extract/test_types.py +0 -0
  83. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/__init__.py +0 -0
  84. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/core.py +0 -0
  85. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/extract_adapter.py +0 -0
  86. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/parse_adapter.py +0 -0
  87. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/rule_filters.py +0 -0
  88. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/field_grounding/value_compare.py +0 -0
  89. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/layoutdet/classification_utils.py +0 -0
  90. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/__init__.py +0 -0
  91. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/_vendor_grits_reference.py +0 -0
  92. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/cross_page_table_consistency.py +0 -0
  93. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/emphasis_spans.py +0 -0
  94. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/fast_tree_edit.py +0 -0
  95. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/grits_reference_metric.py +0 -0
  96. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/header_accuracy_metric.py +0 -0
  97. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/llm_normalization/__init__.py +0 -0
  98. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/llm_normalization/base.py +0 -0
  99. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/llm_normalization/config.py +0 -0
  100. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/llm_normalization/postprocess.py +0 -0
  101. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/llm_normalization/strategy_judge.py +0 -0
  102. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/mermaid_graph.py +0 -0
  103. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rule_based_judge_metric.py +0 -0
  104. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_bag.py +0 -0
  105. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_diagram.py +0 -0
  106. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_form.py +0 -0
  107. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_formatting.py +0 -0
  108. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_heading.py +0 -0
  109. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_list.py +0 -0
  110. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_page_decoration.py +0 -0
  111. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_table.py +0 -0
  112. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_text.py +0 -0
  113. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/rules_watermark.py +0 -0
  114. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/structural_consistency_metric.py +0 -0
  115. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_extraction.py +0 -0
  116. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_merging.py +0 -0
  117. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_pairing.py +0 -0
  118. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_parsing.py +0 -0
  119. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_record_match_metric.py +0 -0
  120. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_splitting.py +0 -0
  121. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/table_title_stripping.py +0 -0
  122. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/teds_metric.py +0 -0
  123. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/test_rules.py +0 -0
  124. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/test_types.py +0 -0
  125. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/text_content_projection.py +0 -0
  126. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/text_similarity_metric.py +0 -0
  127. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/parse/utils.py +0 -0
  128. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/qa/__init__.py +0 -0
  129. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/metrics/qa/answer_comparison.py +0 -0
  130. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/qa/__init__.py +0 -0
  131. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/qa/llm_service.py +0 -0
  132. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/reports/__init__.py +0 -0
  133. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/reports/csv.py +0 -0
  134. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/reports/html.py +0 -0
  135. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/reports/markdown.py +0 -0
  136. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/reports/rule_csv.py +0 -0
  137. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/evaluation/stats.py +0 -0
  138. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/__init__.py +0 -0
  139. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/chunkr_layout_extraction.py +0 -0
  140. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/cli.py +0 -0
  141. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/layout_extraction.py +0 -0
  142. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/pipelines/__init__.py +0 -0
  143. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/pipelines/extract.py +0 -0
  144. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/pipelines/layout.py +0 -0
  145. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/pipelines.py +0 -0
  146. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/__init__.py +0 -0
  147. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/base.py +0 -0
  148. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/cancellation.py +0 -0
  149. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/extract/__init__.py +0 -0
  150. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/extract/extend.py +0 -0
  151. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/extract/llamaextract_v2_api.py +0 -0
  152. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/__init__.py +0 -0
  153. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/adapters.py +0 -0
  154. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/base.py +0 -0
  155. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/chandra.py +0 -0
  156. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/docling.py +0 -0
  157. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/dots_ocr.py +0 -0
  158. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/layout_v3.py +0 -0
  159. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/layout_v3_byoc.py +0 -0
  160. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/paddle.py +0 -0
  161. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/qwen3vl.py +0 -0
  162. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/surya.py +0 -0
  163. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/layoutdet/yolo.py +0 -0
  164. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/__init__.py +0 -0
  165. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/_docling_common.py +0 -0
  166. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/_layout_utils.py +0 -0
  167. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/amazon_nova.py +0 -0
  168. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/anthropic.py +0 -0
  169. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/azure_document_intelligence.py +0 -0
  170. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/chandra2.py +0 -0
  171. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/chunkr.py +0 -0
  172. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/databricks_ai_parse.py +0 -0
  173. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/datalab.py +0 -0
  174. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/deepseekocr2.py +0 -0
  175. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/docling.py +0 -0
  176. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/docling_serve.py +0 -0
  177. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/dots_ocr.py +0 -0
  178. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/extend_parse.py +0 -0
  179. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/falconocr.py +0 -0
  180. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/florin_parser_nano.py +0 -0
  181. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/gemma4.py +0 -0
  182. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/glm_zai.py +0 -0
  183. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/google.py +0 -0
  184. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/google_agentic_vision.py +0 -0
  185. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/google_docai.py +0 -0
  186. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/google_docai_layout_normalization.py +0 -0
  187. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/granite_vision.py +0 -0
  188. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/infinity_parser2.py +0 -0
  189. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/kdl_frontier_nano.py +0 -0
  190. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/landingai.py +0 -0
  191. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/liteparse.py +0 -0
  192. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/llamaparse.py +0 -0
  193. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/llamaparse_v2_normalization.py +0 -0
  194. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/markitdown.py +0 -0
  195. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/mineru25.py +0 -0
  196. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/mineru2605pro.py +0 -0
  197. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/mineru_diffusion.py +0 -0
  198. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/mistral_ocr.py +0 -0
  199. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/nemotron_omni.py +0 -0
  200. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/oi_parser.py +0 -0
  201. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/openai.py +0 -0
  202. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/opendataloader.py +0 -0
  203. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/paddleocr.py +0 -0
  204. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/pdf_inspector.py +0 -0
  205. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/pulse.py +0 -0
  206. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/pymupdf.py +0 -0
  207. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/pymupdf4llm.py +0 -0
  208. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/pypdf.py +0 -0
  209. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/qwen.py +0 -0
  210. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/rakedoc_nano.py +0 -0
  211. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/reducto.py +0 -0
  212. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/surya2.py +0 -0
  213. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/tesseract.py +0 -0
  214. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/textract.py +0 -0
  215. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/unlimitedocr.py +0 -0
  216. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/unstructured.py +0 -0
  217. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/parse/warp_ingest.py +0 -0
  218. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/providers/registry.py +0 -0
  219. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/renormalize.py +0 -0
  220. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/inference/runner.py +0 -0
  221. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/layout_label_mapping.py +0 -0
  222. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/layout_projection.py +0 -0
  223. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/pipeline/__init__.py +0 -0
  224. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/pipeline/cli.py +0 -0
  225. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/schemas/__init__.py +0 -0
  226. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/schemas/layout_ontology.py +0 -0
  227. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/schemas/metrics.py +0 -0
  228. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/schemas/pipeline.py +0 -0
  229. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/schemas/pipeline_io.py +0 -0
  230. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/schemas/product.py +0 -0
  231. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/test_cases/__init__.py +0 -0
  232. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/test_cases/bbox_value_strict_comparator.py +0 -0
  233. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/test_cases/extract_field_paths.py +0 -0
  234. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/test_cases/layout_attribution_generation.py +0 -0
  235. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/test_cases/loader.py +0 -0
  236. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/test_cases/rule_filters.py +0 -0
  237. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/test_cases/rule_ids.py +0 -0
  238. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/test_cases/schema.py +0 -0
  239. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/utils/__init__.py +0 -0
  240. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/utils/gemini_layout_utils.py +0 -0
  241. {parse_bench-1.0.0 → parse_bench-1.0.2}/src/parse_bench/utils/text_aggregation.py +0 -0
  242. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/analysis/test_comparison_consistency.py +0 -0
  243. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/analysis/test_comparison_core.py +0 -0
  244. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/analysis/test_comparison_directory_suffix.py +0 -0
  245. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/analysis/test_detailed_report.py +0 -0
  246. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/evaluators/test_extract_empty_expected_output.py +0 -0
  247. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/evaluators/test_parse_evaluator_layout_rule_filter.py +0 -0
  248. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/evaluators/test_parse_evaluator_styling_rollup.py +0 -0
  249. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/evaluators/test_parse_evaluator_table_pages.py +0 -0
  250. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_adapters/test_docling_parse_layout_adapter.py +0 -0
  251. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_adapters/test_llamaparse_attribution_scope.py +0 -0
  252. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_adapters/test_llamaparse_canonical_layout_pages.py +0 -0
  253. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_label_mappers/test_llamaparse_label_mapper.py +0 -0
  254. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_label_mappers/test_projection_attributes.py +0 -0
  255. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/layout_label_mappers/test_pymupdf4llm_label_mapper.py +0 -0
  256. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/attribution/test_attribution_overclaim.py +0 -0
  257. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/extract/test_json_subset_match.py +0 -0
  258. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/field_grounding/test_extract_adapter.py +0 -0
  259. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/layoutdet/test_classification_utils_paging.py +0 -0
  260. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_chart_label_punctuation.py +0 -0
  261. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_cross_page_table_consistency_metric.py +0 -0
  262. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_degenerate_marker_rules.py +0 -0
  263. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_diagram_rules.py +0 -0
  264. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_fast_table_parity.py +0 -0
  265. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_form_field_rule.py +0 -0
  266. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_formatting_rule_adjacent_spans.py +0 -0
  267. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_grits_metric.py +0 -0
  268. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_grits_trm_composite.py +0 -0
  269. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_header_accuracy_metric.py +0 -0
  270. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_heading_structure_rule.py +0 -0
  271. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_merge_preceding_titles.py +0 -0
  272. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_normalize_cell_text.py +0 -0
  273. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_normalize_text_inline_tag_separator.py +0 -0
  274. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_page_decoration_rule.py +0 -0
  275. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_combining_mark_tokenization.py +0 -0
  276. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_formatting_rule_paragraph_spans.py +0 -0
  277. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_formatting_rule_quotes.py +0 -0
  278. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_formatting_rule_span_scope.py +0 -0
  279. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_list_level_rule.py +0 -0
  280. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_table_cell_augmentation.py +0 -0
  281. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_text_order_rule_html.py +0 -0
  282. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_parse_text_presence_rule.py +0 -0
  283. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_relaxed_normalize_cell_text.py +0 -0
  284. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_rule_metric_budget_and_bag_images.py +0 -0
  285. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_caption_title_band.py +0 -0
  286. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_cell_inline_marker_separator.py +0 -0
  287. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_dot_leaders.py +0 -0
  288. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_extraction.py +0 -0
  289. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_marker_cells_rule.py +0 -0
  290. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_merging_metric.py +0 -0
  291. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_pairing.py +0 -0
  292. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_record_match_metric.py +0 -0
  293. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_row_header_th.py +0 -0
  294. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_splitting.py +0 -0
  295. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_tbody_provenance.py +0 -0
  296. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_table_title_stripping.py +0 -0
  297. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_teds_metric.py +0 -0
  298. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_text_color_rule.py +0 -0
  299. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_text_content_projection.py +0 -0
  300. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_text_similarity_metric.py +0 -0
  301. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_title_hierarchy_inapplicable.py +0 -0
  302. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/parse/test_watermark_removal_rule.py +0 -0
  303. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/metrics/qa/test_answer_comparison_exact_choice.py +0 -0
  304. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/test_cli_detailed_report_nonfatal.py +0 -0
  305. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/test_runner_aggregation.py +0 -0
  306. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/test_runner_result_files.py +0 -0
  307. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/test_runner_worker_timeout.py +0 -0
  308. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/evaluation/test_stats.py +0 -0
  309. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/extract/test_extend_cost_stats.py +0 -0
  310. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/extract/test_extend_schema_adapter.py +0 -0
  311. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_amazon_nova.py +0 -0
  312. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_anthropic_pricing.py +0 -0
  313. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_azure_document_intelligence_layout.py +0 -0
  314. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_chandra2_multipage.py +0 -0
  315. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_datalab.py +0 -0
  316. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_deepseekocr2_multipage.py +0 -0
  317. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_extend_parse_pages.py +0 -0
  318. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_falconocr_multipage.py +0 -0
  319. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_gemma4_multipage.py +0 -0
  320. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_glm_zai.py +0 -0
  321. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_google_parse_pricing.py +0 -0
  322. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_granite_vision_multipage.py +0 -0
  323. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_infinity_parser2.py +0 -0
  324. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_kdl_frontier_nano.py +0 -0
  325. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_layout_coordinate_frames.py +0 -0
  326. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_layout_utils.py +0 -0
  327. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_liteparse_layout.py +0 -0
  328. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_llamaparse_picture_type.py +0 -0
  329. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_llamaparse_polling.py +0 -0
  330. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_llamaparse_usage_metadata.py +0 -0
  331. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_llamaparse_v2_normalization.py +0 -0
  332. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_llamaparse_v2_null_page_fields.py +0 -0
  333. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_mineru25_multipage.py +0 -0
  334. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_mineru2605pro_multipage.py +0 -0
  335. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_mineru_diffusion_multipage.py +0 -0
  336. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_nemotron_omni_multipage.py +0 -0
  337. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_openai_parse_errors.py +0 -0
  338. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_paddleocr_multipage.py +0 -0
  339. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_pymupdf4llm.py +0 -0
  340. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_qwen.py +0 -0
  341. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_reducto_normalize.py +0 -0
  342. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_surya2_multipage.py +0 -0
  343. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_textract_cost.py +0 -0
  344. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_unlimitedocr_multipage.py +0 -0
  345. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/providers/parse/test_warp_ingest.py +0 -0
  346. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/test_cli.py +0 -0
  347. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/test_layout_extraction.py +0 -0
  348. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/test_parse_pipelines.py +0 -0
  349. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/test_renormalize.py +0 -0
  350. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/inference/test_runner.py +0 -0
  351. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/test_cases/test_loader_stem_twins.py +0 -0
  352. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/test_cases/test_parse_rule_schemas.py +0 -0
  353. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/test_cases/test_rule_ids.py +0 -0
  354. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/test_extensions.py +0 -0
  355. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/parse_bench/test_layout_label_mapping_code_alias.py +0 -0
  356. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/test_data_dir_routing.py +0 -0
  357. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/test_extract_integration.py +0 -0
  358. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/test_llamaparse_base_url.py +0 -0
  359. {parse_bench-1.0.0 → parse_bench-1.0.2}/tests/test_pulse_public_api.py +0 -0
@@ -4,6 +4,85 @@ 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
+
25
+ ## [1.0.1] - 2026-09-03
26
+
27
+ Harness-facing release: no evaluation number changes. Everything here lets a
28
+ downstream benchmark harness build on `parse-bench` without overriding
29
+ built-in rule classes or patching package models at import time.
30
+
31
+ ### Fixed
32
+ - `diagram_graph` rules with a `reference_image` never received the test case
33
+ or source file path from the evaluator, so the reference render was never
34
+ found. `ParseEvaluator` now forwards `source_file_path` and
35
+ `test_case_file_path` to the rule metric.
36
+
37
+ ### Added
38
+ - `RuleBasedMetric._prepare_rule(rule, actual, kwargs)`: one hook, run inside
39
+ the per-rule timeout, that hands a freshly created rule its side inputs.
40
+ Injection is attribute-driven, so any rule (built-in or extension) that
41
+ declares `raw_output`, `source_file_path` or `test_case_path` receives the
42
+ matching `compute` keyword argument. Subclasses extend it for
43
+ harness-specific inputs.
44
+ - `ChartTableCache`: chart rules on one document share a single parsed-table
45
+ pass. Pass `chart_table_cache=` to `compute` to read the parse back.
46
+ - Page-parallel GriTS pairwise scoring: `GriTSMetric(pair_workers=N)`,
47
+ `ParseEvaluator(grits_pair_workers=N)`, or `BENCH_GRITS_PAIR_WORKERS`.
48
+ The evaluation runner splits the CPU budget so `doc_workers x pair_workers`
49
+ stays within the core count. Scores are identical to the sequential path
50
+ (guarded by `test_grits_perf_equivalence`).
51
+ - `py.typed` marker: the package is now typed for downstream mypy.
52
+ - Rotated-box geometry: `parse_bench.geometry.rotated_bbox` (`xywh_r` <->
53
+ polygon conversion, containment) and rotated polygon IoU / IoA in
54
+ `evaluation.metrics.layoutdet.iou` for datasets whose layout ground truth
55
+ carries an `r` rotation.
56
+
57
+ ### Layout adapters and schemas (changes layout numbers for the providers named)
58
+ - Azure Document Intelligence: checkbox items carry `scope=mark`, so mark-scope
59
+ checkbox datasets score them; Textract and Azure DI adapters build granular
60
+ (line / word) pages for granular layout scoring.
61
+ - LlamaParse: the adapter also matches results whose `ParseOutput` carries
62
+ `grounded_pages`, and builds granular pages from that payload before falling
63
+ back to the raw response; merged granular bboxes keep a shared rotation `r`.
64
+ - Projection prefers `layout_pages[*].items` over the legacy flat
65
+ `predictions` list when any page has items (canonical labels coerced
66
+ directly), and a missing detector score projects as 0.0 in both paths.
67
+ - `LayoutOutput` gains the `ParseOutput`-parity fields (`pages`,
68
+ `grounded_pages`, `job_id`); `LayoutDetectionModel` gains
69
+ `OPENAI_COMPATIBLE_VLM_LAYOUT`, `CHECKBOX_DETECTOR_YOLOV8`, `COHERE_PARSE_LAYOUT`.
70
+ - Parse IR: `LineNumberIR`, `LinkIR`, `RevisionIR`, `GranularUnitIR` /
71
+ `GranularLayerIR`, `LayoutSegmentIR.r`, `ParseLayoutPageIR.links /
72
+ revisions / granular_layers` and `ParseOutput.grounded_pages`.
73
+ - `register_pipeline_resolver` (in `parse_bench.extensions`): a harness with
74
+ its own pipeline registry can map `pipeline_name` to a provider key, so the
75
+ adapter and mapper registries resolve its pipelines too.
76
+ - Adapter aliases: `anthropic_haiku` resolves to the Anthropic adapter.
77
+
78
+ ### Changed
79
+ - `MetricValue` and `RunStat` accept extra fields (`extra="allow"`) so
80
+ provenance a harness attaches round-trips losslessly.
81
+ - `ParseRuleInput` and `ParseTestRule.__init__` accept any `ParseRuleBase`
82
+ subclass, not only the closed built-in union, so extension rule classes
83
+ need no cast to call `super().__init__`.
84
+ - `FieldCitation.bbox` is optional: a page-only citation carries `bbox=None`.
85
+
7
86
  ## [1.0.0] - 2026-09-02
8
87
 
9
88
  This release brings the public evaluator back to parity with the internal
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: parse-bench
3
- Version: 1.0.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
@@ -1,3 +1,3 @@
1
1
  """Document parsing evaluation system for competitive benchmarking."""
2
2
 
3
- __version__ = "1.0.0"
3
+ __version__ = "1.0.2"
@@ -228,6 +228,7 @@ class ParseEvaluator(BaseEvaluator):
228
228
  enable_table_record_match: bool = True,
229
229
  enable_table_composite: bool = False,
230
230
  teds_variants: set[str] | None = None,
231
+ grits_pair_workers: int | None = None,
231
232
  ):
232
233
  """
233
234
  Initialize the ParseEvaluator.
@@ -243,6 +244,9 @@ class ParseEvaluator(BaseEvaluator):
243
244
  :param enable_structural_consistency: Enable structural consistency metric (default: True)
244
245
  :param teds_variants: Set of TEDS variant names to compute. Defaults to
245
246
  {TEDS_CONTENT} (standard TEDS only). Use ALL_TEDS_VARIANTS for all.
247
+ :param grits_pair_workers: Per-document page-parallelism width for GriTS
248
+ (the runner passes a CPU budget so ``doc_workers x pair_workers`` stays
249
+ within the core count). ``None`` defers to ``BENCH_GRITS_PAIR_WORKERS``.
246
250
  """
247
251
  self._enable_rule_based = enable_rule_based
248
252
  self._enable_text_similarity = enable_text_similarity
@@ -256,7 +260,7 @@ class ParseEvaluator(BaseEvaluator):
256
260
  logger.info("Chart LLM normalization mode: %s", get_normalization_mode().value)
257
261
  self._text_similarity_metric = TextSimilarityMetric()
258
262
  self._teds_metric = TEDSMetric(variants=teds_variants if teds_variants is not None else {TEDS_CONTENT})
259
- self._grits_metric = GriTSMetric()
263
+ self._grits_metric = GriTSMetric(pair_workers=grits_pair_workers)
260
264
  self._header_accuracy_metric = HeaderAccuracyMetric()
261
265
  self._header_accuracy_generous_metric = HeaderAccuracyMetricGenerous()
262
266
  self._structural_consistency_metric = StructuralConsistencyMetric()
@@ -362,6 +366,11 @@ class ParseEvaluator(BaseEvaluator):
362
366
  page=None, # Document-level for now
363
367
  raw_output=inference_result.raw_output,
364
368
  parse_output=inference_result.output,
369
+ source_file_path=inference_result.request.source_file_path,
370
+ # Rules that read side files (reference renders next to the
371
+ # test case) need the test case's own location: providers may
372
+ # stage the input elsewhere.
373
+ test_case_file_path=str(test_case.file_path),
365
374
  )
366
375
  metrics.append(rule_result)
367
376
  if "judge_pass_rate" in rule_result.metadata: