callbacks.py 417 B

12345678910111213141516171819
  1. import warnings
  2. class Callbacks(list):
  3. def append(self, value):
  4. assert callable(value), "It only excepts callable values!"
  5. def __call__(self, *args, **kwargs):
  6. for callback in self:
  7. try:
  8. callback(*args, **kwargs)
  9. except TypeError as e:
  10. warnings.warn(f"{callback} failed with arguments {args} and {kwargs}!")
  11. pass