Skip to main content

Tabular data formatter with column types/formatting options and other features.

Project description

Format tabular data in various ways with explicitly defined columns that can each have their own expected types, formatting and highlighting.

Features

  • Specify columns with data types / widths, formatting functions, null-value indicators and processing exception indicators.

  • Auto-sizing columns when presented with a full table of data.

  • Ability to format individual rows for output before all data has been gathered.

  • Quick switching of output formats between tabular text, JSON, YAML & delimited fields.

  • Value highlighting rules: by ranges, trends, min/max and others.

TODO

  • Multi-column sorting

Building & Running

$ git clone https://github.com/mousefad/python-vegetable ~/vegetable
$ cd ~/vegetable
$ python -m venv .
$ . bin/activate
$ pip install --upgrade pip
$ pip install .

Complete Data Mode

Values can be added to a Table() instace directly row-by-row with row(). When __str__() is invoked, the whole table will be formatted and returned. An advantage of this approach is that column widths will be automatically re-sized if needed (for columns where expand=True was used on column creation).

The output format can also be easily switched:

t = Table()
t.column("Name")
t.column("Hobby")
t.row(["'Bob'", "Just having a whale of a time."])
t.row(["Stang, "Monsterism."])
print(t, end="\n\n")
t.formatter = YamlFormat()
print(t)

Line-by-Line Mode

In applications where we want to print data as it is gathered, we can get string values for the table headers, separators and rows with header_str(), separator_str() and row_str(…) functions:

t = Table()
t.column("Item Desc")
t.column("Qty", type=int)
print(t.header_str())
print(t.separator_str())
for desc, num in gather_data():
    print(t.row_str([desc, num]))

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

vegetable-1.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

vegetable-1.0-py2.py3-none-any.whl (9.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file vegetable-1.0.tar.gz.

File metadata

  • Download URL: vegetable-1.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for vegetable-1.0.tar.gz
Algorithm Hash digest
SHA256 39d6a007b067e154ff9fbfa3fe414ee795d7699f5f0a3635d5335fcc94a2a321
MD5 148bd94a4876d3e2b7a2d3d57f971378
BLAKE2b-256 5e5c4544b0d7470212d2044f5c7bb11885decb09656a12ac8ab5b1180557125a

See more details on using hashes here.

File details

Details for the file vegetable-1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: vegetable-1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for vegetable-1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ee8d26aabfb06ce88bda1ae4d8325a8b0f41cc4f6dbd6d0e5bb504a80fa4c1d7
MD5 2fb45a5204ed0866a0f0925518c0fdd4
BLAKE2b-256 f032c411f8cc4d433557523534af2051f6bf365693389407e51b6522c6de9b16

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page