BabelDOC 0.3.27__tar.gz → 0.3.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 (104) hide show
  1. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/ISSUE_TEMPLATE/bug_report.yaml +4 -0
  2. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/PULL_REQUEST_TEMPLATE/pr_form.yml +1 -1
  3. {babeldoc-0.3.27 → babeldoc-0.3.29}/PKG-INFO +5 -1
  4. {babeldoc-0.3.27 → babeldoc-0.3.29}/README.md +4 -0
  5. babeldoc-0.3.29/babeldoc/__init__.py +1 -0
  6. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/const.py +1 -1
  7. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/midend/styles_and_formulas.py +2 -0
  8. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/midend/typesetting.py +54 -2
  9. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/high_level.py +11 -1
  10. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/main.py +1 -1
  11. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/CONTRIBUTING.md +2 -0
  12. {babeldoc-0.3.27 → babeldoc-0.3.29}/pyproject.toml +2 -2
  13. {babeldoc-0.3.27 → babeldoc-0.3.29}/uv.lock +1224 -1224
  14. babeldoc-0.3.27/babeldoc/__init__.py +0 -1
  15. {babeldoc-0.3.27 → babeldoc-0.3.29}/.cursorignore +0 -0
  16. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  17. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/dependabot.yml +0 -0
  18. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/labels.yml +0 -0
  19. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/release-drafter.yml +0 -0
  20. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/workflows/codeql.yml +0 -0
  21. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/workflows/docs.yml +0 -0
  22. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/workflows/labeler.yml +0 -0
  23. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/workflows/lint.yml +0 -0
  24. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/workflows/pr-lint.yml +0 -0
  25. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/workflows/publish-to-pypi.yml +0 -0
  26. {babeldoc-0.3.27 → babeldoc-0.3.29}/.github/workflows/test.yml +0 -0
  27. {babeldoc-0.3.27 → babeldoc-0.3.29}/.gitignore +0 -0
  28. {babeldoc-0.3.27 → babeldoc-0.3.29}/.pre-commit-config.yaml +0 -0
  29. {babeldoc-0.3.27 → babeldoc-0.3.29}/LICENSE +0 -0
  30. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/assets/assets.py +0 -0
  31. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/assets/embedding_assets_metadata.py +0 -0
  32. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/asynchronize/__init__.py +0 -0
  33. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/converter.py +0 -0
  34. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/__init__.py +0 -0
  35. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/babeldoc_exception/BabelDOCException.py +0 -0
  36. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/backend/__init__.py +0 -0
  37. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/backend/pdf_creater.py +0 -0
  38. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/frontend/__init__.py +0 -0
  39. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/frontend/il_creater.py +0 -0
  40. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/il_version_1.py +0 -0
  41. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/il_version_1.rnc +0 -0
  42. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/il_version_1.rng +0 -0
  43. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/il_version_1.xsd +0 -0
  44. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/midend/__init__.py +0 -0
  45. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/midend/add_debug_information.py +0 -0
  46. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/midend/detect_scanned_file.py +0 -0
  47. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/midend/il_translator.py +0 -0
  48. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/midend/il_translator_llm_only.py +0 -0
  49. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/midend/layout_parser.py +0 -0
  50. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/midend/paragraph_finder.py +0 -0
  51. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/midend/remove_descent.py +0 -0
  52. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/midend/table_parser.py +0 -0
  53. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/translator/__init__.py +0 -0
  54. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/translator/cache.py +0 -0
  55. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/translator/translator.py +0 -0
  56. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/utils/atomic_integer.py +0 -0
  57. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/utils/fontmap.py +0 -0
  58. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/utils/layout_helper.py +0 -0
  59. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/utils/priority_thread_pool_executor.py +0 -0
  60. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/utils/style_helper.py +0 -0
  61. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/utils/zstd_helper.py +0 -0
  62. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/document_il/xml_converter.py +0 -0
  63. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/docvision/README.md +0 -0
  64. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/docvision/__init__.py +0 -0
  65. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/docvision/doclayout.py +0 -0
  66. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/docvision/rpc_doclayout.py +0 -0
  67. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/docvision/table_detection/rapidocr.py +0 -0
  68. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/format/office/__init__.py +0 -0
  69. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/pdfinterp.py +0 -0
  70. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/progress_monitor.py +0 -0
  71. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/result_merger.py +0 -0
  72. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/split_manager.py +0 -0
  73. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/tools/generate_font_metadata.py +0 -0
  74. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/tools/italic_assistance.py +0 -0
  75. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/tools/italic_recognize_tool.py +0 -0
  76. {babeldoc-0.3.27 → babeldoc-0.3.29}/babeldoc/translation_config.py +0 -0
  77. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/CODE_OF_CONDUCT.md +0 -0
  78. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/CONTRIBUTOR_REWARD.md +0 -0
  79. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/ImplementationDetails/AsyncTranslate/AsyncTranslate.md +0 -0
  80. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/ImplementationDetails/ILTranslator/ILTranslator.md +0 -0
  81. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/ImplementationDetails/PDFCreation/PDFCreation.md +0 -0
  82. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/ImplementationDetails/PDFParsing/PDFParsing.md +0 -0
  83. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/ImplementationDetails/ParagraphFinding/ParagraphFinding.md +0 -0
  84. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/ImplementationDetails/README.md +0 -0
  85. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/ImplementationDetails/StylesAndFormulas/StylesAndFormulas.md +0 -0
  86. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/ImplementationDetails/Typesetting/Typesetting.md +0 -0
  87. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/README.md +0 -0
  88. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/deploy.sh +0 -0
  89. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/images/babeldoc-banner.png +0 -0
  90. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.png +0 -0
  91. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/images/babeldoc-big-logo-darkmode-with-transparent-background.svg +0 -0
  92. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/images/babeldoc-big-logo-with-transparent-background.png +0 -0
  93. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/images/babeldoc-big-logo-with-transparent-background.svg +0 -0
  94. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/images/babeldoc-big-logo.png +0 -0
  95. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/images/babeldoc-contributor_reward_example.png +0 -0
  96. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/images/babeldoc-preview.gif +0 -0
  97. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/images/babeldoc-small-logo-with-transparent-background.png +0 -0
  98. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/images/babeldoc-small-logo-with-transparent-background.svg +0 -0
  99. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/images/babeldoc-small-logo.png +0 -0
  100. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/index.md +0 -0
  101. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/intro-to-pdf-object.md +0 -0
  102. {babeldoc-0.3.27 → babeldoc-0.3.29}/docs/requirements.txt +0 -0
  103. {babeldoc-0.3.27 → babeldoc-0.3.29}/mkdocs.yml +0 -0
  104. {babeldoc-0.3.27 → babeldoc-0.3.29}/tests/test_translation_config.py +0 -0
