"""TODO: Add docstring.""" import os os.environ["ARGOS_DEVICE_TYPE"] = "auto" import argostranslate.package import argostranslate.translate import pyarrow as pa from dora import Node from_code = os.getenv("SOURCE_LANGUAGE", "fr") to_code = os.getenv("TARGET_LANGUAGE", "en") # Download and install Argos Translate package argostranslate.package.update_package_index() available_packages = argostranslate.package.get_available_packages() package_to_install = next( filter( lambda x: x.from_code == from_code and x.to_code == to_code, available_packages, ), ) argostranslate.package.install_from_path(package_to_install.download()) def main(): """TODO: Add docstring.""" node = Node() while True: event = node.next() if event is None: break if event["type"] == "INPUT" and event["id"] == "text": text = event["value"][0].as_py() translated_text = argostranslate.translate.translate( text, from_code, to_code, ) print(text, flush=True) print("translated: " + translated_text, flush=True) node.send_output( "text", pa.array([translated_text]), {"language": to_code}, )