LSST Applications 28.0.0,g1653933729+a8ce1bb630,g1a997c3884+a8ce1bb630,g28da252d5a+5bd70b7e6d,g2bbee38e9b+638fca75ac,g2bc492864f+638fca75ac,g3156d2b45e+07302053f8,g347aa1857d+638fca75ac,g35bb328faa+a8ce1bb630,g3a166c0a6a+638fca75ac,g3e281a1b8c+7bbb0b2507,g4005a62e65+17cd334064,g414038480c+5b5cd4fff3,g41af890bb2+4ffae9de63,g4e1a3235cc+0f1912dca3,g6249c6f860+3c3976f90c,g80478fca09+46aba80bd6,g82479be7b0+77990446f6,g858d7b2824+78ba4d1ce1,g89c8672015+f667a5183b,g9125e01d80+a8ce1bb630,ga5288a1d22+2a6264e9ca,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc22bb204ba+78ba4d1ce1,gc28159a63d+638fca75ac,gcf0d15dbbd+32ddb6096f,gd6b7c0dfd1+3e339405e9,gda3e153d99+78ba4d1ce1,gda6a2b7d83+32ddb6096f,gdaeeff99f8+1711a396fd,gdd5a9049c5+b18c39e5e3,ge2409df99d+a5e4577cdc,ge33fd446bb+78ba4d1ce1,ge79ae78c31+638fca75ac,gf0baf85859+64e8883e75,gf5289d68f6+e1b046a8d7,gfa443fc69c+91d9ed1ecf,gfda6b12a05+8419469a56
LSST Data Management Base Package
Loading...
Searching...
No Matches
lsst.pex.config.registry.RegistryInstanceDict Class Reference
Inheritance diagram for lsst.pex.config.registry.RegistryInstanceDict:
lsst.pex.config.configChoiceField.ConfigInstanceDict lsst.pex.config.config.Config lsst.pex.config.config.ConfigMeta

Public Member Functions

 __init__ (self, config, field)
 
 apply (self, *args, **kwargs)
 
 apply_with (self, selection, *args, **kwargs)
 
 __setattr__ (self, attr, value)
 

Public Attributes

 registry
 

Protected Member Functions

 _getTarget (self)
 
 _getTargets (self)
 

Protected Attributes

 _field
 
 _config
 
 _selection
 

Properties

 target = property(_getTarget)
 
 targets = property(_getTargets)
 

Detailed Description

Dictionary of instantiated configs, used to populate a `RegistryField`.

Parameters
----------
config : `lsst.pex.config.Config`
    Configuration instance.
field : `RegistryField`
    Configuration field.

Definition at line 239 of file registry.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.pex.config.registry.RegistryInstanceDict.__init__ ( self,
config,
field )

Reimplemented from lsst.pex.config.configChoiceField.ConfigInstanceDict.

Definition at line 250 of file registry.py.

250 def __init__(self, config, field):
251 ConfigInstanceDict.__init__(self, config, field)
252 self.registry = field.registry
253

Member Function Documentation

◆ __setattr__()

