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 | Properties | List of all members
lsst.pex.config.listField.List Class Reference
Inheritance diagram for lsst.pex.config.listField.List:

Public Member Functions

def __init__ (self, config, field, value, at, label, setHistory=True)
 
def validateItem (self, i, x)
 
def list (self)
 
def __contains__ (self, x)
 
def __len__ (self)
 
def __setitem__ (self, i, x, at=None, label="setitem", setHistory=True)
 
def __getitem__ (self, i)
 
def __delitem__ (self, i, at=None, label="delitem", setHistory=True)
 
def __iter__ (self)
 
def insert (self, i, x, at=None, label="insert", setHistory=True)
 
def __repr__ (self)
 
def __str__ (self)
 
def __eq__ (self, other)
 
def __ne__ (self, other)
 
def __setattr__ (self, attr, value, at=None, label="assignment")
 

Properties

 history = property(lambda x: x._history)
 

Detailed Description

List collection used internally by `ListField`.

Parameters
----------
config : `lsst.pex.config.Config`
    Config instance that contains the ``field``.
field : `ListField`
    Instance of the `ListField` using this ``List``.
value : sequence
    Sequence of values that are inserted into this ``List``.
at : `list` of `lsst.pex.config.callStack.StackFrame`
    The call stack (created by `lsst.pex.config.callStack.getCallStack`).
label : `str`
    Event label for the history.
setHistory : `bool`, optional
    Enable setting the field's history, using the value of the ``at``
    parameter. Default is `True`.

Raises
------
FieldValidationError
    Raised if an item in the ``value`` parameter does not have the
    appropriate type for this field or does not pass the
    `ListField.itemCheck` method of the ``field`` parameter.

Definition at line 39 of file listField.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.pex.config.listField.List.__init__ (   self,
  config,
  field,
  value,
  at,
  label,
  setHistory = True 
)

Definition at line 66 of file listField.py.

66  def __init__(self, config, field, value, at, label, setHistory=True):
67  self._field = field
68  self._config_ = weakref.ref(config)
69  self._history = self._config._history.setdefault(self._field.name, [])
70  self._list = []
71  self.__doc__ = field.doc
72  if value is not None:
73  try:
74  for i, x in enumerate(value):
75  self.insert(i, x, setHistory=False)
76  except TypeError:
77  msg = "Value %s is of incorrect type %s. Sequence type expected" % (value, _typeStr(value))
78  raise FieldValidationError(self._field, config, msg)
79  if setHistory:
80  self.history.append((list(self._list), at, label))
81 
daf::base::PropertyList * list
Definition: fits.cc:913
std::shared_ptr< FrameSet > append(FrameSet const &first, FrameSet const &second)
Construct a FrameSet that performs two transformations in series.
Definition: functional.cc:33

Member Function Documentation

◆ __contains__()

def lsst.pex.config.listField.List.__contains__ (   self,
  x 
)

Definition at line 125 of file listField.py.

125  def __contains__(self, x):
126  return x in self._list
127 

◆ __delitem__()

def lsst.pex.config.listField.List.__delitem__ (   self,
  i,
  at = None,
  label = "delitem",
  setHistory = True 
)

Definition at line 155 of file listField.py.

155  def __delitem__(self, i, at=None, label="delitem", setHistory=True):
156  if self._config._frozen:
157  raise FieldValidationError(self._field, self._config,
158  "Cannot modify a frozen Config")
159  del self._list[i]
160  if setHistory:
161  if at is None:
162  at = getCallStack()
163  self.history.append((list(self._list), at, label))
164 
def getCallStack(skip=0)
Definition: callStack.py:175

◆ __eq__()

def lsst.pex.config.listField.List.__eq__ (   self,
  other 
)

Definition at line 196 of file listField.py.

196  def __eq__(self, other):
197  try:
198  if len(self) != len(other):
199  return False
200 
201  for i, j in zip(self, other):
202  if i != j:
203  return False
204  return True
205  except AttributeError:
206  # other is not a sequence type
207  return False
208 

◆ __getitem__()

def lsst.pex.config.listField.List.__getitem__ (   self,
  i 
)

Definition at line 152 of file listField.py.

152  def __getitem__(self, i):
153  return self._list[i]
154 

◆ __iter__()

def lsst.pex.config.listField.List.__iter__ (   self)

Definition at line 165 of file listField.py.

165  def __iter__(self):
166  return iter(self._list)
167 

◆ __len__()

def lsst.pex.config.listField.List.__len__ (   self)

Definition at line 128 of file listField.py.

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

◆ __ne__()

def lsst.pex.config.listField.List.__ne__ (   self,
  other 
)

Definition at line 209 of file listField.py.

209  def __ne__(self, other):
210  return not self.__eq__(other)
211 

◆ __repr__()

def lsst.pex.config.listField.List.__repr__ (   self)

Definition at line 190 of file listField.py.

190  def __repr__(self):
191  return repr(self._list)
192 

◆ __setattr__()

def lsst.pex.config.listField.List.__setattr__ (   self,
  attr,
  value,
  at = None,
  label = "assignment" 
)

