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

Commit

Permalink
rename listToAlignedText() list_to_aligned_text()
Browse files Browse the repository at this point in the history
  • Loading branch information
TaiSakuma committed Aug 26, 2017
1 parent 39ac6da commit facabd0
Show file tree
Hide file tree
Showing 12 changed files with 120 additions and 95 deletions.
5 changes: 4 additions & 1 deletion alphatwirl/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,12 @@
from . import delphes
from . import cmsedm
from .misc import mkdir_p
from .misc import listToAlignedText
from .misc import list_to_aligned_text
from .misc import quote_string

# to be deleted
from .misc import listToAlignedText

##__________________________________________________________________||
import logging
logger = logging.getLogger(__name__)
Expand Down
4 changes: 2 additions & 2 deletions alphatwirl/collector/WriteListToFile.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Tai Sakuma <tai.sakuma@cern.ch>
from ..misc import mkdir_p
from ..misc import listToAlignedText
from ..misc import list_to_aligned_text
import os

##__________________________________________________________________||
Expand All @@ -17,7 +17,7 @@ def __repr__(self):
def deliver(self, results):
if results is None: return
f = self._open(self._outPath)
f.write(listToAlignedText(results))
f.write(list_to_aligned_text(results))
self._close(f)

def _open(self, path):
Expand Down
12 changes: 6 additions & 6 deletions alphatwirl/heppyresult/TblBranch.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Tai Sakuma <tai.sakuma@cern.ch>
from ..misc import mkdir_p
from ..misc import listToAlignedText
from ..misc import list_to_aligned_text
import os
from operator import itemgetter
import ROOT
Expand Down Expand Up @@ -97,20 +97,20 @@ def end(self):

results.insert(0, columns)

