[Numpy-discussion] package vs module
perry at stsci.edu
Mon Jan 6 16:28:05 CST 2003
Back in December the issue of whether numarray should be a package
or set of modules came up. When I asked about the possibility
of making numarray a package (on the scipy mailing list but I
can't seem to find the thread where it was discussed), I got
only positive comments. The issue needs to be raised here also.
Is there any objection to making numarray package based?
The implications are that 3rd party modules (e.g. FFT)
will be imported as part of the package structure, i.e.,
from numarray.FFT import *
As usual there are advantages and disadvantages. The advantages
are that we will not have name collisions with existing Numeric
modules (currently we name FFT as FFT2 for this reason). It also
potentially reduces name collision issues in general. Most feel
it is a cleaner way to organize the software (at least based on
the feedback so far).
The main disadvantages I see so far are:
1) One will either have to change import statements in old code
to match the new style (a pain, but generally changing imports
is not terribly difficult since they are easy to identify) or
explicitly add the path to each 3rd party module to Python
Path (or some equivalent).
2) If numarray were accepted into the Python Standard Library, it
would be the first case (as far as I can tell) of a standard
library package where we would expect to add sub modules to
it (e.g., FFT)). Normally these would not be distributed with
the standard library, so some general mechanism will be needed
to allow numarray to find 3rd party packages outside of the
Python directory structure. For example, I don't think we can
require having people install FFT in the Standard Library
directory structure after Python is installed. Rather, we would
probably have numarray look for extension modules in a standard
named site-packages directory (or site-numarray?) or otherwise
check a numarraypath environmental variable so that
import numarray.FFT works properly. Perhaps others have ideas
about how to best handle this.
Any other issues being overlooked?
More information about the Numpy-discussion