CMS 3D CMS Logo

ExternalGeneratorFilter.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 class ExternalGeneratorFilter(cms.EDFilter):
4  def __init__(self, prod, _external_process_waitTime_ = cms.untracked.uint32(300), _external_process_verbose_ = cms.untracked.bool(False),
5  _external_process_components_ = cms.vstring()):
6  self.__dict__['_external_process_verbose_']=_external_process_verbose_
7  self.__dict__['_external_process_waitTime_']=_external_process_waitTime_
8  self.__dict__['_external_process_components_'] = _external_process_components_
9  self.__dict__['_prod'] = prod
10  super(cms.EDFilter,self).__init__('ExternalGeneratorFilter')
11  def __setattr__(self, name, value):
12  if name =='_external_process_verbose_':
13  return self.__dict__['_external_process_verbose_']
14  setattr(self._prod, name, value)
15  def __getattr__(self, name):
16  if name =='_prod':
17  return self.__dict__['_prod']
18  if name == '_external_process_verbose_':
19  return self.__dict__['_external_process_verbose_']
20  return getattr(self._prod, name)
21  def __getstate__(self): return self.__dict__
22  def __setstate__(self, d): self.__dict__.update(d)
23  def clone(self, **params):
24  returnValue = ExternalGeneratorFilter.__new__(type(self))
25  returnValue.__init__(self._prod.clone())
26  return returnValue
27  def insertInto(self, parameterSet, myname):
28  newpset = parameterSet.newPSet()
29  newpset.addString(True, "@module_label", self.moduleLabel_(myname))
30  newpset.addString(True, "@module_type", self.type_())
31  newpset.addString(True, "@module_edm_type", cms.EDFilter.__name__)
32  newpset.addString(True, "@external_type", self._prod.type_())
33  newpset.addString(False,"@python_config", self._prod.dumpPython().replace(R"\n", R"\\n"))
34  newpset.addBool(False,"_external_process_verbose_", self._external_process_verbose_.value())
35  newpset.addUInt32(False,"_external_process_waitTime_", self._external_process_waitTime_.value())
36  newpset.addVString(True, "_external_process_components_", self._external_process_components_.value())
37 
38  extraConfig =''
39  for x in self._external_process_components_.value():
40  extraConfig += "process."+x+"="+parameterSet.getTopPSet_(x).dumpPython()
41  extraConfig += '\n'
42  newpset.addString(False, "_external_process_extraConfig_", extraConfig)
43  self._prod.insertContentsInto(newpset)
44  parameterSet.addPSet(True, self.nameInProcessDesc_(myname), newpset)
45  def dumpPython(self, options=cms.PrintOptions()):
46  cms.specialImportRegistry.registerUse(self)
47  result = "%s(" % self.__class__.__name__ # not including cms. since the deriving classes are not in cms "namespace"
48  options.indent()
49  result += "\n"+options.indentation() + self._prod.dumpPython(options)
50  result +=options.indentation()+",\n"
51  result += options.indentation() + "_external_process_waitTime_ = " + self._external_process_waitTime_.dumpPython(options) + ',\n'
52  result += options.indentation() + "_external_process_verbose_ = " + self._external_process_verbose_.dumpPython(options) + ',\n'
53  result += options.indentation() + "_external_process_components_ =" + self._external_process_components_.dumpPython(options) + ','
54  options.unindent()
55  result += "\n)\n"
56  return result
57 
58 cms.specialImportRegistry.registerSpecialImportForType(ExternalGeneratorFilter, "from GeneratorInterface.Core.ExternalGeneratorFilter import ExternalGeneratorFilter")
def __init__(self, prod, _external_process_waitTime_=cms.untracked.uint32(300), _external_process_verbose_=cms.untracked.bool(False), _external_process_components_=cms.vstring())
def replace(string, replacements)
def dumpPython(self, options=cms.PrintOptions())