MEP 27 Backend Refactor (Gcf)

Sorry, for the mail the other day everyone.

···

On Tue, Mar 24, 2015 at 8:13 PM, Achyut Rastogi <rastogiachyut@…149…> wrote:

Nope, my first time on mailing lists, I think I also did a reply to all once by mistake!!

On Tue, Mar 24, 2015 at 6:25 PM, OceanWolf <juichenieder-nabb@…705…> wrote:

My pleasure.

Were you aware that you were just replying to me and not to the

mailing list btw?

  On 24/03/15 14:31, Achyut Rastogi

wrote:

Thank you for the explanation OceanWolf

      On Tue, Mar 24, 2015 at 5:37 PM,

OceanWolf <juichenieder-nabb@…705…>
wrote:

          Correct, I meant that

I don’t see my refactor of the webagg backend affecting
the refactor I have done in the main PR. I do the
refactor of the core classes in https://github.com/matplotlib/matplotlib/pull/4143
and then make separate branches (which will turn into PRs
once the main backend has finished) for the individual
backends. For example refactoring the 2nd backend on my
list (Tk) caused me to make some small adjustments to the
base refactor. After then I have had no problems, so when
I said ``but nothing

          that breaks the main PR'', I meant it as an affirmation of

that.

On 24/03/15 06:58, Achyut Rastogi wrote:

                    Changes made during refactors are always

backwards compatible right? I just wanted to
know what you mean by “breaking the main PR”?

Thank you

                    On Mon, Mar 23, 2015 at

10:30 PM, OceanWolf <juichenieder-nabb@…705…>
wrote:

                      Just updated the MEP

with more info. From what I gather, I don’t
see

                      any problems.  Refactoring WebAgg makes for

slow progress, but nothing

                      that breaks the main PR.  As far as I can tell

it can get merged while I

                      work on the other backends and submit them as

separate PRs. With this

                      main branch merged we can then

progress/finalise MEPs 22 and 23.

                      On 02/03/15 20:20, OceanWolf wrote:

                      > Hi everyone,

                      > Over the past week or so I have been

working on what I now dub MEP27

                      > <[https://github.com/matplotlib/matplotlib/wiki/MEP27](https://github.com/matplotlib/matplotlib/wiki/MEP27)
                      > 

. I have already

                      > gotten quite far with it, but as I do

some hefty changes (no breakages, and

                      > virtually 100% backward compatible) I

wanted to make sure I got some input

                      > before continuing.  I have now gotten far

enough to know that the base code

                      > should work without any more tweaking.

                      >

                      > Best,

                      > OceanWolf

                      >

                      >

                      >

                      > --

                      > View this message in context: [http://matplotlib.1069221.n5.nabble.com/MEP-27-Backend-Refactor-Gcf-tp45032.html](http://matplotlib.1069221.n5.nabble.com/MEP-27-Backend-Refactor-Gcf-tp45032.html)

                      > Sent from the matplotlib - devel mailing

list archive at Nabble.com.

                      >

                      >

                      > Dive into the World of Parallel

Programming The Go Parallel Website, sponsored

                      > by Intel and developed in partnership

with Slashdot Media, is your hub for all

                      > things parallel software development,

from weekly thought leadership blogs to

                      > news, videos, case studies, tutorials and

more. Take a look and join the

                      > conversation now. [http://goparallel.sourceforge.net/](http://goparallel.sourceforge.net/)

                      >

                      > Matplotlib-devel mailing list

                      > Matplotlib-devel@lists.sourceforge.net

                      > [https://lists.sourceforge.net/lists/listinfo/matplotlib-devel](https://lists.sourceforge.net/lists/listinfo/matplotlib-devel)

                      Dive into the World of Parallel Programming

The Go Parallel Website, sponsored

                      by Intel and developed in partnership with

Slashdot Media, is your hub for all

                      things parallel software development, from

weekly thought leadership blogs to

                      news, videos, case studies, tutorials and

more. Take a look and join the

                      conversation now. [http://goparallel.sourceforge.net/](http://goparallel.sourceforge.net/)

                      Matplotlib-devel mailing list

                      Matplotlib-devel@lists.sourceforge.net

                      [https://lists.sourceforge.net/lists/listinfo/matplotlib-devel](https://lists.sourceforge.net/lists/listinfo/matplotlib-devel)

Okay, just about finished WebAgg, but it has raised an interesting question about layout...
I started working to standardise using the way we do it on ``Gtk3``, i.e. using a pure vertical layout, adding elements from either the top or the bottom of the container and setting widgets (i.e. the canvas) as expandable. In my original version of this MEP I used a boolean to specify whether to add to the beginning or the end of the window's layout. ``Tk`` gave me the idea to extend past this and use string argument of 'top' or 'bottom', no real difference but just to keep it flexible for the future.

However now I rethink that strategy having converted Qt and now on WebAgg, perhaps we should conform around a Grid layout, by that I mean we have the following:

           North

···

----------------------------
    > >
E | | W
a | Centre | e
s | | s
t | | t
    > >
---------------------------
           South

For now we will just use Centre and South (with the canvas in Centre; and Toolbar/statusbar in South), but it also leaves it open for the future. If I recode it like this, I would make each 5 positions a box, with the compass points adding elements from the outside inwards which keeps the pattern explained above.

What do people think? I don't feel 100% comfortable for limiting ourselves to just one layout, but I can persuade myself that we have to decide on something and atm we only have a really adhoc system, so definitely an improvement, and should anything happen in the future to make us change our mind we can the workaround of using centre as our new starting point, or wait for a major release.

Looking forward to getting some feedback on this.