[SciPy-dev] [Numpy-discussion] Re: numpy/scipy some remarks

Robert Kern robert.kern at gmail.com
Wed Jan 18 12:07:02 EST 2006


Fernando Perez wrote:
> Travis Oliphant wrote:
> 
>>>3) pkgload() exists to support the loading of subpackages. It does not reach
>>>into numpy.dft or numpy.linalg at all. It is not relevant to this issue.
>>>
>>>4) There are some places in numpy that use numpy.dual.
>>>
>>>I think we can address all of your concerns by changing #4.
>>
>>This is an accurate assessment.  However,  I do not want to eliminate 
>>number 4 as I've mentioned before.   I think there is a place for having 
>>functions that can be over-written with better versions.   I agree that 
>>it could be implemented better, however, with some kind of register 
>>function instead of automatically looking in scipy...
> 
> Mmh, I think I'm confused then:

So am I, now!

> it seemed to me that pkgload() WAS overwriting 
> numpy names, from the messages which the environment variable controls.  Is 
> that not true?  Here's a recent thread:
> 
> http://aspn.activestate.com/ASPN/Mail/Message/scipy-dev/2974044
> 
> where this was shown:
> 
> In [3]: import scipy
> Overwriting fft=<function fft at 0x2000000001474668>  from
> scipy.fftpack.basic (was <function fft at 0x2000000001394a28>  from
> numpy.dft.fftpack)
> Overwriting ifft=<function ifft at 0x20000000014746e0>  from
> scipy.fftpack.basic (was <function inverse_fft at 0x2000000001394aa0>  from
> numpy.dft.fftpack)

[~]$ python
Python 2.4.1 (#2, Mar 31 2005, 00:05:10)
[GCC 3.3 20030304 (Apple Computer, Inc. build 1666)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
scipy.>>> scipy.pkgload(verbose=2)
Imports to 'scipy' namespace
----------------------------
__all__.append('io')
import lib -> success
Overwriting lib=<module 'scipy.lib' from
'/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/scipy-0.4.4.1307-py2.4-macosx-10.4-ppc.egg/scipy/lib/__init__.pyc'>
from
/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/scipy-0.4.4.1307-py2.4-macosx-10.4-ppc.egg/scipy/lib/__init__.pyc
(was <module 'numpy.lib' from
'/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/numpy-0.9.4.1849-py2.4-macosx-10.4-ppc.egg/numpy/lib/__init__.pyc'>
from
/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/numpy-0.9.4.1849-py2.4-macosx-10.4-ppc.egg/numpy/lib/__init__.pyc)
__all__.append('signal')
__all__.append('interpolate')
__all__.append('lib.lapack')
import cluster -> success
__all__.append('montecarlo')
__all__.append('fftpack')
__all__.append('sparse')
__all__.append('integrate')
__all__.append('optimize')
__all__.append('special')
import lib.blas -> success
__all__.append('linalg')
__all__.append('stats')
>>> import numpy
>>> numpy.lib
<module 'numpy.lib' from
'/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/numpy-0.9.4.1849-py2.4-macosx-10.4-ppc.egg/numpy/lib/__init__.pyc'>
>>> scipy.lib
<module 'scipy.lib' from
'/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/scipy-0.4.4.1307-py2.4-macosx-10.4-ppc.egg/scipy/lib/__init__.pyc'>

[Ignore the SVN version numbers. They are faked. I was using checkouts from last
night.]

> I understood this as 'scipy.fftpack.basic.fft overwrote 
> numpy.dft.fftpack.fft'.  Does this then not affect the numpy namespace at all?

If it does, then I agree with you that this should change.

> I also would like to propose that, rather than using an environment variable, 
> pkgload() takes a 'verbose=' keyword (or 'quiet=').  I think it's much cleaner 
> to say
> 
> pkgload(quiet=1) or pkgload(verbose=0)
> 
> than relying on users configuring env. variables for something like this.

It does take a verbose keyword argument.

-- 
Robert Kern
robert.kern at gmail.com

"In the fields of hell where the grass grows high
 Are the graves of dreams allowed to die."
  -- Richard Harter




More information about the NumPy-Discussion mailing list