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.0 and PyEsoRex 1.0.0.

PyCPL 1.0 and PyEsoRex 1.0 (2023-11-06):

The first official release of PyCPL and PyEsoRex for production use. Please note that PyCPL 1.0 comes with a number of API changes compared to previous early release versions, and therefore may require adaptation of the calling code!

PyCPL 0.9 and PyEsoRex 0.9 (2022-08-17):

PyCPL 0.9 and PyEsoRex 0.9 are early release versions. They are made publicly available in order to collect feedback from a larger group of users. The goal is to find any remaining, serious issue which may have gone unnoticed during beta testing, and to address these issues before the release of PyCPL 1.0.

Downloads

The latest PyCPL and PyEsoRex source packages are available here:

Please refer to Installation from Sources for software prerequisites and detailed instructions on installing the source packages.

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, submit feature requests, and to get support for PyCPL and PyEsoRex please send an an email to the CPL team starting the subject with PyCPL: and PyEsoRex:, respectively.

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 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.

Frequently Asked Questions

Q:

Can PyCPL Python recipes be included in instrument pipeline packages?

A:

Not yet! Recipes for instrument pipelines which are intended to be used by ESO to operate the instruments have to be implemented using the CPL C API. The reason is that the infrastructure available in the operational environments do not yet support recipes implemented in Python. Therefore Python recipes are not approved by the Dataflow for ESO Observatories Deliverables Standard. However, ESO is currently preparing for officially supporting Python recipes as part of instrument pipeline packages. It can be expected that that delivering Python recipes included in an instrument pipeline package will be possible with the next release of the Dataflow for ESO Observatories Deliverables Standard (in preparation). Until then Python recipes using PyCPL may be used for developing instrument pipeline prototypes when needed for the different design reviews.