|
From: Daniel W. <dan...@ni...> - 2006-12-21 17:39:09
|
Numeric is dying slowly and being replaced by numpy.
With this in mind, I have updated pysparse to use the new numpy, this
is all on a branch at the moment.
It was straightforward matter of changing the imported header files
from Numeric's to numpy's. I am sending this email
to check to see if everybody is happy with the changes that have been
made. If there are no objections, I can merge back
onto the trunk and maybe make a new release. Changes and issues are
as follows:
- Created a C macro defined from setup.py that either imports
numpy's or Numeric's headers depending
on the flag "use_numpy". The C macro was confusing me for
awhile, but I think it works
now.
- I have changed the name space of itsolvers, spmatrix, jdsym etc
to all lie under pysparse. So, instead of
>>> import spmatrix
you do
>>> from pysparse import spmatrix
This change stops site-packages from being polluted. At the
moment the branch version is using pysparse_numpy
or pysparse_Numeric as the pysparse name space for testing
purposes.
- The branch can be checked out via:
$ cvs -d:ext:ui...@py...:/cvsroot/pysparse
co -r branch-numpy pysparse
- I have updated the Examples and Test directories to import
from pysparse. They all seem to work apart from stuff that was broken
already.
- I got rid of pysparse_version.py and replaced it with an
__init__.py in Lib, which does the imports and holds a __version__
variable.
So you can now do:
>>> import pysparse_numpy
>>> print pysparse_numpy.__version__
0.34.032-numpy
- I think the default flag should be use_numpy=True since most
users will now be getting numpy rather than Numeric. This could
be automated with a try and except, which tests for the
availability of numpy or Numeric. What do you think?
- You can diff from your working copy of pysparse with "cvs diff
-c -r branch-numpy" to check the changes.
- Is it worth bumping the version number of pysparse to 1.0,
since we will be breaking the name space (interface change)?
- If you are compiling against numpy, the numpy header files
don't seem to be going into the right place at least on my two
computers.
I haven't resolved this problem yet. For now, I was just
copying the .h files from .../site-packages/python/numpy/core/
include/ to Include/Lib/numpy
in my working copy of pysparse.
Merry Christmas!
--
Daniel Wheeler
|