LSST Applications g0fba68d861+aa97b6e50c,g1ec0fe41b4+f536777771,g1fd858c14a+a9301854fb,g35bb328faa+fcb1d3bbc8,g4af146b050+a5c07d5b1d,g4d2262a081+78f4f01b60,g53246c7159+fcb1d3bbc8,g56a49b3a55+9c12191793,g5a012ec0e7+3632fc3ff3,g60b5630c4e+ded28b650d,g67b6fd64d1+ed4b5058f4,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g8352419a5c+fcb1d3bbc8,g87b7deb4dc+7b42cf88bf,g8852436030+e5453db6e6,g89139ef638+ed4b5058f4,g8e3bb8577d+d38d73bdbd,g9125e01d80+fcb1d3bbc8,g94187f82dc+ded28b650d,g989de1cb63+ed4b5058f4,g9d31334357+ded28b650d,g9f33ca652e+50a8019d8c,gabe3b4be73+1e0a283bba,gabf8522325+fa80ff7197,gb1101e3267+d9fb1f8026,gb58c049af0+f03b321e39,gb89ab40317+ed4b5058f4,gcf25f946ba+e5453db6e6,gcf6002c91b+2a0c9e9e84,gd6cbbdb0b4+bb83cc51f8,gdd1046aedd+ded28b650d,gde0f65d7ad+66b3a48cb7,ge278dab8ac+d65b3c2b70,ge410e46f29+ed4b5058f4,gf23fb2af72+b7cae620c0,gf5e32f922b+fcb1d3bbc8,gf67bdafdda+ed4b5058f4,w.2025.16
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.