jhj0517 commited on
Commit
eeb932b
·
1 Parent(s): c7918de

Refactor parameters

Browse files
Files changed (1) hide show
  1. modules/translation/deepl_api.py +21 -24
modules/translation/deepl_api.py CHANGED
@@ -98,8 +98,8 @@ class DeepLAPI:
98
  fileobjs: list,
99
  source_lang: str,
100
  target_lang: str,
101
- is_pro: bool,
102
- add_timestamp: bool,
103
  progress=gr.Progress()) -> list:
104
  """
105
  Translate subtitle files using DeepL API
@@ -145,31 +145,22 @@ class DeepLAPI:
145
  if file_ext == ".srt":
146
  parsed_dicts = parse_srt(file_path=file_path)
147
 
148
- batch_size = self.max_text_batch_size
149
- for batch_start in range(0, len(parsed_dicts), batch_size):
150
- batch_end = min(batch_start + batch_size, len(parsed_dicts))
151
- sentences_to_translate = [dic["sentence"] for dic in parsed_dicts[batch_start:batch_end]]
152
- translated_texts = self.request_deepl_translate(auth_key, sentences_to_translate, source_lang,
153
- target_lang, is_pro)
154
- for i, translated_text in enumerate(translated_texts):
155
- parsed_dicts[batch_start + i]["sentence"] = translated_text["text"]
156
- progress(batch_end / len(parsed_dicts), desc="Translating..")
157
-
158
- subtitle = get_serialized_srt(parsed_dicts)
159
-
160
  elif file_ext == ".vtt":
161
  parsed_dicts = parse_vtt(file_path=file_path)
162
 
163
- batch_size = self.max_text_batch_size
164
- for batch_start in range(0, len(parsed_dicts), batch_size):
165
- batch_end = min(batch_start + batch_size, len(parsed_dicts))
166
- sentences_to_translate = [dic["sentence"] for dic in parsed_dicts[batch_start:batch_end]]
167
- translated_texts = self.request_deepl_translate(auth_key, sentences_to_translate, source_lang,
168
- target_lang, is_pro)
169
- for i, translated_text in enumerate(translated_texts):
170
- parsed_dicts[batch_start + i]["sentence"] = translated_text["text"]
171
- progress(batch_end / len(parsed_dicts), desc="Translating..")
172
 
 
 
 
173
  subtitle = get_serialized_vtt(parsed_dicts)
174
 
175
  if add_timestamp:
@@ -196,8 +187,14 @@ class DeepLAPI:
196
  text: list,
197
  source_lang: str,
198
  target_lang: str,
199
- is_pro: bool):
200
  """Request API response to DeepL server"""
 
 
 
 
 
 
201
 
202
  url = 'https://api.deepl.com/v2/translate' if is_pro else 'https://api-free.deepl.com/v2/translate'
203
  headers = {
 
98
  fileobjs: list,
99
  source_lang: str,
100
  target_lang: str,
101
+ is_pro: bool = False,
102
+ add_timestamp: bool = True,
103
  progress=gr.Progress()) -> list:
104
  """
105
  Translate subtitle files using DeepL API
 
145
  if file_ext == ".srt":
146
  parsed_dicts = parse_srt(file_path=file_path)
147
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  elif file_ext == ".vtt":
149
  parsed_dicts = parse_vtt(file_path=file_path)
150
 
151
+ batch_size = self.max_text_batch_size
152
+ for batch_start in range(0, len(parsed_dicts), batch_size):
153
+ batch_end = min(batch_start + batch_size, len(parsed_dicts))
154
+ sentences_to_translate = [dic["sentence"] for dic in parsed_dicts[batch_start:batch_end]]
155
+ translated_texts = self.request_deepl_translate(auth_key, sentences_to_translate, source_lang,
156
+ target_lang, is_pro)
157
+ for i, translated_text in enumerate(translated_texts):
158
+ parsed_dicts[batch_start + i]["sentence"] = translated_text["text"]
159
+ progress(batch_end / len(parsed_dicts), desc="Translating..")
160
 
161
+ if file_ext == ".srt":
162
+ subtitle = get_serialized_srt(parsed_dicts)
163
+ elif file_ext == ".vtt":
164
  subtitle = get_serialized_vtt(parsed_dicts)
165
 
166
  if add_timestamp:
 
187
  text: list,
188
  source_lang: str,
189
  target_lang: str,
190
+ is_pro: bool = False):
191
  """Request API response to DeepL server"""
192
+ if source_lang not in list(DEEPL_AVAILABLE_SOURCE_LANGS.keys()):
193
+ raise ValueError(f"Source language {source_lang} is not supported."
194
+ f"Use one of {list(DEEPL_AVAILABLE_SOURCE_LANGS.keys())}")
195
+ if target_lang not in list(DEEPL_AVAILABLE_TARGET_LANGS.keys()):
196
+ raise ValueError(f"Target language {target_lang} is not supported."
197
+ f"Use one of {list(DEEPL_AVAILABLE_TARGET_LANGS.keys())}")
198
 
199
  url = 'https://api.deepl.com/v2/translate' if is_pro else 'https://api-free.deepl.com/v2/translate'
200
  headers = {