Git Product home page Git Product logo

tabular-print's Introduction

Tabular Print

tabular print prints a table that scales column widths to fit the data. Written to mesh with the sqlite3 python module, specifically cursor.description (list comp-ed to only have the column labels), and cursor.fetchall(). Each row in the values list is treated as a row of table data, and element order in the list corresponds to the order of column labels. Use the 'transpose' argument if you data is formated with each row representing a column of data.

Example

A redacted example from a side project of mine (https://github.com/mkitzan/terminus):

*--------------------------------------*---------------*----------------*-----*------*--------*
|Title                                 |Author         |Genre           |Year |Pages |Type    |
*--------------------------------------*---------------*----------------*-----*------*--------*
|Ellison Wonderland                    |Harlan Ellison |science fiction |1962 |191   |stories |
|Dangerous Visions                     |Harlan Ellison |science fiction |1967 |598   |stories |
|Love Ain't Nothing but Sex Misspelled |Harlan Ellison |science fiction |1968 |380   |stories |
|Again, Dangerous Visions vol.1        |Harlan Ellison |science fiction |1972 |450   |stories |
|Again, Dangerous Visions vol.2        |Harlan Ellison |science fiction |1972 |449   |stories |
|Approaching Oblivion                  |Harlan Ellison |science fiction |1974 |164   |stories |
|Deathbird Stories                     |Harlan Ellison |science fiction |1975 |347   |stories |
|Stalking the Nightmare                |Harlan Ellison |science fiction |1982 |301   |stories |
|Angry Candy                           |Harlan Ellison |science fiction |1988 |324   |stories |
|Slippage                              |Harlan Ellison |science fiction |1997 |359   |stories |
*--------------------------------------*---------------*----------------*-----*------*--------*

Usage

First import the function 'table' from tabular print

from tabularprint import table

For a standard table use

table(col_labels, values)

For an augmented table use the expected arguments, and any combination of the five non-standard arguments

table(col_labels, values, header="Look at this table", transpose=True, edge="#", padding=2, printer=lambda row: outfile.write(row + "\n"))

Non-Standard Arguments

  • header (default None): will print whatever this string is above the table.
  • transpose (default False): will transpose the values argument if transpose=True. Helpful if a row in values corresponds to a column in the table rather than the expected values row corresponds to a table row (format of a sqlite3 fetchall call)
  • edge (default "*"): when a horizontal line ("-") intersects a vertical line ("|") in the table, an edge character is placed. By default a star is used, but, by including an argument for edge when table is called, you can augment what this character is.
  • padding (default 1): buffer determines the amount of whitespace between the end of the longest value in a column and that column's right vertical divider. Example: |example of buffer=1 |
  • printer (default print): allows user to write the output of tabular-print to a file, or call some function with each line of tabular-print's output as an argument. Each line of output is a string, so be sure your function takes that into account.

tabular-print's People

Contributors

mkitzan avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

try-to

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.