CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Classes | Functions
Mixins Namespace Reference

Classes

class  _ConfigureComponent
 
class  _Labelable
 
class  _Parameterizable
 
class  _ParameterTypeBase
 
class  _SimpleParameterTypeBase
 
class  _TypedParameterizable
 
class  _Unlabelable
 
class  _ValidatingListBase
 
class  _ValidatingParameterListBase
 
class  PrintOptions
 
class  TestList
 
class  testMixins
 
class  UsingBlock
 

Functions

def _modifyParametersFromDict (params, newParams, errorRaiser, keyDepth="")
 
def saveOrigin (obj, level)
 

Function Documentation

def Mixins._modifyParametersFromDict (   params,
  newParams,
  errorRaiser,
  keyDepth = "" 
)
private

Definition at line 628 of file Mixins.py.

References any(), cmsPerfStripChart.dict, and reco::JetExtendedAssociation.setValue().

Referenced by Config._ParameterModifier.__call__(), Mixins._TypedParameterizable.clone(), and Types.PSet.clone().

628 def _modifyParametersFromDict(params, newParams, errorRaiser, keyDepth=""):
629  if len(newParams):
630  #need to treat items both in params and myparams specially
631  for key,value in newParams.iteritems():
632  if key in params:
633  if value is None:
634  del params[key]
635  elif isinstance(value, dict):
636  if isinstance(params[key],_Parameterizable):
637  pset = params[key]
638  p =pset.parameters_()
639  oldkeys = set(p.keys())
641  value,errorRaiser,
642  ("%s.%s" if type(key)==str else "%s[%s]")%(keyDepth,key))
643  for k,v in p.iteritems():
644  setattr(pset,k,v)
645  oldkeys.discard(k)
646  for k in oldkeys:
647  delattr(pset,k)
648  elif isinstance(params[key],_ValidatingParameterListBase):
649  if any(type(k) != int for k in value.keys()):
650  raise TypeError("Attempted to change a list using a dict whose keys are not integers")
651  plist = params[key]
652  if any((k < 0 or k >= len(plist)) for k in value.keys()):
653  raise IndexError("Attempted to set an index which is not in the list")
654  p = dict(enumerate(plist))
656  value,errorRaiser,
657  ("%s.%s" if type(key)==str else "%s[%s]")%(keyDepth,key))
658  for k,v in p.iteritems():
659  plist[k] = v
660  else:
661  raise ValueError("Attempted to change non PSet value "+keyDepth+" using a dictionary")
662  elif isinstance(value,_ParameterTypeBase) or (type(key) == int):
663  params[key] = value
664  else:
665  params[key].setValue(value)
666  else:
667  if isinstance(value,_ParameterTypeBase):
668  params[key]=value
669  else:
670  errorRaiser(key)
671 
672 
def _modifyParametersFromDict(params, newParams, errorRaiser, keyDepth="")
Definition: Mixins.py:628
bool any(const std::vector< T > &v, const T &what)
Definition: ECalSD.cc:37
bool setValue(Container &, const reco::JetBaseRef &, const JetExtendedData &)
associate jet with value. Returns false and associate nothing if jet is already associated ...
def Mixins.saveOrigin (   obj,
  level 
)

Definition at line 619 of file Mixins.py.

Referenced by Modules.ESSource.__init__(), Modules._Module.__init__(), Mixins._TypedParameterizable.__init__(), and Mixins._TypedParameterizable.clone().

619 def saveOrigin(obj, level):
620  #frame = inspect.stack()[level+1]
621  frame = inspect.getframeinfo(inspect.currentframe(level+1))
622  # not safe under old python versions
623  #obj._filename = frame.filename
624  #obj._lineNumber = frame.lineno
625  obj._filename = frame[0]
626  obj._lineNumber = frame[1]
627 
def saveOrigin(obj, level)
Definition: Mixins.py:619