Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from aiogram_dialog import DialogManager
- from contextlib import suppress
- from dataclasses import dataclass
- @dataclass
- class HlamData:
- ad_id = None
- ad_type = None
- hlam_ad = None
- dialog_error = None
- ad_message_id = None
- old_hlam_ad = None
- num_photos = None
- changed = None
- dialog_manager: DialogManager = None
- @classmethod
- def parse(cls, dialog_manager: DialogManager) -> 'HlamData':
- inst = HlamData()
- inst.dialog_manager = dialog_manager
- inst.fetch()
- return inst
- def fetch(self):
- dialog_data = self.dialog_manager.current_context().dialog_data
- for k, v in dialog_data.items():
- with suppress(Exception):
- super(HlamData, self).__setattr__(k, v)
- def __getattr__(self, item):
- self.fetch()
- super(HlamData, self).__getattribute__(self, item)
- def __setattr__(self, key, value):
- if key != 'dialog_manager':
- self.fetch()
- self.dialog_manager.current_context().dialog_data[key] = value
- super(HlamData, self).__setattr__(key, value)
- def force_dict(self) -> typing.Dict:
- return {k: v for k, v in self.__dict__.items() if v is not None and k != 'dialog_manager'}
Advertisement
Add Comment
Please, Sign In to add comment