Butler DataCoordinate and DimensionGraph API deprecations

I’ve just merged DM-34340, a many-package ticket that implements RFC-834, which had lingered in the “accepted but not implemented” state for quite a while.

This brings some major changes to the DataCoordinate class that may take some getting used to - in particular, it’s no longer a Mapping, because while it still implements __getitem__ and __len__, it does not implement __iter__ or keys/values/items anymore. But it also doesn’t use with those Dimension objects anymore - lookup keys are just strings. In the same spirit, the DimensionGraph class is now deprecated in favor of DimensionGroup, which has a less confusing name and also avoids Dimension instances in favor of their str names.

A more complete description of the changes can be found here, and the RFC is still the best place to find the rationale for these changes.

While I have updated all lsst_distrib packages and checked that all ci_* packages and ap_verify(via the CI COSMOS dataset) are free of new warnings from this ticket, I have not yet merged the summit_utils PR that makes that package’s test suite warnings-clean, because doing so would make it incompatible with stack versions before the tickets/DM-34340 branch merge. I’m planning to hold off to the weekly unless I hear otherwise from a maintainer like @merlin or @hsinfang, since I figure warnings until then are better than a chance of errors from using main of that package with an older tag over everything.

Thanks Jim, that’s much appreciated, and definitely the right approach. Once the changes are baked into a new weekly I will need to get the Rapid Analysis pods rebuilt using that weekly as well, and at that point it will be safe to merge these changes (though I’ll need to do some manual updating at that point too, so doing that in coordination would be good too, please).

@merlin, you’re welcome to just merge it yourself whenever you’re ready.