LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Member Functions | List of all members
lsst.pex.config.configDictField.ConfigDict Class Reference
Inheritance diagram for lsst.pex.config.configDictField.ConfigDict:

Public Member Functions

def __init__
 
def __setitem__
 
def __delitem__
 

Detailed Description

Config-Insternal representation of a dict of config classes

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

Definition at line 30 of file configDictField.py.

Constructor & Destructor Documentation

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

Definition at line 37 of file configDictField.py.

37 
38  def __init__(self, config, field, value, at, label):
39  Dict.__init__(self, config, field, value, at, label, setHistory=False)
40  self.history.append(("Dict initialized", at, label))

Member Function Documentation

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

Definition at line 79 of file configDictField.py.

79 
80  def __delitem__(self, k, at=None, label="delitem"):
81  if at is None:
82  at = traceback.extract_stack()[:-1]
83  Dict.__delitem__(self, k, at, label, False)
84  self.history.append(("Removed item at key %s"%k, at, label))
def lsst.pex.config.configDictField.ConfigDict.__setitem__ (   self,
  k,
  x,
  at = None,
  label = "setitem",
  setHistory = True 
)

Definition at line 41 of file configDictField.py.

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

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