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():
openSUSE Build Service is sponsored by