Python System Information
psi is a Python module providing direct access to real-time system and process information. It is made of of several sub-modules.
The arch module gives some information about the system such as the sytem name and version, the machine architecture etc. It has a class representing each system and a factory function that will return an instance of the class which psi is running on currently.
The process module provides an interface to information about processes currently running on the system. Each process is represented as an instance of the Process class and additionally there is a ProcessTable class which is a dictionary of all running processes. To know exactly what attributes are available and what they mean you should look at the docstrings and examples in the REAME file and examples/ directory, but important to note is that all the information is collected at instatiation time. So the contents of ProcessTable and Process instances are really snapshots and will still contain all information even after the actual process has gone.
Lastly there are some general functions available directly under the psi namespace such as loadavg(), getzoneid() etc. Once more see the docstrings for detailed information.
Some information may not be available on all platforms, rather then trying to emulate this information these parts of the API just don’t exist on those platforms. Examples of these are: psi.process.Process.pcpu which is not available on Linux, psi.getzoneid() which is only available on SunOS 10 and above etc.
Python: 2.3, 2.4, 2.5, 2.6 and 3.0.
Linux: kernels from 2.4.0 up to 2.6.29.
SunOS: Solaris 8, 9 & 10 and OpenSolaris (SunOS 11).
Darwin: 10.3 and above.
Care is taking to provide complete and accurate docstrings, so use Python’s pydoc tool and the interactive prompt should get you on your way.
Please use our issue tracker: http://www.psychofx.com/psi/trac/report/1
Extra setup.py features
New build_ext option: --devel. This uses -Werror and enables many more warnings as well as disables optimisation.
Using --undef PYMALLOC or -U PYMALLOC to build_ext will use libc’s memory heap for allocation instead of Python’s.
The test command will run the testsuite. It has a --all option that will also run tests that will use sudo or su -c to run some extra tests as root (these are required if you want to test detecting priorities of processes etc).
The valgrind command does run the testsuite under the valgrind memory checker. For this you need to have a specially compiled python:
./configure --with-pydebug --without-pymalloc --prefix=/opt/pydebug make make install
The tags command will build an emacs TAGS file using grind (which is a binary of the python grin package).
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.