ska-oso-scripting
Overview
The ska-oso-scripting project provides a Python library intended to be useful for engineers and scientists writing observing scripts and engineering tests. The helper functions and classes contained in the library support the high-level configuration and control of an SKA subarray, hiding the low-level details of how the related Tango devices are controlled from the script author.
This library provides a simple object-oriented interface and a functional interface,
located in ska_oso_scripting.objects
and ska_oso_scripting.functions
respectively. The objects are recommended as the most user-friendly option but the
functions can also be called if preferred. Regardless, the same code is called at the
lowest level: object methods call ‘public’ scripting functions, which then call
‘private’ lower-level scripting functions held in submodules of
devicecontrol
.
Observing scripts can be run interactively in a Jupyter notebook, or remotely executed by the Observation Execution Tool (OET). For documentation on how to use OET to run observing scripts, see the ska-oso-oet project documentation.
A major use case for the ska-oso-scripting library is to support the execution of Scheduling Blocks (SBs). Hence, in addition to Tango device control, much of the ska-oso-scripting library is concerned with translating SBs into the equivalent JSON configuration and control strings and with the issuing of commands to TMC Tango devices at the appropriate times.
Quickstart
Like all SKA projects, this project uses containers for development and testing so that
the build environment, test environment and test results are reproducible and
independent of the host environment. make
is used to provide a consistent UI.
Build a new container image for the OET with:
make oci-build
Execute the test suite with:
make python-test
Format and lint the Python code with:
make python-format
make python-lint