From 8629958d3ccddfaccbb08d90ad4fbab704af52ce Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Wed, 21 Feb 2024 15:32:34 +0100 Subject: [PATCH 1/2] perf: Do not use reducer if there is no callback in `SingalInstance.resume` --- src/psygnal/_signal.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/psygnal/_signal.py b/src/psygnal/_signal.py index ea3f5d9e..39ccd793 100644 --- a/src/psygnal/_signal.py +++ b/src/psygnal/_signal.py @@ -1113,6 +1113,10 @@ def resume(self, reducer: ReducerFunc | None = None, initial: Any = _NULL) -> No # EventedModel.update, it may be undefined (as seen in tests) if not getattr(self, "_args_queue", None): return + if len(self._slots) == 0: + self._args_queue = [] + return + if reducer is not None: if len(inspect.signature(reducer).parameters) == 1: args = cast("ReducerOneArg", reducer)(self._args_queue) From 9ec3f9929df6061f8c1ecb883e45b232f46dbf04 Mon Sep 17 00:00:00 2001 From: Grzegorz Bokota Date: Wed, 21 Feb 2024 16:39:40 +0100 Subject: [PATCH 2/2] Update src/psygnal/_signal.py Co-authored-by: Talley Lambert --- src/psygnal/_signal.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/psygnal/_signal.py b/src/psygnal/_signal.py index dc40344e..22ce805e 100644 --- a/src/psygnal/_signal.py +++ b/src/psygnal/_signal.py @@ -1128,7 +1128,7 @@ def resume(self, reducer: ReducerFunc | None = None, initial: Any = _NULL) -> No if not getattr(self, "_args_queue", None): return if len(self._slots) == 0: - self._args_queue = [] + self._args_queue.clear() return if reducer is not None: