Software controller for the best damn pulsar instrument in the world.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


GUPPI Controller

This is the software controller for GUPPI, "the best damn pulsar instrument in the world" (via GUPPI started with the name "Green Bank Ultimate Pulsar Processing Instrument", but really we just call it "guppi" (though it is ultimate).


Python Versions

The guppi controller was developed against Python 2.5 starting in 2008, and has also been tested against Python 2.4.

Manual Dependencies

Install guppi_daq first. This has its own dependencies, including (but not limited to) mysql-python, pyfits, and some slalib & shared memory stuff.

This project was developed against Optio's soaplib package, version 0.7.2. One of the enhancement requests on this project is to move away from SOAP entirely. Until that happens, you'll have to track down a pre-0.8 version of soaplib or update the project to use soaplib's successive (non-Optio) development. As a shortcut, this version is already available on Go there first:
cp -a soaplib-0.7.2dev_r27-py2.5.egg/soaplib somedestination

The matplotlib dependency (which depends on numpy and some GUI toolkit) might not install as easily as the others when installing from the Python package index, so manual intervention may be required here.

Install with Available Dependencies

With setuptools (from easy_install) installed:

python install --prefix=/path/to/guppi

Be sure to set a good prefix or remove it altogether. This command installs the guppi controller to the given prefix and the required dependencies as listed in to the site packages. python install may require administrative access when installing these dependencies. If dependencies are already installed, any user with write permissions to the prefix location should be able to install an updated version of the guppi controller.


Deployments use supervisord to manage all running processes for the guppi controller. Example configurations are available in the etc/ area of the project.


For various reasons, the guppi controller was never versioned. Instead use a datestring of Currently this datestring is set manually in

You can find your installed version by noting the version in the file path:

python -c 'import guppi; print guppi.__file__'

Developer Note

It is possible to use ipython with the guppi interpreter. Change:

exec /usr/bin/env python -i -c 'from guppi.interpreter import *' $@

in the guppi launch script (see scripts/guppi) to:

exec /usr/bin/env ipython -i -c 'from guppi.interpreter import *' $@

Note however that this breaks the tab completer as written. A better approach would be to use Python's builtin code module and call code.interact(...). guppi saw first light with the python -i trick and we've kept it since. See Flask-Script ( for a simple example of how to use code.interact(...) with ipython option.