John Hunter wrote:
> On Mon, Aug 3, 2009 at 2:40 PM, Eric Firing<[email protected]> wrote:
>> John Hunter wrote:
>>> On Mon, Aug 3, 2009 at 2:15 PM, John Hunter<[email protected]> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel