BabelDOC 0.5.23__tar.gz → 0.6.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.
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/codeql.yml +1 -1
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/docs.yml +2 -2
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/labeler.yml +2 -2
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/lint.yml +1 -1
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/pr-lint.yml +3 -3
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/publish-to-pypi.yml +27 -4
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/test.yml +2 -2
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.gitignore +5 -3
- {babeldoc-0.5.23 → babeldoc-0.6.0}/PKG-INFO +1 -2
- babeldoc-0.6.0/babeldoc/__init__.py +1 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/assets/assets.py +19 -34
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/assets/embedding_assets_metadata.py +0 -10
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/const.py +1 -1
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/doclayout.py +45 -9
- babeldoc-0.6.0/babeldoc/docvision/rpc_doclayout8.py +361 -0
- babeldoc-0.6.0/babeldoc/docvision/table_detection/rapidocr.py +41 -0
- babeldoc-0.6.0/babeldoc/format/pdf/awlt_char.py +76 -0
- babeldoc-0.6.0/babeldoc/format/pdf/babelpdf/utils.py +22 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/converter.py +3 -75
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/__init__.py +2 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/backend/pdf_creater.py +167 -24
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/frontend/il_creater.py +19 -14
- babeldoc-0.6.0/babeldoc/format/pdf/document_il/frontend/il_creater_active.py +1574 -0
- babeldoc-0.6.0/babeldoc/format/pdf/document_il/frontend/il_creater_active_support.py +566 -0
- babeldoc-0.6.0/babeldoc/format/pdf/document_il/frontend/inline_image_params.py +54 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/il_version_1.py +35 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/il_version_1.rnc +1 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/il_version_1.rng +5 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/il_version_1.xsd +1 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/automatic_term_extractor.py +1 -1
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/extract_char.py +7 -4
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/xml_converter.py +10 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/high_level.py +10 -141
- babeldoc-0.6.0/babeldoc/format/pdf/legacy_parse.py +142 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/__init__.py +1 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_direct_font_backend.py +605 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_font_backend.py +23 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_font_resource_runtime.py +43 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_font_runtime.py +116 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_object_backend.py +14 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_object_projection.py +78 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_parse_runtime.py +27 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_value_access.py +59 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/base_operations.py +107 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/bridge_types.py +154 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/compat/__init__.py +1 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/font_spec_primitives.py +45 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/font_types.py +29 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/glyphs.py +204 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/interpreter.py +854 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/native_page_execution_session.py +49 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/native_page_interpreter.py +66 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/native_parse.py +166 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/object_model.py +37 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/object_parser.py +117 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/page_api.py +31 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/page_content_access.py +27 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/page_content_execution.py +23 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/page_execution_session.py +53 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/page_interpreter.py +13 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pdf_token_serializer.py +114 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/prepared_page.py +79 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/prepared_page_access.py +42 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/prepared_page_debug_access.py +36 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/prepared_page_execution.py +31 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/prepared_resource_builder.py +222 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pymupdf_candidate_parse.py +36 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pymupdf_object_access.py +161 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pymupdf_page_execution_session.py +7 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pymupdf_page_view_access.py +73 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pymupdf_prepared_page_access.py +38 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/raw_page_view.py +27 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/resolved_object_access.py +65 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/resource_runtime_types.py +13 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/resources.py +131 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/__init__.py +1 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/cid_cmap_runtime.py +125 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/cmap_types_runtime.py +155 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/data/glyphlist.py +4370 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/exceptions_runtime.py +18 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/font_data_runtime.py +109 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/font_encoding_runtime.py +117 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/font_unicode_maps.py +21 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/font_widths.py +55 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/object_primitives_runtime.py +106 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/object_stream_runtime.py +30 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/ps_primitives_runtime.py +65 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/to_unicode_parser_runtime.py +176 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/sinks/legacy_ir.py +395 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/sinks/native_text.py +259 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/state.py +215 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/text_positioning.py +101 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/tokenizer.py +681 -0
- babeldoc-0.6.0/babeldoc/format/pdf/new_parser/xobject_content_execution.py +109 -0
- babeldoc-0.6.0/babeldoc/format/pdf/parse_only.py +120 -0
- babeldoc-0.6.0/babeldoc/format/pdf/parse_shared.py +63 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/pdfinterp.py +38 -2
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/result_merger.py +1 -1
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/translation_config.py +6 -3
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/main.py +1 -1
- babeldoc-0.6.0/babeldoc/pdfminer/fontmetrics.py +4464 -0
- babeldoc-0.6.0/babeldoc/pdfminer/latin_enc.py +244 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/lzw.py +10 -2
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/psparser.py +0 -0
- babeldoc-0.6.0/babeldoc/pdfminer/settings.py +1 -0
- babeldoc-0.6.0/babeldoc/tools/executor/__main__.py +4 -0
- babeldoc-0.6.0/babeldoc/tools/executor/babeldoc_adapter.py +475 -0
- babeldoc-0.6.0/babeldoc/tools/executor/protocol.py +35 -0
- babeldoc-0.6.0/babeldoc/tools/executor/runner.py +417 -0
- babeldoc-0.6.0/babeldoc/tools/executor/server.py +468 -0
- babeldoc-0.6.0/babeldoc/tools/executor/state.py +319 -0
- babeldoc-0.6.0/babeldoc/tools/executor/translator.py +164 -0
- babeldoc-0.6.0/babeldoc/tools/executor/watermark_transform.py +175 -0
- babeldoc-0.6.0/babeldoc/tools/executor/workroot.py +61 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/tools/generate_font_metadata.py +4 -2
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/translator/translator.py +1 -1
- babeldoc-0.6.0/babeldoc/utils/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/CONTRIBUTING.md +3 -0
- babeldoc-0.6.0/docs/release-notes/v0.6.0.md +45 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/mkdocs.yml +4 -1
- {babeldoc-0.5.23 → babeldoc-0.6.0}/pyproject.toml +4 -4
- babeldoc-0.5.23/.cursorignore +0 -2
- babeldoc-0.5.23/babeldoc/__init__.py +0 -1
- babeldoc-0.5.23/babeldoc/docvision/table_detection/rapidocr.py +0 -321
- babeldoc-0.5.23/babeldoc/format/pdf/babelpdf/utils.py +0 -14
- babeldoc-0.5.23/tests/test_translation_cache_cleanup.py +0 -68
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/PULL_REQUEST_TEMPLATE/pr_form.yml +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/dependabot.yml +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/labels.yml +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/release-drafter.yml +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/.pre-commit-config.yaml +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/LICENSE +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/README.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/asynchronize/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/babeldoc_exception/BabelDOCException.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/babeldoc_exception/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/README.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/base_doclayout.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout2.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout3.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout4.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout5.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout6.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout7.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/base14.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/cidfont.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/cmap.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/encoding.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/type3.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/win_core.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/backend/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/frontend/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/add_debug_information.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/detect_scanned_file.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/il_translator.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/il_translator_llm_only.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/layout_parser.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/paragraph_finder.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/remove_descent.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/styles_and_formulas.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/table_parser.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/typesetting.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/fontmap.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/formular_helper.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/layout_helper.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/matrix_helper.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/mupdf_helper.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/paragraph_helper.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/spatial_analyzer.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/style_helper.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/zstd_helper.py +0 -0
- {babeldoc-0.5.23/babeldoc/pdfminer → babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/data}/fontmetrics.py +0 -0
- {babeldoc-0.5.23/babeldoc/pdfminer → babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/data}/latin_enc.py +0 -0
- /babeldoc-0.5.23/babeldoc/pdfminer/settings.py → /babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/runtime_settings.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/split_manager.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/glossary.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/LICENSE +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/_saslprep.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/arcfour.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/ascii85.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/casting.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/ccitt.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-EUC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-EUC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78ms-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78ms-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/83pv-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/83pv-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90ms-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90ms-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90msp-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90msp-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90pv-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90pv-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Add-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Add-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Add-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Add-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/B5-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/B5-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/B5pc-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/B5pc-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS-EUC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS-EUC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS1-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS1-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS2-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS2-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETHK-B5-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETHK-B5-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETen-B5-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETen-B5-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETenms-B5-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETenms-B5-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/EUC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/EUC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Ext-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Ext-RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Ext-RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Ext-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GB-EUC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GB-EUC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GB-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GB-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBK-EUC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBK-EUC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBK2K-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBK2K-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBKp-EUC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBKp-EUC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBT-EUC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBT-EUC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBT-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBT-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBTpc-EUC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBTpc-EUC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBpc-EUC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBpc-EUC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKdla-B5-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKdla-B5-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKdlb-B5-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKdlb-B5-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKgccs-B5-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKgccs-B5-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKm314-B5-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKm314-B5-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKm471-B5-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKm471-B5-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKscs-B5-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKscs-B5-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Hankaku-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Hankaku-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Hiragana-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Hiragana-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-EUC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-EUC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-Johab-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-Johab-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCms-UHC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCms-UHC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCpc-EUC-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCpc-EUC-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Katakana-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Katakana-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/NWP-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/NWP-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/README.txt +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/RKSJ-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/RKSJ-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Roman-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Roman-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UCS2-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UCS2-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF16-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF16-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF8-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF8-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UCS2-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UCS2-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF16-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF16-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF8-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF8-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UCS2-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UCS2-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF16-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF16-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF8-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF8-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UCS2-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UCS2-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF16-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF16-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF32-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF32-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF8-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF8-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/WP-Symbol-H.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/WP-Symbol-V.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/to-unicode-Adobe-CNS1.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/to-unicode-Adobe-GB1.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Japan1.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Korea1.pickle.gz +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmapdb.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/converter.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/data_structures.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/encodingdb.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/glyphlist.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/high_level.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/image.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/jbig2.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/layout.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfcolor.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfdevice.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfdocument.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfexceptions.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdffont.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfinterp.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfpage.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfparser.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdftypes.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/psexceptions.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/py.typed +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/runlength.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/utils.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/progress_monitor.py +0 -0
- {babeldoc-0.5.23/babeldoc/translator → babeldoc-0.6.0/babeldoc/tools/executor}/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/tools/generate_cmap_metadata.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/tools/italic_assistance.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/tools/italic_recognize_tool.py +0 -0
- {babeldoc-0.5.23/babeldoc/utils → babeldoc-0.6.0/babeldoc/translator}/__init__.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/translator/cache.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/utils/atomic_integer.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/utils/memory.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/utils/priority_thread_pool_executor.py +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/CODE_OF_CONDUCT.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/CONTRIBUTOR_REWARD.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/README.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/README.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/deploy.sh +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/example/demo_glossary.csv +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-banner.png +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.png +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.svg +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-big-logo-with-transparent-background.png +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-big-logo-with-transparent-background.svg +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-big-logo.png +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-contributor_reward_example.png +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-preview.gif +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-small-logo-with-transparent-background.png +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-small-logo-with-transparent-background.svg +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-small-logo.png +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/index.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/intro-to-pdf-object.md +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/requirements.txt +0 -0
- {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/supported_languages.md +0 -0
|
@@ -55,7 +55,7 @@ jobs:
|
|
|
55
55
|
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
|
|
56
56
|
steps:
|
|
57
57
|
- name: Checkout repository
|
|
58
|
-
uses: actions/checkout@
|
|
58
|
+
uses: actions/checkout@v6
|
|
59
59
|
|
|
60
60
|
# Initializes the CodeQL tools for scanning.
|
|
61
61
|
- name: Initialize CodeQL
|
|
@@ -9,7 +9,7 @@ jobs:
|
|
|
9
9
|
deploy:
|
|
10
10
|
runs-on: ubuntu-latest
|
|
11
11
|
steps:
|
|
12
|
-
- uses: actions/checkout@
|
|
12
|
+
- uses: actions/checkout@v6
|
|
13
13
|
with:
|
|
14
14
|
fetch-depth: 0
|
|
15
15
|
- name: Configure Git Credentials
|
|
@@ -24,7 +24,7 @@ jobs:
|
|
|
24
24
|
cache-dependency-glob: "uv.lock"
|
|
25
25
|
activate-environment: true
|
|
26
26
|
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
|
|
27
|
-
- uses: actions/cache@
|
|
27
|
+
- uses: actions/cache@v5
|
|
28
28
|
with:
|
|
29
29
|
key: mkdocs-material-${{ env.cache_id }}
|
|
30
30
|
path: .cache
|
|
@@ -22,10 +22,10 @@ jobs:
|
|
|
22
22
|
runs-on: ubuntu-latest
|
|
23
23
|
steps:
|
|
24
24
|
- name: Check out the repository
|
|
25
|
-
uses: actions/checkout@
|
|
25
|
+
uses: actions/checkout@v6
|
|
26
26
|
|
|
27
27
|
- name: Run Labeler
|
|
28
|
-
uses: crazy-max/ghaction-github-labeler@
|
|
28
|
+
uses: crazy-max/ghaction-github-labeler@548a7c3603594ec17c819e1239f281a3b801ab4d # v6.0.0
|
|
29
29
|
with:
|
|
30
30
|
skip-delete: true
|
|
31
31
|
dry-run: ${{ github.event_name == 'pull_request' }}
|
|
@@ -9,7 +9,7 @@ jobs:
|
|
|
9
9
|
name: runner / ruff
|
|
10
10
|
runs-on: ubuntu-latest
|
|
11
11
|
steps:
|
|
12
|
-
- uses: actions/checkout@
|
|
12
|
+
- uses: actions/checkout@v6
|
|
13
13
|
|
|
14
14
|
- name: Install Python
|
|
15
15
|
uses: actions/setup-python@v6
|
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
run: pip install ruff
|
|
21
21
|
|
|
22
22
|
- name: Install reviewdog
|
|
23
|
-
uses: reviewdog/action-setup@
|
|
23
|
+
uses: reviewdog/action-setup@d8a7baabd7f3e8544ee4dbde3ee41d0011c3a93f # v1.5.0
|
|
24
24
|
with:
|
|
25
25
|
reviewdog_version: latest
|
|
26
26
|
|
|
@@ -34,7 +34,7 @@ jobs:
|
|
|
34
34
|
name: runner / autocorrect
|
|
35
35
|
runs-on: ubuntu-latest
|
|
36
36
|
steps:
|
|
37
|
-
- uses: actions/checkout@
|
|
37
|
+
- uses: actions/checkout@v6
|
|
38
38
|
- name: AutoCorrect
|
|
39
39
|
uses: huacnlee/autocorrect-action@bf91ab3904c2908dd8e71312a8a83ed1eb632997 # v2.13.3
|
|
40
40
|
- name: Report ReviewDog
|
|
@@ -28,7 +28,7 @@ jobs:
|
|
|
28
28
|
outputs:
|
|
29
29
|
is_release: ${{ steps.check-version.outputs.tag }}
|
|
30
30
|
steps:
|
|
31
|
-
- uses: actions/checkout@
|
|
31
|
+
- uses: actions/checkout@v6
|
|
32
32
|
with:
|
|
33
33
|
persist-credentials: true
|
|
34
34
|
fetch-depth: 2
|
|
@@ -55,6 +55,11 @@ jobs:
|
|
|
55
55
|
version-command: |
|
|
56
56
|
cat pyproject.toml | grep "version = " | head -n 1 | awk -F'"' '{print $2}'
|
|
57
57
|
|
|
58
|
+
- name: Check manual release notes
|
|
59
|
+
if: steps.check-version.outputs.tag
|
|
60
|
+
run: |
|
|
61
|
+
test -f "docs/release-notes/${{ steps.check-version.outputs.tag }}.md"
|
|
62
|
+
|
|
58
63
|
- name: Install Dependencies
|
|
59
64
|
run: |
|
|
60
65
|
uv sync
|
|
@@ -69,7 +74,7 @@ jobs:
|
|
|
69
74
|
run: "uv build"
|
|
70
75
|
|
|
71
76
|
- name: Store the distribution packages
|
|
72
|
-
uses: actions/upload-artifact@
|
|
77
|
+
uses: actions/upload-artifact@v7.0.0
|
|
73
78
|
with:
|
|
74
79
|
name: python-package-distributions
|
|
75
80
|
path: dist/
|
|
@@ -139,7 +144,7 @@ jobs:
|
|
|
139
144
|
contents: write
|
|
140
145
|
pull-requests: write
|
|
141
146
|
steps:
|
|
142
|
-
- uses: actions/checkout@
|
|
147
|
+
- uses: actions/checkout@v6
|
|
143
148
|
with:
|
|
144
149
|
persist-credentials: true
|
|
145
150
|
fetch-depth: 2
|
|
@@ -151,4 +156,22 @@ jobs:
|
|
|
151
156
|
publish: ${{ needs.build.outputs.is_release != '' }}
|
|
152
157
|
tag: ${{ needs.build.outputs.is_release }}
|
|
153
158
|
env:
|
|
154
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
159
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
160
|
+
|
|
161
|
+
- name: Prepend manual release notes
|
|
162
|
+
if: needs.build.outputs.is_release != ''
|
|
163
|
+
env:
|
|
164
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
165
|
+
TAG: ${{ needs.build.outputs.is_release }}
|
|
166
|
+
run: |
|
|
167
|
+
set -euo pipefail
|
|
168
|
+
notes_path="docs/release-notes/${TAG}.md"
|
|
169
|
+
current_body="$(mktemp)"
|
|
170
|
+
combined_body="$(mktemp)"
|
|
171
|
+
gh release view "${TAG}" --json body --jq .body > "${current_body}"
|
|
172
|
+
{
|
|
173
|
+
cat "${notes_path}"
|
|
174
|
+
printf '\n\n---\n\n'
|
|
175
|
+
cat "${current_body}"
|
|
176
|
+
} > "${combined_body}"
|
|
177
|
+
gh release edit "${TAG}" --notes-file "${combined_body}"
|
|
@@ -18,12 +18,12 @@ jobs:
|
|
|
18
18
|
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
19
19
|
|
|
20
20
|
steps:
|
|
21
|
-
- uses: actions/checkout@
|
|
21
|
+
- uses: actions/checkout@v6
|
|
22
22
|
with:
|
|
23
23
|
persist-credentials: false
|
|
24
24
|
- name: Cached Assets
|
|
25
25
|
id: cache-assets
|
|
26
|
-
uses: actions/cache@
|
|
26
|
+
uses: actions/cache@v5
|
|
27
27
|
with:
|
|
28
28
|
path: ~/.cache/babeldoc
|
|
29
29
|
key: babeldoc-assets-${{ hashFiles('babeldoc/assets/embedding_assets_metadata.py') }}
|
|
@@ -25,7 +25,9 @@ memray*
|
|
|
25
25
|
.vscode
|
|
26
26
|
__pycache__
|
|
27
27
|
.ruff_cache
|
|
28
|
+
.tmp
|
|
28
29
|
yadt.toml
|
|
30
|
+
yadt.toml*
|
|
29
31
|
examples/
|
|
30
32
|
/make_gif.py
|
|
31
33
|
/dist
|
|
@@ -41,9 +43,9 @@ babeldoc/format/txt
|
|
|
41
43
|
# uv
|
|
42
44
|
uv.lock
|
|
43
45
|
|
|
44
|
-
# Claude Code memory file
|
|
45
|
-
CLAUDE.md
|
|
46
46
|
/.claude
|
|
47
47
|
babeldoc/format/playground
|
|
48
48
|
temp.jpg
|
|
49
|
-
|
|
49
|
+
.serena
|
|
50
|
+
.codex
|
|
51
|
+
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: BabelDOC
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
4
4
|
Summary: Yet Another Document Translator
|
|
5
5
|
Project-URL: Homepage, https://github.com/funstory-ai/BabelDOC
|
|
6
6
|
Project-URL: Issues, https://github.com/funstory-ai/BabelDOC/issues
|
|
@@ -34,7 +34,6 @@ Requires-Dist: psutil>=7.0.0
|
|
|
34
34
|
Requires-Dist: pydantic>=2.10.6
|
|
35
35
|
Requires-Dist: pymupdf>=1.25.1
|
|
36
36
|
Requires-Dist: pyzstd>=0.17.0
|
|
37
|
-
Requires-Dist: rapidocr-onnxruntime>=1.4.4
|
|
38
37
|
Requires-Dist: rich>=13.9.4
|
|
39
38
|
Requires-Dist: rtree>=1.4.0
|
|
40
39
|
Requires-Dist: scikit-image>=0.25.2
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.6.0"
|
|
@@ -17,10 +17,6 @@ from babeldoc.assets.embedding_assets_metadata import (
|
|
|
17
17
|
from babeldoc.assets.embedding_assets_metadata import EMBEDDING_FONT_METADATA
|
|
18
18
|
from babeldoc.assets.embedding_assets_metadata import FONT_METADATA_URL
|
|
19
19
|
from babeldoc.assets.embedding_assets_metadata import FONT_URL_BY_UPSTREAM
|
|
20
|
-
from babeldoc.assets.embedding_assets_metadata import (
|
|
21
|
-
TABLE_DETECTION_RAPIDOCR_MODEL_SHA3_256,
|
|
22
|
-
)
|
|
23
|
-
from babeldoc.assets.embedding_assets_metadata import TABLE_DETECTION_RAPIDOCR_MODEL_URL
|
|
24
20
|
from babeldoc.assets.embedding_assets_metadata import TIKTOKEN_CACHES
|
|
25
21
|
from babeldoc.const import get_cache_file_path
|
|
26
22
|
from tenacity import retry
|
|
@@ -38,20 +34,33 @@ _FASTEST_FONT_METADATA: dict | None = None
|
|
|
38
34
|
class ResultContainer:
|
|
39
35
|
def __init__(self):
|
|
40
36
|
self.result = None
|
|
37
|
+
self.exception: BaseException | None = None
|
|
41
38
|
|
|
42
39
|
def set_result(self, result):
|
|
43
40
|
self.result = result
|
|
44
41
|
|
|
42
|
+
def set_exception(self, exc: BaseException):
|
|
43
|
+
self.exception = exc
|
|
44
|
+
|
|
45
45
|
|
|
46
46
|
def run_in_another_thread(coro):
|
|
47
47
|
result_container = ResultContainer()
|
|
48
48
|
|
|
49
49
|
def _wrapper():
|
|
50
|
-
|
|
50
|
+
try:
|
|
51
|
+
result_container.set_result(asyncio.run(coro))
|
|
52
|
+
except BaseException as exc: # noqa: BLE001
|
|
53
|
+
result_container.set_exception(exc)
|
|
51
54
|
|
|
52
55
|
thread = threading.Thread(target=_wrapper)
|
|
53
56
|
thread.start()
|
|
54
57
|
thread.join()
|
|
58
|
+
if result_container.exception is not None:
|
|
59
|
+
msg = (
|
|
60
|
+
"asset coroutine failed: "
|
|
61
|
+
f"{type(result_container.exception).__name__}: {result_container.exception}"
|
|
62
|
+
)
|
|
63
|
+
raise RuntimeError(msg) from result_container.exception
|
|
55
64
|
return result_container.result
|
|
56
65
|
|
|
57
66
|
|
|
@@ -248,23 +257,10 @@ async def get_doclayout_onnx_model_path_async(client: httpx.AsyncClient | None =
|
|
|
248
257
|
async def get_table_detection_rapidocr_model_path_async(
|
|
249
258
|
client: httpx.AsyncClient | None = None,
|
|
250
259
|
):
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
logger.info("table detection rapidocr model not found or corrupted, downloading...")
|
|
256
|
-
fastest_upstream, _ = await get_fastest_upstream_for_model(client)
|
|
257
|
-
if fastest_upstream is None:
|
|
258
|
-
logger.error("Failed to get fastest upstream")
|
|
259
|
-
exit(1)
|
|
260
|
-
|
|
261
|
-
url = TABLE_DETECTION_RAPIDOCR_MODEL_URL[fastest_upstream]
|
|
262
|
-
|
|
263
|
-
await download_file(client, url, onnx_path, TABLE_DETECTION_RAPIDOCR_MODEL_SHA3_256)
|
|
264
|
-
logger.info(
|
|
265
|
-
f"Download table detection rapidocr model from {fastest_upstream} success"
|
|
266
|
-
)
|
|
267
|
-
return onnx_path
|
|
260
|
+
_ = client
|
|
261
|
+
dummy_path = get_cache_file_path("rapidocr-retired-dummy.txt", "models")
|
|
262
|
+
dummy_path.write_text("RapidOCR table detection is retired.\n", encoding="utf-8")
|
|
263
|
+
return dummy_path
|
|
268
264
|
|
|
269
265
|
|
|
270
266
|
def get_doclayout_onnx_model_path():
|
|
@@ -457,12 +453,9 @@ async def async_warmup():
|
|
|
457
453
|
_ = encoding_for_model("gpt-4o")
|
|
458
454
|
async with httpx.AsyncClient() as client:
|
|
459
455
|
onnx_task = asyncio.create_task(get_doclayout_onnx_model_path_async(client))
|
|
460
|
-
onnx_task2 = asyncio.create_task(
|
|
461
|
-
get_table_detection_rapidocr_model_path_async(client)
|
|
462
|
-
)
|
|
463
456
|
font_tasks = asyncio.create_task(download_all_fonts_async(client))
|
|
464
457
|
cmap_tasks = asyncio.create_task(download_all_cmaps_async(client))
|
|
465
|
-
await asyncio.gather(onnx_task,
|
|
458
|
+
await asyncio.gather(onnx_task, font_tasks, cmap_tasks)
|
|
466
459
|
|
|
467
460
|
|
|
468
461
|
def warmup():
|
|
@@ -502,12 +495,6 @@ def generate_all_assets_file_list():
|
|
|
502
495
|
"sha3_256": DOCLAYOUT_YOLO_DOCSTRUCTBENCH_IMGSZ1024ONNX_SHA3_256,
|
|
503
496
|
},
|
|
504
497
|
)
|
|
505
|
-
result["models"].append(
|
|
506
|
-
{
|
|
507
|
-
"name": "ch_PP-OCRv4_det_infer.onnx",
|
|
508
|
-
"sha3_256": TABLE_DETECTION_RAPIDOCR_MODEL_SHA3_256,
|
|
509
|
-
},
|
|
510
|
-
)
|
|
511
498
|
return result
|
|
512
499
|
|
|
513
500
|
|
|
@@ -620,6 +607,4 @@ if __name__ == "__main__":
|
|
|
620
607
|
logging.getLogger("httpcore").setLevel(logging.WARNING)
|
|
621
608
|
# warmup()
|
|
622
609
|
# generate_offline_assets_package()
|
|
623
|
-
# restore_offline_assets_package(Path(
|
|
624
|
-
# '/Users/aw/.cache/babeldoc/assets/offline_assets_33971e4940e90ba0c35baacda44bbe83b214f4703a7bdb8b837de97d0383508c.zip'))
|
|
625
610
|
# warmup()
|
|
@@ -4,10 +4,6 @@ DOCLAYOUT_YOLO_DOCSTRUCTBENCH_IMGSZ1024ONNX_SHA3_256 = (
|
|
|
4
4
|
"60be061226930524958b5465c8c04af3d7c03bcb0beb66454f5da9f792e3cf2a"
|
|
5
5
|
)
|
|
6
6
|
|
|
7
|
-
TABLE_DETECTION_RAPIDOCR_MODEL_SHA3_256 = (
|
|
8
|
-
"062f4619afe91b33147c033acadecbb53f2a7b99ac703d157b96d5b10948da5e"
|
|
9
|
-
)
|
|
10
|
-
|
|
11
7
|
TIKTOKEN_CACHES = {
|
|
12
8
|
"fb374d419588a4632f3f557e76b4b70aebbca790": "cb04bcda5782cfbbe77f2f991d92c0ea785d9496ef1137c91dfc3c8c324528d6"
|
|
13
9
|
}
|
|
@@ -39,12 +35,6 @@ DOC_LAYOUT_ONNX_MODEL_URL = {
|
|
|
39
35
|
"modelscope": "https://www.modelscope.cn/models/AI-ModelScope/DocLayout-YOLO-DocStructBench-onnx/resolve/master/doclayout_yolo_docstructbench_imgsz1024.onnx",
|
|
40
36
|
}
|
|
41
37
|
|
|
42
|
-
TABLE_DETECTION_RAPIDOCR_MODEL_URL = {
|
|
43
|
-
"huggingface": "https://huggingface.co/spaces/RapidAI/RapidOCR/resolve/main/models/text_det/ch_PP-OCRv4_det_infer.onnx",
|
|
44
|
-
"hf-mirror": "https://hf-mirror.com/spaces/RapidAI/RapidOCR/resolve/main/models/text_det/ch_PP-OCRv4_det_infer.onnx",
|
|
45
|
-
"modelscope": "https://www.modelscope.cn/models/RapidAI/RapidOCR/resolve/master/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx",
|
|
46
|
-
}
|
|
47
|
-
|
|
48
38
|
# from https://github.com/funstory-ai/BabelDOC-Assets/blob/main/font_metadata.json
|
|
49
39
|
EMBEDDING_FONT_METADATA = {
|
|
50
40
|
"GoNotoKurrent-Bold.ttf": {
|
|
@@ -37,6 +37,8 @@ os_name = platform.system()
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
class OnnxModel(DocLayoutModel):
|
|
40
|
+
_FIXED_IMGSZ = 1024 # fixed input size for static-shape CoreML
|
|
41
|
+
|
|
40
42
|
def __init__(self, model_path: str):
|
|
41
43
|
self.model_path = model_path
|
|
42
44
|
|
|
@@ -47,18 +49,52 @@ class OnnxModel(DocLayoutModel):
|
|
|
47
49
|
providers = []
|
|
48
50
|
|
|
49
51
|
available_providers = onnxruntime.get_available_providers()
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
use_coreml = os_name == "Darwin" and any(
|
|
53
|
+
re.match(r"coreml", p, re.IGNORECASE) for p in available_providers
|
|
54
|
+
)
|
|
55
|
+
if use_coreml:
|
|
56
|
+
# Fix input shapes to [1, 3, 1024, 1024] so CoreML can take over
|
|
57
|
+
# 96%+ of the graph nodes (658/681) instead of just 3/823.
|
|
58
|
+
model = self._make_static_model(model, self._FIXED_IMGSZ)
|
|
59
|
+
providers = [
|
|
60
|
+
"CoreMLExecutionProvider",
|
|
61
|
+
"CPUExecutionProvider",
|
|
62
|
+
]
|
|
63
|
+
logger.info(
|
|
64
|
+
"Using CoreMLExecutionProvider with static input "
|
|
65
|
+
f"[1, 3, {self._FIXED_IMGSZ}, {self._FIXED_IMGSZ}]"
|
|
66
|
+
)
|
|
67
|
+
else:
|
|
68
|
+
for provider in available_providers:
|
|
69
|
+
# disable dml|cuda|
|
|
70
|
+
# directml/cuda may encounter problems under special circumstances
|
|
71
|
+
if re.match(r"cpu", provider, re.IGNORECASE):
|
|
72
|
+
logger.info(f"Available Provider: {provider}")
|
|
73
|
+
providers.append(provider)
|
|
56
74
|
self.model = onnxruntime.InferenceSession(
|
|
57
75
|
model.SerializeToString(),
|
|
58
76
|
providers=providers,
|
|
59
77
|
)
|
|
60
78
|
self.lock = threading.Lock()
|
|
61
79
|
|
|
80
|
+
@staticmethod
|
|
81
|
+
def _make_static_model(model, imgsz):
|
|
82
|
+
"""Rewrite dynamic input dims to fixed [1, 3, imgsz, imgsz] and run
|
|
83
|
+
shape inference so all intermediate shapes become static."""
|
|
84
|
+
from onnx import shape_inference
|
|
85
|
+
|
|
86
|
+
for inp in model.graph.input:
|
|
87
|
+
if inp.name == "images":
|
|
88
|
+
dim = inp.type.tensor_type.shape.dim
|
|
89
|
+
for i, val in enumerate([1, 3, imgsz, imgsz]):
|
|
90
|
+
dim[i].ClearField("dim_param")
|
|
91
|
+
dim[i].dim_value = val
|
|
92
|
+
try:
|
|
93
|
+
model = shape_inference.infer_shapes(model)
|
|
94
|
+
except Exception:
|
|
95
|
+
pass # best-effort; CoreML still benefits from fixed input
|
|
96
|
+
return model
|
|
97
|
+
|
|
62
98
|
@staticmethod
|
|
63
99
|
def from_pretrained():
|
|
64
100
|
pth = get_doclayout_onnx_model_path()
|
|
@@ -97,9 +133,9 @@ class OnnxModel(DocLayoutModel):
|
|
|
97
133
|
interpolation=cv2.INTER_LINEAR,
|
|
98
134
|
)
|
|
99
135
|
|
|
100
|
-
#
|
|
101
|
-
pad_w =
|
|
102
|
-
pad_h =
|
|
136
|
+
# Pad to full target size (enables static-shape CoreML acceleration)
|
|
137
|
+
pad_w = new_w - resized_w
|
|
138
|
+
pad_h = new_h - resized_h
|
|
103
139
|
top, bottom = pad_h // 2, pad_h - pad_h // 2
|
|
104
140
|
left, right = pad_w // 2, pad_w - pad_w // 2
|
|
105
141
|
|