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: str, *args: Any, **kwargs: Any)
| 90 | raise ValueError('Function {!r} is not registered as a {} callback'.format(function, event)) |
| 91 | |
| 92 | def trigger(self, event: str, *args: Any, **kwargs: Any) -> None: |
| 93 | """Call callbacks for ``event``. |
| 94 | |
| 95 | Any additional arguments are passed to all callbacks registered for this |
| 96 | event. Exceptions raised by callbacks are caught, and a message printed. |
| 97 | """ |
| 98 | for func in self.callbacks[event][:]: |
| 99 | try: |
| 100 | func(*args, **kwargs) |
| 101 | except (Exception, KeyboardInterrupt): |
| 102 | if self.print_on_error: |
| 103 | print( |
| 104 | "Error in callback {} (for {}), with arguments args {},kwargs {}:".format( |
| 105 | func, event, args, kwargs |
| 106 | ) |
| 107 | ) |
| 108 | self.shell.showtraceback() |
| 109 | |
| 110 | # event_name -> prototype mapping |
| 111 | available_events: dict[str, Callable[..., Any]] = {} |