Settings.py 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import platform
  2. from kalliope._version import version_str as current_kalliope_version
  3. class Settings(object):
  4. """
  5. This Class is a Singleton Representing the settings.yml file with synapse
  6. .. note:: the is_loaded Boolean is True when the Settings has been properly loaded.
  7. """
  8. def __init__(self,
  9. default_tts_name=None,
  10. default_stt_name=None,
  11. default_trigger_name=None,
  12. default_player_name=None,
  13. ttss=None,
  14. stts=None,
  15. random_wake_up_answers=None,
  16. random_wake_up_sounds=None,
  17. play_on_ready_notification=None,
  18. on_ready_answers=None,
  19. on_ready_sounds=None,
  20. triggers=None,
  21. players=None,
  22. rest_api=None,
  23. cache_path=None,
  24. default_synapse=None,
  25. resources=None,
  26. variables=None,
  27. rpi_settings=None,
  28. recognition_options=None):
  29. self.default_tts_name = default_tts_name
  30. self.default_stt_name = default_stt_name
  31. self.default_trigger_name = default_trigger_name
  32. self.default_player_name = default_player_name
  33. self.ttss = ttss
  34. self.stts = stts
  35. self.random_wake_up_answers = random_wake_up_answers
  36. self.random_wake_up_sounds = random_wake_up_sounds
  37. self.play_on_ready_notification = play_on_ready_notification
  38. self.on_ready_answers = on_ready_answers
  39. self.on_ready_sounds = on_ready_sounds
  40. self.triggers = triggers
  41. self.players = players
  42. self.rest_api = rest_api
  43. self.cache_path = cache_path
  44. self.default_synapse = default_synapse
  45. self.resources = resources
  46. self.variables = variables
  47. self.machine = platform.machine() # can be x86_64 or armv7l
  48. self.kalliope_version = current_kalliope_version
  49. self.rpi_settings = rpi_settings
  50. self.recognition_options = recognition_options
  51. def serialize(self):
  52. """
  53. This method allows to serialize in a proper way this object
  54. :return: A dict of order
  55. :rtype: Dict
  56. """
  57. return {
  58. 'default_tts_name': self.default_tts_name,
  59. 'default_stt_name': self.default_stt_name,
  60. 'default_trigger_name': self.default_trigger_name,
  61. 'default_player_name': self.default_player_name,
  62. 'ttss': self.ttss,
  63. 'stts': self.stts,
  64. 'random_wake_up_answers': self.random_wake_up_answers,
  65. 'random_wake_up_sounds': self.random_wake_up_sounds,
  66. 'play_on_ready_notification': self.play_on_ready_notification,
  67. 'on_ready_answers': self.on_ready_answers,
  68. 'on_ready_sounds': self.on_ready_sounds,
  69. 'triggers': self.triggers,
  70. 'players': self.players,
  71. 'rest_api': self.rest_api.serialize(),
  72. 'cache_path': self.cache_path,
  73. 'default_synapse': self.default_synapse,
  74. 'resources': self.resources,
  75. 'variables': self.variables,
  76. 'machine': self.machine,
  77. 'kalliope_version': self.kalliope_version,
  78. 'rpi_settings': self.rpi_settings.serialize() if self.rpi_settings is not None else None,
  79. 'recognition_options': self.recognition_options.serialize() if self.recognition_options is not None else None,
  80. }
  81. def __str__(self):
  82. return str(self.serialize())
  83. def __eq__(self, other):
  84. """
  85. This is used to compare 2 objects
  86. :param other:
  87. :return:
  88. """
  89. return self.__dict__ == other.__dict__