LSST Applications  21.0.0-147-g0e635eb1+1acddb5be5,22.0.0+052faf71bd,22.0.0+1ea9a8b2b2,22.0.0+6312710a6c,22.0.0+729191ecac,22.0.0+7589c3a021,22.0.0+9f079a9461,22.0.1-1-g7d6de66+b8044ec9de,22.0.1-1-g87000a6+536b1ee016,22.0.1-1-g8e32f31+6312710a6c,22.0.1-10-gd060f87+016f7cdc03,22.0.1-12-g9c3108e+df145f6f68,22.0.1-16-g314fa6d+c825727ab8,22.0.1-19-g93a5c75+d23f2fb6d8,22.0.1-19-gb93eaa13+aab3ef7709,22.0.1-2-g8ef0a89+b8044ec9de,22.0.1-2-g92698f7+9f079a9461,22.0.1-2-ga9b0f51+052faf71bd,22.0.1-2-gac51dbf+052faf71bd,22.0.1-2-gb66926d+6312710a6c,22.0.1-2-gcb770ba+09e3807989,22.0.1-20-g32debb5+b8044ec9de,22.0.1-23-gc2439a9a+fb0756638e,22.0.1-3-g496fd5d+09117f784f,22.0.1-3-g59f966b+1e6ba2c031,22.0.1-3-g849a1b8+f8b568069f,22.0.1-3-gaaec9c0+c5c846a8b1,22.0.1-32-g5ddfab5d3+60ce4897b0,22.0.1-4-g037fbe1+64e601228d,22.0.1-4-g8623105+b8044ec9de,22.0.1-5-g096abc9+d18c45d440,22.0.1-5-g15c806e+57f5c03693,22.0.1-7-gba73697+57f5c03693,master-g6e05de7fdc+c1283a92b8,master-g72cdda8301+729191ecac,w.2021.39
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: