BabelDOC 0.4.6__tar.gz → 0.4.8__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 (301) hide show
  1. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/workflows/docs.yml +1 -1
  2. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/workflows/publish-to-pypi.yml +1 -1
  3. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/workflows/test.yml +1 -1
  4. {babeldoc-0.4.6 → babeldoc-0.4.8}/PKG-INFO +2 -1
  5. babeldoc-0.4.8/babeldoc/__init__.py +1 -0
  6. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/const.py +1 -1
  7. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/backend/pdf_creater.py +1 -1
  8. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/frontend/il_creater.py +13 -7
  9. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/il_translator_llm_only.py +11 -0
  10. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/typesetting.py +2 -1
  11. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/utils/formular_helper.py +2 -2
  12. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/utils/layout_helper.py +1 -1
  13. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/glossary.py +6 -2
  14. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/main.py +1 -1
  15. {babeldoc-0.4.6 → babeldoc-0.4.8}/pyproject.toml +4 -3
  16. {babeldoc-0.4.6 → babeldoc-0.4.8}/uv.lock +12 -1
  17. babeldoc-0.4.6/babeldoc/__init__.py +0 -1
  18. {babeldoc-0.4.6 → babeldoc-0.4.8}/.cursorignore +0 -0
  19. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  20. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  21. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/PULL_REQUEST_TEMPLATE/pr_form.yml +0 -0
  22. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  23. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/dependabot.yml +0 -0
  24. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/labels.yml +0 -0
  25. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/release-drafter.yml +0 -0
  26. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/workflows/codeql.yml +0 -0
  27. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/workflows/labeler.yml +0 -0
  28. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/workflows/lint.yml +0 -0
  29. {babeldoc-0.4.6 → babeldoc-0.4.8}/.github/workflows/pr-lint.yml +0 -0
  30. {babeldoc-0.4.6 → babeldoc-0.4.8}/.gitignore +0 -0
  31. {babeldoc-0.4.6 → babeldoc-0.4.8}/.pre-commit-config.yaml +0 -0
  32. {babeldoc-0.4.6 → babeldoc-0.4.8}/LICENSE +0 -0
  33. {babeldoc-0.4.6 → babeldoc-0.4.8}/README.md +0 -0
  34. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/assets/assets.py +0 -0
  35. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/assets/embedding_assets_metadata.py +0 -0
  36. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/asynchronize/__init__.py +0 -0
  37. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/babeldoc_exception/BabelDOCException.py +0 -0
  38. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/babeldoc_exception/__init__.py +0 -0
  39. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/docvision/README.md +0 -0
  40. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/docvision/__init__.py +0 -0
  41. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/docvision/base_doclayout.py +0 -0
  42. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/docvision/doclayout.py +0 -0
  43. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/docvision/rpc_doclayout.py +0 -0
  44. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/docvision/rpc_doclayout2.py +0 -0
  45. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/docvision/table_detection/rapidocr.py +0 -0
  46. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/__init__.py +0 -0
  47. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/__init__.py +0 -0
  48. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/converter.py +0 -0
  49. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/__init__.py +0 -0
  50. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/backend/__init__.py +0 -0
  51. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/frontend/__init__.py +0 -0
  52. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/il_version_1.py +0 -0
  53. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/il_version_1.rnc +0 -0
  54. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/il_version_1.rng +0 -0
  55. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/il_version_1.xsd +0 -0
  56. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/__init__.py +0 -0
  57. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/add_debug_information.py +0 -0
  58. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/automatic_term_extractor.py +0 -0
  59. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/detect_scanned_file.py +0 -0
  60. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/il_translator.py +0 -0
  61. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/layout_parser.py +0 -0
  62. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/paragraph_finder.py +0 -0
  63. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/remove_descent.py +0 -0
  64. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/styles_and_formulas.py +0 -0
  65. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/midend/table_parser.py +0 -0
  66. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/utils/__init__.py +0 -0
  67. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/utils/fontmap.py +0 -0
  68. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/utils/mupdf_helper.py +0 -0
  69. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/utils/paragraph_helper.py +0 -0
  70. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/utils/style_helper.py +0 -0
  71. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/utils/zstd_helper.py +0 -0
  72. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/document_il/xml_converter.py +0 -0
  73. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/high_level.py +0 -0
  74. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/pdfinterp.py +0 -0
  75. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/result_merger.py +0 -0
  76. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/split_manager.py +0 -0
  77. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/format/pdf/translation_config.py +0 -0
  78. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/LICENSE +0 -0
  79. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/__init__.py +0 -0
  80. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/_saslprep.py +0 -0
  81. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/arcfour.py +0 -0
  82. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/ascii85.py +0 -0
  83. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/casting.py +0 -0
  84. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/ccitt.py +0 -0
  85. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/78-EUC-H.pickle.gz +0 -0
  86. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/78-EUC-V.pickle.gz +0 -0
  87. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/78-H.pickle.gz +0 -0
  88. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/78-RKSJ-H.pickle.gz +0 -0
  89. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/78-RKSJ-V.pickle.gz +0 -0
  90. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/78-V.pickle.gz +0 -0
  91. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/78ms-RKSJ-H.pickle.gz +0 -0
  92. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/78ms-RKSJ-V.pickle.gz +0 -0
  93. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/83pv-RKSJ-H.pickle.gz +0 -0
  94. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/83pv-RKSJ-V.pickle.gz +0 -0
  95. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/90ms-RKSJ-H.pickle.gz +0 -0
  96. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/90ms-RKSJ-V.pickle.gz +0 -0
  97. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/90msp-RKSJ-H.pickle.gz +0 -0
  98. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/90msp-RKSJ-V.pickle.gz +0 -0
  99. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/90pv-RKSJ-H.pickle.gz +0 -0
  100. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/90pv-RKSJ-V.pickle.gz +0 -0
  101. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Add-H.pickle.gz +0 -0
  102. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Add-RKSJ-H.pickle.gz +0 -0
  103. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Add-RKSJ-V.pickle.gz +0 -0
  104. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Add-V.pickle.gz +0 -0
  105. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/B5-H.pickle.gz +0 -0
  106. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/B5-V.pickle.gz +0 -0
  107. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/B5pc-H.pickle.gz +0 -0
  108. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/B5pc-V.pickle.gz +0 -0
  109. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/CNS-EUC-H.pickle.gz +0 -0
  110. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/CNS-EUC-V.pickle.gz +0 -0
  111. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/CNS1-H.pickle.gz +0 -0
  112. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/CNS1-V.pickle.gz +0 -0
  113. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/CNS2-H.pickle.gz +0 -0
  114. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/CNS2-V.pickle.gz +0 -0
  115. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/ETHK-B5-H.pickle.gz +0 -0
  116. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/ETHK-B5-V.pickle.gz +0 -0
  117. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/ETen-B5-H.pickle.gz +0 -0
  118. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/ETen-B5-V.pickle.gz +0 -0
  119. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/ETenms-B5-H.pickle.gz +0 -0
  120. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/ETenms-B5-V.pickle.gz +0 -0
  121. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/EUC-H.pickle.gz +0 -0
  122. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/EUC-V.pickle.gz +0 -0
  123. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Ext-H.pickle.gz +0 -0
  124. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Ext-RKSJ-H.pickle.gz +0 -0
  125. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Ext-RKSJ-V.pickle.gz +0 -0
  126. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Ext-V.pickle.gz +0 -0
  127. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GB-EUC-H.pickle.gz +0 -0
  128. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GB-EUC-V.pickle.gz +0 -0
  129. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GB-H.pickle.gz +0 -0
  130. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GB-V.pickle.gz +0 -0
  131. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBK-EUC-H.pickle.gz +0 -0
  132. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBK-EUC-V.pickle.gz +0 -0
  133. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBK2K-H.pickle.gz +0 -0
  134. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBK2K-V.pickle.gz +0 -0
  135. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBKp-EUC-H.pickle.gz +0 -0
  136. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBKp-EUC-V.pickle.gz +0 -0
  137. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBT-EUC-H.pickle.gz +0 -0
  138. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBT-EUC-V.pickle.gz +0 -0
  139. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBT-H.pickle.gz +0 -0
  140. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBT-V.pickle.gz +0 -0
  141. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBTpc-EUC-H.pickle.gz +0 -0
  142. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBTpc-EUC-V.pickle.gz +0 -0
  143. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBpc-EUC-H.pickle.gz +0 -0
  144. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/GBpc-EUC-V.pickle.gz +0 -0
  145. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/H.pickle.gz +0 -0
  146. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKdla-B5-H.pickle.gz +0 -0
  147. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKdla-B5-V.pickle.gz +0 -0
  148. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKdlb-B5-H.pickle.gz +0 -0
  149. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKdlb-B5-V.pickle.gz +0 -0
  150. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKgccs-B5-H.pickle.gz +0 -0
  151. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKgccs-B5-V.pickle.gz +0 -0
  152. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKm314-B5-H.pickle.gz +0 -0
  153. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKm314-B5-V.pickle.gz +0 -0
  154. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKm471-B5-H.pickle.gz +0 -0
  155. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKm471-B5-V.pickle.gz +0 -0
  156. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKscs-B5-H.pickle.gz +0 -0
  157. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/HKscs-B5-V.pickle.gz +0 -0
  158. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Hankaku-H.pickle.gz +0 -0
  159. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Hankaku-V.pickle.gz +0 -0
  160. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Hiragana-H.pickle.gz +0 -0
  161. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Hiragana-V.pickle.gz +0 -0
  162. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSC-EUC-H.pickle.gz +0 -0
  163. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSC-EUC-V.pickle.gz +0 -0
  164. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSC-H.pickle.gz +0 -0
  165. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSC-Johab-H.pickle.gz +0 -0
  166. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSC-Johab-V.pickle.gz +0 -0
  167. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSC-V.pickle.gz +0 -0
  168. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSCms-UHC-H.pickle.gz +0 -0
  169. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-H.pickle.gz +0 -0
  170. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSCms-UHC-HW-V.pickle.gz +0 -0
  171. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSCms-UHC-V.pickle.gz +0 -0
  172. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSCpc-EUC-H.pickle.gz +0 -0
  173. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/KSCpc-EUC-V.pickle.gz +0 -0
  174. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Katakana-H.pickle.gz +0 -0
  175. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Katakana-V.pickle.gz +0 -0
  176. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/NWP-H.pickle.gz +0 -0
  177. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/NWP-V.pickle.gz +0 -0
  178. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/README.txt +0 -0
  179. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/RKSJ-H.pickle.gz +0 -0
  180. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/RKSJ-V.pickle.gz +0 -0
  181. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Roman-H.pickle.gz +0 -0
  182. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/Roman-V.pickle.gz +0 -0
  183. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniCNS-UCS2-H.pickle.gz +0 -0
  184. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniCNS-UCS2-V.pickle.gz +0 -0
  185. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniCNS-UTF16-H.pickle.gz +0 -0
  186. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniCNS-UTF16-V.pickle.gz +0 -0
  187. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniCNS-UTF32-H.pickle.gz +0 -0
  188. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniCNS-UTF32-V.pickle.gz +0 -0
  189. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniCNS-UTF8-H.pickle.gz +0 -0
  190. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniCNS-UTF8-V.pickle.gz +0 -0
  191. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniGB-UCS2-H.pickle.gz +0 -0
  192. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniGB-UCS2-V.pickle.gz +0 -0
  193. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniGB-UTF16-H.pickle.gz +0 -0
  194. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniGB-UTF16-V.pickle.gz +0 -0
  195. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniGB-UTF32-H.pickle.gz +0 -0
  196. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniGB-UTF32-V.pickle.gz +0 -0
  197. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniGB-UTF8-H.pickle.gz +0 -0
  198. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniGB-UTF8-V.pickle.gz +0 -0
  199. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS-UCS2-H.pickle.gz +0 -0
  200. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-H.pickle.gz +0 -0
  201. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS-UCS2-HW-V.pickle.gz +0 -0
  202. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS-UCS2-V.pickle.gz +0 -0
  203. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS-UTF16-H.pickle.gz +0 -0
  204. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS-UTF16-V.pickle.gz +0 -0
  205. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS-UTF32-H.pickle.gz +0 -0
  206. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS-UTF32-V.pickle.gz +0 -0
  207. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS-UTF8-H.pickle.gz +0 -0
  208. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS-UTF8-V.pickle.gz +0 -0
  209. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-H.pickle.gz +0 -0
  210. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS2004-UTF16-V.pickle.gz +0 -0
  211. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-H.pickle.gz +0 -0
  212. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS2004-UTF32-V.pickle.gz +0 -0
  213. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-H.pickle.gz +0 -0
  214. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJIS2004-UTF8-V.pickle.gz +0 -0
  215. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-H.pickle.gz +0 -0
  216. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJISX0213-UTF32-V.pickle.gz +0 -0
  217. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-H.pickle.gz +0 -0
  218. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniJISX02132004-UTF32-V.pickle.gz +0 -0
  219. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniKS-UCS2-H.pickle.gz +0 -0
  220. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniKS-UCS2-V.pickle.gz +0 -0
  221. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniKS-UTF16-H.pickle.gz +0 -0
  222. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniKS-UTF16-V.pickle.gz +0 -0
  223. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniKS-UTF32-H.pickle.gz +0 -0
  224. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniKS-UTF32-V.pickle.gz +0 -0
  225. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniKS-UTF8-H.pickle.gz +0 -0
  226. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/UniKS-UTF8-V.pickle.gz +0 -0
  227. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/V.pickle.gz +0 -0
  228. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/WP-Symbol-H.pickle.gz +0 -0
  229. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/WP-Symbol-V.pickle.gz +0 -0
  230. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/to-unicode-Adobe-CNS1.pickle.gz +0 -0
  231. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/to-unicode-Adobe-GB1.pickle.gz +0 -0
  232. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Japan1.pickle.gz +0 -0
  233. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmap/to-unicode-Adobe-Korea1.pickle.gz +0 -0
  234. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/cmapdb.py +0 -0
  235. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/converter.py +0 -0
  236. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/data_structures.py +0 -0
  237. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/encodingdb.py +0 -0
  238. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/fontmetrics.py +0 -0
  239. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/glyphlist.py +0 -0
  240. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/high_level.py +0 -0
  241. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/image.py +0 -0
  242. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/jbig2.py +0 -0
  243. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/latin_enc.py +0 -0
  244. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/layout.py +0 -0
  245. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/lzw.py +0 -0
  246. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/pdfcolor.py +0 -0
  247. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/pdfdevice.py +0 -0
  248. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/pdfdocument.py +0 -0
  249. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/pdfexceptions.py +0 -0
  250. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/pdffont.py +0 -0
  251. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/pdfinterp.py +0 -0
  252. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/pdfpage.py +0 -0
  253. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/pdfparser.py +0 -0
  254. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/pdftypes.py +0 -0
  255. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/psexceptions.py +0 -0
  256. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/psparser.py +0 -0
  257. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/py.typed +0 -0
  258. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/runlength.py +0 -0
  259. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/settings.py +0 -0
  260. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/pdfminer/utils.py +0 -0
  261. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/progress_monitor.py +0 -0
  262. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/tools/generate_font_metadata.py +0 -0
  263. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/tools/italic_assistance.py +0 -0
  264. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/tools/italic_recognize_tool.py +0 -0
  265. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/translator/__init__.py +0 -0
  266. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/translator/cache.py +0 -0
  267. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/translator/translator.py +0 -0
  268. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/utils/__init__.py +0 -0
  269. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/utils/atomic_integer.py +0 -0
  270. {babeldoc-0.4.6 → babeldoc-0.4.8}/babeldoc/utils/priority_thread_pool_executor.py +0 -0
  271. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/CODE_OF_CONDUCT.md +0 -0
  272. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/CONTRIBUTING.md +0 -0
  273. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/CONTRIBUTOR_REWARD.md +0 -0
  274. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
  275. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
  276. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
  277. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
  278. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
  279. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/ImplementationDetails/README.md +0 -0
  280. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
  281. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
  282. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/README.md +0 -0
  283. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/deploy.sh +0 -0
  284. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/example/demo_glossary.csv +0 -0
  285. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/images/babeldoc-banner.png +0 -0
  286. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.png +0 -0
  287. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.svg +0 -0
  288. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/images/babeldoc-big-logo-with-transparent-background.png +0 -0
  289. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/images/babeldoc-big-logo-with-transparent-background.svg +0 -0
  290. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/images/babeldoc-big-logo.png +0 -0
  291. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/images/babeldoc-contributor_reward_example.png +0 -0
  292. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/images/babeldoc-preview.gif +0 -0
  293. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/images/babeldoc-small-logo-with-transparent-background.png +0 -0
  294. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/images/babeldoc-small-logo-with-transparent-background.svg +0 -0
  295. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/images/babeldoc-small-logo.png +0 -0
  296. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/index.md +0 -0
  297. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/intro-to-pdf-object.md +0 -0
  298. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/requirements.txt +0 -0
  299. {babeldoc-0.4.6 → babeldoc-0.4.8}/docs/supported_languages.md +0 -0
  300. {babeldoc-0.4.6 → babeldoc-0.4.8}/mkdocs.yml +0 -0
  301. {babeldoc-0.4.6 → babeldoc-0.4.8}/tests/test_translation_config.py +0 -0
@@ -17,7 +17,7 @@ jobs:
17
17
  git config user.name github-actions[bot]
18
18
  git config user.email 41898282+github-actions[bot]@users.noreply.github.com
19
19
  - name: Setup uv with Python 3.12
20
- uses: astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb # v6.1.0
20
+ uses: astral-sh/setup-uv@445689ea25e0de0a23313031f5fe577c74ae45a1 # v6.3.0
21
21
  with:
22
22
  python-version: "3.12"
23
23
  enable-cache: true
@@ -35,7 +35,7 @@ jobs:
35
35
  token: ${{ secrets.GITHUB_TOKEN }}
36
36
 
37
37
  - name: Setup uv with Python 3.12
38
- uses: astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb # v6.1.0
38
+ uses: astral-sh/setup-uv@445689ea25e0de0a23313031f5fe577c74ae45a1 # v6.3.0
39
39
  with:
40
40
  python-version: "3.12"
41
41
  enable-cache: true
@@ -28,7 +28,7 @@ jobs:
28
28
  path: ~/.cache/babeldoc
29
29
  key: babeldoc-assets-${{ hashFiles('babeldoc/assets/embedding_assets_metadata.py') }}
30
30
  - name: Setup uv with Python ${{ matrix.python-version }}
31
- uses: astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb # v6.1.0
31
+ uses: astral-sh/setup-uv@445689ea25e0de0a23313031f5fe577c74ae45a1 # v6.3.0
32
32
  with:
33
33
  python-version: ${{ matrix.python-version }}
34
34
  enable-cache: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BabelDOC
3
- Version: 0.4.6
3
+ Version: 0.4.8
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
@@ -13,6 +13,7 @@ Classifier: Operating System :: OS Independent
13
13
  Classifier: Programming Language :: Python :: 3
14
14
  Requires-Python: <3.14,>=3.10
15
15
  Requires-Dist: bitstring>=4.3.0
16
+ Requires-Dist: chardet>=5.2.0
16
17
  Requires-Dist: charset-normalizer>=2.0.0
17
18
  Requires-Dist: configargparse>=1.7
18
19
  Requires-Dist: cryptography>=36.0.0
@@ -0,0 +1 @@
1
+ __version__ = "0.4.8"
@@ -3,7 +3,7 @@ import shutil
3
3
  import subprocess
4
4
  from pathlib import Path
5
5
 
6
- __version__ = "0.4.6"
6
+ __version__ = "0.4.8"
7
7
 
8
8
  CACHE_FOLDER = Path.home() / ".cache" / "babeldoc"
9
9
 
@@ -289,7 +289,7 @@ class PDFCreater:
289
289
  )
290
290
  continue
291
291
  chars.append(composition.pdf_character)
292
- if not chars and paragraph.unicode:
292
+ if not chars and paragraph.unicode and paragraph.debug_id:
293
293
  logger.error(
294
294
  f"Unable to export paragraphs that have "
295
295
  f"not yet been formatted: {paragraph}",
@@ -348,11 +348,14 @@ def parse_font_file(doc, idx, encoding, differences):
348
348
  data = doc.xref_stream(idx)
349
349
  face = freetype.Face(BytesIO(data))
350
350
  scale = 1000 / face.units_per_EM
351
- for charmap in face.charmaps:
352
- if charmap.encoding_name == "FT_ENCODING_ADOBE_CUSTOM":
353
- face.select_charmap(freetype.FT_ENCODING_ADOBE_CUSTOM)
354
- break
355
- bbox_list = [get_char_cbox(face, x) for x in encoding]
351
+ enc_name, enc_vector = encoding
352
+ if enc_name == "Custom":
353
+ for charmap in face.charmaps:
354
+ face.select_charmap(charmap.encoding)
355
+ if charmap.encoding_name == "FT_ENCODING_ADOBE_CUSTOM":
356
+ face.select_charmap(charmap.encoding)
357
+ break
358
+ bbox_list = [get_char_cbox(face, x) for x in enc_vector]
356
359
  if differences:
357
360
  for code, name in differences:
358
361
  bbox_list[code] = get_name_cbox(face, name.encode("U8"))
@@ -765,10 +768,13 @@ class ILCreater:
765
768
 
766
769
  def parse_font_xobj_id(self, xobj_id: int):
767
770
  bbox_list = []
768
- encoding = list(range(256))
771
+ encoding = ("Custom", list(range(256)))
769
772
  font_encoding = self.mupdf.xref_get_key(xobj_id, "Encoding")
770
773
  if font_encoding[1] == "/WinAnsiEncoding":
771
- encoding = WinAnsiEncoding
774
+ encoding = ("WinAnsi", WinAnsiEncoding)
775
+ base_encoding = self.mupdf.xref_get_key(xobj_id, "Encoding/BaseEncoding")
776
+ if base_encoding[1] == "/WinAnsiEncoding":
777
+ encoding = ("WinAnsi", WinAnsiEncoding)
772
778
  differences = []
773
779
  font_differences = self.mupdf.xref_get_key(xobj_id, "Encoding/Differences")
774
780
  if font_differences:
@@ -479,9 +479,20 @@ class ILTranslatorLLMOnly:
479
479
  input_unicode = inputs[id_][2].unicode
480
480
  output_unicode = translated_text
481
481
 
482
+ trimed_input = re.sub(r"[. 。…,]{20,}", ".", output)
483
+
482
484
  input_token_count = self.calc_token_count(input_unicode)
483
485
  output_token_count = self.calc_token_count(output_unicode)
484
486
 
487
+ if trimed_input == output_unicode and input_token_count > 20:
488
+ llm_translate_tracker.set_error_message(
489
+ "Translation result is the same as input, fallback."
490
+ )
491
+ logger.warning(
492
+ "Translation result is the same as input, fallback."
493
+ )
494
+ continue
495
+
485
496
  if not (0.3 < output_token_count / input_token_count < 3):
486
497
  llm_translate_tracker.set_error_message(
487
498
  f"Translation result is too long or too short. Input: {input_token_count}, Output: {output_token_count}"
@@ -871,7 +871,8 @@ class Typesetting:
871
871
  PdfParagraphComposition(pdf_character=char),
872
872
  )
873
873
  return
874
-
874
+ if not paragraph.debug_id:
875
+ return
875
876
  # 如果当前行距大于最小行距,先减小行距
876
877
  if line_spacing > min_line_spacing:
877
878
  line_spacing -= 0.1
@@ -197,8 +197,8 @@ def is_formulas_font(font_name: str, formular_font_pattern: str | None) -> bool:
197
197
  )
198
198
  precise_formula_font_pattern = (
199
199
  r"^("
200
- r"|.*CambriaMath.*"
201
- r"|.*Cambria Math.*"
200
+ # r"|.*CambriaMath.*"
201
+ # r"|.*Cambria Math.*"
202
202
  r"|.*Asana.*"
203
203
  r"|.*MiriamMonoCLM-BookOblique.*"
204
204
  r"|.*Miriam Mono CLM.*"
@@ -710,7 +710,7 @@ def is_text_layout(layout: Layout):
710
710
  "figure_caption",
711
711
  "table_caption",
712
712
  "table_text",
713
- "reference",
713
+ # "reference",
714
714
  "title",
715
715
  "paragraph_title",
716
716
  "abstract",
@@ -6,6 +6,7 @@ import re
6
6
  import time
7
7
  from pathlib import Path
8
8
 
9
+ import chardet
9
10
  import hyperscan
10
11
  import regex
11
12
 
@@ -134,8 +135,11 @@ class Glossary:
134
135
  normalized_target_lang_out = target_lang_out.lower().replace("-", "_")
135
136
 
136
137
  try:
137
- with file_path.open("r", encoding="utf-8") as f:
138
- reader = csv.DictReader(f, doublequote=True)
138
+ with file_path.open("rb") as f:
139
+ content = f.read()
140
+ encoding = chardet.detect(content)["encoding"]
141
+ buffer = io.StringIO(content.decode(encoding))
142
+ reader = csv.DictReader(buffer, doublequote=True)
139
143
  if not all(col in reader.fieldnames for col in ["source", "target"]):
140
144
  raise ValueError(
141
145
  f"CSV file {file_path} must contain 'source' and 'target' columns."
@@ -21,7 +21,7 @@ from babeldoc.translator.translator import OpenAITranslator
21
21
  from babeldoc.translator.translator import set_translate_rate_limiter
22
22
 
23
23
  logger = logging.getLogger(__name__)
24
- __version__ = "0.4.6"
24
+ __version__ = "0.4.8"
25
25
 
26
26
 
27
27
  def create_parser():
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "BabelDOC"
3
- version = "0.4.6"
3
+ version = "0.4.8"
4
4
  description = "Yet Another Document Translator"
5
5
  license = "AGPL-3.0"
6
6
  readme = "README.md"
@@ -47,7 +47,8 @@ dependencies = [
47
47
  "rapidocr-onnxruntime>=1.4.4",
48
48
  "pyzstd>=0.17.0",
49
49
  "hyperscan>=0.7.13",
50
- "rtree>=1.4.0"
50
+ "rtree>=1.4.0",
51
+ "chardet>=5.2.0",
51
52
  ]
52
53
 
53
54
  [project.optional-dependencies]
@@ -157,7 +158,7 @@ pythonpath = [".", "src"]
157
158
  testpaths = ["tests"]
158
159
 
159
160
  [bumpver]
160
- current_version = "0.4.6"
161
+ current_version = "0.4.8"
161
162
  version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
162
163
 
163
164
  [bumpver.file_patterns]
@@ -48,10 +48,11 @@ wheels = [
48
48
 
49
49
  [[package]]
50
50
  name = "babeldoc"
51
- version = "0.4.6"
51
+ version = "0.4.8"
52
52
  source = { editable = "." }
53
53
  dependencies = [
54
54
  { name = "bitstring" },
55
+ { name = "chardet" },
55
56
  { name = "charset-normalizer" },
56
57
  { name = "configargparse" },
57
58
  { name = "cryptography" },
@@ -114,6 +115,7 @@ dev = [
114
115
  [package.metadata]
115
116
  requires-dist = [
116
117
  { name = "bitstring", specifier = ">=4.3.0" },
118
+ { name = "chardet", specifier = ">=5.2.0" },
117
119
  { name = "charset-normalizer", specifier = ">=2.0.0" },
118
120
  { name = "configargparse", specifier = ">=1.7" },
119
121
  { name = "cryptography", specifier = ">=36.0.0" },
@@ -368,6 +370,15 @@ wheels = [
368
370
  { url = "https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl", hash = "sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9", size = 7249, upload-time = "2023-08-12T20:38:16.269Z" },
369
371
  ]
370
372
 
373
+ [[package]]
374
+ name = "chardet"
375
+ version = "5.2.0"
376
+ source = { registry = "https://pypi.org/simple" }
377
+ sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618, upload-time = "2023-08-01T19:23:02.662Z" }
378
+ wheels = [
379
+ { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385, upload-time = "2023-08-01T19:23:00.661Z" },
380
+ ]
381
+
371
382
  [[package]]
372
383
  name = "charset-normalizer"
373
384
  version = "3.4.2"
@@ -1 +0,0 @@
1
- __version__ = "0.4.6"
File without changes
File without changes
File without changes
File without changes
File without changes