initial commit
This commit is contained in:
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import re
|
||||
import sys
|
||||
import os
|
||||
import copy
|
||||
|
||||
ISPIPE = re.compile(r'(?<!\\)\|')
|
||||
|
||||
def calc_colnums(rows):
|
||||
colsizes = [0]
|
||||
for row in rows:
|
||||
for ind,cell in enumerate(row):
|
||||
if (len(colsizes) -1) < ind:
|
||||
colsizes.append(0)
|
||||
cell_size = len(cell.strip())
|
||||
if cell_size > colsizes[ind]:
|
||||
colsizes[ind] = cell_size
|
||||
return colsizes
|
||||
|
||||
def pad_cells_and_center(rows):
|
||||
pad = 1
|
||||
cells_to_pad = copy.deepcopy(rows)
|
||||
colsizes = calc_colnums(rows)
|
||||
for row_id,row in enumerate(cells_to_pad):
|
||||
for col_ind,cell in enumerate(row):
|
||||
cell_size = len(cell.strip())
|
||||
numspaces = (colsizes[col_ind] - cell_size) + pad
|
||||
if row_id == 1:
|
||||
cells_to_pad[row_id][col_ind] = ' ' * pad + '-' * colsizes[col_ind] + ' ' * pad
|
||||
continue
|
||||
cells_to_pad[row_id][col_ind] = ' ' * pad + cell.strip() + ' '* numspaces
|
||||
return(cells_to_pad)
|
||||
|
||||
if __name__ == "__main__":
|
||||
table = []
|
||||
for row_string in sys.stdin:
|
||||
table.append(ISPIPE.split(row_string.strip())[1:-1])
|
||||
table = pad_cells_and_center(table)
|
||||
for row in ['|' + '|'.join(r) + '|' for r in table]:
|
||||
print(row)
|
||||
|
||||
Reference in New Issue
Block a user