FileTemplates

class lsst.daf.butler.FileTemplates(config, default=None, *, universe)

Bases: object

Collection of FileTemplate templates.

Parameters
configFileTemplatesConfig or str

Load configuration.

defaultstr, optional

If not None, a default template to use if no template has been specified explicitly in the configuration.

universeDimensionUniverse

The set of all known dimensions, used to normalize any lookup keys involving dimensions.

Notes

The configuration can include one level of hierarchy where an instrument-specific section can be defined to override more general template specifications. This is represented in YAML using a key of form instrument<name> which can then define templates that will be returned if a DatasetRef contains a matching instrument name in the data ID.

A default fallback template can be specified using the key default. Defaulting can be disabled in a child configuration by defining the value to be an empty string or a boolean False.

The config is parsed using the function processLookupConfigs.

Attributes Summary

defaultKey

Configuration key associated with the default template.

templates

Collection of templates indexed by lookup key (dict).

Methods Summary

getLookupKeys()

Retrieve the look up keys for all the template entries.

getTemplate(entity)

Retrieve the FileTemplate associated with the dataset type.

getTemplateWithMatch(entity)

Retrieve the FileTemplate associated with the dataset type along with the lookup key that was a match for this template.

validateTemplates(entities[, logFailures])

Retrieve the template associated with each dataset type and validate the dimensions against the template.

Attributes Documentation

defaultKey = LookupKey(name='default',)

Configuration key associated with the default template.

templates

Collection of templates indexed by lookup key (dict).

Methods Documentation

getLookupKeys()

Retrieve the look up keys for all the template entries.

Returns
keysset of LookupKey

The keys available for matching a template.

getTemplate(entity)

Retrieve the FileTemplate associated with the dataset type.

If the lookup name corresponds to a component the base name for the component will be examined if the full component name does not match.

Parameters
entityDatasetType, DatasetRef, or StorageClass

Instance to use to look for a corresponding template. A DatasetType name or a StorageClass name will be used depending on the supplied entity. Priority is given to a DatasetType name. Supports instrument override if a DatasetRef is provided configured with an instrument value for the data ID.

Returns
templateFileTemplate

Template instance to use with that dataset type.

Raises
KeyError

Raised if no template could be located for this Dataset type.

getTemplateWithMatch(entity)

Retrieve the FileTemplate associated with the dataset type along with the lookup key that was a match for this template.

If the lookup name corresponds to a component the base name for the component will be examined if the full component name does not match.

Parameters
entityDatasetType, DatasetRef, or StorageClass

Instance to use to look for a corresponding template. A DatasetType name or a StorageClass name will be used depending on the supplied entity. Priority is given to a DatasetType name. Supports instrument override if a DatasetRef is provided configured with an instrument value for the data ID.

Returns
matchKeyLookupKey

The key that resulted in the successful match.

templateFileTemplate

Template instance to use with that dataset type.

Raises
KeyError

Raised if no template could be located for this Dataset type.

validateTemplates(entities, logFailures=False)

Retrieve the template associated with each dataset type and validate the dimensions against the template.

Parameters
entitiesDatasetType, DatasetRef, or StorageClass

Entities to validate against the matching templates. Can be differing types.

logFailuresbool, optional

If True, output a log message for every validation error detected.

Raises
FileTemplateValidationError

Raised if an entity failed validation.

Notes

See FileTemplate.validateTemplate() for details on the validation.