@@ -13,6 +13,10 @@ body:
13
13
  required: true
14
14
  - label: I confirmed this is not caused by a network issue
15
15
  required: true
16
+ - label: I have fully read and understood the [README](https://github.com/funstory-ai/BabelDOC/blob/main/README.md)
17
+ required: true
18
+ - label: I am certain that this issue is with BabelDOC itself and can be reproduced through the BabelDOC cli
19
+ required: true
16
20
 
17
21
  - type: markdown
18
22
  attributes:
@@ -52,7 +52,7 @@ body:
52
52
  attributes:
53
53
  label: Contributor Checklist
54
54
  options:
55
- - label: I’ve read the **CONTRIBUTING.md** guide
55
+ - label: I’ve fully read and understood the **[CONTRIBUTING.md](https://funstory-ai.github.io/BabelDOC/CONTRIBUTING/)** guide
56
56
  required: true
57
57
  - label: My changes follow the project’s code style and guidelines
58
58
  required: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: BabelDOC
3
- Version: 0.3.27
3
+ Version: 0.3.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
@@ -306,6 +306,10 @@ report-interval = 0.5
306
306
  > 1. Before pdf2zh 2.0 is released, you can temporarily use BabelDOC's Python API. However, after pdf2zh 2.0 is released, please directly use pdf2zh's Python API.
307
307
  >
308
308
  > 2. This project's Python API does not guarantee any compatibility. However, the Python API from pdf2zh will guarantee a certain level of compatibility.
309
+ >
310
+ > 3. We do not provide any technical support for the BabelDOC API.
311
+ >
312
+ > 4. When performing secondary development, please refer to [pdf2zh 2.0 high level](https://github.com/awwaawwa/PDFMathTranslate/blob/v2-rc/pdf2zh/high_level.py) and ensure that BabelDOC runs in a subprocess.
309
313
 
310
314
  You can refer to the example in [main.py](https://github.com/funstory-ai/yadt/blob/main/babeldoc/main.py) to use BabelDOC's Python API.
311
315
 
@@ -257,6 +257,10 @@ report-interval = 0.5
257
257
  > 1. Before pdf2zh 2.0 is released, you can temporarily use BabelDOC's Python API. However, after pdf2zh 2.0 is released, please directly use pdf2zh's Python API.
258
258
  >
259
259
  > 2. This project's Python API does not guarantee any compatibility. However, the Python API from pdf2zh will guarantee a certain level of compatibility.
260
+ >
261
+ > 3. We do not provide any technical support for the BabelDOC API.
262
+ >
263
+ > 4. When performing secondary development, please refer to [pdf2zh 2.0 high level](https://github.com/awwaawwa/PDFMathTranslate/blob/v2-rc/pdf2zh/high_level.py) and ensure that BabelDOC runs in a subprocess.
260
264
 
261
265
  You can refer to the example in [main.py](https://github.com/funstory-ai/yadt/blob/main/babeldoc/main.py) to use BabelDOC's Python API.
262
266
 
@@ -0,0 +1 @@
1
+ __version__ = "0.3.29"
@@ -3,7 +3,7 @@ import shutil
3
3
  import subprocess
4
4
  from pathlib import Path
5
5
 
6
- __version__ = "0.3.27"
6
+ __version__ = "0.3.29"
7
7
 
8
8
  CACHE_FOLDER = Path.home() / ".cache" / "babeldoc"
9
9
 
@@ -586,6 +586,7 @@ class StylesAndFormulas:
586
586
  r"|.*SabonLTPro.*"
587
587
  r"|.*ArnoPro.*"
588
588
  r"|.*CharisSIL.*"
589
+ r"|.*MSReference.*"
589
590
  r"|.*CMUSerif-Roman.*"
590
591
  r"|.*CourierNewPS.*"
591
592
  r"|.*XCharter.*"
@@ -604,6 +605,7 @@ class StylesAndFormulas:
604
605
  r"|.*Macmillan.*"
605
606
  r"|.*NimbusSan.*"
606
607
  r"|.*Mincho.*"
608
+ r"|.*Amerigo.*"
607
609
  r")$"
608
610
  )
609
611
  precise_formula_font_pattern = (
@@ -111,8 +111,36 @@ class TypesettingUnit:
111
111
  r"\uAB30-\uAB6F" # Latin Extended E
112
112
  r"\u0250-\u02A0" # IPA Extensions
113
113
  r"\u0400-\u04FF" # Cyrillic
114
+ r"\u0300-\u036F" # Combining Diacritical Marks
115
+ r"\u0500-\u052F" # Cyrillic Supplement
116
+ r"\u0370-\u03FF" # Greek and Coptic
117
+ r"\u2DE0-\u2DFF" # Cyrillic Extended-A
118
+ r"\uA650-\uA69F" # Cyrillic Extended-B
119
+ r"\u1200-\u137F" # Ethiopic
120
+ r"\u1380-\u139F" # Ethiopic Supplement
121
+ r"\u2D80-\u2DDF" # Ethiopic Extended
122
+ r"\uAB00-\uAB2F" # Ethiopic Extended-A
123
+ r"\U0001E7E0-\U0001E7FF" # Ethiopic Extended-B
124
+ r"\u0E80-\u0EFF" # Lao
125
+ r"\u0D00-\u0D7F" # Malayalam
126
+ r"\u0A80-\u0AFF" # Gujarati
127
+ r"\u0E00-\u0E7F" # Thai
128
+ r"\u1000-\u109F" # Myanmar
129
+ r"\uAA60-\uAA7F" # Myanmar Extended-A
130
+ r"\uA9E0-\uA9FF" # Myanmar Extended-B
131
+ r"\U000116D0-\U000116FF" # Myanmar Extended-C
132
+ r"\u0B80-\u0BFF" # Tamil
133
+ r"\u0C00-\u0C7F" # Telugu
134
+ r"\u0B00-\u0B7F" # Oriya
135
+ r"\u0530-\u058F" # Armenian
136
+ r"\u10A0-\u10FF" # Georgian
137
+ r"\u1C90-\u1CBF" # Georgian Extended
138
+ r"\u2D00-\u2D2F" # Georgian Supplement
139
+ r"\u1780-\u17FF" # Khmer
140
+ r"\u19E0-\u19FF" # Khmer Symbols
114
141
  r"'"
115
142
  r"-" # Hyphen
143
+ r"·" # Middle Dot (U+00B7) For Català
116
144
  r"]+$",
117
145
  unicode,
118
146
  ):
@@ -120,7 +148,7 @@ class TypesettingUnit:
120
148
  return True
121
149
 
122
150
  @property
123
- def is_chinese_char(self):
151
+ def is_cjk_char(self):
124
152
  if self.formular:
125
153
  return False
126
154
  unicode = self.try_get_unicode()
@@ -157,6 +185,30 @@ class TypesettingUnit:
157
185
  ]:
158
186
  return True
159
187
  if unicode:
188
+ if re.match(
189
+ r"^["
190
+ r"\u3000-\u303f" # CJK Symbols and Punctuation
191
+ r"\u3040-\u309f" # Hiragana
192
+ r"\u30a0-\u30ff" # Katakana
193
+ r"\u3100-\u312f" # Bopomofo
194
+ r"\uac00-\ud7af" # Hangul Syllables
195
+ r"\u1100-\u11ff" # Hangul Jamo
196
+ r"\u3130-\u318f" # Hangul Compatibility Jamo
197
+ r"\ua960-\ua97f" # Hangul Jamo Extended-A
198
+ r"\ud7b0-\ud7ff" # Hangul Jamo Extended-B
199
+ r"\u3190-\u319f" # Kanbun
200
+ r"\u3200-\u32ff" # Enclosed CJK Letters and Months
201
+ r"\u3300-\u33ff" # CJK Compatibility
202
+ r"\ufe30-\ufe4f" # CJK Compatibility Forms
203
+ r"\u4e00-\u9fff" # CJK Unified Ideographs
204
+ r"\u2e80-\u2eff" # CJK Radicals Supplement
205
+ r"\u31c0-\u31ef" # CJK Strokes
206
+ r"\u2f00-\u2fdf" # Kangxi Radicals
207
+ r"\ufe10-\ufe1f" # Vertical Forms
208
+ r"]+$",
209
+ unicode,
210
+ ):
211
+ return True
160
212
  try:
161
213
  unicodedata_name = unicodedata.name(unicode)
162
214
  return (
@@ -668,7 +720,7 @@ class Typesetting:
668
720
 
669
721
  if (
670
722
  last_unit # 有上一个单元
671
- and last_unit.is_chinese_char ^ unit.is_chinese_char # 中英文交界处
723
+ and last_unit.is_cjk_char ^ unit.is_cjk_char # 中英文交界处
672
724
  and (
673
725
  last_unit.box
674
726
  and last_unit.box.y
@@ -479,13 +479,23 @@ def do_translate(
479
479
  part_config.input_file = part_temp_input_path
480
480
 
481
481
  temp_doc = Document()
482
+ for x in range(
483
+ split_point.start_page, split_point.end_page + 1
484
+ ):
485
+ xref = original_doc[x].xref
486
+ if (
487
+ original_doc.xref_get_key(xref, "Annots")[0]
488
+ != "null"
489
+ ):
490
+ original_doc.xref_set_key(
491
+ xref, "Annots", "null"
492
+ )
482
493
  temp_doc.insert_pdf(
483
494
  original_doc,
484
495
  from_page=split_point.start_page,
485
496
  to_page=split_point.end_page,
486
497
  )
487
498
  temp_doc.save(part_temp_input_path)
488
-
489
499
  assert (
490
500
  temp_doc.page_count
491
501
  == split_point.end_page - split_point.start_page + 1
@@ -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.3.27"
26
+ __version__ = "0.3.29"
27
27
 
28
28
 
29
29
  def create_parser():
@@ -39,6 +39,8 @@ Please pay special attention to:
39
39
  > You can contact the maintainers in the pdf2zh discussion group.
40
40
  >
41
41
  > Due to the current high rate of code changes, this project only accepts small PRs. If you would like to suggest a change and you include a patch as a proof-of-concept, that would be great. However, please do not be offended if we rewrite your patch from scratch.
42
+ >
43
+ > Please discuss with the maintainers in the [Issue](https://github.com/funstory-ai/BabelDOC/issues) before sending a PR.
42
44
 
43
45
  [//]: # (> We welcome pull requests and will review your contributions.)
44
46
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "BabelDOC"
3
- version = "0.3.27"
3
+ version = "0.3.29"
4
4
  description = "Yet Another Document Translator"
5
5
  license = "AGPL-3.0"
6
6
  readme = "README.md"
@@ -150,7 +150,7 @@ pythonpath = [".", "src"]
150
150
  testpaths = ["tests"]
151
151
 
152
152
  [bumpver]
153
- current_version = "0.3.27"
153
+ current_version = "0.3.29"
154
154
  version_pattern = "MAJOR.MINOR.PATCH[.PYTAGNUM]"
155
155
 
156
156
  [bumpver.file_patterns]