StorageClassFactory¶
-
class
lsst.daf.butler.
StorageClassFactory
(config: Union[lsst.daf.butler.core.storageClass.StorageClassConfig, str, None] = None)¶ Bases:
object
Factory for
StorageClass
instances.This class is a singleton, with each instance sharing the pool of StorageClasses. Since code can not know whether it is the first time the instance has been created, the constructor takes no arguments. To populate the factory with storage classes, a call to
addFromConfig()
should be made.Parameters: - config :
StorageClassConfig
orstr
, optional Load configuration. In a ButlerConfig` the relevant configuration is located in the
storageClasses
section.
Methods Summary
addFromConfig
(config, …)Add more StorageClass
definitions from a config file.getStorageClass
(storageClassName)Get a StorageClass instance associated with the supplied name. makeNewStorageClass
(name, baseClass, **kwargs)Create a new Python class as a subclass of StorageClass
.registerStorageClass
(storageClass)Store the StorageClass
in the factory.Methods Documentation
-
addFromConfig
(config: Union[lsst.daf.butler.core.storageClass.StorageClassConfig, lsst.daf.butler.core.config.Config, str]) → None¶ Add more
StorageClass
definitions from a config file.Parameters: - config :
StorageClassConfig
,Config
orstr
Storage class configuration. Can contain a
storageClasses
key if part of a global configuration.
- config :
-
getStorageClass
(storageClassName: str) → lsst.daf.butler.core.storageClass.StorageClass¶ Get a StorageClass instance associated with the supplied name.
Parameters: - storageClassName :
str
Name of the storage class to retrieve.
Returns: - instance :
StorageClass
Instance of the correct
StorageClass
.
Raises: - KeyError
The requested storage class name is not registered.
- storageClassName :
-
static
makeNewStorageClass
(name: str, baseClass: Optional[Type[lsst.daf.butler.core.storageClass.StorageClass]] = <class 'lsst.daf.butler.core.storageClass.StorageClass'>, **kwargs) → Type[lsst.daf.butler.core.storageClass.StorageClass]¶ Create a new Python class as a subclass of
StorageClass
.Parameters: - name :
str
Name to use for this class.
- baseClass :
type
, optional Base class for this
StorageClass
. Must be eitherStorageClass
or a subclass ofStorageClass
. IfNone
,StorageClass
will be used.
Returns: - newtype :
type
subclass ofStorageClass
Newly created Python type.
- name :
-
registerStorageClass
(storageClass: lsst.daf.butler.core.storageClass.StorageClass) → None¶ Store the
StorageClass
in the factory.Will be indexed by
StorageClass.name
and will return instances of the suppliedStorageClass
.Parameters: - storageClass :
StorageClass
Type of the Python
StorageClass
to register.
Raises: - ValueError
If a storage class has already been registered with storageClassName and the previous definition differs.
- storageClass :
- config :