##// END OF EJS Templates
Rename callbacks -> events (mostly), fire -> trigger
Rename callbacks -> events (mostly), fire -> trigger

File last commit:

r15604:6de7fab4
r15605:adb71c39
Show More
callbacks.rst
38 lines | 1.3 KiB | text/x-rst | RstLexer

Registering callbacks

Extension code can register callbacks functions which will be called on specific events within the IPython code. You can see the current list of available callbacks, and the parameters that will be passed with each, in the callback prototype functions defined in :mod:`IPython.core.callbacks`.

To register callbacks, use :meth:`IPython.core.callbacks.CallbackManager.register`. For example:

class VarWatcher(object):
    def __init__(self, ip):
        self.shell = ip
        self.last_x = None

    def pre_execute(self):
        self.last_x = self.shell.user_ns.get('x', None)

    def post_execute(self):
        if self.shell.user_ns.get('x', None) != self.last_x:
            print("x changed!")

def load_ipython_extension(ip):
    vw = VarWatcher(ip)
    ip.callbacks.register('pre_execute', vw.pre_execute)
    ip.callbacks.register('post_execute', vw.post_execute)