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.
Files changed (401) hide show
  1. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/codeql.yml +1 -1
  2. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/docs.yml +2 -2
  3. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/labeler.yml +2 -2
  4. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/lint.yml +1 -1
  5. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/pr-lint.yml +3 -3
  6. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/publish-to-pypi.yml +27 -4
  7. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/workflows/test.yml +2 -2
  8. {babeldoc-0.5.23 → babeldoc-0.6.0}/.gitignore +5 -3
  9. {babeldoc-0.5.23 → babeldoc-0.6.0}/PKG-INFO +1 -2
  10. babeldoc-0.6.0/babeldoc/__init__.py +1 -0
  11. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/assets/assets.py +19 -34
  12. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/assets/embedding_assets_metadata.py +0 -10
  13. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/const.py +1 -1
  14. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/doclayout.py +45 -9
  15. babeldoc-0.6.0/babeldoc/docvision/rpc_doclayout8.py +361 -0
  16. babeldoc-0.6.0/babeldoc/docvision/table_detection/rapidocr.py +41 -0
  17. babeldoc-0.6.0/babeldoc/format/pdf/awlt_char.py +76 -0
  18. babeldoc-0.6.0/babeldoc/format/pdf/babelpdf/utils.py +22 -0
  19. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/converter.py +3 -75
  20. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/__init__.py +2 -0
  21. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/backend/pdf_creater.py +167 -24
  22. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/frontend/il_creater.py +19 -14
  23. babeldoc-0.6.0/babeldoc/format/pdf/document_il/frontend/il_creater_active.py +1574 -0
  24. babeldoc-0.6.0/babeldoc/format/pdf/document_il/frontend/il_creater_active_support.py +566 -0
  25. babeldoc-0.6.0/babeldoc/format/pdf/document_il/frontend/inline_image_params.py +54 -0
  26. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/il_version_1.py +35 -0
  27. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/il_version_1.rnc +1 -0
  28. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/il_version_1.rng +5 -0
  29. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/il_version_1.xsd +1 -0
  30. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/automatic_term_extractor.py +1 -1
  31. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/extract_char.py +7 -4
  32. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/xml_converter.py +10 -0
  33. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/high_level.py +10 -141
  34. babeldoc-0.6.0/babeldoc/format/pdf/legacy_parse.py +142 -0
  35. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/__init__.py +1 -0
  36. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_direct_font_backend.py +605 -0
  37. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_font_backend.py +23 -0
  38. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_font_resource_runtime.py +43 -0
  39. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_font_runtime.py +116 -0
  40. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_object_backend.py +14 -0
  41. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_object_projection.py +78 -0
  42. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_parse_runtime.py +27 -0
  43. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/active_value_access.py +59 -0
  44. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/base_operations.py +107 -0
  45. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/bridge_types.py +154 -0
  46. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/compat/__init__.py +1 -0
  47. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/font_spec_primitives.py +45 -0
  48. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/font_types.py +29 -0
  49. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/glyphs.py +204 -0
  50. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/interpreter.py +854 -0
  51. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/native_page_execution_session.py +49 -0
  52. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/native_page_interpreter.py +66 -0
  53. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/native_parse.py +166 -0
  54. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/object_model.py +37 -0
  55. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/object_parser.py +117 -0
  56. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/page_api.py +31 -0
  57. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/page_content_access.py +27 -0
  58. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/page_content_execution.py +23 -0
  59. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/page_execution_session.py +53 -0
  60. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/page_interpreter.py +13 -0
  61. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pdf_token_serializer.py +114 -0
  62. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/prepared_page.py +79 -0
  63. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/prepared_page_access.py +42 -0
  64. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/prepared_page_debug_access.py +36 -0
  65. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/prepared_page_execution.py +31 -0
  66. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/prepared_resource_builder.py +222 -0
  67. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pymupdf_candidate_parse.py +36 -0
  68. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pymupdf_object_access.py +161 -0
  69. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pymupdf_page_execution_session.py +7 -0
  70. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pymupdf_page_view_access.py +73 -0
  71. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/pymupdf_prepared_page_access.py +38 -0
  72. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/raw_page_view.py +27 -0
  73. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/resolved_object_access.py +65 -0
  74. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/resource_runtime_types.py +13 -0
  75. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/resources.py +131 -0
  76. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/__init__.py +1 -0
  77. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/cid_cmap_runtime.py +125 -0
  78. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/cmap_types_runtime.py +155 -0
  79. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/data/glyphlist.py +4370 -0
  80. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/exceptions_runtime.py +18 -0
  81. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/font_data_runtime.py +109 -0
  82. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/font_encoding_runtime.py +117 -0
  83. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/font_unicode_maps.py +21 -0
  84. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/font_widths.py +55 -0
  85. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/object_primitives_runtime.py +106 -0
  86. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/object_stream_runtime.py +30 -0
  87. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/ps_primitives_runtime.py +65 -0
  88. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/to_unicode_parser_runtime.py +176 -0
  89. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/sinks/legacy_ir.py +395 -0
  90. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/sinks/native_text.py +259 -0
  91. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/state.py +215 -0
  92. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/text_positioning.py +101 -0
  93. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/tokenizer.py +681 -0
  94. babeldoc-0.6.0/babeldoc/format/pdf/new_parser/xobject_content_execution.py +109 -0
  95. babeldoc-0.6.0/babeldoc/format/pdf/parse_only.py +120 -0
  96. babeldoc-0.6.0/babeldoc/format/pdf/parse_shared.py +63 -0
  97. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/pdfinterp.py +38 -2
  98. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/result_merger.py +1 -1
  99. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/translation_config.py +6 -3
  100. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/main.py +1 -1
  101. babeldoc-0.6.0/babeldoc/pdfminer/fontmetrics.py +4464 -0
  102. babeldoc-0.6.0/babeldoc/pdfminer/latin_enc.py +244 -0
  103. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/lzw.py +10 -2
  104. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/psparser.py +0 -0
  105. babeldoc-0.6.0/babeldoc/pdfminer/settings.py +1 -0
  106. babeldoc-0.6.0/babeldoc/tools/executor/__main__.py +4 -0
  107. babeldoc-0.6.0/babeldoc/tools/executor/babeldoc_adapter.py +475 -0
  108. babeldoc-0.6.0/babeldoc/tools/executor/protocol.py +35 -0
  109. babeldoc-0.6.0/babeldoc/tools/executor/runner.py +417 -0
  110. babeldoc-0.6.0/babeldoc/tools/executor/server.py +468 -0
  111. babeldoc-0.6.0/babeldoc/tools/executor/state.py +319 -0
  112. babeldoc-0.6.0/babeldoc/tools/executor/translator.py +164 -0
  113. babeldoc-0.6.0/babeldoc/tools/executor/watermark_transform.py +175 -0
  114. babeldoc-0.6.0/babeldoc/tools/executor/workroot.py +61 -0
  115. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/tools/generate_font_metadata.py +4 -2
  116. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/translator/translator.py +1 -1
  117. babeldoc-0.6.0/babeldoc/utils/__init__.py +0 -0
  118. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/CONTRIBUTING.md +3 -0
  119. babeldoc-0.6.0/docs/release-notes/v0.6.0.md +45 -0
  120. {babeldoc-0.5.23 → babeldoc-0.6.0}/mkdocs.yml +4 -1
  121. {babeldoc-0.5.23 → babeldoc-0.6.0}/pyproject.toml +4 -4
  122. babeldoc-0.5.23/.cursorignore +0 -2
  123. babeldoc-0.5.23/babeldoc/__init__.py +0 -1
  124. babeldoc-0.5.23/babeldoc/docvision/table_detection/rapidocr.py +0 -321
  125. babeldoc-0.5.23/babeldoc/format/pdf/babelpdf/utils.py +0 -14
  126. babeldoc-0.5.23/tests/test_translation_cache_cleanup.py +0 -68
  127. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  128. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  129. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/PULL_REQUEST_TEMPLATE/pr_form.yml +0 -0
  130. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  131. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/dependabot.yml +0 -0
  132. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/labels.yml +0 -0
  133. {babeldoc-0.5.23 → babeldoc-0.6.0}/.github/release-drafter.yml +0 -0
  134. {babeldoc-0.5.23 → babeldoc-0.6.0}/.pre-commit-config.yaml +0 -0
  135. {babeldoc-0.5.23 → babeldoc-0.6.0}/LICENSE +0 -0
  136. {babeldoc-0.5.23 → babeldoc-0.6.0}/README.md +0 -0
  137. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/asynchronize/__init__.py +0 -0
  138. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/babeldoc_exception/BabelDOCException.py +0 -0
  139. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/babeldoc_exception/__init__.py +0 -0
  140. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/README.md +0 -0
  141. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/__init__.py +0 -0
  142. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/base_doclayout.py +0 -0
  143. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout.py +0 -0
  144. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout2.py +0 -0
  145. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout3.py +0 -0
  146. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout4.py +0 -0
  147. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout5.py +0 -0
  148. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout6.py +0 -0
  149. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/docvision/rpc_doclayout7.py +0 -0
  150. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/__init__.py +0 -0
  151. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/__init__.py +0 -0
  152. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/base14.py +0 -0
  153. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/cidfont.py +0 -0
  154. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/cmap.py +0 -0
  155. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/encoding.py +0 -0
  156. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/type3.py +0 -0
  157. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/babelpdf/win_core.py +0 -0
  158. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/backend/__init__.py +0 -0
  159. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/frontend/__init__.py +0 -0
  160. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/__init__.py +0 -0
  161. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/add_debug_information.py +0 -0
  162. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/detect_scanned_file.py +0 -0
  163. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/il_translator.py +0 -0
  164. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/il_translator_llm_only.py +0 -0
  165. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/layout_parser.py +0 -0
  166. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/paragraph_finder.py +0 -0
  167. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/remove_descent.py +0 -0
  168. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/styles_and_formulas.py +0 -0
  169. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/table_parser.py +0 -0
  170. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/midend/typesetting.py +0 -0
  171. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/__init__.py +0 -0
  172. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/fontmap.py +0 -0
  173. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/formular_helper.py +0 -0
  174. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/layout_helper.py +0 -0
  175. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/matrix_helper.py +0 -0
  176. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/mupdf_helper.py +0 -0
  177. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/paragraph_helper.py +0 -0
  178. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/spatial_analyzer.py +0 -0
  179. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/style_helper.py +0 -0
  180. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/document_il/utils/zstd_helper.py +0 -0
  181. {babeldoc-0.5.23/babeldoc/pdfminer → babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/data}/fontmetrics.py +0 -0
  182. {babeldoc-0.5.23/babeldoc/pdfminer → babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/data}/latin_enc.py +0 -0
  183. /babeldoc-0.5.23/babeldoc/pdfminer/settings.py → /babeldoc-0.6.0/babeldoc/format/pdf/new_parser/runtime/runtime_settings.py +0 -0
  184. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/format/pdf/split_manager.py +0 -0
  185. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/glossary.py +0 -0
  186. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/LICENSE +0 -0
  187. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/__init__.py +0 -0
  188. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/_saslprep.py +0 -0
  189. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/arcfour.py +0 -0
  190. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/ascii85.py +0 -0
  191. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/casting.py +0 -0
  192. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/ccitt.py +0 -0
  193. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-EUC-H.pickle.gz +0 -0
  194. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-EUC-V.pickle.gz +0 -0
  195. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-H.pickle.gz +0 -0
  196. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-RKSJ-H.pickle.gz +0 -0
  197. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-RKSJ-V.pickle.gz +0 -0
  198. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78-V.pickle.gz +0 -0
  199. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78ms-RKSJ-H.pickle.gz +0 -0
  200. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/78ms-RKSJ-V.pickle.gz +0 -0
  201. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/83pv-RKSJ-H.pickle.gz +0 -0
  202. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/83pv-RKSJ-V.pickle.gz +0 -0
  203. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90ms-RKSJ-H.pickle.gz +0 -0
  204. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90ms-RKSJ-V.pickle.gz +0 -0
  205. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90msp-RKSJ-H.pickle.gz +0 -0
  206. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90msp-RKSJ-V.pickle.gz +0 -0
  207. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90pv-RKSJ-H.pickle.gz +0 -0
  208. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/90pv-RKSJ-V.pickle.gz +0 -0
  209. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Add-H.pickle.gz +0 -0
  210. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Add-RKSJ-H.pickle.gz +0 -0
  211. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Add-RKSJ-V.pickle.gz +0 -0
  212. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Add-V.pickle.gz +0 -0
  213. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/B5-H.pickle.gz +0 -0
  214. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/B5-V.pickle.gz +0 -0
  215. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/B5pc-H.pickle.gz +0 -0
  216. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/B5pc-V.pickle.gz +0 -0
  217. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS-EUC-H.pickle.gz +0 -0
  218. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS-EUC-V.pickle.gz +0 -0
  219. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS1-H.pickle.gz +0 -0
  220. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS1-V.pickle.gz +0 -0
  221. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS2-H.pickle.gz +0 -0
  222. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/CNS2-V.pickle.gz +0 -0
  223. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETHK-B5-H.pickle.gz +0 -0
  224. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETHK-B5-V.pickle.gz +0 -0
  225. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETen-B5-H.pickle.gz +0 -0
  226. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETen-B5-V.pickle.gz +0 -0
  227. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETenms-B5-H.pickle.gz +0 -0
  228. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/ETenms-B5-V.pickle.gz +0 -0
  229. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/EUC-H.pickle.gz +0 -0
  230. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/EUC-V.pickle.gz +0 -0
  231. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Ext-H.pickle.gz +0 -0
  232. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Ext-RKSJ-H.pickle.gz +0 -0
  233. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Ext-RKSJ-V.pickle.gz +0 -0
  234. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Ext-V.pickle.gz +0 -0
  235. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GB-EUC-H.pickle.gz +0 -0
  236. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GB-EUC-V.pickle.gz +0 -0
  237. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GB-H.pickle.gz +0 -0
  238. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GB-V.pickle.gz +0 -0
  239. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBK-EUC-H.pickle.gz +0 -0
  240. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBK-EUC-V.pickle.gz +0 -0
  241. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBK2K-H.pickle.gz +0 -0
  242. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBK2K-V.pickle.gz +0 -0
  243. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBKp-EUC-H.pickle.gz +0 -0
  244. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBKp-EUC-V.pickle.gz +0 -0
  245. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBT-EUC-H.pickle.gz +0 -0
  246. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBT-EUC-V.pickle.gz +0 -0
  247. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBT-H.pickle.gz +0 -0
  248. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBT-V.pickle.gz +0 -0
  249. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBTpc-EUC-H.pickle.gz +0 -0
  250. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBTpc-EUC-V.pickle.gz +0 -0
  251. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBpc-EUC-H.pickle.gz +0 -0
  252. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/GBpc-EUC-V.pickle.gz +0 -0
  253. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/H.pickle.gz +0 -0
  254. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKdla-B5-H.pickle.gz +0 -0
  255. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKdla-B5-V.pickle.gz +0 -0
  256. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKdlb-B5-H.pickle.gz +0 -0
  257. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKdlb-B5-V.pickle.gz +0 -0
  258. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKgccs-B5-H.pickle.gz +0 -0
  259. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKgccs-B5-V.pickle.gz +0 -0
  260. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKm314-B5-H.pickle.gz +0 -0
  261. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKm314-B5-V.pickle.gz +0 -0
  262. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKm471-B5-H.pickle.gz +0 -0
  263. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKm471-B5-V.pickle.gz +0 -0
  264. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKscs-B5-H.pickle.gz +0 -0
  265. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/HKscs-B5-V.pickle.gz +0 -0
  266. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Hankaku-H.pickle.gz +0 -0
  267. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Hankaku-V.pickle.gz +0 -0
  268. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Hiragana-H.pickle.gz +0 -0
  269. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Hiragana-V.pickle.gz +0 -0
  270. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-EUC-H.pickle.gz +0 -0
  271. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-EUC-V.pickle.gz +0 -0
  272. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-H.pickle.gz +0 -0
  273. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-Johab-H.pickle.gz +0 -0
  274. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-Johab-V.pickle.gz +0 -0
  275. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSC-V.pickle.gz +0 -0
  276. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCms-UHC-H.pickle.gz +0 -0
  277. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-H.pickle.gz +0 -0
  278. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-V.pickle.gz +0 -0
  279. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCms-UHC-V.pickle.gz +0 -0
  280. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCpc-EUC-H.pickle.gz +0 -0
  281. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/KSCpc-EUC-V.pickle.gz +0 -0
  282. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Katakana-H.pickle.gz +0 -0
  283. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Katakana-V.pickle.gz +0 -0
  284. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/NWP-H.pickle.gz +0 -0
  285. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/NWP-V.pickle.gz +0 -0
  286. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/README.txt +0 -0
  287. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/RKSJ-H.pickle.gz +0 -0
  288. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/RKSJ-V.pickle.gz +0 -0
  289. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Roman-H.pickle.gz +0 -0
  290. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/Roman-V.pickle.gz +0 -0
  291. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UCS2-H.pickle.gz +0 -0
  292. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UCS2-V.pickle.gz +0 -0
  293. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF16-H.pickle.gz +0 -0
  294. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF16-V.pickle.gz +0 -0
  295. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF32-H.pickle.gz +0 -0
  296. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF32-V.pickle.gz +0 -0
  297. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF8-H.pickle.gz +0 -0
  298. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniCNS-UTF8-V.pickle.gz +0 -0
  299. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UCS2-H.pickle.gz +0 -0
  300. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UCS2-V.pickle.gz +0 -0
  301. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF16-H.pickle.gz +0 -0
  302. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF16-V.pickle.gz +0 -0
  303. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF32-H.pickle.gz +0 -0
  304. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF32-V.pickle.gz +0 -0
  305. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF8-H.pickle.gz +0 -0
  306. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniGB-UTF8-V.pickle.gz +0 -0
  307. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UCS2-H.pickle.gz +0 -0
  308. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-H.pickle.gz +0 -0
  309. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-V.pickle.gz +0 -0
  310. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UCS2-V.pickle.gz +0 -0
  311. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF16-H.pickle.gz +0 -0
  312. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF16-V.pickle.gz +0 -0
  313. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF32-H.pickle.gz +0 -0
  314. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF32-V.pickle.gz +0 -0
  315. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF8-H.pickle.gz +0 -0
  316. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS-UTF8-V.pickle.gz +0 -0
  317. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-H.pickle.gz +0 -0
  318. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-V.pickle.gz +0 -0
  319. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-H.pickle.gz +0 -0
  320. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-V.pickle.gz +0 -0
  321. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-H.pickle.gz +0 -0
  322. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-V.pickle.gz +0 -0
  323. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-H.pickle.gz +0 -0
  324. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-V.pickle.gz +0 -0
  325. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-H.pickle.gz +0 -0
  326. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-V.pickle.gz +0 -0
  327. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UCS2-H.pickle.gz +0 -0
  328. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UCS2-V.pickle.gz +0 -0
  329. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF16-H.pickle.gz +0 -0
  330. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF16-V.pickle.gz +0 -0
  331. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF32-H.pickle.gz +0 -0
  332. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF32-V.pickle.gz +0 -0
  333. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF8-H.pickle.gz +0 -0
  334. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/UniKS-UTF8-V.pickle.gz +0 -0
  335. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/V.pickle.gz +0 -0
  336. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/WP-Symbol-H.pickle.gz +0 -0
  337. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/WP-Symbol-V.pickle.gz +0 -0
  338. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/to-unicode-Adobe-CNS1.pickle.gz +0 -0
  339. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/to-unicode-Adobe-GB1.pickle.gz +0 -0
  340. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Japan1.pickle.gz +0 -0
  341. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Korea1.pickle.gz +0 -0
  342. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/cmapdb.py +0 -0
  343. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/converter.py +0 -0
  344. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/data_structures.py +0 -0
  345. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/encodingdb.py +0 -0
  346. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/glyphlist.py +0 -0
  347. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/high_level.py +0 -0
  348. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/image.py +0 -0
  349. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/jbig2.py +0 -0
  350. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/layout.py +0 -0
  351. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfcolor.py +0 -0
  352. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfdevice.py +0 -0
  353. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfdocument.py +0 -0
  354. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfexceptions.py +0 -0
  355. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdffont.py +0 -0
  356. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfinterp.py +0 -0
  357. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfpage.py +0 -0
  358. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdfparser.py +0 -0
  359. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/pdftypes.py +0 -0
  360. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/psexceptions.py +0 -0
  361. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/py.typed +0 -0
  362. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/runlength.py +0 -0
  363. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/pdfminer/utils.py +0 -0
  364. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/progress_monitor.py +0 -0
  365. {babeldoc-0.5.23/babeldoc/translator → babeldoc-0.6.0/babeldoc/tools/executor}/__init__.py +0 -0
  366. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/tools/generate_cmap_metadata.py +0 -0
  367. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/tools/italic_assistance.py +0 -0
  368. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/tools/italic_recognize_tool.py +0 -0
  369. {babeldoc-0.5.23/babeldoc/utils → babeldoc-0.6.0/babeldoc/translator}/__init__.py +0 -0
  370. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/translator/cache.py +0 -0
  371. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/utils/atomic_integer.py +0 -0
  372. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/utils/memory.py +0 -0
  373. {babeldoc-0.5.23 → babeldoc-0.6.0}/babeldoc/utils/priority_thread_pool_executor.py +0 -0
  374. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/CODE_OF_CONDUCT.md +0 -0
  375. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/CONTRIBUTOR_REWARD.md +0 -0
  376. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
  377. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
  378. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
  379. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
  380. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
  381. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/README.md +0 -0
  382. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
  383. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
  384. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/README.md +0 -0
  385. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/deploy.sh +0 -0
  386. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/example/demo_glossary.csv +0 -0
  387. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-banner.png +0 -0
  388. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.png +0 -0
  389. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.svg +0 -0
  390. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-big-logo-with-transparent-background.png +0 -0
  391. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-big-logo-with-transparent-background.svg +0 -0
  392. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-big-logo.png +0 -0
  393. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-contributor_reward_example.png +0 -0
  394. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-preview.gif +0 -0
  395. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-small-logo-with-transparent-background.png +0 -0
  396. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-small-logo-with-transparent-background.svg +0 -0
  397. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/images/babeldoc-small-logo.png +0 -0
  398. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/index.md +0 -0
  399. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/intro-to-pdf-object.md +0 -0
  400. {babeldoc-0.5.23 → babeldoc-0.6.0}/docs/requirements.txt +0 -0
  401. {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@v5
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@v5
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@v4
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@v5
25
+ uses: actions/checkout@v6
26
26
 
27
27
  - name: Run Labeler
28
- uses: crazy-max/ghaction-github-labeler@24d110aa46a59976b8a7f35518cb7f14f434c916 # v5.3.0
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' }}
@@ -10,7 +10,7 @@ jobs:
10
10
  fail-fast: false
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
- - uses: actions/checkout@v5
13
+ - uses: actions/checkout@v6
14
14
  - name: Ruff
15
15
  uses: astral-sh/ruff-action@v3
16
16
  - name: AutoCorrect
@@ -9,7 +9,7 @@ jobs:
9
9
  name: runner / ruff
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
- - uses: actions/checkout@v5
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@d8edfce3dd5e1ec6978745e801f9c50b5ef80252 # v1.4.0
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@v5
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@v5
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@v4.6.2
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@v5
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@v5
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@v4.2.0
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
- AGENTS.md
49
+ .serena
50
+ .codex
51
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BabelDOC
3
- Version: 0.5.23
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
- result_container.set_result(asyncio.run(coro))
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
- onnx_path = get_cache_file_path("ch_PP-OCRv4_det_infer.onnx", "models")
252
- if verify_file(onnx_path, TABLE_DETECTION_RAPIDOCR_MODEL_SHA3_256):
253
- return onnx_path
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, onnx_task2, font_tasks, cmap_tasks)
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": {
@@ -6,7 +6,7 @@ import subprocess
6
6
  import threading
7
7
  from pathlib import Path
8
8
 
9
- __version__ = "0.5.23"
9
+ __version__ = "0.6.0"
10
10
 
11
11
  CACHE_FOLDER = Path.home() / ".cache" / "babeldoc"
12
12
 
@@ -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
- for provider in available_providers:
51
- # disable dml|cuda|
52
- # directml/cuda may encounter problems under special circumstances
53
- if re.match(r"cpu", provider, re.IGNORECASE):
54
- logger.info(f"Available Provider: {provider}")
55
- providers.append(provider)
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
- # Calculate padding size and align to stride multiple
101
- pad_w = (new_w - resized_w) % self.stride
102
- pad_h = (new_h - resized_h) % self.stride
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