batchalign 0.7.17.post17__tar.gz → 0.7.18b0__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 (121) hide show
  1. {batchalign-0.7.17.post17/batchalign.egg-info → batchalign-0.7.18b0}/PKG-INFO +2 -1
  2. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/chat/generator.py +2 -2
  3. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/__init__.py +1 -1
  4. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/dispatch.py +6 -2
  5. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/translate/__init__.py +1 -0
  6. batchalign-0.7.18b0/batchalign/pipelines/translate/gtrans.py +58 -0
  7. batchalign-0.7.18b0/batchalign/pipelines/translate/utils.py +35 -0
  8. batchalign-0.7.18b0/batchalign/version +3 -0
  9. {batchalign-0.7.17.post17 → batchalign-0.7.18b0/batchalign.egg-info}/PKG-INFO +2 -1
  10. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign.egg-info/SOURCES.txt +2 -0
  11. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign.egg-info/requires.txt +1 -0
  12. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/setup.py +2 -1
  13. batchalign-0.7.17.post17/batchalign/version +0 -3
  14. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/LICENSE +0 -0
  15. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/MANIFEST.in +0 -0
  16. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/README.md +0 -0
  17. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/__init__.py +0 -0
  18. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/__main__.py +0 -0
  19. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/cli/__init__.py +0 -0
  20. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/cli/cli.py +0 -0
  21. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/cli/dispatch.py +0 -0
  22. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/constants.py +0 -0
  23. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/document.py +0 -0
  24. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/errors.py +0 -0
  25. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/__init__.py +0 -0
  26. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/base.py +0 -0
  27. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/chat/__init__.py +0 -0
  28. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/chat/file.py +0 -0
  29. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/chat/lexer.py +0 -0
  30. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/chat/parser.py +0 -0
  31. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/chat/utils.py +0 -0
  32. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/textgrid/__init__.py +0 -0
  33. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/textgrid/file.py +0 -0
  34. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/textgrid/generator.py +0 -0
  35. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/formats/textgrid/parser.py +0 -0
  36. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/__init__.py +0 -0
  37. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/resolve.py +0 -0
  38. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/speaker/__init__.py +0 -0
  39. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/speaker/config.yaml +0 -0
  40. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/speaker/infer.py +0 -0
  41. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/speaker/utils.py +0 -0
  42. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/training/__init__.py +0 -0
  43. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/training/run.py +0 -0
  44. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/training/utils.py +0 -0
  45. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/utils.py +0 -0
  46. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/utterance/__init__.py +0 -0
  47. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/utterance/cantonese_infer.py +0 -0
  48. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/utterance/dataset.py +0 -0
  49. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/utterance/execute.py +0 -0
  50. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/utterance/infer.py +0 -0
  51. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/utterance/prep.py +0 -0
  52. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/utterance/train.py +0 -0
  53. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/wave2vec/__init__.py +0 -0
  54. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/wave2vec/infer_fa.py +0 -0
  55. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/whisper/__init__.py +0 -0
  56. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/whisper/infer_asr.py +0 -0
  57. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/models/whisper/infer_fa.py +0 -0
  58. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/analysis/__init__.py +0 -0
  59. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/analysis/eval.py +0 -0
  60. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/asr/__init__.py +0 -0
  61. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/asr/num2chinese.py +0 -0
  62. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/asr/rev.py +0 -0
  63. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/asr/utils.py +0 -0
  64. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/asr/whisper.py +0 -0
  65. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/asr/whisperx.py +0 -0
  66. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/base.py +0 -0
  67. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/cleanup/__init__.py +0 -0
  68. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/cleanup/cleanup.py +0 -0
  69. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/cleanup/disfluencies.py +0 -0
  70. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/cleanup/parse_support.py +0 -0
  71. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/cleanup/retrace.py +0 -0
  72. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/cleanup/support/filled_pauses.eng +0 -0
  73. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/cleanup/support/replacements.eng +0 -0
  74. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/cleanup/support/test.test +0 -0
  75. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/fa/__init__.py +0 -0
  76. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/fa/wave2vec_fa.py +0 -0
  77. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/fa/whisper_fa.py +0 -0
  78. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/morphosyntax/__init__.py +0 -0
  79. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/morphosyntax/coref.py +0 -0
  80. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/morphosyntax/en/irr.py +0 -0
  81. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/morphosyntax/fr/apm.py +0 -0
  82. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/morphosyntax/fr/apmn.py +0 -0
  83. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/morphosyntax/fr/case.py +0 -0
  84. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/morphosyntax/ja/verbforms.py +0 -0
  85. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/morphosyntax/ud.py +0 -0
  86. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/pipeline.py +0 -0
  87. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/speaker/__init__.py +0 -0
  88. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/speaker/nemo_speaker.py +0 -0
  89. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/translate/seamless.py +0 -0
  90. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/utr/__init__.py +0 -0
  91. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/utr/rev_utr.py +0 -0
  92. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/utr/utils.py +0 -0
  93. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/utr/whisper_utr.py +0 -0
  94. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/utterance/__init__.py +0 -0
  95. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/pipelines/utterance/ud_utterance.py +0 -0
  96. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/__init__.py +0 -0
  97. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/conftest.py +0 -0
  98. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/formats/chat/test_chat_file.py +0 -0
  99. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/formats/chat/test_chat_generator.py +0 -0
  100. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/formats/chat/test_chat_lexer.py +0 -0
  101. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/formats/chat/test_chat_parser.py +0 -0
  102. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/formats/chat/test_chat_utils.py +0 -0
  103. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/formats/textgrid/test_textgrid.py +0 -0
  104. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/pipelines/analysis/test_eval.py +0 -0
  105. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/pipelines/asr/test_asr_pipeline.py +0 -0
  106. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/pipelines/asr/test_asr_utils.py +0 -0
  107. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/pipelines/cleanup/test_disfluency.py +0 -0
  108. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/pipelines/cleanup/test_parse_support.py +0 -0
  109. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/pipelines/fa/test_fa_pipeline.py +0 -0
  110. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/pipelines/fixures.py +0 -0
  111. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/pipelines/test_pipeline.py +0 -0
  112. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/pipelines/test_pipeline_models.py +0 -0
  113. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/tests/test_document.py +0 -0
  114. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/utils/__init__.py +0 -0
  115. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/utils/config.py +0 -0
  116. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/utils/dp.py +0 -0
  117. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign/utils/utils.py +0 -0
  118. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign.egg-info/dependency_links.txt +0 -0
  119. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign.egg-info/entry_points.txt +0 -0
  120. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/batchalign.egg-info/top_level.txt +0 -0
  121. {batchalign-0.7.17.post17 → batchalign-0.7.18b0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: batchalign
3
- Version: 0.7.17.post17
3
+ Version: 0.7.18b0
4
4
  Summary: Python Speech Language Sample Analysis
5
5
  Author: Brian MacWhinney, Houjun Liu
6
6
  Author-email: macw@cmu.edu, houjun@cmu.edu
@@ -36,6 +36,7 @@ Requires-Dist: num2words
36
36
  Requires-Dist: tiktoken
37
37
  Requires-Dist: blobfile
38
38
  Requires-Dist: sentencepiece
39
+ Requires-Dist: googletrans
39
40
  Provides-Extra: dev
40
41
  Requires-Dist: pytest; extra == "dev"
41
42
  Provides-Extra: train
@@ -30,8 +30,8 @@ def generate_chat_utterance(utterance: Utterance, special_mor=False, write_wor=T
30
30
  main_line = str(utterance)
31
31
  # last minut ecorrections
32
32
  main_line = re.sub(r"<([\w ]+) \[\/", r"<\1> [/", main_line)
33
- main_line = re.sub(r"«", "\"", main_line)
34
- main_line = re.sub(r"»", "\"", main_line)
33
+ main_line = re.sub(r"«", "", main_line)
34
+ main_line = re.sub(r"»", "", main_line)
35
35
  main_line = re.sub(r"—", "-", main_line)
36
36
  main_line = re.sub(r"–", "-", main_line)
37
37
  tier = utterance.tier
@@ -12,4 +12,4 @@ from .utr import WhisperUTREngine, RevUTREngine
12
12
  from .analysis import EvaluationEngine
13
13
  from .utterance import StanzaUtteranceEngine
14
14
 
15
- from .translate import SeamlessTranslationModel
15
+ from .translate import SeamlessTranslationModel, GoogleTranslateEngine
@@ -6,7 +6,8 @@ Tabulate default packages and options.
6
6
  from batchalign import (WhisperEngine, WhisperFAEngine, StanzaEngine, RevEngine,
7
7
  NgramRetraceEngine, DisfluencyReplacementEngine, WhisperUTREngine,
8
8
  RevUTREngine, EvaluationEngine, WhisperXEngine, NemoSpeakerEngine,
9
- StanzaUtteranceEngine, CorefEngine, Wave2VecFAEngine, SeamlessTranslationModel)
9
+ StanzaUtteranceEngine, CorefEngine, Wave2VecFAEngine, SeamlessTranslationModel,
10
+ GoogleTranslateEngine)
10
11
  from batchalign import BatchalignPipeline
11
12
  from batchalign.models import resolve
12
13
 
@@ -28,7 +29,7 @@ DEFAULT_PACKAGES = {
28
29
  "eval": "evaluation",
29
30
  "utterance": "stanza_utt",
30
31
  "coref": "stanza_coref",
31
- "translate": "seamless_translate",
32
+ "translate": "gtrans",
32
33
  }
33
34
 
34
35
  LANGUAGE_OVERRIDE_PACKAGES = {
@@ -132,6 +133,9 @@ def dispatch_pipeline(pkg_str, lang, num_speakers=None, **arg_overrides):
132
133
  engines.append(Wave2VecFAEngine())
133
134
  elif engine == "seamless_translate":
134
135
  engines.append(SeamlessTranslationModel())
136
+ elif engine == "gtrans":
137
+ engines.append(GoogleTranslateEngine())
138
+
135
139
 
136
140
  L.debug(f"Done initalizing packages.")
137
141
  return BatchalignPipeline(*engines)
@@ -1 +1,2 @@
1
1
  from .seamless import SeamlessTranslationModel
2
+ from .gtrans import GoogleTranslateEngine
@@ -0,0 +1,58 @@
1
+ from batchalign.models import WhisperFAModel
2
+ from batchalign.document import *
3
+ from batchalign.pipelines.base import *
4
+ from batchalign.utils import *
5
+ from batchalign.utils.dp import *
6
+ from batchalign.constants import *
7
+ from batchalign.pipelines.translate.utils import run_coroutine_sync
8
+
9
+ from googletrans import Translator
10
+
11
+ import logging
12
+ L = logging.getLogger("batchalign")
13
+
14
+ import re
15
+
16
+ # !uv pip install sentencepiece
17
+
18
+ import pycountry
19
+ import warnings
20
+ import time
21
+
22
+ import asyncio
23
+
24
+ class GoogleTranslateEngine(BatchalignEngine):
25
+ tasks = [ Task.TRANSLATE ]
26
+
27
+ def _hook_status(self, status_hook):
28
+ self.status_hook = status_hook
29
+
30
+ def __init__(self):
31
+ self.status_hook = None
32
+
33
+ async def translate(self, text):
34
+ translator = Translator()
35
+ return await translator.translate(text)
36
+
37
+ def process(self, doc:Document, **kwargs):
38
+
39
+ for indx, i in enumerate(doc.content):
40
+ if not isinstance(i, Utterance):
41
+ continue
42
+ if i.translation:
43
+ continue
44
+
45
+ text = i.strip(join_with_spaces=False, include_retrace=True, include_fp=True)
46
+ translated_text_from_text = run_coroutine_sync(self.translate(text)).text
47
+
48
+ i.translation = translated_text_from_text
49
+ for j in MOR_PUNCT + ENDING_PUNCT:
50
+ i.translation = i.translation.replace(j, " "+j)
51
+
52
+ if self.status_hook != None:
53
+ self.status_hook(indx+1, len(doc.content))
54
+ time.sleep(1.5)
55
+
56
+ return doc
57
+
58
+
@@ -0,0 +1,35 @@
1
+ import asyncio
2
+ import threading
3
+ from concurrent.futures import ThreadPoolExecutor
4
+ from typing import Any, Coroutine, TypeVar
5
+
6
+ __all__ = [
7
+ "run_coroutine_sync",
8
+ ]
9
+
10
+ T = TypeVar("T")
11
+
12
+
13
+ def run_coroutine_sync(coroutine: Coroutine[Any, Any, T], timeout: float = 30) -> T:
14
+ def run_in_new_loop():
15
+ new_loop = asyncio.new_event_loop()
16
+ asyncio.set_event_loop(new_loop)
17
+ try:
18
+ return new_loop.run_until_complete(coroutine)
19
+ finally:
20
+ new_loop.close()
21
+
22
+ try:
23
+ loop = asyncio.get_running_loop()
24
+ except RuntimeError:
25
+ return asyncio.run(coroutine)
26
+
27
+ if threading.current_thread() is threading.main_thread():
28
+ if not loop.is_running():
29
+ return loop.run_until_complete(coroutine)
30
+ else:
31
+ with ThreadPoolExecutor() as pool:
32
+ future = pool.submit(run_in_new_loop)
33
+ return future.result(timeout=timeout)
34
+ else:
35
+ return asyncio.run_coroutine_threadsafe(coroutine, loop).result()
@@ -0,0 +1,3 @@
1
+ 0.7.18-beta.0
2
+ April 16th, 2025
3
+ google translate
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: batchalign
3
- Version: 0.7.17.post17
3
+ Version: 0.7.18b0
4
4
  Summary: Python Speech Language Sample Analysis
5
5
  Author: Brian MacWhinney, Houjun Liu
6
6
  Author-email: macw@cmu.edu, houjun@cmu.edu
@@ -36,6 +36,7 @@ Requires-Dist: num2words
36
36
  Requires-Dist: tiktoken
37
37
  Requires-Dist: blobfile
38
38
  Requires-Dist: sentencepiece
39
+ Requires-Dist: googletrans
39
40
  Provides-Extra: dev
40
41
  Requires-Dist: pytest; extra == "dev"
41
42
  Provides-Extra: train
@@ -85,7 +85,9 @@ batchalign/pipelines/morphosyntax/ja/verbforms.py
85
85
  batchalign/pipelines/speaker/__init__.py
86
86
  batchalign/pipelines/speaker/nemo_speaker.py
87
87
  batchalign/pipelines/translate/__init__.py
88
+ batchalign/pipelines/translate/gtrans.py
88
89
  batchalign/pipelines/translate/seamless.py
90
+ batchalign/pipelines/translate/utils.py
89
91
  batchalign/pipelines/utr/__init__.py
90
92
  batchalign/pipelines/utr/rev_utr.py
91
93
  batchalign/pipelines/utr/utils.py
@@ -26,6 +26,7 @@ num2words
26
26
  tiktoken
27
27
  blobfile
28
28
  sentencepiece
29
+ googletrans
29
30
 
30
31
  [dev]
31
32
  pytest
@@ -54,7 +54,8 @@ setup(
54
54
  "num2words",
55
55
  "tiktoken",
56
56
  "blobfile",
57
- "sentencepiece"
57
+ "sentencepiece",
58
+ "googletrans"
58
59
  ],
59
60
  extras_require={
60
61
  'dev': [
@@ -1,3 +0,0 @@
1
- 0.7.17-post.17
2
- April 16th, 2025
3
- Various fixes for numbers