NIPY Code Base
NIPY is open source and the development version is freely available. The development code is ALPHA quality. If you are trying to get some work done wait until we have a stable release. For now, the code will only be of interest to developers.
Nipy Code
News
During the recent Nipy Sprint, we switched our source control from subversion to bazaar and moved our source tree over to nipy launchpad.
Be warned, the code is under heavy development and is guaranteed to change much over the next couple of months. This will involve major changes to the public API, not just a refactoring of the underlying code. Downloads of the source code should only be done by developers.
Here are some quick and dirty instructions for getting and installing the source code. Currently we depend on (or at least many of us are developing with) the numpy-trunk, scipy-trunk and matplotlib-0.91.2 with this patch applied for wx to work and mouse scrolling. In the near future we will set our dependencies on numpy 1.0.5 and scipy 0.7, when they are released.
The main nipy page on launchpad.
Getting the source from launchpad
cburns temp$ pwd /Users/cburns/src/temp cburns temp$ bzr branch lp:nipy lp:nipy is redirected to http://bazaar.launchpad.net/~nipy-developers/nipy/trunk/ Branched 1534 revision(s). cburns temp$ ls nipy
Build and install
cburns nipy$ python setup.py build ... # I install in a local directory. cburns nipy$ python setup.py install --prefix=$HOME/local # Others may install in the default site-packages directory cburns nipy$ sudo python setup.py install
Applying the matplotlib patch
I checked out the release tag using svn, then applied the patch. Then I can use svn diff to keep track of my local edits. I agree, this should be handled better, but it's what we've got for the moment.
cburns temp$ svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/tags/v0_91_2 matplotlib-0.91.2 cburns matplotlib-0.91.2$ patch -p0 < mpl_wx_scroll.patch
-- ChristopherBurns -- 28 Mar 2008
Old Installs
Note : this section is obsolete since the switch from the svn server to the launchpad server. The fff code is still stored on the svn server, still, so this instructions are left here.
The NIPY code is managed by the Subversion (SVN) repository management system and you can access it online here. You can also download via anonymous SVN or through a SVN account.
Becoming an NIPY developer is very easy, once you have Subversion installed.
Overview
NIPY depends on the following tools
- Install NumPy
- http://svn.scipy.org/svn/numpy/tags/1.0.3.1 (1.0.3.1 is the target version for compatibility with Nipy)
- requires full blas, lapack implementation such as ATLAS.
- SciPy
- http://svn.scipy.org/svn/scipy/tags/0.5.2.1 (This is the target scipy version 0.5.2.1)
- (in addition to above) requires umfpack.
- http://svn.scipy.org/svn/scipy/tags/0.5.2.1 (This is the target scipy version 0.5.2.1)
- Install matplotlib
- Several important dependencies
- netcdf
- minc
We are currently using the following versions of numpy (1.0.3.1) , scipy (0.5.2.1) and matplotlib(0.90). See instructions for specific distributions below, and links above for instructions. Matplotlib 0.90 has now been released and will also be supported as packages become available.
Distribution specific howtos
These instructions have been tested on completely fresh installs and include all dependencies and tools required.
These instructions are less complete and require further work to ensure they work "out of the box".
Modify
Once NIPY has been installed initially, the following development cycle should be followed when making modifications. When making changes, please be sure to follow the DevelopmentGuidelines.
- Check out the latest code
svn co http://neuroimaging.scipy.org/svn/ni/ni/trunk nipy-trunk
- (Optional) Check out and install the latest test data
svn co http://neuroimaging.scipy.org/svn/ni/data/trunk nipy-data cd nipy-data/fmri python setup.py cd ../..
- Go to NIPY dir and build NIPY
cd nipy-trunk python setup.py build_ext --inplace
- Test the code
python import neuroimaging neuroimaging.test()
- Modify the code
- Repeat 3. to reinstall it
- Try it out
Submit
There are 2 ways to submit modifications to the code:
Patch
- Submit a patch if it's good! Go to NIPY dir and do:
svn diff > my_cool_patch.diff
- Attach my_cool_patch.diff to an email and send it over to nipy-dev for review & checkin.
SVN Write Access
For write access, send a request to the NIPY developer's list.
Attachments
- mpl_wx_scroll.patch (1.2 kB) -
Patch for mpl 0.91.2. Fix wx bug and add scrolling
, added by benjamin.thyreau on 04/03/08 08:31:24.
