parse-bench 1.0.2__tar.gz → 1.0.3__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 (357) hide show
  1. {parse_bench-1.0.2 → parse_bench-1.0.3}/CHANGELOG.md +8 -0
  2. {parse_bench-1.0.2 → parse_bench-1.0.3}/PKG-INFO +1 -2
  3. {parse_bench-1.0.2 → parse_bench-1.0.3}/pyproject.toml +0 -2
  4. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/__init__.py +1 -1
  5. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/layoutdet/classification_utils.py +32 -1
  6. parse_bench-1.0.3/tests/parse_bench/evaluation/metrics/layoutdet/test_average_precision.py +30 -0
  7. {parse_bench-1.0.2 → parse_bench-1.0.3}/.gitignore +0 -0
  8. {parse_bench-1.0.2 → parse_bench-1.0.3}/LICENSE +0 -0
  9. {parse_bench-1.0.2 → parse_bench-1.0.3}/README.md +0 -0
  10. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/analysis/__init__.py +0 -0
  11. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/analysis/aggregation_report.py +0 -0
  12. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/analysis/cli.py +0 -0
  13. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/analysis/comparison.py +0 -0
  14. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/analysis/comparison_core.py +0 -0
  15. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/analysis/comparison_report.py +0 -0
  16. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/analysis/detailed_report.py +0 -0
  17. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/analysis/leaderboard_report.py +0 -0
  18. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/analysis/metric_definitions.py +0 -0
  19. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/cli.py +0 -0
  20. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/data/__init__.py +0 -0
  21. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/data/cli.py +0 -0
  22. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/data/download.py +0 -0
  23. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/__init__.py +0 -0
  24. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/cli.py +0 -0
  25. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/evaluators/__init__.py +0 -0
  26. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/evaluators/base.py +0 -0
  27. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/evaluators/extract.py +0 -0
  28. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/evaluators/layoutdet.py +0 -0
  29. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/evaluators/parse.py +0 -0
  30. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/evaluators/qa.py +0 -0
  31. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/layout_adapters/__init__.py +0 -0
  32. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/layout_adapters/adapters.py +0 -0
  33. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/layout_adapters/base.py +0 -0
  34. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/layout_adapters/registry.py +0 -0
  35. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/layout_label_mappers/__init__.py +0 -0
  36. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/layout_label_mappers/base.py +0 -0
  37. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/layout_label_mappers/mappers.py +0 -0
  38. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/layout_label_mappers/projection.py +0 -0
  39. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/layout_label_mappers/registry.py +0 -0
  40. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metric_aggregation.py +0 -0
  41. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/__init__.py +0 -0
  42. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/attribution/__init__.py +0 -0
  43. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/attribution/constants.py +0 -0
  44. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/attribution/core.py +0 -0
  45. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/attribution/evaluate.py +0 -0
  46. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/attribution/geometry.py +0 -0
  47. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/attribution/text_utils.py +0 -0
  48. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/base.py +0 -0
  49. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/downstream/__init__.py +0 -0
  50. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/extract/__init__.py +0 -0
  51. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/extract/json_subset_match.py +0 -0
  52. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/extract/json_subset_match_metric.py +0 -0
  53. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/extract/list_unwrap.py +0 -0
  54. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/extract/rule_based_metric.py +0 -0
  55. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/extract/test_rules.py +0 -0
  56. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/extract/test_types.py +0 -0
  57. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/field_grounding/__init__.py +0 -0
  58. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/field_grounding/core.py +0 -0
  59. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/field_grounding/extract_adapter.py +0 -0
  60. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/field_grounding/parse_adapter.py +0 -0
  61. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/field_grounding/rule_filters.py +0 -0
  62. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/field_grounding/value_compare.py +0 -0
  63. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/layoutdet/__init__.py +0 -0
  64. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/layoutdet/iou.py +0 -0
  65. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/__init__.py +0 -0
  66. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/_vendor_grits_reference.py +0 -0
  67. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/cross_page_table_consistency.py +0 -0
  68. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/emphasis_spans.py +0 -0
  69. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/fast_tree_edit.py +0 -0
  70. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/grits_metric.py +0 -0
  71. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/grits_reference_metric.py +0 -0
  72. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/header_accuracy_metric.py +0 -0
  73. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/llm_normalization/__init__.py +0 -0
  74. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/llm_normalization/base.py +0 -0
  75. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/llm_normalization/config.py +0 -0
  76. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/llm_normalization/postprocess.py +0 -0
  77. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/llm_normalization/strategy_judge.py +0 -0
  78. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/mermaid_graph.py +0 -0
  79. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rule_based_judge_metric.py +0 -0
  80. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rule_based_metric.py +0 -0
  81. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_bag.py +0 -0
  82. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_base.py +0 -0
  83. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_chart.py +0 -0
  84. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_diagram.py +0 -0
  85. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_form.py +0 -0
  86. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_formatting.py +0 -0
  87. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_heading.py +0 -0
  88. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_list.py +0 -0
  89. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_page_decoration.py +0 -0
  90. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_table.py +0 -0
  91. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_text.py +0 -0
  92. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/rules_watermark.py +0 -0
  93. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/structural_consistency_metric.py +0 -0
  94. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/table_extraction.py +0 -0
  95. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/table_merging.py +0 -0
  96. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/table_pairing.py +0 -0
  97. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/table_parsing.py +0 -0
  98. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/table_record_match_metric.py +0 -0
  99. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/table_splitting.py +0 -0
  100. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/table_title_stripping.py +0 -0
  101. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/teds_metric.py +0 -0
  102. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/test_rules.py +0 -0
  103. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/test_types.py +0 -0
  104. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/text_content_projection.py +0 -0
  105. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/text_similarity_metric.py +0 -0
  106. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/parse/utils.py +0 -0
  107. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/qa/__init__.py +0 -0
  108. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/metrics/qa/answer_comparison.py +0 -0
  109. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/qa/__init__.py +0 -0
  110. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/qa/llm_service.py +0 -0
  111. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/reports/__init__.py +0 -0
  112. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/reports/csv.py +0 -0
  113. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/reports/html.py +0 -0
  114. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/reports/markdown.py +0 -0
  115. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/reports/rule_csv.py +0 -0
  116. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/runner.py +0 -0
  117. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/evaluation/stats.py +0 -0
  118. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/extensions.py +0 -0
  119. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/geometry/__init__.py +0 -0
  120. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/geometry/rotated_bbox.py +0 -0
  121. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/__init__.py +0 -0
  122. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/chunkr_layout_extraction.py +0 -0
  123. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/cli.py +0 -0
  124. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/layout_extraction.py +0 -0
  125. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/pipelines/__init__.py +0 -0
  126. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/pipelines/extract.py +0 -0
  127. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/pipelines/layout.py +0 -0
  128. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/pipelines/parse.py +0 -0
  129. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/pipelines.py +0 -0
  130. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/__init__.py +0 -0
  131. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/base.py +0 -0
  132. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/cancellation.py +0 -0
  133. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/extract/__init__.py +0 -0
  134. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/extract/citations.py +0 -0
  135. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/extract/extend.py +0 -0
  136. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/extract/llamaextract_v2_api.py +0 -0
  137. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/__init__.py +0 -0
  138. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/adapters.py +0 -0
  139. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/base.py +0 -0
  140. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/chandra.py +0 -0
  141. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/docling.py +0 -0
  142. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/dots_ocr.py +0 -0
  143. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/layout_v3.py +0 -0
  144. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/layout_v3_byoc.py +0 -0
  145. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/paddle.py +0 -0
  146. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/qwen3vl.py +0 -0
  147. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/surya.py +0 -0
  148. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/layoutdet/yolo.py +0 -0
  149. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/__init__.py +0 -0
  150. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/_docling_common.py +0 -0
  151. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/_layout_utils.py +0 -0
  152. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/amazon_nova.py +0 -0
  153. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/anthropic.py +0 -0
  154. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/azure_document_intelligence.py +0 -0
  155. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/chandra2.py +0 -0
  156. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/chunkr.py +0 -0
  157. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/databricks_ai_parse.py +0 -0
  158. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/datalab.py +0 -0
  159. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/deepseekocr2.py +0 -0
  160. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/docling.py +0 -0
  161. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/docling_serve.py +0 -0
  162. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/dots_ocr.py +0 -0
  163. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/extend_parse.py +0 -0
  164. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/falconocr.py +0 -0
  165. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/florin_parser_nano.py +0 -0
  166. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/gemma4.py +0 -0
  167. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/glm_zai.py +0 -0
  168. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/google.py +0 -0
  169. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/google_agentic_vision.py +0 -0
  170. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/google_docai.py +0 -0
  171. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/google_docai_layout_normalization.py +0 -0
  172. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/granite_vision.py +0 -0
  173. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/infinity_parser2.py +0 -0
  174. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/kdl_frontier_nano.py +0 -0
  175. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/landingai.py +0 -0
  176. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/liteparse.py +0 -0
  177. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/llamaparse.py +0 -0
  178. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/llamaparse_v2_normalization.py +0 -0
  179. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/markitdown.py +0 -0
  180. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/mineru25.py +0 -0
  181. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/mineru2605pro.py +0 -0
  182. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/mineru_diffusion.py +0 -0
  183. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/mistral_ocr.py +0 -0
  184. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/nemotron_omni.py +0 -0
  185. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/oi_parser.py +0 -0
  186. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/openai.py +0 -0
  187. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/opendataloader.py +0 -0
  188. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/paddleocr.py +0 -0
  189. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/pdf_inspector.py +0 -0
  190. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/pulse.py +0 -0
  191. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/pymupdf.py +0 -0
  192. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/pymupdf4llm.py +0 -0
  193. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/pypdf.py +0 -0
  194. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/qwen.py +0 -0
  195. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/rakedoc_nano.py +0 -0
  196. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/reducto.py +0 -0
  197. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/surya2.py +0 -0
  198. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/tesseract.py +0 -0
  199. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/textract.py +0 -0
  200. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/unlimitedocr.py +0 -0
  201. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/unstructured.py +0 -0
  202. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/parse/warp_ingest.py +0 -0
  203. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/providers/registry.py +0 -0
  204. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/renormalize.py +0 -0
  205. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/inference/runner.py +0 -0
  206. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/layout_label_mapping.py +0 -0
  207. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/layout_projection.py +0 -0
  208. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/pipeline/__init__.py +0 -0
  209. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/pipeline/cli.py +0 -0
  210. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/py.typed +0 -0
  211. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/schemas/__init__.py +0 -0
  212. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/schemas/evaluation.py +0 -0
  213. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/schemas/extract_output.py +0 -0
  214. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/schemas/layout_detection_output.py +0 -0
  215. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/schemas/layout_ontology.py +0 -0
  216. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/schemas/metrics.py +0 -0
  217. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/schemas/parse_output.py +0 -0
  218. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/schemas/pipeline.py +0 -0
  219. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/schemas/pipeline_io.py +0 -0
  220. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/schemas/product.py +0 -0
  221. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/test_cases/__init__.py +0 -0
  222. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/test_cases/bbox_value_strict_comparator.py +0 -0
  223. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/test_cases/extract_field_paths.py +0 -0
  224. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/test_cases/layout_attribution_generation.py +0 -0
  225. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/test_cases/loader.py +0 -0
  226. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/test_cases/parse_rule_schemas.py +0 -0
  227. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/test_cases/rule_filters.py +0 -0
  228. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/test_cases/rule_ids.py +0 -0
  229. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/test_cases/schema.py +0 -0
  230. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/utils/__init__.py +0 -0
  231. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/utils/gemini_layout_utils.py +0 -0
  232. {parse_bench-1.0.2 → parse_bench-1.0.3}/src/parse_bench/utils/text_aggregation.py +0 -0
  233. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/analysis/test_comparison_consistency.py +0 -0
  234. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/analysis/test_comparison_core.py +0 -0
  235. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/analysis/test_comparison_directory_suffix.py +0 -0
  236. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/analysis/test_detailed_report.py +0 -0
  237. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/evaluators/test_extract_empty_expected_output.py +0 -0
  238. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/evaluators/test_parse_evaluator_layout_rule_filter.py +0 -0
  239. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/evaluators/test_parse_evaluator_styling_rollup.py +0 -0
  240. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/evaluators/test_parse_evaluator_table_pages.py +0 -0
  241. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/layout_adapters/test_docling_parse_layout_adapter.py +0 -0
  242. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/layout_adapters/test_llamaparse_attribution_scope.py +0 -0
  243. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/layout_adapters/test_llamaparse_canonical_layout_pages.py +0 -0
  244. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/layout_label_mappers/test_llamaparse_label_mapper.py +0 -0
  245. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/layout_label_mappers/test_projection_attributes.py +0 -0
  246. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/layout_label_mappers/test_projection_dual_read.py +0 -0
  247. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/layout_label_mappers/test_pymupdf4llm_label_mapper.py +0 -0
  248. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/attribution/test_attribution_overclaim.py +0 -0
  249. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/extract/test_json_subset_match.py +0 -0
  250. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/field_grounding/test_extract_adapter.py +0 -0
  251. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/layoutdet/test_classification_utils_paging.py +0 -0
  252. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/layoutdet/test_rotated_iou.py +0 -0
  253. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_chart_data_point_rule.py +0 -0
  254. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_chart_label_punctuation.py +0 -0
  255. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_cross_page_table_consistency_metric.py +0 -0
  256. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_degenerate_marker_rules.py +0 -0
  257. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_diagram_rules.py +0 -0
  258. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_fast_table_parity.py +0 -0
  259. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_form_field_rule.py +0 -0
  260. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_formatting_rule_adjacent_spans.py +0 -0
  261. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_grits_metric.py +0 -0
  262. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_grits_perf_equivalence.py +0 -0
  263. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_grits_trm_composite.py +0 -0
  264. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_header_accuracy_metric.py +0 -0
  265. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_heading_structure_rule.py +0 -0
  266. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_merge_preceding_titles.py +0 -0
  267. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_normalize_cell_text.py +0 -0
  268. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_normalize_text_inline_tag_separator.py +0 -0
  269. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_page_decoration_rule.py +0 -0
  270. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_parse_combining_mark_tokenization.py +0 -0
  271. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_parse_formatting_rule_paragraph_spans.py +0 -0
  272. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_parse_formatting_rule_quotes.py +0 -0
  273. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_parse_formatting_rule_span_scope.py +0 -0
  274. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_parse_list_level_rule.py +0 -0
  275. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_parse_table_cell_augmentation.py +0 -0
  276. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_parse_text_order_rule_html.py +0 -0
  277. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_parse_text_presence_rule.py +0 -0
  278. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_relaxed_normalize_cell_text.py +0 -0
  279. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_rule_metric_budget_and_bag_images.py +0 -0
  280. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_rule_metric_side_inputs.py +0 -0
  281. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_caption_title_band.py +0 -0
  282. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_cell_inline_marker_separator.py +0 -0
  283. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_dot_leaders.py +0 -0
  284. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_extraction.py +0 -0
  285. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_marker_cells_rule.py +0 -0
  286. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_merging_metric.py +0 -0
  287. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_pairing.py +0 -0
  288. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_record_match_metric.py +0 -0
  289. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_row_header_th.py +0 -0
  290. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_splitting.py +0 -0
  291. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_tbody_provenance.py +0 -0
  292. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_table_title_stripping.py +0 -0
  293. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_teds_metric.py +0 -0
  294. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_text_color_rule.py +0 -0
  295. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_text_content_projection.py +0 -0
  296. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_text_similarity_metric.py +0 -0
  297. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_title_hierarchy_inapplicable.py +0 -0
  298. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/parse/test_watermark_removal_rule.py +0 -0
  299. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/metrics/qa/test_answer_comparison_exact_choice.py +0 -0
  300. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/test_cli_detailed_report_nonfatal.py +0 -0
  301. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/test_runner_aggregation.py +0 -0
  302. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/test_runner_result_files.py +0 -0
  303. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/test_runner_worker_timeout.py +0 -0
  304. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/evaluation/test_stats.py +0 -0
  305. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/geometry/test_rotated_bbox.py +0 -0
  306. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/extract/test_extend_cost_stats.py +0 -0
  307. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/extract/test_extend_schema_adapter.py +0 -0
  308. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_amazon_nova.py +0 -0
  309. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_anthropic_pricing.py +0 -0
  310. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_azure_document_intelligence_layout.py +0 -0
  311. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_chandra2_multipage.py +0 -0
  312. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_datalab.py +0 -0
  313. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_deepseekocr2_multipage.py +0 -0
  314. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_extend_parse_pages.py +0 -0
  315. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_falconocr_multipage.py +0 -0
  316. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_gemma4_multipage.py +0 -0
  317. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_glm_zai.py +0 -0
  318. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_google_parse_pricing.py +0 -0
  319. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_granite_vision_multipage.py +0 -0
  320. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_infinity_parser2.py +0 -0
  321. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_kdl_frontier_nano.py +0 -0
  322. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_layout_coordinate_frames.py +0 -0
  323. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_layout_utils.py +0 -0
  324. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_liteparse_layout.py +0 -0
  325. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_llamaparse_picture_type.py +0 -0
  326. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_llamaparse_polling.py +0 -0
  327. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_llamaparse_usage_metadata.py +0 -0
  328. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_llamaparse_v2_normalization.py +0 -0
  329. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_llamaparse_v2_null_page_fields.py +0 -0
  330. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_mineru25_multipage.py +0 -0
  331. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_mineru2605pro_multipage.py +0 -0
  332. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_mineru_diffusion_multipage.py +0 -0
  333. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_nemotron_omni_multipage.py +0 -0
  334. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_openai_parse_errors.py +0 -0
  335. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_paddleocr_multipage.py +0 -0
  336. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_pymupdf4llm.py +0 -0
  337. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_qwen.py +0 -0
  338. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_reducto_normalize.py +0 -0
  339. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_surya2_multipage.py +0 -0
  340. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_textract_cost.py +0 -0
  341. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_unlimitedocr_multipage.py +0 -0
  342. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/providers/parse/test_warp_ingest.py +0 -0
  343. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/test_cli.py +0 -0
  344. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/test_layout_extraction.py +0 -0
  345. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/test_parse_pipelines.py +0 -0
  346. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/test_renormalize.py +0 -0
  347. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/inference/test_runner.py +0 -0
  348. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/test_cases/test_loader_stem_twins.py +0 -0
  349. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/test_cases/test_parse_rule_schemas.py +0 -0
  350. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/test_cases/test_rule_ids.py +0 -0
  351. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/test_evaluation_schema_extra_fields.py +0 -0
  352. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/test_extensions.py +0 -0
  353. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/parse_bench/test_layout_label_mapping_code_alias.py +0 -0
  354. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/test_data_dir_routing.py +0 -0
  355. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/test_extract_integration.py +0 -0
  356. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/test_llamaparse_base_url.py +0 -0
  357. {parse_bench-1.0.2 → parse_bench-1.0.3}/tests/test_pulse_public_api.py +0 -0
@@ -4,6 +4,14 @@ 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
+ ## [Unreleased]
8
+
9
+ ### Changed
10
+ - Dropped the `scikit-learn` dependency. Layout-detection average precision is
11
+ now computed with a small numpy implementation that matches
12
+ `sklearn.metrics.average_precision_score` (including tied-score handling),
13
+ so evaluation numbers are unchanged. `scipy` remains a core dependency.
14
+
7
15
  ## [1.0.2] - 2026-09-04
8
16
 
9
17
  Ports two fixes that landed in the internal harness while 1.0.1 was being cut.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: parse-bench
3
- Version: 1.0.2
3
+ Version: 1.0.3
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
@@ -43,7 +43,6 @@ Requires-Dist: python-dotenv>=1.0.0
43
43
  Requires-Dist: python-levenshtein>=0.25.0
44
44
  Requires-Dist: rapidfuzz>=3.0.0
45
45
  Requires-Dist: rich>=13.7.0
46
- Requires-Dist: scikit-learn>=1.8.0
47
46
  Requires-Dist: scipy>=1.16.3
48
47
  Requires-Dist: unidecode>=1.3.0
49
48
  Provides-Extra: anthropic
@@ -41,7 +41,6 @@ dependencies = [
41
41
  "python-Levenshtein>=0.25.0",
42
42
  "rapidfuzz>=3.0.0",
43
43
  "rich>=13.7.0",
44
- "scikit-learn>=1.8.0",
45
44
  "scipy>=1.16.3",
46
45
  "unidecode>=1.3.0",
47
46
  "anls-star>=0.1.0",
@@ -199,7 +198,6 @@ module = [
199
198
  "pandas",
200
199
  "fuzzysearch",
201
200
  "scipy.*",
202
- "sklearn.*",
203
201
  "lxml.*",
204
202
  "datalab_sdk",
205
203
  "datalab_sdk.*",
@@ -1,3 +1,3 @@
1
1
  """Document parsing evaluation system for competitive benchmarking."""
2
2
 
3
- __version__ = "1.0.2"
3
+ __version__ = "1.0.3"
@@ -8,13 +8,44 @@ from collections import defaultdict
8
8
  from collections.abc import Callable
9
9
 
10
10
  import numpy as np
11
- from sklearn.metrics import average_precision_score
12
11
 
13
12
  from parse_bench.evaluation.metrics.layoutdet.iou import compute_iou_matrix
14
13
 
15
14
  OverlapFn = Callable[[dict, dict], float]
16
15
 
17
16
 
17
+ def average_precision_score(y_true: np.ndarray, y_score: np.ndarray) -> float:
18
+ """
19
+ Binary average precision, matching ``sklearn.metrics.average_precision_score``.
20
+
21
+ AP = sum_n (R_n - R_{n-1}) * P_n, where precision/recall are evaluated at each
22
+ distinct score threshold (tied scores are grouped, as in scikit-learn).
23
+
24
+ :param y_true: Binary labels, shape (N,)
25
+ :param y_score: Confidence scores, shape (N,)
26
+ :return: Average precision in [0, 1]; 0.0 if there are no positives
27
+ """
28
+ y_true = np.asarray(y_true, dtype=float).ravel()
29
+ y_score = np.asarray(y_score, dtype=float).ravel()
30
+ n_pos = float(y_true.sum())
31
+ if len(y_true) == 0 or n_pos == 0:
32
+ return 0.0
33
+
34
+ order = np.argsort(-y_score, kind="stable")
35
+ y_true = y_true[order]
36
+ y_score = y_score[order]
37
+
38
+ # Indices of the last element in each group of tied scores
39
+ distinct = np.where(np.diff(y_score) != 0)[0]
40
+ threshold_idx = np.concatenate([distinct, [len(y_true) - 1]])
41
+
42
+ tps = np.cumsum(y_true)[threshold_idx]
43
+ precision = tps / (threshold_idx + 1)
44
+ recall = tps / n_pos
45
+ prev_recall = np.concatenate([[0.0], recall[:-1]])
46
+ return float(np.sum((recall - prev_recall) * precision))
47
+
48
+
18
49
  def match_predictions_to_gt(
19
50
  pred_boxes: np.ndarray, # (N, 4) xyxy format
20
51
  pred_scores: np.ndarray, # (N,)
@@ -0,0 +1,30 @@
1
+ """Pins the numpy average-precision implementation to scikit-learn's semantics."""
2
+
3
+ import numpy as np
4
+ import pytest
5
+
6
+ from parse_bench.evaluation.metrics.layoutdet.classification_utils import average_precision_score
7
+
8
+
9
+ @pytest.mark.parametrize(
10
+ ("y_true", "y_score", "expected"),
11
+ [
12
+ # Reference values computed with sklearn.metrics.average_precision_score
13
+ ([1, 0, 1, 1], [0.9, 0.8, 0.7, 0.6], 0.8055555555555556),
14
+ ([0, 0, 1, 1], [0.1, 0.4, 0.35, 0.8], 0.8333333333333333),
15
+ ([1, 1, 0, 0], [0.9, 0.8, 0.7, 0.6], 1.0),
16
+ ([0, 0, 1, 1], [0.9, 0.8, 0.7, 0.6], 0.41666666666666663),
17
+ # Tied scores are grouped at one threshold (sklearn semantics)
18
+ ([1, 0, 1, 0], [0.5, 0.5, 0.5, 0.5], 0.5),
19
+ ([1, 0, 0, 1], [0.9, 0.5, 0.5, 0.5], 0.75),
20
+ ],
21
+ )
22
+ def test_matches_sklearn_reference_values(y_true, y_score, expected):
23
+ ap = average_precision_score(np.array(y_true, dtype=float), np.array(y_score, dtype=float))
24
+ assert ap == pytest.approx(expected)
25
+
26
+
27
+ def test_degenerate_inputs():
28
+ assert average_precision_score(np.array([]), np.array([])) == 0.0
29
+ assert average_precision_score(np.zeros(3), np.array([0.3, 0.2, 0.1])) == 0.0
30
+ assert average_precision_score(np.ones(3), np.array([0.3, 0.2, 0.1])) == 1.0
File without changes
File without changes
File without changes