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

Reply via email to