MappingFactory

class lsst.daf.butler.MappingFactory(refType: Type)

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
refTypetype

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

getClassFromRegistry(targetClasses)

Get the matching class stored in the registry.

getClassFromRegistryWithMatch(targetClasses)

Get the class stored in the registry along with the matching key.

getFromRegistry(targetClasses, *args, **kwargs)

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

getFromRegistryWithMatch(targetClasses, …)

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

getLookupKeys()

Retrieve the look up keys for all the registry entries.

placeInRegistry(registryKey, typeName[, …])

Register a class name with the associated type.

Methods Documentation

getClassFromRegistry(targetClasses: Iterable[Any])Type

Get the matching class stored in the registry.

Parameters
targetClassesLookupKey, 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
clstype

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.

getClassFromRegistryWithMatch(targetClasses: Iterable[Any])Tuple[lsst.daf.butler.LookupKey, Type, Dict[Any, Any]]

Get the class stored in the registry along with the matching key.

Parameters
targetClassesLookupKey, 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
matchKeyLookupKey

The key that resulted in the successful match.

clstype

Class stored in registry associated with the first matching target class.

kwargs: dict

Keyword arguments to be given to constructor.

Raises
KeyError

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

getFromRegistry(targetClasses: Iterable[Any], *args: Any, **kwargs: Any)Any

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

Parameters
targetClassesLookupKey, 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.

argstuple

Positional arguments to use pass to the object constructor.

kwargsdict

Keyword arguments to pass to object constructor.

Returns
instanceobject

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: Iterable[Any], *args: Any, **kwargs: Any)Tuple[lsst.daf.butler.LookupKey, Any]

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

Parameters
targetClassesLookupKey, 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.

argstuple

Positional arguments to use pass to the object constructor.

kwargsdict

Keyword arguments to pass to object constructor.

Returns
matchKeyLookupKey

The key that resulted in the successful match.

instanceobject

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()Set[lsst.daf.butler.LookupKey]

Retrieve the look up keys for all the registry entries.

Returns
keysset of LookupKey

The keys available for matching in the registry.

placeInRegistry(registryKey: Any, typeName: Union[str, Type], overwrite: bool = False, **kwargs: Any)None

Register a class name with the associated type.

Parameters
registryKeyLookupKey, str or object with name attribute.

Item to associate with the provided type.

typeNamestr or Python type

Identifies a class to associate with the provided key.

overwritebool, optional

If True, an existing entry will be overwritten. This option is expected to be used to simplify test suites. Default is False.

kwargsdict

Keyword arguments to always pass to object constructor when retrieved.

Raises
KeyError

Raised if item is already registered and has different value and overwrite is False.