Re deferred loading of coadds, based on the dm-middleware telecons (
DM-23139) I don't think we gain much (if anything) or save memory in gen3 - if it's easier for DCR then do it this way, of course. I did make this change per your request.
Under Gen2: As far as I see in butlerSubset.py, ButlerDataRef.get() is not "self contained" and cannot be made self contained, i.e. it still requires the kwargs to specify the dataset. I did not introduce a "container" class just to provide a .get() method without arguments here. Instead, in Gen2 mode, the sensorRef.get(patchArgDict) is used to actually load the coadd now. This solution is "ugly" in the sense that it puts back I/O into run(). Under Gen3, this is fine, this is what the DeferredDatasetHandle is designed for. Under Gen2, we can revert to the original approach to do the sensorRef.get(patchArgDict) in runDataRef if it sounds better.