New GUI integration in IPython

Hello all,

This email is being sent out to to the lists of users+devs who regularly use IPython’s “pylab” mode or “-wthread”, “-qthread”, “-gthread”, etc. threaded shells. As of today, in IPython’s trunk, we have a completely new implementation of our GUI event loop integration that dramatically improves the stability of using the TERMINAL BASED IPython with GUI applications. This does not affect attempts to embed IPython into GUI applications.

At this point, we need developers to begin to try out the new stuff and adapt their projects to use the new capabilities. Here are some things you will get:

  • Stability and robustness have been improved greatly.
  • KeyboardInterrupts should work on all platforms reliably.
  • No more command line flags - instead everything can be activated/de-activated/switched at runtime. This should allow projects like matplotlib to enable reliable backend switching. See the new %gui magic for more information on this.
  • We have a new developer module for working with these features (IPython.lib.inputhook).
  • Unless someone complains very loudly and steps up to the plate to maintain them, the old threaded shells will be removed in the next release of IPython.

Here are some starting points for documentation on the new features:

http://bazaar.launchpad.net/~ipython-dev/ipython/trunk/annotate/head%3A/docs/source/interactive/reference.txt#L1375
http://bazaar.launchpad.net/~ipython-dev/ipython/trunk/annotate/head%3A/IPython/lib/inputhook.py
http://bazaar.launchpad.net/~ipython-dev/ipython/trunk/annotate/head%3A/IPython/core/magic.py#L3542

Please let us know if you have questions - we are more than willing to help you get started with all of this.

Cheers,

Brian