On 11/14/2013 08:24 PM, Jason Grout wrote: > On 10/16/13 3:46 PM, Jason Grout wrote: >> On 10/16/13 1:58 PM, Michael Droettboom wrote: >>> Sorry to take so long to get to this. This is a nice piece of work. >>> >>> The most obvious thing is that this is a copy-and-paste of the existing >>> WebAgg backend -- and maintaining the two is going to be much harder >>> than building both out of the same pieces. As of 6389d14f, the WebAgg >>> backend was refactored so that the transport that it uses to communicate >>> to the browser is no longer hard coded. This was done in large part to >>> support working with IPyhton in this way. (That is, it used to only >>> communicate with the browser through Tornado, but now it can be anything >>> that can send bits back and forth). There's an example of this in >>> `examples/user_interfaces/embedding_webagg.py` that shows how to do this >>> (using Tornado, but again, it doesn't have to be). There's no guarantees >>> that this interface is sufficient, so it may require some back and forth >>> on this to make it all work. >>> >>> I think the first thing I would do would be to refactor this to use >>> that. It's a little hard to tell what you've changed from the original >>> WebAgg backend to get it to support IPython. If it were built on top >>> of, rather than in addition to, WebAgg, that would be more obvious. >> Thanks for the feedback. I was thinking that a refactor to pull out the >> communication layer would be really nice. >> >> I didn't change the WebAgg backend because I figured you wanted it >> around still. I figured a plain old diff with the file would reveal >> changes. >> >> Anyways, thanks for the pointer to the refactor commit. I hope to look >> at this again sometime soon. >> > Following a very helpful conversation with Michael this morning in the > dev hangout, I got this working with the current master (of matplotlib > and ipython). The refactoring made the code much better; thanks! > > I updated the pull request at > https://github.com/matplotlib/matplotlib/pull/2524 > > To test this, run IPython (master branch, to get the comm commits), and > put this in a cell: > https://github.com/matplotlib/matplotlib/pull/2524#issuecomment-28539813 > > Then you can execute something like: > > from matplotlib.figure import Figure > import numpy as np > fig = Figure() > a = fig.add_subplot(111) > t = np.arange(0.0, 3.0, 0.01) > s = np.sin(2 * np.pi * t) > a.plot(t, s) > CommFigure(fig) > > and get a live figure in the IPython notebook that uses the comm > messaging infrastructure. > > Michael---do you have time to take it from here? > >
This is great. I can see what next steps are needed, but probably not for a few days... Mike -- _ |\/|o _|_ _. _ | | \.__ __|__|_|_ _ _ ._ _ | ||(_| |(_|(/_| |_/|(_)(/_|_ |_|_)(_)(_)| | | http://www.droettboom.com ------------------------------------------------------------------------------ Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk _______________________________________________ Matplotlib-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-devel