- def __getattribute__(self, key: str):
- attr = super().__getattribute__(key)
- if key == 'channels' and attr._preset_init_kwargs is None\
- and super().__getattribute__('users'
- )._preset_init_kwargs is not None:
- attr._preset_init_kwargs = {
- 'userid_for_nickuserhost': self.users.id_for_nickuserhost,
- 'get_membership_modes': self.get_membership_modes,
- 'get_chanmodes': self._get_chanmodes,
- 'purge_users': self.users.purge}
- elif key == 'users':
- attr.userlen = int(self.isupport['USERLEN'])
- if attr._preset_init_kwargs is None:
- attr._preset_init_kwargs = {
- 'names_channels_of_user': self.channels.of_user,
- 'remove_from_channels': self.channels.remove_user}
- elif key == 'caps' and attr._preset_init_kwargs is None:
- attr._preset_init_kwargs = {}
- return attr
-