MappingFactory

class lsst.daf.butler.MappingFactory(refType)

Bases: object

Register the mapping of some key to a python type and retrieve instances.

Enables instances of these classes to be retrieved from the factory later. The class can be specified as an object, class or string. If the key is an object it is converted to a string by accessing a name attribute.

Parameters:
refType : type

Python reference type to use to ensure that items stored in the registry create instance objects of the correct class. Subclasses of this type are allowed. Using None disables the check.

Methods Summary

getFromRegistry(*targetClasses) Get a new instance of the object stored in the registry.
getFromRegistryWithMatch(*targetClasses) Get a new instance of the object stored in the registry along with the matching key.
getLookupKeys() Retrieve the look up keys for all the registry entries.
normalizeRegistryDimensions(universe) Normalize dimensions used in registry keys to the supplied universe.
placeInRegistry(registryKey, typeName) Register a class name with the associated type.

Methods Documentation

getFromRegistry(*targetClasses)

Get a new instance of the object stored in the registry.

Parameters:
*targetClasses : LookupKey, str or objects with name attribute

Each item is tested in turn until a match is found in the registry. Items with None value are skipped.

Returns:
instance : object

Instance of class stored in registry associated with the first matching target class.

Raises:
KeyError

Raised if none of the supplied target classes match an item in the registry.

getFromRegistryWithMatch(*targetClasses)

Get a new instance of the object stored in the registry along with the matching key.

Parameters:
*targetClasses : LookupKey, str or objects with name attribute

Each item is tested in turn until a match is found in the registry. Items with None value are skipped.

Returns:
matchKey : LookupKey

The key that resulted in the successful match.

instance : object

Instance of class stored in registry associated with the first matching target class.

Raises:
KeyError

Raised if none of the supplied target classes match an item in the registry.

getLookupKeys()

Retrieve the look up keys for all the registry entries.

Returns:
keys : set of LookupKey

The keys available for matching in the registry.

normalizeRegistryDimensions(universe)

Normalize dimensions used in registry keys to the supplied universe.

Parameters:
universe : DimensionUniverse

The set of all known dimensions. If None, returns without action.

Raises:
ValueError

Raised if a key exists where a dimension is not part of the universe.

Notes

Goes through all registered templates, and for keys that include dimensions, rewrites those keys to use a verified set of dimensions.

Returns without action if the template keys have already been normalized.

placeInRegistry(registryKey, typeName)

Register a class name with the associated type.

Parameters:
registryKey : LookupKey, str or object with name attribute.

Item to associate with the provided type.

typeName : str or Python type

Identifies a class to associate with the provided key.

Raises:
KeyError

Raised if item is already registered and has different value.