From f27f7383518f65b1e8e7af8bfab5d46453e8e78a Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Thu, 19 Oct 2023 20:57:04 -0500 Subject: [PATCH] added event pause/resume functionality --- src/utils/event_system.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/utils/event_system.py b/src/utils/event_system.py index 9d876cf..cd6975f 100644 --- a/src/utils/event_system.py +++ b/src/utils/event_system.py @@ -13,7 +13,20 @@ class EventSystem(Singleton): def __init__(self): self.subscribers = defaultdict(list) + self._is_paused = False + self._subscribe_to_events() + + + def _subscribe_to_events(self): + self.subscribe("pause_event_processing", self._pause_processing_events) + self.subscribe("resume_event_processing", self._resume_processing_events) + + def _pause_processing_events(self): + self._is_paused = True + + def _resume_processing_events(self): + self._is_paused = False def subscribe(self, event_type, fn): self.subscribers[event_type].append(fn) @@ -25,6 +38,9 @@ class EventSystem(Singleton): self.subscribers.pop(event_type, None) def emit(self, event_type, data = None): + if self._is_paused and event_type != "resume_event_processing": + return + if event_type in self.subscribers: for fn in self.subscribers[event_type]: if data: @@ -36,6 +52,9 @@ class EventSystem(Singleton): fn() def emit_and_await(self, event_type, data = None): + if self._is_paused and event_type != "resume_event_processing": + return + """ NOTE: Should be used when signal has only one listener and vis-a-vis """ if event_type in self.subscribers: response = None