Tasks can now be kept in registries
Related sets of tasks should now be kept in a registry as per RFC-183, with a common abstract base class.
Tasks can now use an lsst.pex.config.RegistryField
config field to specify a subtask if that subtask is in a registry, as of DM-6074. The task is built and used the same way as if it was specified in an lsst.pex.config.ConfigurableField
, but retargeting and overriding config parameters is different. See task documentation for more information. See also How to Write a Task for guidelines for choosing between using lsst.pex.config.RegistryField
and lsst.pex.config.ConfigurableField
to hold a subtask.
In DM-6077 I made PSF determiners into tasks that inherit from an abstract base class lsst.meas.algorithms.PsfDeterminerTask
. However, the effect on existing code was negligible because they were already configurables used from a registry (though I tweaked some code for clarity). The way you retarget PSF determiners and override their config parameters remains unchanged.
In DM-6474 (not yet merged as of this writing) I reimplemented the registry for star selectors that was lost in DM-5532: lsst.meas.algorithms.starSelectorRegistry
.
One backwards incompatible change: in DM-6474 MeasurePsfTask
and MeasureApCorrTask
both now specify their star selectors using an lsst.pex.config.RegistryField
. This means the format for retargeting star selectors and overriding their config parameters has changed. I updated the config override files in the various obs_ packages accordingly.