This is a collection of demos and tests for the curses module. 

ncurses demos
=============

These demos are converted from the C versions in the ncurses
distribution, and were contributed by Thomas Gellekum <tg@FreeBSD.org>
I didn't strive for a `pythonic' style, but bluntly copied the
originals. I won't attempt to `beautify' the program anytime soon, but
I wouldn't mind someone else making an effort in that direction, of
course.

ncurses.py      -- currently only a panels demo
rain.py         -- raindrops keep falling on my desktop
tclock.py       -- ASCII clock, by Howard Jones
xmas.py         -- I'm dreaming of an ASCII christmas

Please submit bugfixes and new contributions to the Python bug tracker.


Other demos
===========

life.py         -- Simple game of Life
repeat.py       -- Repeatedly execute a shell command (like watch(1))
