From 741f240c79190e5189970de5ffee3a6ef700f3b5 Mon Sep 17 00:00:00 2001 From: Daniel McKnight Date: Thu, 25 Aug 2022 15:44:45 -0700 Subject: [PATCH 1/3] Add `available_languages` properties to Language Detector and Translator plugins --- ovos_plugin_manager/templates/language.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ovos_plugin_manager/templates/language.py b/ovos_plugin_manager/templates/language.py index 4c71152a..eecb6bbd 100644 --- a/ovos_plugin_manager/templates/language.py +++ b/ovos_plugin_manager/templates/language.py @@ -15,6 +15,16 @@ def detect(self, text): def detect_probs(self, text): return {self.detect(text): 1} + @property + def available_languages(self) -> set: + """Return languages supported by this detector implementation in this state + This property should be overridden by the derived class to advertise + what languages that engine supports. + Returns: + set: supported languages + """ + return set() + class LanguageTranslator: def __init__(self, config=None): @@ -46,3 +56,13 @@ def translate_list(self, data, lang_tgt, lang_src="en"): elif isinstance(v, list): data[idx] = self.translate_list(v, lang_tgt, lang_src) return data + + @property + def available_languages(self) -> set: + """Return languages supported by this translator implementation in this state + This property should be overridden by the derived class to advertise + what languages that engine supports. + Returns: + set: supported languages + """ + return set() From 07cf21deb3b9ab0c6b6ea054e873289d9d874fba Mon Sep 17 00:00:00 2001 From: Daniel McKnight Date: Thu, 25 Aug 2022 16:22:50 -0700 Subject: [PATCH 2/3] Update property docstrings --- ovos_plugin_manager/templates/language.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ovos_plugin_manager/templates/language.py b/ovos_plugin_manager/templates/language.py index eecb6bbd..b17e5749 100644 --- a/ovos_plugin_manager/templates/language.py +++ b/ovos_plugin_manager/templates/language.py @@ -17,7 +17,9 @@ def detect_probs(self, text): @property def available_languages(self) -> set: - """Return languages supported by this detector implementation in this state + """ + Return languages supported by this detector implementation in this state. + This should be a set of languages this detector is capable of recognizing. This property should be overridden by the derived class to advertise what languages that engine supports. Returns: @@ -59,7 +61,9 @@ def translate_list(self, data, lang_tgt, lang_src="en"): @property def available_languages(self) -> set: - """Return languages supported by this translator implementation in this state + """ + Return languages supported by this translator implementation in this state. + Any language in this set should be translatable to any other language in the set. This property should be overridden by the derived class to advertise what languages that engine supports. Returns: From c53c574d27acf237b627438373c1ab25e590e9bc Mon Sep 17 00:00:00 2001 From: Daniel McKnight Date: Fri, 26 Aug 2022 10:25:09 -0700 Subject: [PATCH 3/3] Add `supported_translations` method with default return value of `available_languages` --- ovos_plugin_manager/templates/language.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ovos_plugin_manager/templates/language.py b/ovos_plugin_manager/templates/language.py index b17e5749..31e18c14 100644 --- a/ovos_plugin_manager/templates/language.py +++ b/ovos_plugin_manager/templates/language.py @@ -70,3 +70,14 @@ def available_languages(self) -> set: set: supported languages """ return set() + + def supported_translations(self, source_lang: str = None) -> set: + """ + Return valid target languages we can translate `source_lang` to. + This method should be overridden by the derived class. + Args: + source_lang: ISO 639-1 source language code + Returns: + set of ISO 639-1 languages the source language can be translated to + """ + return self.available_languages