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: