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.

Mike

On 10/10/2013 06:08 PM, Jason Grout wrote:
> I've been working on a backend based on the webagg backend, but that
> uses the IPython Comm architecture at
> https://github.com/ipython/ipython/pull/4195 to send messages instead of
> starting a server and opening websocket connections.  I have an initial
> version in my github ipython-comm branch (see
> https://github.com/jasongrout/matplotlib/compare/ipython-comm).  I'm
> getting confused about how the backend infrastructure works, though,
> like what the purpose for the FigureManager class is, etc.  I'm running
> out of time to work on this now, and I'm hoping that someone will take
> what work I've done here and get it working properly with the matplotlib
> architecture.  If not, I'll probably tinker with this more later.
>
> Thanks,
>
> Jason
>
> --
> Jason Grout
>
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
> the latest Intel processors and coprocessors. See abstracts and register >
> http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk
> _______________________________________________
> Matplotlib-devel mailing list
> Matplotlib-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel


-- 
                    _
|\/|o _|_  _. _ | | \.__  __|__|_|_  _  _ ._ _
|  ||(_| |(_|(/_| |_/|(_)(/_|_ |_|_)(_)(_)| | |

http://www.droettboom.com


------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

Reply via email to