ipython integration