| 806 | name = "argos" |
| 807 | |
| 808 | def __init__(self, lang_in, lang_out, model, ignore_cache=False, **kwargs): |
| 809 | try: |
| 810 | import argostranslate.package |
| 811 | import argostranslate.translate |
| 812 | except ImportError: |
| 813 | logger.warning( |
| 814 | "argos-translate is not installed, if you want to use argostranslate, please install it. If you don't use argostranslate translator, you can safely ignore this warning." |
| 815 | ) |
| 816 | raise |
| 817 | super().__init__(lang_in, lang_out, model, ignore_cache) |
| 818 | lang_in = self.lang_map.get(lang_in.lower(), lang_in) |
| 819 | lang_out = self.lang_map.get(lang_out.lower(), lang_out) |
| 820 | self.lang_in = lang_in |
| 821 | self.lang_out = lang_out |
| 822 | argostranslate.package.update_package_index() |
| 823 | available_packages = argostranslate.package.get_available_packages() |
| 824 | try: |
| 825 | available_package = list( |
| 826 | filter( |
| 827 | lambda x: x.from_code == self.lang_in |
| 828 | and x.to_code == self.lang_out, |
| 829 | available_packages, |
| 830 | ) |
| 831 | )[0] |
| 832 | except Exception: |
| 833 | raise ValueError( |
| 834 | "lang_in and lang_out pair not supported by Argos Translate." |
| 835 | ) |
| 836 | download_path = available_package.download() |
| 837 | argostranslate.package.install_from_path(download_path) |
| 838 | |
| 839 | def translate(self, text: str, ignore_cache: bool = False): |
| 840 | # Translate |