Enhancement to matplotlib's PyQt4 backend

Darren,

Have you happened to review Pierre's patch for the toolbar
improvement? I am interested to see this integrated in mpl soon.

Thanks.

···

On Mon, Nov 9, 2009 at 2:43 PM, Pierre Raybaut <contact@...604...> wrote:

Hi,

I've already sent everything to Darren. I don't have any news but I
guess that it will be integrated soon.

Pierre

2009/11/9 Gökhan Sever <gokhansever@...149...>:

Hi Pierre,

What is the latest status on this improvement? Will you give a patch
to the matplotlib?

Please let me know.

Thanks

On Sat, Jun 6, 2009 at 9:49 AM, Pierre Raybaut <contact@...604...> wrote:

2009/4/28 Dave Peterson <dpeterson@...492...>:

Darren Dale wrote:

On Tue, Apr 28, 2009 at 12:19 PM, Pierre Raybaut <contact@...604...> >>>> wrote:

2009/4/28 John Hunter <jdh2358@...149...>:
>
>
> On Tue, Apr 28, 2009 at 8:18 AM, Pierre Raybaut <contact@...604...> >>>>> > wrote:
>>
>> Hi all,
>>
>> I would like to contribute to matplotlib with this enhancement for the
>> PyQt4 backend: the idea is to add a toolbar button to configure figure
>> options (axes, curves, ...).
>>
>> It's based on a tiny module called formlayout to generate PyQt4 form
>> dialog automatically.
>>
>> Some screenshots:
>> http://code.google.com/p/formlayout/
>>
>> So, if you're interested (all the following is GPL2):
>>
>> *matplotlib patch*
>>
>> In FigureManagerQT.__init__, added:
>> self.canvas.axes = self.canvas.figure.add_subplot(111)
>>
>> In NavigationToolbar2QT._init_toolbar, added:
>> a = self.addAction(self._icon("customize.png"), 'Customize',
>> self.edit_parameters)
>> a.setToolTip('Edit curves line and axes parameters')
>>
>> Added the following method in NavigationToolbar2QT:
>> def edit_parameters(self):
>> from figureoptions import figure_edit
>> figure_edit(self.canvas, self)
>>
>> *additionnal modules and data*
>>
>> formlayout.py (http://code.google.com/p/formlayout/)
>> figureoptions.py (http://code.google.com/p/PyQtShell/)
>> customize.png (http://code.google.com/p/PyQtShell/)
>
> Hi Pierre -- this looks very nice (the last link is broken though , I
> get a
> 404 error). We would be happy to include this in matplotlib or as a

Here is the last link:
http://code.google.com/p/pyqtshell/

> toolkit. To contribute it to to mpl, the license needs to be
> matplotlib
> compatible
> (http://matplotlib.sourceforge.net/devel/coding_guide.html#licenses) but
> we
> have more licensing flexibility in a toolkit, though we prefer to keep
> everything BSD compatible where possible. And of course you would need
> to
> agree to maintain it :slight_smile: but I think many users would appreciate a GUI
> plot
> configuration dialog.

I was not aware of this license restriction in matplotlib... I fully
understand the motivation, of course, but still: I wrote all this on
my free time which means no PyQt4 commercial license, so it can't be
anything but GPL. Sorry...

I think you have overlooked a subtlety of PyQt4's license. The author of
PyQt4 wrote on the enthought-dev mailing list:

"PyQt is GPL but has exceptions that allow it to be used with BSD code -
hence it's Ok for TraitsBackendQt to be BSD.

However, the exception imposes additional conditions which, to all intents
and purposes, infects the code with the GPL. To be fair to people that
should be made clear in any text.

It's still a good idea for TraitsBackendQt to use a BSD license because it
allows commercial (ie. non-GPL) users to use it without problems."

Darren

I think it might be worth contacting the PyQt folks (Phil Thompson) about
this. I think there might be some differences here because Phil was the
author of TraitsBackendQt and thus his efforts didn't quite fall under the
"develop under a free license, your results needs to be GPL" clause Qt/PyQt
have in their licensing.

-- Dave

Hi all,

Dave, you are absolutely right.

Last week-end, I found myself surfing on PyQt's website and I told to
myself: what about re-reading the license? (always a pleasure) And
surprisingly, I found out that anyone using the GPL version of PyQt
can release source code under a very permissive license (like MIT or
BSD) thanks to the PyQt-GPL Exception, as long as PyQt itself is not
part of the distributed package (otherwise the whole package has to be
licensed under GPL) - and with other little restrictions. It was a
surprise because I've read here and there a lot of things on PyQt
license and the general idea was "if you write PyQt code without the
commercial license, your code *must* be licensed under GPL" - I can
tell now that it's not true (to be absolutely certain about it, I even
asked to Phil Thompson to confirm this, and he did).

So, I switched all the code I was referring to in my original e-mail
to MIT license.
I guess now it could be integrated to matplotlib Qt4 backend?

formlayout (generate option dialogs):
http://code.google.com/p/formlayout/

pydee (IDE which integrates matplotlib and the option dialog):
http://code.google.com/p/pydee/
Meanwhile, thanks to the brand new Google-code Mercurial support, you
may browse the source code if you like:
http://code.google.com/p/pydee/source/browse/pydeelib/widgets/figureoptions.py

Cheers,
Pierre

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises
looking to deploy the next generation of Solaris that includes the latest
innovations from Sun and the OpenSource community. Download a copy and
enjoy capabilities such as Networking, Storage and Virtualization.
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

--
Gökhan

--
Gökhan

No, unfortunately I have not had time to review the patch. It is on my list.

···

On Mon, Nov 9, 2009 at 3:47 PM, Gökhan Sever <gokhansever@...149...> wrote:

Darren,

Have you happened to review Pierre's patch for the toolbar
improvement? I am interested to see this integrated in mpl soon.

Thanks.

On Mon, Nov 9, 2009 at 2:43 PM, Pierre Raybaut <contact@...604...> wrote:

Hi,

I've already sent everything to Darren. I don't have any news but I
guess that it will be integrated soon.

Pierre

2009/11/9 Gökhan Sever <gokhansever@...149...>:

Hi Pierre,

What is the latest status on this improvement? Will you give a patch
to the matplotlib?

Please let me know.

Thanks

On Sat, Jun 6, 2009 at 9:49 AM, Pierre Raybaut <contact@...604...> wrote:

2009/4/28 Dave Peterson <dpeterson@...492...>:

Darren Dale wrote:

On Tue, Apr 28, 2009 at 12:19 PM, Pierre Raybaut <contact@...604...> >>>>> wrote:

2009/4/28 John Hunter <jdh2358@...149...>:
>
>
> On Tue, Apr 28, 2009 at 8:18 AM, Pierre Raybaut <contact@...604...> >>>>>> > wrote:
>>
>> Hi all,
>>
>> I would like to contribute to matplotlib with this enhancement for the
>> PyQt4 backend: the idea is to add a toolbar button to configure figure
>> options (axes, curves, ...).
>>
>> It's based on a tiny module called formlayout to generate PyQt4 form
>> dialog automatically.
>>
>> Some screenshots:
>> http://code.google.com/p/formlayout/
>>
>> So, if you're interested (all the following is GPL2):
>>
>> *matplotlib patch*
>>
>> In FigureManagerQT.__init__, added:
>> self.canvas.axes = self.canvas.figure.add_subplot(111)
>>
>> In NavigationToolbar2QT._init_toolbar, added:
>> a = self.addAction(self._icon("customize.png"), 'Customize',
>> self.edit_parameters)
>> a.setToolTip('Edit curves line and axes parameters')
>>
>> Added the following method in NavigationToolbar2QT:
>> def edit_parameters(self):
>> from figureoptions import figure_edit
>> figure_edit(self.canvas, self)
>>
>> *additionnal modules and data*
>>
>> formlayout.py (http://code.google.com/p/formlayout/)
>> figureoptions.py (http://code.google.com/p/PyQtShell/)
>> customize.png (http://code.google.com/p/PyQtShell/)
>
> Hi Pierre -- this looks very nice (the last link is broken though , I
> get a
> 404 error). We would be happy to include this in matplotlib or as a

Here is the last link:
http://code.google.com/p/pyqtshell/

> toolkit. To contribute it to to mpl, the license needs to be
> matplotlib
> compatible
> (http://matplotlib.sourceforge.net/devel/coding_guide.html#licenses) but
> we
> have more licensing flexibility in a toolkit, though we prefer to keep
> everything BSD compatible where possible. And of course you would need
> to
> agree to maintain it :slight_smile: but I think many users would appreciate a GUI
> plot
> configuration dialog.

I was not aware of this license restriction in matplotlib... I fully
understand the motivation, of course, but still: I wrote all this on
my free time which means no PyQt4 commercial license, so it can't be
anything but GPL. Sorry...

I think you have overlooked a subtlety of PyQt4's license. The author of
PyQt4 wrote on the enthought-dev mailing list:

"PyQt is GPL but has exceptions that allow it to be used with BSD code -
hence it's Ok for TraitsBackendQt to be BSD.

However, the exception imposes additional conditions which, to all intents
and purposes, infects the code with the GPL. To be fair to people that
should be made clear in any text.

It's still a good idea for TraitsBackendQt to use a BSD license because it
allows commercial (ie. non-GPL) users to use it without problems."

Darren

I think it might be worth contacting the PyQt folks (Phil Thompson) about
this. I think there might be some differences here because Phil was the
author of TraitsBackendQt and thus his efforts didn't quite fall under the
"develop under a free license, your results needs to be GPL" clause Qt/PyQt
have in their licensing.

-- Dave

Hi all,

Dave, you are absolutely right.

Last week-end, I found myself surfing on PyQt's website and I told to
myself: what about re-reading the license? (always a pleasure) And
surprisingly, I found out that anyone using the GPL version of PyQt
can release source code under a very permissive license (like MIT or
BSD) thanks to the PyQt-GPL Exception, as long as PyQt itself is not
part of the distributed package (otherwise the whole package has to be
licensed under GPL) - and with other little restrictions. It was a
surprise because I've read here and there a lot of things on PyQt
license and the general idea was "if you write PyQt code without the
commercial license, your code *must* be licensed under GPL" - I can
tell now that it's not true (to be absolutely certain about it, I even
asked to Phil Thompson to confirm this, and he did).

So, I switched all the code I was referring to in my original e-mail
to MIT license.
I guess now it could be integrated to matplotlib Qt4 backend?

formlayout (generate option dialogs):
http://code.google.com/p/formlayout/

pydee (IDE which integrates matplotlib and the option dialog):
http://code.google.com/p/pydee/
Meanwhile, thanks to the brand new Google-code Mercurial support, you
may browse the source code if you like:
http://code.google.com/p/pydee/source/browse/pydeelib/widgets/figureoptions.py

Cheers,
Pierre

------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises
looking to deploy the next generation of Solaris that includes the latest
innovations from Sun and the OpenSource community. Download a copy and
enjoy capabilities such as Networking, Storage and Virtualization.
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel

--
Gökhan

--
Gökhan