Skip to content
This repository has been archived by the owner on May 2, 2022. It is now read-only.

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
TaiSakuma committed Jul 30, 2018
2 parents a8de79f + 049af44 commit d529ece
Show file tree
Hide file tree
Showing 7 changed files with 414 additions and 374 deletions.
49 changes: 27 additions & 22 deletions alphatwirl/configure/TableConfigCompleter.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,29 @@ class TableConfigCompleter(object):
"""
def __init__(self,
defaultSummaryClass = Count,
defaultWeight = WeightCalculatorOne(),
defaultOutDir = '.',
createOutFileName = TableFileNameComposer()):
defaultSummaryClass=Count,
defaultWeight=WeightCalculatorOne(),
defaultOutDir='.',
createOutFileName=TableFileNameComposer()):

self.defaultSummaryClass = defaultSummaryClass
self.defaultWeight = defaultWeight
self.defaultOutDir = defaultOutDir
self.createOutFileName = createOutFileName

self.default_cfg = dict(
keyAttrNames=( ),
binnings=None,
keyIndices=None,
valAttrNames=None,
valIndices=None,
summaryClass=defaultSummaryClass,
weight=defaultWeight,
outFile=True,
sort=True,
nevents=None,
)

def __repr__(self):
name_value_pairs = (
('defaultSummaryClass', self.defaultSummaryClass),
Expand All @@ -45,34 +58,25 @@ def __repr__(self):
)
return '{}({})'.format(
self.__class__.__name__,
', '.join(['{} = {!r}'.format(n, v) for n, v in name_value_pairs]),
', '.join(['{}={!r}'.format(n, v) for n, v in name_value_pairs]),
)

def complete(self, tblcfg):
ret = tblcfg.copy()

if 'keyAttrNames' not in ret: ret['keyAttrNames'] = ( )
if 'binnings' not in ret: ret['binnings'] = None
ret = self.default_cfg.copy()
ret.update(tblcfg)

use_defaultSummaryClass = 'summaryClass' not in ret
if use_defaultSummaryClass:
ret['summaryClass'] = self.defaultSummaryClass
use_defaultSummaryClass = 'summaryClass' not in tblcfg

if 'keyOutColumnNames' not in ret: ret['keyOutColumnNames'] = ret['keyAttrNames']
if 'keyIndices' not in ret: ret['keyIndices'] = None
if 'valAttrNames' not in ret: ret['valAttrNames'] = None
ret['keyOutColumnNames'] = ret.get('keyOutColumnNames', ret['keyAttrNames'])
# TODO: this line is not tested well. The following code also passes the tests
# ret['keyOutColumnNames'] = ret.get('keyAttrNames', ret['keyAttrNames'])

if 'valOutColumnNames' not in ret:
if use_defaultSummaryClass:
ret['valOutColumnNames'] = ('n', 'nvar')
else:
ret['valOutColumnNames'] = ret['valAttrNames'] if ret['valAttrNames'] is not None else ()

if 'valIndices' not in ret: ret['valIndices'] = None
if 'outFile' not in ret: ret['outFile'] = True
if 'weight' not in ret: ret['weight'] = self.defaultWeight
if 'sort' not in ret: ret['sort'] = True
if 'nevents' not in ret: ret['nevents'] = None
if ret['outFile']:
if 'outFileName' not in ret:
if use_defaultSummaryClass:
Expand All @@ -87,9 +91,10 @@ def complete(self, tblcfg):
ret['outFileName'] = self.createOutFileName(
keyOutColumnNames + valOutColumnNames,
keyIndices + valIndices,
prefix = 'tbl_{}'.format(ret['summaryClass'].__name__)
prefix='tbl_{}'.format(ret['summaryClass'].__name__)
)
if 'outFilePath' not in ret: ret['outFilePath'] = os.path.join(self.defaultOutDir, ret['outFileName'])
if 'outFilePath' not in ret:
ret['outFilePath'] = os.path.join(self.defaultOutDir, ret['outFileName'])
return ret

##__________________________________________________________________||
36 changes: 27 additions & 9 deletions alphatwirl/loop/ReaderComposite.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Tai Sakuma <tai.sakuma@gmail.com>

import alphatwirl

##__________________________________________________________________||
class ReaderComposite(object):

Expand All @@ -16,8 +18,8 @@ class ReaderComposite(object):
"""

def __init__(self):
self.readers = []
def __init__(self, readers=[]):
self.readers = list(readers)

def __repr__(self):
return '{}({!r})'.format(
Expand All @@ -30,21 +32,37 @@ def add(self, reader):

def begin(self, event):
for reader in self.readers:
if not hasattr(reader, 'begin'): continue
if not hasattr(reader, 'begin'):
continue
reader.begin(event)

def event(self, event):
for reader in self.readers:
if reader.event(event) is False: break
if reader.event(event) is False:
break

def end(self):
for reader in self.readers:
if not hasattr(reader, 'end'):
continue
reader.end()

def merge(self, other):
for r, o in zip(self.readers, other.readers):
if not hasattr(r, 'merge'): continue
if not hasattr(r, 'merge'):
continue
r.merge(o)

def end(self):
for reader in self.readers:
if not hasattr(reader, 'end'): continue
reader.end()
def collect(self):
ret = [ ]
n = len(self.readers)
for i, reader in enumerate(self.readers):
report = alphatwirl.progressbar.ProgressReport(name='collecting results', done=(i + 1), total=n)
alphatwirl.progressbar.report_progress(report)
if not hasattr(reader, 'collect'):
ret.append(None)
continue
ret.append(reader.collect())
return ret

##__________________________________________________________________||
11 changes: 9 additions & 2 deletions alphatwirl/summary/Reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@

##__________________________________________________________________||
class Reader(object):
def __init__(self, keyValComposer, summarizer, nextKeyComposer=None,
def __init__(self, keyValComposer, summarizer,
nextKeyComposer=None,
weightCalculator=WeightCalculatorOne(),
nevents=None):
collector=None, nevents=None):

self.keyValComposer = keyValComposer
self.summarizer = summarizer
self.collector = collector
self.weightCalculator = weightCalculator
self.nextKeyComposer = nextKeyComposer

Expand All @@ -19,6 +22,7 @@ def __init__(self, keyValComposer, summarizer, nextKeyComposer=None,
self._repr_pairs = [
('keyValComposer', self.keyValComposer),
('summarizer', self.summarizer),
('collector', self.collector),
('nextKeyComposer', self.nextKeyComposer),
('weightCalculator', self.weightCalculator),
('nevents', self.nevents),
Expand Down Expand Up @@ -74,4 +78,7 @@ def merge(self, other):
def results(self):
return self.summarizer

def collect(self):
return self.collector(self)

##__________________________________________________________________||

0 comments on commit d529ece

Please sign in to comment.