Skip to main content

Wrapper around TablePrint to adjust columns to the window size

Project description

About

This python3 module aims to add additional functionality to the already amazing TablePrint (github.com/nirum/tableprint).

While TablePrint is functionally excellent at printing out text to the console in a beautiful manner, I have found that it lacks some dynamicism. When printing to a console that is constantly different sizes for example, wrapping the text around produces basically illegible tables.

This module aims to improve the situation where the user is doing data heavy string representation, using data processing packages such as Pandas (which, this module only supports, and also, thank you to nirum for adding in Pandas DataFrame support). Based on the size of the console, and some priorities to each column given by the user, we will squish columns as needed until it fits nicely within the given constraints. When the console width changes, the program will need to be reloaded, but will adjust to fit the new screen.

Installation

You'll have to clone directly from github into your source repo for now. Looking into improving this!

Usage

from dynamictableprint import DynamicTablePrint
import pandas as pd

d = {
    'names': [
        "Albert Einstein",
        "Issac Newton",
        "Stephen Hawkings"
    ],
    'places': [
        "Ulm, Germany",
        "Wolsthorpe Manor, United Kingdom",
        "Oxford, United Kingdom"
    ],
    'Foods': [
        "Spaghetti",
        "Pasta",
        "Noodles"
    ]
}
data_frame = pd.DataFrame(data=d)

dtp = DynamicTablePrint(data_frame, angel_column='Foods', squish_column='places')
dtp.banner('Things!')
dtp.
dtp.write_to_screen()

The squish_column represents the column that you would like to be squished first. Typically the 'squish factor' is 20% at most, but will dynamically vary depending on how the other columns are. The angel_column is the column that you would prefer to be modified last, that is, having the highest priority on being the same.

Dependencies

python3.6, an possibly other versions >3.0 tableprint pandas

License

MIT

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

dynamictableprint-1.0.3.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

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

dynamictableprint-1.0.3-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file dynamictableprint-1.0.3.tar.gz.

File metadata

File hashes

Hashes for dynamictableprint-1.0.3.tar.gz
Algorithm Hash digest
SHA256 1c5882e9ba7e85d9adec9e83f33d3faea9c1482eee8c8c0959b660338813f9e1
MD5 be1e257efd488fc192a497d0f0a6f314
BLAKE2b-256 3b79a0c564d7957a56b720a6115ce3fba59d997c16112bebd9657106372b0a38

See more details on using hashes here.

File details

Details for the file dynamictableprint-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for dynamictableprint-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 96855b3b9c00470c3796602d95d677c565e50a3833b2e8ec529cf595229656fc
MD5 159606dd49e9484b660f50e63a6917ab
BLAKE2b-256 00584fdb80875e617c5245927da275172eec53c163b0f9fe2688fc3dd526dad8

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