Home Search Download Documentation
FAQ Community SIGs Modules
Windows 95/NT
Windows 3.1
Contributed modules
See also
Python ftp
Python ftp contrib
Mirror sites
Emacs Goodies
PyModules FAQ
Starship crew
Starship crew ftp
Digital Creations
Email us


Contributed Python Software

( Last modified: Thu Apr 30 18:23:23 EDT 1998 )
(Frequent visitors - see the RCS log file to see what the changes are across revisions.)

Here's a collection of pointers to useful Python software out on the web. If you would like to see your software listed here, or if you find a stale link or some other surprise, please drop us a line at webmaster@python.org.

Aaron Watters is starting a contributed-modules registration service, in the form of a PyModules FAQ, which can be edited by PSA members via the web.

What Is And Is Not Covered Here

We list items that people around the web are making freely available, via links, to the Python user community. Most have been brought directly to our attention, often by the author, via email. Please notify us if you have something to add!

Since some things fit more than one category, we've aimed to place their entries in the most significant one, and followed them by a sentence that mentions alternate categories between a pair of '*' asterisks. Thus, search for, eg, "*Math*" to find the stray items that also belong in the Math section...

The entries here generally do not cover items already contained in the:
python.org anonymous ftp contrib Ie, stuff actually uploaded to python.org
Python distribution, proper
ongoing projects doc In-process efforts, some of which are not also listed here.
hints and Guides doc Contributed documentation.

Collections - Various Sundry and Assorted's

Python Starship Collections Library
Collected works of various PSA members who are also members of the Python Starship crew.

Digital Creations Releases (Digital Creations, L.L.C.)
Digital Creations specializes in Web software, and tries to return the benefits they derive from Python back to the community (and derive further benefits from the community collaborative process) by freely releasing much of their valuable software.

Nightmare Software Collection (Sam Rushing)
"REVEALED! The location of many mysterious packages! You've heard the rumours, rumblings, and rare, whispered musings. Now go straight to the source!

Look!! AVL, calldll, npstruct, async, Medusa, and Much Much More!"

Lawrence Livermore National Lab's Python Utilities - Documentation and a link to the package
Initially included: They "will be adding more documentation steadily so, like voters in Chicago, visit early and often throughout the day" :-)

Scientific Numerics - A collection of handy scientific/numeric modules (Konrad Hinsen)
A handful of numeric scientific modules which exploit Numeric Python's capabilities.

AMK's Miscellany (Andrew Kuchling)
Links to Andrew Kuchling's maintained and unmaintained software collections.

Joe Strout's Collection - Python Scripts for newbies and Non-Newbies (Joseph Strout)
"Unfortunately, when I started learning Python, I found that there were very few good sample scripts for beginners, especially for non-Unix platforms. Here are some scripts which are small, simple, easy to understand, and which do something at least mildly interesting..."

Andy Eskilsson's Python Hacks
See also his Python binaries compiled for DOS

Vladimir Ulogov's collection
Including dynamic programming libraries, freeze extensions, threading elaborations, experiments with incorporating (boehm) garbage collection, and much more.


(See also the contributed Network ftp repository.)

Network - Distributed Objects

ILU - Inter-Language Unification, Distributed Objects System (Xerox PARC)
Python bindings for implementing interprocess, interlanguage, interhost, interplatform, interAnything (:-) interfaces. You can implement calls within the same process using the same mechanisms, and with little or no performance penalties, so this is an excellent way to connect Python with the world. RPC, client/server, distributed objects - network developers never had it so good!

SYLU - ILU implemented completely in native Python (Scott Hassan)
An ILU binding (see previous item) for Python written completely in Python.

FNORB - the Python CORBA ORB (Object Request Broker) (Architectures Unit, U of Queensland)
"Fnorb is an experimental CORBA ORB written in Python (with just the eensiest-teensiest bit of C code for marshalling ;^).

