CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor Class Reference
Inheritance diagram for ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor:

Public Member Functions

def __init__
 
def doIt
 
def enter
 
def leave
 

Private Attributes

 _paramReplace
 
 _paramSearch
 
 _verbose
 
 _whitelist
 

Detailed Description

Visitor that travels within a cms.Sequence, looks for a parameter and replace its value
It will climb down within PSets, VPSets and VInputTags to find its target

Definition at line 1852 of file ConfigBuilder.py.

Constructor & Destructor Documentation

def ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.__init__ (   self,
  paramSearch,
  paramReplace,
  verbose = False,
  whitelist = () 
)

Member Function Documentation

def ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.doIt (   self,
  pset,
  base 
)

Definition at line 1861 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._paramReplace, ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._paramSearch, ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._verbose, ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._whitelist, TkCommonModeCalculator.doIt(), MedianCommonModeCalculator.doIt(), TT6CommonModeCalculator.doIt(), ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.doIt(), and relativeConstraints.keys.

Referenced by HiHelperTools.MassSearchReplaceAnyInputTagVisitor.doIt(), helpers.MassSearchReplaceAnyInputTagVisitor.doIt(), ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.doIt(), HiHelperTools.MassSearchReplaceAnyInputTagVisitor.enter(), helpers.MassSearchReplaceAnyInputTagVisitor.enter(), and ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.enter().

1862  def doIt(self,pset,base):
1863  if isinstance(pset, cms._Parameterizable):
1864  for name in pset.parameters_().keys():
1865  # skip whitelisted parameters
1866  if name in self._whitelist:
1867  continue
1868  # if I use pset.parameters_().items() I get copies of the parameter values
1869  # so I can't modify the nested pset
1870  value = getattr(pset,name)
1871  type = value.pythonTypeName()
1872  if type in ('cms.PSet', 'cms.untracked.PSet'):
1873  self.doIt(value,base+"."+name)
1874  elif type in ('cms.VPSet', 'cms.untracked.VPSet'):
1875  for (i,ps) in enumerate(value): self.doIt(ps, "%s.%s[%d]"%(base,name,i) )
1876  elif type in ('cms.string', 'cms.untracked.string'):
1877  if value.value() == self._paramSearch:
1878  if self._verbose: print "set string process name %s.%s %s ==> %s"% (base, name, value, self._paramReplace)
1879  setattr(pset, name,self._paramReplace)
1880  elif type in ('cms.VInputTag', 'cms.untracked.VInputTag'):
1881  for (i,n) in enumerate(value):
1882  if not isinstance(n, cms.InputTag):
1883  n=cms.InputTag(n)
1884  if n.processName == self._paramSearch:
1885  # VInputTag can be declared as a list of strings, so ensure that n is formatted correctly
1886  if self._verbose:print "set process name %s.%s[%d] %s ==> %s " % (base, name, i, n, self._paramReplace)
1887  setattr(n,"processName",self._paramReplace)
1888  value[i]=n
1889  elif type in ('cms.vstring', 'cms.untracked.vstring'):
1890  for (i,n) in enumerate(value):
1891  if n==self._paramSearch:
1892  getattr(pset,name)[i]=self._paramReplace
1893  elif type in ('cms.InputTag', 'cms.untracked.InputTag'):
1894  if value.processName == self._paramSearch:
1895  if self._verbose: print "set process name %s.%s %s ==> %s " % (base, name, value, self._paramReplace)
1896  setattr(getattr(pset, name),"processName",self._paramReplace)
def ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.enter (   self,
  visitee 
)

Definition at line 1897 of file ConfigBuilder.py.

References TkCommonModeCalculator.doIt(), MedianCommonModeCalculator.doIt(), TT6CommonModeCalculator.doIt(), and ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.doIt().

1898  def enter(self,visitee):
1899  label = ''
1900  try:
1901  label = visitee.label()
1902  except AttributeError:
1903  label = '<Module not in a Process>'
1904  except:
1905  label = 'other execption'
1906  self.doIt(visitee, label)
def ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.leave (   self,
  visitee 
)

Definition at line 1907 of file ConfigBuilder.py.

1908  def leave(self,visitee):
1909  pass
1910 
#visit a sequence to repalce all input tags

Member Data Documentation

ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._paramReplace
private

Definition at line 1856 of file ConfigBuilder.py.

Referenced by HiHelperTools.MassSearchReplaceAnyInputTagVisitor.doIt(), helpers.MassSearchReplaceAnyInputTagVisitor.doIt(), and ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.doIt().

ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._paramSearch
private

Definition at line 1857 of file ConfigBuilder.py.

Referenced by HiHelperTools.MassSearchReplaceAnyInputTagVisitor.doIt(), helpers.MassSearchReplaceAnyInputTagVisitor.doIt(), ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.doIt(), HiHelperTools.MassSearchReplaceParamVisitor.enter(), helpers.MassSearchReplaceParamVisitor.enter(), HiHelperTools.MassSearchParamVisitor.enter(), and helpers.MassSearchParamVisitor.enter().

ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._verbose
private

Definition at line 1858 of file ConfigBuilder.py.

Referenced by HiHelperTools.MassSearchReplaceAnyInputTagVisitor.doIt(), helpers.MassSearchReplaceAnyInputTagVisitor.doIt(), ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.doIt(), HiHelperTools.MassSearchReplaceParamVisitor.enter(), helpers.MassSearchReplaceParamVisitor.enter(), cmsPerfSuite.PerfSuite.mkCandleDir(), cmsPerfSuite.PerfSuite.optionParse(), cmsPerfSuite.PerfSuite.printFlush(), cmsPerfSuite.PerfSuite.runcmd(), and cmsPerfSuite.PerfSuite.runCmdSet().

ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._whitelist
private

Definition at line 1859 of file ConfigBuilder.py.

Referenced by ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.doIt().