home · contact · privacy
Ensure dict update even on implicit item creation.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 11 Sep 2025 22:09:50 +0000 (00:09 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 11 Sep 2025 22:09:50 +0000 (00:09 +0200)
ircplom/client.py

index 12da45ce15cedb1dc73e1d8ac6a58c081bd42574..1cd98787a390baedab5a27f62d17ecc90ae656d8 100644 (file)
@@ -241,18 +241,14 @@ class _UpdatingAttrsMixin(_UpdatingMixin):
 class _UpdatingDict(_UpdatingMixin, _Dict[DictItem]):
     _create_if_none: Optional[dict[str, Any]] = None
 
-    @property
-    def _values_are_updating(self) -> bool:
-        return _UpdatingMixin in self._item_cls.__mro__
-
     def __getitem__(self, key: str) -> DictItem:
         if key not in self._dict:
             if self._create_if_none is not None:
                 kw = {} | self._create_if_none
-                if self._values_are_updating:
+                if _UpdatingMixin in self._item_cls.__mro__:
                     kw |= {'on_update':
                            lambda *steps: self._on_update(key, *steps)}
-                self._dict[key] = self._item_cls(**kw)
+                self[key] = self._item_cls(**kw)
         return super().__getitem__(key)
 
     def __setitem__(self, key: str, val: DictItem) -> None: