From d9b32b43540cd55e10ae1bede294fabbae88c4df Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Thu, 15 Feb 2024 14:45:10 -0500 Subject: [PATCH] refactor: use getitem in descriptor --- src/psygnal/_group_descriptor.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/psygnal/_group_descriptor.py b/src/psygnal/_group_descriptor.py index b9a266df..5bbc31c1 100644 --- a/src/psygnal/_group_descriptor.py +++ b/src/psygnal/_group_descriptor.py @@ -263,14 +263,12 @@ def _setattr_and_emit_(self: object, name: str, value: Any) -> None: return super_setattr(self, name, value) group: SignalGroup | None = getattr(self, signal_group_name, None) - signal: SignalInstance | None = getattr(group, name, None) + if not isinstance(group, SignalGroup) or name not in group: + return super_setattr(self, name, value) + # don't emit if the signal doesn't exist or has no listeners - if ( - group is None - or signal is None - or len(signal) < 2 - and not len(group._psygnal_relay) - ): + signal: SignalInstance = group[name] + if len(signal) < 2 and not len(group._psygnal_relay): return super_setattr(self, name, value) with _changes_emitted(self, name, signal):