Skip to main content

Ready-made rich tables for various purposes

Project description

Coverage Status

Rich tables

JSON human-prettifier based on the brilliant rich python library.

Since my usual day involves building and interacting with various APIs, JSON data is constantly flying around the terminal. Reading JSON data (even when it's prettified by, say, jq) requires a fair bit of mental effort; and it's basically impossible to analyse / make sense of it just by looking at it.

This project initially started as a way to solve this issue – it takes JSON data as an input and prints it in (rich-)tables, making it somewhat more readable for humans. With time, it's become the main handler for most of structured data that gets displayed in my terminal and is now one of my core every day tools.

Releases

It's WIP but installable through pip: pip install rich-tables – feel free test it but do not expect it to be stable yet.

If we have enough interest, I am more than happy to prepare a release with a somewhat stable API.

Some bits to be aware of

Most commits are made by a daily cron job

You will find commits named

Automatic backup <date>

There is a daily cronjob which checks my local copy of the repository for changes, commits, and pushes them upstream.

It got setup because this entire thing got built without intention – whenever I came across data that was not handled by rich-tables, I opened the code, quickly added the logic and continued on with the original work without committing. Eventually, I'd have to deal with a huge diff with a lot of unrelated changes.

Tests simply attempt to render data in each test case without making any assertions
  • At least at this point I only want to know whether every piece of data is rendered fine.
For each tests/json/<name>.json test case, the rendered output is saved to svgs/<name>.svg file
  • Allows to see the visual difference a certain change makes
  • Helps to detect unintended side effects: if we're expecting an update of album.svg only but see that pr.svg is also updated, we know something's not right
  • In commit details, GitHub shows visual difference for svg file changes
    • This is very helpful when one is trying to track down the culprit behind some missing border
README is populated with pictures dynamically when tests pass
  • Once tests finish successfully, a subsection is added for every picture in the svgs/ folder (in the alphabetical order). case.svg would be found under the subsection Case.
  • This logic lives in a session-scoped pytest fixture, after the yield statement.

Examples

Album

image

Albums

image

Calendar

image

Diff

image

Emails

image

Hello

image

Hue

image

Jira diff

image

Music list

image

Nested arrays

image

Nested JSON

image

Object arrays

image

Pr

image

Simple JSON

image

Simple nested object

image

Sql

image

Tasks

image

Text diff

image

Timed

image

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

rich_tables-0.9.0.tar.gz (33.3 kB view details)

Uploaded Source

Built Distribution

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

rich_tables-0.9.0-py3-none-any.whl (38.1 kB view details)

Uploaded Python 3

File details

Details for the file rich_tables-0.9.0.tar.gz.

File metadata

  • Download URL: rich_tables-0.9.0.tar.gz
  • Upload date:
  • Size: 33.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.5 Linux/6.18.8-arch2-1

File hashes

Hashes for rich_tables-0.9.0.tar.gz
Algorithm Hash digest
SHA256 bc680ef084d88baa9d2beeb5e9f3845e53f2681c618bb0254e35baf41b855d58
MD5 be7821328505b981ef1e6b380c40c3a8
BLAKE2b-256 f25215242a17b93e2d14934c76ab0673b95289bc7196afc8f90e53af2223e62e

See more details on using hashes here.

File details

Details for the file rich_tables-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: rich_tables-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 38.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.5 Linux/6.18.8-arch2-1

File hashes

Hashes for rich_tables-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f5bb56b27e8ba7ed966bde1de00a3d029d81ce9b343622387c18e9ccdedc7b31
MD5 115bd3b20bfc6f6a6d43122747c62f21
BLAKE2b-256 67fff937b818bbebc57c7bd394502c9649382ca5bf101bbbb0ba68b18b0f99f3

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