Source code for alphatwirl.collector.ToTupleList

# Tai Sakuma <tai.sakuma@gmail.com>
import itertools

##__________________________________________________________________||
[docs]class ToTupleList(object): def __init__(self, summaryColumnNames ): self.summaryColumnNames = summaryColumnNames def __repr__(self): name_value_pairs = ( ('summaryColumnNames', self.summaryColumnNames), ) return '{}({})'.format( self.__class__.__name__, ', '.join(['{} = {!r}'.format(n, v) for n, v in name_value_pairs]), )
[docs] def combine(self, dataset_readers_list): if len(dataset_readers_list) == 0: return None # e.g., # dataset_readers_list = [ # ('QCD', (reader1, reader2)), # ('TTJets', (reader3, )), # ('WJets', (reader4, )), # ('ZJets', ( )), # ] readers_list = itertools.chain(*(r for _, r in dataset_readers_list)) # e.g., # readers_list = (reader1, reader2, reader3, reader4) summarizers_list = (r.results() for r in readers_list) # e.g., # summarizers_list = (summarizer1, summarizer2, summarizer3, summarizer4) summarizer = sum(summarizers_list) ret = summarizer.to_tuple_list() # e.g., # ret = [ # (200, 2, 120, 240), # (300, 2, 490, 980), # (300, 3, 210, 420) # (300, 2, 20, 40), # (300, 3, 15, 30) # ] ret.insert(0, self.summaryColumnNames) # e.g., # [ # ('htbin', 'njetbin', 'n', 'nvar'), # ( 200, 2, 120, 240), # ( 300, 2, 490, 980), # ( 300, 3, 210, 420), # ( 300, 2, 20, 40), # ( 300, 3, 15, 30) # ] return ret
##__________________________________________________________________||