\chapter{Undocumented Modules \label{undocumented-modules}}


The modules in this chapter are poorly documented (if at all).  If you
wish to contribute documentation of any of these modules, please get in
touch with
\ulink{\email{docs@python.org}}{mailto:docs@python.org}.

\localmoduletable


\section{\module{applesingle} --- AppleSingle decoder}
\declaremodule{standard}{applesingle}
  \platform{Mac}
\modulesynopsis{Rudimentary decoder for AppleSingle format files.}


\section{\module{buildtools} --- Helper module for BuildApplet and Friends}
\declaremodule{standard}{buildtools}
  \platform{Mac}
\modulesynopsis{Helper module for BuildApplet, BuildApplication and
                macfreeze.}

\deprecated{2.4}

\section{\module{cfmfile} --- Code Fragment Resource module}
\declaremodule{standard}{cfmfile}
  \platform{Mac}
\modulesynopsis{Code Fragment Resource module.}

\module{cfmfile} is a module that understands Code Fragments and the
accompanying ``cfrg'' resources. It can parse them and merge them, and is
used by BuildApplication to combine all plugin modules to a single
executable.

\deprecated{2.4}

\section{\module{icopen} --- Internet Config replacement for \method{open()}}
\declaremodule{standard}{icopen}
  \platform{Mac}
\modulesynopsis{Internet Config replacement for \method{open()}.}

Importing \module{icopen} will replace the builtin \method{open()}
with a version that uses Internet Config to set file type and creator
for new files.


\section{\module{macerrors} --- Mac OS Errors}
\declaremodule{standard}{macerrors}
  \platform{Mac}
\modulesynopsis{Constant definitions for many Mac OS error codes.}

\module{macerrors} contains constant definitions for many Mac OS error
codes.


\section{\module{macresource} --- Locate script resources}
\declaremodule{standard}{macresource}
  \platform{Mac}
\modulesynopsis{Locate script resources.}

\module{macresource} helps scripts finding their resources, such as
dialogs and menus, without requiring special case code for when the
script is run under MacPython, as a MacPython applet or under OSX Python.

\section{\module{Nav} --- NavServices calls}
\declaremodule{standard}{Nav}
  \platform{Mac}
\modulesynopsis{Interface to Navigation Services.}

A low-level interface to Navigation Services. 

\section{\module{PixMapWrapper} --- Wrapper for PixMap objects}
\declaremodule{standard}{PixMapWrapper}
  \platform{Mac}
\modulesynopsis{Wrapper for PixMap objects.}

\module{PixMapWrapper} wraps a PixMap object with a Python object that
allows access to the fields by name. It also has methods to convert
to and from \module{PIL} images.

\section{\module{videoreader} --- Read QuickTime movies}
\declaremodule{standard}{videoreader}
  \platform{Mac}
\modulesynopsis{Read QuickTime movies frame by frame for further processing.}

\module{videoreader} reads and decodes QuickTime movies and passes
a stream of images to your program. It also provides some support for
audio tracks.

\section{\module{W} --- Widgets built on \module{FrameWork}}
\declaremodule{standard}{W}
  \platform{Mac}
\modulesynopsis{Widgets for the Mac, built on top of \refmodule{FrameWork}.}

The \module{W} widgets are used extensively in the \program{IDE}.

\section{\module{waste} --- non-Apple \program{TextEdit} replacement}
\declaremodule{standard}{waste}
  \platform{Mac}
\modulesynopsis{Interface to the ``WorldScript-Aware Styled Text Engine.''}

\begin{seealso}
  \seetitle[http://www.merzwaren.com/waste/]{About WASTE}{Information
            about the WASTE widget and library, including
            documentation and downloads.}
\end{seealso}

