Merge pull request
#1155 from minrk/postexec
Be less aggressive in de-registering failing post-execute functions so that normal errors don't disable them permanently.
Two changes:
1. Don't unregister failing post-exec callbacks automatically. Instead, print a message regarding the failure, pointing to new `disable_failing_post_execute` trait for skipping failing callbacks.
- When this flag is False (the default), failing callbacks will continue to be called.
- When True, behavior is unchanged from previous, where callbacks are only allowed to fail once.
2. protect `flush_figures()` post-exec function from user error. Invalid matplotlib data may raise inside `print_figure()`. flush_figures() is a post-exec function, so user errors should not raise. Instead, call `get_ipython().showtraceback()` if called from IPython, raising as before otherwise.
closes
#1154