Source code for alphatwirl.heppyresult.TblComponentConfig

# Tai Sakuma <tai.sakuma@cern.ch>
from ..misc import mkdir_p
from ..misc import list_to_aligned_text
import os

##__________________________________________________________________||
[docs]class TblComponentConfig(object): def __init__(self, outPath, columnNames, keys): self._outPath = outPath self.columnNames = columnNames self._rows = [['component'] + list(columnNames)] self._keys = keys
[docs] def begin(self): pass
[docs] def read(self, component): cfg = component.config() if cfg is None: return if not all([k in cfg for k in self._keys]): return vals = [cfg[k] for k in self._keys] self._rows.append([component.name] + vals)
[docs] def end(self): if len(self._rows) == 1: return f = self._open(self._outPath) f.write(list_to_aligned_text(self._rows).encode()) self._close(f)
def _open(self, path): mkdir_p(os.path.dirname(path)) return open(path, 'w') def _close(self, file): file.close()
##__________________________________________________________________||