[SciPy-dev] MCMC, Kalman Filtering, AI for SciPy?
Robert Kern
rkern at ucsd.edu
Thu Sep 30 00:41:17 CDT 2004
Charles Harris wrote:
[snip]
> I agree that search and indexing are the best ways to find stuff, but I
> am mostly concerned as to where to commit stuff. Clustering, where does
> that go?
scipy.cluster I would imagine. ;-)
> Lattice methods, where do they go? How about useful data
> structures or combinatorics? So on and so forth. I think the upper level
> GAMS categories cover sufficient range that most things can be put into
> a directory without embarrassment. As to the detailed breakdown in the
> GAMS sub-classifications, I am not so sure.
To make the discussion a bit more concrete, here is an example directory
structure corresponding to the top-level GAMS classifications. The names
are all my own, so feel free to pretend they are something more to your
liking.
scipy/
analysis/
numbertheory/
functions/
linalg/
interpolation/
rootfinding/
optimization/
calculus/
diffeq/
integraltransforms/
approximation/
probstat/
simulation/
datahandling/
symbolic/
geometry/
graphics/
service/
develop/
other/
Now that I see it, it is somewhat appealing. I would probably want to
break up some of those into two or more top-level groups. I definitely
don't want to see too many subpackages under each of the top-level
groups ("Flat is better than nested.").
Fernando, could you give an example or two where you would want to
replicate a function across sub-packages? I'm wary of doing so as there
is already the enormous amount of replication with respect to, at least,
the base Numeric functions. Try scipy.special.<tab> in IPython. I
realize what you're proposing doesn't even come close to that, but I'd
like an example in any case.
And since we are talking about re-organization, is there anything we can
do about the problem I just mentioned? It wreaks havoc with not only
tab-completion but also automatic documentation generation [1]. Is it
practical to be careful about what we import into __init__.py? By which
I mean not doing "from foo import *" in __init__.py where foo.py does
"from scipy_base import *". On the other hand, explicitly listing all of
the names in special is gonna be a major pain and fragile to boot.
[1] http://www.scipy.org/documentation/apidocs/scipy/scipy.special.html
--
Robert Kern
rkern at ucsd.edu
"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter
More information about the Scipy-dev
mailing list