Skip to main content

philiprehberger-cli-table

Format Python data as aligned terminal tables with no dependencies.

Install

pip install philiprehberger-cli-table

Usage

Dict list mode

from philiprehberger_cli_table import table

data = [
    {"name": "Alice", "age": 30, "city": "Berlin"},
    {"name": "Bob", "age": 25, "city": "Vienna"},
    {"name": "Charlie", "age": 35, "city": "Zurich"},
]

table(data)
# name     age  city
# -------  ---  ------
# Alice    30   Berlin
# Bob      25   Vienna
# Charlie  35   Zurich

Headers + rows mode

from philiprehberger_cli_table import table

table(
    headers=["Product", "Price", "Stock"],
    rows=[
        ["Widget", "9.99", "142"],
        ["Gadget", "24.99", "38"],
    ],
)
# Product  Price  Stock
# -------  -----  -----
# Widget   9.99   142
# Gadget   24.99  38

Column alignment

from philiprehberger_cli_table import table

table(
    data=[
        {"item": "Coffee", "qty": 3, "price": "4.50"},
        {"item": "Tea", "qty": 12, "price": "2.00"},
    ],
    align={"qty": "right", "price": "right"},
)
# item    qty  price
# ------  ---  -----
# Coffee    3   4.50
# Tea      12   2.00

Styles

from philiprehberger_cli_table import format_table

# Markdown style
print(format_table(
    headers=["Name", "Score"],
    rows=[["Alice", "95"], ["Bob", "87"]],
    style="markdown",
))
# | Name  | Score |
# | ----- | ----- |
# | Alice | 95    |
# | Bob   | 87    |

# No borders
print(format_table(
    headers=["Name", "Score"],
    rows=[["Alice", "95"], ["Bob", "87"]],
    style="none",
))
# Name   Score
# Alice  95
# Bob    87

Cell truncation

from philiprehberger_cli_table import table

table(
    data=[{"description": "A very long description that goes on and on"}],
    max_width=20,
)

API

Function Description
format_table(headers, rows, *, data, align, max_width, style) Returns a formatted table as a string
table(data, headers, rows, **kwargs) Prints a formatted table to stdout

Parameters

Parameter Type Default Description
headers list[str] | None None Column header names
rows list[list[Any]] | None None List of row value lists
data list[dict[str, Any]] | None None List of dicts (keys become headers)
align dict[str, Align] | None None Per-column alignment: "left", "right", "center"
max_width int | None None Truncate cell values to this width
style Style "simple" Border style: "simple", "markdown", "none"

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

philiprehberger_cli_table-0.1.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

philiprehberger_cli_table-0.1.0-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file philiprehberger_cli_table-0.1.0.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_cli_table-0.1.0.tar.gz
Algorithm Hash digest
SHA256 195759cad840ddcb28e5b59531ccc6e65e4a1a754b5040cdb4f2dc2c5343ced4
MD5 3385454d15e5494a21619737fbfe9207
BLAKE2b-256 5f30b882f68e68c3480474eb980e37adc90d310cf427d12498d7072c42d05004

See more details on using hashes here.

File details

Details for the file philiprehberger_cli_table-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_cli_table-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dc971dc81f05ef5c135e38c5580395ed18a95b1e12c5dccfc595bc919d83ec70
MD5 6ae6432e7b43c81d33d8b4c8aaf1d248
BLAKE2b-256 2af4ae4f9a9b546a90806e97637278441c786cdc81dc9b57a9958749092dbcd8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page