예제 #1
0
    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] )
예제 #2
0
    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] )