CMS 3D CMS Logo

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__ (self, paramSearch, paramReplace, verbose=False, whitelist=())
 
def doIt (self, pset, base)
 
def enter (self, visitee)
 
def leave (self, visitee)
 

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 1847 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 1856 of file ConfigBuilder.py.

References ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._paramReplace, ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._paramSearch, uploads.output._verbose, uploads.uploader._verbose, ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._verbose, ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._whitelist, TkCommonModeCalculator.doIt(), MedianCommonModeCalculator.doIt(), TT6CommonModeCalculator.doIt(), ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.doIt(), relativeConstraints.keys, and edm.print().

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

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

Definition at line 1892 of file ConfigBuilder.py.

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

1892  def enter(self,visitee):
1893  label = ''
1894  try:
1895  label = visitee.label()
1896  except AttributeError:
1897  label = '<Module not in a Process>'
1898  except:
1899  label = 'other execption'
1900  self.doIt(visitee, label)
1901 
def ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor.leave (   self,
  visitee 
)

Definition at line 1902 of file ConfigBuilder.py.

1902  def leave(self,visitee):
1903  pass
1904 
1905  #visit a sequence to repalce all input tags

Member Data Documentation

ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._paramReplace
private
ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._paramSearch
private
ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._verbose
private
ConfigBuilder.ConfigBuilder.MassSearchReplaceProcessNameVisitor._whitelist
private