Like ILU from Xerox PARC, Fnorb gives the Python programmer access to the wonderful world of CORBA. It supports all CORBA 2.0 datatypes (including Any's) and provides a full implementation of IIOP. Unlike ILU, Fnorb is Python and CORBA/IDL specific and hopefully this will make it simple, light-weight, and easy to install and use (eventually ;^)."

Network - Sockets

Async Sockets Tools (Sam Rushing)
Small library for asynchronous socket programs - gzipped tar file.

Medusa - a Socket-Based Server Framework (Sam Rushing)
Medusa provides a framework for implementing asynchronous socket-based servers - tcp/ip, and on unix, unix domain sockets. The first release includes HTTP, FTP, and 'monitor' (remote python interpreter) servers. Medusa can simultaneously support several instances of either the same or different server types - for example you could start up two HTTP servers, an FTP server, and a monitor server. Then you could connect to the monitor server to control and manipulate medusa while it is running.

SOCKS library - Python sockets via firewall host (Dan Connolly)
Works like the socket module, but uses the SOCKS protocol to make the connections through a firewall machine.

Network - Services

PAOS - Python active object server (Carlos Maltzahn)
An active multi-user object server with a simple query language. All written in Python. For a substantial example of its use, see Chautauqua, an experimental workflow system.

SNMPY - Simple Network Mgmt Protocol in Python (Anthony Baxter)
An alpha release for doing Simple Network Mgmt Protocol stuff from within Python.

PyNG - Python Network-Activity Grapher (Andre van der Vlies)
"PyNG, a.k.a. the Python Network Grapher, is a tool designed to give a visable insight into the network usage. It summarizes the traffic flow through an interface and plots a usage graphic for the current day, an overview for the week, month and past year." (This item also belongs in the *Graphics* section.)

"Lyntin is a python-based mud client/bot development environment. It aims to be the Emacs of mud clients. ... your actions (or triggers, or autos, or whatever you call them) are no longer restricted to simple 'if you see this then send this' kinds of things. They can be Python functions which do anything from setting a variable to forking a web spider."

Network - The Web

Bobo - Bobo, the Python Object Publisher (Digital Creations)
The Python Object Publisher (Bobo):
allows objects to be published without any Common Gateway Interface (CGI) or Hypertext Transfer Protocol (HTTP) specific code. Complex object hierarchies can be published with Uniform Resource Locators (URLs) that mimic the object hierachies. Form data, including file upload data, are marshalled into method parameters.

See also Digital Creations free releases document, for a roster containing bobo and related technology.

XML Parser - Extended Markup Language experimental parser (and other stuff) (Dan Connolly)
Experimental XML (Extensible Markup Language) Scanner, Checker, and Utilities. For background on XML, see the W3C Extensible Markup Language working draft.

PyLR - Fast LR parser, for creation of efficient parsers in Python (Scott Cotton)
Currently (as of 12/97) under development but quite useful as is:
"PyLR is a package of tools for creating efficient parsers in python, commonly known as a compiler compiler. PyLR is currently under development. Many of the tools programmers will need are already there. However, there is a lot more that can be added."

BSCW - Shared Workspace/Collaboration System (Richard Bentley)
The Basic Support for Cooperative Work group at GMD in Germany has implemented a shared workspace server for the web as a collection of Python CGI scripts.

ForVM - Collaboration Support - For Virtual Meetings, (Nick Seidenman)
ForVM (pronounced "forum", with the romanesque V-is-a-U thing) stands for For Virtual Meetings. It is web-based groupware providing sharing of annotatable documents, accumulating discussions, calendering, and so forth. Check it out, using 'monty' as the login and 'spam&eggs;' as the password.

Python Scripts and Tricks for Web Page Maintenance (Hal Schechner)
Sundry CGI scripts and tricks.

httpd_log - Graphical web statistics tool (Richard.Jones@bom.gov.au)
Developed from the erstwhile "phany_log", also includes a sped-up version of the Python pickle mechanism. (This item also belongs in the *Graphics* and *Math* sections.)

Small prototype www servers (Hannu Krosing)
It includes mechanisms which show ftp logs and gif dirs.

PyApache - embed Python in the Apache server (Lele Gaifax, originally by Dave Mitchell)
"This module, contained in the file ``mod_pyapache.c'', will speed up the execution of your CGI scripts written in the Python Language. It handles this kind of script faster than normal CGI script since the server embeds the Python Interpreter, so the performance penality of executing an external one is eliminated."

You will find the latest version of the module in the <ftp://www.bel-epa.com/pub/misc/> directory, where you will find a gzipped tar file named something like PyApache-x.yy.tar.gz.

NSAPY - Use Netscape application interface (NSAPI) from Python (Gregory Trubetskoy)
Control Netscape from within Python, via Netscape's Application Interface. Derived from the basic version in Aaron Watter's book, Internet Programming with Python.

Cookie.py - Work with cookies easy as pie (Tim O'Malley, from version by Dave Mitchell)
Work with cookies (eg, in Web CGI, etc) that act like dictionaries. (nscookie.py is an older version that works with Python versions before 1.5, but is less capable, and may be netscape- specific...)

NSRemote - Netscape-properties linkup (Scott Hassan)
A simple C extension module for Python that is able to talk to X Window versions of Netscape via X Window properties.

Structured Text - Parse formally formatted text into structured text like HTML (Jim Fulton, Digicool)
Parse text, which uses indentation and simple symbology to indicate the structure of a document, into a form that can be used with structured formats like html.

world.py - Produce country name based on internet country code, and vice versa (Barry Warsaw)
A little script that prints out the ISO 3166 country name based on the two letter country code, as sseen in Internet email addresses. It also can print reverse mappings based on regular expression matches against country names.

SSL extension - Python 1.4 patches to support SSL (Brian Gallew)
Here are some patches to Python 1.4 C core and libraries to enable use of SSL (Secure Sockets Layer) for https secure URLs.

WebLog - Web Logfile Parsing Classes (Mark Nottingham)
Classes for parsing and postprocessing of Web logfiles.


(See also the contributed Graphical ftp repository.)

Python Imaging Library - An image object for Python (Fredrik Lundh and the PSA Imaging SIG)
The Python Imaging Library adds an image object to your Python interpreter. You can load image objects from a variety of file formats, and apply a rich set of image operations to them.

wxPython - wxWindows portable GUI library (Harri Pasanen)
"wxWindows is a portable GUI class library written in C++. It supports XView, Motif, MS-Windows as targets. There is some support for Macs and CURSES as well. wxWindows preserves the look and feel of the underlying graphics toolkit, so with wxPython it is possible to write portable Python programs with a GUI. It is quite good for rapid prototyping."

WPY - MFC-structured GUI library (Jim Ahlstrom)
"WPY is a class library system based on the Microsoft Foundation Classes used for writing GUI code easily in Python. It is designed for simplicity and portability. It is under active development, but is useful for real projects now.

This version runs on Microsoft Windows and Unix/X using Tk 4.0. Programs written using this "wpy" GUI library will run under NT, Win32s and under Unix/X without changes and with native look and feel."

PMW - Python Mega Widgets for Tk (Greg McFarlane)
A framework for building high-level compound widgets in the Python language using the Tk graphics library ...

Each Pmw megawidget seamlessly blends with the standard Tk widgets, having a similar widget interface. In addition, all Pmw megawidgets may themselves be extended, using either inheritance or composition.

gdmodule - GD GIF-oriented graphics-creation library interface (Richard Jones)
A Python interface to a GIF-oriented graphics-creation library - specifically, Tom Bouttel's GD library. And...

gdmodule - GD GIF-oriented graphics-creation library interface (Thomas Schwaller)
According to Richard Jones, this version implements a more direct correspondance with the C library, while Jones' version (see previous entry) provides a more Python-like interface, providing eg for Python tuples, etc, where suitable...

OpenGL interface (Thomas Schwaller)
An interface to SGI's OpenGL, an open specification for a comprehensive 2 and 3d graphics interface. The Python OpenGL interface interoperates nicely with Numeric Python.

Here is a mirror.

GIST - Scientific Graphics Package (Lee Busby)
A Python interface to the Gist scientific graphics library, which is available as part of the Yorick distribution. See also the llnl Python tools-package docs (This item also belongs in the *Math* section.)

Connectrix PC Quickcam interface (Dave Mitchell)
For use within Linux, this enables you to write out pictures you take with the Connectrix Quickcam as PGM files. See README.qcammodule and qcam-module-*.tar.gz at the link for more info.

SANE interface for the Python Imaging Library (A.M. Kuchling)
SANE is a unified interface to scanners, QuickCams, and other raster devices for Linux, IRIX, and various other Unix variants. With this extension module, programs can use SANE to control a scanner and acquire PIL Image objects that can then be manipulated, written out to a file, etc.
New cursesmodule for Python (Oliver Andrich)
A new version of the cursesmodule that supports all the ncurses features.

Tty screen interface (Donn Cave)
Built on a C screen graphics library created by a colleague of his. Donn says it's "pretty nuts-and-bolts", but has a fairly economical, elegant virtual screen design...

Trinket - Tkinter using Rivet (David Ascher)
Includes Trinket.py, a replacement for the Tkinter.py which uses Brian Warkentine's Rivet, a Tcl-less replacement for Tk. Trinket also includes a fast (15x) replacement for the _flatten function in Tkinter and Trinket.

(Since the author, Brian Warkentine, has moved on to other projects, trinket is no longer being supported. A few people have expressed interest in finding ongoing support, and the author is entirely willing to relinquish those privileges, so there may be support in the future.)

blt.py - an extension to the BLT enhancement for TK graphics (Peter J. Godman)
"I incorporated BLT 1.9 with Tkinter. BLT has support for 2d scatter plots, line graphs, and bar charts. What it does, it does well. I've been using this interface to BLT, but it's not totally debugged yet. I won't be able to support it much until school is out."

X Extension (Sjoerd.Mullender@cwi.nl)
An extensive interface to the X Window System libraries. In particular, there are interfaces to the X Toolkit, the Athena Widgets, and the Motif Widgets. There is also an interface to the NCSA Mosaic-2.{4,5,6} HTML widgets. Finally, for SGI systems, there is an interface to the Glx widgets.

SVGA library module - Access to linux SVGA library from Python (John Meacham)
"Svgamodule provides Python extensions that allow it to work with SVGAlib /vgagl graphics. I wrote it so that i could easily test different graphical algorithms and make neat snazzy screen savers in Python."

vpApp - Motif-based GUI application framework (Per Spilling, Sjoerd Mullender)
Sjoerd writes:
In a former life, Per Spilling wrote vpApp, a GUI application framework using Motif. Since then I changed the underlying X extension, and vpApp stopped working. I have now ported it to the new X extension.
GraphApp - Graphical toolkit designed for learning (Lachlan 'Loki' Patrick)
GraphApp is a graphical toolkit which works with Motif, the Athena X library, Windows 3.1, 95, and NT, and will soon work with the Macintosh. It was specifically designed to:
"... make graphics programming simple, and it works as both a C library and a Python add-on module. So far the Python binding works only with X-Windows, but I am working to link it with a Windows port of Python.

From what I have seen of other graphics toolkits, GraphApp is simpler and more straightforward than wxWindows or Tk. For beginner to intermediate graphics programmers, or those interested in rapid prototyping of a user interface, GraphApp is an ideal tool."

Terry - API to drive Pixar RenderMan 3D model renderer (Ture P´┐Żlsson)
"Terry (named after Terry Gilliam, who did the animations in Monty Python's Flying Circus) is a Python module that serves as an additional interface layer between a Python program and the RenderMan C API, making it possible to write Python programs to drive a RenderMan renderer."

Math, Data Structures, and Encoding

(See also the contributed Math/Data Structures and Encoding ftp repositories.)

Numerical Python - Numerical (matrix-oriented) mathematics for Python (James Hugunin, Konrad Hinsen, Paul Dubois, PSA Matrix SIG)
The numeric extension enables you to use Python to do matrix computations at near-C speeds.

In addition to the NumPy distribution, itself, here are some more useful items:

MMTK - Molecular Modelling Toolkit (Konrad Hinsen)
Employing the capabilities of the numerical computation package which the author helped develop:
"The Molecular Modelling Toolkit (MMTK) is a program library for molecular modelling applications. Its aim is to provide researchers, especially those working on the development of new modelling methods, with a code basis that can be easily extended and modified to deal with standard and non-standard problems in molecular modelling."
SAML interface Interface to the SAML Simple Algebraic Math Library (Thierry Bousch)
SAML is a free C library for symbolic calculations, accompanied by some application programs and Python bindings.

The library provides an object-oriented framework for defining and handling mathematical types, and implements the most common data types of computer algebra: integers, reals, fractions, complex numbers, polynomials, tensors, matrices, etc. The application programs consist of an interactive symbolic calculator (samuel), a programming language (induce) and a program to factorize integers (factorint).

Python Cryptography Toolkit (Andrew Kuchling)
An extensive toolkit including Python extensions for encryption, authentication, key exchange, secure socket operation, and many other types of cryptography operations. See the online docs for more overview.

Here is an alternative links to the toolkit.

Python code for computational chemistry (Konrad Hinsen)
Also including some modules useful for numerical applications - a class for geometrical vectors, a module for automatic derivatives, and a module for automatic gradient calculations for potential energy functions.

Khoros Interface - Extension to Khoros analysis, manipulation, and visualation system (Raymond E. Suorsa)
Python interface to the comprehensive Khoros signal processing system - which "evolved from an image processing tool to a broad-based environment for application development and software integration".

npstruct - Non-packing Struct-ish Module with bit- and proc-fields (Sam Rushing)
"It doesn't do alignment/packing, lets you specify byte order, adds a bitfield capability, and a new context-sensitive 'procfield' ('procedure field'), which is useful for things like variable-length sub-structures, strings, etc.

I've been using it for stuff like image/audio files and network protocols like talk/ntalk/ytalk."

GMP module - new wrapper for GNU Multiprecision math library (Andrew Kuchling, originally by Niels Moller)
"This gmp module is an almost complete rewrite of the mpz module distributed with Python."

NetCDF Interfaces
Interface to Unidata NetCDF array-oriented data interface files. According to one user:
The netCDF datafile format stores large, uniform, data arrays efficiently and avoids byte-order problems when moving binary data between different machines. It is well-documented and looks like a good compromise between simplicity and generality.

NetCDF interface - Interface to NetCDF portable data files (William Noon)
NetCDF interface - A Numeric-Python aware NetCDF portable data file interface (Kyle Schalm)
NetCDF interface - NetCDF interface that makes array variables look like NumPy arrays. (Konrad Hinsen)

strptime.py - Produce time-module style time tuples (Andy Eskilsson)
The inverse of strftime, convert a string to a tuple that the time module can handle.

cPickle - C implementation of Pickle (Python object marshalling) (Jim Fulton, Digicool)
cPickle is a C implementation of the Python module, pickle.py, and is fully compatible with pickle: all types picklable by pickle can be pickled using cPickle, and pickles generated using pickle may be unpickled using cPickle and vice versa.

PYML - Python interface to Mathematica (David Konerding)
PYML is a Python interface to Mathematica which uses MathLink. It allows the Python programmer to evaluate Mathematica expressions. Expressions are passed to PYML as Python objects, which are processed into MathLink calls. PYML calls MathLink to evaluate the expression and prints the result. Currently, PYML supports Mathematica 2.2 and 3.0 on Windows 95, UNIX, and presumably Macintosh.

DateTime - Date/time storage, arithmetic, and formatting (M.-A. Lemburg)
The DateTime package provides two new types that allow date/time storing, arithmetic and formatting -- extending the date range of the Unix time values 1970-2038 (seconds since 1.1.1970) to the range 1.1.0001 - >1.1.1000000, making Python year 2038 safe :-)

The module, at v 0.6, was in development when this entry was added (01/27/1998). Version 1.0 is expected to be the "final" release.

bplustree.py - classical compsci B+trees, implemented entirely in Python (Aaron Watters)
Fast, portable file based indexing with range queries and including a dbm-compatibility mode.

kwParsing - Parser generator in Python which generates parsers for use in Python (Aaron Watters)
Parser generation package entirely implemented in Python, including a Python lint (source checker) tool and a number of example grammars of varying complexity.

kjbuckets - Python extension for fast set, graph and mapping operations (Aaron Watters)
Hashed based fast C data structures for set, partial function, and relation (graph) algebra, including fast initializers and converters.

- (Aaron Watters)


(See also the contributed Database ftp repository.)

Gadfly - Python-based SQL engine (Aaron Watters)
Gadfly is a Python database API-compliant SQL engine (in particular, ODBC 2.0 SQL) written entirely in Python - hence ported everywhere that Python is - supporting a one-writer, many-reader model. It uses sophisticated data structures to provide a correct and relatively efficient implementation, and further performance can be gained using a C version of kjbuckets the underlying hash mechanism. It includes a TCP/IP client-server mechanism, and much more. It is very cool.

Oracle extension module - PyDB-compliant Oracle database extension module (Digital Creations)
A Python database API-compliant interface to Oracle.

Oracle module (Tom Culliton)
Tom's ftp dir contains links to an oracle module and a number (three, at time of writing) of contributed patches.

Time Arithmetic - Time/date/timezone arithmetic package (Ted Horst)
This time arithmetic package includes:

White Pages - Python-based White Pages (Hal J Schechner)
A searchable, joinable white-pages database written in Python.

mSQL module - a 2.0 compliant version of the mSQL module (Jeffrey C. Ollie)
This is a refinement of the contributed mSQL module that was contributed by Mark Shuttleworth, with assistance from other folks...

PyGreSQL - Python (1.5, not 1.4) interface to Postgres SQL (D'Arcy J.M. Cain)
"PyGreSQL is a python module that interfaces to a PostgreSQL database. It embeds the PostgreSQL query library to allow easy use of the powerful PostgreSQL features from a Python script."
(To use postgres with Python 1.4, see the PyGres95 items in the database section of the python.org contributed-ftp repository.)


(See also the contributed System/Tools ftp repository.)

DLL Interface - Python interface to arbitrary DLL's
Module that allows access to arbitrary (with some limitations) 3rd party Windows DLLs and/or OCX controls from Python.

Python-expect - Rudimentary 'expect' functionality in a native python class (Tim O'Malley)
Expect is a tool primarily for automating, character-oriented interactive applications, such as telnet, ftp, passwd, fsck, rlogin, tip, etc.

This refinement of mitch chapman's version uses a python-based eventloop, instead of relying on an event loop from an extension, like tkinter.

Event Loop - A native Python select-based event loop (Tim O'Malley)
Provides a class EventLoop, which invokes designated callbacks when specified times elapse or when specified file objects (distinguished by having 'fileno' methods) are ready to be read.

Extension Classes - a mechanism for making Python extension types more class-like (Jim Fulton, Digital Creations)
Using this mechanism, classes can be developed in an extension language, such as C or C++, and the resulting objects can be treated like other python classes:

Extension classes provide support for extended method binding protocols to support additional method types and additional method call sematics.

MESS - Meta-Extension System Set (Donald Beaudry, David Ascher)
By establishing Python builtin types as abstract classes, MESS enables you to inherit from and extend builtin types within native Python. Ie, you can extend the primitive Python types, like integers, strings, lists, etc., as well as any extension types you've created in C, C++, etc.

This is a work-in-progress, with much of the coding effort done, but much documentation to be done...

Fvwm Window Manager Python Module (Barry Warsaw)
A Python framework for writing Fvwm 2.x extension modules in Python, with examples. With this framework, you can now program and extend your window manager using Python. Integrated with Tkinter so your Fvwm modules can have a Tk-based GUI.

POSIX regex interface (Neal Becker)
A Python interface to POSIX regex - see pregex-*.tar.gz and README.pregex. (The tar file includes the free POSIX regex package from NetBSD, if you don't already have an implementation.)

Regex Enhancements - Perl-ish regex shortcuts and more (Ka-Ping Yee)
Patches providing regex shortcuts familiar to Perl aficionados, giving you selectable compatibility with most common Perl regular expressions, and additionally ways to designate minimal-spanning matches (??, +?, and *?).

Regexer - A regular expression exerciser (Andy Eskilsson)
"A small regular expression simulator, gives you instant feedback on what happens when you change the regexp/matching string. Good for people like me (I hope) who are starting to learn regexps."

SWIG - Simplified Wrapper and Interface Generator (Dave Beazley)
SWIG is a compiler that takes ANSI C/C++ declarations and builds a scripting language interface to a number of different scripting languages including Perl, Python, Tcl, and Guile. It supports most kinds of constructs that would appear in a typical ANSI C program, and a subset of C++.

Pipermail - Hypermail-like mail-archive management (Andrew Kuchling)
"A tool written in Python for maintaining Web archives of mailing lists, similar to Hypermail."

In addition to being written in Python, it has some nice features which are lacking in hypermail, like incremental indexing...

Mailman - Python-based Maillist Manager (John Viega, the mailman-developers listinfo page)
John Viega implemented mailman, and now a bunch of people are working with it, some working together to continue development using a mailman mailing list to collaborate about it - see the mailman-developers listinfo page for more info.
"Mailman is a program that automates email based mailing lists. It is most strikingly different from other mailing list managers in that it has a well developed web interface for list users and list administrators alike. Users can change their options, subscribe and unsubscribe over the web. List admins can configure the list, moderate the list, and maintain the lists web page, all via the web."

Interactive Game Frameworks (Joseph Strout)
Joe Strout has put together a few levels of Python gaming engines:
BUS - Basic Universe Simulator
"BUS is a simple text-adventure engine. It still needs a bit of work, but it runs and has a few nice features, most notably that the code is quite short for what it does."
PUB - Python Universe Builder
The Python Universe Builder is the "bigger brother" of BUS, providing a more sophisticated engine, and including mechanisms to interconnect with other services over the net. (The distribution includes tcp network connection support.)
POO - Pythonic MOO
A (currently) alpha release of "a single- or multi-user virtual environment, in which almost all the code that makes it go is written and edited from within the game." (This item also belongs in the *Network* section.)

High-level Process Interface (Tod Olson)
A class which provides an interface to a subprocess which avoids using a subshell (hence, avoids shell quoting and incipient security problems), and provides forking, execing, and redirection of child I/O. Redirection is expressed using convenient notation, and interaction with the process is via a file-like interface, so the process-interaction instance can be used in, eg, select calls.

Unicode Facilities - wide-character strings, internationalization and localization (Martin von Löwis)
A small package consisting of two modules, wstring and intl. The module wstring is similar to the module string, only that the strings consist of wide characters rather than bytes. The module intl is a wrapper around the Posix/ANSI C internationalization and localization libraries.

Python Programming Tools

(See also the contributed System/Tools ftp repository.)

PTUI - Python/Tkinter User Interface (Zachary Roadhouse)
Yessir, it's a Python code development user interface which can be embedded in larger applications or used by itself. !

"Python/Tkinter User Interface is my attempt to create an environment where you can run code from within the tk mainloop like the wish interpreter. PTUI uses a small framework of classes that can be imbedded into a larger application to facilitate rapid developement and testing."
(This item also belongs in the *Graphics* and *System* sections.)

pdb.el - Python Debugging from Emacs (Wolfgang Weitz)
pdb.el is a short emacs lisp file which adds some support for debugging Python programs with pdb from within xemacs to Eric S. Raymond's Grand Unified Debugger mode (gud.el).

SHM - Python Shared Memory Module (Vladimir Marangozov)
An extension module that provides an object interface to System V shared memory IPC, present in most Unix systems, in the form of shared memory objects and semaphore objects. (This item also belongs in the *System* section.)

JPI - Java Python Interface (Douglas Cunningham)
"The Java Python Interface (JPI) is an interface between Java and Python which allows the two languages to primitively interoperate. In this way, Python can be used as a scripting language for Java. From a Python interpreter one can prototype AWT components and even create bindings which call Python code."

(Douglas has thus far only built for Solaris, but is working on a Windows port, and will also be making a source code release. Since he works at Carnegie Mellon University, the software is copyrighted by them.)

PyJava - Java Embedded in Python (Kevin J. Butler)
"I eventually want to be able to use JFC UI elements for Python GUI programming. The first step is to be able to call Java code from Python, so I used SWIG to wrap the Java Native Interface (JNI), and have built a shadow class facility using the Java Reflection API.

I'm looking for ideas on how to do callbacks... Any ideas?"

Other - all the rest

(See also the contributed Miscellaneous ftp repository.)

MIDI interface modules (Jack Jansen)
He says it's "horribly incomplete... the midifile parser is ok, but the only driver is for the SGI midi library". Then again, others have had great success using it - "So I bravely fetched Jack Jansens' "incomplete" code [...] and had a play. Ten minute later I was generated midi files - thanks Jack!"

PyPsion - Psion (Palmtop computer/PDA) file handling (Dan Connolly)
Tools to convert from and to Psion organizer file formats.

Win95/NT Python Survival Kit (Harri Pasanen)
This is a binary Python distribution for Win95 and NT that fits on a single diskette, and features not only a decent, but a very good editor, JED.

Artificial Intelligence in Python (Joseph Strout)
"Python has many of the features of LISP, a language very popular among artificial intelligence (AI) researchers. It is well suited to the sort of symbolic processing used in AI.

I'm no expert in AI, but I've tinkered a bit. As I develop more AI programs in Python, I'll post them here. If you have something or know of something along these lines, please let me know and I'll include it here as well."