File indexing completed on 2024-04-06 12:13:26
0001 import FWCore.ParameterSet.Config as cms
0002
0003 class ExternalGeneratorFilter(cms.EDFilter):
0004 def __init__(self, prod, _external_process_waitTime_ = cms.untracked.uint32(300), _external_process_verbose_ = cms.untracked.bool(False),
0005 _external_process_components_ = cms.vstring()):
0006 self.__dict__['_external_process_verbose_']=_external_process_verbose_
0007 self.__dict__['_external_process_waitTime_']=_external_process_waitTime_
0008 self.__dict__['_external_process_components_'] = _external_process_components_
0009 self.__dict__['_prod'] = prod
0010 super(cms.EDFilter,self).__init__('ExternalGeneratorFilter')
0011 def __setattr__(self, name, value):
0012 if name =='_external_process_verbose_':
0013 return self.__dict__['_external_process_verbose_']
0014 setattr(self._prod, name, value)
0015 def __getattr__(self, name):
0016 if name =='_prod':
0017 return self.__dict__['_prod']
0018 if name == '_external_process_verbose_':
0019 return self.__dict__['_external_process_verbose_']
0020 return getattr(self._prod, name)
0021 def __getstate__(self): return self.__dict__
0022 def __setstate__(self, d): self.__dict__.update(d)
0023 def clone(self, **params):
0024 returnValue = ExternalGeneratorFilter.__new__(type(self))
0025 returnValue.__init__(self._prod.clone())
0026 return returnValue
0027 def insertInto(self, parameterSet, myname):
0028 newpset = parameterSet.newPSet()
0029 newpset.addString(True, "@module_label", self.moduleLabel_(myname))
0030 newpset.addString(True, "@module_type", self.type_())
0031 newpset.addString(True, "@module_edm_type", cms.EDFilter.__name__)
0032 newpset.addString(True, "@external_type", self._prod.type_())
0033 newpset.addString(False,"@python_config", self._prod.dumpPython().replace(R"\n", R"\\n"))
0034 newpset.addBool(False,"_external_process_verbose_", self._external_process_verbose_.value())
0035 newpset.addUInt32(False,"_external_process_waitTime_", self._external_process_waitTime_.value())
0036 newpset.addVString(True, "_external_process_components_", self._external_process_components_.value())
0037
0038 extraConfig =''
0039 for x in self._external_process_components_.value():
0040 extraConfig += "process."+x+"="+parameterSet.getTopPSet_(x).dumpPython()
0041 extraConfig += '\n'
0042 newpset.addString(False, "_external_process_extraConfig_", extraConfig)
0043 self._prod.insertContentsInto(newpset)
0044 parameterSet.addPSet(True, self.nameInProcessDesc_(myname), newpset)
0045 def dumpPython(self, options=cms.PrintOptions()):
0046 cms.specialImportRegistry.registerUse(self)
0047 result = "%s(" % self.__class__.__name__
0048 options.indent()
0049 result += "\n"+options.indentation() + self._prod.dumpPython(options)
0050 result +=options.indentation()+",\n"
0051 result += options.indentation() + "_external_process_waitTime_ = " + self._external_process_waitTime_.dumpPython(options) + ',\n'
0052 result += options.indentation() + "_external_process_verbose_ = " + self._external_process_verbose_.dumpPython(options) + ',\n'
0053 result += options.indentation() + "_external_process_components_ =" + self._external_process_components_.dumpPython(options) + ','
0054 options.unindent()
0055 result += "\n)\n"
0056 return result
0057
0058 cms.specialImportRegistry.registerSpecialImportForType(ExternalGeneratorFilter, "from GeneratorInterface.Core.ExternalGeneratorFilter import ExternalGeneratorFilter")