docvortex 0.4.2__tar.gz → 0.4.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 (612) hide show
  1. {docvortex-0.4.2/src/docvortex.egg-info → docvortex-0.4.3}/PKG-INFO +3 -1
  2. {docvortex-0.4.2 → docvortex-0.4.3}/README.md +2 -0
  3. {docvortex-0.4.2 → docvortex-0.4.3}/docs/USAGE.md +14 -0
  4. {docvortex-0.4.2 → docvortex-0.4.3}/docs/sdk-0.4.md +6 -0
  5. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/cli.py +22 -2
  6. docvortex-0.4.3/src/docvortex/export/__init__.py +5 -0
  7. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/export/middle.py +5 -1
  8. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/public_api.py +1 -0
  9. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/diagnostics.py +4 -2
  10. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/version.py +1 -1
  11. {docvortex-0.4.2 → docvortex-0.4.3/src/docvortex.egg-info}/PKG-INFO +3 -1
  12. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex.egg-info/SOURCES.txt +3 -0
  13. docvortex-0.4.3/tests/test_cli_logging.py +127 -0
  14. docvortex-0.4.3/tests/test_public_export_api.py +71 -0
  15. docvortex-0.4.3/tests/unittest/test_pdf_diagnostic_levels.py +39 -0
  16. docvortex-0.4.2/src/docvortex/foundation/__init__.py +0 -3
  17. {docvortex-0.4.2 → docvortex-0.4.3}/LICENSE.md +0 -0
  18. {docvortex-0.4.2 → docvortex-0.4.3}/MANIFEST.in +0 -0
  19. {docvortex-0.4.2 → docvortex-0.4.3}/demo/README.md +0 -0
  20. {docvortex-0.4.2 → docvortex-0.4.3}/demo/demo.py +0 -0
  21. {docvortex-0.4.2 → docvortex-0.4.3}/demo/office_docs/README.md +0 -0
  22. {docvortex-0.4.2 → docvortex-0.4.3}/demo/office_docs/docx_01.doc +0 -0
  23. {docvortex-0.4.2 → docvortex-0.4.3}/demo/office_docs/docx_01.docx +0 -0
  24. {docvortex-0.4.2 → docvortex-0.4.3}/demo/office_docs/pptx_01.ppt +0 -0
  25. {docvortex-0.4.2 → docvortex-0.4.3}/demo/office_docs/pptx_01.pptx +0 -0
  26. {docvortex-0.4.2 → docvortex-0.4.3}/demo/office_docs/rtf_01.rtf +0 -0
  27. {docvortex-0.4.2 → docvortex-0.4.3}/demo/office_docs/xlsx_01.xls +0 -0
  28. {docvortex-0.4.2 → docvortex-0.4.3}/demo/office_docs/xlsx_01.xlsx +0 -0
  29. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/2407.00079v4_origi-10.pdf +0 -0
  30. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/IEBM_A_2667169_O-5.pdf +0 -0
  31. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/caibao1.pdf +0 -0
  32. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/demo1.pdf +0 -0
  33. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/demo2.pdf +0 -0
  34. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/demo3.pdf +0 -0
  35. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/demo4.pdf +0 -0
  36. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/demo6.pdf +0 -0
  37. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/mixed_elements_pages_03_06.pdf +0 -0
  38. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/mixed_elements_pages_07_10.pdf +0 -0
  39. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/mixed_elements_pages_11_15.pdf +0 -0
  40. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/mixed_elements_pages_39_40.pdf +0 -0
  41. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs/small_ocr.pdf +0 -0
  42. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/207.pdf" +0 -0
  43. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2072.pdf" +0 -0
  44. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2073.pdf" +0 -0
  45. {docvortex-0.4.2 → docvortex-0.4.3}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2074.pdf" +0 -0
  46. {docvortex-0.4.2 → docvortex-0.4.3}/docs/HTML_PROTOCOL.md +0 -0
  47. {docvortex-0.4.2 → docvortex-0.4.3}/docs/JSON_PROTOCOL.md +0 -0
  48. {docvortex-0.4.2 → docvortex-0.4.3}/docs/METADATA.md +0 -0
  49. {docvortex-0.4.2 → docvortex-0.4.3}/docs/PDF_FONTS.md +0 -0
  50. {docvortex-0.4.2 → docvortex-0.4.3}/docs/RENDER_OWNERSHIP.md +0 -0
  51. {docvortex-0.4.2 → docvortex-0.4.3}/pyproject.toml +0 -0
  52. {docvortex-0.4.2 → docvortex-0.4.3}/schemas/middle-2.0.json +0 -0
  53. {docvortex-0.4.2 → docvortex-0.4.3}/schemas/model-2.0.json +0 -0
  54. {docvortex-0.4.2 → docvortex-0.4.3}/setup.cfg +0 -0
  55. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/__init__.py +0 -0
  56. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/__init__.py +0 -0
  57. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/__init__.py +0 -0
  58. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/_shared/__init__.py +0 -0
  59. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/_shared/hyperlink.py +0 -0
  60. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/_shared/image.py +0 -0
  61. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/_shared/markup/__init__.py +0 -0
  62. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/_shared/markup/anchors.py +0 -0
  63. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/_shared/markup/formula.py +0 -0
  64. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/_shared/markup/projector.py +0 -0
  65. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/_shared/markup/styles.py +0 -0
  66. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/_shared/mathml.py +0 -0
  67. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/_shared/names.py +0 -0
  68. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/_shared/xycut.py +0 -0
  69. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/contracts.py +0 -0
  70. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/csv.py +0 -0
  71. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/epub/__init__.py +0 -0
  72. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/epub/constants.py +0 -0
  73. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/epub/converter.py +0 -0
  74. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/epub/errors.py +0 -0
  75. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/epub/metadata.py +0 -0
  76. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/epub/package.py +0 -0
  77. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/epub/properties.py +0 -0
  78. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/epub/xhtml.py +0 -0
  79. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/html/__init__.py +0 -0
  80. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/html/anchors.py +0 -0
  81. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/html/constants.py +0 -0
  82. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/html/converter.py +0 -0
  83. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/html/document.py +0 -0
  84. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/html/errors.py +0 -0
  85. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/html/metadata.py +0 -0
  86. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/html/resources.py +0 -0
  87. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/html/selector.py +0 -0
  88. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/models.py +0 -0
  89. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/__init__.py +0 -0
  90. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/assembly.py +0 -0
  91. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/constants.py +0 -0
  92. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/converter.py +0 -0
  93. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/errors.py +0 -0
  94. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/geometry.py +0 -0
  95. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/images.py +0 -0
  96. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/metadata.py +0 -0
  97. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/models.py +0 -0
  98. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/package.py +0 -0
  99. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/path.py +0 -0
  100. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/reading_order.py +0 -0
  101. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/resources.py +0 -0
  102. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/scene.py +0 -0
  103. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/table.py +0 -0
  104. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/text.py +0 -0
  105. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/ofd/vector.py +0 -0
  106. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/__init__.py +0 -0
  107. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/__init__.py +0 -0
  108. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/bookmarks.py +0 -0
  109. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/doc_converter.py +0 -0
  110. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/fib.py +0 -0
  111. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/fields.py +0 -0
  112. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/formatting.py +0 -0
  113. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/images.py +0 -0
  114. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/lists.py +0 -0
  115. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/models.py +0 -0
  116. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/parser.py +0 -0
  117. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/pieces.py +0 -0
  118. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/records.py +0 -0
  119. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/sprm.py +0 -0
  120. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/doc/styles.py +0 -0
  121. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/__init__.py +0 -0
  122. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/context.py +0 -0
  123. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/docx_converter.py +0 -0
  124. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/equationxml.py +0 -0
  125. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/fields.py +0 -0
  126. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/formatting_types.py +0 -0
  127. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/main.py +0 -0
  128. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/numbering.py +0 -0
  129. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/office_xml.py +0 -0
  130. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/package_normalizer.py +0 -0
  131. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/resources.py +0 -0
  132. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/styles.py +0 -0
  133. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/docx/tables.py +0 -0
  134. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/equation/__init__.py +0 -0
  135. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/equation/image.py +0 -0
  136. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/equation/latex_dict.py +0 -0
  137. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/equation/mtef.py +0 -0
  138. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/equation/mtef_v5.py +0 -0
  139. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/equation/omml.py +0 -0
  140. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/equation/ooxml.py +0 -0
  141. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/errors.py +0 -0
  142. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/image.py +0 -0
  143. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/legacy/__init__.py +0 -0
  144. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/legacy/binary.py +0 -0
  145. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/legacy/officeart.py +0 -0
  146. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/legacy/ole.py +0 -0
  147. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/limits.py +0 -0
  148. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/metadata.py +0 -0
  149. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/odf/__init__.py +0 -0
  150. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/odf/chart.py +0 -0
  151. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/odf/constants.py +0 -0
  152. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/odf/converters.py +0 -0
  153. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/odf/errors.py +0 -0
  154. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/odf/metadata.py +0 -0
  155. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/odf/models.py +0 -0
  156. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/odf/package.py +0 -0
  157. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/odf/styles.py +0 -0
  158. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/odf/table.py +0 -0
  159. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/odf/text.py +0 -0
  160. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/ooxml_chart.py +0 -0
  161. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/opc.py +0 -0
  162. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/ppt/__init__.py +0 -0
  163. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/ppt/models.py +0 -0
  164. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/ppt/parser.py +0 -0
  165. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/ppt/ppt_converter.py +0 -0
  166. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/ppt/records.py +0 -0
  167. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/ppt/style_text.py +0 -0
  168. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/pptx/__init__.py +0 -0
  169. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/pptx/context.py +0 -0
  170. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/pptx/lists.py +0 -0
  171. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/pptx/main.py +0 -0
  172. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/pptx/package_normalizer.py +0 -0
  173. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/pptx/pptx_converter.py +0 -0
  174. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/pptx/resources.py +0 -0
  175. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/pptx/shapes.py +0 -0
  176. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/pptx/text_styles.py +0 -0
  177. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/pptx/titles.py +0 -0
  178. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/rich_text.py +0 -0
  179. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/rtf/__init__.py +0 -0
  180. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/rtf/converter.py +0 -0
  181. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/rtf/lexer.py +0 -0
  182. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/rtf/math.py +0 -0
  183. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/rtf/metadata.py +0 -0
  184. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/rtf/models.py +0 -0
  185. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/rtf/parser.py +0 -0
  186. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/spreadsheet/__init__.py +0 -0
  187. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/spreadsheet/html.py +0 -0
  188. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/spreadsheet/models.py +0 -0
  189. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/spreadsheet/projector.py +0 -0
  190. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/streams.py +0 -0
  191. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xls/__init__.py +0 -0
  192. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xls/chart.py +0 -0
  193. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xls/embedded_chart.py +0 -0
  194. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xls/models.py +0 -0
  195. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xls/number_format.py +0 -0
  196. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xls/parser.py +0 -0
  197. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xls/records.py +0 -0
  198. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xls/strings.py +0 -0
  199. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xls/xls_converter.py +0 -0
  200. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xlsx/__init__.py +0 -0
  201. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xlsx/main.py +0 -0
  202. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xlsx/ooxml_ole.py +0 -0
  203. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xlsx/package_normalizer.py +0 -0
  204. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/office/xlsx/xlsx_converter.py +0 -0
  205. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/__init__.py +0 -0
  206. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_script_geometry.py +0 -0
  207. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_table_recovery/__init__.py +0 -0
  208. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_table_recovery/candidate.py +0 -0
  209. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_table_recovery/contracts.py +0 -0
  210. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_table_recovery/engine.py +0 -0
  211. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_table_recovery/geometry.py +0 -0
  212. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_table_recovery/sparse_common.py +0 -0
  213. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_table_recovery/sparse_hybrid.py +0 -0
  214. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_table_recovery/sparse_multiline.py +0 -0
  215. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_table_recovery/text.py +0 -0
  216. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_table_recovery/text_grid.py +0 -0
  217. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/_table_recovery/vector.py +0 -0
  218. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/auxiliary_text.py +0 -0
  219. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/char_geometry.py +0 -0
  220. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/code_blocks.py +0 -0
  221. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/formulas.py +0 -0
  222. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/geometry.py +0 -0
  223. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/graphics.py +0 -0
  224. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/index_blocks.py +0 -0
  225. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/inline/__init__.py +0 -0
  226. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/inline/common.py +0 -0
  227. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/inline/detection.py +0 -0
  228. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/inline/matching.py +0 -0
  229. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/inline/materialize.py +0 -0
  230. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/inline/scripts.py +0 -0
  231. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/inline/types.py +0 -0
  232. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/line_layout.py +0 -0
  233. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/line_merging.py +0 -0
  234. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/models.py +0 -0
  235. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/native_text.py +0 -0
  236. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/pipeline.py +0 -0
  237. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/spatial_text.py +0 -0
  238. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/table_annotations.py +0 -0
  239. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/table_constants.py +0 -0
  240. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/table_detection.py +0 -0
  241. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/table_filled_grid.py +0 -0
  242. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/table_geometry.py +0 -0
  243. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/table_materialization.py +0 -0
  244. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/table_rows.py +0 -0
  245. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/table_rules.py +0 -0
  246. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/table_text_styles.py +0 -0
  247. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/tables.py +0 -0
  248. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/text_assembly/__init__.py +0 -0
  249. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/text_assembly/annotations.py +0 -0
  250. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/text_assembly/assembly.py +0 -0
  251. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/text_assembly/common.py +0 -0
  252. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/text_assembly/footnotes.py +0 -0
  253. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/text_assembly/merging.py +0 -0
  254. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/text_assembly/rows.py +0 -0
  255. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/text_blocks.py +0 -0
  256. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/title_analysis/__init__.py +0 -0
  257. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/title_analysis/body_profile.py +0 -0
  258. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/title_analysis/common.py +0 -0
  259. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/title_analysis/document_profile.py +0 -0
  260. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/title_analysis/lane_titles.py +0 -0
  261. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/title_analysis/page_titles.py +0 -0
  262. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/title_analysis/prototype.py +0 -0
  263. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/title_analysis/structural.py +0 -0
  264. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/titles.py +0 -0
  265. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/typography.py +0 -0
  266. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/native/pdf/visual_annotations.py +0 -0
  267. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/analyzers/pdf.py +0 -0
  268. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/api.py +0 -0
  269. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/assets/__init__.py +0 -0
  270. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/assets/images.py +0 -0
  271. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/assets/store.py +0 -0
  272. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/codecs/__init__.py +0 -0
  273. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/codecs/html/__init__.py +0 -0
  274. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/codecs/html/contracts.py +0 -0
  275. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/codecs/html/materializer.py +0 -0
  276. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/codecs/html/parser.py +0 -0
  277. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/codecs/html/resources.py +0 -0
  278. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/codecs/json.py +0 -0
  279. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/__init__.py +0 -0
  280. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/inline.py +0 -0
  281. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/links.py +0 -0
  282. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/markup/__init__.py +0 -0
  283. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/markup/anchors.py +0 -0
  284. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/markup/formula.py +0 -0
  285. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/markup/projector.py +0 -0
  286. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/markup/styles.py +0 -0
  287. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/mathml.py +0 -0
  288. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/normalization.py +0 -0
  289. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/spans.py +0 -0
  290. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/table/__init__.py +0 -0
  291. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/table/blocks.py +0 -0
  292. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/table/content.py +0 -0
  293. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/table/document.py +0 -0
  294. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/table/html.py +0 -0
  295. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/table/models.py +0 -0
  296. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/table/rules.py +0 -0
  297. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/table/structure.py +0 -0
  298. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/text.py +0 -0
  299. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/content/tree.py +0 -0
  300. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/__init__.py +0 -0
  301. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/contracts.py +0 -0
  302. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/detection.py +0 -0
  303. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/filetypes.py +0 -0
  304. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/page_range.py +0 -0
  305. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/__init__.py +0 -0
  306. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/_document.py +0 -0
  307. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/classify.py +0 -0
  308. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/constants.py +0 -0
  309. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/font_runtime.py +0 -0
  310. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/images.py +0 -0
  311. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/layout.py +0 -0
  312. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/metadata.py +0 -0
  313. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/native_annotations.py +0 -0
  314. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/native_contracts.py +0 -0
  315. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/native_coordinates.py +0 -0
  316. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/native_lifecycle.py +0 -0
  317. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/native_objects.py +0 -0
  318. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/native_text_geometry.py +0 -0
  319. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/pdfium.py +0 -0
  320. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/raster.py +0 -0
  321. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/text/__init__.py +0 -0
  322. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/text/_contracts.py +0 -0
  323. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/text/extract.py +0 -0
  324. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/text/geometry.py +0 -0
  325. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/text/groups.py +0 -0
  326. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/pdf/visuals.py +0 -0
  327. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/properties.py +0 -0
  328. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/document/source.py +0 -0
  329. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/errors.py +0 -0
  330. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/export/bundle.py +0 -0
  331. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/export/files.py +0 -0
  332. {docvortex-0.4.2/src/docvortex/export → docvortex-0.4.3/src/docvortex/foundation}/__init__.py +0 -0
  333. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/foundation/_coordinates.py +0 -0
  334. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/foundation/_geometry.py +0 -0
  335. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/foundation/_hyperlink.py +0 -0
  336. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/foundation/_image.py +0 -0
  337. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/foundation/_image_operations.py +0 -0
  338. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/foundation/_image_payload.py +0 -0
  339. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/foundation/_text.py +0 -0
  340. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/foundation/image_encoding.py +0 -0
  341. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/foundation/language.py +0 -0
  342. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/foundation/type_identity.py +0 -0
  343. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/foundation/xml_names.py +0 -0
  344. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/geometry.py +0 -0
  345. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/metadata.py +0 -0
  346. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/options.py +0 -0
  347. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/postprocess/__init__.py +0 -0
  348. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/postprocess/content.py +0 -0
  349. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/postprocess/document.py +0 -0
  350. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/postprocess/lists.py +0 -0
  351. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/postprocess/page_blocks.py +0 -0
  352. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/postprocess/pages.py +0 -0
  353. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/postprocess/paragraphs.py +0 -0
  354. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/postprocess/visual.py +0 -0
  355. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/__init__.py +0 -0
  356. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/__init__.py +0 -0
  357. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/common/__init__.py +0 -0
  358. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/common/context.py +0 -0
  359. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/common/html_table.py +0 -0
  360. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/common/index.py +0 -0
  361. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/common/list_items.py +0 -0
  362. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/common/planner.py +0 -0
  363. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/docx/__init__.py +0 -0
  364. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/docx/assets.py +0 -0
  365. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/docx/inline.py +0 -0
  366. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/docx/math.py +0 -0
  367. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/docx/renderer.py +0 -0
  368. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/docx/styles.py +0 -0
  369. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/docx/table.py +0 -0
  370. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/epub/__init__.py +0 -0
  371. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/epub/assets.py +0 -0
  372. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/epub/package.py +0 -0
  373. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/epub/renderer.py +0 -0
  374. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/html/__init__.py +0 -0
  375. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/html/inline.py +0 -0
  376. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/html/renderer.py +0 -0
  377. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/html/sanitizer.py +0 -0
  378. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/html/table.py +0 -0
  379. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/latex/__init__.py +0 -0
  380. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/latex/assets.py +0 -0
  381. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/latex/inline.py +0 -0
  382. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/latex/renderer.py +0 -0
  383. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/latex/table.py +0 -0
  384. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/markdown/__init__.py +0 -0
  385. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/markdown/assets.py +0 -0
  386. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/markdown/blocks.py +0 -0
  387. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/markdown/escaping.py +0 -0
  388. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/markdown/inline.py +0 -0
  389. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/markdown/renderer.py +0 -0
  390. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/markdown/table.py +0 -0
  391. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/__init__.py +0 -0
  392. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/assets.py +0 -0
  393. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/font_plan.py +0 -0
  394. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/formula.py +0 -0
  395. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/inline.py +0 -0
  396. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/original.py +0 -0
  397. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/pagination.py +0 -0
  398. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/renderer.py +0 -0
  399. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/styles.py +0 -0
  400. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/table.py +0 -0
  401. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/pdf/title_layout.py +0 -0
  402. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/structured_content/__init__.py +0 -0
  403. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/_internal/structured_content/renderer.py +0 -0
  404. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/api.py +0 -0
  405. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/contracts.py +0 -0
  406. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/docx.py +0 -0
  407. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/epub.py +0 -0
  408. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/fragments.py +0 -0
  409. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/html.py +0 -0
  410. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/latex.py +0 -0
  411. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/markdown.py +0 -0
  412. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/pdf.py +0 -0
  413. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/render/structured_content.py +0 -0
  414. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/resources/epub/docvortex.css +0 -0
  415. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/resources/fasttext-langdetect/lid.176.ftz +0 -0
  416. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/resources/fonts/DroidSansFallbackFull.ttf +0 -0
  417. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/resources/fonts/NOTICE +0 -0
  418. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/resources/fonts/manifest.json +0 -0
  419. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/resources/html/docvortex.css +0 -0
  420. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/resources/html/docvortex.min.css +0 -0
  421. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/result.py +0 -0
  422. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/schema.py +0 -0
  423. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex/visualization.py +0 -0
  424. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex.egg-info/dependency_links.txt +0 -0
  425. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex.egg-info/entry_points.txt +0 -0
  426. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex.egg-info/requires.txt +0 -0
  427. {docvortex-0.4.2 → docvortex-0.4.3}/src/docvortex.egg-info/top_level.txt +0 -0
  428. {docvortex-0.4.2 → docvortex-0.4.3}/tests/benchmarks/flash_pdf.py +0 -0
  429. {docvortex-0.4.2 → docvortex-0.4.3}/tests/benchmarks/pipeline.py +0 -0
  430. {docvortex-0.4.2 → docvortex-0.4.3}/tests/fixtures/evaluate_native_pdf_table_manifest.py +0 -0
  431. {docvortex-0.4.2 → docvortex-0.4.3}/tests/fixtures/flash_layout_block_expectations.json +0 -0
  432. {docvortex-0.4.2 → docvortex-0.4.3}/tests/fixtures/flash_layout_geometry_manifest.json +0 -0
  433. {docvortex-0.4.2 → docvortex-0.4.3}/tests/fixtures/flash_layout_semantic_expectations.json +0 -0
  434. {docvortex-0.4.2 → docvortex-0.4.3}/tests/fixtures/generate_synthetic_pdf_fixtures.py +0 -0
  435. {docvortex-0.4.2 → docvortex-0.4.3}/tests/fixtures/native_pdf_table_cross_page_manifest.json +0 -0
  436. {docvortex-0.4.2 → docvortex-0.4.3}/tests/fixtures/native_pdf_table_demo_manifest.json +0 -0
  437. {docvortex-0.4.2 → docvortex-0.4.3}/tests/fixtures/native_pdf_table_script_truth.json +0 -0
  438. {docvortex-0.4.2 → docvortex-0.4.3}/tests/fixtures/pdf_mixed_font_script_line.json +0 -0
  439. {docvortex-0.4.2 → docvortex-0.4.3}/tests/fixtures/rtf/semantic.rtf +0 -0
  440. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_architecture.py +0 -0
  441. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_benchmark_entrypoint.py +0 -0
  442. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_brand_protocol.py +0 -0
  443. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_complete_pipeline.py +0 -0
  444. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_converter_lifecycle.py +0 -0
  445. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_document_envelope.py +0 -0
  446. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_document_metadata.py +0 -0
  447. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_format_matrix.py +0 -0
  448. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_geometry_api.py +0 -0
  449. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_html_namespace.py +0 -0
  450. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_mixed_font_script_reference.py +0 -0
  451. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_pdf_analysis_api.py +0 -0
  452. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_pdf_font_geometry.py +0 -0
  453. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_pdf_font_runtime.py +0 -0
  454. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_pdf_model_text_normalization.py +0 -0
  455. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_pdf_output_text.py +0 -0
  456. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_pdf_render_pool.py +0 -0
  457. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_pdf_source_row_merging.py +0 -0
  458. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_pdf_symbol_normalization.py +0 -0
  459. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_public_image_api.py +0 -0
  460. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_public_pipeline.py +0 -0
  461. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_refactor_raster.py +0 -0
  462. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_refactor_rendering.py +0 -0
  463. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_refactor_resources.py +0 -0
  464. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_render_ownership.py +0 -0
  465. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_renderer_branding.py +0 -0
  466. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_shared_boundaries.py +0 -0
  467. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_system_font_pdf_pipeline.py +0 -0
  468. {docvortex-0.4.2 → docvortex-0.4.3}/tests/test_validated_geometry.py +0 -0
  469. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_docx_equationxml_test_utils.py +0 -0
  470. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_epub_test_utils.py +0 -0
  471. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_flash_pdf_test_utils.py +0 -0
  472. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_image_mtef_test_utils.py +0 -0
  473. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_legacy_doc_test_utils.py +0 -0
  474. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_legacy_ppt_test_utils.py +0 -0
  475. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_legacy_xls_test_utils.py +0 -0
  476. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_metafile_test_utils.py +0 -0
  477. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_mtef_test_utils.py +0 -0
  478. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_mtef_v5_test_utils.py +0 -0
  479. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_native_test_utils.py +0 -0
  480. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_odf_test_utils.py +0 -0
  481. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_ofd_test_utils.py +0 -0
  482. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_office_image_mtef_test_utils.py +0 -0
  483. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_ooxml_mtef_test_utils.py +0 -0
  484. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/_span_test_utils.py +0 -0
  485. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/flash_layout/mixed_text_layout_sample.pdf.xor +0 -0
  486. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/flash_table_annotations_synthetic.pdf +0 -0
  487. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/metabolic_pathway_page_3.pdf +0 -0
  488. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_cjk_layout_synthetic.pdf +0 -0
  489. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/annual_report_fundraising_projects_table.pdf +0 -0
  490. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/annual_report_management_roles_table.pdf +0 -0
  491. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/annual_report_research_projects_table.pdf +0 -0
  492. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/conference_schedule_tables.pdf +0 -0
  493. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/engineering_process_restrictions_table.pdf +0 -0
  494. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/fund_asset_and_transaction_tables.pdf +0 -0
  495. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/fund_manager_profile_table.pdf +0 -0
  496. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/manufacturing_facilities_cross_page_table.pdf +0 -0
  497. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/pollutant_discharge_tables.pdf +0 -0
  498. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/procurement_contract_tables.pdf +0 -0
  499. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/procurement_document_blank_page_tables.pdf +0 -0
  500. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/native_pdf_tables/quarterly_report_financial_tables.pdf +0 -0
  501. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/pdfs/test.pdf +0 -0
  502. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_backend_architecture.py +0 -0
  503. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_backend_block_object_regressions.py +0 -0
  504. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_docx_assets.py +0 -0
  505. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_docx_complex_fields.py +0 -0
  506. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_docx_math.py +0 -0
  507. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_docx_render.py +0 -0
  508. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_docx_special_char_tables.py +0 -0
  509. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_docx_table.py +0 -0
  510. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_emfplus_integration.py +0 -0
  511. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_epub_backlinks.py +0 -0
  512. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_epub_quoted_note_types.py +0 -0
  513. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_epub_render.py +0 -0
  514. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_csv.py +0 -0
  515. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_docx_equationxml.py +0 -0
  516. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_epub.py +0 -0
  517. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_html.py +0 -0
  518. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_image_mtef.py +0 -0
  519. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_legacy_chart_data.py +0 -0
  520. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_legacy_doc.py +0 -0
  521. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_legacy_doc_mtef.py +0 -0
  522. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_legacy_ppt.py +0 -0
  523. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_legacy_xls.py +0 -0
  524. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_legacy_xls_ppt_mtef.py +0 -0
  525. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_markup_anchors.py +0 -0
  526. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_model.py +0 -0
  527. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_mtef_v5.py +0 -0
  528. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_odf.py +0 -0
  529. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_ofd.py +0 -0
  530. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_office_image_mtef.py +0 -0
  531. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_office_metafile.py +0 -0
  532. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_office_models.py +0 -0
  533. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_office_mtef_v5.py +0 -0
  534. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_office_package_normalizers.py +0 -0
  535. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_office_title_types.py +0 -0
  536. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_ooxml_mtef.py +0 -0
  537. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_auxiliary_text.py +0 -0
  538. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_char_geometry.py +0 -0
  539. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_code_blocks.py +0 -0
  540. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_document_profile.py +0 -0
  541. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_equation_images.py +0 -0
  542. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_extractor.py +0 -0
  543. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_formulas.py +0 -0
  544. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_graphics.py +0 -0
  545. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_index_blocks.py +0 -0
  546. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_line_metadata.py +0 -0
  547. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_native_text.py +0 -0
  548. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_pipeline.py +0 -0
  549. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_samples.py +0 -0
  550. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_scripts.py +0 -0
  551. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_semantics.py +0 -0
  552. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_tables.py +0 -0
  553. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_text_blocks.py +0 -0
  554. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_titles.py +0 -0
  555. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_pdf_visual_annotations.py +0 -0
  556. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_rtf.py +0 -0
  557. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_shared_helpers.py +0 -0
  558. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_flash_spreadsheet_projector.py +0 -0
  559. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_guess_suffix_ole2.py +0 -0
  560. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_html_css_build.py +0 -0
  561. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_html_render.py +0 -0
  562. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_html_security.py +0 -0
  563. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_hybrid_script_source_pdfs.py +0 -0
  564. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_latex_render.py +0 -0
  565. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_markdown_render.py +0 -0
  566. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_middle_json_block_models.py +0 -0
  567. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_middle_json_export.py +0 -0
  568. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_middle_json_validator.py +0 -0
  569. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_model_json.py +0 -0
  570. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_native_pdf_table.py +0 -0
  571. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_native_pdf_table_demo_manifest.py +0 -0
  572. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_native_pdf_table_manifest.py +0 -0
  573. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_native_pdf_table_pipeline.py +0 -0
  574. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_native_pdf_table_scripts.py +0 -0
  575. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_ofd_assembly.py +0 -0
  576. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_ofd_vector_tables.py +0 -0
  577. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_office_demo_exports.py +0 -0
  578. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_office_demo_pages.py +0 -0
  579. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_office_parser_regressions.py +0 -0
  580. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_cjk_wrapping.py +0 -0
  581. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_classify.py +0 -0
  582. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_demo_links.py +0 -0
  583. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_document.py +0 -0
  584. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_original_layout.py +0 -0
  585. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_pagination.py +0 -0
  586. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_render.py +0 -0
  587. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_render_diagnostics.py +0 -0
  588. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_text_styles.py +0 -0
  589. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_title_font_plan.py +0 -0
  590. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_title_space.py +0 -0
  591. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_pdf_visualization.py +0 -0
  592. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_postprocess_page_blocks.py +0 -0
  593. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_postprocess_pages.py +0 -0
  594. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_postprocess_paragraphs.py +0 -0
  595. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_postprocess_visual.py +0 -0
  596. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_render_api.py +0 -0
  597. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_render_html_table.py +0 -0
  598. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_render_image_renderer.py +0 -0
  599. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_render_list_index_utils.py +0 -0
  600. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_structured_content_render.py +0 -0
  601. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_table_merge.py +0 -0
  602. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_table_merge_cell_merge.py +0 -0
  603. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_text_block_anchor.py +0 -0
  604. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_text_boundary_rules.py +0 -0
  605. {docvortex-0.4.2 → docvortex-0.4.3}/tests/unittest/test_text_utils.py +0 -0
  606. {docvortex-0.4.2 → docvortex-0.4.3}/tools/__init__.py +0 -0
  607. {docvortex-0.4.2 → docvortex-0.4.3}/tools/build_html_css.py +0 -0
  608. {docvortex-0.4.2 → docvortex-0.4.3}/tools/calibrate_pdf_geometry.py +0 -0
  609. {docvortex-0.4.2 → docvortex-0.4.3}/tools/capture_baseline.py +0 -0
  610. {docvortex-0.4.2 → docvortex-0.4.3}/tools/capture_platform_layout.py +0 -0
  611. {docvortex-0.4.2 → docvortex-0.4.3}/tools/compare_font_platforms.py +0 -0
  612. {docvortex-0.4.2 → docvortex-0.4.3}/tools/font_geometry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docvortex
