Fix Version/s: None
The butler command that now comes with daf_butler is intended to be extended for various repository related functions. On task that exists in gen2, but not yet in gen3 is the utility that makes a discrete sky map from a collection of calibrated exposures: makeDiscreteSkyMap.py. This utility is useful especially in scenarios where the visits are relatively localized on the sky.
This ticket is to implement a new subcommand using the click module. I don't see why this couldn't be called make_discrete_sky_map. This will involve a few steps.
1) Wrap the MakeDiscreteSkyMapTask with the necessary gen3 tooling
2) Pull the bulk of the heavy lifting out of the runDataRef method into a run method that both runDataRef and runQuantum can delegate to
3) Add a subcommand to butler that calls that task.
Tim Jenness I was going to put it in obs_base and delegate to pipe_tasks, but I now realize that would cause a circular dependency. I'll have to put it in pipe_tasks and add the env var.
Nate Pease [X] are you the correct person to review this? The instructions you gave were quite good. Most of my time was spent figuring out how to make gen2 concepts work in gen3. My only suggestion would be to add a section on how to make the commands appear if working in a package other than daf_butler or obs_base. It's also necessary to allow the correct env var to be passed to the scons process for it to work properly.
CI run is here.
Yes. I'm glad the instructions were mostly good I'll have a look this afternoon.
The CLI changes look mostly fine, it's worth adding the one option that's noted in the review. I didn't look closely at the other changes because I think Tim Jenness reviewed those files.
I think I've addressed all of Nate Pease [X]'s suggestions. Tim Jenness I have addressed all of yours as well, but the changes are a little more extensive. Would you like to have another look before I merge?
Which package is this going to end up in? obs_base is already set up for loading commands into the butler click command dynamically. For pipe_tasks you'd need to put the right line in the eups file to set the env var.