Convert 2D Python lists into Unicode/Ascii tables
Project description
table2ascii
Library for converting 2D Python lists to fancy ASCII/Unicode tables
Documentation and examples are available at table2ascii.rtfd.io
๐ฅ Installation
pip install -U table2ascii
Requirements: Python 3.7+
๐งโ๐ป Usage
Convert lists to ASCII tables
from table2ascii import table2ascii
output = table2ascii(
header=["#", "G", "H", "R", "S"],
body=[["1", "30", "40", "35", "30"], ["2", "30", "40", "35", "30"]],
footer=["SUM", "130", "140", "135", "130"],
)
print(output)
"""
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ # G H R S โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโข
โ 1 30 40 35 30 โ
โ 2 30 40 35 30 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโข
โ SUM 130 140 135 130 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
"""
Set first or last column headings
from table2ascii import table2ascii
output = table2ascii(
body=[["Assignment", "30", "40", "35", "30"], ["Bonus", "10", "20", "5", "10"]],
first_col_heading=True,
)
print(output)
"""
โโโโโโโโโโโโโโฆโโโโโโโโโโโโโโโโโโโโ
โ Assignment โ 30 40 35 30 โ
โ Bonus โ 10 20 5 10 โ
โโโโโโโโโโโโโโฉโโโโโโโโโโโโโโโโโโโโ
"""
Set column widths and alignments
from table2ascii import table2ascii, Alignment
output = table2ascii(
header=["#", "G", "H", "R", "S"],
body=[["1", "30", "40", "35", "30"], ["2", "30", "40", "35", "30"]],
first_col_heading=True,
column_widths=[5] * 5, # [5, 5, 5, 5, 5]
alignments=[Alignment.LEFT] + [Alignment.RIGHT] * 4, # First is left, remaining 4 are right
)
print(output)
"""
โโโโโโโฆโโโโโโโโโโโโโโโโโโโโโโโโ
โ # โ G H R S โ
โโโโโโโซโโโโโโโโโโโโโโโโโโโโโโโโข
โ 1 โ 30 40 35 30 โ
โ 2 โ 30 40 35 30 โ
โโโโโโโฉโโโโโโโโโโโโโโโโโโโโโโโโ
"""
Use a preset style
from table2ascii import table2ascii, PresetStyle
output = table2ascii(
header=["First", "Second", "Third", "Fourth"],
body=[["10", "30", "40", "35"], ["20", "10", "20", "5"]],
column_widths=[10] * 4,
style=PresetStyle.ascii_box
)
print(output)
"""
+----------+----------+----------+----------+
| First | Second | Third | Fourth |
+----------+----------+----------+----------+
| 10 | 30 | 40 | 35 |
+----------+----------+----------+----------+
| 20 | 10 | 20 | 5 |
+----------+----------+----------+----------+
"""
Define a custom style
Check TableStyle
for more info and PresetStyle
for examples.
from table2ascii import table2ascii, TableStyle
my_style = TableStyle.from_string("*-..*||:+-+:+ *''*")
output = table2ascii(
header=["First", "Second", "Third"],
body=[["10", "30", "40"], ["20", "10", "20"], ["30", "20", "30"]],
style=my_style
)
print(output)
"""
*-------.--------.-------*
| First : Second : Third |
+-------:--------:-------+
| 10 : 30 : 40 |
| 20 : 10 : 20 |
| 30 : 20 : 30 |
*-------'--------'-------*
"""
๐จ Preset styles
See a list of all preset styles here.
โ๏ธ Options
All parameters are optional.
Option | Type | Default | Description |
---|---|---|---|
header |
List[str] |
None |
First row of table seperated by header row seperator |
body |
List[List[str]] |
None |
List of rows for the main section of the table |
footer |
List[str] |
None |
Last row of table seperated by header row seperator |
column_widths |
List[int] |
automatic | List of column widths in characters for each column |
alignments |
List[int] |
all centered | Alignments for each column (ex. [Alignment.LEFT, Alignment.CENTER, Alignment.RIGHT] ) |
first_col_heading |
bool |
False |
Whether to add a heading column seperator after the first column |
last_col_heading |
bool |
False |
Whether to add a heading column seperator before the last column |
๐จโ๐จ Use cases
Discord messages and embeds
- Display tables nicely inside markdown codeblocks on Discord
- Useful for making Discord bots with Discord.py
Terminal outputs
- Tables display nicely whenever monospace fonts are fully supported
- Tables make terminal outputs look more professional
๐ค Contributing
Contributions are welcome!
See CONTRIBUTING.md for more details on how to get involved.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
table2ascii-0.3.0.tar.gz
(13.2 kB
view details)
Built Distribution
File details
Details for the file table2ascii-0.3.0.tar.gz
.
File metadata
- Download URL: table2ascii-0.3.0.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 390afedabcee8ebc1502107650cff7d00cb45d1d31fead1c7e2a52c968be41a5 |
|
MD5 | 85cfe0c6a852f8b2bee30b77079fede6 |
|
BLAKE2b-256 | aca274cc90aa77a4c17cb19c0eb95be47e6c485aea3b290a735cf0791c801afb |
File details
Details for the file table2ascii-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: table2ascii-0.3.0-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 18e4cdfcd3cda8eeb8fd6a6cb216b20492c307af55d87f33f58755c2f36e9ae9 |
|
MD5 | da59fa3f729ed5870d8eaa15338130bb |
|
BLAKE2b-256 | 8b4009d217c76af6095361157897b61cef8e5931c06ed7e38e6d4926b45ed3c7 |