StorageClassFactory¶
-
class
lsst.daf.butler.StorageClassFactory(config: Union[lsst.daf.butler.core.storageClass.StorageClassConfig, str, None] = None)¶ Bases:
objectFactory for
StorageClassinstances.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 :
StorageClassConfigorstr, optional Load configuration. In a ButlerConfig` the relevant configuration is located in the
storageClassessection.
Methods Summary
addFromConfig(config, …)Add more StorageClassdefinitions from a config file.findStorageClass(pytype, compare_types)Find the storage class associated with this python type. getStorageClass(storageClassName)Get a StorageClass instance associated with the supplied name. items()keys()makeNewStorageClass(name, baseClass, …)Create a new Python class as a subclass of StorageClass.registerStorageClass(storageClass, msg, …)Store the StorageClassin the factory.values()Methods Documentation
-
addFromConfig(config: Union[lsst.daf.butler.core.storageClass.StorageClassConfig, lsst.daf.butler.core.config.Config, str]) → None¶ Add more
StorageClassdefinitions from a config file.Parameters: - config :
StorageClassConfig,Configorstr Storage class configuration. Can contain a
storageClasseskey if part of a global configuration.
- config :
-
findStorageClass(pytype: Type, compare_types: bool = False) → lsst.daf.butler.core.storageClass.StorageClass¶ Find the storage class associated with this python type.
Parameters: - pytype :
type The Python type to be matched.
- compare_types :
bool, optional If
False, the type will be checked against name of the python type. This comparison is always done first. IfTrueand the string comparison failed, each candidate storage class will be forced to have its type imported. This can be significantly slower.
Returns: - storageClass :
StorageClass The matching storage class.
Raises: - KeyError
Raised if no match could be found.
Notes
It is possible for a python type to be associated with multiple storage classes. This method will currently return the first that matches.
- pytype :
-
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 :
-
items() → ItemsView[str, lsst.daf.butler.core.storageClass.StorageClass]¶
-
keys() → KeysView[str]¶
-
static
makeNewStorageClass(name: str, baseClass: Optional[Type[lsst.daf.butler.core.storageClass.StorageClass], None] = <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 eitherStorageClassor a subclass ofStorageClass. IfNone,StorageClasswill be used.
Returns: - newtype :
typesubclass ofStorageClass Newly created Python type.
- name :
-
registerStorageClass(storageClass: lsst.daf.butler.core.storageClass.StorageClass, msg: Optional[str, None] = None) → None¶ Store the
StorageClassin the factory.Will be indexed by
StorageClass.nameand will return instances of the suppliedStorageClass.Parameters: - storageClass :
StorageClass Type of the Python
StorageClassto register.- msg :
str, optional Additional message string to be included in any error message.
Raises: - ValueError
If a storage class has already been registered with that storage class name and the previous definition differs.
- storageClass :
-
values() → ValuesView[lsst.daf.butler.core.storageClass.StorageClass]¶
- config :