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 | 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: