From b17aba240e63b7015be4fbd7ad002a59103fc6d9 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Thu, 11 Sep 2025 22:17:08 +0200 Subject: [PATCH] Differentiate attribute-updaters off Dict and Completable updaters. --- ircplom/client.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ircplom/client.py b/ircplom/client.py index dc5ee3b..b404218 100644 --- a/ircplom/client.py +++ b/ircplom/client.py @@ -227,6 +227,9 @@ class _UpdatingMixin(IntoEndnodeUpdatesMixin): super().__init__(**kwargs) self._on_update = on_update + +class _UpdatingAttrsMixin(_UpdatingMixin): + def _make_attr(self, cls: Callable, key: str): return cls(on_update=lambda *steps: self._on_update(key, *steps)) @@ -515,7 +518,7 @@ class _User(_SetNickuserhostMixin, NickUserHost): self._id_ = value -class _UpdatingServerCapability(_UpdatingMixin, ServerCapability): +class _UpdatingServerCapability(_UpdatingAttrsMixin, ServerCapability): pass @@ -523,12 +526,12 @@ class _UpdatingCompletableTopic(_UpdatingCompletable, _CompletableTopic): pass -class _UpdatingChannel(_UpdatingMixin, _Channel): +class _UpdatingChannel(_UpdatingAttrsMixin, _Channel): user_ids: _UpdatingCompletableStringsSet topic: _UpdatingCompletableTopic -class _UpdatingUser(_UpdatingMixin, _User): +class _UpdatingUser(_UpdatingAttrsMixin, _User): pass @@ -602,7 +605,7 @@ class _UpdatingChannelsDict(_UpdatingDict[_UpdatingChannel]): channel.remove_user(user) -class _ClientDb(_Clearable, _UpdatingMixin, SharedClientDbFields): +class _ClientDb(_Clearable, _UpdatingAttrsMixin, SharedClientDbFields): _keep_on_clear = set(IrcConnSetup.__annotations__.keys()) caps: _UpdatingDict[_UpdatingServerCapability] channels: _UpdatingChannelsDict -- 2.30.2