Core Calibrator class refactoring
Summary
calibration pipelines
:
General functionality for all -
All calibration pipeline will be launched by specialised tools, that will transfer to them input data+config. Need to decide what functionality will be handled in
tools
and what incalibrators
, and stick to this common schema. I think,tool
should:- Propagate all configurable parameters and input data,
- Handle external services (if such exists) that are needed for the work of calibration pipeline
- Create the instance of specific
calibrator
with all needed configuration and input parameters - Launch the method
calibrate
- At the end catch the
exceptions
and return the final exit code to theWorkload
.
-
Perform calculations to obtain calibration results
- This is what should be in the method
calibrate
and this part should be individual for each calibration product and all computation should be performed inside particular class.
- This is what should be in the method
-
Store these results in DB and in
ecsv
tables- This functionality may be generalised for all pipelines. I think it will be more clear to not have separate routines for every pipeline to upload calibration results to DB and into the
ecsv
tables, if all calibration results are produced in the form ofcalibpipe_containers
, and should be stored in the DB andecsv
tables. This works for all metadata also.
- This functionality may be generalised for all pipelines. I think it will be more clear to not have separate routines for every pipeline to upload calibration results to DB and into the
-
In case of failure they should correctly catch and propagate exceptions to the
tool
that launched the pipeline- This functionality should be generalised for all pipelines. I will create separate Issue with discussing this question.