Definition at line 212 of file listField.py.

212  def __setattr__(self, attr, value, at=None, label="assignment"):
213  if hasattr(getattr(self.__class__, attr, None), '__set__'):
214  # This allows properties to work.
215  object.__setattr__(self, attr, value)
216  elif attr in self.__dict__ or attr in ["_field", "_config_", "_history", "_list", "__doc__"]:
217  # This allows specific private attributes to work.
218  object.__setattr__(self, attr, value)
219  else:
220  # We throw everything else.
221  msg = "%s has no attribute %s" % (_typeStr(self._field), attr)
222  raise FieldValidationError(self._field, self._config, msg)
223 
224 

◆ __setitem__()

def lsst.pex.config.listField.List.__setitem__ (   self,
  i,
  x,
  at = None,
  label = "setitem",
  setHistory = True 
)

Definition at line 131 of file listField.py.

131  def __setitem__(self, i, x, at=None, label="setitem", setHistory=True):
132  if self._config._frozen:
133  raise FieldValidationError(self._field, self._config,
134  "Cannot modify a frozen Config")
135  if isinstance(i, slice):
136  k, stop, step = i.indices(len(self))
137  for j, xj in enumerate(x):
138  xj = _autocast(xj, self._field.itemtype)
139  self.validateItem(k, xj)
140  x[j] = xj
141  k += step
142  else:
143  x = _autocast(x, self._field.itemtype)
144  self.validateItem(i, x)
145 
146  self._list[i] = x
147  if setHistory:
148  if at is None:
149  at = getCallStack()
150  self.history.append((list(self._list), at, label))
151 

◆ __str__()

def lsst.pex.config.listField.List.__str__ (   self)

Definition at line 193 of file listField.py.

193  def __str__(self):
194  return str(self._list)
195 

◆ insert()

def lsst.pex.config.listField.List.insert (   self,
  i,
  x,
  at = None,
  label = "insert",
  setHistory = True 
)
Insert an item into the list at the given index.

Parameters
----------
i : `int`
    Index where the item is inserted.
x : object
    Item that is inserted.
at : `list` of `lsst.pex.config.callStack.StackFrame`, optional
    The call stack (created by
    `lsst.pex.config.callStack.getCallStack`).
label : `str`, optional
    Event label for the history.
setHistory : `bool`, optional
    Enable setting the field's history, using the value of the ``at``
    parameter. Default is `True`.

Definition at line 168 of file listField.py.

168  def insert(self, i, x, at=None, label="insert", setHistory=True):
169  """Insert an item into the list at the given index.
170 
171  Parameters
172  ----------
173  i : `int`
174  Index where the item is inserted.
175  x : object
176  Item that is inserted.
177  at : `list` of `lsst.pex.config.callStack.StackFrame`, optional
178  The call stack (created by
179  `lsst.pex.config.callStack.getCallStack`).
180  label : `str`, optional
181  Event label for the history.
182  setHistory : `bool`, optional
183  Enable setting the field's history, using the value of the ``at``
184  parameter. Default is `True`.
185  """
186  if at is None:
187  at = getCallStack()
188  self.__setitem__(slice(i, i), [x], at=at, label=label, setHistory=setHistory)
189 

◆ list()

def lsst.pex.config.listField.List.list (   self)
Sequence of items contained by the `List` (`list`).

Definition at line 116 of file listField.py.

116  def list(self):
117  """Sequence of items contained by the `List` (`list`).
118  """
119  return self._list
120 

◆ validateItem()

def lsst.pex.config.listField.List.validateItem (   self,
  i,
  x 
)
Validate an item to determine if it can be included in the list.

Parameters
----------
i : `int`
    Index of the item in the `list`.
x : object
    Item in the `list`.

Raises
------
FieldValidationError
    Raised if an item in the ``value`` parameter does not have the
    appropriate type for this field or does not pass the field's
    `ListField.itemCheck` method.

Definition at line 89 of file listField.py.

89  def validateItem(self, i, x):
90  """Validate an item to determine if it can be included in the list.
91 
92  Parameters
93  ----------
94  i : `int`
95  Index of the item in the `list`.
96  x : object
97  Item in the `list`.
98 
99  Raises
100  ------
101  FieldValidationError
102  Raised if an item in the ``value`` parameter does not have the
103  appropriate type for this field or does not pass the field's
104  `ListField.itemCheck` method.
105  """
106 
107  if not isinstance(x, self._field.itemtype) and x is not None:
108  msg = "Item at position %d with value %s is of incorrect type %s. Expected %s" % \
109  (i, x, _typeStr(x), _typeStr(self._field.itemtype))
110  raise FieldValidationError(self._field, self._config, msg)
111 
112  if self._field.itemCheck is not None and not self._field.itemCheck(x):
113  msg = "Item at position %d is not a valid value: %s" % (i, x)
114  raise FieldValidationError(self._field, self._config, msg)
115 

Property Documentation

◆ history

lsst.pex.config.listField.List.history = property(lambda x: x._history)
static

Definition at line 121 of file listField.py.


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