File fix-skill-settings-hash.patch of Package mycroft-core
Index: mycroft-core-release-v18.2.11/mycroft/skills/settings.py
===================================================================
--- mycroft-core-release-v18.2.11.orig/mycroft/skills/settings.py
+++ mycroft-core-release-v18.2.11/mycroft/skills/settings.py
@@ -105,6 +105,14 @@ class SkillSettings(dict):
if isfile(self._meta_path):
self._poll_skill_settings()
+ def __eq__(self, other):
+ return self.name == other.name and \
+ self._settings_path == other._settings_path and self._meta_path == other._meta_path and \
+ self.loaded_hash == other.loaded_hash
+
+ def __hash__(self):
+ return hash((self.name, self._settings_path, self._meta_path, self.loaded_hash))
+
def run_poll(self, _=None):
"""Immediately poll the web for new skill settings"""
if self._poll_timer:
Index: mycroft-core-release-v18.2.11/mycroft/messagebus/client/ws.py
===================================================================
--- mycroft-core-release-v18.2.11.orig/mycroft/messagebus/client/ws.py
+++ mycroft-core-release-v18.2.11/mycroft/messagebus/client/ws.py
@@ -158,7 +158,7 @@ class WebsocketClient(object):
else:
LOG.debug("Not able to find '"+str(event_name)+"'")
self.emitter.remove_listener(event_name, func)
- except ValueError as e:
+ except (ValueError, KeyError) as e:
LOG.warning('Failed to remove event {}: {}'.format(event_name,
str(func)))
for line in traceback.format_stack():