Эх сурвалжийг харах

[Feature] Introducing settingsEntry interface

ThiBuff 7 жил өмнө
parent
commit
6e62f3f481

+ 5 - 2
kalliope/core/Models/Player.py

@@ -1,4 +1,7 @@
-class Player(object):
+from kalliope.core.Models.SettingsEntry import SettingsEntry
+
+
+class Player(SettingsEntry):
     """
     This Class is representing a Player with its name and parameters
 
@@ -6,7 +9,7 @@ class Player(object):
     """
 
     def __init__(self, name=None, parameters=None):
-        self.name = name
+        super(Player, self).__init__(name=name)
         self.parameters = parameters
 
     def __str__(self):

+ 23 - 0
kalliope/core/Models/SettingsEntry.py

@@ -0,0 +1,23 @@
+class SettingsEntry(object):
+    """
+    This is an interface representing an entry in the settings file
+    """
+
+    def __init__(self, name=None):
+        self.name = name
+
+    def __str__(self):
+        return str(self.serialize())
+
+    def serialize(self):
+        return {
+            'name': self.name
+        }
+
+    def __eq__(self, other):
+        """
+        This is used to compare 2 objects
+        :param other:
+        :return:
+        """
+        return self.__dict__ == other.__dict__

+ 7 - 4
kalliope/core/Models/Stt.py

@@ -1,4 +1,7 @@
-class Stt(object):
+from kalliope.core.Models.SettingsEntry import SettingsEntry
+
+
+class Stt(SettingsEntry):
     """
     This Class is representing a Speech To Text (STT) element with name and parameters
 
@@ -6,7 +9,7 @@ class Stt(object):
     """
 
     def __init__(self, name=None, parameters=None):
-        self.name = name
+        super(Stt, self).__init__(name=name)
         self.parameters = parameters
 
     def __str__(self):
@@ -21,7 +24,7 @@ class Stt(object):
     def __eq__(self, other):
         """
         This is used to compare 2 objects
-        :param other:
-        :return:
+        :param other: the Stt to compare
+        :return: True if both stts are similar, False otherwise
         """
         return self.__dict__ == other.__dict__

+ 7 - 4
kalliope/core/Models/Trigger.py

@@ -1,4 +1,7 @@
-class Trigger(object):
+from kalliope.core.Models.SettingsEntry import SettingsEntry
+
+
+class Trigger(SettingsEntry):
     """
     This Class is representing a Trigger with its name and parameters
 
@@ -6,7 +9,7 @@ class Trigger(object):
     """
 
     def __init__(self, name=None, parameters=None):
-        self.name = name
+        super(Trigger, self).__init__(name=name)
         self.parameters = parameters
 
     def __str__(self):
@@ -21,7 +24,7 @@ class Trigger(object):
     def __eq__(self, other):
         """
         This is used to compare 2 objects
-        :param other:
-        :return:
+        :param other: the Trigger to compare
+        :return: True if both triggers are similar, False otherwise
         """
         return self.__dict__ == other.__dict__

+ 7 - 4
kalliope/core/Models/Tts.py

@@ -1,4 +1,7 @@
-class Tts(object):
+from kalliope.core.Models.SettingsEntry import SettingsEntry
+
+
+class Tts(SettingsEntry):
     """
     This Class is representing a Text To Speech (TTS) with its name and parameters
 
@@ -6,7 +9,7 @@ class Tts(object):
     """
 
     def __init__(self, name=None, parameters=None):
-        self.name = name
+        super(Tts, self).__init__(name=name)
         self.parameters = parameters
 
     def __str__(self):
@@ -21,7 +24,7 @@ class Tts(object):
     def __eq__(self, other):
         """
         This is used to compare 2 objects
-        :param other:
-        :return:
+        :param other: the Tts to compare
+        :return: True if both ttss are similar, False otherwise
         """
         return self.__dict__ == other.__dict__

+ 8 - 9
kalliope/neurons/settings/settings.py

@@ -32,24 +32,24 @@ class Settings(NeuronModule):
         :return: True if all parameters are set correctly, False otherwise.
         """
         if self.default_player_name:
-            if not self._check_name_in_list_object(self.default_player_name, self.settings.players):
+            if not self._check_name_in_list_settings_entry(self.default_player_name, self.settings.players):
                 logger.debug("[Settings] default_player_name %s is not defined in settings file ",
                              self.default_player_name)
                 return False
 
         if self.default_stt_name:
-            if not self._check_name_in_list_object(self.default_stt_name, self.settings.stts):
+            if not self._check_name_in_list_settings_entry(self.default_stt_name, self.settings.stts):
                 logger.debug("[Settings] default_stt_name %s is not defined in settings file ", self.default_stt_name)
                 return False
 
         if self.default_trigger_name:
-            if self._check_name_in_list_object(self.default_trigger_name, self.settings.triggers):
+            if self._check_name_in_list_settings_entry(self.default_trigger_name, self.settings.triggers):
                 logger.debug("[Settings] default_trigger_name %s is not defined in settings file ",
                              self.default_trigger_name)
                 return False
 
         if self.default_tts_name:
-            if not self._check_name_in_list_object(self.default_tts_name, self.settings.ttss):
+            if not self._check_name_in_list_settings_entry(self.default_tts_name, self.settings.ttss):
                 logger.debug("[Settings] default_tts_name %s is not defined in settings file ", self.default_tts_name)
                 return False
 
@@ -86,18 +86,17 @@ class Settings(NeuronModule):
         if self.mute is not None:
             SettingEditor.set_mute_status(self.mute)
 
-
     @staticmethod
-    def _check_name_in_list_object(name_to_check, list_obj):
+    def _check_name_in_list_settings_entry(name_to_check, list_settings_entry):
         """
         manage object models : STT, TRIGGERS, TTS, PLAYERS because they have "name" attributes
         TODO
         :param name_to_check:
-        :param list_obj:
+        :param list_settings_entry:
         :return:
         """
         found = False
-        for obj in list_obj:
-            if obj.name == name_to_check:
+        for settings_entry in list_settings_entry:
+            if settings_entry.name == name_to_check:
                 found = True
         return found