MappingFactory

class lsst.daf.butler.mapping_factory.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._config_support.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.

**kwargs

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._config_support.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.

**kwargs

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._config_support.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: 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.

**kwargs

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.