3
- Version: 0.4.2
3
+ Version: 0.4.3
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
@@ -106,6 +106,8 @@ docvortex convert report.pdf --format markdown --output output/report.md
106
106
 
107
107
  Replace `report.pdf` with a local file in any supported input format.
108
108
  Use `--format` to choose the output; run `docvortex convert --help` for options.
109
+ The root-level `--log-level` option controls loguru output and defaults to `info`.
110
+ It must precede the command; `DOCVORTEX_LOG_LEVEL=warning` can also configure it.
109
111
 
110
112
  ### Python
111
113
 
@@ -53,6 +53,8 @@ docvortex convert report.pdf --format markdown --output output/report.md
53
53
 
54
54
  Replace `report.pdf` with a local file in any supported input format.
55
55
  Use `--format` to choose the output; run `docvortex convert --help` for options.
56
+ The root-level `--log-level` option controls loguru output and defaults to `info`.
57
+ It must precede the command; `DOCVORTEX_LOG_LEVEL=warning` can also configure it.
56
58
 
57
59
  ### Python
58
60
 
@@ -7,6 +7,20 @@ you need access to intermediate results. All examples use the public Python SDK.
7
7
  Install with `pip install docvortex` and replace `report.pdf` with a local text PDF.
8
8
  Each example can be run independently in a fresh output directory.
9
9
 
10
+ ## Global CLI log level
11
+
12
+ The root-level `--log-level` option controls loguru output for CLI commands.
13
+ It defaults to `info`, supports `trace`, `debug`, `info`, `warning`, `error` and
14
+ `critical`, and must be placed before the subcommand:
15
+
16
+ ```bash
17
+ docvortex --log-level debug convert report.pdf --format markdown --output output/report.md
18
+ ```
19
+
20
+ `DOCVORTEX_LOG_LEVEL` provides the same setting through an environment variable.
21
+ An explicit `--log-level` value takes precedence. SDK imports do not change the
22
+ host application's existing loguru sinks.
23
+
10
24
  ## Stage APIs
11
25
 
12
26
  The pipeline has three stages:
@@ -18,6 +18,12 @@ MinerU 使用 `docvortex>=0.4.0,<0.5.0`。本轮调整 Python 模块边界,保
18
18
 
19
19
  `docvortex.public_api.PUBLIC_API` 是静态模块及符号清单。新增跨库依赖必须同时更新清单、文档和契约测试;不能通过基础实现、私有模块或动态别名绕过边界。
20
20
 
21
+ ## 结果包素材导出(0.4.3)
22
+
23
+ 跨库调用方可通过 `docvortex.export.materialize_middle(middle_json, assets=None)` 获取图片外置后的文档副本与 `AssetStore`,再通过 `validate_materialized_assets(document, assets)` 验证所有图片引用。直接图片和视觉 HTML 内嵌图片使用安全相对路径,原始图片字节及布局方向扩展保持不变;代码字面量不作为 HTML 素材处理。
24
+
25
+ 调用方负责将该副本及素材写入自己的结果包,不应先省略图片再从源 PDF 重裁。缺失引用、未物化网络图片或同名素材冲突会显式失败。物化不修改输入对象、不读取源 PDF、不下载网络资源;已有外部素材须通过 `AssetStore` 显式提供。
26
+
21
27
  ## 行为与资源所有权
