TopShape¶
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.
- Free software: MIT license
- Documentation: https://topshape.readthedocs.io.
- Python versions supported: 2.7, 3.3, 3.4, 3.5, 3.6
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:
Output (waiting for input from user):
There is also a more complete example here which is a clone of the linux top program.
Screenshot:
Credits¶
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.