AttributeError: 'module' object has no attribute 'CallLater'

Hi all,

I found a new bug

$HOME=/home/nwagner
matplotlib data path /usr/lib/python2.4/site-packages/matplotlib/mpl-data
loaded rc file /home/nwagner/matplotlibrc
matplotlib version 0.98.3rc1
verbose.level helpful
interactive is False
units is False
platform is linux2
CONFIGDIR=/home/nwagner/.matplotlib
Using fontManager instance from /home/nwagner/.matplotlib/fontManager.cache
backend WXAgg version 2.5.3.1

     spy(K_bc)
   File "/usr/lib/python2.4/site-packages/matplotlib/pyplot.py", line 2237, in spy
     b = ishold()
   File "/usr/lib/python2.4/site-packages/matplotlib/pyplot.py", line 466, in ishold
     return gca().ishold()
   File "/usr/lib/python2.4/site-packages/matplotlib/pyplot.py", line 566, in gca
     ax = gcf().gca(**kwargs)
   File "/usr/lib/python2.4/site-packages/matplotlib/pyplot.py", line 270, in gcf
     return figure()
   File "/usr/lib/python2.4/site-packages/matplotlib/pyplot.py", line 247, in figure
     FigureClass=FigureClass,
   File "/usr/lib/python2.4/site-packages/matplotlib/backends/backend_wxagg.py", line 119, in new_figure_manager
     frame = FigureFrameWxAgg(num, fig)
   File "/usr/lib/python2.4/site-packages/matplotlib/backends/backend_wx.py", line 1332, in __init__
     self.canvas = self.get_canvas(fig)
   File "/usr/lib/python2.4/site-packages/matplotlib/backends/backend_wxagg.py", line 32, in get_canvas
     return FigureCanvasWxAgg(self, -1, fig)
   File "/usr/lib/python2.4/site-packages/matplotlib/backends/backend_wx.py", line 734, in __init__
     self.idletimer = wx.CallLater(1,self._onDrawIdle)
AttributeError: 'module' object has no attribute 'CallLater'

Nils

Nils Wagner wrote:

Hi all,

I found a new bug

$HOME=/home/nwagner
matplotlib data path /usr/lib/python2.4/site-packages/matplotlib/mpl-data
loaded rc file /home/nwagner/matplotlibrc
matplotlib version 0.98.3rc1
verbose.level helpful
interactive is False
units is False
platform is linux2
CONFIGDIR=/home/nwagner/.matplotlib
Using fontManager instance from /home/nwagner/.matplotlib/fontManager.cache
backend WXAgg version 2.5.3.1

     spy(K_bc)
   File "/usr/lib/python2.4/site-packages/matplotlib/pyplot.py", line 2237, in spy
     b = ishold()
   File "/usr/lib/python2.4/site-packages/matplotlib/pyplot.py", line 466, in ishold
     return gca().ishold()
   File "/usr/lib/python2.4/site-packages/matplotlib/pyplot.py", line 566, in gca
     ax = gcf().gca(**kwargs)
   File "/usr/lib/python2.4/site-packages/matplotlib/pyplot.py", line 270, in gcf
     return figure()
   File "/usr/lib/python2.4/site-packages/matplotlib/pyplot.py", line 247, in figure
     FigureClass=FigureClass,
   File "/usr/lib/python2.4/site-packages/matplotlib/backends/backend_wxagg.py", line 119, in new_figure_manager
     frame = FigureFrameWxAgg(num, fig)
   File "/usr/lib/python2.4/site-packages/matplotlib/backends/backend_wx.py", line 1332, in __init__
     self.canvas = self.get_canvas(fig)
   File "/usr/lib/python2.4/site-packages/matplotlib/backends/backend_wxagg.py", line 32, in get_canvas
     return FigureCanvasWxAgg(self, -1, fig)
   File "/usr/lib/python2.4/site-packages/matplotlib/backends/backend_wx.py", line 734, in __init__
     self.idletimer = wx.CallLater(1,self._onDrawIdle)
AttributeError: 'module' object has no attribute 'CallLater'

It looks like this was introduced in wxPython 2.7.1: http://mail.python.org/pipermail/python-announce-list/2006-October/005326.html

I have changed backend_wx to use the backwards-compatible alias, FutureCall.

Eric