LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
lsst.pex.config.configChoiceField.SelectionSet Class Reference
Inheritance diagram for lsst.pex.config.configChoiceField.SelectionSet:

Public Member Functions

 __init__ (self, dict_, value, at=None, label="assignment", setHistory=True)
 
 add (self, value, at=None)
 
 discard (self, value, at=None)
 
 __len__ (self)
 
 __iter__ (self)
 
 __contains__ (self, value)
 
 __repr__ (self)
 
 __str__ (self)
 
 __reduce__ (self)
 

Protected Member Functions

Config _config (self)
 

Protected Attributes

 _dict
 
 _field
 
 _config_
 
 _config
 
 _set
 

Detailed Description

A mutable set class that tracks the selection of multi-select
`~lsst.pex.config.ConfigChoiceField` objects.

Parameters
----------
dict_ : `ConfigInstanceDict`
    The dictionary of instantiated configs.
value : `~typing.Any`
    The selected key.
at : `list` of `~lsst.pex.config.callStack.StackFrame` or `None`, optional
    The call stack when the selection was made.
label : `str`, optional
    Label for history tracking.
setHistory : `bool`, optional
    Add this even to the history, if `True`.

Notes
-----
This class allows a user of a multi-select
`~lsst.pex.config.ConfigChoiceField` to add or discard items from the set
of active configs. Each change to the selection is tracked in the field's
history.

Definition at line 41 of file configChoiceField.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.pex.config.configChoiceField.SelectionSet.__init__ ( self,
dict_,
value,
at = None,
label = "assignment",
setHistory = True )

Definition at line 66 of file configChoiceField.py.

66 def __init__(self, dict_, value, at=None, label="assignment", setHistory=True):
67 if at is None:
68 at = getCallStack()
69 self._dict = dict_
70 self._field = self._dict._field
71 self._config_ = weakref.ref(self._dict._config)
72 self.__history = self._config._history.setdefault(self._field.name, [])
73 if value is not None:
74 try:
75 for v in value:
76 if v not in self._dict:
77 # invoke __getitem__ to ensure it's present
78 self._dict.__getitem__(v, at=at)
79 except TypeError:
80 msg = f"Value {value} is of incorrect type {_typeStr(value)}. Sequence type expected"
81 raise FieldValidationError(self._field, self._config, msg)
82 self._set = set(value)
83 else:
84 self._set = set()
85
86 if setHistory:
87 self.__history.append(("Set selection to %s" % self, at, label))
88
daf::base::PropertySet * set
Definition fits.cc:931

Member Function Documentation

◆ __contains__()

lsst.pex.config.configChoiceField.SelectionSet.__contains__ ( self,
value )

Definition at line 149 of file configChoiceField.py.

149 def __contains__(self, value):
150 return value in self._set
151

◆ __iter__()

lsst.pex.config.configChoiceField.SelectionSet.__iter__ ( self)

Definition at line 146 of file configChoiceField.py.

146 def __iter__(self):
147 return iter(self._set)
148

◆ __len__()

lsst.pex.config.configChoiceField.SelectionSet.__len__ ( self)

Definition at line 143 of file configChoiceField.py.

143 def __len__(self):
144 return len(self._set)
145

◆ __reduce__()

lsst.pex.config.configChoiceField.SelectionSet.__reduce__ ( self)

Definition at line 158 of file configChoiceField.py.

158 def __reduce__(self):
159 raise UnexpectedProxyUsageError(
160 f"Proxy container for config field {self._field.name} cannot "
161 "be pickled; it should be converted to a built-in container before "
162 "being assigned to other objects or variables."
163 )
164
165

◆ __repr__()

lsst.pex.config.configChoiceField.SelectionSet.__repr__ ( self)

Definition at line 152 of file configChoiceField.py.

152 def __repr__(self):
153 return repr(list(self._set))
154

◆ __str__()

lsst.pex.config.configChoiceField.SelectionSet.__str__ ( self)

Definition at line 155 of file configChoiceField.py.

155 def __str__(self):
156 return str(list(self._set))
157

◆ _config()

Config lsst.pex.config.configChoiceField.SelectionSet._config ( self)
protected

Definition at line 90 of file configChoiceField.py.

90 def _config(self) -> Config:
91 # Config Fields should never outlive their config class instance
92 # assert that as such here
93 assert self._config_() is not None
94 return self._config_()
95

◆ add()

lsst.pex.config.configChoiceField.SelectionSet.add ( self,
value,
at = None )
Add a value to the selected set.

Parameters
----------
value : `~typing.Any`
    The selected key.
at : `list` of `~lsst.pex.config.callStack.StackFrame` or `None`,\
        optional
    Stack frames for history recording.

Definition at line 96 of file configChoiceField.py.

96 def add(self, value, at=None):
97 """Add a value to the selected set.
98
99 Parameters
100 ----------
101 value : `~typing.Any`
102 The selected key.
103 at : `list` of `~lsst.pex.config.callStack.StackFrame` or `None`,\
104 optional
105 Stack frames for history recording.
106 """
107 if self._config._frozen:
108 raise FieldValidationError(self._field, self._config, "Cannot modify a frozen Config")
109
110 if at is None:
111 at = getCallStack()
112
113 if value not in self._dict:
114 # invoke __getitem__ to make sure it's present
115 self._dict.__getitem__(value, at=at)
116
117 self.__history.append(("added %s to selection" % value, at, "selection"))
118 self._set.add(value)
119

◆ discard()

lsst.pex.config.configChoiceField.SelectionSet.discard ( self,
value,
at = None )
Discard a value from the selected set.

Parameters
----------
value : `~typing.Any`
    The selected key.
at : `list` of `~lsst.pex.config.callStack.StackFrame` or `None`,\
        optional
    Stack frames for history recording.

Definition at line 120 of file configChoiceField.py.

120 def discard(self, value, at=None):
121 """Discard a value from the selected set.
122
123 Parameters
124 ----------
125 value : `~typing.Any`
126 The selected key.
127 at : `list` of `~lsst.pex.config.callStack.StackFrame` or `None`,\
128 optional
129 Stack frames for history recording.
130 """
131 if self._config._frozen:
132 raise FieldValidationError(self._field, self._config, "Cannot modify a frozen Config")
133
134 if value not in self._dict:
135 return
136
137 if at is None:
138 at = getCallStack()
139
140 self.__history.append(("removed %s from selection" % value, at, "selection"))
141 self._set.discard(value)
142

Member Data Documentation

◆ _config

lsst.pex.config.configChoiceField.SelectionSet._config
protected

Definition at line 81 of file configChoiceField.py.

◆ _config_

lsst.pex.config.configChoiceField.SelectionSet._config_
protected

Definition at line 71 of file configChoiceField.py.

◆ _dict

lsst.pex.config.configChoiceField.SelectionSet._dict
protected

Definition at line 69 of file configChoiceField.py.

◆ _field

lsst.pex.config.configChoiceField.SelectionSet._field
protected

Definition at line 70 of file configChoiceField.py.

◆ _set

lsst.pex.config.configChoiceField.SelectionSet._set
protected

Definition at line 82 of file configChoiceField.py.


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