LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | List of all members
lsst.pex.config.configChoiceField.SelectionSet Class Reference
Inheritance diagram for lsst.pex.config.configChoiceField.SelectionSet:

Public Member Functions

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

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
    The selected key.
at : `lsst.pex.config.callStack.StackFrame`, 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 40 of file configChoiceField.py.

Constructor & Destructor Documentation

◆ __init__()

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

Definition at line 65 of file configChoiceField.py.

65  def __init__(self, dict_, value, at=None, label="assignment", setHistory=True):
66  if at is None:
67  at = getCallStack()
68  self._dict = dict_
69  self._field = self._dict._field
70  self._config_ = weakref.ref(self._dict._config)
71  self.__history = self._config._history.setdefault(self._field.name, [])
72  if value is not None:
73  try:
74  for v in value:
75  if v not in self._dict:
76  # invoke __getitem__ to ensure it's present
77  self._dict.__getitem__(v, at=at)
78  except TypeError:
79  msg = "Value %s is of incorrect type %s. Sequence type expected" % (value, _typeStr(value))
80  raise FieldValidationError(self._field, self._config, msg)
81  self._set = set(value)
82  else:
83  self._set = set()
84 
85  if setHistory:
86  self.__history.append(("Set selection to %s" % self, at, label))
87 
daf::base::PropertySet * set
Definition: fits.cc:912
std::shared_ptr< FrameSet > append(FrameSet const &first, FrameSet const &second)
Construct a FrameSet that performs two transformations in series.
Definition: functional.cc:33
def getCallStack(skip=0)
Definition: callStack.py:175

Member Function Documentation

◆ __contains__()

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

Definition at line 134 of file configChoiceField.py.

134  def __contains__(self, value):
135  return value in self._set
136 

◆ __iter__()

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

Definition at line 131 of file configChoiceField.py.

131  def __iter__(self):
132  return iter(self._set)
133 

◆ __len__()

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

Definition at line 128 of file configChoiceField.py.

128  def __len__(self):
129  return len(self._set)
130 

◆ __repr__()

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

Definition at line 137 of file configChoiceField.py.

137  def __repr__(self):
138  return repr(list(self._set))
139 
daf::base::PropertyList * list
Definition: fits.cc:913

◆ __str__()

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

Definition at line 140 of file configChoiceField.py.

140  def __str__(self):
141  return str(list(self._set))
142 
143 

◆ add()

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

Definition at line 95 of file configChoiceField.py.

95  def add(self, value, at=None):
96  """Add a value to the selected set.
97  """
98  if self._config._frozen:
99  raise FieldValidationError(self._field, self._config,
100  "Cannot modify a frozen Config")
101 
102  if at is None:
103  at = getCallStack()
104 
105  if value not in self._dict:
106  # invoke __getitem__ to make sure it's present
107  self._dict.__getitem__(value, at=at)
108 
109  self.__history.append(("added %s to selection" % value, at, "selection"))
110  self._set.add(value)
111 

◆ discard()

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

Definition at line 112 of file configChoiceField.py.

112  def discard(self, value, at=None):
113  """Discard a value from the selected set.
114  """
115  if self._config._frozen:
116  raise FieldValidationError(self._field, self._config,
117  "Cannot modify a frozen Config")
118 
119  if value not in self._dict:
120  return
121 
122  if at is None:
123  at = getCallStack()
124 
125  self.__history.append(("removed %s from selection" % value, at, "selection"))
126  self._set.discard(value)
127 

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