Copyright © 2013 by Thomas E. Dickey

Here is the latest version of this file.

The Python binding for ncurses is the first binding which (I recall) was developed separately from ncurses. Like other bindings, it started from an earlier curses binding, and was extended to better use ncurses.

Python has documentation and a tutorial:

The documentation says little about the history, but provides a clue:

Changed in version 1.6: Added support for the ncurses library and converted to a package.

Based on the available downloads for Python, the curses binding by Lance Ellinghouse appeared in the 1.5.2 release. The 1.6.1 release changes the spelling to "Ellinghaus" (which appears incorrect), credits further work by Oliver Andrich, noting that it was maintained by AMK (and used the X11 license). The documentation was written by Moshe Zadke.

Eric Raymond stated in a mailing list

I personally added the ncurses/Textpad/ascii features to the Python libraries shipped in 2.0

However, the curses module code in 2.0.1 differs from the 1.6.1 module by 85 added, 16 deleted lines of 2357 (call that 3%). Noting some discussion on the Python mailing lists here and here it appears likely that Raymond urged others to do this, but evidence that he "personally added" (i.e., wrote) the code is lacking. The documentation in 2.0.1 changed by a larger amount (and Raymond is listed second on the authors of that file).

Both 1.6.1 and 2.0.1 documentation cite Andrew Kuchling's web tutorial on Python. The page has since moved, Here is a current link.

I had discussed with Andrew Kuchling his problems in adapting the has_key function for the Python curses binding in July 2000. Later, I noticed that sometime after creating the page, Eric Raymond's name was added. I asked Kuchling about that (noting in my mail that Raymond had not as far as I knew written any part of it); he replied that he "thought it would be a good idea". Still later (in March 2002), I noticed another copy of the page with only Eric Raymond's name, and again asked Kuchling, who replied that it was a problem with the Latex tool. This comment from Eric Raymond (in May 2001) indicates that the problem may have happened earlier.

Fortunately, Python's source history is available online:

dist/src on SourceForge

There are also mailing-list archives.

Researching the changes in early 2013, I found Kuchling's commit 2000-08-11 for /cvsroot/py-howto/pyhowto/curses.tex, adding Raymond as an author, and commenting "ESR's extensively reworked version". The commit showed 34 lines added, 21 deleted and 222 modified (starting with 436 lines).

Other curses-related CVS commits on the Python mailing list start in 1999 (November by Fred Drake), but are mostly by Kuchling, e.g.,

Also, see