The PyMAD project and IPython
A brief description, by Frédéric Mantegazza
At the french research institutes CEA-Grenoble (Commissariat à
l'Energie Atomique de Grenoble), and ILL (Institut Laue Langevin),
which is the biggest neutrons reactor for scientific experiments, we
use big instruments, called spectrometers. These instruments have
several motors, encoders and I/O to move around the neutrons beam, and
to set the diffraction direction. All these motors are controled by a
python software called PyMAD, which is responsible for transforming
energy, wave length, and all physical values into motors positions,
power supplies values and
PyMAD is mainly console-oriented. Even if there are some GUI to
configure or watch spectrometer state, all commands are send through a
command-line interpreter. This is much more efficient, and gives the
ability to the user to write batch files to send thousands commands,
and so have the
spectrometer works all the night or week-end without interaction.
This console is based on IPython, which already gives all the features
The last point is very important, as users control the spectrometer
directly through python objects (magic commands are only shortcuts on
this objects). Users can also build complex commands to prototype some
unsuported actions, or to automatically take decisions according to the
previous commands results.
- history (even through differents sessions)
- magic commands
- user profiles
- access to python interpreter
So, IPython is really the heart of the client-side PyMAD project, and
is the end-user visible part. It is so powerfull, that we would be
crazy to choose another solution!
Back to the
main IPython page.