John Hunter wrote: > On Mon, Aug 3, 2009 at 2:40 PM, Eric Firing<efir...@hawaii.edu> wrote: >> John Hunter wrote: >>> On Mon, Aug 3, 2009 at 2:15 PM, John Hunter<jdh2...@gmail.com> wrote: >>> >>>> This may have been Eric's change to clean up the pylab imports -- all >>>> the mlab imports come before the pylab imports. Was this intentional? >>>> My guess is not, since np.loadtxt is the replacement for pylab.load. >>>> I prefer to do what we are currently doing, which is issue the >>>> deprecation warning, but I wanted to at least find out if this change >>>> was intentional (I noticed it because it broke >>>> docs/pyplot/plotmap.py), which tries to load some basemap data: >>> Correction, I had confused myself for a minute thinking numpy.load was >>> the old numpy.load which handled plain text files, ie what became >>> loadtxt. np.load and np.save are too important as regular numpy >>> functions, so I think now would be a good time to remove the mlab >>> versions from the pylab namespace. The question is : how best to do >>> it? Unfortunately, a lot of people are still using the old load/save >>> and the deprecation warnings are only in 0.99 but not 0.98 so we have >>> not done the typical deprecation cycle. >>> >>> We could create a special purpose deprecation function in pylab which >>> raises a deprecation error: 'use np.loadtxt for plain text, np.load >>> for binary numpy arrays, or mlab.load for old pylab.load >>> compatability'). Ie, not have a functional load/save in the pylab >>> namespace at all. >> That is still making an abrupt break in functionality. It could be made >> more gentle by having the pylab wrapper do something like: >> >> try: >> return np.load(*args, **kwargs) >> except: # deliberately violate the rule against catching everything >> warnings.warn("deprecation etc.") >> return mlab.load(*args, **kwargs) > > I thought about this but decided it would be better not to introduce > the additional complexity (yet another load), as it may lead to some > hard to diagnose bugs. I would prefer do one release cycle which > warns and calls mlab.load, but I think I prefer over that the a plain > ol error like
John, Your solution is certainly fine with me. Eric > > > In [3]: load('jdh') > --------------------------------------------------------------------------- > NotImplementedError Traceback (most recent call last) > > /home/jdhunter/<ipython console> in <module>() > > /home/jdhunter/dev/lib/python2.5/site-packages/matplotlib/pylab.pyc in > load(*args, **kwargs) > 253 > 254 def load(*args, **kwargs): > --> 255 raise NotImplementedError(load.__doc__) > 256 load.__doc__ = """\ > 257 pylab no longer provides a load function, though the old pylab > > NotImplementedError: pylab no longer provides a load function, > though the old pylab > function is still available as matplotlib.mlab.load (you can refer > to it in pylab as"mlab.load". However, for plain text files, we > recommend numpy.loadtxt, which was inspired by the old pylab.load > but now has more features. For loading numpy arrays, we recommend > numpy.load, and its analog numpy.save, which are available in > pylab as np.load and np.save. > > > In [4]: save('jdh') > --------------------------------------------------------------------------- > NotImplementedError Traceback (most recent call last) > > /home/jdhunter/<ipython console> in <module>() > > /home/jdhunter/dev/lib/python2.5/site-packages/matplotlib/pylab.pyc in > save(*args, **kwargs) > 266 > 267 def save(*args, **kwargs): > --> 268 raise NotImplementedError(save.__doc__) > 269 save.__doc__ = """\ > 270 pylab no longer provides a save function, though the old pylab > > NotImplementedError: pylab no longer provides a save function, > though the old pylab > function is still available as matplotlib.mlab.save (you can still > refer to it in pylab as "mlab.save". However, for plain text > files, we recommend numpy.savetxt. For saving numpy arrays, > we recommend numpy.save, and its analog numpy.load, which are > available in pylab as np.save and np.load. ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel