New flags in IPython, of interest to matplotlib users

I'm curious about the term 'threading backend'.

Recently I posted a question about how to handle slow plots, suggesting
that the backend canvas have an isabort() method so that the renderer
can stop what it is doing and post the current bitmap as it stands.
This is to support interactive operations such as panning and resizing
on large data collections.

Do you mean something similar when you say 'threading backend', and is
it already supported in IPython?

  - Paul

···

On Wed, Dec 12, 2007 at 01:36:01AM -0700, Fernando Perez wrote:

Hi all,

This was posted to the ipython-dev list, but since it's specifically
for MPL, I figured the cross-list spam would be forgiven.

In IPython SVN, I just added the ability to manually control the pylab
threading backend choice directly from the command line. So for
example if by default you have:

tlon[~]> ipython -pylab --nobanner

In [1]: matplotlib.rcParams['backend']
Out[1]: 'TkAgg'

You can now do this as well:

tlon[~]> ipython -wthread -pylab --nobanner

In [1]: matplotlib.rcParams['backend']
Out[1]: 'WXAgg'

In [2]:
Closing threads... Done.
tlon[~]> ipython -gthread -pylab --nobanner

In [1]: matplotlib.rcParams['backend']
Out[1]: 'GTKAgg'

The feature is fairly simplistic: the -Xthread flags map automatically
to the XAgg backends in MPL, with no more fine-grained choice than
that. We can later look into allowing explicit backend selection if
you really scream for it, but I'd rather keep this simple. This means
that if you don't have the *Agg builds of the GUI backends, you'll
still need to do the backend selection by hand as before (i.e. by
modifying your mpl config file).

This has often been requested and I'd needed it myself on multiple
occasions, so it's finally in.

Cheers,

f

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

No, it just means that ipython can run in conjunction with the major
GUI toolkits in a non-blocking manner. In a plain python shell, if
you open a plot window (for any backend other than Tk), you can't go
back to the prompt and keep typing until you close the plot. IPython
allows that to happen, with Wx, GTK, Qt and Qt4.

Cheers,

f

···

On Dec 12, 2007 7:16 AM, Paul Kienzle <pkienzle@...537...> wrote:

I'm curious about the term 'threading backend'.

Recently I posted a question about how to handle slow plots, suggesting
that the backend canvas have an isabort() method so that the renderer
can stop what it is doing and post the current bitmap as it stands.
This is to support interactive operations such as panning and resizing
on large data collections.

Do you mean something similar when you say 'threading backend', and is
it already supported in IPython?