Skip to main content

Library for easily creating text interfaces that look like Linux's top program.

Project description

https://img.shields.io/pypi/v/topshape.svg https://img.shields.io/travis/mchlumsky/topshape.svg Documentation Status Updates Python 3 https://codecov.io/gh/mchlumsky/topshape/branch/master/graph/badge.svg

Library for easily creating text interfaces that look like Linux’s top program.

It is built on top of urwid but requires no knowledge of urwid itself.

Quickstart

Here’s an example of how to use TopShape:

from topshape import TopShape


# The columns are a list (or tuple) of dictionaries. Each
# dictionary defines a column in the body
columns = ({'label': 'header1'},
           {'label': 'header2'},
           {'label': 'header3'})


# The body function will be passed as a callback that must
# return a 2-dimensional array everytime it's called.
def body():
    return [[str(i*j) for i in range(3)] for j in range(10)]


# The header function will be passed as a callback that must
# return a string everytime it's called.
def header():
    return 'This is the header!'


# The footer function will be passed as a callback that must
# return a string everytime it's called.
def footer():
    return 'This is the footer!'


def handle_q(app):
    app.exit()

def handle_f(app, answer):
    # do something with the answer
    # ...

# key_map maps keys pressed to callbacks
key_map = {'q': handle_q,
           'f': (handle_f, 'Enter some text here:'}

app = TopShape.create_app(columns, body, header, footer,
                          key_mapping=key_map)
app.run()

Output:

https://raw.githubusercontent.com/mchlumsky/topshape/master/docs/example1.png

Output (waiting for input from user):

https://raw.githubusercontent.com/mchlumsky/topshape/master/docs/example1-1.png

There is also a more complete example here which is a clone of the linux top program.

Screenshot:

https://raw.githubusercontent.com/mchlumsky/topshape/master/docs/example2.png

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

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

topshape-1.0.0.tar.gz (102.1 kB view details)

Uploaded Source

Built Distribution

topshape-1.0.0-py2.py3-none-any.whl (10.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file topshape-1.0.0.tar.gz.

File metadata

  • Download URL: topshape-1.0.0.tar.gz
  • Upload date:
  • Size: 102.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for topshape-1.0.0.tar.gz
Algorithm Hash digest
SHA256 464b0838c38e89e9c4b6962bf67fb05cf1fc819a4eac3f26b57bbf56c80c2801
MD5 f1a5ea7f6cfa9417857e258201c1f227
BLAKE2b-256 118fd3bd7541f7fd9014642b9ba8a7947aa717a52ff1a64615a0d35bd08eaa1e

See more details on using hashes here.

File details

Details for the file topshape-1.0.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for topshape-1.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b771fbe21b27f05c12ec1197bc5bf8d0690fe9cd89c07f21b7a33b1386855da5
MD5 9b4cf4a85a3c6adc8eb5b8d1921bf3d1
BLAKE2b-256 9cb080f3a3815b0a72f6144a4730c69738b0b8cd3d3f6a8215361adaef5a6efc

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