Skip to main content

A simple callable library for creating formatted tables with box-drawing characters

Project description

tablur

a simple, callable python library for creating beautifully formatted tables with box-drawing characters.

features

  • callable interface: use tablur() directly as a function
  • create tables with box-drawing characters (╭─╮│├┼┤┴╰)
  • support for optional headers and footers
  • automatic column width calculation
  • two input formats: column-based and row-based
  • returns formatted strings (no automatic printing)
  • lightweight and blazingly fast

installation

pip install tablur

usage

column-based format (default)

from tablur import tablur

# data is defined as a list of tuples where each tuple contains `(column_name, column_data)`
data = [
    ("Name", ["Alice", "Bob", "Charlie"]),
    ("Age", [25, 30, 35]),
    ("City", ["New York", "London", "Tokyo"]),
    ("Salary", [50000, 60000, 70000]),
]

# using the `tablur` function
table = tablur(
    data,
    header="Employee Directory",
    footer="Total: 3 employees",
    chars=["╭", "╮", "╰", "╯", "├", "┤", "┬", "┴", "┼", "─", "│"] # this is the default, make sure you use this format
)
print(table)

output:

╭───────────────────────────────────╮
│        Employee Directory         │
├─────────┬─────┬──────────┬────────┤
│ Name    │ Age │ City     │ Salary │
├─────────┼─────┼──────────┼────────┤
│ Alice   │ 25  │ New York │ 50000  │
│ Bob     │ 30  │ London   │ 60000  │
│ Charlie │ 35  │ Tokyo    │ 70000  │
├─────────┴─────┴──────────┴────────┤
│        Total: 3 employees         │
╰───────────────────────────────────╯

row-based format

from tablur import simple

# data is just a list of rows, where each row is a list of values
data = [
    ["Alice", 25, "New York"],
    ["Bob", 30, "London"],
    ["Charlie", 35, "Tokyo"]
]

# with simple, you define the headers explicitly
table = simple(data, headers=["Name", "Age", "City"])
print(table)

output:

╭─────────┬─────┬──────────╮
│ Name    │ Age │ City     │
├─────────┼─────┼──────────┤
│ Alice   │ 25  │ New York │
│ Bob     │ 30  │ London   │
│ Charlie │ 35  │ Tokyo    │
╰─────────┴─────┴──────────╯

license

mit, you can do whatever you want with the code :D

Project details


Download files

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

Source Distribution

tablur-1.0.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

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

tablur-1.0.0-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file tablur-1.0.0.tar.gz.

File metadata

  • Download URL: tablur-1.0.0.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tablur-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4250983130b7a9fbaf5c5677eaa39c143b4ef04c6cc2eba466c96c2a0f00712b
MD5 3d323960c2abe9c13d7abe69caecebea
BLAKE2b-256 ec4e8a8e8e973c18bea50bfa5df237b23d112ce9720f4439bf42cb14eb02dd67

See more details on using hashes here.

File details

Details for the file tablur-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: tablur-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for tablur-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a8c1e7a7e0ca55957726ebb6e76931f5d8595ca822229f1e3a8162eae7c023e9
MD5 343e4a23590dbbf0840a0a2fe3bdf3ca
BLAKE2b-256 326916c8171da2b8efd73b0eb4619c474c471420d1ceca214d553fa1648736b8

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 Pingdom Monitoring Sentry Error logging StatusPage Status page