def writePickle(self) : def pickleJar(step) : inter = set(step.varsToPickle()).intersection(set(['nPass','nFail','outputFileName'])) assert not inter, "%s is trying to pickle %s, which %s reserved for use by analysisStep."%(step.name, str(inter), "is" if len(inter)==1 else "are") return dict([ (item, getattr(step,item)) for item in step.varsToPickle()+['nPass','nFail']] + [('outputFileName', getattr(step,'outputFileName').replace(self.outputDir, self.globalDir))]) utils.writePickle( self.pickleFileName, [ [pickleJar(step) for step in self.steps], self.calculablesUsed, self.leavesUsed] )
def writePickle(self, iSlice): def pickleJar(step): if step.name=='master' and configuration.computeEntriesAtMakeFileList(): if self.byEvents: nExpect = self.nExpect / self.nSlices if iSlice < (self.nExpect % self.nSlices): nExpect += 1 else: nExpect = self.nExpect msg = "iSlice: %d, Expect: %d, Actual: %d" % (iSlice, nExpect, step.nPass + step.nFail) assert abs(step.nPass + step.nFail - nExpect) < 1 , msg inter = set(step.varsToPickle()).intersection(set(['nPass','nFail','outputFileName'])) assert not inter, "%s is trying to pickle %s, which %s reserved for use by analysisStep."%(step.name, str(inter), ["is","are"][len(inter)>1]) return dict([ (item, getattr(step,item)) for item in step.varsToPickle()+['nPass','nFail']] + [('outputFileName', getattr(step,'outputFileName').replace(self.outputDir, self.globalDir))]) utils.writePickle( self.pickleFileName, [ [pickleJar(step) for step in self.steps], self.calculablesUsed, self.leavesUsed] )