LSST Applications g0da5cf3356+25b44625d0,g17e5ecfddb+50a5ac4092,g1c76d35bf8+585f0f68a2,g295839609d+8ef6456700,g2e2c1a68ba+cc1f6f037e,g38293774b4+62d12e78cb,g3b44f30a73+2891c76795,g48ccf36440+885b902d19,g4b2f1765b6+0c565e8f25,g5320a0a9f6+bd4bf1dc76,g56364267ca+403c24672b,g56b687f8c9+585f0f68a2,g5c4744a4d9+78cd207961,g5ffd174ac0+bd4bf1dc76,g6075d09f38+3075de592a,g667d525e37+cacede5508,g6f3e93b5a3+da81c812ee,g71f27ac40c+cacede5508,g7212e027e3+eb621d73aa,g774830318a+18d2b9fa6c,g7985c39107+62d12e78cb,g79ca90bc5c+fa2cc03294,g881bdbfe6c+cacede5508,g91fc1fa0cf+82a115f028,g961520b1fb+2534687f64,g96f01af41f+f2060f23b6,g9ca82378b8+cacede5508,g9d27549199+78cd207961,gb065e2a02a+ad48cbcda4,gb1df4690d6+585f0f68a2,gb35d6563ee+62d12e78cb,gbc3249ced9+bd4bf1dc76,gbec6a3398f+bd4bf1dc76,gd01420fc67+bd4bf1dc76,gd59336e7c4+c7bb92e648,gf46e8334de+81c9a61069,gfed783d017+bd4bf1dc76,v25.0.1.rc3
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct Class Reference
Inheritance diagram for lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct:

Public Member Functions

def __init__ (self, Config config, ConfigurableActionStructField field, Mapping[str, ConfigurableAction] value, Any at, str label)
 
List[tuple] history (self)
 
Iterable[strfieldNames (self)
 
None __setattr__ (self, str attr, Union[ActionTypeVar, Type[ActionTypeVar]] value, at=None, label='setattr', setHistory=False)
 
Any __getattr__ (self, attr)
 
def __delattr__ (self, name)
 
Iterator[ActionTypeVar] __iter__ (self)
 
Iterable[Tuple[str, ActionTypeVar]] items (self)
 
bool __bool__ (self)
 

Static Public Attributes

 update = ConfigurableActionStructUpdater()
 
 remove = ConfigurableActionStructRemover()
 

Detailed Description

A ConfigurableActionStruct is the storage backend class that supports
the ConfigurableActionStructField. This class should not be created
directly.

This class allows managing a collection of `ConfigurableActions` with a
struct like interface, that is to say in an attribute like notation.

Attributes can be dynamically added or removed as such:

ConfigurableActionStructInstance.variable1 = a_configurable_action
del ConfigurableActionStructInstance.variable1

Each action is then available to be individually configured as a normal
`lsst.pex.config.Config` object.

ConfigurableActionStruct supports two special convenance attributes.

The first is `update`. You may assign a dict of `ConfigurableActions` or
a `ConfigurableActionStruct` to this attribute which will update the
`ConfigurableActionStruct` on which the attribute is invoked such that it
will be updated to contain the entries specified by the structure on the
right hand side of the equals sign.

The second convenience attribute is named remove. You may assign an
iterable of strings which correspond to attribute names on the
`ConfigurableActionStruct`. All of the corresponding attributes will then
be removed. If any attribute does not exist, an `AttributeError` will be
raised. Any attributes in the Iterable prior to the name which raises will
have been removed from the `ConfigurableActionStruct`

Definition at line 105 of file _configurableActionStructField.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct.__init__ (   self,
Config  config,
ConfigurableActionStructField  field,
Mapping[str, ConfigurableAction]  value,
Any  at,
str  label 
)

Definition at line 146 of file _configurableActionStructField.py.

147 value: Mapping[str, ConfigurableAction], at: Any, label: str):
148 object.__setattr__(self, '_config_', weakref.ref(config))
149 object.__setattr__(self, '_attrs', {})
150 object.__setattr__(self, '_field', field)
151 object.__setattr__(self, '_history', [])
152
153 self.history.append(("Struct initialized", at, label))
154
155 if value is not None:
156 for k, v in value.items():
157 setattr(self, k, v)
158

