Skip to content

Commit 592bfa0

Browse files
committed
Reorganized mapping with alphanumeric key
1 parent 0afccc2 commit 592bfa0

File tree

2 files changed

+46
-36
lines changed

2 files changed

+46
-36
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# table2ascii
2-
Module for converting 2D Python lists to a fancy Unicode tables
2+
3+
Module for converting 2D Python lists to a fancy ASCII/Unicode tables

table2ascii/__init__.py

Lines changed: 44 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -21,29 +21,38 @@ def __init__(
2121
╟─────╫───────────────────────╢
2222
║ SUM ║ 130 140 135 130 ║
2323
╚═════╩═══════════════════════╝
24+
25+
0111112111113111113111113111114
26+
5 6 7 7 7 5
27+
899999a99999b99999b99999b99999c
28+
5 6 7 7 7 5
29+
5 6 7 7 7 5
30+
deeeeefeeeeegeeeeegeeeeegeeeeeh
31+
5 6 7 7 7 5
32+
i11111j11111k11111k11111k11111l
2433
"""
2534
self.parts = {
26-
"top_left_corner": "╔",
27-
"top_right_corner": "╗",
28-
"top_edge": "═",
29-
"first_col_top_tee": "╦",
30-
"top_tee": "═",
31-
"left_edge": "║",
32-
"header_row_sep": "─",
33-
"footer_row_sep": "─",
34-
"first_col_sep": "║",
35-
"left_tee": "╟",
36-
"middle_edge": " ",
37-
"header_row_cross": "─",
38-
"footer_row_cross": "─",
39-
"first_col_cross": "╫",
40-
"right_edge": "║",
41-
"right_tee": "╢",
42-
"bottom_left_corner": "╚",
43-
"bottom_right_corner": "╝",
44-
"bottom_edge": "═",
45-
"first_col_bottom_tee": "╩",
46-
"bottom_tee": "═",
35+
"top_left_corner": "╔", # 0
36+
"top_bottom_edge": "═", # 1
37+
"first_col_top_tee": "╦", # 2
38+
"top_tee": "═", # 3
39+
"top_right_corner": "╗", # 4
40+
"left_right_edge": "║", # 5
41+
"first_col_sep": "║", # 6
42+
"middle_edge": " ", # 7
43+
"header_left_tee": "╟", # 8
44+
"header_row_sep": "─", # 9
45+
"first_col_header_cross": "╫", # a
46+
"header_row_cross": "─", # b
47+
"right_tee": "╢", # c
48+
"footer_left_tee": "╟", # d
49+
"footer_row_sep": "─", # e
50+
"first_col_footer_cross": "╫", # f
51+
"footer_row_cross": "─", # g
52+
"bottom_left_corner": "╚", # i
53+
"first_col_bottom_tee": "╩", # j
54+
"bottom_tee": "═", # k
55+
"bottom_right_corner": "╝", # l
4756
}
4857

4958
def to_ascii(self) -> str:
@@ -53,30 +62,30 @@ def to_ascii(self) -> str:
5362
# ╔
5463
self.parts["top_left_corner"]
5564
# ═════╦
56-
+ self.parts["top_edge"] * self.cell_width + self.parts["first_col_top_tee"]
65+
+ self.parts["top_bottom_edge"] * self.cell_width + self.parts["first_col_top_tee"]
5766
#
5867
+ (
59-
(self.parts["top_edge"] * self.cell_width + self.parts["top_tee"])
68+
(self.parts["top_bottom_edge"] * self.cell_width + self.parts["top_tee"])
6069
* (cols - 1)
6170
)[0:-1]
6271
# ╗
6372
+ self.parts["top_right_corner"],
6473
# ║
65-
self.parts["left_edge"]
74+
self.parts["left_right_edge"]
6675
# # ║
6776
+ f" {self.header_row[0]} " + self.parts["first_col_sep"]
6877
# G H R S
6978
+ self.parts["middle_edge"].join(
7079
" " + val + " " for val in self.header_row[1:]
7180
)
7281
# ║
73-
+ self.parts["right_edge"],
82+
+ self.parts["left_right_edge"],
7483
# ╟
75-
self.parts["left_tee"]
84+
self.parts["header_left_tee"]
7685
# ─────╫
7786
+ (
7887
self.parts["header_row_sep"] * self.cell_width
79-
+ self.parts["first_col_cross"]
88+
+ self.parts["first_col_header_cross"]
8089
)
8190
# ───────────────────────
8291
+ (
@@ -94,7 +103,7 @@ def to_ascii(self) -> str:
94103
# add table row
95104
table += [
96105
# ║
97-
self.parts["left_edge"]
106+
self.parts["left_right_edge"]
98107
+
99108
# 1 ║
100109
f" {p[0]} "
@@ -104,16 +113,16 @@ def to_ascii(self) -> str:
104113
f"{p[i].rjust(4)} " for i in range(1, cols)
105114
)
106115
# ║
107-
+ self.parts["right_edge"]
116+
+ self.parts["left_right_edge"]
108117
]
109118
# footer row
110119
table += [
111120
# ╟
112-
self.parts["left_tee"]
121+
self.parts["footer_left_tee"]
113122
# ─────╫
114123
+ (
115124
self.parts["footer_row_sep"] * self.cell_width
116-
+ self.parts["first_col_cross"]
125+
+ self.parts["first_col_footer_cross"]
117126
)
118127
# ───────────────────────
119128
+ (
@@ -126,23 +135,23 @@ def to_ascii(self) -> str:
126135
# ╢
127136
+ self.parts["right_tee"],
128137
# ║
129-
self.parts["left_edge"]
138+
self.parts["left_right_edge"]
130139
# SUM ║
131140
+ f"{self.footer_row[0].rjust(4)} " + self.parts["first_col_sep"]
132141
# 120 ║ 120 ║ 120 ║ 120 ║
133142
+ self.parts["middle_edge"].join(
134143
f"{self.footer_row[i].rjust(4)} " for i in range(1, cols)
135144
)
136145
# ║
137-
+ self.parts["right_edge"],
146+
+ self.parts["left_right_edge"],
138147
# ╚
139148
self.parts["bottom_left_corner"]
140149
# ═════╩
141-
+ self.parts["bottom_edge"] * self.cell_width
150+
+ self.parts["top_bottom_edge"] * self.cell_width
142151
+ self.parts["first_col_bottom_tee"]
143152
# ════════════════════════
144153
+ (
145-
(self.parts["bottom_edge"] * self.cell_width + self.parts["bottom_tee"])
154+
(self.parts["top_bottom_edge"] * self.cell_width + self.parts["bottom_tee"])
146155
* (cols - 1)
147156
)[0:-1]
148157
# ╗

0 commit comments

Comments
 (0)