formatDict = { }
format_dict = { }
if self.addSize:
formatDict.update({
format_dict.update({
'size':'{:.6f}',
'uncompressed_size':'{:.6f}',
'compression_factor':'{:.2f}'
})

leftAlignLastColumn = False
left_align_last_column = False
if self.addTitle:
leftAlignLastColumn = True
left_align_last_column = True

f = self._open(self.outPath)
f.write(listToAlignedText(results, formatDict, leftAlignLastColumn))
f.write(list_to_aligned_text(results, format_dict, left_align_last_column))
self._close(f)

def _open(self, path):
Expand Down
4 changes: 2 additions & 2 deletions alphatwirl/heppyresult/TblBrilCalc.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Tai Sakuma <tai.sakuma@cern.ch>
from ..misc import mkdir_p
from ..misc import listToAlignedText
from ..misc import list_to_aligned_text
import os
from .ReadCounter import ReadCounter

Expand Down Expand Up @@ -49,7 +49,7 @@ def end(self):
if len(self._rows) == 1: return

f = self._open(self._outPath)
f.write(listToAlignedText(self._rows))
f.write(list_to_aligned_text(self._rows))
self._close(f)

def _open(self, path):
Expand Down
4 changes: 2 additions & 2 deletions alphatwirl/heppyresult/TblComponentConfig.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Tai Sakuma <tai.sakuma@cern.ch>
from ..misc import mkdir_p
from ..misc import listToAlignedText
from ..misc import list_to_aligned_text
import os

##__________________________________________________________________||
Expand All @@ -26,7 +26,7 @@ def end(self):
if len(self._rows) == 1: return

f = self._open(self._outPath)
f.write(listToAlignedText(self._rows))
f.write(list_to_aligned_text(self._rows))
self._close(f)

def _open(self, path):
Expand Down
4 changes: 2 additions & 2 deletions alphatwirl/heppyresult/TblCounter.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import os

from ..misc import mkdir_p
from ..misc import listToAlignedText
from ..misc import list_to_aligned_text
from .ReadCounter import ReadCounter

##__________________________________________________________________||
Expand Down Expand Up @@ -54,7 +54,7 @@ def end(self):
self._rows = [['component']]

f = self._open(self._outPath)
f.write(listToAlignedText(self._rows))
f.write(list_to_aligned_text(self._rows))
self._close(f)

def _determine_columnNames_start_rows(self):
Expand Down
4 changes: 2 additions & 2 deletions alphatwirl/heppyresult/TblCounterLong.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import os

from ..misc import mkdir_p
from ..misc import listToAlignedText
from ..misc import list_to_aligned_text
from .ReadCounter import ReadCounter

##__________________________________________________________________||
Expand Down Expand Up @@ -49,7 +49,7 @@ def read(self, component):

def end(self):
f = self._open(self._outPath)
f.write(listToAlignedText(self._rows))
f.write(list_to_aligned_text(self._rows))
self._close(f)

def _open(self, path):
Expand Down
4 changes: 2 additions & 2 deletions alphatwirl/heppyresult/TblTree.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Tai Sakuma <tai.sakuma@cern.ch>
from ..misc import mkdir_p
from ..misc import listToAlignedText
from ..misc import list_to_aligned_text
import os
import ROOT

Expand Down Expand Up @@ -43,7 +43,7 @@ def read(self, component):

def end(self):
f = self._open(self.outPath)
f.write(listToAlignedText(self._rows))
f.write(list_to_aligned_text(self._rows))
self._close(f)

def _open(self, path):
Expand Down
5 changes: 4 additions & 1 deletion alphatwirl/misc/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
from .mkdir_p import mkdir_p
from .listToAlignedText import listToAlignedText
from .list_to_aligned_text import list_to_aligned_text
from .quote_string import quote_string

# to be deleted
from .listToAlignedText import listToAlignedText
74 changes: 11 additions & 63 deletions alphatwirl/misc/listToAlignedText.py
Original file line number Diff line number Diff line change
@@ -1,71 +1,19 @@
# Tai Sakuma <tai.sakuma@cern.ch>

from .quote_string import quote_string
import logging
from .list_to_aligned_text import list_to_aligned_text

##__________________________________________________________________||
def listToAlignedText(src, formatDict = None, leftAlignLastColumn = False):

# e.g.,
# src = [
# ('component', 'v1', 'nvar', 'n'),
# ('data1', 100, 6.0, 40),
# ('data1', 2, 9.0, 3.3),
# ('data1', 3124, 3.0, 0.0000001),
# ('data2', 333, 6.0, 300909234),
# ('data2', 11, 2.0, 323432.2234),
# ]

if not src: return '' # src = [ ]
if not src[0]: return '' # e.g., src = [(), (), ()]

transposed = [[r[i] for r in src] for i in range(len(src[0]))]
# e.g.,
# transposed = [
# ['component', 'data1', 'data1', 'data1', 'data2', 'data2'],
# ['v1', 100, 2, 3124, 333, 11],
# ['nvar', 6.0, 9.0, 3.0, 6.0, 2.0],
# ['n', 40, 3.3, 1e-07, 300909234, 323432.2234],
# ]

if formatDict is not None:
# formatDict = dict(n = '{:10.2f}')

for column in transposed:

colum_name = column[0]
if colum_name not in formatDict:
continue

colum_format = formatDict[colum_name]
column[:] = [column[0]] + [colum_format.format(c) for c in column[1:]]
# e.g., .['n', '40.00', '3.30', '0.00', '300909234.00', '323432.22']

transposed = [[int(e) if isinstance(e, float) and e.is_integer() else e for e in r] for r in transposed]
transposed = [[str(e) for e in r] for r in transposed]

transposed = [[quote_string(e) for e in r] for r in transposed]

columnWidths = [max([len(e) for e in r]) for r in transposed]
# e.g., columnWidths = [9, 2, 4, 1]

formatList = ['{:>' + str(e) + 's}' for e in columnWidths]
# e.g., formatList = ['{:>9s}', '{:>4s}', '{:>4s}', '{:>11s}']

if leftAlignLastColumn:
formatList[-1] = '{}'

format = " " + " ".join(formatList)
# e.g., format = "{:>9s} {:>4s} {:>4s} {:>11s}"

ret = "\n".join([format.format(*row) for row in zip(*transposed)]) + "\n"
# example ret
# component v1 nvar n
# data1 100 6 40
# data1 2 9 3.3
# data1 3124 3 1e-07
# data2 333 6 300909234
# data2 11 2 323432.2234

return ret
logger = logging.getLogger(__name__)
logger.warning('the function "{}" is renamed "{}". The arguments are renamed as well'.format(
"listToAlignedText", "list_to_aligned_text")
)

return list_to_aligned_text(
src = src,
format_dict = formatDict,
left_align_last_column = leftAlignLastColumn
)
##__________________________________________________________________||
71 changes: 71 additions & 0 deletions alphatwirl/misc/list_to_aligned_text.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Tai Sakuma <tai.sakuma@cern.ch>

from .quote_string import quote_string

##__________________________________________________________________||
def list_to_aligned_text(src, format_dict = None, left_align_last_column = False):

# e.g.,
# src = [
# ('component', 'v1', 'nvar', 'n'),
# ('data1', 100, 6.0, 40),
# ('data1', 2, 9.0, 3.3),
# ('data1', 3124, 3.0, 0.0000001),
# ('data2', 333, 6.0, 300909234),
# ('data2', 11, 2.0, 323432.2234),
# ]

if not src: return '' # src = [ ]
if not src[0]: return '' # e.g., src = [(), (), ()]

transposed = [[r[i] for r in src] for i in range(len(src[0]))]
# e.g.,
# transposed = [
# ['component', 'data1', 'data1', 'data1', 'data2', 'data2'],
# ['v1', 100, 2, 3124, 333, 11],
# ['nvar', 6.0, 9.0, 3.0, 6.0, 2.0],
# ['n', 40, 3.3, 1e-07, 300909234, 323432.2234],
# ]

if format_dict is not None:
# format_dict = dict(n = '{:10.2f}')

for column in transposed:

colum_name = column[0]
if colum_name not in format_dict:
continue

colum_format = format_dict[colum_name]
column[:] = [column[0]] + [colum_format.format(c) for c in column[1:]]
# e.g., .['n', '40.00', '3.30', '0.00', '300909234.00', '323432.22']

transposed = [[int(e) if isinstance(e, float) and e.is_integer() else e for e in r] for r in transposed]
transposed = [[str(e) for e in r] for r in transposed]

transposed = [[quote_string(e) for e in r] for r in transposed]

columnWidths = [max([len(e) for e in r]) for r in transposed]
# e.g., columnWidths = [9, 2, 4, 1]

formatList = ['{:>' + str(e) + 's}' for e in columnWidths]
# e.g., formatList = ['{:>9s}', '{:>4s}', '{:>4s}', '{:>11s}']

if left_align_last_column:
formatList[-1] = '{}'

format = " " + " ".join(formatList)
# e.g., format = "{:>9s} {:>4s} {:>4s} {:>11s}"

ret = "\n".join([format.format(*row) for row in zip(*transposed)]) + "\n"
# example ret
# component v1 nvar n
# data1 100 6 40
# data1 2 9 3.3
# data1 3124 3 1e-07
# data2 333 6 300909234
# data2 11 2 323432.2234

return ret

##__________________________________________________________________||

0 comments on commit facabd0

Please sign in to comment.