PyCPL – Python Language Bindings for CPL

PyCPL provides Python3 language bindings for the complete programming API of the ESO Common Pipeline Library (CPL) toolkit, including the CPL plugin interface.

Using PyCPL it is possible to run the recipes of all available ESO instrument pipeline packages from Python (from scripts or the interpreter prompt) and makes it possible to write recipes in Python which are compliant with ESO standards. PyCPL is complemented by PyEsoRex, a command line tool which can serve as a drop-in replacement of EsoRex, which can execute both, existing pipeline recipes implemented using the CPL C API, and recipes implemented using the PyCPL Python API.

Release Notes

The latest releases are PyCPL 1.0.3 and PyEsoRex 1.0.3.

PyCPL and PyEsoRex 1.0.3 (2025-05-21):

This is a maintenance release fixing a number of issues which have been reported. See the PyCPL and PyEsoRex Release History for the list of changes.

PyCPL and PyEsoRex 1.0.2 (2025-03-12):

This is a maintenance release fixing a number of issues which have been reported. See the PyCPL and PyEsoRex Release History for the list of changes.

Installation

Pre-built packages of PyCPL and PyEsoRex are available for Fedora 38 – 40 and MacPorts from the ESO repositories. See RPM Package Installation or MacPorts Package Installation for the respective installation instructions.

For other platforms PyCPL and PyEsoRex can be installed from source. Refer to Installation from Sources for software prerequisites and detailed instructions on installing the source packages. Go to Downloads for getting the source packages.

Downloads

The latest PyCPL and PyEsoRex source packages are available here:

Software prerequisites and detailed instructions on installing the source packages can be found in Installation from Sources.

Known Issues

For any known issues please refer to the Section Known Issues of the user guide.

Getting Support

To report bugs and documentation issues, and to get support for PyCPL and PyEsoRex in general, please create a ticket at the ESO Operations Helpdesk.

Bug reports should contain the following information:

  • PyCPL version

  • PyEsoRex version (if applicable)

  • Python version

  • Operating system and version

  • Type of installation (system-wide, user, python virtual environment, local build, RPM, MacPorts, etc.)

  • If possible, the description how the issue can be reproduced.

Users who have access to the ESO JIRA ticket system (ESO internal and instrument consortia) are encouraged to create tickets for bug reports or feature requests, selecting

  • Project ‣ PIPE

  • Component ‣ CPL

and the appropriate Issue type (Bug, Doc Bug, New Feature, or Improvement) in the dialog.

Feature Requests and Contributions

Contributions and suggestions improving PyCPL and PyEsoRex are always welcome!

To submit feature requests, suggest improvments, or contribute to the project, please send an email to the CPL team starting the subject with PyCPL: and PyEsoRex:, respectively.

Frequently Asked Questions

Q:

Can PyCPL Python recipes be included in instrument pipeline packages?

A:

Yes!