docslicer 0.2.4__tar.gz → 0.2.5__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 (156) hide show
  1. {docslicer-0.2.4 → docslicer-0.2.5}/PKG-INFO +1 -1
  2. {docslicer-0.2.4 → docslicer-0.2.5}/pyproject.toml +1 -1
  3. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/__init__.py +1 -1
  4. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_orchestrator.py +7 -1
  5. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/shared/shared_orchestrator.py +8 -5
  6. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer.egg-info/PKG-INFO +1 -1
  7. {docslicer-0.2.4 → docslicer-0.2.5}/LICENSE +0 -0
  8. {docslicer-0.2.4 → docslicer-0.2.5}/README.md +0 -0
  9. {docslicer-0.2.4 → docslicer-0.2.5}/setup.cfg +0 -0
  10. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_config.py +0 -0
  11. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_result.py +0 -0
  12. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/__init__.py +0 -0
  13. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/color_utils.py +0 -0
  14. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/cpu.py +0 -0
  15. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/df_aggregation/__init__.py +0 -0
  16. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/df_aggregation/registry_aggregator.py +0 -0
  17. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/df_aggregation/text_merge.py +0 -0
  18. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/df_export/__init__.py +0 -0
  19. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/df_export/export_debug.py +0 -0
  20. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/df_export/reorder_columns.py +0 -0
  21. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/io/__init__.py +0 -0
  22. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/io/yaml_compilers/__init__.py +0 -0
  23. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/io/yaml_compilers/exhibit_patterns.py +0 -0
  24. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/io/yaml_compilers/hierarchy_type_patterns.py +0 -0
  25. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/io/yaml_compilers/page_label_patterns.py +0 -0
  26. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/io/yaml_loader.py +0 -0
  27. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/layout/__init__.py +0 -0
  28. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/layout/gutter_detector.py +0 -0
  29. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/layout/layouts.py +0 -0
  30. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/layout/line_merger.py +0 -0
  31. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/layout/line_number_detector.py +0 -0
  32. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/layout/reading_order.py +0 -0
  33. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/layout/shape_processor.py +0 -0
  34. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/oxm_package.py +0 -0
  35. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/parallel.py +0 -0
  36. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/password.py +0 -0
  37. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/safe_call.py +0 -0
  38. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/table/__init__.py +0 -0
  39. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/table/table_header.py +0 -0
  40. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/table/table_normalize.py +0 -0
  41. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/table/table_schema.py +0 -0
  42. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/text_utils.py +0 -0
  43. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/_utils/timing.py +0 -0
  44. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/cli.py +0 -0
  45. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/config/common_author_names.csv +0 -0
  46. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/config/exhibit_patterns.yaml +0 -0
  47. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/config/hierarchy_type_patterns.yaml +0 -0
  48. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/config/page_label_patterns.yaml +0 -0
  49. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/docx/__init__.py +0 -0
  50. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/docx/docx_orchestrator.py +0 -0
  51. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/docx/native_metadata.py +0 -0
  52. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/docx/step_01_package_reader.py +0 -0
  53. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/docx/step_02_run_extractor.py +0 -0
  54. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/docx/step_03_chart_point_builder.py +0 -0
  55. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/docx/step_04_table_cell_builder.py +0 -0
  56. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/docx/step_05_paragraph_builder.py +0 -0
  57. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/docx/step_06_line_builder.py +0 -0
  58. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/docx/step_07_style_prefiller.py +0 -0
  59. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/html/__init__.py +0 -0
  60. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/html/extract_boxes.js +0 -0
  61. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/html/html_orchestrator.py +0 -0
  62. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/html/native_metadata.py +0 -0
  63. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/html/step_01_box_extractor.py +0 -0
  64. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/html/step_01_static_box_extractor.py +0 -0
  65. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/html/step_02_box_cleaner.py +0 -0
  66. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/html/step_03_page_label_detector.py +0 -0
  67. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/html/step_04_line_builder.py +0 -0
  68. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/html/step_05_table_extractor.py +0 -0
  69. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/html/step_06_style_prefiller.py +0 -0
  70. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/mcp/__init__.py +0 -0
  71. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/mcp/_store.py +0 -0
  72. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/mcp/server.py +0 -0
  73. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/metadata/__init__.py +0 -0
  74. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/metadata/consolidate.py +0 -0
  75. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/metadata/generator.py +0 -0
  76. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/metadata/ocr_detector.py +0 -0
  77. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/metadata/page_analysis.py +0 -0
  78. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/metadata/schema.py +0 -0
  79. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/metadata/text_fallback.py +0 -0
  80. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/ocr/__init__.py +0 -0
  81. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/ocr/_availability.py +0 -0
  82. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/ocr/ocr_orchestrator.py +0 -0
  83. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/ocr/step_01_word_extractor.py +0 -0
  84. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/ocr/step_02_word_colorizer.py +0 -0
  85. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/ocr/step_03_shape_extractor.py +0 -0
  86. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/ocr/step_04_text_cleaner.py +0 -0
  87. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/ocr/step_05_font_size_estimator.py +0 -0
  88. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/__init__.py +0 -0
  89. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/_utils/__init__.py +0 -0
  90. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/_utils/coordinates.py +0 -0
  91. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/_utils/form_fields.py +0 -0
  92. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/_utils/form_label_link.py +0 -0
  93. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/_utils/line_classification.py +0 -0
  94. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/_utils/page_rotation.py +0 -0
  95. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/_utils/script_thresholds.py +0 -0
  96. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/_utils/struct_context.py +0 -0
  97. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/_utils/struct_tree.py +0 -0
  98. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/native_metadata.py +0 -0
  99. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/pdf_orchestrator.py +0 -0
  100. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_01_word_extractor.py +0 -0
  101. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_02_image_extractor.py +0 -0
  102. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_03_shape_extractor.py +0 -0
  103. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_04_link_extractor.py +0 -0
  104. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_05_struct_group.py +0 -0
  105. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_06_style_prefiller.py +0 -0
  106. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_07_stream_group.py +0 -0
  107. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_08_reading_order.py +0 -0
  108. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_09_word_relationships.py +0 -0
  109. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_10_cell_builder.py +0 -0
  110. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_11_page_label_detector.py +0 -0
  111. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_12_cell_grouper.py +0 -0
  112. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_13_line_builder.py +0 -0
  113. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pdf/step_14_table_builder.py +0 -0
  114. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pptx/__init__.py +0 -0
  115. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pptx/native_metadata.py +0 -0
  116. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pptx/pptx_orchestrator.py +0 -0
  117. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pptx/step_01_package_reader.py +0 -0
  118. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pptx/step_02_run_extractor.py +0 -0
  119. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pptx/step_03_chart_point_builder.py +0 -0
  120. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pptx/step_04_table_cell_builder.py +0 -0
  121. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pptx/step_05_paragraph_builder.py +0 -0
  122. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pptx/step_06_reading_order.py +0 -0
  123. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pptx/step_07_line_builder.py +0 -0
  124. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/pptx/step_08_style_prefiller.py +0 -0
  125. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/scraping/__init__.py +0 -0
  126. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/scraping/config.py +0 -0
  127. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/scraping/cookie_consent.js +0 -0
  128. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/scraping/dispatcher.py +0 -0
  129. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/scraping/fetchers/__init__.py +0 -0
  130. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/scraping/fetchers/http_fetcher.py +0 -0
  131. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/scraping/fetchers/sec_fetcher.py +0 -0
  132. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/scraping/models.py +0 -0
  133. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/scraping/stealth_init.js +0 -0
  134. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/shared/__init__.py +0 -0
  135. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/shared/step_01_navigation_detector.py +0 -0
  136. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/shared/step_02_toc_detector.py +0 -0
  137. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/shared/step_03_exhibit_detector.py +0 -0
  138. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/shared/step_04_section_classifier.py +0 -0
  139. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/shared/step_05_heading_detector.py +0 -0
  140. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/shared/step_06_hierarchy_builder.py +0 -0
  141. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/shared/step_07_block_merger.py +0 -0
  142. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer/shared/step_08_chunk_builder.py +0 -0
  143. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer.egg-info/SOURCES.txt +0 -0
  144. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer.egg-info/dependency_links.txt +0 -0
  145. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer.egg-info/entry_points.txt +0 -0
  146. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer.egg-info/requires.txt +0 -0
  147. {docslicer-0.2.4 → docslicer-0.2.5}/src/docslicer.egg-info/top_level.txt +0 -0
  148. {docslicer-0.2.4 → docslicer-0.2.5}/tests/test_api.py +0 -0
  149. {docslicer-0.2.4 → docslicer-0.2.5}/tests/test_charts.py +0 -0
  150. {docslicer-0.2.4 → docslicer-0.2.5}/tests/test_document_parser.py +0 -0
  151. {docslicer-0.2.4 → docslicer-0.2.5}/tests/test_errors.py +0 -0
  152. {docslicer-0.2.4 → docslicer-0.2.5}/tests/test_exports.py +0 -0
  153. {docslicer-0.2.4 → docslicer-0.2.5}/tests/test_loose_box_reconstruction.py +0 -0
  154. {docslicer-0.2.4 → docslicer-0.2.5}/tests/test_packaging.py +0 -0
  155. {docslicer-0.2.4 → docslicer-0.2.5}/tests/test_smoke.py +0 -0
  156. {docslicer-0.2.4 → docslicer-0.2.5}/tests/test_table_cell_newlines.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docslicer
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Summary: Answer questions from documents too large to fit in context, reading only the sections you need
5
5
  Author-email: "Market Framer Inc." <jelle@docslicer.ai>
