Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

portable text interface framework

Project Description

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.


import sys
from dirtywords import Screen, AttrString

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

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

Release History

This version
History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(7.7 kB) Copy SHA256 Hash SHA256
Source None Oct 18, 2014

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting