pyos-chess (Python chess module) does not know how to play chess, but does understand the rules enough that it can watch moves and verify that they are correct. It features high abstraction, understands various notations (including algebraic, long algebraic, and standard algebraic notation), does disambiguation, and supports saving and loading the state of a game.
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.
CAGE is a fairly generic and complete cellular automaton simulation engine in Python. It supports both 1D and 2D automata, a variety of prepackaged rules, and the concept of "agents" which can move about independently on the map for implementing agent behavior. It comes with numerous examples of fully-functional CA systems, including Conway's Game of Life, Langton's self-reproducing automaton, Langton's "vants," and 1D automata rule explorers. It also comes with simple displayers (including a curses interface for 2D automata) and a unique implementation of a finite state machine.
EmPy is a system for embedding Python expressions and statements in template text. It takes an EmPy source file, processes it, and produces output. This is accomplished via expansions, which are special signals to the EmPy system and are set off by a special prefix (by default the at sign, '@'). It can expand arbitrary Python expressions and statements in this way, as well as a variety of special forms. Textual data not explicitly delimited in this way is sent unaffected to the output, allowing Python to be used in effect as a markup language. Also supported are callbacks via hooks, recording and playback via diversions, and dynamic, chainable filters. The system is highly configurable via command line options and embedded commands.
Lindenmayer Systems in Python provides a simple implementation of Lindenmayer systems (also called "L-systems" or "substitution systems"). In basic form, a Lindenmayer system consists of a starting string of symbols from an alphabet which has repeated transitions applied to it, specified by a list of transition search-and-replace rules. In addition to the standard formulation, two alternative implementations are included: sequential systems (in which at most one rule is applied) and tag systems (in which the transition only takes place at the beginning and end of the string). Despite being implemented entirely in Python, for reasonable rules on a modern machine, the system is capable of running thousands of generations per second. Lindenmayer systems are found in artificial intelligence and artificial life and can be used to generate fractal patterns (usually via mapping symbols from the alphabet to turtle commands), organic-looking patterns that can simulate plants or other living things, or even music.
ZOE (formerly OGLE) is a simple OpenGL graphics engine written entirely in Python. Its primary focus is rapid prototyping and experimentation, so it only supports the barest essentials, with focus on wire frames. Special emphasis is placed on particle systems (in which non-interacting particles follow simple rules). Some familiarity with OpenGL is expected, although when exploiting the particle system abstractions, no specific OpenGL knowledge is required. The demos included are the obligatory spinning polyhedra, static views of conic sections and the Solar System, a 3D surface plotter, a fountain of sparks, a swarming behavior model, a random walk example, a whirlpool effect using gravity and drag, and an example of chaos theory and sensitivity to initial conditions.
fauxident is a small Python script that will act as an extremely naive ident server, answering all ident requests with a consistent response (either ERROR or USERID). This can be advantageous on systems where running a true identd is unavailable, where it would be would be a security risk, or when masquerading firewalls are in use, where multiple machines are involved behind the firewall and running a proper ident system is not an option.
PyUID provides an implementation of a "unique" ID (UID) generator in Python. The implementation does not follow UUID or GUID standards, but rather uses available system, host, user, shell environment, process, and other ephemeral information fed into a hasher to generate the UID. The system is designed to be used both as a standalone application and as a module. The data used to be fed into the hash, as well as the hashing mechanism itself, can be overridden both through the command line and programmatically by importing the module.
WebVal is a system that will scan documents for fully-qualified HTTP URLs, keeping its database fresh with newly-seen URLs. It can then be requested to validate the URLs, whereby it will attempt to access each URL via an HTTP request and record the response code; it maintains a list of the most recent codes that have been retrieved. Response codes are classified as "good" (URL is correct and a valid page is there) and "bad" (URL is invalid or outdated). By default any code other than a 2xx code is considered bad, but this can be changed (e.g. to ignore 3xx redirection codes). WebVal can then be used in report mode where it will scan documents for URLs as before, but will report invalid URLs (that is, URLs in the database which have a number of "bad" codes exceeding a certain threshold). These are then printed to stderr in a format that shows the file and line number the URLs were seen in so that they can be corrected.
CSBuddy is a tool designed to help Counter-Strike server owners, particularly those running AdminMod. It maintains a queryable database of all players that have been seen on the server, and it filters the raw logs of a Counter-Strike server and distills them into a single CSBuddy log which shows only high-level activity such as excessive friendly fire incidents, admin activity, and players complaining about misbehavior or saying suspicious things. This tool is built upon an included Counter-Strike log file parser which is provided in a simple derivable class.
PyQStat is a fairly simple Python wrapper around QStat, an application designed to report server status for a wide variety of realtime game servers. PyQStat invokes QStat via os.popen and parses its XML output mode. Although primarily intended as an importable module for integrating QStat functionality into other applications, PyQStat can also be used from the command line.
discord is a very simple Python module that allows for conversion from normal dates (via 'time.time', 'time.localtime', etc.) to Discordian dates. The module can either be used as a standalone command line application (which prints the current date in Discordian form) or as an extension module.
BOTEC is a simple but useful calculator that assists with astrophysical, orbital mechanics, and space navigation calculations. It is a "back-of-the-envelope calculator" rather than an industrial-strength calculator, although this may change in the future. It is primarily intended for people familiar with physics and Python, and as such is unlikely to be useful to the average end user. It includes solar system data, and all values are strictly in SI units.