LSST Applications g063fba187b+cac8b7c890,g0f08755f38+6aee506743,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+b4475c5878,g1dcb35cd9c+8f9bc1652e,g20f6ffc8e0+6aee506743,g217e2c1bcf+73dee94bd0,g28da252d5a+1f19c529b9,g2bbee38e9b+3f2625acfc,g2bc492864f+3f2625acfc,g3156d2b45e+6e55a43351,g32e5bea42b+1bb94961c2,g347aa1857d+3f2625acfc,g35bb328faa+a8ce1bb630,g3a166c0a6a+3f2625acfc,g3e281a1b8c+c5dd892a6c,g3e8969e208+a8ce1bb630,g414038480c+5927e1bc1e,g41af890bb2+8a9e676b2a,g7af13505b9+809c143d88,g80478fca09+6ef8b1810f,g82479be7b0+f568feb641,g858d7b2824+6aee506743,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,ga5288a1d22+2903d499ea,gb58c049af0+d64f4d3760,gc28159a63d+3f2625acfc,gcab2d0539d+b12535109e,gcf0d15dbbd+46a3f46ba9,gda6a2b7d83+46a3f46ba9,gdaeeff99f8+1711a396fd,ge79ae78c31+3f2625acfc,gef2f8181fd+0a71e47438,gf0baf85859+c1f95f4921,gfa517265be+6aee506743,gfa999e8aa5+17cd334064,w.2024.51
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 | |
_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.