BabelDOC 0.2.27__tar.gz → 0.2.29__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 (97) hide show
  1. {babeldoc-0.2.27 → babeldoc-0.2.29}/PKG-INFO +1 -1
  2. babeldoc-0.2.29/babeldoc/__init__.py +1 -0
  3. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/const.py +1 -1
  4. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/midend/il_translator.py +9 -4
  5. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/midend/il_translator_llm_only.py +4 -1
  6. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/midend/styles_and_formulas.py +4 -0
  7. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/high_level.py +3 -0
  8. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/main.py +1 -1
  9. {babeldoc-0.2.27 → babeldoc-0.2.29}/pyproject.toml +2 -2
  10. {babeldoc-0.2.27 → babeldoc-0.2.29}/uv.lock +1 -1
  11. babeldoc-0.2.27/babeldoc/__init__.py +0 -1
  12. {babeldoc-0.2.27 → babeldoc-0.2.29}/.cursorignore +0 -0
  13. {babeldoc-0.2.27 → babeldoc-0.2.29}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  14. {babeldoc-0.2.27 → babeldoc-0.2.29}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  15. {babeldoc-0.2.27 → babeldoc-0.2.29}/.github/dependabot.yml +0 -0
  16. {babeldoc-0.2.27 → babeldoc-0.2.29}/.github/labels.yml +0 -0
  17. {babeldoc-0.2.27 → babeldoc-0.2.29}/.github/release-drafter.yml +0 -0
  18. {babeldoc-0.2.27 → babeldoc-0.2.29}/.github/workflows/codeql.yml +0 -0
  19. {babeldoc-0.2.27 → babeldoc-0.2.29}/.github/workflows/docs.yml +0 -0
  20. {babeldoc-0.2.27 → babeldoc-0.2.29}/.github/workflows/labeler.yml +0 -0
  21. {babeldoc-0.2.27 → babeldoc-0.2.29}/.github/workflows/publish-to-pypi.yml +0 -0
  22. {babeldoc-0.2.27 → babeldoc-0.2.29}/.github/workflows/test.yml +0 -0
  23. {babeldoc-0.2.27 → babeldoc-0.2.29}/.gitignore +0 -0
  24. {babeldoc-0.2.27 → babeldoc-0.2.29}/.pre-commit-config.yaml +0 -0
  25. {babeldoc-0.2.27 → babeldoc-0.2.29}/LICENSE +0 -0
  26. {babeldoc-0.2.27 → babeldoc-0.2.29}/README.md +0 -0
  27. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/assets/assets.py +0 -0
  28. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/assets/embedding_assets_metadata.py +0 -0
  29. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/asynchronize/__init__.py +0 -0
  30. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/converter.py +0 -0
  31. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/__init__.py +0 -0
  32. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/babeldoc_exception/BabelDOCException.py +0 -0
  33. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/backend/__init__.py +0 -0
  34. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/backend/pdf_creater.py +0 -0
  35. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/frontend/__init__.py +0 -0
  36. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/frontend/il_creater.py +0 -0
  37. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/il_version_1.py +0 -0
  38. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/il_version_1.rnc +0 -0
  39. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/il_version_1.rng +0 -0
  40. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/il_version_1.xsd +0 -0
  41. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/midend/__init__.py +0 -0
  42. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/midend/add_debug_information.py +0 -0
  43. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/midend/detect_scanned_file.py +0 -0
  44. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/midend/layout_parser.py +0 -0
  45. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/midend/paragraph_finder.py +0 -0
  46. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/midend/remove_descent.py +0 -0
  47. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/midend/table_parser.py +0 -0
  48. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/midend/typesetting.py +0 -0
  49. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/translator/__init__.py +0 -0
  50. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/translator/cache.py +0 -0
  51. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/translator/translator.py +0 -0
  52. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/utils/atomic_integer.py +0 -0
  53. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/utils/fontmap.py +0 -0
  54. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/utils/layout_helper.py +0 -0
  55. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/utils/priority_thread_pool_executor.py +0 -0
  56. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/utils/style_helper.py +0 -0
  57. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/document_il/xml_converter.py +0 -0
  58. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/docvision/README.md +0 -0
  59. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/docvision/__init__.py +0 -0
  60. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/docvision/doclayout.py +0 -0
  61. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/docvision/rpc_doclayout.py +0 -0
  62. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/docvision/table_detection/rapidocr.py +0 -0
  63. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/pdfinterp.py +0 -0
  64. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/progress_monitor.py +0 -0
  65. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/result_merger.py +0 -0
  66. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/split_manager.py +0 -0
  67. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/tools/generate_font_metadata.py +0 -0
  68. {babeldoc-0.2.27 → babeldoc-0.2.29}/babeldoc/translation_config.py +0 -0
  69. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/CODE_OF_CONDUCT.md +0 -0
  70. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/CONTRIBUTING.md +0 -0
  71. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/CONTRIBUTOR_REWARD.md +0 -0
  72. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
  73. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
  74. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
  75. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
  76. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
  77. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/ImplementationDetails/README.md +0 -0
  78. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
  79. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
  80. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/README.md +0 -0
  81. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/deploy.sh +0 -0
  82. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/images/babeldoc-banner.png +0 -0
  83. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.png +0 -0
  84. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.svg +0 -0
  85. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/images/babeldoc-big-logo-with-transparent-background.png +0 -0
  86. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/images/babeldoc-big-logo-with-transparent-background.svg +0 -0
  87. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/images/babeldoc-big-logo.png +0 -0
  88. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/images/babeldoc-contributor_reward_example.png +0 -0
  89. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/images/babeldoc-preview.gif +0 -0
  90. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/images/babeldoc-small-logo-with-transparent-background.png +0 -0
  91. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/images/babeldoc-small-logo-with-transparent-background.svg +0 -0
  92. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/images/babeldoc-small-logo.png +0 -0
  93. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/index.md +0 -0
  94. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/intro-to-pdf-object.md +0 -0
  95. {babeldoc-0.2.27 → babeldoc-0.2.29}/docs/requirements.txt +0 -0
  96. {babeldoc-0.2.27 → babeldoc-0.2.29}/mkdocs.yml +0 -0
  97. {babeldoc-0.2.27 → babeldoc-0.2.29}/tests/test_translation_config.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BabelDOC
