On Wed, Feb 17, 2010 at 7:41 AM, Michiel de Hoon <[email protected]> wrote:
> An inconsistency in the definition of save_figure between different backends
> is causing this problem.
>
> The GTK backends use
> def save_figure(self, button):
>
> but the tkagg, qt, qt4, and macosx backends use
> def save_figure(self):
>
> so without the second argument. The line that is causing the error is
>
> self.canvas.toolbar.save_figure(self.canvas.toolbar)
>
> in backend_bases.py. This assumes that the save_figure method is defined as
> in the GTK backends.
>
> As far as I can tell, the GTK backend has the second argument because that is
> what pygtk passes when save_figure is called as a callback. The second
> argument is not actually used inside the method.
>
> So I would suggest the following:
>
> In backend_bases.py, change the offending line to
>
> self.canvas.toolbar.save_figure()
>
> and the backend_gtk, change the definition of the save_figure method to
>
> def save_figure(self, button-None):
>
> Any objections, anybody?
The base class signature is
def save_figure(self, *args):
'save the current figure'
raise NotImplementedError
But I think the problem is the line
self.canvas.toolbar.save_figure(self.canvas.toolbar)
it shouldn't be passing the toolbar in, but should just read
self.canvas.toolbar.save_figure()
We could make both changes -- make sure all the signatures of the
derived classes comply with
def save_figure(self, *args):
and remove the self.canvas.toolbar argument from the save_figure call.
Michiel, do you want to take the lead on this?
JDH
No?
------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users