Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit dcfaeea

Browse files
committed
transpose table, more flexible
1 parent 0001c8a commit dcfaeea

File tree

1 file changed

+56
-6
lines changed

1 file changed

+56
-6
lines changed

18_gematria/asciitbl.py

Lines changed: 56 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,70 @@
11
#!/usr/bin/env python3
2-
"""Print ASCII table"""
2+
""" Make ASCII table """
33

44
import argparse
5-
import os
6-
import sys
7-
import string
85
from itertools import zip_longest
96
from tabulate import tabulate
7+
import pandas as pd
8+
from pprint import pprint
9+
10+
11+
# --------------------------------------------------
12+
def get_args():
13+
"""Get command-line arguments"""
14+
15+
parser = argparse.ArgumentParser(
16+
description='Make ASCII table',
17+
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
18+
19+
parser.add_argument('-c',
20+
'--cols',
21+
help='Number of columns',
22+
metavar='int',
23+
type=int,
24+
default=8)
25+
26+
parser.add_argument('-l',
27+
'--lower',
28+
help='Lower chr value',
29+
metavar='int',
30+
type=int,
31+
default=0)
32+
33+
parser.add_argument('-u',
34+
'--upper',
35+
help='Upper chr value',
36+
metavar='int',
37+
type=int,
38+
default=128)
39+
40+
args = parser.parse_args()
41+
42+
if args.lower < 0:
43+
parser.error(f'--lower "{args.lower}" must be >= 0')
44+
45+
if args.upper > 128:
46+
parser.error(f'--upper "{args.upper}" must be <= 128')
47+
48+
if args.lower > args.upper:
49+
args.lower, args.upper = args.upper, args.lower
50+
51+
return args
1052

1153

1254
# --------------------------------------------------
1355
def main():
1456
"""Make a jazz noise here"""
1557

16-
for chunk in chunker(range(128), 8):
17-
print(' '.join(map(cell, chunk)))
58+
args = get_args()
59+
lower = args.lower
60+
upper = args.upper
61+
num_cells = args.upper - args.lower
62+
num_rows = round(num_cells / args.cols)
63+
cells = list(chunker(list(map(cell, range(lower, upper))), num_rows))
64+
df = pd.DataFrame(cells)
65+
66+
for i, row in df.T.iterrows():
67+
print(' '.join(map(lambda v: v or ' ' * 5, row)))
1868

1969

2070
# --------------------------------------------------

0 commit comments

Comments
 (0)