Member Function Documentation

◆ __bool__()

bool lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct.__bool__ (   self)

Definition at line 223 of file _configurableActionStructField.py.

223 def __bool__(self) -> bool:
224 return bool(self._attrs)
225
226

◆ __delattr__()

def lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct.__delattr__ (   self,
  name 
)

Definition at line 209 of file _configurableActionStructField.py.

209 def __delattr__(self, name):
210 if name in self._attrs:
211 del self._attrs[name]
212 else:
213 super().__delattr__(name)
214

◆ __getattr__()

Any lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct.__getattr__ (   self,
  attr 
)

Definition at line 201 of file _configurableActionStructField.py.

201 def __getattr__(self, attr) -> Any:
202 if attr in object.__getattribute__(self, '_attrs'):
203 result = self._attrs[attr]
204 result.identity = attr
205 return result
206 else:
207 super().__getattribute__(attr)
208

◆ __iter__()

Iterator[ActionTypeVar] lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct.__iter__ (   self)

Definition at line 215 of file _configurableActionStructField.py.

215 def __iter__(self) -> Iterator[ActionTypeVar]:
216 for name in self.fieldNames:
217 yield getattr(self, name)
218

◆ __setattr__()

None lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct.__setattr__ (   self,
str  attr,
Union[ActionTypeVar, Type[ActionTypeVar]]  value,
  at = None,
  label = 'setattr',
  setHistory = False 
)

Definition at line 175 of file _configurableActionStructField.py.

176 at=None, label='setattr', setHistory=False) -> None:
177
178 if hasattr(self._config, '_frozen') and self._config._frozen:
179 msg = "Cannot modify a frozen Config. "\
180 f"Attempting to set item {attr} to value {value}"
181 raise FieldValidationError(self._field, self._config, msg)
182
183 # verify that someone has not passed a string with a space or leading
184 # number or something through the dict assignment update interface
185 if not attr.isidentifier():
186 raise ValueError("Names used in ConfigurableStructs must be valid as python variable names")
187
188 if attr not in (self.__dict__.keys() | type(self).__dict__.keys()):
189 base_name = _joinNamePath(self._config._name, self._field.name)
190 name = _joinNamePath(base_name, attr)
191 if at is None:
192 at = getCallStack()
193 if isinstance(value, ConfigurableAction):
194 valueInst = type(value)(__name=name, __at=at, __label=label, **value._storage)
195 else:
196 valueInst = value(__name=name, __at=at, __label=label)
197 self._attrs[attr] = valueInst
198 else:
199 super().__setattr__(attr, value)
200
table::Key< int > type
Definition: Detector.cc:163

◆ fieldNames()

Iterable[str] lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct.fieldNames (   self)

Definition at line 172 of file _configurableActionStructField.py.

172 def fieldNames(self) -> Iterable[str]:
173 return self._attrs.keys()
174

◆ history()

List[tuple] lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct.history (   self)

Definition at line 168 of file _configurableActionStructField.py.

168 def history(self) -> List[tuple]:
169 return self._history
170

◆ items()

Iterable[Tuple[str, ActionTypeVar]] lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct.items (   self)

Definition at line 219 of file _configurableActionStructField.py.

219 def items(self) -> Iterable[Tuple[str, ActionTypeVar]]:
220 for name in self.fieldNames:
221 yield name, getattr(self, name)
222
std::vector< SchemaItem< Flag > > * items

Member Data Documentation

◆ remove

lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct.remove = ConfigurableActionStructRemover()
static

Definition at line 144 of file _configurableActionStructField.py.

◆ update

lsst.pipe.tasks.configurableActions._configurableActionStructField.ConfigurableActionStruct.update = ConfigurableActionStructUpdater()
static

Definition at line 143 of file _configurableActionStructField.py.


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