IPython integration