\chapter{Undocumented Modules} Here's a quick listing of modules that are currently undocumented, but that should be documented. Feel free to contribute documentation for them! (The idea and most contents for this chapter were taken from a posting by Fredrik Lundh; I have revised some modules' status.) \section{Fundamental, and pretty straightforward to document} ni.py -- New import scheme with package support \section{Frameworks; somewhat harder to document, but well worth the effort} Tkinter.py -- Interface to Tcl/Tk for graphical user interfaces; Fredrik Lundh is working on this one! BaseHTTPServer.py -- HTTP server base class CGIHTTPServer.py -- CGI-savvy HTTP Server SimpleHTTPServer.py -- Simple HTTP Server SocketServer.py -- Generic socket server classes \section{Stuff useful to a lot of people, including the CGI crowd} MimeWriter.py -- Generic MIME writer mimify.py -- Mimification and unmimification of mail messages multifile.py -- make each part of a multipart message ``feel'' like base64.py -- Conversions to/from base64 transport encoding mailbox.py -- handle Unix style, MMDF style, and MH style mailboxes quopri.py -- Conversions to/from quoted-printable transport encoding \section{Miscellaneous useful utilities} Some of these are very old and/or not very robust; marked with ``hmm''. fnmatch.py -- filename globbing (low level interface) calendar.py -- Calendar printing functions cmp.py -- Efficiently compare files cmpcache.py -- Efficiently compare files (uses statcache) dircache.py -- like os.listdir, but caches results dircmp.py -- class to build directory diff tools on linecache.py -- Cache lines from files (used by pdb) pipes.py -- Conversion pipeline templates (hmm) popen2.py -- improved popen? (read AND write simultaneously) (hmm) statcache.py -- Maintain a cache of file stats colorsys.py -- Conversion between RGB and other color systems commands.py -- executing commands and looking at their output and status dbhash.py -- (g)dbm-like wrapper for bsdhash.hashopen dumbdbm.py -- A dumb and slow but simple dbm clone (anydbm's last resort) mhlib.py -- MH interface pty.py -- Pseudo terminal utilities tty.py -- Terminal utilities cmd.py -- build line-oriented command interpreters (used by pdb) bdb.py -- A generic Python debugger base class (used by pdb) ihooks.py -- Import hook support (for ni and rexec) \section{Parsing Python} (One could argue that these should all be documented together with the parser module; in fact the parser module section already references the token and symbol modules.) token.py -- Tokens (from ``token.h'') symbol.py -- Symbols (from ``graminit.h'') tokenize.py -- regular expression that recognizes Python tokens pyclbr.py -- Parse a Python file and retrieve classes and methods \section{Platform specific modules} ntpath.py -- equivalent of posixpath on 32-bit Windows dospath.py -- equivalent of posixpath on MS-DOS macpath.py -- equivalent of posixpath on Mac \section{Code objects and files, debugger etc.} compileall.py -- force "compilation" of all .py files in a directory py_compile.py -- "compile" a .py file to a .pyc file codehack.py -- extract a function name from a code object dis.py -- Disassembler for Python bytecode objects repr.py -- Redo the `...` (representation) but with limits on most sizes (used by pdb) newdir.py -- New dir() function \section{Multimedia} audiodev.py -- Plays audio files sunau.py -- parse Sun and NeXT audio files sunaudio.py -- interpret sun audio headers toaiff.py -- Convert "arbitrary" sound files to AIFF files sndhdr.py -- recognizing sound files wave.py -- parse WAVE files whatsound.py -- recognizing sound files \section{Oddities} These modules are probably also obsolete, or just not very useful. Queue.py -- A multi-producer, multi-consumer queue bisect.py -- Bisection algorithms dump.py -- Print python code that reconstructs a variable emacs.py -- Execute Emacs code from a Python interpreter find.py -- find files matching pattern in directory tree fpformat.py -- General floating point formatting functions -- obsolete grep.py -- grep mutex.py -- Mutual exclusion -- for use with module sched packmail.py -- create a self-unpacking \Unix{} shell archive poly.py -- Polynomials sched.py -- event scheduler class shutil.py -- utility functions usable in a shell-like program util.py -- useful functions that don't fit elsewhere zmod.py -- Compute properties of mathematical "fields" tzparse.py -- Parse a timezone specification (unfinished) \section{Obsolete} addpack.py -- standard support for "packages" (use ni instead) fmt.py -- text formatting abstractions (too slow) Para.py -- helper for fmt.py lockfile.py -- wrapper around FCNTL file locking (use fcntl.lockf/flock intead) tb.py -- Print tracebacks, with a dump of local variables (use pdb.pm() or traceback.py instead) \section{Extension modules} bsddbmodule.c -- Interface to the Berkeley DB interface (yet another dbm clone). cmathmodule.c -- Exactly the same as math, except takes complex arguments and returns complex results. cursesmodule.c -- Curses interface. dbhashmodule.c -- Obsolete. dlmodule.c -- A highly experimental and dangerous device for calling arbitrary C functions in arbitrary shared libraries. newmodule.c -- Tommy Burnette's `new' module (creates new empty objects of certain kinds) -- dangerous. nismodule.c -- NIS (a.k.a. Sun's Yellow Pages) interface. timingmodule.c -- Measure time intervals to high resolution (obsolete -- use time.clock() instead). The following are SGI specific: clmodule.c -- Interface to the SGI compression library. svmodule.c -- Interface to the ``simple video'' board on SGI Indigo (obsolete hardware).