11import argparse
22import logging
33import os
4- import time
54from dataclasses import dataclass
65from pathlib import Path
76from typing import Generator , Iterable , List , Optional , Tuple , Union
@@ -182,69 +181,6 @@ def translate_books(
182181 estimate_quality (verse_test_scores_path , confidence_files )
183182 LOGGER .info ("Quality estimation completed." )
184183
185- def translate_text_files (
186- self ,
187- src_prefix : str ,
188- trg_prefix : str ,
189- start_seq : int ,
190- end_seq : int ,
191- src_iso : Optional [str ],
192- trg_iso : Optional [str ],
193- produce_multiple_translations : bool = False ,
194- save_confidences : bool = False ,
195- quality_estimation : bool = False ,
196- verse_test_scores_path : Optional [Path ] = None ,
197- tags : Optional [List [str ]] = None ,
198- ) -> None :
199- translator , config , _ = self ._init_translation_task (experiment_suffix = f"_{ self .checkpoint } _{ src_prefix } " )
200- confidence_files : List [Path ] = []
201- with translator :
202- if src_iso is None :
203- src_iso = config .default_test_src_iso
204- if src_iso == "" and len (config .src_iso ) > 0 :
205- src_iso = next (iter (config .src_iso ))
206- if src_iso == "" :
207- LOGGER .warning ("No language code was set for the source language" )
208- if trg_iso is None :
209- trg_iso = config .default_test_trg_iso
210- if trg_iso == "" and len (config .trg_isos ) > 0 :
211- trg_iso = next (iter (config .trg_isos ))
212- if trg_iso == "" :
213- LOGGER .warning ("No language code was set for the target language" )
214-
215- for i in range (start_seq , end_seq + 1 ):
216- file_num = f"{ i :04d} "
217- src_file = f"{ src_prefix } { file_num } .txt"
218- src_file_path = Path (self .environment .mt_experiments_dir / self .name / src_file )
219- if not src_file_path .exists ():
220- raise FileNotFoundError ("Cannot find source: " + src_file )
221-
222- trg_file = f"{ trg_prefix } { file_num } .txt"
223- trg_file_path = Path (self .environment .mt_experiments_dir / self .name / trg_file )
224-
225- if src_file_path .is_file () and not trg_file_path .is_file ():
226- start = time .time ()
227- translator .translate_text (
228- src_file_path ,
229- trg_file_path ,
230- src_iso ,
231- trg_iso ,
232- produce_multiple_translations ,
233- save_confidences ,
234- trg_prefix ,
235- tags ,
236- )
237- end = time .time ()
238- print (f"Translated { src_file_path .name } to { trg_file_path .name } in { ((end - start )/ 60 ):.2f} minutes" )
239-
240- if save_confidences :
241- confidence_files .extend (trg_file_path .parent .glob (f"{ trg_file_path .stem } *{ CONFIDENCE_SUFFIX } " ))
242-
243- if quality_estimation and len (confidence_files ) > 0 :
244- LOGGER .info ("Running quality estimation..." )
245- estimate_quality (verse_test_scores_path , confidence_files )
246- LOGGER .info ("Quality estimation completed." )
247-
248184 def translate_files (
249185 self ,
250186 src : str ,
@@ -393,20 +329,6 @@ def main() -> None:
393329 type = str ,
394330 help = "Target file name, must relative to the experiment directory" ,
395331 )
396- parser .add_argument (
397- "--src-prefix" ,
398- default = None ,
399- type = str ,
400- help = "Source file prefix (e.g., de-news2019-), must be in the experiment directory" ,
401- )
402- parser .add_argument (
403- "--trg-prefix" ,
404- default = None ,
405- type = str ,
406- help = "Target file prefix (e.g., en-news2019-), must be relative to the experiment directory" ,
407- )
408- parser .add_argument ("--start-seq" , default = None , type = int , help = "Starting file sequence #" )
409- parser .add_argument ("--end-seq" , default = None , type = int , help = "Ending file sequence #" )
410332 parser .add_argument ("--src-project" , default = None , type = str , help = "The source project to translate" )
411333 parser .add_argument (
412334 "--trg-project" ,
@@ -433,8 +355,7 @@ def main() -> None:
433355 "--save-confidences" ,
434356 default = False ,
435357 action = "store_true" ,
436- help = "Generate files for verse, chapter, and book confidences if translating from .usfm or .sfm files. "
437- "Or generate them for sequence and trg file confidences if translating from .txt files." ,
358+ help = "Generate files for verse, chapter, and book confidences if translating from .usfm or .sfm files." ,
438359 )
439360 parser .add_argument (
440361 "--paragraph-behavior" ,
@@ -575,29 +496,6 @@ def main() -> None:
575496 postprocess_handler ,
576497 vref = args .vref ,
577498 )
578- elif args .src_prefix is not None :
579- if args .debug :
580- show_attrs (
581- cli_args = args ,
582- actions = [f"Will attempt to translate matching files from { args .src_iso } into { args .trg_iso } ." ],
583- )
584- exit ()
585- if args .trg_prefix is None :
586- raise RuntimeError ("A target file prefix must be specified." )
587- if args .start_seq is None or args .end_seq is None :
588- raise RuntimeError ("Start and end sequence numbers must be specified." )
589- translator .translate_text_files (
590- args .src_prefix ,
591- args .trg_prefix ,
592- args .start_seq ,
593- args .end_seq ,
594- args .src_iso ,
595- args .trg_iso ,
596- args .multiple_translations ,
597- args .save_confidences ,
598- args .quality_estimation ,
599- verse_test_scores_path ,
600- )
601499 elif args .src is not None :
602500 if args .debug :
603501 show_attrs (
@@ -618,7 +516,7 @@ def main() -> None:
618516 vref = args .vref ,
619517 )
620518 else :
621- raise RuntimeError ("A Scripture book, file, or file prefix must be specified." )
519+ raise RuntimeError ("A Scripture book or file must be specified." )
622520
623521
624522if __name__ == "__main__" :
0 commit comments