utils.py 636 B

1234567891011121314151617181920212223242526
  1. import traceback
  2. class EventArguments:
  3. def __init__(self, sender, **kwargs):
  4. self.sender = sender
  5. for key, value in kwargs.items():
  6. setattr(self, key, value)
  7. def provide_arguments(func, *keys):
  8. def inner_function(sender, event):
  9. try:
  10. func()
  11. except TypeError:
  12. func(EventArguments(sender, **{key: event[key] for key in keys}))
  13. return inner_function
  14. def handle_exceptions(func):
  15. def inner_function(*args, **kwargs):
  16. try:
  17. func(*args, **kwargs)
  18. except Exception:
  19. traceback.print_exc()
  20. return inner_function