![]() |
![]() |
Public Member Functions | |
def | __init__ |
def | doIt |
def | enter |
def | leave |
Private Attributes | |
_paramReplace | |
_paramSearch | |
_verbose | |
_whitelist |
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 1205 of file ConfigBuilder.py.
def ConfigBuilder::ConfigBuilder::MassSearchReplaceProcessNameVisitor::__init__ | ( | self, | |
paramSearch, | |||
paramReplace, | |||
verbose = False , |
|||
whitelist = () |
|||
) |
Definition at line 1208 of file ConfigBuilder.py.
def ConfigBuilder::ConfigBuilder::MassSearchReplaceProcessNameVisitor::doIt | ( | self, | |
pset, | |||
base | |||
) |
Definition at line 1214 of file ConfigBuilder.py.
01215 : 01216 if isinstance(pset, cms._Parameterizable): 01217 for name in pset.parameters_().keys(): 01218 # skip whitelisted parameters 01219 if name in self._whitelist: 01220 continue 01221 # if I use pset.parameters_().items() I get copies of the parameter values 01222 # so I can't modify the nested pset 01223 value = getattr(pset,name) 01224 type = value.pythonTypeName() 01225 if type in ('cms.PSet', 'cms.untracked.PSet'): 01226 self.doIt(value,base+"."+name) 01227 elif type in ('cms.VPSet', 'cms.untracked.VPSet'): 01228 for (i,ps) in enumerate(value): self.doIt(ps, "%s.%s[%d]"%(base,name,i) ) 01229 elif type in ('cms.string', 'cms.untracked.string'): 01230 if value.value() == self._paramSearch: 01231 if self._verbose: print "set string process name %s.%s %s ==> %s"% (base, name, value, self._paramReplace) 01232 setattr(pset, name,self._paramReplace) 01233 elif type in ('cms.VInputTag', 'cms.untracked.VInputTag'): 01234 for (i,n) in enumerate(value): 01235 if not isinstance(n, cms.InputTag): 01236 n=cms.InputTag(n) 01237 if n.processName == self._paramSearch: 01238 # VInputTag can be declared as a list of strings, so ensure that n is formatted correctly 01239 if self._verbose:print "set process name %s.%s[%d] %s ==> %s " % (base, name, i, n, self._paramReplace) 01240 setattr(n,"processName",self._paramReplace) 01241 value[i]=n 01242 elif type in ('cms.vstring', 'cms.untracked.vstring'): 01243 for (i,n) in enumerate(value): 01244 if n==self._paramSearch: 01245 getattr(pset,name)[i]=self._paramReplace 01246 elif type in ('cms.InputTag', 'cms.untracked.InputTag'): 01247 if value.processName == self._paramSearch: 01248 if self._verbose: print "set process name %s.%s %s ==> %s " % (base, name, value, self._paramReplace) 01249 setattr(getattr(pset, name),"processName",self._paramReplace)
def ConfigBuilder::ConfigBuilder::MassSearchReplaceProcessNameVisitor::enter | ( | self, | |
visitee | |||
) |
Definition at line 1250 of file ConfigBuilder.py.
def ConfigBuilder::ConfigBuilder::MassSearchReplaceProcessNameVisitor::leave | ( | self, | |
visitee | |||
) |
Definition at line 1260 of file ConfigBuilder.py.
Definition at line 1208 of file ConfigBuilder.py.
Definition at line 1208 of file ConfigBuilder.py.
Definition at line 1208 of file ConfigBuilder.py.
Definition at line 1208 of file ConfigBuilder.py.