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.configDictField.ConfigDict Class Reference
Inheritance diagram for lsst.pex.config.configDictField.ConfigDict:
lsst.pex.config.dictField.Dict

Public Member Functions

def __init__ (self, config, field, value, at, label)
 
def __setitem__ (self, k, x, at=None, label="setitem", setHistory=True)
 
def __delitem__ (self, k, at=None, label="delitem")
 
def __getitem__ (self, k)
 
def __len__ (self)
 
def __iter__ (self)
 
def __contains__ (self, k)
 
def __delitem__ (self, k, at=None, label="delitem", setHistory=True)
 
def __repr__ (self)
 
def __str__ (self)
 
def __setattr__ (self, attr, value, at=None, label="assignment")
 

Properties

 history = property(lambda x: x._history)
 

Detailed Description

Internal representation of a dictionary of configuration classes.

Much like `Dict`, `ConfigDict` is a custom `MutableMapper` which tracks
the history of changes to any of its items.

Definition at line 36 of file configDictField.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.pex.config.configDictField.ConfigDict.__init__ (   self,
  config,
  field,
  value,
  at,
  label 
)

Definition at line 43 of file configDictField.py.

43  def __init__(self, config, field, value, at, label):
44  Dict.__init__(self, config, field, value, at, label, setHistory=False)
45  self.history.append(("Dict initialized", at, label))
46 
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.dictField.Dict.__contains__ (   self,
  k 
)
inherited

Definition at line 83 of file dictField.py.

83  def __contains__(self, k):
84  return k in self._dict
85 

◆ __delitem__() [1/2]

def lsst.pex.config.configDictField.ConfigDict.__delitem__ (   self,
  k,
  at = None,
  label = "delitem" 
)

Definition at line 85 of file configDictField.py.

85  def __delitem__(self, k, at=None, label="delitem"):
86  if at is None:
87  at = getCallStack()
88  Dict.__delitem__(self, k, at, label, False)
89  self.history.append(("Removed item at key %s" % k, at, label))
90 
91 
def getCallStack(skip=0)
Definition: callStack.py:175

◆ __delitem__() [2/2]

def lsst.pex.config.dictField.Dict.__delitem__ (   self,
  k,
  at = None,
  label = "delitem",
  setHistory = True 
)
inherited

Definition at line 123 of file dictField.py.

123  def __delitem__(self, k, at=None, label="delitem", setHistory=True):
124  if self._config._frozen:
125  raise FieldValidationError(self._field, self._config,
126  "Cannot modify a frozen Config")
127 
128  del self._dict[k]
129  if setHistory:
130  if at is None:
131  at = getCallStack()
132  self._history.append((dict(self._dict), at, label))
133 

◆ __getitem__()

def lsst.pex.config.dictField.Dict.__getitem__ (   self,
  k 
)
inherited

Definition at line 74 of file dictField.py.

74  def __getitem__(self, k):
75  return self._dict[k]
76 

◆ __iter__()

def lsst.pex.config.dictField.Dict.__iter__ (   self)
inherited

Definition at line 80 of file dictField.py.

80  def __iter__(self):
81  return iter(self._dict)
82 

◆ __len__()

def lsst.pex.config.dictField.Dict.__len__ (   self)
inherited

Definition at line 77 of file dictField.py.

77  def __len__(self):
78  return len(self._dict)
79 

◆ __repr__()

def lsst.pex.config.dictField.Dict.__repr__ (   self)
inherited

Definition at line 134 of file dictField.py.

134  def __repr__(self):
135  return repr(self._dict)
136 

◆ __setattr__()

def lsst.pex.config.dictField.Dict.__setattr__ (   self,
  attr,
  value,
  at = None,
  label = "assignment" 
)
inherited

Definition at line 140 of file dictField.py.

140  def __setattr__(self, attr, value, at=None, label="assignment"):
141  if hasattr(getattr(self.__class__, attr, None), '__set__'):
142  # This allows properties to work.
143  object.__setattr__(self, attr, value)
144  elif attr in self.__dict__ or attr in ["_field", "_config_", "_history", "_dict", "__doc__"]:
145  # This allows specific private attributes to work.
146  object.__setattr__(self, attr, value)
147  else:
148  # We throw everything else.
149  msg = "%s has no attribute %s" % (_typeStr(self._field), attr)
150  raise FieldValidationError(self._field, self._config, msg)
151 
152 

◆ __setitem__()

def lsst.pex.config.configDictField.ConfigDict.__setitem__ (   self,
  k,
  x,
  at = None,
  label = "setitem",
  setHistory = True 
)

Reimplemented from lsst.pex.config.dictField.Dict.

Definition at line 47 of file configDictField.py.

47  def __setitem__(self, k, x, at=None, label="setitem", setHistory=True):
48  if self._config._frozen:
49  msg = "Cannot modify a frozen Config. "\
50  "Attempting to set item at key %r to value %s" % (k, x)
51  raise FieldValidationError(self._field, self._config, msg)
52 
53  # validate keytype
54  k = _autocast(k, self._field.keytype)
55  if type(k) != self._field.keytype:
56  msg = "Key %r is of type %s, expected type %s" % \
57  (k, _typeStr(k), _typeStr(self._field.keytype))
58  raise FieldValidationError(self._field, self._config, msg)
59 
60  # validate itemtype
61  dtype = self._field.itemtype
62  if type(x) != self._field.itemtype and x != self._field.itemtype:
63  msg = "Value %s at key %r is of incorrect type %s. Expected type %s" % \
64  (x, k, _typeStr(x), _typeStr(self._field.itemtype))
65  raise FieldValidationError(self._field, self._config, msg)
66 
67  if at is None:
68  at = getCallStack()
69  name = _joinNamePath(self._config._name, self._field.name, k)
70  oldValue = self._dict.get(k, None)
71  if oldValue is None:
72  if x == dtype:
73  self._dict[k] = dtype(__name=name, __at=at, __label=label)
74  else:
75  self._dict[k] = dtype(__name=name, __at=at, __label=label, **x._storage)
76  if setHistory:
77  self.history.append(("Added item at key %s" % k, at, label))
78  else:
79  if x == dtype:
80  x = dtype()
81  oldValue.update(__at=at, __label=label, **x._storage)
82  if setHistory:
83  self.history.append(("Modified item at key %s" % k, at, label))
84 
table::Key< int > type
Definition: Detector.cc:163

◆ __str__()

def lsst.pex.config.dictField.Dict.__str__ (   self)
inherited

Definition at line 137 of file dictField.py.

137  def __str__(self):
138  return str(self._dict)
139 

Property Documentation

◆ history

lsst.pex.config.dictField.Dict.history = property(lambda x: x._history)
staticinherited

Definition at line 70 of file dictField.py.


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