3
- Version: 0.2.27
3
+ Version: 0.2.29
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
@@ -0,0 +1 @@
1
+ __version__ = "0.2.29"
@@ -3,7 +3,7 @@ import shutil
3
3
  import subprocess
4
4
  from pathlib import Path
5
5
 
6
- __version__ = "0.2.27"
6
+ __version__ = "0.2.29"
7
7
 
8
8
  CACHE_FOLDER = Path.home() / ".cache" / "babeldoc"
9
9
 
@@ -1,4 +1,3 @@
1
- import concurrent.futures
2
1
  import json
3
2
  import logging
4
3
  import re
@@ -22,6 +21,9 @@ from babeldoc.document_il.utils.layout_helper import get_char_unicode_string
22
21
  from babeldoc.document_il.utils.layout_helper import is_same_style
23
22
  from babeldoc.document_il.utils.layout_helper import is_same_style_except_font
24
23
  from babeldoc.document_il.utils.layout_helper import is_same_style_except_size
24
+ from babeldoc.document_il.utils.priority_thread_pool_executor import (
25
+ PriorityThreadPoolExecutor,
26
+ )
25
27
  from babeldoc.translation_config import TranslationConfig
26
28
 
27
29
  logger = logging.getLogger(__name__)
@@ -132,7 +134,10 @@ class ILTranslator:
132
134
  self.tokenizer = tokenizer
133
135
 
134
136
  def calc_token_count(self, text: str) -> int:
135
- return len(self.tokenizer.encode(text, disallowed_special=()))
137
+ try:
138
+ return len(self.tokenizer.encode(text, disallowed_special=()))
139
+ except Exception:
140
+ return 0
136
141
 
137
142
  def translate(self, docs: Document):
138
143
  tracker = DocumentTranslateTracker()
@@ -142,7 +147,7 @@ class ILTranslator:
142
147
  self.stage_name,
143
148
  total,
144
149
  ) as pbar:
145
- with concurrent.futures.ThreadPoolExecutor(
150
+ with PriorityThreadPoolExecutor(
146
151
  max_workers=min(
147
152
  self.translation_config.qps * 2,
148
153
  self.translation_config.qps + 5,
@@ -161,7 +166,7 @@ class ILTranslator:
161
166
  def process_page(
162
167
  self,
163
168
  page: Page,
164
- executor: concurrent.futures.ThreadPoolExecutor,
169
+ executor: PriorityThreadPoolExecutor,
165
170
  pbar: tqdm | None = None,
166
171
  tracker: PageTranslateTracker = None,
167
172
  ):
@@ -65,7 +65,10 @@ class ILTranslatorLLMOnly:
65
65
  raise ValueError("LLM translator not supported") from e
66
66
 
67
67
  def calc_token_count(self, text: str) -> int:
68
- return len(self.tokenizer.encode(text, disallowed_special=()))
68
+ try:
69
+ return len(self.tokenizer.encode(text, disallowed_special=()))
70
+ except Exception:
71
+ return 0
69
72
 
70
73
  def find_title_paragraph(self, docs: Document) -> PdfParagraph | None:
71
74
  """Find the first paragraph with layout_label 'title' in the document.
@@ -534,6 +534,10 @@ class StylesAndFormulas:
534
534
  r"|Arial.*"
535
535
  r"|TimesNewRoman.*"
536
536
  r"|SegoeUI.*"
537
+ r"|CMTT9.*"
538
+ r"|CMSL10.*"
539
+ r"|CMTI10.*"
540
+ r"|CMTT10.*"
537
541
  r")$"
538
542
  )
539
543
  if self.translation_config.formular_font_pattern:
@@ -366,6 +366,9 @@ def fix_null_xref(doc: Document) -> None:
366
366
  obj = doc.xref_object(i)
367
367
  if obj == "null":
368
368
  doc.update_object(i, "[]")
369
+ elif obj and "/ASCII85Decode" in obj: # make pdfminer happy
370
+ data = doc.xref_stream(i)
371
+ doc.update_stream(i, data)
369
372
  except Exception:
370
373
  doc.update_object(i, "[]")
371
374
 
@@ -23,7 +23,7 @@ from babeldoc.translation_config import TranslationConfig
23
23
  from babeldoc.translation_config import WatermarkOutputMode
24
24
 
25
25
  logger = logging.getLogger(__name__)
26
- __version__ = "0.2.27"
26
+ __version__ = "0.2.29"
27
27
 
28
28
 
29
29
  def create_parser():
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "BabelDOC"
3
- version = "0.2.27"
3
+ version = "0.2.29"
4
4
  description = "Yet Another Document Translator"
5
5
  license = "AGPL-3.0"
6
6
  readme = "README.md"
@@ -148,7 +148,7 @@ pythonpath = [".", "src"]
148
148
  testpaths = ["tests"]
149
149
 
150
150
  [bumpver]
151
- current_version = "0.2.27"
151
+ current_version = "0.2.29"
152
152
  version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
153
153
 
154
154
  [bumpver.file_patterns]
@@ -48,7 +48,7 @@ wheels = [
48
48
 
49
49
  [[package]]
50
50
  name = "babeldoc"
51
- version = "0.2.27"
51
+ version = "0.2.29"
52
52
  source = { editable = "." }
53
53
  dependencies = [
54
54
  { name = "bitstring" },
@@ -1 +0,0 @@
1
- __version__ = "0.2.27"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes