Butler¶
-
class
lsst.daf.butler.Butler(config=None, collection=None, run=None)¶ Bases:
objectMain entry point for the data access system.
Parameters: - config :
Config Configuration.
- collection :
str, optional Collection to use for all input lookups, overriding config[“collection”] if provided.
- run :
str,Run, optional Collection associated with the
Runto use for outputs, overriding config[“run”]. If aRunassociated with the given Collection does not exist, it will be created. If “collection” is None, this collection will be used for input lookups as well; if not, it must have the same value as “run”.
Raises: - ValueError
Raised if neither “collection” nor “run” are provided by argument or config, or if both are provided and are inconsistent.
Attributes: - config :
str,ButlerConfigorConfig, optional (filename to) configuration. If this is not a
ButlerConfig, defaults will be read. If astr, may be the path to a directory containing a “butler.yaml” file.- datastore :
Datastore Datastore to use for storage.
- registry :
Registry Registry to use for lookups.
Attributes Summary
GENERATIONThis is a Generation 3 Butler. Methods Summary
datasetExists(datasetRefOrType[, dataId])Return True if the Dataset is actually present in the Datastore. get(datasetRefOrType[, dataId, parameters])Retrieve a stored dataset. getDirect(ref[, parameters])Retrieve a stored dataset. getUri(datasetRefOrType[, dataId, predict])Return the URI to the Dataset. makeRepo(root[, config, standalone, …])Create an empty data repository by adding a butler.yaml config to a repository root directory. put(obj, datasetRefOrType[, dataId, producer])Store and register a dataset. remove(datasetRefOrType[, dataId, delete, …])Remove a dataset from the collection and possibly the repository. transaction()Context manager supporting Butlertransactions.Attributes Documentation
-
GENERATION= 3¶ This is a Generation 3 Butler.
This attribute may be removed in the future, once the Generation 2 Butler interface has been fully retired; it should only be used in transitional code.
Methods Documentation
-
datasetExists(datasetRefOrType, dataId=None, **kwds)¶ Return True if the Dataset is actually present in the Datastore.
Parameters: - datasetRefOrType :
DatasetRef,DatasetType, orstr When
DatasetRefthedataIdshould beNone. Otherwise theDatasetTypeor name thereof.- dataId :
dictorDataId A
dictofDimensionlink name, value pairs that label theDatasetRefwithin a Collection. WhenNone, aDatasetRefshould be provided as the first argument.- kwds
Additional keyword arguments used to augment or construct a
DataId. SeeDataIdparameters.
Raises: - LookupError
Raised if the Dataset is not even present in the Registry.
- datasetRefOrType :
-
get(datasetRefOrType, dataId=None, parameters=None, **kwds)¶ Retrieve a stored dataset.
Parameters: - datasetRefOrType :
DatasetRef,DatasetType, orstr When
DatasetRefthedataIdshould beNone. Otherwise theDatasetTypeor name thereof.- dataId :
dictorDataId A
dictofDimensionlink name, value pairs that label theDatasetRefwithin a Collection. WhenNone, aDatasetRefshould be provided as the first argument.- parameters :
dict Additional StorageClass-defined options to control reading, typically used to efficiently read only a subset of the dataset.
- kwds
Additional keyword arguments used to augment or construct a
DataId. SeeDataIdparameters.
Returns: - obj :
object The dataset.
- datasetRefOrType :
-
getDirect(ref, parameters=None)¶ Retrieve a stored dataset.
Unlike
Butler.get, this method allows datasets outside the Butler’s collection to be read as long as theDatasetRefthat identifies them can be obtained separately.Parameters: - ref :
DatasetRef Reference to an already stored dataset.
- parameters :
dict Additional StorageClass-defined options to control reading, typically used to efficiently read only a subset of the dataset.
Returns: - obj :
object The dataset.
- ref :
-
getUri(datasetRefOrType, dataId=None, predict=False, **kwds)¶ Return the URI to the Dataset.
Parameters: - datasetRefOrType :
DatasetRef,DatasetType, orstr When
DatasetRefthedataIdshould beNone. Otherwise theDatasetTypeor name thereof.- dataId :
dictorDataId A
dictofDimensionlink name, value pairs that label theDatasetRefwithin a Collection. WhenNone, aDatasetRefshould be provided as the first argument.- predict :
bool If
True, allow URIs to be returned of datasets that have not been written.- kwds
Additional keyword arguments used to augment or construct a
DataId. SeeDataIdparameters.
Returns: - uri :
str URI string pointing to the Dataset within the datastore. If the Dataset does not exist in the datastore, and if
predictisTrue, the URI will be a prediction and will include a URI fragment “#predicted”. If the datastore does not have entities that relate well to the concept of a URI the returned URI string will be descriptive. The returned URI is not guaranteed to be obtainable.
Raises: - FileNotFoundError
A URI has been requested for a dataset that does not exist and guessing is not allowed.
- datasetRefOrType :
-
static
makeRepo(root, config=None, standalone=False, createRegistry=True)¶ Create an empty data repository by adding a butler.yaml config to a repository root directory.
Parameters: - root :
str Filesystem path to the root of the new repository. Will be created if it does not exist.
- config :
Config, optional Configuration to write to the repository, after setting any root-dependent Registry or Datastore config options. If
None, default configuration will be used.- standalone :
bool If True, write all expanded defaults, not just customized or repository-specific settings. This (mostly) decouples the repository from the default configuration, insulating it from changes to the defaults (which may be good or bad, depending on the nature of the changes). Future additions to the defaults will still be picked up when initializing
Butlersto repos created withstandalone=True.- createRegistry :
bool If
Truecreate a new Registry.- Note that when ``standalone=False`` (the default), the configuration
- search path (see `ConfigSubset.defaultSearchPaths`) that was used to
- construct the repository should also be used to construct any Butlers
- to it to avoid configuration inconsistencies.
Returns: Raises: - ValueError
Raised if a ButlerConfig or ConfigSubset is passed instead of a regular Config (as these subclasses would make it impossible to support
standalone=False).- os.error
Raised if the directory does not exist, exists but is not a directory, or cannot be created.
- root :
-
put(obj, datasetRefOrType, dataId=None, producer=None, **kwds)¶ Store and register a dataset.
Parameters: - obj :
object The dataset.
- datasetRefOrType :
DatasetRef,DatasetType, orstr When
DatasetRefis provided,dataIdshould beNone. Otherwise theDatasetTypeor name thereof.- dataId :
dictorDataId A
dictofDimensionlink name, value pairs that label theDatasetRefwithin a Collection. WhenNone, aDatasetRefshould be provided as the second argument.- producer :
Quantum, optional The producer.
- kwds
Additional keyword arguments used to augment or construct a
DataId. SeeDataIdparameters.
Returns: - ref :
DatasetRef A reference to the stored dataset, updated with the correct id if given.
Raises: - TypeError
Raised if the butler was not constructed with a Run, and is hence read-only.
- obj :
-
remove(datasetRefOrType, dataId=None, *, delete=True, remember=True, **kwds)¶ Remove a dataset from the collection and possibly the repository.
The identified dataset is always at least removed from the Butler’s collection. By default it is also deleted from the Datastore (e.g. files are actually deleted), but the dataset is “remembered” by retaining its row in the dataset and provenance tables in the registry.
If the dataset is a composite, all components will also be removed.
Parameters: - datasetRefOrType :
DatasetRef,DatasetType, orstr When
DatasetRefthedataIdshould beNone. Otherwise theDatasetTypeor name thereof.- dataId :
dictorDataId A
dictofDimensionlink name, value pairs that label theDatasetRefwithin a Collection. WhenNone, aDatasetRefshould be provided as the first argument.- delete :
bool If
True(default) actually delete the dataset from the Datastore (i.e. actually remove files).- remember :
bool If
True(default), retain dataset and provenance records in theRegistryfor this dataset.- kwds
Additional keyword arguments used to augment or construct a
DataId. SeeDataIdparameters.
Raises: - datasetRefOrType :
- config :