\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 WWW 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

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

\input{libpython}		% Python Runtime Services
\input{libsys}
\input{libgc}
\input{libatexit}
\input{libtypes}
\input{libuserdict}
\input{liboperator}
\input{libtraceback}
\input{liblinecache}
\input{libpickle}
\input{libcopyreg}		% really copy_reg
\input{libshelve}
\input{libcopy}
\input{libmarshal}
\input{libimp}
%\input{libni}
\input{libcode}
\input{libcodeop}
\input{libpprint}
\input{librepr}
\input{libnew}
\input{libsite}
\input{libuser}
\input{libbltin}		% really __builtin__
\input{libmain}			% really __main__

\input{libstrings}		% String Services
\input{libstring}
\input{libre}
\input{libregex}
\input{libregsub}
\input{libstruct}
\input{libfpformat}
\input{libstringio}
\input{libcodecs}
\input{libunicodedata}
%\input{libsoundex}

\input{libmisc}			% Miscellaneous Services
\input{libmath}
\input{libcmath}
\input{librandom}
\input{libwhrandom}
%\input{librand}
\input{libbisect}
\input{libarray}
\input{libcfgparser}
\input{libfileinput}
\input{libcalendar}
\input{libcmd}
\input{libshlex}

\input{liballos}		% Generic Operating System Services
\input{libos}
\input{libposixpath}		% os.path
\input{libdircache}
\input{libstat}
\input{libstatcache}
\input{libstatvfs}
\input{libfilecmp}
%\input{libcmp}
%\input{libcmpcache}
\input{libtime}
\input{libsched}
\input{libgetpass}
\input{libcurses}
\input{libascii}		% curses.ascii
\input{libgetopt}
\input{libtempfile}
\input{liberrno}
\input{libglob}
\input{libfnmatch}
\input{libshutil}
\input{liblocale}
\input{libmutex}

\input{libsomeos}		% Optional Operating System Services
\input{libsignal}
\input{libsocket}
\input{libselect}
\input{libthread}
\input{libthreading}
\input{libqueue}
\input{libanydbm}
\input{libdbhash}
\input{libwhichdb}
\input{libbsddb}
\input{libzlib}
\input{libgzip}
\input{libzipfile}
\input{libreadline}
\input{librlcompleter}

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

\input{libpdb}			% The Python Debugger

\input{libprofile}		% The Python Profiler

\input{internet}		% Internet Protocols
\input{libwebbrowser}
\input{libcgi}
\input{liburllib}
\input{libhttplib}
\input{libftplib}
\input{libgopherlib}
\input{libpoplib}
\input{libimaplib}
\input{libnntplib}
\input{libsmtplib}
\input{libtelnetlib}
\input{liburlparse}
\input{libsocksvr}
\input{libbasehttp}
\input{libsimplehttp}
\input{libcgihttp}
\input{libcookie}
\input{libasyncore}

\input{netdata}			% Internet Data Handling
\input{libformatter}
\input{librfc822}
\input{libmimetools}
\input{libmimewriter}
\input{libmultifile}
\input{libbinhex}
\input{libuu}
\input{libbinascii}
\input{libxdrlib}
\input{libmailcap}
\input{libmimetypes}
\input{libbase64}
\input{libquopri}
\input{libmailbox}
\input{libmhlib}
\input{libmimify}
\input{libnetrc}
\input{librobotparser}

\input{markup}                  % Structured Markup Processing Tools
\input{libsgmllib}
\input{libhtmllib}
\input{libxmllib}
\input{libpyexpat}

\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{libcrypto}		% Cryptographic Services
\input{libmd5}
\input{libsha}
\input{libmpz}
\input{librotor}

\input{librestricted}           % Restricted Execution
\input{librexec}
\input{libbastion}

\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{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{libmsvcrt}
\input{libwinreg}
\input{libwinsound}

\input{libundoc}

%
%  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}