22
28
 
23
29
  `prepare_text_evidence` 返回具名的 `PDFTextEvidence`,`apply_text_evidence` 统一完成链接、样式、脚本与 InlineSpan 物化。MinerU 仍决定调用时机、公式排除区域、超大字符页和 OCR 回退。
@@ -3,16 +3,36 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from pathlib import Path
6
+ import sys
6
7
 
7
8
  import click
9
+ from loguru import logger
8
10
 
9
11
  from .version import __version__
10
12
 
11
13
 
14
+ _LOG_LEVELS = ("trace", "debug", "info", "warning", "error", "critical")
15
+
16
+
17
+ def _configure_log_level(level: str) -> None:
18
+ """按全局参数重建 loguru 标准错误输出,并过滤低于该等级的日志。"""
19
+ logger.remove()
20
+ logger.add(sys.stderr, level=level.upper())
21
+
22
+
12
23
  @click.group(help="DocVortex: native multi-format document parsing and conversion.")
13
24
  @click.version_option(__version__)
14
- def main() -> None:
15
- """提供独立文档引擎的命令行入口。"""
25
+ @click.option(
26
+ "--log-level",
27
+ type=click.Choice(_LOG_LEVELS, case_sensitive=False),
28
+ default="info",
29
+ show_default=True,
30
+ envvar="DOCVORTEX_LOG_LEVEL",
31
+ help="Global loguru log level; place this root option before the command.",
32
+ )
33
+ def main(log_level: str) -> None:
34
+ """提供独立文档引擎的命令行入口,并应用全局日志等级。"""
35
+ _configure_log_level(log_level)
16
36
 
17
37
 
18
38
  @main.command("convert")
@@ -0,0 +1,5 @@
1
+ """文档副本与素材字节的公开导出边界。"""
2
+
3
+ from .files import materialize_middle, validate_materialized_assets
4
+
5
+ __all__ = ["materialize_middle", "validate_materialized_assets"]
@@ -58,7 +58,11 @@ def _prepare_export_copy(middle_json: MiddleJson) -> tuple[MiddleJson, dict[str,
58
58
  block.image_base64 = None # type: ignore[attr-defined]
59
59
 
60
60
  content = getattr(block, "content", None)
61
- if not isinstance(content, str) or "data:image/" not in content:
61
+ if (
62
+ str(block.type) not in {"table_body", "chart_body", "image_body"}
63
+ or not isinstance(content, str)
64
+ or "data:image/" not in content
65
+ ):
62
66
  continue
63
67
  if block.index is None:
64
68
  raise ValueError(f"HTML image carrier requires index: page_idx={page.page_idx}, type={block.type}")
@@ -165,6 +165,7 @@ PUBLIC_API: dict[str, tuple[str, ...]] = {
165
165
  "attach_visual_block_images",
166
166
  "attach_visual_block_images_from_pdf",
167
167
  ),
168
+ "docvortex.export": ("materialize_middle", "validate_materialized_assets"),
168
169
  "docvortex.errors": (
169
170
  "DocumentError",
170
171
  "InvalidRequestError",
@@ -12,6 +12,7 @@ from ....result import Diagnostic
12
12
 
13
13
 
14
14
  _diagnostics: ContextVar[list[Diagnostic] | None] = ContextVar("pdf_diagnostics", default=None)
15
+ _DEBUG_DIAGNOSTIC_CODES = frozenset({"pdf_title_layout_expanded", "pdf_layout_scaled"})
15
16
 
16
17
 
17
18
  @contextmanager
@@ -26,8 +27,9 @@ def collect_pdf_diagnostics() -> Iterator[list[Diagnostic]]:
26
27
 
27
28
 
28
29
  def report_pdf_diagnostic(code: str, message: str, page_index: int | None = None) -> None:
29
- """将同一条定位信息写入日志与当前高层产物的诊断列表。"""
30
- logger.warning("{}: {}", code, message)
30
+ """正常布局适配使用 DEBUG,其余使用 WARNING;结构化诊断保持完整。"""
31
+ level = "DEBUG" if code in _DEBUG_DIAGNOSTIC_CODES else "WARNING"
32
+ logger.log(level, "{}: {}", code, message)
31
33
  items = _diagnostics.get()
32
34
  if items is not None:
33
35
  diagnostic = Diagnostic(code, message, page_index)
@@ -1,3 +1,3 @@
1
- __version__ = "0.4.2"
1
+ __version__ = "0.4.3"
2
2
 
3
3
  __all__ = ["__version__"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: docvortex
3
- Version: 0.4.2
3
+ Version: 0.4.3
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
@@ -106,6 +106,8 @@ docvortex convert report.pdf --format markdown --output output/report.md
106
106
 
107
107
  Replace `report.pdf` with a local file in any supported input format.
108
108
  Use `--format` to choose the output; run `docvortex convert --help` for options.
109
+ The root-level `--log-level` option controls loguru output and defaults to `info`.
110
+ It must precede the command; `DOCVORTEX_LOG_LEVEL=warning` can also configure it.
109
111
 
110
112
  ### Python
111
113
 
@@ -422,6 +422,7 @@ src/docvortex/resources/html/docvortex.min.css
422
422
  tests/test_architecture.py
423
423
  tests/test_benchmark_entrypoint.py
424
424
  tests/test_brand_protocol.py
425
+ tests/test_cli_logging.py
425
426
  tests/test_complete_pipeline.py
426
427
  tests/test_converter_lifecycle.py
427
428
  tests/test_document_envelope.py
@@ -438,6 +439,7 @@ tests/test_pdf_output_text.py
438
439
  tests/test_pdf_render_pool.py
439
440
  tests/test_pdf_source_row_merging.py
440
441
  tests/test_pdf_symbol_normalization.py
442
+ tests/test_public_export_api.py
441
443
  tests/test_public_image_api.py
442
444
  tests/test_public_pipeline.py
443
445
  tests/test_refactor_raster.py
@@ -557,6 +559,7 @@ tests/unittest/test_office_parser_regressions.py
557
559
  tests/unittest/test_pdf_cjk_wrapping.py
558
560
  tests/unittest/test_pdf_classify.py
559
561
  tests/unittest/test_pdf_demo_links.py
562
+ tests/unittest/test_pdf_diagnostic_levels.py
560
563
  tests/unittest/test_pdf_document.py
561
564
  tests/unittest/test_pdf_original_layout.py
562
565
  tests/unittest/test_pdf_pagination.py
@@ -0,0 +1,127 @@
1
+ """验证 CLI 全局 loguru 日志等级参数的解析与过滤行为。"""
2
+
3
+ from __future__ import annotations
4
+
5
+ import importlib
6
+ import sys
7
+ from pathlib import Path
8
+ from typing import Iterator
9
+
10
+ from click.testing import CliRunner
11
+ from loguru import logger
12
+ import pytest
13
+
14
+ from docvortex import cli
15
+
16
+
17
+ @pytest.fixture
18
+ def isolated_logger() -> Iterator[None]:
19
+ """隔离 loguru 全局 sink,避免 CLI 日志测试影响其他用例。"""
20
+ logger.remove()
21
+ yield
22
+ logger.remove()
23
+ logger.add(sys.stderr)
24
+
25
+
26
+ class _DummyPDFDocument:
27
+ """替身 PDF 文档,避免日志参数测试依赖真实 PDF 解析。"""
28
+
29
+ def __enter__(self) -> "_DummyPDFDocument":
30
+ return self
31
+
32
+ def __exit__(self, exc_type: object, exc: object, traceback: object) -> bool:
33
+ return False
34
+
35
+ def classify(self) -> str:
36
+ return "txt"
37
+
38
+
39
+ def _invoke_classify(runner: CliRunner, source: Path, *arguments: str):
40
+ """调用 classify 子命令并返回执行结果,供日志参数断言复用。"""
41
+ return runner.invoke(cli.main, [*arguments, "classify", str(source)])
42
+
43
+
44
+ def test_cli_log_level_defaults_to_info(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
45
+ """未显式配置时,根命令默认传入 info 日志等级。"""
46
+ source = tmp_path / "source.pdf"
47
+ source.write_bytes(b"dummy")
48
+ levels = []
49
+ monkeypatch.setattr(cli, "_configure_log_level", levels.append)
50
+ monkeypatch.setattr("docvortex.document.pdf.PDFDocument", lambda _: _DummyPDFDocument())
51
+
52
+ result = _invoke_classify(CliRunner(), source)
53
+
54
+ assert result.exit_code == 0, result.output
55
+ assert levels == ["info"]
56
+
57
+
58
+ def test_cli_log_level_accepts_root_option_and_environment(
59
+ tmp_path: Path, monkeypatch: pytest.MonkeyPatch
60
+ ) -> None:
61
+ """根命令参数生效,且显式参数优先于环境变量。"""
62
+ source = tmp_path / "source.pdf"
63
+ source.write_bytes(b"dummy")
64
+ levels = []
65
+ monkeypatch.setattr(cli, "_configure_log_level", levels.append)
66
+ monkeypatch.setattr("docvortex.document.pdf.PDFDocument", lambda _: _DummyPDFDocument())
67
+ monkeypatch.setenv("DOCVORTEX_LOG_LEVEL", "warning")
68
+ runner = CliRunner()
69
+
70
+ environment_result = _invoke_classify(runner, source)
71
+ explicit_result = _invoke_classify(runner, source, "--log-level", "debug")
72
+
73
+ assert environment_result.exit_code == 0, environment_result.output
74
+ assert explicit_result.exit_code == 0, explicit_result.output
75
+ assert levels == ["warning", "debug"]
76
+
77
+
78
+ def test_cli_rejects_invalid_log_level(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
79
+ """非法日志等级在进入业务命令前被 Click 拒绝。"""
80
+ source = tmp_path / "source.pdf"
81
+ source.write_bytes(b"dummy")
82
+ levels = []
83
+ monkeypatch.setattr(cli, "_configure_log_level", levels.append)
84
+ monkeypatch.setenv("DOCVORTEX_LOG_LEVEL", "verbose")
85
+
86
+ result = _invoke_classify(CliRunner(), source)
87
+
88
+ assert result.exit_code != 0
89
+ assert "Invalid value" in result.output
90
+ assert levels == []
91
+
92
+
93
+ @pytest.mark.parametrize(
94
+ ("level", "expected"),
95
+ [
96
+ ("info", ("debug hidden", False, "warning shown", True)),
97
+ ("debug", ("debug shown", True, "warning shown", True)),
98
+ ("error", ("warning hidden", False, "error shown", True)),
99
+ ],
100
+ )
101
+ def test_configure_log_level_filters_loguru_output(
102
+ isolated_logger, capsys: pytest.CaptureFixture[str], level: str, expected: tuple[str, bool, str, bool]
103
+ ) -> None:
104
+ """全局日志等级按 loguru 阈值过滤标准错误输出。"""
105
+ cli._configure_log_level(level)
106
+ logger.debug("debug hidden" if level == "info" else "debug shown")
107
+ logger.warning("warning hidden" if level == "error" else "warning shown")
108
+ logger.error("error shown")
109
+
110
+ stderr = capsys.readouterr().err
111
+ debug_message, debug_expected, warning_message, warning_expected = expected
112
+ assert (debug_message in stderr) is debug_expected
113
+ assert (warning_message in stderr) is warning_expected
114
+ assert "error shown" in stderr
115
+
116
+
117
+ def test_importing_cli_preserves_host_loguru_sink() -> None:
118
+ """导入 CLI 模块不重建宿主应用已配置的 loguru sink。"""
119
+ messages: list[str] = []
120
+ handler_id = logger.add(messages.append, level="DEBUG", format="{message}")
121
+ try:
122
+ importlib.reload(cli)
123
+ logger.debug("host sink remains")
124
+ finally:
125
+ logger.remove(handler_id)
126
+
127
+ assert "host sink remains\n" in messages
@@ -0,0 +1,71 @@
1
+ """验证跨库素材导出接口的字节所有权及字面量边界。"""
2
+
3
+ from __future__ import annotations
4
+
5
+ import base64
6
+ from typing import get_type_hints
7
+
8
+ import pytest
9
+
10
+ from docvortex.assets import AssetStore
11
+ from docvortex.export import materialize_middle, validate_materialized_assets
12
+ from docvortex.public_api import PUBLIC_API
13
+ from docvortex.schema import MiddleJson
14
+
15
+
16
+ def test_public_export_preserves_payloads_geometry_and_code() -> None:
17
+ """直接图与表内图外置后字节不变,代码中的同名字面量不被当作素材。"""
18
+ image = b"\xff\xd8\xffexample\xff\xd9"
19
+ uri = "data:image/jpeg;base64," + base64.b64encode(image).decode()
20
+ markup = f'<img src="{uri}" width="10">'
21
+ middle = MiddleJson.from_dict(
22
+ {
23
+ "schema": "docvortex.middle",
24
+ "schema_version": "2.0",
25
+ "is_full_document": False,
26
+ "metadata": {"file_suffix": "pdf", "producer": {"name": "test", "version": "1"}},
27
+ "extensions": {
28
+ "docvortex_layout": {
29
+ "version": 1,
30
+ "pages": [{"page_idx": 4, "width_pt": 400, "height_pt": 600, "image_rotations": {"2": 270}}],
31
+ }
32
+ },
33
+ "pages": [
34
+ {
35
+ "page_idx": 4,
36
+ "blocks": [
37
+ {
38
+ "type": "table",
39
+ "index": 2,
40
+ "bbox": [0.1, 0.1, 0.4, 0.5],
41
+ "content": [{"type": "table_body", "index": 2, "content": markup, "image_base64": uri}],
42
+ },
43
+ {
44
+ "type": "code",
45
+ "sub_type": "code",
46
+ "guess_lang": "html",
47
+ "index": 3,
48
+ "bbox": [0.1, 0.6, 0.9, 0.8],
49
+ "content": [{"type": "code_body", "index": 3, "content": markup}],
50
+ },
51
+ ],
52
+ }
53
+ ],
54
+ }
55
+ )
56
+ before = middle.to_json()
57
+ exported, assets = materialize_middle(middle)
58
+ validate_materialized_assets(exported, assets)
59
+ assert set(assets) == {"images/page_4_table_body_2.jpg", "images/page_4_table_body_2_1.jpg"}
60
+ assert all(payload == image for payload in assets.values())
61
+ assert exported.extensions == middle.extensions
62
+ assert exported.pages[0].blocks[1].content[0].content == markup
63
+ assert middle.to_json() == before
64
+ repeated, copied_assets = materialize_middle(exported, assets)
65
+ assert repeated == exported and dict(copied_assets) == dict(assets)
66
+ assert copied_assets is not assets
67
+ with pytest.raises(ValueError, match="Missing materialized asset"):
68
+ validate_materialized_assets(exported, AssetStore())
69
+ assert set(PUBLIC_API["docvortex.export"]) == {"materialize_middle", "validate_materialized_assets"}
70
+ assert get_type_hints(materialize_middle)["return"] == tuple[MiddleJson, AssetStore]
71
+ assert get_type_hints(validate_materialized_assets)["return"] is type(None)
@@ -0,0 +1,39 @@
1
+ """验证 PDF 日志分级不改变结构化诊断及其去重行为。"""
2
+
3
+ from __future__ import annotations
4
+
5
+ import pytest
6
+ from loguru import logger
7
+
8
+ from docvortex.render._internal.pdf.diagnostics import collect_pdf_diagnostics, report_pdf_diagnostic
9
+ from docvortex.result import Diagnostic
10
+
11
+
12
+ @pytest.mark.parametrize(
13
+ "code,level",
14
+ [
15
+ ("pdf_title_layout_expanded", "DEBUG"),
16
+ ("pdf_layout_scaled", "DEBUG"),
17
+ ("pdf_layout_small_text", "WARNING"),
18
+ ("pdf_title_geometry_conflict", "WARNING"),
19
+ ("pdf_image_unavailable", "WARNING"),
20
+ ("pdf_formula_fallback", "WARNING"),
21
+ ("unknown_diagnostic", "WARNING"),
22
+ ],
23
+ )
24
+ def test_log_level_preserves_structured_diagnostics(code: str, level: str) -> None:
25
+ """按真实日志级别捕获输出,重复诊断仍只在结构化列表保存一次。"""
26
+ records: list[str] = []
27
+ warnings: list[str] = []
28
+ debug_sink = logger.add(records.append, level="DEBUG", format="{level.name}|{message}")
29
+ warning_sink = logger.add(warnings.append, level="WARNING", format="{level.name}|{message}")
30
+ try:
31
+ with collect_pdf_diagnostics() as items:
32
+ report_pdf_diagnostic(code, "example", 4)
33
+ report_pdf_diagnostic(code, "example", 4)
34
+ assert items == [Diagnostic(code, "example", 4)]
35
+ assert [str(message).strip() for message in records] == [f"{level}|{code}: example"] * 2
36
+ assert len(warnings) == (2 if level == "WARNING" else 0)
37
+ finally:
38
+ logger.remove(debug_sink)
39
+ logger.remove(warning_sink)
@@ -1,3 +0,0 @@
1
- """DocVortex 模块边界。"""
2
-
3
- __all__ = []
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes