LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+0dd8ce4237,g1470d8bcf6+3ea6592b6f,g2079a07aa2+86d27d4dc4,g2305ad1205+5ca4c0b359,g295015adf3+d10818ec9d,g2a9a014e59+6f9be1b9cd,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+703ba97ebf,g487adcacf7+4fa16da234,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ffa42b374e,g5a732f18d5+53520f316c,g64a986408d+0dd8ce4237,g858d7b2824+0dd8ce4237,g8a8a8dda67+585e252eca,g99cad8db69+d39438377f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+f1d96605c8,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e5339d463f,gc120e1dc64+da31e9920e,gc28159a63d+0e5473021a,gcf0d15dbbd+703ba97ebf,gdaeeff99f8+f9a426f77a,ge6526c86ff+889fc9d533,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf18bd8381d+7268b93478,gff1a9f87cc+0dd8ce4237,w.2024.16
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: