Currently, the classes in lsst.verify.compatibility do not use any Gen 3 elements, including lsst.pipe.base.InputDatasetConfig and lsst.pipe.base.OutputDatasetConfig. However, Christopher Waters suggested that these config classes can be used in Gen 2 task configs without inadvertent side effects. Adopting them as part of the MetricTask API now will make it much easier to transition to Gen 3.
This ticket covers the following work:
- Update MetricTask documentation to require that subclasses use *DatasetConfig appropriately.
- Rewrite MetricTask input/output methods to use the configs in a way that is compatible with Gen 2 repositories.
- Rewrite TimingMetricTask (and any other extant MetricTasks) in terms of *DatasetConfig. This should reduce the amount of source code at the cost of an extra config field.
Hi Christopher Waters, would you be willing to review this 100-line change? This is Gen 2 use of InputDatasetConfig, with the expectation that individual MetricTask subclasses can be migrated or adapted to Gen 3 later (ideally, migration would just be a matter of switching their base class to a Gen 3 MetricTask, once it exists).