\documentclass{manual}

% NOTE: this file controls which chapters/sections of the library
% manual are actually printed.  It is easy to customize your manual
% by commenting out sections that you're not interested in.

\title{Python Library Reference}

\input{boilerplate}

\makeindex                      % tell \index to actually write the
                                % .idx file
\makemodindex                   % ... and the module index as well.

 
\begin{document}

\maketitle

\ifhtml
\chapter*{Front Matter\label{front}}
\fi

\input{copyright}

\begin{abstract}

\noindent
Python is an extensible, interpreted, object-oriented programming
language.  It supports a wide range of applications, from simple text
processing scripts to interactive Web browsers.

While the \citetitle[../ref/ref.html]{Python Reference Manual}
describes the exact syntax and semantics of the language, it does not
describe the standard library that is distributed with the language,
and which greatly enhances its immediate usability.  This library
contains built-in modules (written in C) that provide access to system
functionality such as file I/O that would otherwise be inaccessible to
Python programmers, as well as modules written in Python that provide
standardized solutions for many problems that occur in everyday
programming.  Some of these modules are explicitly designed to
encourage and enhance the portability of Python programs.

This library reference manual documents Python's standard library, as
well as many optional library modules (which may or may not be
available, depending on whether the underlying platform supports them
and on the configuration choices made at compile time).  It also
documents the standard types of the language and its built-in
functions and exceptions, many of which are not or incompletely
documented in the Reference Manual.

This manual assumes basic knowledge about the Python language.  For an
informal introduction to Python, see the
\citetitle[../tut/tut.html]{Python Tutorial}; the
\citetitle[../ref/ref.html]{Python Reference Manual} remains the
highest authority on syntactic and semantic questions.  Finally, the
manual entitled \citetitle[../ext/ext.html]{Extending and Embedding
the Python Interpreter} describes how to add new extensions to Python
and how to embed it in other applications.

\end{abstract}

\tableofcontents

                                % Chapter title:

\input{libintro}                % Introduction


% =============
% BUILT-INs
% =============

\input{libobjs}                 % Built-in Types, Exceptions and Functions
\input{libfuncs}
\input{libstdtypes}
\input{libexcs}
\input{libconsts}



% =============
% BASIC/GENERAL-PURPOSE OBJECTS
% =============

% Strings
\input{libstrings}              % String Services
\input{libstring}
\input{libre}
\input{libstruct}   % XXX also/better in File Formats?
\input{libdifflib}
\input{libstringio}
\input{libtextwrap}
\input{libcodecs}
\input{libunicodedata}
\input{libstringprep}
\input{libfpformat}


\input{datatypes}		% Data types and structures
\input{libdatetime}
\input{libcalendar}
\input{libcollections}
\input{libheapq}
\input{libbisect}
\input{libarray}
\input{libsets}
\input{libsched}
\input{libmutex}
\input{libqueue}
\input{libweakref}
\input{libuserdict}

% General object services
% XXX intro
\input{libtypes}
\input{libnew}
\input{libcopy}
\input{libpprint}
\input{librepr}


\input{numeric}			% Numeric/Mathematical modules
\input{libmath}
\input{libcmath}
\input{libdecimal}
\input{librandom}

% Functions, Functional, Generators and Iterators
% XXX intro functional
\input{libitertools}
\input{libfunctools}
\input{liboperator}       % from runtime - better with itertools and functools


% =============
% DATA FORMATS
% =============

% Big move - include all the markup and internet formats here

% MIME & email stuff
\input{netdata}                 % Internet Data Handling
\input{email}
\input{libmailcap}
\input{libmailbox}
\input{libmhlib}
\input{libmimetools}
\input{libmimetypes}
\input{libmimewriter}
\input{libmimify}
\input{libmultifile}
\input{librfc822}

% encoding stuff
\input{libbase64}
\input{libbinascii}
\input{libbinhex}
\input{libquopri}
\input{libuu}

\input{markup}                  % Structured Markup Processing Tools
\input{libhtmlparser}
\input{libsgmllib}
\input{libhtmllib}
\input{libpyexpat}
\input{xmldom}
\input{xmldomminidom}
\input{xmldompulldom}
\input{xmlsax}
\input{xmlsaxhandler}
\input{xmlsaxutils}
\input{xmlsaxreader}
% \input{libxmllib}

\input{fileformats}		% Miscellaneous file formats
\input{libcsv}
\input{libcfgparser}
\input{librobotparser}
\input{libnetrc}
\input{libxdrlib}

\input{libcrypto}               % Cryptographic Services
\input{libhashlib}
\input{libhmac}
\input{libmd5}
\input{libsha}

% =============
% FILE & DATABASE STORAGE
% =============

\input{filesys}			% File/directory support
\input{libposixpath}            % os.path
\input{libfileinput}
\input{libstat}
\input{libstatvfs}
\input{libfilecmp}
\input{libtempfile}
\input{libglob}
\input{libfnmatch}
\input{liblinecache}
\input{libshutil}
\input{libdircache}


\input{archiving}		% Data compression and archiving
\input{libzlib}
\input{libgzip}
\input{libbz2}
\input{libzipfile}
\input{libtarfile}


\input{persistence}		% Persistent storage
\input{libpickle}
\input{libcopyreg}              % really copy_reg % from runtime...
\input{libshelve}
\input{libmarshal}
\input{libanydbm}
\input{libwhichdb}
\input{libdbm}
\input{libgdbm}
\input{libdbhash}
\input{libbsddb}
\input{libdumbdbm}
\input{libsqlite3}


% =============
% OS
% =============


\input{liballos}                % Generic Operating System Services
\input{libos}
\input{libtime}
\input{liboptparse}
\input{libgetopt}
\input{liblogging}
\input{libgetpass}
\input{libcurses}
\input{libascii}                % curses.ascii
\input{libcursespanel}
\input{libplatform}
\input{liberrno}
\input{libctypes}
\input{libctypesref}

\input{libsomeos}               % Optional Operating System Services
\input{libselect}
\input{libthread}
\input{libthreading}
\input{libdummythread}
\input{libdummythreading}
\input{libmmap}
\input{libreadline}
\input{librlcompleter}

\input{libunix}                 % UNIX Specific Services
\input{libposix}
\input{libpwd}
\input{libspwd}
\input{libgrp}
\input{libcrypt}
\input{libdl}
\input{libtermios}
\input{libtty}
\input{libpty}
\input{libfcntl}
\input{libpipes}
\input{libposixfile}
\input{libresource}
\input{libnis}
\input{libsyslog}
\input{libcommands}


% =============
% NETWORK & COMMUNICATIONS
% =============

\input{ipc}                     % Interprocess communication/networking
\input{libsubprocess}
\input{libsocket}
\input{libsignal}
\input{libpopen2}
\input{libasyncore}
\input{libasynchat}

\input{internet}                % Internet Protocols
\input{libwebbrowser}
\input{libcgi}
\input{libcgitb}
\input{liburllib}
\input{liburllib2}
\input{libhttplib}
\input{libftplib}
\input{libgopherlib}
\input{libpoplib}
\input{libimaplib}
\input{libnntplib}
\input{libsmtplib}
\input{libsmtpd}
\input{libtelnetlib}
\input{liburlparse}
\input{libsocksvr}
\input{libbasehttp}
\input{libsimplehttp}
\input{libcgihttp}
\input{libcookielib}
\input{libcookie}
\input{libxmlrpclib}
\input{libsimplexmlrpc}
\input{libdocxmlrpc}

% =============
% MULTIMEDIA
% =============

\input{libmm}                   % Multimedia Services
\input{libaudioop}
\input{libimageop}
\input{libaifc}
\input{libsunau}
\input{libwave}
\input{libchunk}
\input{libcolorsys}
\input{librgbimg}
\input{libimghdr}
\input{libsndhdr}
\input{libossaudiodev}

% Tkinter is a chapter in its own right.
\input{tkinter}

%                                % Internationalization
\input{i18n}
\input{libgettext}
\input{liblocale}

% =============
% PROGRAM FRAMEWORKS
% =============
\input{frameworks}
\input{libcmd}
\input{libshlex}


% =============
% DEVELOPMENT TOOLS
% =============
%                                % Software development support
\input{development}
\input{libpydoc}
\input{libdoctest}
\input{libunittest}
\input{libtest}

\input{libpdb}                  % The Python Debugger

\input{libprofile}              % The Python Profiler
\input{libhotshot}              % unmaintained C profiler
\input{libtimeit}
\input{libtrace}

% =============
% PYTHON ENGINE
% =============

% Runtime services
\input{libpython}               % Python Runtime Services
\input{libsys}
\input{libbltin}                % really __builtin__
\input{libmain}                 % really __main__
\input{libwarnings}
\input{libcontextlib}
\input{libatexit}
\input{libtraceback}
\input{libfuture}               % really __future__
\input{libgc}
\input{libinspect}
\input{libsite}
\input{libuser}
\input{libfpectl}


\input{custominterp}		% Custom interpreter
\input{libcode}
\input{libcodeop}
\input{librestricted}           % Restricted Execution
\input{librexec}
\input{libbastion}


\input{modules}			% Importing Modules
\input{libimp}
\input{libzipimport}
\input{libpkgutil}
\input{libmodulefinder}
\input{librunpy}


% =============
% PYTHON LANGUAGE & COMPILER
% =============

\input{language}                % Python Language Services
\input{libparser}
\input{libsymbol}
\input{libtoken}
\input{libkeyword}
\input{libtokenize}
\input{libtabnanny}
\input{libpyclbr}
\input{libpycompile}            % really py_compile
\input{libcompileall}
\input{libdis}
\input{libpickletools}
\input{distutils}

\input{compiler}                % compiler package
\input{libast}

\input{libmisc}                 % Miscellaneous Services
\input{libformatter}

% =============
% OTHER PLATFORM-SPECIFIC STUFF
% =============

%\input{libamoeba}              % AMOEBA ONLY

%\input{libstdwin}              % STDWIN ONLY

\input{libsgi}                  % SGI IRIX ONLY
\input{libal}
\input{libcd}
\input{libfl}
\input{libfm}
\input{libgl}
\input{libimgfile}
\input{libjpeg}
%\input{libpanel}

\input{libsun}                  % SUNOS ONLY
\input{libsunaudio}

\input{windows}                 % MS Windows ONLY
\input{libmsilib}
\input{libmsvcrt}
\input{libwinreg}
\input{libwinsound}

\appendix
\input{libundoc}

%\chapter{Obsolete Modules}
%\input{libcmpcache}
%\input{libcmp}
%\input{libni}

\chapter{Reporting Bugs}
\input{reportingbugs}

\chapter{History and License}
\input{license}

%
%  The ugly "%begin{latexonly}" pseudo-environments are really just to
%  keep LaTeX2HTML quiet during the \renewcommand{} macros; they're
%  not really valuable.
%

%begin{latexonly}
\renewcommand{\indexname}{Module Index}
%end{latexonly}
\input{modlib.ind}              % Module Index

%begin{latexonly}
\renewcommand{\indexname}{Index}
%end{latexonly}
\input{lib.ind}                 % Index

\end{document}
