BabelDOC 0.1.20__tar.gz → 0.1.22__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 (80) hide show
  1. {babeldoc-0.1.20 → babeldoc-0.1.22}/PKG-INFO +1 -1
  2. babeldoc-0.1.22/babeldoc/__init__.py +1 -0
  3. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/assets/assets.py +1 -4
  4. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/assets/embedding_assets_metadata.py +4 -1
  5. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/const.py +1 -1
  6. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/utils/fontmap.py +9 -4
  7. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/main.py +1 -1
  8. {babeldoc-0.1.20 → babeldoc-0.1.22}/pyproject.toml +2 -2
  9. {babeldoc-0.1.20 → babeldoc-0.1.22}/uv.lock +1 -1
  10. babeldoc-0.1.20/babeldoc/__init__.py +0 -1
  11. {babeldoc-0.1.20 → babeldoc-0.1.22}/.cursorignore +0 -0
  12. {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  13. {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  14. {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/dependabot.yml +0 -0
  15. {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/labels.yml +0 -0
  16. {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/release-drafter.yml +0 -0
  17. {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/workflows/codeql.yml +0 -0
  18. {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/workflows/docs.yml +0 -0
  19. {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/workflows/labeler.yml +0 -0
  20. {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/workflows/publish-to-pypi.yml +0 -0
  21. {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/workflows/test.yml +0 -0
  22. {babeldoc-0.1.20 → babeldoc-0.1.22}/.gitignore +0 -0
  23. {babeldoc-0.1.20 → babeldoc-0.1.22}/.pre-commit-config.yaml +0 -0
  24. {babeldoc-0.1.20 → babeldoc-0.1.22}/LICENSE +0 -0
  25. {babeldoc-0.1.20 → babeldoc-0.1.22}/README.md +0 -0
  26. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/asynchronize/__init__.py +0 -0
  27. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/converter.py +0 -0
  28. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/__init__.py +0 -0
  29. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/backend/__init__.py +0 -0
  30. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/backend/pdf_creater.py +0 -0
  31. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/frontend/__init__.py +0 -0
  32. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/frontend/il_creater.py +0 -0
  33. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/il_version_1.py +0 -0
  34. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/il_version_1.rnc +0 -0
  35. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/il_version_1.rng +0 -0
  36. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/il_version_1.xsd +0 -0
  37. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/__init__.py +0 -0
  38. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/add_debug_information.py +0 -0
  39. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/il_translator.py +0 -0
  40. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/layout_parser.py +0 -0
  41. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/paragraph_finder.py +0 -0
  42. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/remove_descent.py +0 -0
  43. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/styles_and_formulas.py +0 -0
  44. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/typesetting.py +0 -0
  45. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/translator/__init__.py +0 -0
  46. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/translator/cache.py +0 -0
  47. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/translator/translator.py +0 -0
  48. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/utils/layout_helper.py +0 -0
  49. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/utils/style_helper.py +0 -0
  50. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/xml_converter.py +0 -0
  51. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/docvision/README.md +0 -0
  52. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/docvision/__init__.py +0 -0
  53. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/docvision/doclayout.py +0 -0
  54. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/docvision/rpc_doclayout.py +0 -0
  55. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/high_level.py +0 -0
  56. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/pdfinterp.py +0 -0
  57. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/progress_monitor.py +0 -0
  58. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/tools/generate_font_metadata.py +0 -0
  59. {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/translation_config.py +0 -0
  60. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/CODE_OF_CONDUCT.md +0 -0
  61. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/CONTRIBUTING.md +0 -0
  62. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/CONTRIBUTOR_REWARD.md +0 -0
  63. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
  64. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
  65. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
  66. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
  67. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
  68. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/README.md +0 -0
  69. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
  70. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
  71. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/README.md +0 -0
  72. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/deploy.sh +0 -0
  73. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/images/babeldoc-banner.png +0 -0
  74. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/images/babeldoc-contributor_reward_example.png +0 -0
  75. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/images/babeldoc-preview.gif +0 -0
  76. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/index.md +0 -0
  77. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/intro-to-pdf-object.md +0 -0
  78. {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/requirements.txt +0 -0
  79. {babeldoc-0.1.20 → babeldoc-0.1.22}/mkdocs.yml +0 -0
  80. {babeldoc-0.1.20 → babeldoc-0.1.22}/tests/test_translation_config.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BabelDOC
3
- Version: 0.1.20
3
+ Version: 0.1.22
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.1.22"
@@ -43,10 +43,7 @@ def run_in_another_thread(coro):
43
43
 
44
44
 
45
45
  def run_coro(coro):
46
- try:
47
- return asyncio.run(coro)
48
- except RuntimeError:
49
- return run_in_another_thread(coro)
46
+ return run_in_another_thread(coro)
50
47
 
51
48
 
52
49
  def _retry_if_not_cancelled_and_failed(retry_state):
@@ -370,6 +370,7 @@ CN_FONT_FAMILY = {
370
370
  "GoNotoKurrent-Regular.ttf",
371
371
  "GoNotoKurrent-Bold.ttf",
372
372
  ],
373
+ "base": ["SourceHanSansCN-Regular.ttf"],
373
374
  }
374
375
 
375
376
  HK_FONT_FAMILY = {
@@ -388,6 +389,7 @@ HK_FONT_FAMILY = {
388
389
  "GoNotoKurrent-Regular.ttf",
389
390
  "GoNotoKurrent-Bold.ttf",
390
391
  ],
392
+ "base": ["SourceHanSansCN-Regular.ttf"],
391
393
  }
392
394
 
393
395
  TW_FONT_FAMILY = {
@@ -406,6 +408,7 @@ TW_FONT_FAMILY = {
406
408
  "GoNotoKurrent-Regular.ttf",
407
409
  "GoNotoKurrent-Bold.ttf",
408
410
  ],
411
+ "base": ["SourceHanSansCN-Regular.ttf"],
409
412
  }
410
413
 
411
414
  ALL_FONT_FAMILY = {
@@ -431,7 +434,7 @@ def verify_font_family(font_family: str | dict):
431
434
  if isinstance(font_family, str):
432
435
  font_family = ALL_FONT_FAMILY[font_family]
433
436
  for k in font_family:
434
- if k not in ["script", "normal", "fallback"]:
437
+ if k not in ["script", "normal", "fallback", "base"]:
435
438
  raise ValueError(f"Invalid font family: {font_family}")
436
439
  for font_file_name in font_family[k]:
437
440
  if font_file_name not in EMBEDDING_FONT_METADATA:
@@ -2,7 +2,7 @@ import shutil
2
2
  import subprocess
3
3
  from pathlib import Path
4
4
 
5
- __version__ = "0.1.20"
5
+ __version__ = "0.1.22"
6
6
 
7
7
  CACHE_FOLDER = Path.home() / ".cache" / "babeldoc"
8
8
 
@@ -23,6 +23,7 @@ class FontMapper:
23
23
  "normal",
24
24
  "script",
25
25
  "fallback",
26
+ "base",
26
27
  ):
27
28
  self.font_file_names.extend(font_family[k])
28
29
 
@@ -35,6 +36,7 @@ class FontMapper:
35
36
  self.fonts[font_file_name] = pymupdf.Font(fontfile=str(font_path))
36
37
  self.fontid2fontpath[font_file_name] = font_path
37
38
  self.fonts[font_file_name].font_id = font_file_name
39
+ self.fonts[font_file_name].font_path = font_path
38
40
  self.fonts[font_file_name].ascent_fontmap = font_metadata["ascent"]
39
41
  self.fonts[font_file_name].descent_fontmap = font_metadata["descent"]
40
42
  self.fonts[font_file_name].encoding_length = font_metadata[
@@ -44,8 +46,8 @@ class FontMapper:
44
46
  self.normal_font_ids: list[str] = font_family["normal"]
45
47
  self.script_font_ids: list[str] = font_family["script"]
46
48
  self.fallback_font_ids: list[str] = font_family["fallback"]
47
-
48
- self.fontid2fontpath["base"] = self.fontid2fontpath[self.normal_font_ids[0]]
49
+ self.base_font_ids: list[str] = font_family["base"]
50
+ self.fontid2fontpath["base"] = self.fontid2fontpath[font_family["base"][0]]
49
51
 
50
52
  self.fontid2font: dict[str, pymupdf.Font] = {
51
53
  f.font_id: f for f in self.fonts.values()
@@ -56,7 +58,7 @@ class FontMapper:
56
58
  font.char_lengths,
57
59
  )
58
60
 
59
- self.fontid2font["base"] = self.fontid2font[self.normal_font_ids[0]]
61
+ self.fontid2font["base"] = self.fontid2font[self.base_font_ids[0]]
60
62
 
61
63
  self.normal_fonts: list[pymupdf.Font] = [
62
64
  self.fontid2font[font_id] for font_id in self.normal_font_ids
@@ -68,12 +70,13 @@ class FontMapper:
68
70
  self.fontid2font[font_id] for font_id in self.fallback_font_ids
69
71
  ]
70
72
 
71
- self.base_font = self.normal_fonts[0]
73
+ self.base_font = self.fontid2font["base"]
72
74
 
73
75
  self.type2font: dict[str, list[pymupdf.Font]] = {
74
76
  "normal": self.normal_fonts,
75
77
  "script": self.script_fonts,
76
78
  "fallback": self.fallback_fonts,
79
+ "base": [self.base_font],
77
80
  }
78
81
 
79
82
  self.has_char = functools.lru_cache(maxsize=10240, typed=True)(self.has_char)
@@ -167,6 +170,8 @@ class FontMapper:
167
170
  xreflen - 1 + len(font_list) + len(il.page) + len(font_list),
168
171
  ) as pbar:
169
172
  for font in font_list:
173
+ if font[0] in font_id:
174
+ continue
170
175
  font_id[font[0]] = doc_zh[0].insert_font(font[0], font[1])
171
176
  pbar.advance(1)
172
177
  for xref in range(1, xreflen):
@@ -23,7 +23,7 @@ from babeldoc.docvision.rpc_doclayout import RpcDocLayoutModel
23
23
  from babeldoc.translation_config import TranslationConfig
24
24
 
25
25
  logger = logging.getLogger(__name__)
26
- __version__ = "0.1.20"
26
+ __version__ = "0.1.22"
27
27
 
28
28
 
29
29
  def create_parser():
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "BabelDOC"
3
- version = "0.1.20"
3
+ version = "0.1.22"
4
4
  description = "Yet Another Document Translator"
5
5
  license = "AGPL-3.0"
6
6
  readme = "README.md"
@@ -132,7 +132,7 @@ pythonpath = [".", "src"]
132
132
  testpaths = ["tests"]
133
133
 
134
134
  [bumpver]
135
- current_version = "0.1.20"
135
+ current_version = "0.1.22"
136
136
  version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
137
137
 
138
138
  [bumpver.file_patterns]
@@ -48,7 +48,7 @@ wheels = [
48
48
 
49
49
  [[package]]
50
50
  name = "babeldoc"
51
- version = "0.1.20"
51
+ version = "0.1.22"
52
52
  source = { editable = "." }
53
53
  dependencies = [
54
54
  { name = "bitstring" },
@@ -1 +0,0 @@
1
- __version__ = "0.1.20"
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