docvortex 0.2.6__tar.gz → 0.3.0__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.
- {docvortex-0.2.6/src/docvortex.egg-info → docvortex-0.3.0}/PKG-INFO +8 -2
- {docvortex-0.2.6 → docvortex-0.3.0}/README.md +7 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/pyproject.toml +1 -1
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_materialization.py +1 -9
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_recovery/text.py +0 -1
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/tables.py +0 -3
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/text_assembly/common.py +1 -9
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/inline.py +8 -26
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/foundation/language.py +1 -39
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/foundation/text.py +75 -18
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/version.py +1 -1
- {docvortex-0.2.6 → docvortex-0.3.0/src/docvortex.egg-info}/PKG-INFO +8 -2
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex.egg-info/SOURCES.txt +1 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex.egg-info/requires.txt +0 -1
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/fixtures/flash_layout_geometry_manifest.json +44 -44
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/fixtures/native_pdf_table_cross_page_manifest.json +1 -1
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_refactor_rendering.py +3 -12
- docvortex-0.3.0/tests/unittest/test_text_boundary_rules.py +65 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_text_utils.py +5 -21
- {docvortex-0.2.6 → docvortex-0.3.0}/LICENSE.md +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/MANIFEST.in +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/README.md +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/demo.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/office_docs/README.md +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/office_docs/docx_01.doc +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/office_docs/docx_01.docx +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/office_docs/pptx_01.ppt +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/office_docs/pptx_01.pptx +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/office_docs/rtf_01.rtf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/office_docs/xlsx_01.xls +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/office_docs/xlsx_01.xlsx +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/2407.00079v4_origi-10.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/IEBM_A_2667169_O-5.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/caibao1.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/demo1.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/demo2.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/demo3.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/demo4.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/demo6.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/mixed_elements_pages_03_06.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/mixed_elements_pages_07_10.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/mixed_elements_pages_11_15.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/mixed_elements_pages_39_40.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs/small_ocr.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/207.pdf" +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2072.pdf" +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2073.pdf" +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/demo/pdfs//344/270/255/346/226/207/350/256/272/346/226/2074.pdf" +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/docs/HTML_PROTOCOL.md +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/docs/JSON_PROTOCOL.md +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/docs/METADATA.md +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/docs/PDF_FONTS.md +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/docs/RENDER_OWNERSHIP.md +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/schemas/middle-2.0.json +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/schemas/model-2.0.json +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/setup.cfg +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/_shared/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/_shared/hyperlink.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/_shared/image.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/_shared/markup/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/_shared/markup/anchors.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/_shared/markup/formula.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/_shared/markup/projector.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/_shared/markup/styles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/_shared/mathml.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/_shared/names.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/_shared/xycut.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/contracts.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/csv.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/epub/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/epub/constants.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/epub/converter.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/epub/errors.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/epub/metadata.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/epub/package.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/epub/properties.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/epub/xhtml.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/html/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/html/anchors.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/html/constants.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/html/contracts.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/html/converter.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/html/document.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/html/errors.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/html/metadata.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/html/resources.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/html/selector.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/assembly.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/constants.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/converter.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/errors.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/images.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/metadata.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/package.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/path.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/reading_order.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/resources.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/scene.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/table.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/text.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/ofd/vector.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/bookmarks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/doc_converter.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/fib.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/fields.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/formatting.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/images.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/lists.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/parser.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/pieces.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/records.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/sprm.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/doc/styles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/context.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/docx_converter.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/equationxml.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/fields.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/formatting_types.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/main.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/numbering.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/office_xml.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/package_normalizer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/resources.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/styles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/docx/tables.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/equation/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/equation/image.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/equation/latex_dict.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/equation/mtef.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/equation/mtef_v5.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/equation/omml.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/equation/ooxml.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/errors.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/image.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/legacy/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/legacy/binary.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/legacy/officeart.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/legacy/ole.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/limits.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/metadata.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/odf/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/odf/chart.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/odf/constants.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/odf/converters.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/odf/errors.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/odf/metadata.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/odf/models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/odf/package.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/odf/styles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/odf/table.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/odf/text.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/ooxml_chart.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/opc.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/ppt/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/ppt/models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/ppt/parser.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/ppt/ppt_converter.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/ppt/records.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/ppt/style_text.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/pptx/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/pptx/context.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/pptx/lists.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/pptx/main.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/pptx/package_normalizer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/pptx/pptx_converter.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/pptx/resources.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/pptx/shapes.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/pptx/text_styles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/pptx/titles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/rich_text.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/rtf/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/rtf/converter.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/rtf/lexer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/rtf/math.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/rtf/metadata.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/rtf/models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/rtf/parser.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/spreadsheet/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/spreadsheet/html.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/spreadsheet/models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/spreadsheet/projector.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/streams.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xls/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xls/chart.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xls/embedded_chart.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xls/models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xls/number_format.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xls/parser.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xls/records.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xls/strings.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xls/xls_converter.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xlsx/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xlsx/main.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xlsx/ooxml_ole.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xlsx/package_normalizer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/office/xlsx/xlsx_converter.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/auxiliary_text.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/char_geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/code_blocks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/formulas.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/graphics.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/index_blocks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/inline/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/inline/common.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/inline/detection.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/inline/matching.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/inline/materialize.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/inline/scripts.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/inline/types.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/line_layout.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/line_merging.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/native_text.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/pipeline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/script_geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/shared.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/spatial_text.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_annotations.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_constants.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_detection.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_filled_grid.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_recovery/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_recovery/candidate.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_recovery/contracts.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_recovery/engine.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_recovery/geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_recovery/sparse_common.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_recovery/sparse_hybrid.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_recovery/sparse_multiline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_recovery/text_grid.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_recovery/vector.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_rows.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_rules.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_text_styles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/text_assembly/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/text_assembly/annotations.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/text_assembly/assembly.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/text_assembly/footnotes.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/text_assembly/merging.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/text_assembly/rows.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/text_blocks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/text_styles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/title_analysis/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/title_analysis/body_profile.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/title_analysis/common.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/title_analysis/document_profile.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/title_analysis/lane_titles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/title_analysis/page_titles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/title_analysis/prototype.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/title_analysis/structural.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/titles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/typography.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/visual_annotations.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/api.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/assets/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/assets/store.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/cli.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/codecs/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/codecs/html/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/codecs/html/contracts.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/codecs/html/materializer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/codecs/html/parser.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/codecs/html/resources.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/codecs/json.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/markup/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/markup/anchors.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/markup/formula.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/markup/projector.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/markup/styles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/mathml.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/normalization.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/spans.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/table/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/table/blocks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/table/content.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/table/document.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/table/html.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/table/models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/table/rules.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/table/structure.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/content/tree.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/contracts.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/detection.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/filetypes.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/page_range.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/classify.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/constants.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/document.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/font_runtime.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/images.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/metadata.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/native_annotations.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/native_contracts.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/native_coordinates.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/native_lifecycle.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/native_objects.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/native_text_geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/pdfium.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/raster.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/text/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/text/contracts.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/text/extract.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/text/geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/text/groups.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/visual_geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/pdf/visuals.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/properties.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/document/source.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/errors.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/export/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/export/bundle.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/export/files.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/export/middle.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/foundation/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/foundation/geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/foundation/hyperlink.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/foundation/image.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/foundation/image_encoding.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/foundation/image_payload.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/foundation/platform.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/foundation/type_identity.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/foundation/xml_names.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/metadata.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/options.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/postprocess/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/postprocess/content.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/postprocess/document.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/postprocess/lists.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/postprocess/page_blocks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/postprocess/pages.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/postprocess/paragraphs.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/postprocess/visual.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/common/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/common/context.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/common/html_table.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/common/index.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/common/list_items.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/common/planner.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/docx/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/docx/assets.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/docx/inline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/docx/math.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/docx/renderer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/docx/styles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/docx/table.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/epub/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/epub/assets.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/epub/package.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/epub/renderer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/html/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/html/inline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/html/renderer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/html/sanitizer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/html/table.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/latex/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/latex/assets.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/latex/inline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/latex/renderer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/latex/table.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/markdown/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/markdown/assets.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/markdown/blocks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/markdown/escaping.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/markdown/inline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/markdown/renderer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/markdown/table.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/pdf/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/pdf/assets.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/pdf/formula.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/pdf/inline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/pdf/renderer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/pdf/styles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/pdf/table.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/structured_content/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/_internal/structured_content/renderer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/api.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/contracts.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/docx.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/epub.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/fragments.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/html.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/latex.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/markdown.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/pdf.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/render/structured_content.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/resources/epub/docvortex.css +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/resources/fasttext-langdetect/lid.176.ftz +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/resources/fonts/DroidSansFallbackFull.ttf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/resources/fonts/NOTICE +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/resources/fonts/manifest.json +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/resources/html/docvortex.css +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/resources/html/docvortex.min.css +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/result.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/schema.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/visualization.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex.egg-info/dependency_links.txt +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex.egg-info/entry_points.txt +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex.egg-info/top_level.txt +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/benchmarks/flash_pdf.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/benchmarks/pipeline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/fixtures/evaluate_native_pdf_table_manifest.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/fixtures/flash_layout_block_expectations.json +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/fixtures/flash_layout_semantic_expectations.json +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/fixtures/generate_synthetic_pdf_fixtures.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/fixtures/native_pdf_table_demo_manifest.json +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/fixtures/native_pdf_table_script_truth.json +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/fixtures/pdf_mixed_font_script_line.json +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/fixtures/rtf/semantic.rtf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_architecture.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_benchmark_entrypoint.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_brand_protocol.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_complete_pipeline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_converter_lifecycle.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_document_envelope.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_document_metadata.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_format_matrix.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_html_namespace.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_mixed_font_script_reference.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_pdf_font_geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_pdf_font_runtime.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_pdf_model_text_normalization.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_pdf_output_text.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_pdf_render_pool.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_pdf_source_row_merging.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_pdf_symbol_normalization.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_public_image_api.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_public_pipeline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_refactor_raster.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_refactor_resources.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_render_ownership.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_renderer_branding.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_shared_boundaries.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_system_font_pdf_pipeline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/test_validated_geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_docx_equationxml_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_epub_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_flash_pdf_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_image_mtef_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_legacy_doc_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_legacy_ppt_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_legacy_xls_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_metafile_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_mtef_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_mtef_v5_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_native_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_odf_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_ofd_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_office_image_mtef_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_ooxml_mtef_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/_span_test_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/flash_layout/mixed_text_layout_sample.pdf.xor +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/flash_table_annotations_synthetic.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/metabolic_pathway_page_3.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_cjk_layout_synthetic.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/annual_report_fundraising_projects_table.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/annual_report_management_roles_table.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/annual_report_research_projects_table.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/conference_schedule_tables.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/engineering_process_restrictions_table.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/fund_asset_and_transaction_tables.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/fund_manager_profile_table.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/manufacturing_facilities_cross_page_table.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/pollutant_discharge_tables.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/procurement_contract_tables.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/procurement_document_blank_page_tables.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/native_pdf_tables/quarterly_report_financial_tables.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/pdfs/test.pdf +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_backend_architecture.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_backend_block_object_regressions.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_docx_assets.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_docx_complex_fields.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_docx_math.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_docx_render.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_docx_special_char_tables.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_docx_table.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_emfplus_integration.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_epub_backlinks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_epub_quoted_note_types.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_epub_render.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_csv.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_docx_equationxml.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_epub.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_html.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_image_mtef.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_legacy_chart_data.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_legacy_doc.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_legacy_doc_mtef.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_legacy_ppt.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_legacy_xls.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_legacy_xls_ppt_mtef.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_markup_anchors.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_model.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_mtef_v5.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_odf.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_ofd.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_office_image_mtef.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_office_metafile.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_office_models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_office_mtef_v5.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_office_package_normalizers.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_office_title_types.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_ooxml_mtef.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_auxiliary_text.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_char_geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_code_blocks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_document_profile.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_extractor.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_formulas.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_graphics.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_index_blocks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_line_metadata.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_native_text.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_pipeline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_samples.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_scripts.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_semantics.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_tables.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_text_blocks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_titles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_pdf_visual_annotations.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_rtf.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_shared_helpers.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_flash_spreadsheet_projector.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_guess_suffix_ole2.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_html_css_build.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_html_render.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_html_security.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_hybrid_script_source_pdfs.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_latex_render.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_markdown_render.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_middle_json_block_models.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_middle_json_export.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_middle_json_validator.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_model_json.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_native_pdf_table.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_native_pdf_table_demo_manifest.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_native_pdf_table_manifest.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_native_pdf_table_pipeline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_native_pdf_table_scripts.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_ofd_assembly.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_ofd_vector_tables.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_office_demo_exports.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_office_demo_pages.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_office_parser_regressions.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_pdf_classify.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_pdf_demo_links.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_pdf_document.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_pdf_render.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_pdf_render_diagnostics.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_pdf_text_styles.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_pdf_visualization.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_postprocess_page_blocks.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_postprocess_pages.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_postprocess_paragraphs.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_postprocess_visual.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_render_api.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_render_html_table.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_render_image_renderer.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_render_list_index_utils.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_structured_content_render.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_table_merge.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_table_merge_cell_merge.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tests/unittest/test_text_block_anchor.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tools/__init__.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tools/build_html_css.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tools/calibrate_pdf_geometry.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tools/capture_baseline.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tools/capture_platform_layout.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tools/compare_font_platforms.py +0 -0
- {docvortex-0.2.6 → docvortex-0.3.0}/tools/font_geometry.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: docvortex
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
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
|
|
@@ -38,7 +38,6 @@ Requires-Dist: mathml2omml==0.0.2
|
|
|
38
38
|
Requires-Dist: resvg_py<0.6,>=0.5.0
|
|
39
39
|
Requires-Dist: reportlab
|
|
40
40
|
Requires-Dist: ziamath<0.14,>=0.13
|
|
41
|
-
Requires-Dist: fast-langdetect<0.3.0,>=0.2.3
|
|
42
41
|
Requires-Dist: magika<1.1.0,>=0.6.2
|
|
43
42
|
Requires-Dist: opencv-python>=4.11.0.86
|
|
44
43
|
Provides-Extra: test
|
|
@@ -209,3 +208,10 @@ print(inspection.metadata.document.authors)
|
|
|
209
208
|
All 15 native document formats support this API. Normal parsing also carries these properties in
|
|
210
209
|
`metadata.document`, preserving the original PDF properties across page selections. See the
|
|
211
210
|
[field definitions, format matrix, and compatibility notes](docs/METADATA.md).
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
### Python 3.14 and text joining (0.3.0)
|
|
214
|
+
|
|
215
|
+
DocVortex supports ordinary CPython 3.10–3.14. Physical text lines are joined by deterministic Unicode boundary rules, with URL and dehyphenation safeguards. Language detection models and the fast-langdetect / fasttext-predict dependencies are no longer required.
|
|
216
|
+
|
|
217
|
+
The shared `resolve_text_line_boundary` and `merge_text_line_contents` helpers no longer accept `block_language`; `detect_lang` has been removed. Hosts should call the shared boundary helpers directly. OCR language selection and Magika code-language recognition are unchanged.
|
|
@@ -155,3 +155,10 @@ print(inspection.metadata.document.authors)
|
|
|
155
155
|
All 15 native document formats support this API. Normal parsing also carries these properties in
|
|
156
156
|
`metadata.document`, preserving the original PDF properties across page selections. See the
|
|
157
157
|
[field definitions, format matrix, and compatibility notes](docs/METADATA.md).
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
### Python 3.14 and text joining (0.3.0)
|
|
161
|
+
|
|
162
|
+
DocVortex supports ordinary CPython 3.10–3.14. Physical text lines are joined by deterministic Unicode boundary rules, with URL and dehyphenation safeguards. Language detection models and the fast-langdetect / fasttext-predict dependencies are no longer required.
|
|
163
|
+
|
|
164
|
+
The shared `resolve_text_line_boundary` and `merge_text_line_contents` helpers no longer accept `block_language`; `detect_lang` has been removed. Hosts should call the shared boundary helpers directly. OCR language selection and Magika code-language recognition are unchanged.
|
|
@@ -27,7 +27,7 @@ dependencies = [
|
|
|
27
27
|
"mammoth>=1.11.0,<2", "openpyxl>=3.1.5,<4", "olefile>=0.47,<1",
|
|
28
28
|
"pylatexenc>=2.10,<3", "latex2mathml>=3.81.0,<4", "mathml2omml==0.0.2",
|
|
29
29
|
"resvg_py>=0.5.0,<0.6",
|
|
30
|
-
"reportlab", "ziamath>=0.13,<0.14",
|
|
30
|
+
"reportlab", "ziamath>=0.13,<0.14",
|
|
31
31
|
"magika>=0.6.2,<1.1.0", "opencv-python>=4.11.0.86",
|
|
32
32
|
]
|
|
33
33
|
|
{docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/table_materialization.py
RENAMED
|
@@ -16,7 +16,6 @@ from .table_text_styles import render_native_table_html_with_scripts
|
|
|
16
16
|
from ....foundation.text import merge_text_line_contents
|
|
17
17
|
from .spatial_text import project_pdf_table_text
|
|
18
18
|
from ....schema import BBox
|
|
19
|
-
from ....foundation.language import detect_lang
|
|
20
19
|
from .models import _LineItem, _PageSource, _TableAnnotation, _TableCandidate
|
|
21
20
|
from .geometry import (
|
|
22
21
|
_bbox_axis_overlap_ratio,
|
|
@@ -320,14 +319,7 @@ def _merge_table_annotation_content(line_texts: list[str]) -> str:
|
|
|
320
319
|
normalized_lines = [normalized for text in line_texts if (normalized := _normalize_native_run_text(str(text or "")))]
|
|
321
320
|
if not normalized_lines:
|
|
322
321
|
return ""
|
|
323
|
-
|
|
324
|
-
block_language = detect_lang("".join(normalized_lines))
|
|
325
|
-
except Exception:
|
|
326
|
-
block_language = ""
|
|
327
|
-
return merge_text_line_contents(
|
|
328
|
-
normalized_lines,
|
|
329
|
-
block_language=block_language,
|
|
330
|
-
)
|
|
322
|
+
return merge_text_line_contents(normalized_lines)
|
|
331
323
|
|
|
332
324
|
|
|
333
325
|
def _table_body_materialization_bbox(
|
|
@@ -107,9 +107,6 @@ from ....schema import (
|
|
|
107
107
|
from ....document.pdf.document import (
|
|
108
108
|
PDFPathInfo as PDFPathInfo,
|
|
109
109
|
)
|
|
110
|
-
from ....foundation.language import (
|
|
111
|
-
detect_lang as detect_lang,
|
|
112
|
-
)
|
|
113
110
|
from .models import (
|
|
114
111
|
_Fragment as _Fragment,
|
|
115
112
|
_LineItem as _LineItem,
|
{docvortex-0.2.6 → docvortex-0.3.0}/src/docvortex/analyzers/native/pdf/text_assembly/common.py
RENAMED
|
@@ -5,7 +5,6 @@ from __future__ import annotations
|
|
|
5
5
|
import re
|
|
6
6
|
from typing import Any, Sequence
|
|
7
7
|
|
|
8
|
-
from .....foundation.language import detect_lang
|
|
9
8
|
from .....foundation.text import merge_text_line_contents
|
|
10
9
|
from ..geometry import _bbox_axis_overlap_ratio, _bbox_center_y, _bbox_union_many
|
|
11
10
|
from ..native_text import _normalize_native_run_text
|
|
@@ -437,14 +436,7 @@ def _merge_text_line_content(line_texts: Sequence[str]) -> str:
|
|
|
437
436
|
normalized_lines = [text for text in normalized_lines if text]
|
|
438
437
|
if not normalized_lines:
|
|
439
438
|
return ""
|
|
440
|
-
|
|
441
|
-
block_language = detect_lang("".join(normalized_lines))
|
|
442
|
-
except Exception:
|
|
443
|
-
block_language = ""
|
|
444
|
-
return merge_text_line_contents(
|
|
445
|
-
normalized_lines,
|
|
446
|
-
block_language=block_language,
|
|
447
|
-
)
|
|
439
|
+
return merge_text_line_contents(normalized_lines)
|
|
448
440
|
|
|
449
441
|
|
|
450
442
|
__all__ = [
|
|
@@ -2,15 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
import re
|
|
6
5
|
from copy import deepcopy
|
|
7
6
|
from typing import Callable, Iterable
|
|
8
7
|
|
|
9
8
|
from ..schema import CodeInlineSpan, EquationInlineSpan, HyperlinkSpan, InlineSpan, TextSpan, parse_inline_spans
|
|
10
|
-
from ..foundation.
|
|
11
|
-
from ..foundation.
|
|
12
|
-
|
|
13
|
-
_CJK_RE = re.compile(r"[\u3040-\u30ff\u3400-\u9fff\uac00-\ud7af]")
|
|
9
|
+
from ..foundation.text import resolve_text_line_boundary
|
|
10
|
+
from ..foundation.language import remove_invalid_surrogates
|
|
14
11
|
|
|
15
12
|
|
|
16
13
|
def normalize_inline_spans(spans: Iterable[InlineSpan | dict[str, object]]) -> list[InlineSpan]:
|
|
@@ -63,7 +60,7 @@ def join_inline_spans(contents: Iterable[Iterable[InlineSpan]]) -> list[InlineSp
|
|
|
63
60
|
"""按物理段落边界规则合并多组 Span,并保持结构化语义。"""
|
|
64
61
|
merged: list[InlineSpan] = []
|
|
65
62
|
for content in contents:
|
|
66
|
-
current =
|
|
63
|
+
current = map_text_span_content(list(content), remove_invalid_surrogates)
|
|
67
64
|
if not current:
|
|
68
65
|
continue
|
|
69
66
|
# 边界裁剪最多清空最后一个根节点;保留其前驱以重新合并新相邻的 Span。
|
|
@@ -138,7 +135,7 @@ def map_text_span_content(spans: Iterable[InlineSpan], transform: Callable[[str]
|
|
|
138
135
|
|
|
139
136
|
|
|
140
137
|
def _join_inline_span_sequences(previous: list[InlineSpan], current: list[InlineSpan]) -> None:
|
|
141
|
-
"""
|
|
138
|
+
"""按两组 Span 的可见边界拼接,只修改可写文本叶子,保留公式和代码。"""
|
|
142
139
|
previous_visible = inline_plain_text(previous).rstrip()
|
|
143
140
|
current_visible = inline_plain_text(current).lstrip()
|
|
144
141
|
if not previous_visible or not current_visible:
|
|
@@ -151,30 +148,15 @@ def _join_inline_span_sequences(previous: list[InlineSpan], current: list[Inline
|
|
|
151
148
|
if first_text is not None:
|
|
152
149
|
object.__setattr__(first_text, "content", first_text.content.lstrip())
|
|
153
150
|
|
|
154
|
-
|
|
151
|
+
processed, separator = resolve_text_line_boundary(previous_visible, next_content=current_visible)
|
|
155
152
|
if last_text is not None:
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
next_content=current_visible,
|
|
160
|
-
)
|
|
161
|
-
object.__setattr__(last_text, "content", processed)
|
|
162
|
-
else:
|
|
163
|
-
separator = "" if language in CJK_LANGS else " "
|
|
153
|
+
# 共享规则最多删除一个行末断词符;不能把整个可见投影写回单一叶子。
|
|
154
|
+
if processed == previous_visible[:-1] and last_text.content.endswith(previous_visible[-1]):
|
|
155
|
+
object.__setattr__(last_text, "content", last_text.content[:-1])
|
|
164
156
|
if separator:
|
|
165
157
|
previous.append(TextSpan(type="text", content=separator))
|
|
166
158
|
|
|
167
159
|
|
|
168
|
-
def _detect_boundary_language(content: str) -> str:
|
|
169
|
-
"""检测段落边界语言,短 CJK 文本优先使用字符范围兜底。"""
|
|
170
|
-
if _CJK_RE.search(content):
|
|
171
|
-
return "zh"
|
|
172
|
-
try:
|
|
173
|
-
return detect_lang(content)
|
|
174
|
-
except Exception:
|
|
175
|
-
return ""
|
|
176
|
-
|
|
177
|
-
|
|
178
160
|
def _first_text_span(spans: list[InlineSpan]) -> TextSpan | None:
|
|
179
161
|
"""返回首个可见叶子为文字时对应的 TextSpan。"""
|
|
180
162
|
for span in spans:
|
|
@@ -1,43 +1,14 @@
|
|
|
1
|
-
import os
|
|
2
1
|
import re
|
|
3
|
-
import unicodedata
|
|
4
2
|
|
|
5
3
|
DEFAULT_CODE_LANGUAGE = "txt"
|
|
6
4
|
_INVALID_SURROGATES = re.compile("[\ud800-\udfff]")
|
|
7
5
|
|
|
8
6
|
|
|
9
|
-
def _detect_language(text: str) -> object:
|
|
10
|
-
"""首次检测时配置本地模型缓存并惰性加载语言识别器。"""
|
|
11
|
-
from fast_langdetect import detect_language
|
|
12
|
-
|
|
13
|
-
return detect_language(text, low_memory=True)
|
|
14
|
-
|
|
15
|
-
|
|
16
7
|
def remove_invalid_surrogates(text: str) -> str:
|
|
17
8
|
"""等价移除代理码点;常见合法 Unicode 文本无需逐字符 Python 扫描。"""
|
|
18
9
|
return _INVALID_SURROGATES.sub("", text)
|
|
19
10
|
|
|
20
11
|
|
|
21
|
-
def detect_lang(text: str) -> str:
|
|
22
|
-
if len(text) == 0:
|
|
23
|
-
return ""
|
|
24
|
-
|
|
25
|
-
text = text.replace("\n", "")
|
|
26
|
-
text = remove_invalid_surrogates(text)
|
|
27
|
-
|
|
28
|
-
try:
|
|
29
|
-
lang_upper = _detect_language(text)
|
|
30
|
-
except Exception:
|
|
31
|
-
html_no_ctrl_chars = "".join([c for c in text if unicodedata.category(c)[0] not in ["C"]])
|
|
32
|
-
lang_upper = _detect_language(html_no_ctrl_chars)
|
|
33
|
-
|
|
34
|
-
try:
|
|
35
|
-
lang = lang_upper.lower()
|
|
36
|
-
except Exception:
|
|
37
|
-
lang = ""
|
|
38
|
-
return lang
|
|
39
|
-
|
|
40
|
-
|
|
41
12
|
def _normalize_text_for_language_guess(code: str) -> str:
|
|
42
13
|
"""移除孤立代理字符并还原合法代理对,供代码语言识别使用。"""
|
|
43
14
|
if not code:
|
|
@@ -80,13 +51,4 @@ def guess_code_language(code: str) -> str:
|
|
|
80
51
|
return lang if lang != "unknown" else DEFAULT_CODE_LANGUAGE
|
|
81
52
|
|
|
82
53
|
|
|
83
|
-
|
|
84
|
-
print(os.getenv("FTLANG_CACHE"))
|
|
85
|
-
print(detect_lang("This is a test."))
|
|
86
|
-
print(detect_lang("<html>This is a test</html>"))
|
|
87
|
-
print(detect_lang("这个是中文测试。"))
|
|
88
|
-
print(detect_lang("<html>这个是中文测试。</html>"))
|
|
89
|
-
print(detect_lang("〖\ud835\udc46\ud835〗这是个包含utf-16的中文测试"))
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
__all__ = ["DEFAULT_CODE_LANGUAGE", "detect_lang", "guess_code_language", "remove_invalid_surrogates"]
|
|
54
|
+
__all__ = ["DEFAULT_CODE_LANGUAGE", "guess_code_language", "remove_invalid_surrogates"]
|
|
@@ -1,10 +1,33 @@
|
|
|
1
1
|
"""跨模型共享的文本字符规范化与换行连接规则。"""
|
|
2
2
|
|
|
3
3
|
import re
|
|
4
|
+
import unicodedata
|
|
4
5
|
from collections.abc import Sequence
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
from .language import remove_invalid_surrogates
|
|
8
|
+
|
|
9
|
+
# 使用固定码点区间覆盖扩展汉字、假名和中日标点,避免不同 Python 的 Unicode 版本改变结果。
|
|
10
|
+
_UNSPACED_RANGES = (
|
|
11
|
+
(0x3000, 0x303F),
|
|
12
|
+
(0x3040, 0x30FF),
|
|
13
|
+
(0x31F0, 0x31FF),
|
|
14
|
+
(0x3400, 0x4DBF),
|
|
15
|
+
(0x4E00, 0x9FFF),
|
|
16
|
+
(0xF900, 0xFAFF),
|
|
17
|
+
(0xFF61, 0xFF9F),
|
|
18
|
+
(0x1AFF0, 0x1AFFF),
|
|
19
|
+
(0x1B000, 0x1B16F),
|
|
20
|
+
(0x20000, 0x2EE5F),
|
|
21
|
+
(0x2F800, 0x2FA1F),
|
|
22
|
+
(0x30000, 0x323AF),
|
|
23
|
+
)
|
|
24
|
+
_CJK_PUNCTUATION = frozenset(",。!?;:、()【】《》〈〉「」『』〔〕[]{}")
|
|
25
|
+
_CLOSING_PUNCTUATION = frozenset(",.;:!?%")
|
|
26
|
+
# 明确的复合词前缀与连接词只用于保守保留硬连字符,不承担语言识别或词典分词。
|
|
27
|
+
_COMPOUND_PREFIXES = frozenset({"open", "non", "self", "cross", "anti", "pre", "post", "co", "semi", "multi", "quasi"})
|
|
28
|
+
_COMPOUND_CONNECTORS = frozenset({"of", "the", "to", "and", "in", "for", "on", "by", "with"})
|
|
29
|
+
# 只投影已有的行内样式标记,不把任意 HTML 或公式解析为可改写内容。
|
|
30
|
+
_INLINE_STYLE_TAG_RE = re.compile(r"</?(?:sup|sub|b|strong|i|em|u|s|del|strike)\b[^>]*>", re.IGNORECASE)
|
|
8
31
|
|
|
9
32
|
# PDF 文本抽取时,英文跨行断词可能被编码为多种 hyphen 字符。
|
|
10
33
|
# 这里只用于判断“行末英文断词符”,不要扩展到 en/em dash 等普通破折号。
|
|
@@ -45,48 +68,82 @@ def _url_spans_line_boundary(previous_content: str, next_content: str) -> bool:
|
|
|
45
68
|
def resolve_text_line_boundary(
|
|
46
69
|
previous_content: str,
|
|
47
70
|
*,
|
|
48
|
-
block_language: str,
|
|
49
71
|
next_content: str,
|
|
50
72
|
) -> tuple[str, str]:
|
|
51
73
|
"""返回处理后的上一行内容和本次物理行边界分隔符。
|
|
52
74
|
|
|
53
75
|
严格横跨边界的 URL 候选直接连接,但下一行自身为完整 URL 时保留空格。
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
hyphen。
|
|
76
|
+
按当前可见边界判断空格,不检测整段语言。汉字和假名直接连接,韩文与
|
|
77
|
+
西文保留词间空格;既定 URL 和英文断词规则优先,且只改写真实的行末断词符。
|
|
57
78
|
"""
|
|
58
|
-
processed_content = previous_content.rstrip()
|
|
79
|
+
processed_content = remove_invalid_surrogates(previous_content).rstrip()
|
|
59
80
|
if not processed_content:
|
|
60
81
|
return "", ""
|
|
61
|
-
stripped_next = next_content.lstrip()
|
|
82
|
+
stripped_next = remove_invalid_surrogates(next_content).lstrip()
|
|
83
|
+
if not stripped_next:
|
|
84
|
+
return processed_content, ""
|
|
62
85
|
if _url_spans_line_boundary(processed_content, stripped_next):
|
|
63
86
|
if _URL_AT_LINE_START_RE.match(stripped_next):
|
|
64
87
|
return processed_content, " "
|
|
65
88
|
return processed_content, ""
|
|
66
|
-
if
|
|
89
|
+
if is_hyphen_at_line_end(processed_content):
|
|
90
|
+
previous_word = re.search(r"([A-Za-z]+)[-\u00ad\u2010\u2011\u2043]$", processed_content)
|
|
91
|
+
# GLGE-difficult 等缩写复合词的连接符有语义,不能当作普通断词符删除。
|
|
92
|
+
acronym = previous_word is not None and len(previous_word[1]) > 1 and previous_word[1].isupper()
|
|
93
|
+
hard_compound = (
|
|
94
|
+
previous_word is not None
|
|
95
|
+
and processed_content.endswith("-")
|
|
96
|
+
and (
|
|
97
|
+
previous_word[1].lower() in _COMPOUND_PREFIXES
|
|
98
|
+
or (
|
|
99
|
+
previous_word[1].lower() in _COMPOUND_CONNECTORS
|
|
100
|
+
and previous_word.start() > 0
|
|
101
|
+
and processed_content[previous_word.start() - 1] == "-"
|
|
102
|
+
)
|
|
103
|
+
)
|
|
104
|
+
)
|
|
105
|
+
if stripped_next[0].islower() and not acronym and not hard_compound:
|
|
106
|
+
return processed_content[:-1], ""
|
|
107
|
+
return processed_content, ""
|
|
108
|
+
if re.search(r"\d[-–]$", processed_content) and stripped_next[0].isdigit():
|
|
109
|
+
return processed_content, ""
|
|
110
|
+
previous_char = _boundary_character(processed_content, from_end=True)
|
|
111
|
+
next_char = _boundary_character(stripped_next, from_end=False)
|
|
112
|
+
if not previous_char or not next_char:
|
|
113
|
+
return processed_content, ""
|
|
114
|
+
if _is_unspaced_character(previous_char) or _is_unspaced_character(next_char):
|
|
67
115
|
return processed_content, ""
|
|
68
|
-
if
|
|
69
|
-
return processed_content, "
|
|
70
|
-
if
|
|
71
|
-
return processed_content
|
|
72
|
-
return processed_content, ""
|
|
116
|
+
if unicodedata.category(previous_char) in {"Ps", "Pi"}:
|
|
117
|
+
return processed_content, ""
|
|
118
|
+
if unicodedata.category(next_char) in {"Pe", "Pf"} or next_char in _CLOSING_PUNCTUATION:
|
|
119
|
+
return processed_content, ""
|
|
120
|
+
return processed_content, " "
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def _boundary_character(content: str, *, from_end: bool) -> str:
|
|
124
|
+
"""读取可见边界字符,忽略样式标记及附着的组合字符,不改写原始正文。"""
|
|
125
|
+
visible = _INLINE_STYLE_TAG_RE.sub("", content).strip()
|
|
126
|
+
characters = reversed(visible) if from_end else iter(visible)
|
|
127
|
+
return next((char for char in characters if unicodedata.category(char)[0] not in {"M", "C"}), "")
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def _is_unspaced_character(char: str) -> bool:
|
|
131
|
+
"""判断汉字、假名及中日标点,韩文字母不属于无空格文字。"""
|
|
132
|
+
return char in _CJK_PUNCTUATION or any(start <= ord(char) <= end for start, end in _UNSPACED_RANGES)
|
|
73
133
|
|
|
74
134
|
|
|
75
135
|
def merge_text_line_contents(
|
|
76
136
|
line_contents: Sequence[str],
|
|
77
|
-
*,
|
|
78
|
-
block_language: str,
|
|
79
137
|
) -> str:
|
|
80
138
|
"""按累计文本上下文折叠物理行,支持跨越三行以上的 URL 连续拼接。"""
|
|
81
139
|
|
|
82
|
-
normalized_lines = [
|
|
140
|
+
normalized_lines = [cleaned for content in line_contents if (cleaned := remove_invalid_surrogates(str(content)).strip())]
|
|
83
141
|
if not normalized_lines:
|
|
84
142
|
return ""
|
|
85
143
|
merged_content = normalized_lines[0]
|
|
86
144
|
for current_line in normalized_lines[1:]:
|
|
87
145
|
merged_content, separator = resolve_text_line_boundary(
|
|
88
146
|
merged_content,
|
|
89
|
-
block_language=block_language,
|
|
90
147
|
next_content=current_line,
|
|
91
148
|
)
|
|
92
149
|
merged_content = f"{merged_content}{separator}{current_line}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: docvortex
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
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
|
|
@@ -38,7 +38,6 @@ Requires-Dist: mathml2omml==0.0.2
|
|
|
38
38
|
Requires-Dist: resvg_py<0.6,>=0.5.0
|
|
39
39
|
Requires-Dist: reportlab
|
|
40
40
|
Requires-Dist: ziamath<0.14,>=0.13
|
|
41
|
-
Requires-Dist: fast-langdetect<0.3.0,>=0.2.3
|
|
42
41
|
Requires-Dist: magika<1.1.0,>=0.6.2
|
|
43
42
|
Requires-Dist: opencv-python>=4.11.0.86
|
|
44
43
|
Provides-Extra: test
|
|
@@ -209,3 +208,10 @@ print(inspection.metadata.document.authors)
|
|
|
209
208
|
All 15 native document formats support this API. Normal parsing also carries these properties in
|
|
210
209
|
`metadata.document`, preserving the original PDF properties across page selections. See the
|
|
211
210
|
[field definitions, format matrix, and compatibility notes](docs/METADATA.md).
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
### Python 3.14 and text joining (0.3.0)
|
|
214
|
+
|
|
215
|
+
DocVortex supports ordinary CPython 3.10–3.14. Physical text lines are joined by deterministic Unicode boundary rules, with URL and dehyphenation safeguards. Language detection models and the fast-langdetect / fasttext-predict dependencies are no longer required.
|
|
216
|
+
|
|
217
|
+
The shared `resolve_text_line_boundary` and `merge_text_line_contents` helpers no longer accept `block_language`; `detect_lang` has been removed. Hosts should call the shared boundary helpers directly. OCR language selection and Magika code-language recognition are unchanged.
|
|
@@ -560,6 +560,7 @@ tests/unittest/test_structured_content_render.py
|
|
|
560
560
|
tests/unittest/test_table_merge.py
|
|
561
561
|
tests/unittest/test_table_merge_cell_merge.py
|
|
562
562
|
tests/unittest/test_text_block_anchor.py
|
|
563
|
+
tests/unittest/test_text_boundary_rules.py
|
|
563
564
|
tests/unittest/test_text_utils.py
|
|
564
565
|
tests/unittest/pdfs/flash_table_annotations_synthetic.pdf
|
|
565
566
|
tests/unittest/pdfs/metabolic_pathway_page_3.pdf
|