docvortex 0.2.1__tar.gz → 0.2.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 (598) hide show
  1. {docvortex-0.2.1/src/docvortex.egg-info → docvortex-0.2.2}/PKG-INFO +1 -1
  2. {docvortex-0.2.1 → docvortex-0.2.2}/docs/COMPATIBILITY.md +1 -1
  3. {docvortex-0.2.1 → docvortex-0.2.2}/docs/DOCVORTEX_UPGRADE.md +51 -1
  4. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/document.py +9 -6
  5. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/version.py +1 -1
  6. docvortex-0.2.2/src/docvortex/visualization.py +222 -0
  7. {docvortex-0.2.1 → docvortex-0.2.2/src/docvortex.egg-info}/PKG-INFO +1 -1
  8. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex.egg-info/SOURCES.txt +2 -1
  9. docvortex-0.2.2/tests/unittest/test_pdf_visualization.py +345 -0
  10. docvortex-0.2.1/src/docvortex/document/pdf/diagnostics.py +0 -350
  11. {docvortex-0.2.1 → docvortex-0.2.2}/LICENSE.md +0 -0
  12. {docvortex-0.2.1 → docvortex-0.2.2}/MANIFEST.in +0 -0
  13. {docvortex-0.2.1 → docvortex-0.2.2}/README.md +0 -0
  14. {docvortex-0.2.1 → docvortex-0.2.2}/demo/README.md +0 -0
  15. {docvortex-0.2.1 → docvortex-0.2.2}/demo/demo.py +0 -0
  16. {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/README.md +0 -0
  17. {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/docx_01.doc +0 -0
  18. {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/docx_01.docx +0 -0
  19. {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/pptx_01.ppt +0 -0
  20. {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/pptx_01.pptx +0 -0
  21. {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/rtf_01.rtf +0 -0
  22. {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/xlsx_01.xls +0 -0
  23. {docvortex-0.2.1 → docvortex-0.2.2}/demo/office_docs/xlsx_01.xlsx +0 -0
  24. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/2407.00079v4_origi-10.pdf +0 -0
  25. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/IEBM_A_2667169_O-5.pdf +0 -0
  26. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/caibao1.pdf +0 -0
  27. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/demo1.pdf +0 -0
  28. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/demo2.pdf +0 -0
  29. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/demo3.pdf +0 -0
  30. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/demo4.pdf +0 -0
  31. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/demo6.pdf +0 -0
  32. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/mixed_elements_pages_03_06.pdf +0 -0
  33. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/mixed_elements_pages_07_10.pdf +0 -0
  34. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/mixed_elements_pages_11_15.pdf +0 -0
  35. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/mixed_elements_pages_39_40.pdf +0 -0
  36. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs/small_ocr.pdf +0 -0
  37. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/207.pdf" +0 -0
  38. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2072.pdf" +0 -0
  39. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2073.pdf" +0 -0
  40. {docvortex-0.2.1 → docvortex-0.2.2}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2074.pdf" +0 -0
  41. {docvortex-0.2.1 → docvortex-0.2.2}/docs/HTML_PROTOCOL.md +0 -0
  42. {docvortex-0.2.1 → docvortex-0.2.2}/docs/JSON_PROTOCOL.md +0 -0
  43. {docvortex-0.2.1 → docvortex-0.2.2}/docs/PDF_FONTS.md +0 -0
  44. {docvortex-0.2.1 → docvortex-0.2.2}/docs/PDF_SCRIPT_REPAIR.md +0 -0
  45. {docvortex-0.2.1 → docvortex-0.2.2}/docs/PDF_TEXT_NORMALIZATION.md +0 -0
  46. {docvortex-0.2.1 → docvortex-0.2.2}/docs/REFACTOR_PROGRESS.md +0 -0
  47. {docvortex-0.2.1 → docvortex-0.2.2}/docs/RENDER_OWNERSHIP.md +0 -0
  48. {docvortex-0.2.1 → docvortex-0.2.2}/docs/architecture.md +0 -0
  49. {docvortex-0.2.1 → docvortex-0.2.2}/docs/migration.md +0 -0
  50. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/content-list-ownership.json +0 -0
  51. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/docvortex-text-baseline.json +0 -0
  52. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/docvortex-upgrade.json +0 -0
  53. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/droid-cjk-v1.json +0 -0
  54. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/droid-platform-comparison.json +0 -0
  55. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/html-namespace.json +0 -0
  56. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/json-envelope-v2-baselines.json +0 -0
  57. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/json-envelope-v2.md +0 -0
  58. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/pdf-geometry-calibration.json +0 -0
  59. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/pdf-geometry-calibration.md +0 -0
  60. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/pdf-script-repair.json +0 -0
  61. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/pdf-text-normalization.json +0 -0
  62. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/pdf-text-output-baseline.json +0 -0
  63. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/progressive-refactor.json +0 -0
  64. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/test-migration.json +0 -0
  65. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation/test-migration.md +0 -0
  66. {docvortex-0.2.1 → docvortex-0.2.2}/docs/validation.md +0 -0
  67. {docvortex-0.2.1 → docvortex-0.2.2}/pyproject.toml +0 -0
  68. {docvortex-0.2.1 → docvortex-0.2.2}/schemas/middle-2.0.json +0 -0
  69. {docvortex-0.2.1 → docvortex-0.2.2}/schemas/model-2.0.json +0 -0
  70. {docvortex-0.2.1 → docvortex-0.2.2}/setup.cfg +0 -0
  71. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/__init__.py +0 -0
  72. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/__init__.py +0 -0
  73. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/__init__.py +0 -0
  74. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/__init__.py +0 -0
  75. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/hyperlink.py +0 -0
  76. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/image.py +0 -0
  77. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/markup/__init__.py +0 -0
  78. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/markup/anchors.py +0 -0
  79. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/markup/formula.py +0 -0
  80. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/markup/projector.py +0 -0
  81. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/markup/styles.py +0 -0
  82. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/mathml.py +0 -0
  83. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/names.py +0 -0
  84. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/_shared/xycut.py +0 -0
  85. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/contracts.py +0 -0
  86. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/csv.py +0 -0
  87. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/__init__.py +0 -0
  88. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/constants.py +0 -0
  89. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/converter.py +0 -0
  90. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/errors.py +0 -0
  91. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/metadata.py +0 -0
  92. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/package.py +0 -0
  93. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/epub/xhtml.py +0 -0
  94. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/__init__.py +0 -0
  95. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/anchors.py +0 -0
  96. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/constants.py +0 -0
  97. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/contracts.py +0 -0
  98. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/converter.py +0 -0
  99. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/document.py +0 -0
  100. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/errors.py +0 -0
  101. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/resources.py +0 -0
  102. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/html/selector.py +0 -0
  103. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/models.py +0 -0
  104. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/__init__.py +0 -0
  105. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/constants.py +0 -0
  106. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/converter.py +0 -0
  107. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/errors.py +0 -0
  108. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/geometry.py +0 -0
  109. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/images.py +0 -0
  110. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/metadata.py +0 -0
  111. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/models.py +0 -0
  112. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/package.py +0 -0
  113. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/path.py +0 -0
  114. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/reading_order.py +0 -0
  115. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/resources.py +0 -0
  116. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/scene.py +0 -0
  117. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/table.py +0 -0
  118. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/ofd/text.py +0 -0
  119. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/__init__.py +0 -0
  120. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/__init__.py +0 -0
  121. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/bookmarks.py +0 -0
  122. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/doc_converter.py +0 -0
  123. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/fib.py +0 -0
  124. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/fields.py +0 -0
  125. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/formatting.py +0 -0
  126. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/images.py +0 -0
  127. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/lists.py +0 -0
  128. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/models.py +0 -0
  129. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/parser.py +0 -0
  130. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/pieces.py +0 -0
  131. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/records.py +0 -0
  132. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/sprm.py +0 -0
  133. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/doc/styles.py +0 -0
  134. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/__init__.py +0 -0
  135. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/context.py +0 -0
  136. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/docx_converter.py +0 -0
  137. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/equationxml.py +0 -0
  138. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/fields.py +0 -0
  139. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/formatting_types.py +0 -0
  140. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/main.py +0 -0
  141. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/numbering.py +0 -0
  142. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/office_xml.py +0 -0
  143. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/package_normalizer.py +0 -0
  144. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/resources.py +0 -0
  145. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/styles.py +0 -0
  146. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/docx/tables.py +0 -0
  147. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/__init__.py +0 -0
  148. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/image.py +0 -0
  149. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/latex_dict.py +0 -0
  150. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/mtef.py +0 -0
  151. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/mtef_v5.py +0 -0
  152. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/omml.py +0 -0
  153. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/equation/ooxml.py +0 -0
  154. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/errors.py +0 -0
  155. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/image.py +0 -0
  156. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/legacy/__init__.py +0 -0
  157. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/legacy/binary.py +0 -0
  158. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/legacy/officeart.py +0 -0
  159. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/legacy/ole.py +0 -0
  160. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/limits.py +0 -0
  161. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/__init__.py +0 -0
  162. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/chart.py +0 -0
  163. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/constants.py +0 -0
  164. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/converters.py +0 -0
  165. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/errors.py +0 -0
  166. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/metadata.py +0 -0
  167. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/models.py +0 -0
  168. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/package.py +0 -0
  169. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/styles.py +0 -0
  170. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/table.py +0 -0
  171. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/odf/text.py +0 -0
  172. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ooxml_chart.py +0 -0
  173. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/opc.py +0 -0
  174. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/__init__.py +0 -0
  175. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/models.py +0 -0
  176. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/parser.py +0 -0
  177. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/ppt_converter.py +0 -0
  178. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/records.py +0 -0
  179. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/ppt/style_text.py +0 -0
  180. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/__init__.py +0 -0
  181. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/context.py +0 -0
  182. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/lists.py +0 -0
  183. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/main.py +0 -0
  184. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/package_normalizer.py +0 -0
  185. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/pptx_converter.py +0 -0
  186. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/resources.py +0 -0
  187. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/shapes.py +0 -0
  188. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/text_styles.py +0 -0
  189. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/pptx/titles.py +0 -0
  190. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rich_text.py +0 -0
  191. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/__init__.py +0 -0
  192. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/converter.py +0 -0
  193. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/lexer.py +0 -0
  194. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/math.py +0 -0
  195. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/models.py +0 -0
  196. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/rtf/parser.py +0 -0
  197. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/spreadsheet/__init__.py +0 -0
  198. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/spreadsheet/html.py +0 -0
  199. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/spreadsheet/models.py +0 -0
  200. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/spreadsheet/projector.py +0 -0
  201. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/streams.py +0 -0
  202. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/__init__.py +0 -0
  203. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/chart.py +0 -0
  204. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/embedded_chart.py +0 -0
  205. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/models.py +0 -0
  206. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/number_format.py +0 -0
  207. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/parser.py +0 -0
  208. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/records.py +0 -0
  209. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/strings.py +0 -0
  210. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xls/xls_converter.py +0 -0
  211. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xlsx/__init__.py +0 -0
  212. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xlsx/main.py +0 -0
  213. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xlsx/ooxml_ole.py +0 -0
  214. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xlsx/package_normalizer.py +0 -0
  215. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/office/xlsx/xlsx_converter.py +0 -0
  216. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/__init__.py +0 -0
  217. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/auxiliary_text.py +0 -0
  218. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/char_geometry.py +0 -0
  219. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/code_blocks.py +0 -0
  220. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/formulas.py +0 -0
  221. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/geometry.py +0 -0
  222. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/graphics.py +0 -0
  223. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/index_blocks.py +0 -0
  224. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/__init__.py +0 -0
  225. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/common.py +0 -0
  226. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/detection.py +0 -0
  227. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/matching.py +0 -0
  228. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/materialize.py +0 -0
  229. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/scripts.py +0 -0
  230. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/inline/types.py +0 -0
  231. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/line_layout.py +0 -0
  232. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/line_merging.py +0 -0
  233. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/models.py +0 -0
  234. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/native_text.py +0 -0
  235. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/pipeline.py +0 -0
  236. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/script_geometry.py +0 -0
  237. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/shared.py +0 -0
  238. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/spatial_text.py +0 -0
  239. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_annotations.py +0 -0
  240. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_constants.py +0 -0
  241. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_detection.py +0 -0
  242. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_filled_grid.py +0 -0
  243. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_geometry.py +0 -0
  244. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_materialization.py +0 -0
  245. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/__init__.py +0 -0
  246. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/candidate.py +0 -0
  247. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/contracts.py +0 -0
  248. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/engine.py +0 -0
  249. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/geometry.py +0 -0
  250. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/sparse_common.py +0 -0
  251. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/sparse_hybrid.py +0 -0
  252. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/sparse_multiline.py +0 -0
  253. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/text.py +0 -0
  254. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/text_grid.py +0 -0
  255. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_recovery/vector.py +0 -0
  256. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_rows.py +0 -0
  257. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_rules.py +0 -0
  258. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/table_text_styles.py +0 -0
  259. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/tables.py +0 -0
  260. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/__init__.py +0 -0
  261. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/annotations.py +0 -0
  262. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/assembly.py +0 -0
  263. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/common.py +0 -0
  264. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/footnotes.py +0 -0
  265. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/merging.py +0 -0
  266. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_assembly/rows.py +0 -0
  267. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_blocks.py +0 -0
  268. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/text_styles.py +0 -0
  269. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/__init__.py +0 -0
  270. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/body_profile.py +0 -0
  271. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/common.py +0 -0
  272. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/document_profile.py +0 -0
  273. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/lane_titles.py +0 -0
  274. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/page_titles.py +0 -0
  275. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/prototype.py +0 -0
  276. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/title_analysis/structural.py +0 -0
  277. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/titles.py +0 -0
  278. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/typography.py +0 -0
  279. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/analyzers/native/pdf/visual_annotations.py +0 -0
  280. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/api.py +0 -0
  281. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/assets/__init__.py +0 -0
  282. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/assets/store.py +0 -0
  283. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/cli.py +0 -0
  284. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/__init__.py +0 -0
  285. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/html/__init__.py +0 -0
  286. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/html/contracts.py +0 -0
  287. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/html/materializer.py +0 -0
  288. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/html/parser.py +0 -0
  289. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/html/resources.py +0 -0
  290. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/codecs/json.py +0 -0
  291. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/__init__.py +0 -0
  292. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/inline.py +0 -0
  293. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/markup/__init__.py +0 -0
  294. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/markup/anchors.py +0 -0
  295. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/markup/formula.py +0 -0
  296. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/markup/projector.py +0 -0
  297. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/markup/styles.py +0 -0
  298. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/mathml.py +0 -0
  299. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/normalization.py +0 -0
  300. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/spans.py +0 -0
  301. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/__init__.py +0 -0
  302. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/blocks.py +0 -0
  303. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/content.py +0 -0
  304. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/document.py +0 -0
  305. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/html.py +0 -0
  306. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/models.py +0 -0
  307. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/rules.py +0 -0
  308. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/table/structure.py +0 -0
  309. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/content/tree.py +0 -0
  310. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/__init__.py +0 -0
  311. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/contracts.py +0 -0
  312. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/detection.py +0 -0
  313. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/filetypes.py +0 -0
  314. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/page_range.py +0 -0
  315. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/__init__.py +0 -0
  316. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/classify.py +0 -0
  317. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/constants.py +0 -0
  318. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/font_runtime.py +0 -0
  319. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/geometry.py +0 -0
  320. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/images.py +0 -0
  321. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_annotations.py +0 -0
  322. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_contracts.py +0 -0
  323. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_coordinates.py +0 -0
  324. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_lifecycle.py +0 -0
  325. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_objects.py +0 -0
  326. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/native_text_geometry.py +0 -0
  327. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/pdfium.py +0 -0
  328. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/raster.py +0 -0
  329. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/text/__init__.py +0 -0
  330. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/text/contracts.py +0 -0
  331. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/text/extract.py +0 -0
  332. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/text/geometry.py +0 -0
  333. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/text/groups.py +0 -0
  334. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/visual_geometry.py +0 -0
  335. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/pdf/visuals.py +0 -0
  336. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/document/source.py +0 -0
  337. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/errors.py +0 -0
  338. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/export/__init__.py +0 -0
  339. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/export/bundle.py +0 -0
  340. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/export/files.py +0 -0
  341. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/export/middle.py +0 -0
  342. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/__init__.py +0 -0
  343. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/geometry.py +0 -0
  344. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/hyperlink.py +0 -0
  345. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/image.py +0 -0
  346. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/image_encoding.py +0 -0
  347. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/image_payload.py +0 -0
  348. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/language.py +0 -0
  349. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/platform.py +0 -0
  350. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/text.py +0 -0
  351. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/type_identity.py +0 -0
  352. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/foundation/xml_names.py +0 -0
  353. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/options.py +0 -0
  354. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/__init__.py +0 -0
  355. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/content.py +0 -0
  356. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/document.py +0 -0
  357. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/lists.py +0 -0
  358. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/page_blocks.py +0 -0
  359. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/pages.py +0 -0
  360. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/paragraphs.py +0 -0
  361. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/postprocess/visual.py +0 -0
  362. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/__init__.py +0 -0
  363. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/__init__.py +0 -0
  364. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/__init__.py +0 -0
  365. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/context.py +0 -0
  366. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/html_table.py +0 -0
  367. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/index.py +0 -0
  368. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/list_items.py +0 -0
  369. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/common/planner.py +0 -0
  370. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/__init__.py +0 -0
  371. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/assets.py +0 -0
  372. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/inline.py +0 -0
  373. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/math.py +0 -0
  374. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/renderer.py +0 -0
  375. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/styles.py +0 -0
  376. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/docx/table.py +0 -0
  377. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/epub/__init__.py +0 -0
  378. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/epub/assets.py +0 -0
  379. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/epub/package.py +0 -0
  380. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/epub/renderer.py +0 -0
  381. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/html/__init__.py +0 -0
  382. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/html/inline.py +0 -0
  383. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/html/renderer.py +0 -0
  384. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/html/sanitizer.py +0 -0
  385. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/html/table.py +0 -0
  386. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/latex/__init__.py +0 -0
  387. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/latex/assets.py +0 -0
  388. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/latex/inline.py +0 -0
  389. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/latex/renderer.py +0 -0
  390. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/latex/table.py +0 -0
  391. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/__init__.py +0 -0
  392. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/assets.py +0 -0
  393. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/blocks.py +0 -0
  394. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/escaping.py +0 -0
  395. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/inline.py +0 -0
  396. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/renderer.py +0 -0
  397. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/markdown/table.py +0 -0
  398. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/__init__.py +0 -0
  399. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/assets.py +0 -0
  400. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/formula.py +0 -0
  401. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/inline.py +0 -0
  402. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/renderer.py +0 -0
  403. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/styles.py +0 -0
  404. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/pdf/table.py +0 -0
  405. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/structured_content/__init__.py +0 -0
  406. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/_internal/structured_content/renderer.py +0 -0
  407. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/api.py +0 -0
  408. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/contracts.py +0 -0
  409. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/docx.py +0 -0
  410. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/epub.py +0 -0
  411. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/fragments.py +0 -0
  412. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/html.py +0 -0
  413. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/latex.py +0 -0
  414. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/markdown.py +0 -0
  415. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/pdf.py +0 -0
  416. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/render/structured_content.py +0 -0
  417. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/epub/docvortex.css +0 -0
  418. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/fasttext-langdetect/lid.176.ftz +0 -0
  419. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/fonts/DroidSansFallbackFull.ttf +0 -0
  420. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/fonts/NOTICE +0 -0
  421. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/fonts/manifest.json +0 -0
  422. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/html/docvortex.css +0 -0
  423. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/resources/html/docvortex.min.css +0 -0
  424. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/result.py +0 -0
  425. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex/schema.py +0 -0
  426. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex.egg-info/dependency_links.txt +0 -0
  427. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex.egg-info/entry_points.txt +0 -0
  428. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex.egg-info/requires.txt +0 -0
  429. {docvortex-0.2.1 → docvortex-0.2.2}/src/docvortex.egg-info/top_level.txt +0 -0
  430. {docvortex-0.2.1 → docvortex-0.2.2}/tests/benchmarks/flash_pdf.py +0 -0
  431. {docvortex-0.2.1 → docvortex-0.2.2}/tests/benchmarks/pipeline.py +0 -0
  432. {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/evaluate_native_pdf_table_manifest.py +0 -0
  433. {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/flash_layout_block_expectations.json +0 -0
  434. {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/flash_layout_geometry_manifest.json +0 -0
  435. {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/flash_layout_semantic_expectations.json +0 -0
  436. {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/generate_synthetic_pdf_fixtures.py +0 -0
  437. {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/native_pdf_table_cross_page_manifest.json +0 -0
  438. {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/native_pdf_table_demo_manifest.json +0 -0
  439. {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/native_pdf_table_script_truth.json +0 -0
  440. {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/pdf_mixed_font_script_line.json +0 -0
  441. {docvortex-0.2.1 → docvortex-0.2.2}/tests/fixtures/rtf/semantic.rtf +0 -0
  442. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_architecture.py +0 -0
  443. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_benchmark_entrypoint.py +0 -0
  444. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_brand_protocol.py +0 -0
  445. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_complete_pipeline.py +0 -0
  446. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_converter_lifecycle.py +0 -0
  447. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_document_envelope.py +0 -0
  448. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_format_matrix.py +0 -0
  449. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_html_namespace.py +0 -0
  450. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_mixed_font_script_reference.py +0 -0
  451. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_font_geometry.py +0 -0
  452. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_font_runtime.py +0 -0
  453. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_model_text_normalization.py +0 -0
  454. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_output_text.py +0 -0
  455. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_render_pool.py +0 -0
  456. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_source_row_merging.py +0 -0
  457. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_pdf_symbol_normalization.py +0 -0
  458. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_public_pipeline.py +0 -0
  459. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_refactor_raster.py +0 -0
  460. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_refactor_rendering.py +0 -0
  461. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_refactor_resources.py +0 -0
  462. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_render_ownership.py +0 -0
  463. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_renderer_branding.py +0 -0
  464. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_shared_boundaries.py +0 -0
  465. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_system_font_pdf_pipeline.py +0 -0
  466. {docvortex-0.2.1 → docvortex-0.2.2}/tests/test_validated_geometry.py +0 -0
  467. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_docx_equationxml_test_utils.py +0 -0
  468. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_epub_test_utils.py +0 -0
  469. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_flash_pdf_test_utils.py +0 -0
  470. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_image_mtef_test_utils.py +0 -0
  471. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_legacy_doc_test_utils.py +0 -0
  472. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_legacy_ppt_test_utils.py +0 -0
  473. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_legacy_xls_test_utils.py +0 -0
  474. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_metafile_test_utils.py +0 -0
  475. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_mtef_test_utils.py +0 -0
  476. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_mtef_v5_test_utils.py +0 -0
  477. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_native_test_utils.py +0 -0
  478. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_odf_test_utils.py +0 -0
  479. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_ofd_test_utils.py +0 -0
  480. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_office_image_mtef_test_utils.py +0 -0
  481. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_ooxml_mtef_test_utils.py +0 -0
  482. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/_span_test_utils.py +0 -0
  483. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/flash_layout/mixed_text_layout_sample.pdf.xor +0 -0
  484. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/flash_table_annotations_synthetic.pdf +0 -0
  485. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/metabolic_pathway_page_3.pdf +0 -0
  486. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_cjk_layout_synthetic.pdf +0 -0
  487. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/annual_report_fundraising_projects_table.pdf +0 -0
  488. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/annual_report_management_roles_table.pdf +0 -0
  489. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/annual_report_research_projects_table.pdf +0 -0
  490. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/conference_schedule_tables.pdf +0 -0
  491. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/engineering_process_restrictions_table.pdf +0 -0
  492. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/fund_asset_and_transaction_tables.pdf +0 -0
  493. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/fund_manager_profile_table.pdf +0 -0
  494. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/manufacturing_facilities_cross_page_table.pdf +0 -0
  495. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/pollutant_discharge_tables.pdf +0 -0
  496. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/procurement_contract_tables.pdf +0 -0
  497. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/procurement_document_blank_page_tables.pdf +0 -0
  498. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/native_pdf_tables/quarterly_report_financial_tables.pdf +0 -0
  499. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/pdfs/test.pdf +0 -0
  500. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_backend_architecture.py +0 -0
  501. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_backend_block_object_regressions.py +0 -0
  502. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_assets.py +0 -0
  503. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_complex_fields.py +0 -0
  504. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_math.py +0 -0
  505. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_render.py +0 -0
  506. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_special_char_tables.py +0 -0
  507. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_docx_table.py +0 -0
  508. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_emfplus_integration.py +0 -0
  509. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_epub_render.py +0 -0
  510. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_csv.py +0 -0
  511. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_docx_equationxml.py +0 -0
  512. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_epub.py +0 -0
  513. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_html.py +0 -0
  514. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_image_mtef.py +0 -0
  515. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_chart_data.py +0 -0
  516. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_doc.py +0 -0
  517. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_doc_mtef.py +0 -0
  518. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_ppt.py +0 -0
  519. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_xls.py +0 -0
  520. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_legacy_xls_ppt_mtef.py +0 -0
  521. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_markup_anchors.py +0 -0
  522. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_model.py +0 -0
  523. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_mtef_v5.py +0 -0
  524. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_odf.py +0 -0
  525. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_ofd.py +0 -0
  526. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_image_mtef.py +0 -0
  527. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_metafile.py +0 -0
  528. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_models.py +0 -0
  529. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_mtef_v5.py +0 -0
  530. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_package_normalizers.py +0 -0
  531. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_office_title_types.py +0 -0
  532. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_ooxml_mtef.py +0 -0
  533. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_auxiliary_text.py +0 -0
  534. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_char_geometry.py +0 -0
  535. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_code_blocks.py +0 -0
  536. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_document_profile.py +0 -0
  537. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_extractor.py +0 -0
  538. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_formulas.py +0 -0
  539. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_graphics.py +0 -0
  540. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_index_blocks.py +0 -0
  541. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_line_metadata.py +0 -0
  542. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_native_text.py +0 -0
  543. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_pipeline.py +0 -0
  544. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_samples.py +0 -0
  545. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_scripts.py +0 -0
  546. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_semantics.py +0 -0
  547. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_tables.py +0 -0
  548. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_text_blocks.py +0 -0
  549. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_titles.py +0 -0
  550. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_pdf_visual_annotations.py +0 -0
  551. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_rtf.py +0 -0
  552. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_shared_helpers.py +0 -0
  553. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_flash_spreadsheet_projector.py +0 -0
  554. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_guess_suffix_ole2.py +0 -0
  555. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_html_css_build.py +0 -0
  556. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_html_render.py +0 -0
  557. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_html_security.py +0 -0
  558. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_hybrid_script_source_pdfs.py +0 -0
  559. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_latex_render.py +0 -0
  560. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_markdown_render.py +0 -0
  561. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_middle_json_block_models.py +0 -0
  562. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_middle_json_export.py +0 -0
  563. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_middle_json_validator.py +0 -0
  564. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_model_json.py +0 -0
  565. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_native_pdf_table.py +0 -0
  566. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_native_pdf_table_demo_manifest.py +0 -0
  567. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_native_pdf_table_manifest.py +0 -0
  568. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_native_pdf_table_pipeline.py +0 -0
  569. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_native_pdf_table_scripts.py +0 -0
  570. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_office_demo_exports.py +0 -0
  571. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_office_demo_pages.py +0 -0
  572. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_office_parser_regressions.py +0 -0
  573. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_classify.py +0 -0
  574. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_demo_links.py +0 -0
  575. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_document.py +0 -0
  576. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_render.py +0 -0
  577. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_render_diagnostics.py +0 -0
  578. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_pdf_text_styles.py +0 -0
  579. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_postprocess_page_blocks.py +0 -0
  580. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_postprocess_pages.py +0 -0
  581. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_postprocess_paragraphs.py +0 -0
  582. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_postprocess_visual.py +0 -0
  583. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_render_api.py +0 -0
  584. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_render_html_table.py +0 -0
  585. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_render_image_renderer.py +0 -0
  586. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_render_list_index_utils.py +0 -0
  587. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_structured_content_render.py +0 -0
  588. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_table_merge.py +0 -0
  589. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_table_merge_cell_merge.py +0 -0
  590. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_text_block_anchor.py +0 -0
  591. {docvortex-0.2.1 → docvortex-0.2.2}/tests/unittest/test_text_utils.py +0 -0
  592. {docvortex-0.2.1 → docvortex-0.2.2}/tools/__init__.py +0 -0
  593. {docvortex-0.2.1 → docvortex-0.2.2}/tools/build_html_css.py +0 -0
  594. {docvortex-0.2.1 → docvortex-0.2.2}/tools/calibrate_pdf_geometry.py +0 -0
  595. {docvortex-0.2.1 → docvortex-0.2.2}/tools/capture_baseline.py +0 -0
  596. {docvortex-0.2.1 → docvortex-0.2.2}/tools/capture_platform_layout.py +0 -0
  597. {docvortex-0.2.1 → docvortex-0.2.2}/tools/compare_font_platforms.py +0 -0
  598. {docvortex-0.2.1 → docvortex-0.2.2}/tools/font_geometry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docvortex
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: A fast, multi-format document parsing and conversion engine
5
5
  License-Expression: MIT
6
6
  Project-URL: Repository, https://github.com/myhloli/DocVortex
@@ -42,7 +42,7 @@ Saved results and Doclib caches are not rewritten automatically. After upgrading
42
42
  restart running services and use the existing `mineru parse ... --force` option
43
43
  to regenerate results with the current font and text policies.
44
44
 
45
- MinerU declares `docvortex>=0.2.1,<0.3.0`. DocVortex declares
45
+ MinerU declares `docvortex>=0.2.2,<1.0.0` to use the shared PDF layout renderer. DocVortex declares
46
46
  `pypdfium2>=5.10.1,<6`; this constraint also applies when MinerU installs its own
47
47
  direct PDFium dependency. Other shared dependency floors remain aligned, including
48
48
  `pydantic>=2.12.5,<3` and `numpy>=1.21.6`.
@@ -5,6 +5,56 @@ DocGale. The GitHub repository is `myhloli/DocVortex`; the Python distribution,
5
5
  import and command are all `docvortex`. The existing repository history and release
6
6
  draft are retained. Version 0.1.0 remains a draft, not a PyPI publication.
7
7
 
8
+ ## Shared PDF layout visualization in 0.2.2
9
+
10
+ `docvortex.visualization.render_layout_pdf(pdf_bytes, pages, *, page_indices=None)`
11
+ returns PDF bytes with colored layout outlines and `block_type: index` labels. Pass current `MiddleJson.pages`;
12
+ the renderer uses normalized `blocks/content` geometry without changing the input
13
+ document. It preserves page dimensions, CropBox offsets and right-angle rotations.
14
+ This overlays the source PDF; it does not reflow semantic content like `render_pdf`.
15
+
16
+ ```python
17
+ from pathlib import Path
18
+ import docvortex
19
+ from docvortex.visualization import render_layout_pdf
20
+
21
+ source = Path("report.pdf")
22
+ result = docvortex.parse(source)
23
+ Path("layout.pdf").write_bytes(render_layout_pdf(source.read_bytes(), result.middle_json.pages))
24
+ ```
25
+
26
+ For a cropped or reordered PDF, `page_indices[i]` must name the original zero-based
27
+ page index of its i-th page. Omit the mapping only for an original full PDF. A
28
+ mapping with the wrong length raises `ValueError`; missing result pages remain
29
+ unmarked rather than borrowing another page's boxes. For example, a PDF containing
30
+ only original pages 2 and 5 requires `page_indices=(1, 4)`.
31
+
32
+ Page footnotes use teal (`#008080`); headers, footers, page numbers and aside text
33
+ use gray (`#9E9E9E`). Other block colors retain the current palette. All layout
34
+ rectangles use 1 pt outlines without interior fill. Each outlined block has a
35
+ matching 7 pt Helvetica label on a small white background above its top-left corner.
36
+ Labels show the block's own zero-based `index`, including gaps and duplicate
37
+ parent/child values; a missing child index is shown as `-`. Visual parent containers
38
+ are not outlined or labeled separately. Code and algorithm parents still share
39
+ `type="code"`, distinguished by `sub_type`; algorithm children retain
40
+ `algorithm_body` and the same purple as `code_body`.
41
+
42
+ Labels stay upright after page rotation, shift left at the right edge and move
43
+ inside the box when there is no room above it. Overlapping labels move up by rows
44
+ first, then down from the box top; if no non-overlapping row remains on the page,
45
+ the renderer chooses the row with the least label overlap. Labels add extractable
46
+ text to the output PDF; the input PDF and Middle JSON are not modified.
47
+ Label avoidance checks other labels, not source text. Where adjacent blocks have
48
+ little vertical spacing, a label's white background can cover nearby source text
49
+ visually; that text remains in the PDF content stream.
50
+
51
+ MinerU's Gradio preview delegates to this renderer and retains its artifact names.
52
+ `PDFDocument.draw_layout_bbox(pages, output_path,
53
+ page_indices=None)` remains a file-writing wrapper (the mapping is keyword-only),
54
+ now using current `PageInfo` rather than removed legacy layout fields. Legacy
55
+ filled boxes and separately renumbered red reading-order markers are not retained. Private helpers from
56
+ `docvortex.document.pdf.diagnostics` have been removed.
57
+
8
58
  ## On-demand PDF crops in 0.2.1
9
59
 
10
60
  `docvortex.document.pdf.visuals.attach_visual_block_images_from_pdf(document,
@@ -59,7 +109,7 @@ Markdown embedded HTML share the new namespace. PDF, DOCX and LaTeX generated
59
109
  titles, metadata, styles and macros use DocVortex. Supported explicit user titles
60
110
  and authors retain their existing precedence.
61
111
 
62
- MinerU requires `docvortex>=0.2.1,<0.3.0`. Both projects share the new envelope,
112
+ MinerU requires `docvortex>=0.2.2,<1.0.0`. Both projects share the new envelope,
63
113
  with `metadata.file_suffix`, `metadata.producer`, and optional `extensions.mineru`
64
114
  containing actual tier and resolved parse mode. Old JSON adapters and historical
65
115
  page conversion are removed. Python top-level metadata attributes have no aliases.
@@ -1,10 +1,11 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import logging
4
- import os
5
4
  import time
5
+ from collections.abc import Sequence
6
6
  from contextlib import contextmanager
7
7
  from io import BytesIO
8
+ from pathlib import Path
8
9
  from typing import Iterator, Literal, cast
9
10
 
10
11
  import pypdfium2 as pdfium
@@ -544,12 +545,14 @@ class PDFDocument:
544
545
  # Visualization
545
546
  # ------------------------------------------------------------------ #
546
547
 
547
- def draw_layout_bbox(self, pages: list[PageInfo], output_path: str) -> None:
548
- from .diagnostics import draw_layout_bbox
548
+ def draw_layout_bbox(self, pages: list[PageInfo], output_path: str, *, page_indices: Sequence[int] | None = None) -> None:
549
+ """写出带类型与原始编号标签的布局预览;抽页后的文档需传入原始页号映射。"""
550
+ from ...visualization import render_layout_pdf
549
551
 
550
- out_dir = os.path.dirname(output_path) or "."
551
- filename = os.path.basename(output_path)
552
- draw_layout_bbox(pages, self._pdf_bytes, out_dir, filename)
552
+ pdf_bytes = render_layout_pdf(self._pdf_bytes, pages, page_indices=page_indices)
553
+ output = Path(output_path)
554
+ output.parent.mkdir(parents=True, exist_ok=True)
555
+ output.write_bytes(pdf_bytes)
553
556
 
554
557
  # ------------------------------------------------------------------ #
555
558
  # Internal
@@ -1,3 +1,3 @@
1
- __version__ = "0.2.1"
1
+ __version__ = "0.2.2"
2
2
 
3
3
  __all__ = ["__version__"]
@@ -0,0 +1,222 @@
1
+ """在原始 PDF 上标注严格 Middle JSON 的布局,共享实现不负责文件读写。"""
2
+
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Iterable, Sequence
6
+ from io import BytesIO
7
+
8
+ from pypdf import PageObject, PdfReader, PdfWriter
9
+ from pypdf.generic import RectangleObject
10
+ from reportlab.pdfbase import pdfmetrics
11
+ from reportlab.pdfgen import canvas
12
+
13
+ from .schema import PAGE_AUXILIARY_BLOCK_TYPES, BBox, BlockBase, BlockType, PageInfo
14
+
15
+ _VISUAL_PARENT_TYPES = {BlockType.IMAGE, BlockType.TABLE, BlockType.CHART, BlockType.CODE}
16
+
17
+ # 当前布局使用实色边框和同色类型标签;页面脚注独立着色,页面辅助块统一为灰色。
18
+ _BLOCK_COLORS: dict[str, tuple[float, float, float]] = {
19
+ "text": (0.60, 0.05, 0.30),
20
+ "ref_text": (0.45, 0.20, 0.65),
21
+ "doc_title": (0.20, 0.20, 0.80),
22
+ "paragraph_title": (0.20, 0.40, 0.90),
23
+ "equation": (0.00, 0.60, 0.10),
24
+ "list": (0.10, 0.60, 0.35),
25
+ "index": (0.10, 0.60, 0.35),
26
+ "image_body": (0.30, 0.85, 0.05),
27
+ "image_caption": (0.10, 0.55, 0.90),
28
+ "image_footnote": (0.95, 0.45, 0.10),
29
+ "table_body": (0.80, 0.80, 0.00),
30
+ "table_caption": (1.00, 0.85, 0.10),
31
+ "table_footnote": (0.55, 0.90, 0.25),
32
+ "chart_body": (0.30, 0.85, 0.05),
33
+ "chart_caption": (0.10, 0.55, 0.90),
34
+ "chart_footnote": (0.95, 0.45, 0.10),
35
+ "code_body": (0.40, 0.00, 0.80),
36
+ "algorithm_body": (0.40, 0.00, 0.80),
37
+ "code_caption": (0.70, 0.35, 0.95),
38
+ "code_footnote": (0.85, 0.70, 0.95),
39
+ "page_footnote": (0, 128 / 255, 128 / 255),
40
+ **{str(kind): (158 / 255, 158 / 255, 158 / 255) for kind in PAGE_AUXILIARY_BLOCK_TYPES},
41
+ }
42
+
43
+ _LABEL_FONT = "Helvetica"
44
+ _LABEL_FONT_SIZE = 7
45
+ _LABEL_PADDING = 1.0
46
+ _LABEL_GAP = 1.0
47
+
48
+
49
+ def render_layout_pdf(
50
+ pdf_bytes: bytes,
51
+ pages: Sequence[PageInfo],
52
+ *,
53
+ page_indices: Sequence[int] | None = None,
54
+ ) -> bytes:
55
+ """把当前 PageInfo 布局画到 PDF,返回新字节且不修改解析结果。
56
+
57
+ bbox 使用页面显示方向下、以 CropBox 左上角为原点的归一化坐标。
58
+ page_indices 的第 i 项是输入 PDF 第 i 页对应的原始 page_idx;
59
+ 完整原文可省略映射,抽页或重排后的 PDF 必须显式提供映射。
60
+ 没有对应解析结果的页面原样保留,映射长度错误时抛出 ValueError。
61
+ 每个边框标注自身类型和原始 index,缺失 index 显示 -;标签文字可被 PDF 提取。
62
+ """
63
+ if any(not isinstance(page, PageInfo) for page in pages):
64
+ raise TypeError("pages must contain PageInfo instances")
65
+ pages_by_index = {page.page_idx: page for page in pages}
66
+ if len(pages_by_index) != len(pages):
67
+ raise ValueError("pages must have unique page_idx values")
68
+
69
+ reader = PdfReader(BytesIO(pdf_bytes))
70
+ indices = tuple(range(len(reader.pages))) if page_indices is None else tuple(page_indices)
71
+ if len(indices) != len(reader.pages):
72
+ raise ValueError("page_indices length must match the PDF page count")
73
+ if any(isinstance(index, bool) or not isinstance(index, int) or index < 0 for index in indices):
74
+ raise ValueError("page_indices must contain non-negative integers")
75
+
76
+ writer = PdfWriter()
77
+ for source_page, original_index in zip(reader.pages, indices):
78
+ # 直接复制原页可保留 MediaBox、CropBox、Rotate 和原有批注。
79
+ page_copy = writer.add_page(source_page)
80
+ middle_page = pages_by_index.get(original_index)
81
+ if middle_page is not None:
82
+ overlay = _build_page_overlay(source_page, middle_page)
83
+ if overlay is not None:
84
+ page_copy.merge_page(overlay)
85
+
86
+ output = BytesIO()
87
+ writer.write(output)
88
+ return output.getvalue()
89
+
90
+
91
+ def _build_page_overlay(page: PageObject, middle_page: PageInfo) -> PageObject | None:
92
+ """先绘制边框,再按显示方向放置标签,保留原页方向和页面框。"""
93
+ if page.cropbox.width <= 0 or page.cropbox.height <= 0:
94
+ return None
95
+ boxes = list(_iter_overlay_boxes(middle_page.blocks))
96
+ if not boxes:
97
+ return None
98
+
99
+ packet = BytesIO()
100
+ painter = canvas.Canvas(packet, pagesize=(float(page.mediabox.width), float(page.mediabox.height)))
101
+ painter.setLineWidth(1.0)
102
+ for block_type, bbox, _ in boxes:
103
+ x0, y0, x1, y1 = _normalized_bbox_to_pdf(bbox, page)
104
+ painter.setStrokeColorRGB(*_BLOCK_COLORS.get(block_type, (0.90, 0.10, 0.10)))
105
+ painter.rect(x0, y0, max(0.5, x1 - x0), max(0.5, y1 - y0), stroke=1, fill=0)
106
+ _draw_overlay_labels(painter, page, boxes)
107
+ painter.save()
108
+ packet.seek(0)
109
+ overlay = PdfReader(packet).pages[0]
110
+ # merge_page 按 overlay 的 CropBox 裁剪,必须同步原页偏移,支持负坐标。
111
+ overlay.mediabox = RectangleObject(page.mediabox)
112
+ overlay.cropbox = RectangleObject(page.cropbox)
113
+ return overlay
114
+
115
+
116
+ def _iter_overlay_boxes(blocks: Iterable[BlockBase]) -> Iterable[tuple[str, BBox, int | None]]:
117
+ """遍历当前 block 树并保留自身 index;视觉父块只画子块,列表保留层级框。"""
118
+ for block in blocks:
119
+ if block.bbox is not None and block.type not in _VISUAL_PARENT_TYPES:
120
+ yield str(block.type), block.bbox, block.index
121
+ content = getattr(block, "content", None)
122
+ children = [child for child in content if isinstance(child, BlockBase)] if isinstance(content, list) else []
123
+ if block.type in _VISUAL_PARENT_TYPES:
124
+ for child in children:
125
+ if child.bbox is not None:
126
+ yield str(child.type), child.bbox, child.index
127
+ elif children:
128
+ yield from _iter_overlay_boxes(children)
129
+
130
+
131
+ def _draw_overlay_labels(painter: canvas.Canvas, page: PageObject, boxes: Sequence[tuple[str, BBox, int | None]]) -> None:
132
+ """在显示方向的左下原点坐标系中绘制正向标签,并用白底保护文字可读性。"""
133
+ left, bottom = float(page.cropbox.left), float(page.cropbox.bottom)
134
+ width, height = float(page.cropbox.width), float(page.cropbox.height)
135
+ rotation = page.rotation % 360
136
+ transforms = {
137
+ 0: (1, 0, 0, 1, left, bottom),
138
+ 90: (0, 1, -1, 0, left + width, bottom),
139
+ 180: (-1, 0, 0, -1, left + width, bottom + height),
140
+ 270: (0, -1, 1, 0, left, bottom + height),
141
+ }
142
+ painter.saveState()
143
+ painter.transform(*transforms[rotation])
144
+ if rotation in (90, 270):
145
+ width, height = height, width
146
+ ascent, descent = pdfmetrics.getAscentDescent(_LABEL_FONT, _LABEL_FONT_SIZE)
147
+ label_height = ascent - descent + 2 * _LABEL_PADDING
148
+ occupied: list[BBox] = []
149
+ for block_type, bbox, index in boxes:
150
+ label = f"{block_type}: {index if index is not None else '-'}"
151
+ text_width = pdfmetrics.stringWidth(label, _LABEL_FONT, _LABEL_FONT_SIZE)
152
+ label_width = min(text_width + 2 * _LABEL_PADDING, width)
153
+ rect = _place_label(bbox[0] * width, (1 - bbox[1]) * height, label_width, label_height, width, height, occupied)
154
+ occupied.append(rect)
155
+ x0, y0, x1, y1 = rect
156
+ painter.setFillColorRGB(1, 1, 1)
157
+ painter.rect(x0, y0, x1 - x0, y1 - y0, stroke=0, fill=1)
158
+ painter.setFillColorRGB(*_BLOCK_COLORS.get(block_type, (0.90, 0.10, 0.10)))
159
+ text = painter.beginText(x0 + _LABEL_PADDING, y0 + _LABEL_PADDING - descent)
160
+ text.setFont(_LABEL_FONT, _LABEL_FONT_SIZE)
161
+ # 极窄页面仅压缩标签的水平宽度,不让右侧文字越过 CropBox。
162
+ text.setHorizScale(100 * min(1, max(0, label_width - 2 * _LABEL_PADDING) / text_width))
163
+ text.textOut(label)
164
+ painter.drawText(text)
165
+ painter.restoreState()
166
+
167
+
168
+ def _place_label(
169
+ left: float,
170
+ top: float,
171
+ width: float,
172
+ height: float,
173
+ page_width: float,
174
+ page_height: float,
175
+ occupied: Sequence[BBox],
176
+ ) -> BBox:
177
+ """优先在框上方逐行避让,页顶受限时向框内下移;满页时选遮叠面积最小的位置。"""
178
+ left = max(0, min(left, page_width - width))
179
+ step = height + _LABEL_GAP
180
+ candidates: list[BBox] = []
181
+ y = top + _LABEL_GAP
182
+ while y + height <= page_height:
183
+ candidates.append((left, y, left + width, y + height))
184
+ y += step
185
+ y = min(top - _LABEL_GAP - height, page_height - height)
186
+ while y >= 0:
187
+ candidates.append((left, y, left + width, y + height))
188
+ y -= step
189
+ if not candidates:
190
+ candidates.append((left, 0, left + width, min(height, page_height)))
191
+ best = candidates[0]
192
+ best_overlap = float("inf")
193
+ for candidate in candidates:
194
+ x0, y0, x1, y1 = candidate
195
+ overlap = sum(
196
+ max(0, min(x1, other[2]) - max(x0, other[0])) * max(0, min(y1, other[3]) - max(y0, other[1])) for other in occupied
197
+ )
198
+ if overlap == 0:
199
+ return candidate
200
+ if overlap < best_overlap:
201
+ best, best_overlap = candidate, overlap
202
+ return best
203
+
204
+
205
+ def _normalized_bbox_to_pdf(bbox: BBox, page: PageObject) -> BBox:
206
+ """反转显示方向的直角旋转,并把 CropBox 内的归一化框还原为 PDF 坐标。"""
207
+ left, bottom = float(page.cropbox.left), float(page.cropbox.bottom)
208
+ width, height = float(page.cropbox.width), float(page.cropbox.height)
209
+ x0, y0, x1, y1 = bbox
210
+ rotation = page.rotation % 360
211
+ if rotation == 90:
212
+ return left + y0 * width, bottom + x0 * height, left + y1 * width, bottom + x1 * height
213
+ if rotation == 180:
214
+ return left + (1 - x1) * width, bottom + y0 * height, left + (1 - x0) * width, bottom + y1 * height
215
+ if rotation == 270:
216
+ return left + (1 - y1) * width, bottom + (1 - x1) * height, left + (1 - y0) * width, bottom + (1 - x0) * height
217
+ if rotation != 0:
218
+ raise ValueError("PDF page rotation must be a multiple of 90 degrees")
219
+ return left + x0 * width, bottom + (1 - y1) * height, left + x1 * width, bottom + (1 - y0) * height
220
+
221
+
222
+ __all__ = ["render_layout_pdf"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docvortex
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: A fast, multi-format document parsing and conversion engine
5
5
  License-Expression: MIT
6
6
  Project-URL: Repository, https://github.com/myhloli/DocVortex
@@ -67,6 +67,7 @@ src/docvortex/options.py
67
67
  src/docvortex/result.py
68
68
  src/docvortex/schema.py
69
69
  src/docvortex/version.py
70
+ src/docvortex/visualization.py
70
71
  src/docvortex.egg-info/PKG-INFO
71
72
  src/docvortex.egg-info/SOURCES.txt
72
73
  src/docvortex.egg-info/dependency_links.txt
@@ -318,7 +319,6 @@ src/docvortex/document/source.py
318
319
  src/docvortex/document/pdf/__init__.py
319
320
  src/docvortex/document/pdf/classify.py
320
321
  src/docvortex/document/pdf/constants.py
321
- src/docvortex/document/pdf/diagnostics.py
322
322
  src/docvortex/document/pdf/document.py
323
323
  src/docvortex/document/pdf/font_runtime.py
324
324
  src/docvortex/document/pdf/geometry.py
@@ -555,6 +555,7 @@ tests/unittest/test_pdf_document.py
555
555
  tests/unittest/test_pdf_render.py
556
556
  tests/unittest/test_pdf_render_diagnostics.py
557
557
  tests/unittest/test_pdf_text_styles.py
558
+ tests/unittest/test_pdf_visualization.py
558
559
  tests/unittest/test_postprocess_page_blocks.py
559
560
  tests/unittest/test_postprocess_pages.py
560
561
  tests/unittest/test_postprocess_paragraphs.py