MappingFactory

class lsst.daf.butler.MappingFactory(refType: Type[CT_co])

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

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 object stored in the registry along with the 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[CT_co]

Get the matching class 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:
cls : type

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.core.configSupport.LookupKey, Type[CT_co], Dict[Any, Any]]

Get the class 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.

cls : type

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, **kwargs) → Any

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.

args : tuple

Positional arguments to use pass to the object constructor.

kwargs : dict

Keyword arguments to pass to object constructor.

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

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.

args : tuple

Positional arguments to use pass to the object constructor.

kwargs : dict

Keyword arguments to pass to object constructor.

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

Retrieve the look up keys for all the registry entries.

Returns:
keys : set of LookupKey

The keys available for matching in the registry.

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

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.

overwrite : bool, optional

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

kwargs : dict

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.