self._dict: dict[str, DictItem] = {}
super().__init__(**kwargs)
+ def keys(self) -> tuple[str, ...]:
+ 'Keys of item registrations.'
+ return tuple(self._dict.keys())
+
def __getitem__(self, key: str) -> DictItem:
return self._dict[key]
def __delitem__(self, key: str) -> None:
del self._dict[key]
- def keys(self) -> tuple[str, ...]:
- 'Keys of item registrations.'
- return tuple(self._dict.keys())
-
def values(self) -> tuple[DictItem, ...]:
'Items registered.'
return tuple(self._dict.values())
'Wipe updating attributes.'
for key, value in [(k, v) for k, v in self._deep_annotations().items()
if k not in self._keep_on_clear]:
- if isinstance(value, (_Dict, _CompletableStringsList)):
- value.clear()
- elif isinstance(value, str):
+ if hasattr(value, 'clear'):
+ getattr(self, key).clear()
+ elif issubclass(value, str):
setattr(self, key, '')
def purge_users(self) -> None:
_ChannelWindow if self.db.is_chan_name(chatname)
else _QueryWindow)
kwargs['chatname'] = chatname
- kwargs['get_nick_data'] = lambda: self.db.users['me'].nick
+ kwargs['get_nick_data'] = lambda: (self.db.users['me'].nick
+ if 'me' in self.db.users.keys()
+ else '?')
win = self._tui_new_window(**kwargs)
self.windows += [win]
return win