On Tue, Sep 14, 2010 at 12:59 AM, Eric Firing <efir...@hawaii.edu> wrote: > On 09/13/2010 05:46 PM, Brian Granger wrote: >> >> On Tue, Sep 7, 2010 at 1:31 PM, Eric Firing<efir...@hawaii.edu> wrote: >>> >>> On 09/03/2010 12:37 PM, Brian Granger wrote: >>>> >>>> Hello all, >>>> >>>> I would like to submit the following branch on github for review and >>>> merging into matplotlib trunk: >>>> >>>> http://github.com/ellisonbg/matplotlib/commits/guisupport >>>> >>>> This branch implements the logic needed for the qt4 and wx backends to >>>> fully work with the upcoming IPython 0.11 release. In our testing we >>>> have run many of the mpl examples (including the new animation >>>> examples) in both qt4/wx in both the terminal based IPython and the >>>> new IPython Qt GUI. For background on these changes please see this >>>> thread: >>>> >>>> >>>> http://sourceforge.net/mailarchive/forum.php?thread_name=AANLkTik2SNtXMaezCc0UiMnCYg6LxwEL1eN9YASnmOua%40mail.gmail.com&forum_name=matplotlib-devel >>>> >>>> It is important to note that we have not updated the other matplotlib >>>> backends (gtk, tk, etc.) to have this logic. This is mainly because >>>> we know almost nothing about these toolkits and could really use some >>>> help from folks who are experts at the respective toolkits. We have >>>> done some minimal testing and these other backends do work for simple >>>> examples in the terminal IPython, but they won't work in all cases and >>>> will definitely not work in the new IPython Qt based GUI. >>>> >>>> We would love feedback and help testing as these changes are >>>> significant (even though only a few lines of code). To test this >>>> stuff you will need to grab the following IPython development branch: >>>> >>>> http://github.com/ipython/ipython/tree/newkernel >>>> >>>> You should be able to run the examples in regular ipython: >>>> >>>> ipython --pylab qt4|wx >>>> >>>> Or the new GUI >>>> >>>> ipythonqt --pylab qt4|wx >>> >>> Brian, Fernando, >>> >>> I have been doing a little testing with ipython 0.10 versus >>> ipython-newkernel, both modes, and with mpl svn versus your guisupport. >>> There are so many possible modes of operation and combinations of >>> versions and backends that all this will take some time to sort out. >>> >>> Can you give me simple examples of what does *not* work correctly when >>> you use mpl *svn* with ipython-newkernel, in either or both of the >>> console or gui modes, but *does* work with your guisupport version? >> >> The problems are when matplotlib and enthought.traits/pyface/mayavi >> stuff are used together. There are two types of problems: >> >> * Multiple apps are created. The enthought stuff used to not check >> for existing apps, but that has been fixed. > > That one is easy. > >> * Event loop is started multiple times. This one is more subtle and >> on some toolkits the error is not fatal. This problem shows up when >> IPython is run in terminal mode and event loop integration is handled >> through PyOS_InputHook. In these situations, if matplotlib or ets >> start the event loop themselves, IPython will hang. > > So, this can be checked with nothing but IPython and mpl. I think I may have > seen this with some combination of configurations, though not with what I > typically use. > >> >> Unfortunately, I am having trouble getting an install of both >> matplotlib svn and ets svn on the same machine, so I can't reproduce >> any of the failures ATM. I am trying to get things installed so I can >> reproduce the problems. > > At least twice in the last couple of years I have tried to get mayavi > compiled and running, without fouling up my development versions of numpy > and mpl. I never succeeded. Granted, I didn't allocate much time and > mental energy to it.
Yes, it can be a challenge, we will see how far I get... > In any case, with the help of your recent explanations, I expect we can make > mpl play by your suggested rules without sacrificing anything. Part of the > change for mpl 1.0 was to factor all of the show logic out into > backend_bases.py, leaving only the core mainloop call in the specific > backends. I hope we can keep that aspect, retaining the ability to work > with earlier ipython (0.10) and the ability for show to block or not > depending on the interactivity state. The refactored show logic does help a lot. I am pretty sure that my branch already does all the things you want though. If there are things that it is missing we can definitely add them. But when you get a chance to look at this, let us know and we can continue the discussion. Cheers, Brian > Eric > > > -- Brian E. Granger, Ph.D. Assistant Professor of Physics Cal Poly State University, San Luis Obispo bgran...@calpoly.edu elliso...@gmail.com ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel