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.
- {babeldoc-0.1.20 → babeldoc-0.1.22}/PKG-INFO +1 -1
- babeldoc-0.1.22/babeldoc/__init__.py +1 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/assets/assets.py +1 -4
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/assets/embedding_assets_metadata.py +4 -1
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/const.py +1 -1
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/utils/fontmap.py +9 -4
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/main.py +1 -1
- {babeldoc-0.1.20 → babeldoc-0.1.22}/pyproject.toml +2 -2
- {babeldoc-0.1.20 → babeldoc-0.1.22}/uv.lock +1 -1
- babeldoc-0.1.20/babeldoc/__init__.py +0 -1
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.cursorignore +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/dependabot.yml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/labels.yml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/release-drafter.yml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/workflows/codeql.yml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/workflows/docs.yml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/workflows/labeler.yml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/workflows/publish-to-pypi.yml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.github/workflows/test.yml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.gitignore +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/.pre-commit-config.yaml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/LICENSE +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/README.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/asynchronize/__init__.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/converter.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/__init__.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/backend/__init__.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/backend/pdf_creater.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/frontend/__init__.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/frontend/il_creater.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/il_version_1.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/il_version_1.rnc +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/il_version_1.rng +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/il_version_1.xsd +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/__init__.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/add_debug_information.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/il_translator.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/layout_parser.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/paragraph_finder.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/remove_descent.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/styles_and_formulas.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/midend/typesetting.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/translator/__init__.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/translator/cache.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/translator/translator.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/utils/layout_helper.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/utils/style_helper.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/document_il/xml_converter.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/docvision/README.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/docvision/__init__.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/docvision/doclayout.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/docvision/rpc_doclayout.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/high_level.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/pdfinterp.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/progress_monitor.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/tools/generate_font_metadata.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/babeldoc/translation_config.py +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/CODE_OF_CONDUCT.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/CONTRIBUTING.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/CONTRIBUTOR_REWARD.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/README.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/README.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/deploy.sh +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/images/babeldoc-banner.png +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/images/babeldoc-contributor_reward_example.png +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/images/babeldoc-preview.gif +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/index.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/intro-to-pdf-object.md +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/docs/requirements.txt +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/mkdocs.yml +0 -0
- {babeldoc-0.1.20 → babeldoc-0.1.22}/tests/test_translation_config.py +0 -0
|
@@ -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
|
-
|
|
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:
|
|
@@ -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[
|
|
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.
|
|
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.
|
|
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):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "BabelDOC"
|
|
3
|
-
version = "0.1.
|
|
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.
|
|
135
|
+
current_version = "0.1.22"
|
|
136
136
|
version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
|
|
137
137
|
|
|
138
138
|
[bumpver.file_patterns]
|
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{babeldoc-0.1.20 → babeldoc-0.1.22}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|