6
6
  License-Expression: AGPL-3.0-only
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "docslicer"
7
- version = "0.2.4"
7
+ version = "0.2.5"
8
8
  description = "Answer questions from documents too large to fit in context, reading only the sections you need"
9
9
  readme = "README.md"
10
10
  license = "AGPL-3.0-only"
@@ -20,7 +20,7 @@ try:
20
20
  from importlib.metadata import version as _pkg_version
21
21
  __version__ = _pkg_version("docslicer")
22
22
  except Exception:
23
- __version__ = "0.2.4"
23
+ __version__ = "0.2.5"
24
24
 
25
25
  from ._config import ParseConfig
26
26
  from ._result import ParseResult, Chunk, Block, Table, TableCell, Chart, ChartPoint, BBox, HierarchyNode, HierarchyTree
@@ -601,7 +601,7 @@ def _run_pipeline(
601
601
  ),
602
602
  )
603
603
 
604
- df_blocks, df_chunks = _run_shared_pipeline(
604
+ df_lines, df_blocks, df_chunks = _run_shared_pipeline(
605
605
  lines_df=df_lines,
606
606
  df_table_cells=df_table_cells,
607
607
  chart_points_df=df_chart_points,
@@ -609,6 +609,12 @@ def _run_pipeline(
609
609
  on_stage=on_stage,
610
610
  )
611
611
 
612
+ # The shared pipeline works on a copy, so the frame the type-specific
613
+ # orchestrator registered under "lines" predates every shared
614
+ # classification. Rebind to the enriched one consumers actually want.
615
+ if config.debug:
616
+ early_steps["lines"] = df_lines
617
+
612
618
  return _build_result(
613
619
  discovered_metadata,
614
620
  df_blocks,
@@ -50,7 +50,7 @@ def run_pipeline(
50
50
  on_stage: Optional[Callable[[str], None]] = None,
51
51
  config: ParseConfig = None,
52
52
  metadata: Dict[str, Any] = None,
53
- ) -> tuple[pd.DataFrame, pd.DataFrame]:
53
+ ) -> tuple[pd.DataFrame, pd.DataFrame, pd.DataFrame]:
54
54
  """
55
55
  Run shared document processing steps.
56
56
 
@@ -69,12 +69,15 @@ def run_pipeline(
69
69
  metadata: Document metadata to attach to output
70
70
 
71
71
  Returns:
72
- DataFrame with chunks
72
+ (df_lines, df_blocks, df_chunks) — df_lines is the *enriched* line frame
73
+ carrying the shared classifications (navigation, TOC, exhibit, doc region,
74
+ hierarchy), not the input frame. Callers that expose lines for debugging
75
+ must rebind to this one; the input frame is left untouched.
73
76
  """
74
77
  config = config or DEFAULT_CONFIG
75
78
 
76
79
  if lines_df.empty:
77
- return lines_df
80
+ return lines_df, lines_df, lines_df
78
81
 
79
82
  df = lines_df.copy()
80
83
 
@@ -144,7 +147,7 @@ def run_pipeline(
144
147
 
145
148
  # Step 07 - Chunk Building (blocks -> chunks)
146
149
  if not config.chunking:
147
- return df_blocks, pd.DataFrame()
150
+ return df, df_blocks, pd.DataFrame()
148
151
 
149
152
  with timed_step("chunk_building", logger=logger):
150
153
  df_chunks = build_chunks(
@@ -165,4 +168,4 @@ def run_pipeline(
165
168
  if key not in df_chunks.columns:
166
169
  df_chunks[key] = value
167
170
 
168
- return df_blocks, df_chunks
171
+ return df, df_blocks, df_chunks
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docslicer
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Summary: Answer questions from documents too large to fit in context, reading only the sections you need
5
5
  Author-email: "Market Framer Inc." <jelle@docslicer.ai>
6
6
  License-Expression: AGPL-3.0-only
File without changes
File without changes
File without changes
File without changes
File without changes