[SciPy-dev] scipy.pkgload (was Re: Moving random.py)
Pearu Peterson
pearu at scipy.org
Tue Dec 20 05:27:28 CST 2005
Hi,
I have implemented hooks for scipy.pkgload(..) following the idea of
Fernando's scipy.mod_load(..) functions with few modifications. It's doc
string is given below.
I have renamed mod_load to pkgload because we have packages.
In addition to importing the packages to scipy namespace, scipy.pkgload
fills also scipy.__all__ list. Hooks for filling scipy.__doc__ remains to
be implemented, it's not difficult though.
Currently scipy.pkgload is a bit more verbose than `import scipy` used to
be but all the messages are sent to sys.stderr and some of these messages
indicate that other parts in scipy needs to be fixed, such as overwriting
scipy.test module with ScipyTest instance method etc. Also, `import
scipy` still does the full import but after scipy.pkgload is stabilized,
importing scipy the following will happen in scipy name space (according
to current info.py files):
import test
from test import ScipyTest
import base
from base import *
import basic
from basic import fft, ifft, rand, randn, linalg, fftpack, random
I would be interested to know which of these import statements are
important to people and which can be removed. For example, what would be
the recommended way to access array facilities:
from scipy.base import *
or
from scipy import *
? If the former, then we could remove `from base import *` statement.
To import full scipy, one needs to execute
import scipy
scipy.pkgload()
Regards,
Pearu
Type: instance
Base Class: scipy.PackageLoader
String Form: <scipy.PackageLoader instance at 0x403a21ac>
Namespace: Interactive
Constructor Docstring:
Manages loading SciPy packages.
Callable: Yes
Call def: scipy.pkgload(self, *packages, **options)
Call docstring:
Load one or more packages into scipy's top-level namespace.
Usage:
This function is intended to shorten the need to import many of
scipy's subpackages constantly with statements such as
import scipy.linalg, scipy.fft, scipy.etc...
Instead, you can say:
import scipy
scipy.pkgload('linalg','fft',...)
or
scipy.pkgload()
to load all of them in one call.
If a name which doesn't exist in scipy's namespace is
given, an exception [[WHAT? ImportError, probably?]] is raised.
[NotImplemented]
Inputs:
- the names (one or more strings) of all the scipy modules one
wishes to load into the top-level namespace.
Optional keyword inputs:
- verbose - integer specifying verbosity level [default: 0].
- force - when True, force reloading loaded packages [default:
False].
If no input arguments are given, then all of scipy's subpackages are
imported.
Outputs:
The function returns a tuple with all the names of the modules
which were actually imported. [NotImplemented]
EOM
More information about the Scipy-dev
mailing list