Tasks can now be kept in registries

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.