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

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.

  1. Check out the latest code
    svn co http://neuroimaging.scipy.org/svn/ni/ni/trunk nipy-trunk
    
  2. (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 ../..
    
  3. Go to NIPY dir and build NIPY
    cd nipy-trunk
    python setup.py build_ext --inplace
    
  4. Test the code
    python
    import neuroimaging
    neuroimaging.test()
    
  5. Modify the code
  6. Repeat 3. to reinstall it
  7. Try it out

Submit

There are 2 ways to submit modifications to the code:

Patch

  1. Submit a patch if it's good! Go to NIPY dir and do:
    svn diff > my_cool_patch.diff
    
  2. 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