[SciPy-dev] Generic gui_thread + IPython: solution already exists!
Fernando.Perez at colorado.edu
Sun Nov 14 15:54:20 CST 2004
Prabhu Ramachandran wrote:
> [Sorry about the cross-posting, but I think this is relevant on both
> I just happened to read Fernando's post on c.l.py on the way in which
> IPython manages to get gtk and wxPython working for matplotlib. Here
> is the thread:
> I then looked at IPython/Shell.py and realized that IPython can
> actually be trivially extended to work with *any* wx or gtk app!
> I actually thought of using this approach earlier when I was fixing
> gui_thread, but thought IPython would need too many modifications for
> this to work. However, it looks like Fernando has already done all
> the work for us.
Well, I think the real credit should go to John Hunter and Antoon Pardon, the
people who cracked the nut of the threading code originally :)
This is great news, obviously!
This is very much what Eric and I originally discussed at scipy'04, and what I
thought might be possible to do. While fumbling in the dark with my near-zero
knowledge of threading, in an attempt to get matplolib running, I finally
thought that perhaps this approach was just not viable, and that the full
complexity of gui_thread was indeed inevitable. I basically was not willing
to believe that such a simple approach could indeed substitute all the
functionality of gui_thread, and gave up in my ignorance. I'm happy to see
that my original hunch was indeed right :)
The leftover machinery for -wthread/-gthread which you see there is all that's
left of my efforts. I'm glad I didn't completely wipe that out. Re-enabling
it is trivial, and I even had written the relevant manual parts for it, so
this would be an easy fix.
I would be more than happy to put out a 0.6.5 release with these fixes, since
I think they would be a _major_ enhancement to ipython. People have been
asking for a long time for a way to use wx/gtk interactively, and if this
solution truly can substitute gui_thread, I think it's a major win.
gui_thread is complex and brittle, and the work of maintaing it is a solid
time sink with a developer bottleneck: basically only you and Pearu (I think)
understand that code enough to dare stick your fingers in it. IMO it would be
great if we could just get rid of it without loss of functionality.
I don't have the necessary expertise to properly test this out for both
wx/gtk, but I'd love to see these improvements go in, so I hope you or someone
else can finish them up.
More information about the Scipy-dev