dirtywords

portable text interface framework


License
GPL-2.0+
Install
pip install dirtywords==0.0.2

Documentation

dirtywords - portable text interface framework

So I wanted to create a text interface and ended up creating a framework. "Why didn't you just stick with curses?" I hear you ask. For two good reasons: First, curses is not very portable. It does not run on windows. And it can not be installed with pip. The second reason of course is that I had fun with this project.

So what is this if not curses? You can think of it as a wrapper around curses with a different (though similar) API. But the interesting thing about it is that it implements a tiny set of functions with curses and builds the rest from there. And this tiny core can easily be implemented with other frameworks.

There are currently three implementations of the core: One based on curses, another one based on pygame, and a minimal implementation without any dependencies outside of the standard library.

Example

import sys
from dirtywords import Screen, AttrString

text = AttrString(u'Hello World!', fg_color=(0, 255, 0))
screen = Screen(3, len(text) + 4)
screen.border()
screen.putstr(1, 2, text)
screen.refresh()

while True:
    ch = screen.getch()
    if ch == ord('q'):
        screen.cleanup()
        sys.exit()

Tests

In order to run the tests you need to have python-xlib installed. Then you only need to run the following command:

tox --sitepackages