LSST Applications g04e9c324dd+8c5ae1fdc5,g134cb467dc+b203dec576,g18429d2f64+358861cd2c,g199a45376c+0ba108daf9,g1fd858c14a+dd066899e3,g262e1987ae+ebfced1d55,g29ae962dfc+72fd90588e,g2cef7863aa+aef1011c0b,g35bb328faa+8c5ae1fdc5,g3fd5ace14f+b668f15bc5,g4595892280+3897dae354,g47891489e3+abcf9c3559,g4d44eb3520+fb4ddce128,g53246c7159+8c5ae1fdc5,g67b6fd64d1+abcf9c3559,g67fd3c3899+1f72b5a9f7,g74acd417e5+cb6b47f07b,g786e29fd12+668abc6043,g87389fa792+8856018cbb,g89139ef638+abcf9c3559,g8d7436a09f+bcf525d20c,g8ea07a8fe4+9f5ccc88ac,g90f42f885a+6054cc57f1,g97be763408+06f794da49,g9dd6db0277+1f72b5a9f7,ga681d05dcb+7e36ad54cd,gabf8522325+735880ea63,gac2eed3f23+abcf9c3559,gb89ab40317+abcf9c3559,gbf99507273+8c5ae1fdc5,gd8ff7fe66e+1f72b5a9f7,gdab6d2f7ff+cb6b47f07b,gdc713202bf+1f72b5a9f7,gdfd2d52018+8225f2b331,ge365c994fd+375fc21c71,ge410e46f29+abcf9c3559,geaed405ab2+562b3308c0,gf9a733ac38+8c5ae1fdc5,w.2025.35
LSST Data Management Base Package
|
Public Member Functions | |
__init__ (self, configBaseType=Config) | |
register (self, name, target, ConfigClass=None) | |
__getitem__ (self, key) | |
__len__ (self) | |
__iter__ (self) | |
__contains__ (self, key) | |
makeField (self, doc, default=None, optional=False, multi=False, on_none=None) | |
Protected Attributes | |
_configBaseType = configBaseType | |
dict | _dict = {} |
A base class for global registries, which map names to configurables. A registry acts like a read-only dictionary with an additional `register` method to add targets. Targets in the registry are configurables (see *Notes*). Parameters ---------- configBaseType : `lsst.pex.config.Config`-type The base class for config classes in the registry. Notes ----- A configurable is a callable with call signature ``(config, *args)`` Configurables typically create an algorithm or are themselves the algorithm. Often configurables are `lsst.pipe.base.Task` subclasses, but this is not required. A ``Registry`` has these requirements: - All configurables added to a particular registry have the same call signature. - All configurables in a registry typically share something important in common. For example, all configurables in ``psfMatchingRegistry`` return a PSF matching class that has a ``psfMatch`` method with a particular call signature. Examples -------- This examples creates a configurable class ``Foo`` and adds it to a registry. First, creating the configurable: >>> from lsst.pex.config import Registry, Config >>> class FooConfig(Config): ... val = Field(dtype=int, default=3, doc="parameter for Foo") >>> class Foo: ... ConfigClass = FooConfig ... ... def __init__(self, config): ... self.config = config ... ... def addVal(self, num): ... return self.config.val + num Next, create a ``Registry`` instance called ``registry`` and register the ``Foo`` configurable under the ``"foo"`` key: >>> registry = Registry() >>> registry.register("foo", Foo) >>> print(list(registry.keys())) ["foo"] Now ``Foo`` is conveniently accessible from the registry itself. Finally, use the registry to get the configurable class and create an instance of it: >>> FooConfigurable = registry["foo"] >>> foo = FooConfigurable(FooConfigurable.ConfigClass()) >>> foo.addVal(5) 8
Definition at line 59 of file registry.py.
lsst.pex.config.registry.Registry.__init__ | ( | self, | |
configBaseType = Config ) |
Definition at line 123 of file registry.py.
lsst.pex.config.registry.Registry.__contains__ | ( | self, | |
key ) |
Definition at line 181 of file registry.py.
lsst.pex.config.registry.Registry.__getitem__ | ( | self, | |
key ) |
Definition at line 172 of file registry.py.
lsst.pex.config.registry.Registry.__iter__ | ( | self | ) |
Definition at line 178 of file registry.py.
lsst.pex.config.registry.Registry.__len__ | ( | self | ) |
Definition at line 175 of file registry.py.
lsst.pex.config.registry.Registry.makeField | ( | self, | |
doc, | |||
default = None, | |||
optional = False, | |||
multi = False, | |||
on_none = None ) |
Create a `RegistryField` configuration field from this registry. Parameters ---------- doc : `str` A description of the field. default : object, optional The default target for the field. optional : `bool`, optional When `False`, `lsst.pex.config.Config.validate` fails if the field's value is `None`. multi : `bool`, optional A flag to allow multiple selections in the `RegistryField` if `True`. on_none : `Callable`, optional A callable that should be invoked when ``apply`` is called but the selected name or names is `None`. Will be passed the field attribute proxy (`RegistryInstanceDict`) and then all positional and keyword arguments passed to ``apply``. Returns ------- field : `lsst.pex.config.RegistryField` `~lsst.pex.config.RegistryField` Configuration field.
Reimplemented in lsst.meas.base.pluginRegistry.PluginRegistry.
Definition at line 184 of file registry.py.
lsst.pex.config.registry.Registry.register | ( | self, | |
name, | |||
target, | |||
ConfigClass = None ) |
Add a new configurable target to the registry. Parameters ---------- name : `str` Name that the ``target`` is registered under. The target can be accessed later with `dict`-like patterns using ``name`` as the key. target : obj A configurable type, usually a subclass of `lsst.pipe.base.Task`. ConfigClass : `lsst.pex.config.Config`-type, optional A subclass of `lsst.pex.config.Config` used to configure the configurable. If `None` then the configurable's ``ConfigClass`` attribute is used. Raises ------ RuntimeError Raised if an item with ``name`` is already in the registry. AttributeError Raised if ``ConfigClass`` is `None` and ``target`` does not have a ``ConfigClass`` attribute. Notes ----- If ``ConfigClass`` is provided then the ``target`` configurable is wrapped in a new object that forwards function calls to it. Otherwise the original ``target`` is stored.
Reimplemented in lsst.meas.base.pluginRegistry.PluginRegistry.
Definition at line 129 of file registry.py.
|
protected |
Definition at line 126 of file registry.py.
|
protected |
Definition at line 127 of file registry.py.