lsst.pex.config.registry.RegistryInstanceDict.__setattr__ ( self,
attr,
value )
Set an attribute (such as a field's value).

Notes
-----
Unlike normal Python objects, `~lsst.pex.config.Config` objects are
locked such that no additional attributes nor properties may be added
to them dynamically.

Although this is not the standard Python behavior, it helps to protect
users from accidentally mispelling a field name, or trying to set a
non-existent field.

Reimplemented from lsst.pex.config.configChoiceField.ConfigInstanceDict.

Definition at line 328 of file registry.py.

328 def __setattr__(self, attr, value):
329 if attr == "registry":
330 object.__setattr__(self, attr, value)
331 else:
332 ConfigInstanceDict.__setattr__(self, attr, value)
333
334

◆ _getTarget()

lsst.pex.config.registry.RegistryInstanceDict._getTarget ( self)
protected

Definition at line 254 of file registry.py.

254 def _getTarget(self):
255 if self._field.multi:
256 raise FieldValidationError(
257 self._field, self._config, "Multi-selection field has no attribute 'target'"
258 )
259 return self.types.registry[self._selection]
260

◆ _getTargets()

lsst.pex.config.registry.RegistryInstanceDict._getTargets ( self)
protected

Definition at line 263 of file registry.py.

263 def _getTargets(self):
264 if not self._field.multi:
265 raise FieldValidationError(
266 self._field, self._config, "Single-selection field has no attribute 'targets'"
267 )
268 return [self.types.registry[c] for c in self._selection]
269

◆ apply()

lsst.pex.config.registry.RegistryInstanceDict.apply ( self,
* args,
** kwargs )
Call the active target(s) with the active config as a keyword arg.

Parameters
----------
*args, **kwargs : `~typing.Any
    Additional arguments will be passed on to the configurable
    target(s).

Returns
-------
result
    If this is a single-selection field, the return value from calling
    the target. If this is a multi-selection field, a list thereof.

Definition at line 272 of file registry.py.

272 def apply(self, *args, **kwargs):
273 """Call the active target(s) with the active config as a keyword arg.
274
275 Parameters
276 ----------
277 *args, **kwargs : `~typing.Any
278 Additional arguments will be passed on to the configurable
279 target(s).
280
281 Returns
282 -------
283 result
284 If this is a single-selection field, the return value from calling
285 the target. If this is a multi-selection field, a list thereof.
286 """
287 if self.active is None:
288 if self._field._on_none is not None:
289 return self._field._on_none(self, *args, **kwargs)
290 msg = "No selection has been made. Options: {}".format(" ".join(self.types.registry.keys()))
291 raise FieldValidationError(self._field, self._config, msg)
292 return self.apply_with(self._selection, *args, **kwargs)
293

◆ apply_with()

lsst.pex.config.registry.RegistryInstanceDict.apply_with ( self,
selection,
* args,
** kwargs )
Call named target(s) with the corresponding config as a keyword
arg.

Parameters
----------
selection : `str` or `~collections.abc.Iterable` [ `str` ]
    Name or names of targets, depending on whether ``multi=True``.
*args, **kwargs
    Additional arguments will be passed on to the configurable
    target(s).

Returns
-------
result
    If this is a single-selection field, the return value from calling
    the target. If this is a multi-selection field, a list thereof.

Notes
-----
This method ignores the current selection in the ``name`` or ``names``
attribute, which is usually not what you want.  This method is most
useful in ``on_none`` callbacks provided at field construction, which
allow a context-dependent default to be used when no selection is
configured.

Definition at line 294 of file registry.py.

294 def apply_with(self, selection, *args, **kwargs):
295 """Call named target(s) with the corresponding config as a keyword
296 arg.
297
298 Parameters
299 ----------
300 selection : `str` or `~collections.abc.Iterable` [ `str` ]
301 Name or names of targets, depending on whether ``multi=True``.
302 *args, **kwargs
303 Additional arguments will be passed on to the configurable
304 target(s).
305
306 Returns
307 -------
308 result
309 If this is a single-selection field, the return value from calling
310 the target. If this is a multi-selection field, a list thereof.
311
312 Notes
313 -----
314 This method ignores the current selection in the ``name`` or ``names``
315 attribute, which is usually not what you want. This method is most
316 useful in ``on_none`` callbacks provided at field construction, which
317 allow a context-dependent default to be used when no selection is
318 configured.
319 """
320 if self._field.multi:
321 retvals = []
322 for c in selection:
323 retvals.append(self.types.registry[c](*args, config=self[c], **kwargs))
324 return retvals
325 else:
326 return self.types.registry[selection](*args, config=self[selection], **kwargs)
327

Member Data Documentation

◆ _config

lsst.pex.config.registry.RegistryInstanceDict._config
protected

Definition at line 257 of file registry.py.

◆ _field

lsst.pex.config.registry.RegistryInstanceDict._field
protected

Definition at line 257 of file registry.py.

◆ _selection

lsst.pex.config.registry.RegistryInstanceDict._selection
protected

Definition at line 292 of file registry.py.

◆ registry

lsst.pex.config.registry.RegistryInstanceDict.registry

Definition at line 252 of file registry.py.

Property Documentation

◆ target

lsst.pex.config.registry.RegistryInstanceDict.target = property(_getTarget)
static

Definition at line 261 of file registry.py.

◆ targets

lsst.pex.config.registry.RegistryInstanceDict.targets = property(_getTargets)
static

Definition at line 270 of file registry.py.


The documentation for this class was generated from the following file: