Butler v22.0 2021-04-01
New Features
- A Butler instance can now be configured with dataId defaults such as an instrument or skymap. [DM-27153]
- Add
butler prune-datasets
command. [DM-26689]
- Add
butler query-dimension-records
command [DM-27344]
- Add
--unlink
option to butler prune-collection
command. [DM-28857]
- Add progress reporting option for long-lived commands. [DM-28964]
- Add
butler associate
command to add existing datasets to a tagged collection. [DM-26688]
- Add officially-supported JSON serialization for core Butler classes. [DM-28314]
- Allow
butler.get()
to support dimension record values such as exposure observing day or detector name in the dataID. [DM-27152]
- Add “direct” ingest mode to allow a file to be ingested retaining the full path to the original file. [DM-27478]
Bug Fixes
- Fix temporal queries and clarify
Timespan
behavior. [DM-27985]
Other Changes and Additions
- Make
ButlerURI
class immutable. [DM-29073]
- Add
ButlerURI.findFileResources
method to walk the directory tree and return matching files. [DM-29011]
- Improve infrastructure for handling test repositories. [DM-23862]
Butler Datastores
New Features
- Implement basic file caching for use with remote datastores. [DM-29383]
- Require that a DataId always be available to a
Formatter
. This allows formatters to do a consistency check such as comparing the physical filter in a dataId with that read from a file. [DM-28583]
- Add special mode to datastore to instruct it to ignore registry on
get
. This is useful for Execution Butlers where registry knows in advance about all datasets but datastore does not. [DM-28648]
- Add
forget
method to instruct datastore to remove all knowledge of a dataset without deleting the file artifact. [DM-29106]
Butler Registry
New Features
- Avoid long-lived connections to database. [DM-26302]
- Add option to flatten when setting a collection chain. [DM-29203]