Grouch is a system for describing and enforcing a Python object schema. An object schema describes every class in a collection of objects -- in particular, it specifies the type of every instance attribute of every class. Grouch includes a type language for specifying attribute types, a tool to parse specially-formatted class docstrings and output a complete object schema, and another tool for walking a persistent object graph and ensuring that every scrap of data in it conforms to the object schema extracted from your class docstrings. The API for defining, querying, and enforcing types is fairly complete and well-documented, so you can use Grouch's type system in other ways as well.
GCache is a Python module that provides a generic cache class useful for speeding up any application where objects are referenced by keys. It uses object metadata to optimize hit-rates and freshness for fetches, and uses a "write-through" mechanism for writes and deletes. It can use "if-modified-since" fetches or rsync delta updates to refresh stale cached objects. GSource classes are provided for generating useful metadata from common sources (os.stat calls and MIME headers). A simple example urlCache is implemented that supports HTTP 1.1 (rfc2616) cache-control and expire headers to ensure freshness. Also included is an rfc2616 package useful for parsing HTTP 1.1 headers, and a PCache package implementing a persistant cache using a Python shelve.
Python-mhash is a Python interface to the mhash library, which provides a uniform interface to a large number of hash algorithms. These algorithms can be used to compute checksums, message digests, and other signatures. The HMAC support implements the basics for message authentication, following RFC 2104.
GUISearch provides a Web interface for browsing and searching KDE application source code. Unlike other similar tools, GUISearch actually tries to understand the application GUI to provide better browsing/search facilities. For example, it understands the menu structure and corresponding callbacks of menu items.
Alphabet Soup is a project which attempts to determine a number of things about the shapes of letters in several different writing systems. First, it hypothesizes a set of basic building blocks that all letters are built up from. Second, it hypothesizes a set of rules, a grammar or syntax, which defines how those pieces combine to make different letters. It can generate individual letters, randomize letters in an input string to create weird but readable text, or generate random strings of symbols.
etrace makes use of the -finstrument-functions feature from gcc to log all function calls and display them as a call tree during run-time. The call tree can also be logged to a file. This lets you follow a program's execution path path without using a debugger. etrace consists of 80 lines of Python and 100 lines of C code.
The Python lambda calculus module allows simple experimentation with the lambda calculus, which was first developed by Church. It understands the different types of lambda expressions, can extract lists of variables (both free and bound) and subterms, and can simplify complicated expressions by means of application.
Wallal is a standalone LDAP-to-Web gateway. It allows you to search, add to, modify, and delete from an LDAP database. It can format entries and validate them upon submission, and the entries displayed are fully configurable. It was designed with a "personal" LDAP server in mind (one that is used primarily as a phonebook). However, it should be reasonably easy to modify it to do more complex operations on a directory.