Call callbacks for ``event``. Any additional arguments are passed to all callbacks registered for this event. Exceptions raised by callbacks are caught, and a message printed.
(self, event, *args, **kwargs)
| 78 | raise ValueError('Function {!r} is not registered as a {} callback'.format(function, event)) |
| 79 | |
| 80 | def trigger(self, event, *args, **kwargs): |
| 81 | """Call callbacks for ``event``. |
| 82 | |
| 83 | Any additional arguments are passed to all callbacks registered for this |
| 84 | event. Exceptions raised by callbacks are caught, and a message printed. |
| 85 | """ |
| 86 | for func in self.callbacks[event][:]: |
| 87 | try: |
| 88 | func(*args, **kwargs) |
| 89 | except (Exception, KeyboardInterrupt): |
| 90 | print("Error in callback {} (for {}):".format(func, event)) |
| 91 | self.shell.showtraceback() |
| 92 | |
| 93 | # event_name -> prototype mapping |
| 94 | available_events = {} |