Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

pyout: Terminal styling for structured data

pyout is a Python package that defines an interface for writing structured records as a table in a terminal. It is being developed to replace custom code for displaying tabular data in in ReproMan and DataLad. See the Examples folder for how to get started.

A primary goal of the interface is the separation of content from style and presentation. Current capabilities include

  • automatic width adjustment and updating of previous values
  • styling based on a field value or specified interval
  • defining a transform function that maps a raw value to the displayed value
  • defining a summary function that generates a summary of a column (e.g., value totals)
  • support for delayed, asynchronous values that are added to the table as they come in


This package is currently in early stages of development. While it should be usable in its current form, it may change in substantial ways that break backward compatibility, and many aspects currently lack polish and documentation.

pyout requires Python 3 (>= 3.7). It is developed and tested in GNU/Linux environments and is expected to work in macOS environments as well. There is currently very limited Windows support.


pyout is under the MIT License. See the COPYING file.