From ee967c1e72d8d1093e38255912a75dfe61eb3f7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Mon, 10 Apr 2017 00:50:18 +0200 Subject: [PATCH] events: add function to remove event handlers Event handlers for remote mgmt API will be registered dynamically, so allow to unregister them. QubesOS/qubes-issues#2622 --- qubes/events.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/qubes/events.py b/qubes/events.py index 03081b0b..4b15e480 100644 --- a/qubes/events.py +++ b/qubes/events.py @@ -115,6 +115,17 @@ class Emitter(object, metaclass=EmitterMeta): # pylint: disable=no-member cls.__handlers__[event].add(func) + @classmethod + def remove_handler(cls, event, func): + '''Remove event handler from subject's class. + + :param str event: event identificator + :param collections.Callable handler: handler callable + ''' + + # pylint: disable=no-member + cls.__handlers__[event].remove(func) + def _fire_event_in_order(self, order, event, kwargs): '''Fire event for classes in given order.