home · contact · privacy
Differentiate attribute-updaters off Dict and Completable updaters.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 11 Sep 2025 20:17:08 +0000 (22:17 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 11 Sep 2025 20:17:08 +0000 (22:17 +0200)
ircplom/client.py

index dc5ee3b3820e9bd33bc1e74723f67be386179cf2..b404218d2cf33fafc4efbca98a76aa031110bfef 100644 (file)
@@ -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