def setMaxEventsOutput(self, maxEv, moduleName=None): """ _setMaxEventsOutput_ """ value = CfgTypes.untracked(CfgTypes.int32(maxEv)) if moduleName == None: self.data.output = value return cfgType = getattr(self.data, "output", None) if cfgType.__class__.__name__ == "VPSet": # is a VPset so we append to that self.data.output.append( CfgTypes.untracked(CfgTypes.PSet(moduleName=value))) else: # add new VPset self.data.output = CfgTypes.untracked( CfgTypes.VPSet( CfgTypes.untracked(CfgTypes.PSet(moduleName=value)))) return
def __init__(self, cfgInstance): self.data = cfgInstance if not self.data.source: msg = "The config file has no Source" raise RuntimeError, msg self.inputSource = InputSource(self.data.source) self.outputModules = {} for omodName in self.data.outputModules: self.outputModules[omodName] = OutputModule( omodName, getattr(self.data, omodName)) if not self.data.psets.has_key('maxEvents'): self.data.maxEvents = CfgTypes.untracked(CfgTypes.PSet()) self.maxEvents = MaxEvents(self.data.maxEvents)
def checkMessageLoggerSvc(cfgInstance): """ _checkMessageLogger_ Check that the message logger is active and provides the default job report and event logger settings for production """ svcs = cfgInstance.services # // # // Check Job report service will write the expected #// FrameworkJobReport.xml file if not svcs.has_key('MessageLogger'): cfgInstance.add_(CfgModules.Service("MessageLogger")) messageLogger = cfgInstance.services['MessageLogger'] if "fwkJobReports" not in messageLogger.parameterNames_(): messageLogger.fwkJobReports = CfgTypes.untracked(CfgTypes.vstring()) if "FrameworkJobReport" not in messageLogger.fwkJobReports: messageLogger.fwkJobReports.append("FrameworkJobReport") if "FrameworkJobReport" not in messageLogger.parameterNames_(): messageLogger.FrameworkJobReport = CfgTypes.untracked(CfgTypes.PSet()) messageLogger.FrameworkJobReport.default = CfgTypes.untracked( CfgTypes.PSet(limit=CfgTypes.untracked(CfgTypes.int32(0)))) messageLogger.FrameworkJobReport.FwkJob = CfgTypes.untracked( CfgTypes.PSet(limit=CfgTypes.untracked(CfgTypes.int32(10000000)))) # // # // Install the per event output #// if "destinations" not in messageLogger.parameterNames_(): messageLogger.destinations = CfgTypes.untracked(CfgTypes.vstring()) if "EventLogger" not in messageLogger.destinations: messageLogger.destinations.append("EventLogger") if "EventLogger" not in messageLogger.parameterNames_(): messageLogger.EventLogger = CfgTypes.untracked(CfgTypes.PSet()) messageLogger.EventLogger.default = CfgTypes.untracked( CfgTypes.PSet(limit=CfgTypes.untracked(CfgTypes.int32(0)))) messageLogger.FrameworkJobReport.FwkReport = CfgTypes.untracked( CfgTypes.PSet(limit=CfgTypes.untracked(CfgTypes.int32(10000000)), reportEvery=CfgTypes.untracked( CfgTypes.int32(10000000)))) return
def addDataset(self, **datasetParams): """ _addDataset_ Add Dataset information to this cfg file. Each key, value pair provided in dataset Params is added as an untracked string to the datasets PSet in a PSet named entryName """ datasetPSet = getattr(self.data, "dataset", None) if datasetPSet == None: self.data.dataset = CfgTypes.untracked(CfgTypes.PSet()) datasetPSet = self.data.dataset for key, value in datasetParams.items(): setattr(datasetPSet, key, CfgTypes.untracked(CfgTypes.string(str(value)))) return
""" newSeeds = [ value for i in range(self.countSeeds())] self.insertSeeds(*newSeeds) return if __name__ == '__main__': # // # // Setup a test service and populate it #// randSvc = Service("RandomNumberGeneratorService") randHelper = RandomNumberServiceHelper(randSvc) randSvc.i1 = CfgTypes.untracked(CfgTypes.uint32(1)) randSvc.t1 = CfgTypes.PSet() randSvc.t2 = CfgTypes.PSet() randSvc.t3 = CfgTypes.PSet() randSvc.t1.initialSeed = CfgTypes.untracked( CfgTypes.uint32(123455678) ) randSvc.t2.initialSeedSet = CfgTypes.untracked( CfgTypes.vuint32(12345,234567,345677) ) randSvc.t3.initialSeed = CfgTypes.untracked( CfgTypes.uint32(987654321) )