summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
Diffstat (limited to 'Doc')
-rw-r--r--Doc/lib.tex234
-rw-r--r--Doc/libaifc.tex194
-rw-r--r--Doc/libal.tex175
-rw-r--r--Doc/liballos.tex36
-rw-r--r--Doc/libamoeba.tex128
-rw-r--r--Doc/libanydbm.tex71
-rw-r--r--Doc/libarray.tex161
-rw-r--r--Doc/libaudioop.tex257
-rw-r--r--Doc/libbase64.tex45
-rw-r--r--Doc/libbasehttp.tex219
-rw-r--r--Doc/libbastion.tex48
-rw-r--r--Doc/libbinascii.tex79
-rw-r--r--Doc/libbinhex.tex36
-rw-r--r--Doc/libbisect.tex55
-rw-r--r--Doc/libbltin.tex8
-rw-r--r--Doc/libcalendar.tex45
-rw-r--r--Doc/libcd.tex300
-rw-r--r--Doc/libcgi.tex461
-rw-r--r--Doc/libcmath.tex90
-rw-r--r--Doc/libcode.tex31
-rw-r--r--Doc/libcommands.tex52
-rw-r--r--Doc/libcopy.tex82
-rw-r--r--Doc/libcopyreg.tex27
-rw-r--r--Doc/libcrypt.tex22
-rw-r--r--Doc/libcrypto.tex34
-rw-r--r--Doc/libdbm.tex36
-rw-r--r--Doc/libdis.tex512
-rw-r--r--Doc/liberrno.tex146
-rw-r--r--Doc/libexcs.tex272
-rw-r--r--Doc/libfcntl.tex75
-rw-r--r--Doc/libfileinput.tex124
-rw-r--r--Doc/libfl.tex491
-rw-r--r--Doc/libfm.tex90
-rw-r--r--Doc/libfnmatch.tex40
-rw-r--r--Doc/libformatter.tex323
-rw-r--r--Doc/libframework.tex294
-rw-r--r--Doc/libftplib.tex240
-rw-r--r--Doc/libfuncs.tex635
-rw-r--r--Doc/libgdbm.tex93
-rw-r--r--Doc/libgetopt.tex80
-rw-r--r--Doc/libgl.tex197
-rw-r--r--Doc/libglob.tex35
-rw-r--r--Doc/libgopherlib.tex31
-rw-r--r--Doc/libgrp.tex32
-rw-r--r--Doc/libgzip.tex47
-rw-r--r--Doc/libhtmllib.tex119
-rw-r--r--Doc/libhttplib.tex129
-rw-r--r--Doc/libimageop.tex85
-rw-r--r--Doc/libimaplib.tex241
-rw-r--r--Doc/libimgfile.tex62
-rw-r--r--Doc/libimghdr.tex52
-rw-r--r--Doc/libimp.tex241
-rw-r--r--Doc/libintro.tex48
-rw-r--r--Doc/libjpeg.tex57
-rw-r--r--Doc/libkeyword.tex10
-rw-r--r--Doc/liblocale.tex274
-rw-r--r--Doc/libmailbox.tex39
-rw-r--r--Doc/libmailcap.tex79
-rw-r--r--Doc/libmain.tex6
-rw-r--r--Doc/libmarshal.tex90
-rw-r--r--Doc/libmath.tex122
-rw-r--r--Doc/libmd5.tex64
-rw-r--r--Doc/libmimetools.tex95
-rw-r--r--Doc/libmimify.tex83
-rw-r--r--Doc/libminiae.tex63
-rw-r--r--Doc/libmisc.tex28
-rw-r--r--Doc/libmm.tex29
-rw-r--r--Doc/libmpz.tex89
-rw-r--r--Doc/libni.tex60
-rw-r--r--Doc/libnntplib.tex246
-rw-r--r--Doc/libobjs.tex24
-rw-r--r--Doc/liboperator.tex132
-rw-r--r--Doc/libos.tex110
-rw-r--r--Doc/libpanel.tex68
-rw-r--r--Doc/libparser.tex724
-rw-r--r--Doc/libpdb.tex298
-rw-r--r--Doc/libpickle.tex290
-rw-r--r--Doc/libpopen2.tex71
-rw-r--r--Doc/libpoplib.tex131
-rw-r--r--Doc/libposix.tex509
-rw-r--r--Doc/libposixfile.tex162
-rw-r--r--Doc/libppath.tex145
-rw-r--r--Doc/libpprint.tex172
-rw-r--r--Doc/libprofile.tex767
-rw-r--r--Doc/libpwd.tex32
-rw-r--r--Doc/libpython.tex84
-rw-r--r--Doc/libqueue.tex68
-rw-r--r--Doc/libquopri.tex32
-rw-r--r--Doc/librand.tex28
-rw-r--r--Doc/librandom.tex86
-rw-r--r--Doc/libre.tex634
-rw-r--r--Doc/libregex.tex366
-rw-r--r--Doc/libregsub.tex70
-rw-r--r--Doc/libresource.tex200
-rw-r--r--Doc/librestricted.tex79
-rw-r--r--Doc/librexec.tex221
-rw-r--r--Doc/librfc822.tex165
-rw-r--r--Doc/librgbimg.tex45
-rw-r--r--Doc/librotor.tex104
-rw-r--r--Doc/libselect.tex46
-rw-r--r--Doc/libsgi.tex5
-rw-r--r--Doc/libsgmllib.tex198
-rw-r--r--Doc/libshelve.tex61
-rw-r--r--Doc/libsignal.tex142
-rw-r--r--Doc/libsite.tex85
-rw-r--r--Doc/libsocket.tex380
-rw-r--r--Doc/libsocksvr.tex196
-rw-r--r--Doc/libsomeos.tex39
-rw-r--r--Doc/libsoundex.tex41
-rw-r--r--Doc/libstat.tex110
-rw-r--r--Doc/libstdwin.tex920
-rw-r--r--Doc/libstring.tex242
-rw-r--r--Doc/libstrings.tex30
-rw-r--r--Doc/libstrio.tex42
-rw-r--r--Doc/libstruct.tex140
-rw-r--r--Doc/libsun.tex6
-rw-r--r--Doc/libsunaudio.tex108
-rw-r--r--Doc/libsymbol.tex24
-rw-r--r--Doc/libsys.tex249
-rw-r--r--Doc/libsyslog.tex71
-rw-r--r--Doc/libtempfile.tex49
-rw-r--r--Doc/libtemplate.tex140
-rw-r--r--Doc/libtermios.tex109
-rw-r--r--Doc/libthread.tex127
-rw-r--r--Doc/libtime.tex189
-rw-r--r--Doc/libtoken.tex37
-rw-r--r--Doc/libtraceback.tex55
-rw-r--r--Doc/libtypes.tex863
-rw-r--r--Doc/libtypes2.tex127
-rw-r--r--Doc/libundoc.tex312
-rw-r--r--Doc/libunix.tex58
-rw-r--r--Doc/liburllib.tex132
-rw-r--r--Doc/liburlparse.tex84
-rw-r--r--Doc/libuser.tex66
-rw-r--r--Doc/libuserdict.tex49
-rw-r--r--Doc/libuu.tex35
-rw-r--r--Doc/libwhichdb.tex16
-rw-r--r--Doc/libwhrandom.tex49
-rw-r--r--Doc/libwww.tex99
-rw-r--r--Doc/libxdrlib.tex232
-rw-r--r--Doc/libxmllib.tex223
-rw-r--r--Doc/libzlib.tex114
142 files changed, 0 insertions, 21211 deletions
diff --git a/Doc/lib.tex b/Doc/lib.tex
deleted file mode 100644
index 5ee098e..0000000
--- a/Doc/lib.tex
+++ /dev/null
@@ -1,234 +0,0 @@
-\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
-
-\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 \emph{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 \emph{Python Tutorial}; the
-\emph{Python Reference Manual} remains the highest authority on
-syntactic and semantic questions. Finally, the manual entitled
-\emph{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{libtypes}
-\input{libexcs}
-\input{libfuncs}
-
-\input{libpython} % Python Services
-\input{libsys}
-\input{libtypes2} % types is already taken :-(
-\input{libuserdict}
-\input{liboperator}
-\input{libtraceback}
-\input{libpickle}
-\input{libcopyreg}
-\input{libshelve}
-\input{libcopy}
-\input{libmarshal}
-\input{libimp}
-%\input{libni}
-\input{libparser}
-\input{libsymbol}
-\input{libtoken}
-\input{libkeyword}
-\input{libcode}
-\input{libpprint}
-\input{libdis}
-\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{libstrio}
-%\input{libsoundex}
-
-\input{libmisc} % Miscellaneous Services
-\input{libmath}
-\input{libcmath}
-\input{libwhrandom}
-\input{librandom}
-%\input{librand}
-\input{libbisect}
-\input{libarray}
-\input{libfileinput}
-\input{libcalendar}
-
-\input{liballos} % Generic Operating System Services
-\input{libos}
-\input{libtime}
-\input{libgetopt}
-\input{libtempfile}
-\input{liberrno}
-\input{libglob}
-\input{libfnmatch}
-\input{liblocale}
-
-\input{libsomeos} % Optional Operating System Services
-\input{libsignal}
-\input{libsocket}
-\input{libselect}
-\input{libthread}
-\input{libqueue}
-\input{libanydbm}
-\input{libwhichdb}
-\input{libzlib}
-\input{libgzip}
-
-\input{libunix} % UNIX Specific Services
-\input{libposix}
-\input{libppath} % == posixpath
-\input{libpwd}
-\input{libgrp}
-\input{libcrypt}
-\input{libdbm}
-\input{libgdbm}
-\input{libtermios}
-\input{libfcntl}
-\input{libposixfile}
-\input{libresource}
-\input{libsyslog}
-\input{libstat}
-\input{libpopen2}
-\input{libcommands}
-
-\input{libpdb} % The Python Debugger
-
-\input{libprofile} % The Python Profiler
-
-\input{libwww} % Internet and WWW Services
-\input{libcgi}
-\input{liburllib}
-\input{libhttplib}
-\input{libftplib}
-\input{libgopherlib}
-\input{libpoplib}
-\input{libimaplib}
-\input{libnntplib}
-\input{liburlparse}
-\input{libsgmllib}
-\input{libhtmllib}
-\input{libxmllib}
-\input{libformatter}
-\input{librfc822}
-\input{libmimetools}
-\input{libbinhex}
-\input{libuu}
-\input{libbinascii}
-\input{libxdrlib}
-\input{libmailcap}
-\input{libbase64}
-\input{libquopri}
-\input{libsocksvr}
-\input{libmailbox}
-\input{libmimify}
-\input{libbasehttp}
-
-\input{librestricted}
-\input{librexec}
-\input{libbastion}
-
-\input{libmm} % Multimedia Services
-\input{libaudioop}
-\input{libimageop}
-\input{libaifc}
-\input{libjpeg}
-\input{librgbimg}
-\input{libimghdr}
-
-\input{libcrypto} % Cryptographic Services
-\input{libmd5}
-\input{libmpz}
-\input{librotor}
-
-%\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{libpanel}
-
-\input{libsun} % SUNOS ONLY
-\input{libsunaudio}
-
-\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}
diff --git a/Doc/libaifc.tex b/Doc/libaifc.tex
deleted file mode 100644
index f86b1d8..0000000
--- a/Doc/libaifc.tex
+++ /dev/null
@@ -1,194 +0,0 @@
-\section{Standard Module \module{aifc}}
-\label{module-aifc}
-\stmodindex{aifc}
-
-This module provides support for reading and writing AIFF and AIFF-C
-files. AIFF is Audio Interchange File Format, a format for storing
-digital audio samples in a file. AIFF-C is a newer version of the
-format that includes the ability to compress the audio data.
-\index{Audio Interchange File Format}
-\index{AIFF}
-\index{AIFF-C}
-
-Audio files have a number of parameters that describe the audio data.
-The sampling rate or frame rate is the number of times per second the
-sound is sampled. The number of channels indicate if the audio is
-mono, stereo, or quadro. Each frame consists of one sample per
-channel. The sample size is the size in bytes of each sample. Thus a
-frame consists of \var{nchannels}*\var{samplesize} bytes, and a
-second's worth of audio consists of
-\var{nchannels}*\var{samplesize}*\var{framerate} bytes.
-
-For example, CD quality audio has a sample size of two bytes (16
-bits), uses two channels (stereo) and has a frame rate of 44,100
-frames/second. This gives a frame size of 4 bytes (2*2), and a
-second's worth occupies 2*2*44100 bytes, i.e.\ 176,400 bytes.
-
-Module \module{aifc} defines the following function:
-
-\begin{funcdesc}{open}{file, mode}
-Open an AIFF or AIFF-C file and return an object instance with
-methods that are described below. The argument file is either a
-string naming a file or a file object. The mode is either the string
-\code{'r'} when the file must be opened for reading, or \code{'w'}
-when the file must be opened for writing. When used for writing, the
-file object should be seekable, unless you know ahead of time how many
-samples you are going to write in total and use
-\method{writeframesraw()} and \method{setnframes()}.
-\end{funcdesc}
-
-Objects returned by \function{open()} when a file is opened for
-reading have the following methods:
-
-\begin{methoddesc}[aifc]{getnchannels}{}
-Return the number of audio channels (1 for mono, 2 for stereo).
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{getsampwidth}{}
-Return the size in bytes of individual samples.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{getframerate}{}
-Return the sampling rate (number of audio frames per second).
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{getnframes}{}
-Return the number of audio frames in the file.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{getcomptype}{}
-Return a four-character string describing the type of compression used
-in the audio file. For AIFF files, the returned value is
-\code{'NONE'}.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{getcompname}{}
-Return a human-readable description of the type of compression used in
-the audio file. For AIFF files, the returned value is \code{'not
-compressed'}.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{getparams}{}
-Return a tuple consisting of all of the above values in the above
-order.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{getmarkers}{}
-Return a list of markers in the audio file. A marker consists of a
-tuple of three elements. The first is the mark ID (an integer), the
-second is the mark position in frames from the beginning of the data
-(an integer), the third is the name of the mark (a string).
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{getmark}{id}
-Return the tuple as described in \method{getmarkers()} for the mark
-with the given \var{id}.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{readframes}{nframes}
-Read and return the next \var{nframes} frames from the audio file. The
-returned data is a string containing for each frame the uncompressed
-samples of all channels.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{rewind}{}
-Rewind the read pointer. The next \method{readframes()} will start from
-the beginning.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{setpos}{pos}
-Seek to the specified frame number.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{tell}{}
-Return the current frame number.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{close}{}
-Close the AIFF file. After calling this method, the object can no
-longer be used.
-\end{methoddesc}
-
-Objects returned by \function{open()} when a file is opened for
-writing have all the above methods, except for \method{readframes()} and
-\method{setpos()}. In addition the following methods exist. The
-\method{get*()} methods can only be called after the corresponding
-\method{set*()} methods have been called. Before the first
-\method{writeframes()} or \method{writeframesraw()}, all parameters
-except for the number of frames must be filled in.
-
-\begin{methoddesc}[aifc]{aiff}{}
-Create an AIFF file. The default is that an AIFF-C file is created,
-unless the name of the file ends in \code{'.aiff'} in which case the
-default is an AIFF file.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{aifc}{}
-Create an AIFF-C file. The default is that an AIFF-C file is created,
-unless the name of the file ends in \code{'.aiff'} in which case the
-default is an AIFF file.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{setnchannels}{nchannels}
-Specify the number of channels in the audio file.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{setsampwidth}{width}
-Specify the size in bytes of audio samples.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{setframerate}{rate}
-Specify the sampling frequency in frames per second.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{setnframes}{nframes}
-Specify the number of frames that are to be written to the audio file.
-If this parameter is not set, or not set correctly, the file needs to
-support seeking.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{setcomptype}{type, name}
-Specify the compression type. If not specified, the audio data will
-not be compressed. In AIFF files, compression is not possible. The
-name parameter should be a human-readable description of the
-compression type, the type parameter should be a four-character
-string. Currently the following compression types are supported:
-NONE, ULAW, ALAW, G722.
-\index{u-LAW}
-\index{A-LAW}
-\index{G.722}
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{setparams}{nchannels, sampwidth, framerate, comptype, compname}
-Set all the above parameters at once. The argument is a tuple
-consisting of the various parameters. This means that it is possible
-to use the result of a \method{getparams()} call as argument to
-\method{setparams()}.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{setmark}{id, pos, name}
-Add a mark with the given id (larger than 0), and the given name at
-the given position. This method can be called at any time before
-\method{close()}.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{tell}{}
-Return the current write position in the output file. Useful in
-combination with \method{setmark()}.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{writeframes}{data}
-Write data to the output file. This method can only be called after
-the audio file parameters have been set.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{writeframesraw}{data}
-Like \method{writeframes()}, except that the header of the audio file
-is not updated.
-\end{methoddesc}
-
-\begin{methoddesc}[aifc]{close}{}
-Close the AIFF file. The header of the file is updated to reflect the
-actual size of the audio data. After calling this method, the object
-can no longer be used.
-\end{methoddesc}
diff --git a/Doc/libal.tex b/Doc/libal.tex
deleted file mode 100644
index ed675a9..0000000
--- a/Doc/libal.tex
+++ /dev/null
@@ -1,175 +0,0 @@
-\section{Built-in Module \module{al}}
-\label{module-al}
-\bimodindex{al}
-
-This module provides access to the audio facilities of the SGI Indy
-and Indigo workstations. See section 3A of the IRIX man pages for
-details. You'll need to read those man pages to understand what these
-functions do! Some of the functions are not available in IRIX
-releases before 4.0.5. Again, see the manual to check whether a
-specific function is available on your platform.
-
-All functions and methods defined in this module are equivalent to
-the \C{} functions with \samp{AL} prefixed to their name.
-
-Symbolic constants from the \C{} header file \code{<audio.h>} are
-defined in the standard module \module{AL}\refstmodindex{AL}, see
-below.
-
-\strong{Warning:} the current version of the audio library may dump core
-when bad argument values are passed rather than returning an error
-status. Unfortunately, since the precise circumstances under which
-this may happen are undocumented and hard to check, the Python
-interface can provide no protection against this kind of problems.
-(One example is specifying an excessive queue size --- there is no
-documented upper limit.)
-
-The module defines the following functions:
-
-
-\begin{funcdesc}{openport}{name, direction\optional{, config}}
-The name and direction arguments are strings. The optional
-\var{config} argument is a configuration object as returned by
-\function{newconfig()}. The return value is an \dfn{audio port
-object}; methods of audio port objects are described below.
-\end{funcdesc}
-
-\begin{funcdesc}{newconfig}{}
-The return value is a new \dfn{audio configuration object}; methods of
-audio configuration objects are described below.
-\end{funcdesc}
-
-\begin{funcdesc}{queryparams}{device}
-The device argument is an integer. The return value is a list of
-integers containing the data returned by \cfunction{ALqueryparams()}.
-\end{funcdesc}
-
-\begin{funcdesc}{getparams}{device, list}
-The \var{device} argument is an integer. The list argument is a list
-such as returned by \function{queryparams()}; it is modified in place
-(!).
-\end{funcdesc}
-
-\begin{funcdesc}{setparams}{device, list}
-The \var{device} argument is an integer. The \var{list} argument is a
-list such as returned by \function{queryparams()}.
-\end{funcdesc}
-
-
-\subsection{Configuration Objects}
-\label{al-config-objects}
-
-Configuration objects (returned by \function{newconfig()} have the
-following methods:
-
-\begin{methoddesc}[audio configuration]{getqueuesize}{}
-Return the queue size.
-\end{methoddesc}
-
-\begin{methoddesc}[audio configuration]{setqueuesize}{size}
-Set the queue size.
-\end{methoddesc}
-
-\begin{methoddesc}[audio configuration]{getwidth}{}
-Get the sample width.
-\end{methoddesc}
-
-\begin{methoddesc}[audio configuration]{setwidth}{width}
-Set the sample width.
-\end{methoddesc}
-
-\begin{methoddesc}[audio configuration]{getchannels}{}
-Get the channel count.
-\end{methoddesc}
-
-\begin{methoddesc}[audio configuration]{setchannels}{nchannels}
-Set the channel count.
-\end{methoddesc}
-
-\begin{methoddesc}[audio configuration]{getsampfmt}{}
-Get the sample format.
-\end{methoddesc}
-
-\begin{methoddesc}[audio configuration]{setsampfmt}{sampfmt}
-Set the sample format.
-\end{methoddesc}
-
-\begin{methoddesc}[audio configuration]{getfloatmax}{}
-Get the maximum value for floating sample formats.
-\end{methoddesc}
-
-\begin{methoddesc}[audio configuration]{setfloatmax}{floatmax}
-Set the maximum value for floating sample formats.
-\end{methoddesc}
-
-
-\subsection{Port Objects}
-\label{al-port-objects}
-
-Port objects, as returned by \function{openport()}, have the following
-methods:
-
-\begin{methoddesc}[audio port]{closeport}{}
-Close the port.
-\end{methoddesc}
-
-\begin{methoddesc}[audio port]{getfd}{}
-Return the file descriptor as an int.
-\end{methoddesc}
-
-\begin{methoddesc}[audio port]{getfilled}{}
-Return the number of filled samples.
-\end{methoddesc}
-
-\begin{methoddesc}[audio port]{getfillable}{}
-Return the number of fillable samples.
-\end{methoddesc}
-
-\begin{methoddesc}[audio port]{readsamps}{nsamples}
-Read a number of samples from the queue, blocking if necessary.
-Return the data as a string containing the raw data, (e.g., 2 bytes per
-sample in big-endian byte order (high byte, low byte) if you have set
-the sample width to 2 bytes).
-\end{methoddesc}
-
-\begin{methoddesc}[audio port]{writesamps}{samples}
-Write samples into the queue, blocking if necessary. The samples are
-encoded as described for the \method{readsamps()} return value.
-\end{methoddesc}
-
-\begin{methoddesc}[audio port]{getfillpoint}{}
-Return the `fill point'.
-\end{methoddesc}
-
-\begin{methoddesc}[audio port]{setfillpoint}{fillpoint}
-Set the `fill point'.
-\end{methoddesc}
-
-\begin{methoddesc}[audio port]{getconfig}{}
-Return a configuration object containing the current configuration of
-the port.
-\end{methoddesc}
-
-\begin{methoddesc}[audio port]{setconfig}{config}
-Set the configuration from the argument, a configuration object.
-\end{methoddesc}
-
-\begin{methoddesc}[audio port]{getstatus}{list}
-Get status information on last error.
-\end{methoddesc}
-
-
-\section{Standard Module \module{AL}}
-\nodename{AL (uppercase)}
-\stmodindex{AL}
-
-This module defines symbolic constants needed to use the built-in
-module \module{al} (see above); they are equivalent to those defined
-in the \C{} header file \code{<audio.h>} except that the name prefix
-\samp{AL_} is omitted. Read the module source for a complete list of
-the defined names. Suggested use:
-
-\begin{verbatim}
-import al
-from AL import *
-\end{verbatim}
diff --git a/Doc/liballos.tex b/Doc/liballos.tex
deleted file mode 100644
index fca7567..0000000
--- a/Doc/liballos.tex
+++ /dev/null
@@ -1,36 +0,0 @@
-\chapter{Generic Operating System Services}
-\label{allos}
-
-The modules described in this chapter provide interfaces to operating
-system features that are available on (almost) all operating systems,
-such as files and a clock. The interfaces are generally modelled
-after the \UNIX{} or \C{} interfaces but they are available on most
-other systems as well. Here's an overview:
-
-\begin{description}
-
-\item[os]
---- Miscellaneous OS interfaces.
-
-\item[time]
---- Time access and conversions.
-
-\item[getopt]
---- Parser for command line options.
-
-\item[tempfile]
---- Generate temporary file names.
-
-\item[errno]
---- Standard errno system symbols.
-
-\item[glob]
---- \UNIX{} shell style pathname pattern expansion.
-
-\item[fnmatch]
---- \UNIX{} shell style pathname pattern matching.
-
-\item[locale]
---- Internationalization services.
-
-\end{description}
diff --git a/Doc/libamoeba.tex b/Doc/libamoeba.tex
deleted file mode 100644
index 0d3df2b..0000000
--- a/Doc/libamoeba.tex
+++ /dev/null
@@ -1,128 +0,0 @@
-\chapter{Amoeba Specific Services}
-
-\section{Built-in Module \module{amoeba}}
-\label{module-amoeba}
-\bimodindex{amoeba}
-
-This module provides some object types and operations useful for
-Amoeba applications. It is only available on systems that support
-Amoeba operations. RPC errors and other Amoeba errors are reported as
-the exception \code{amoeba.error = 'amoeba.error'}.
-
-The module \code{amoeba} defines the following items:
-
-\begin{funcdesc}{name_append}{path, cap}
-Stores a capability in the Amoeba directory tree.
-Arguments are the pathname (a string) and the capability (a capability
-object as returned by
-\code{name_lookup()}).
-\end{funcdesc}
-
-\begin{funcdesc}{name_delete}{path}
-Deletes a capability from the Amoeba directory tree.
-Argument is the pathname.
-\end{funcdesc}
-
-\begin{funcdesc}{name_lookup}{path}
-Looks up a capability.
-Argument is the pathname.
-Returns a
-\dfn{capability}
-object, to which various interesting operations apply, described below.
-\end{funcdesc}
-
-\begin{funcdesc}{name_replace}{path, cap}
-Replaces a capability in the Amoeba directory tree.
-Arguments are the pathname and the new capability.
-(This differs from
-\code{name_append()}
-in the behavior when the pathname already exists:
-\code{name_append()}
-finds this an error while
-\code{name_replace()}
-allows it, as its name suggests.)
-\end{funcdesc}
-
-\begin{datadesc}{capv}
-A table representing the capability environment at the time the
-interpreter was started.
-(Alas, modifying this table does not affect the capability environment
-of the interpreter.)
-For example,
-\code{amoeba.capv['ROOT']}
-is the capability of your root directory, similar to
-\code{getcap("ROOT")}
-in C.
-\end{datadesc}
-
-\begin{excdesc}{error}
-The exception raised when an Amoeba function returns an error.
-The value accompanying this exception is a pair containing the numeric
-error code and the corresponding string, as returned by the C function
-\code{err_why()}.
-\end{excdesc}
-
-\begin{funcdesc}{timeout}{msecs}
-Sets the transaction timeout, in milliseconds.
-Returns the previous timeout.
-Initially, the timeout is set to 2 seconds by the Python interpreter.
-\end{funcdesc}
-
-\subsection{Capability Operations}
-
-Capabilities are written in a convenient \ASCII{} format, also used by the
-Amoeba utilities
-\emph{c2a}(U)
-and
-\emph{a2c}(U).
-For example:
-
-\begin{verbatim}
->>> amoeba.name_lookup('/profile/cap')
-aa:1c:95:52:6a:fa/14(ff)/8e:ba:5b:8:11:1a
->>>
-\end{verbatim}
-%
-The following methods are defined for capability objects.
-
-\setindexsubitem{(capability method)}
-\begin{funcdesc}{dir_list}{}
-Returns a list of the names of the entries in an Amoeba directory.
-\end{funcdesc}
-
-\begin{funcdesc}{b_read}{offset, maxsize}
-Reads (at most)
-\var{maxsize}
-bytes from a bullet file at offset
-\var{offset.}
-The data is returned as a string.
-EOF is reported as an empty string.
-\end{funcdesc}
-
-\begin{funcdesc}{b_size}{}
-Returns the size of a bullet file.
-\end{funcdesc}
-
-\begin{funcdesc}{dir_append}{}
-\funcline{dir_delete}{}\
-\funcline{dir_lookup}{}\
-\funcline{dir_replace}{}
-Like the corresponding
-\samp{name_}*
-functions, but with a path relative to the capability.
-(For paths beginning with a slash the capability is ignored, since this
-is the defined semantics for Amoeba.)
-\end{funcdesc}
-
-\begin{funcdesc}{std_info}{}
-Returns the standard info string of the object.
-\end{funcdesc}
-
-\begin{funcdesc}{tod_gettime}{}
-Returns the time (in seconds since the Epoch, in UCT, as for \POSIX{}) from
-a time server.
-\end{funcdesc}
-
-\begin{funcdesc}{tod_settime}{t}
-Sets the time kept by a time server.
-\end{funcdesc}
diff --git a/Doc/libanydbm.tex b/Doc/libanydbm.tex
deleted file mode 100644
index bba7714..0000000
--- a/Doc/libanydbm.tex
+++ /dev/null
@@ -1,71 +0,0 @@
-\section{Standard Module \module{anydbm}}
-\label{module-anydbm}
-\stmodindex{anydbm}
-
-\module{anydbm} is a generic interface to variants of the DBM
-database --- \module{dbhash}\refbimodindex{dbhash},
-\module{gdbm}\refbimodindex{gdbm}, or \module{dbm}\refbimodindex{dbm}.
-If none of these modules is installed, the slow-but-simple
-implementation in module \module{dumbdbm}\refstmodindex{dumbdbm} will
-be used.
-
-\begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}}
-Open the database file \var{filename} and return a corresponding object.
-
-If the database file already exists, the \module{whichdb} module is
-used to determine its type and the appropriate module is used; if it
-doesn't exist, the first module listed above that can be imported is
-used.
-
-The optional \var{flag} argument can be
-\code{'r'} to open an existing database for reading only,
-\code{'w'} to open an existing database for reading and writing,
-\code{'c'} to create the database if it doesn't exist, or
-\code{'n'}, which will always create a new empty database. If not
-specified, the default value is \code{'r'}.
-
-The optional \var{mode} argument is the \UNIX{} mode of the file, used
-only when the database has to be created. It defaults to octal
-\code{0666} (and will be modified by the prevailing umask).
-\end{funcdesc}
-
-\begin{excdesc}{error}
-A tuple containing the exceptions that can be raised by each of the
-supported modules, with a unique exception \exception{anydbm.error} as
-the first item --- the latter is used when \exception{anydbm.error} is
-raised.
-\end{excdesc}
-
-The object returned by \function{open()} supports most of the same
-functionality as dictionaries; keys and their corresponding values can
-be stored, retrieved, and deleted, and the \method{has_key()} and
-\method{keys()} methods are available. Keys and values must always be
-strings.
-
-
-
-\section{Standard Module \module{dumbdbm}}
-\label{module-dumbdbm}
-\stmodindex{dumbdbm}
-
-A simple and slow database implemented entirely in Python. This
-should only be used when no other DBM-style database is available.
-
-
-\begin{funcdesc}{open}{filename\optional{, flag\optional{, mode}}}
-Open the database file \var{filename} and return a corresponding object.
-The optional \var{flag} argument can be
-\code{'r'} to open an existing database for reading only,
-\code{'w'} to open an existing database for reading and writing,
-\code{'c'} to create the database if it doesn't exist, or
-\code{'n'}, which will always create a new empty database. If not
-specified, the default value is \code{'r'}.
-
-The optional \var{mode} argument is the \UNIX{} mode of the file, used
-only when the database has to be created. It defaults to octal
-\code{0666} (and will be modified by the prevailing umask).
-\end{funcdesc}
-
-\begin{excdesc}{error}
-Raised for errors not reported as \exception{KeyError} errors.
-\end{excdesc}
diff --git a/Doc/libarray.tex b/Doc/libarray.tex
deleted file mode 100644
index 180be34..0000000
--- a/Doc/libarray.tex
+++ /dev/null
@@ -1,161 +0,0 @@
-\section{Built-in Module \module{array}}
-\label{module-array}
-\bimodindex{array}
-\index{arrays}
-
-This module defines a new object type which can efficiently represent
-an array of basic values: characters, integers, floating point
-numbers. Arrays are sequence types and behave very much like lists,
-except that the type of objects stored in them is constrained. The
-type is specified at object creation time by using a \dfn{type code},
-which is a single character. The following type codes are defined:
-
-\begin{tableiii}{c|l|c}{code}{Type code}{C Type}{Minimum size in bytes}
-\lineiii{'c'}{character}{1}
-\lineiii{'b'}{signed integer}{1}
-\lineiii{'B'}{unsigned integer}{1}
-\lineiii{'h'}{signed integer}{2}
-\lineiii{'H'}{unsigned integer}{2}
-\lineiii{'i'}{signed integer}{2}
-\lineiii{'I'}{unsigned integer}{2}
-\lineiii{'l'}{signed integer}{4}
-\lineiii{'L'}{unsigned integer}{4}
-\lineiii{'f'}{floating point}{4}
-\lineiii{'d'}{floating point}{8}
-\end{tableiii}
-
-The actual representation of values is determined by the machine
-architecture (strictly speaking, by the \C{} implementation). The actual
-size can be accessed through the \var{itemsize} attribute. The values
-stored for \code{'L'} and \code{'I'} items will be represented as
-Python long integers when retrieved, because Python's plain integer
-type cannot represent the full range of \C{}'s unsigned (long) integers.
-
-
-The module defines the following function and type object:
-
-\begin{funcdesc}{array}{typecode\optional{, initializer}}
-Return a new array whose items are restricted by \var{typecode}, and
-initialized from the optional \var{initializer} value, which must be a
-list or a string. The list or string is passed to the new array's
-\method{fromlist()} or \method{fromstring()} method (see below) to add
-initial items to the array.
-\end{funcdesc}
-
-\begin{datadesc}{ArrayType}
-Type object corresponding to the objects returned by
-\function{array()}.
-\end{datadesc}
-
-
-Array objects support the following data items and methods:
-
-\begin{memberdesc}[array]{typecode}
-The typecode character used to create the array.
-\end{memberdesc}
-
-\begin{memberdesc}[array]{itemsize}
-The length in bytes of one array item in the internal representation.
-\end{memberdesc}
-
-
-\begin{methoddesc}[array]{append}{x}
-Append a new item with value \var{x} to the end of the array.
-\end{methoddesc}
-
-\begin{methoddesc}[array]{buffer_info}{}
-Return a tuple \code{(\var{address}, \var{length})} giving the current
-memory address and the length in bytes of the buffer used to hold
-array's contents. This is occasionally useful when working with
-low-level (and inherently unsafe) I/O interfaces that require memory
-addresses, such as certain \cfunction{ioctl()} operations. The returned
-numbers are valid as long as the array exists and no length-changing
-operations are applied to it.
-\end{methoddesc}
-
-\begin{methoddesc}[array]{byteswap}{x}
-``Byteswap'' all items of the array. This is only supported for
-integer values. It is useful when reading data from a file written
-on a machine with a different byte order.
-\end{methoddesc}
-
-\begin{methoddesc}[array]{fromfile}{f, n}
-Read \var{n} items (as machine values) from the file object \var{f}
-and append them to the end of the array. If less than \var{n} items
-are available, \exception{EOFError} is raised, but the items that were
-available are still inserted into the array. \var{f} must be a real
-built-in file object; something else with a \method{read()} method won't
-do.
-\end{methoddesc}
-
-\begin{methoddesc}[array]{fromlist}{list}
-Append items from the list. This is equivalent to
-\samp{for x in \var{list}:\ a.append(x)}
-except that if there is a type error, the array is unchanged.
-\end{methoddesc}
-
-\begin{methoddesc}[array]{fromstring}{s}
-Appends items from the string, interpreting the string as an
-array of machine values (i.e. as if it had been read from a
-file using the \method{fromfile()} method).
-\end{methoddesc}
-
-\begin{methoddesc}[array]{insert}{i, x}
-Insert a new item with value \var{x} in the array before position
-\var{i}.
-\end{methoddesc}
-
-\begin{methoddesc}[array]{read}{f, n}
-\deprecated {1.5.1}
- {Use the \method{fromfile()} method.}
-Read \var{n} items (as machine values) from the file object \var{f}
-and append them to the end of the array. If less than \var{n} items
-are available, \exception{EOFError} is raised, but the items that were
-available are still inserted into the array. \var{f} must be a real
-built-in file object; something else with a \method{read()} method won't
-do.
-\end{methoddesc}
-
-\begin{methoddesc}[array]{reverse}{}
-Reverse the order of the items in the array.
-\end{methoddesc}
-
-\begin{methoddesc}[array]{tofile}{f}
-Write all items (as machine values) to the file object \var{f}.
-\end{methoddesc}
-
-\begin{methoddesc}[array]{tolist}{}
-Convert the array to an ordinary list with the same items.
-\end{methoddesc}
-
-\begin{methoddesc}[array]{tostring}{}
-Convert the array to an array of machine values and return the
-string representation (the same sequence of bytes that would
-be written to a file by the \method{tofile()} method.)
-\end{methoddesc}
-
-\begin{methoddesc}[array]{write}{f}
-\deprecated {1.5.1}
- {Use the \method{tofile()} method.}
-Write all items (as machine values) to the file object \var{f}.
-\end{methoddesc}
-
-When an array object is printed or converted to a string, it is
-represented as \code{array(\var{typecode}, \var{initializer})}. The
-\var{initializer} is omitted if the array is empty, otherwise it is a
-string if the \var{typecode} is \code{'c'}, otherwise it is a list of
-numbers. The string is guaranteed to be able to be converted back to
-an array with the same type and value using reverse quotes
-(\code{``}). Examples:
-
-\begin{verbatim}
-array('l')
-array('c', 'hello world')
-array('l', [1, 2, 3, 4, 5])
-array('d', [1.0, 2.0, 3.14])
-\end{verbatim}
-
-
-\begin{seealso}
-\seemodule{struct}{Packing and unpacking of heterogeneous binary data.}
-\end{seealso}
diff --git a/Doc/libaudioop.tex b/Doc/libaudioop.tex
deleted file mode 100644
index ff76e72..0000000
--- a/Doc/libaudioop.tex
+++ /dev/null
@@ -1,257 +0,0 @@
-\section{Built-in Module \module{audioop}}
-\label{module-audioop}
-\bimodindex{audioop}
-
-The \module{audioop} module contains some useful operations on sound
-fragments. It operates on sound fragments consisting of signed
-integer samples 8, 16 or 32 bits wide, stored in Python strings. This
-is the same format as used by the \module{al} and \module{sunaudiodev}
-modules. All scalar items are integers, unless specified otherwise.
-
-% This para is mostly here to provide an excuse for the index entries...
-This module provides support for u-LAW and Intel/DVI ADPCM encodings.
-\index{Intel/DVI ADPCM}
-\index{ADPCM, Intel/DVI}
-\index{u-LAW}
-
-A few of the more complicated operations only take 16-bit samples,
-otherwise the sample size (in bytes) is always a parameter of the
-operation.
-
-The module defines the following variables and functions:
-
-\begin{excdesc}{error}
-This exception is raised on all errors, such as unknown number of bytes
-per sample, etc.
-\end{excdesc}
-
-\begin{funcdesc}{add}{fragment1, fragment2, width}
-Return a fragment which is the addition of the two samples passed as
-parameters. \var{width} is the sample width in bytes, either
-\code{1}, \code{2} or \code{4}. Both fragments should have the same
-length.
-\end{funcdesc}
-
-\begin{funcdesc}{adpcm2lin}{adpcmfragment, width, state}
-Decode an Intel/DVI ADPCM coded fragment to a linear fragment. See
-the description of \function{lin2adpcm()} for details on ADPCM coding.
-Return a tuple \code{(\var{sample}, \var{newstate})} where the sample
-has the width specified in \var{width}.
-\end{funcdesc}
-
-\begin{funcdesc}{adpcm32lin}{adpcmfragment, width, state}
-Decode an alternative 3-bit ADPCM code. See \function{lin2adpcm3()}
-for details.
-\end{funcdesc}
-
-\begin{funcdesc}{avg}{fragment, width}
-Return the average over all samples in the fragment.
-\end{funcdesc}
-
-\begin{funcdesc}{avgpp}{fragment, width}
-Return the average peak-peak value over all samples in the fragment.
-No filtering is done, so the usefulness of this routine is
-questionable.
-\end{funcdesc}
-
-\begin{funcdesc}{bias}{fragment, width, bias}
-Return a fragment that is the original fragment with a bias added to
-each sample.
-\end{funcdesc}
-
-\begin{funcdesc}{cross}{fragment, width}
-Return the number of zero crossings in the fragment passed as an
-argument.
-\end{funcdesc}
-
-\begin{funcdesc}{findfactor}{fragment, reference}
-Return a factor \var{F} such that
-\code{rms(add(\var{fragment}, mul(\var{reference}, -\var{F})))} is
-minimal, i.e., return the factor with which you should multiply
-\var{reference} to make it match as well as possible to
-\var{fragment}. The fragments should both contain 2-byte samples.
-
-The time taken by this routine is proportional to
-\code{len(\var{fragment})}.
-\end{funcdesc}
-
-\begin{funcdesc}{findfit}{fragment, reference}
-Try to match \var{reference} as well as possible to a portion of
-\var{fragment} (which should be the longer fragment). This is
-(conceptually) done by taking slices out of \var{fragment}, using
-\function{findfactor()} to compute the best match, and minimizing the
-result. The fragments should both contain 2-byte samples. Return a
-tuple \code{(\var{offset}, \var{factor})} where \var{offset} is the
-(integer) offset into \var{fragment} where the optimal match started
-and \var{factor} is the (floating-point) factor as per
-\function{findfactor()}.
-\end{funcdesc}
-
-\begin{funcdesc}{findmax}{fragment, length}
-Search \var{fragment} for a slice of length \var{length} samples (not
-bytes!)\ with maximum energy, i.e., return \var{i} for which
-\code{rms(fragment[i*2:(i+length)*2])} is maximal. The fragments
-should both contain 2-byte samples.
-
-The routine takes time proportional to \code{len(\var{fragment})}.
-\end{funcdesc}
-
-\begin{funcdesc}{getsample}{fragment, width, index}
-Return the value of sample \var{index} from the fragment.
-\end{funcdesc}
-
-\begin{funcdesc}{lin2lin}{fragment, width, newwidth}
-Convert samples between 1-, 2- and 4-byte formats.
-\end{funcdesc}
-
-\begin{funcdesc}{lin2adpcm}{fragment, width, state}
-Convert samples to 4 bit Intel/DVI ADPCM encoding. ADPCM coding is an
-adaptive coding scheme, whereby each 4 bit number is the difference
-between one sample and the next, divided by a (varying) step. The
-Intel/DVI ADPCM algorithm has been selected for use by the IMA, so it
-may well become a standard.
-
-\var{state} is a tuple containing the state of the coder. The coder
-returns a tuple \code{(\var{adpcmfrag}, \var{newstate})}, and the
-\var{newstate} should be passed to the next call of
-\function{lin2adpcm()}. In the initial call, \code{None} can be
-passed as the state. \var{adpcmfrag} is the ADPCM coded fragment
-packed 2 4-bit values per byte.
-\end{funcdesc}
-
-\begin{funcdesc}{lin2adpcm3}{fragment, width, state}
-This is an alternative ADPCM coder that uses only 3 bits per sample.
-It is not compatible with the Intel/DVI ADPCM coder and its output is
-not packed (due to laziness on the side of the author). Its use is
-discouraged.
-\end{funcdesc}
-
-\begin{funcdesc}{lin2ulaw}{fragment, width}
-Convert samples in the audio fragment to u-LAW encoding and return
-this as a Python string. u-LAW is an audio encoding format whereby
-you get a dynamic range of about 14 bits using only 8 bit samples. It
-is used by the Sun audio hardware, among others.
-\end{funcdesc}
-
-\begin{funcdesc}{minmax}{fragment, width}
-Return a tuple consisting of the minimum and maximum values of all
-samples in the sound fragment.
-\end{funcdesc}
-
-\begin{funcdesc}{max}{fragment, width}
-Return the maximum of the \emph{absolute value} of all samples in a
-fragment.
-\end{funcdesc}
-
-\begin{funcdesc}{maxpp}{fragment, width}
-Return the maximum peak-peak value in the sound fragment.
-\end{funcdesc}
-
-\begin{funcdesc}{mul}{fragment, width, factor}
-Return a fragment that has all samples in the original framgent
-multiplied by the floating-point value \var{factor}. Overflow is
-silently ignored.
-\end{funcdesc}
-
-\begin{funcdesc}{ratecv}{fragment, width, nchannels, inrate, outrate,
- state\optional{, weightA\optional{, weightB}}}
-Convert the frame rate of the input fragment.
-
-\var{state} is a tuple containing the state of the converter. The
-converter returns a tupl \code{(\var{newfragment}, \var{newstate})},
-and \var{newstate} should be passed to the next call of
-\function{ratecv()}.
-
-The \var{weightA} and \var{weightB} arguments are parameters for a
-simple digital filter and default to \code{1} and \code{0}
-respectively.
-\end{funcdesc}
-
-\begin{funcdesc}{reverse}{fragment, width}
-Reverse the samples in a fragment and returns the modified fragment.
-\end{funcdesc}
-
-\begin{funcdesc}{rms}{fragment, width}
-Return the root-mean-square of the fragment, i.e.
-the square root of the quotient of the sum of all squared sample value,
-divided by the sumber of samples.
-%begin{latexonly}
-% in eqn: sqrt { sum S sub i sup 2 over n }
-\begin{displaymath}
-\catcode`_=8
-\sqrt{\frac{\sum{{S_{i}}^{2}}}{n}}
-\end{displaymath}
-%end{latexonly}
-This is a measure of the power in an audio signal.
-\end{funcdesc}
-
-\begin{funcdesc}{tomono}{fragment, width, lfactor, rfactor}
-Convert a stereo fragment to a mono fragment. The left channel is
-multiplied by \var{lfactor} and the right channel by \var{rfactor}
-before adding the two channels to give a mono signal.
-\end{funcdesc}
-
-\begin{funcdesc}{tostereo}{fragment, width, lfactor, rfactor}
-Generate a stereo fragment from a mono fragment. Each pair of samples
-in the stereo fragment are computed from the mono sample, whereby left
-channel samples are multiplied by \var{lfactor} and right channel
-samples by \var{rfactor}.
-\end{funcdesc}
-
-\begin{funcdesc}{ulaw2lin}{fragment, width}
-Convert sound fragments in u-LAW encoding to linearly encoded sound
-fragments. u-LAW encoding always uses 8 bits samples, so \var{width}
-refers only to the sample width of the output fragment here.
-\end{funcdesc}
-
-Note that operations such as \function{mul()} or \function{max()} make
-no distinction between mono and stereo fragments, i.e.\ all samples
-are treated equal. If this is a problem the stereo fragment should be
-split into two mono fragments first and recombined later. Here is an
-example of how to do that:
-
-\begin{verbatim}
-def mul_stereo(sample, width, lfactor, rfactor):
- lsample = audioop.tomono(sample, width, 1, 0)
- rsample = audioop.tomono(sample, width, 0, 1)
- lsample = audioop.mul(sample, width, lfactor)
- rsample = audioop.mul(sample, width, rfactor)
- lsample = audioop.tostereo(lsample, width, 1, 0)
- rsample = audioop.tostereo(rsample, width, 0, 1)
- return audioop.add(lsample, rsample, width)
-\end{verbatim}
-
-If you use the ADPCM coder to build network packets and you want your
-protocol to be stateless (i.e.\ to be able to tolerate packet loss)
-you should not only transmit the data but also the state. Note that
-you should send the \var{initial} state (the one you passed to
-\function{lin2adpcm()}) along to the decoder, not the final state (as
-returned by the coder). If you want to use \function{struct.struct()}
-to store the state in binary you can code the first element (the
-predicted value) in 16 bits and the second (the delta index) in 8.
-
-The ADPCM coders have never been tried against other ADPCM coders,
-only against themselves. It could well be that I misinterpreted the
-standards in which case they will not be interoperable with the
-respective standards.
-
-The \function{find*()} routines might look a bit funny at first sight.
-They are primarily meant to do echo cancellation. A reasonably
-fast way to do this is to pick the most energetic piece of the output
-sample, locate that in the input sample and subtract the whole output
-sample from the input sample:
-
-\begin{verbatim}
-def echocancel(outputdata, inputdata):
- pos = audioop.findmax(outputdata, 800) # one tenth second
- out_test = outputdata[pos*2:]
- in_test = inputdata[pos*2:]
- ipos, factor = audioop.findfit(in_test, out_test)
- # Optional (for better cancellation):
- # factor = audioop.findfactor(in_test[ipos*2:ipos*2+len(out_test)],
- # out_test)
- prefill = '\0'*(pos+ipos)*2
- postfill = '\0'*(len(inputdata)-len(prefill)-len(outputdata))
- outputdata = prefill + audioop.mul(outputdata,2,-factor) + postfill
- return audioop.add(inputdata, outputdata, 2)
-\end{verbatim}
diff --git a/Doc/libbase64.tex b/Doc/libbase64.tex
deleted file mode 100644
index dca25d0..0000000
--- a/Doc/libbase64.tex
+++ /dev/null
@@ -1,45 +0,0 @@
-\section{Standard Module \module{base64}}
-\label{module-base64}
-\stmodindex{base64}
-\indexii{base64}{encoding}
-\index{MIME!base64 encoding}
-
-This module perform base64 encoding and decoding of arbitrary binary
-strings into text strings that can be safely emailed or posted. The
-encoding scheme is defined in \rfc{1421} (``Privacy Enhancement for
-Internet Electronic Mail: Part I: Message Encryption and
-Authentication Procedures'', section 4.3.2.4, ``Step 4: Printable
-Encoding'') and is used for MIME email and
-various other Internet-related applications; it is not the same as the
-output produced by the \program{uuencode} program. For example, the
-string \code{'www.python.org'} is encoded as the string
-\code{'d3d3LnB5dGhvbi5vcmc=\e n'}.
-
-
-\begin{funcdesc}{decode}{input, output}
-Decode the contents of the \var{input} file and write the resulting
-binary data to the \var{output} file.
-\var{input} and \var{output} must either be file objects or objects that
-mimic the file object interface. \var{input} will be read until
-\code{\var{input}.read()} returns an empty string.
-\end{funcdesc}
-
-\begin{funcdesc}{decodestring}{s}
-Decode the string \var{s}, which must contain one or more lines of
-base64 encoded data, and return a string containing the resulting
-binary data.
-\end{funcdesc}
-
-\begin{funcdesc}{encode}{input, output}
-Encode the contents of the \var{input} file and write the resulting
-base64 encoded data to the \var{output} file.
-\var{input} and \var{output} must either be file objects or objects that
-mimic the file object interface. \var{input} will be read until
-\code{\var{input}.read()} returns an empty string.
-\end{funcdesc}
-
-\begin{funcdesc}{encodestring}{s}
-Encode the string \var{s}, which can contain arbitrary binary data,
-and return a string containing one or more lines of
-base64 encoded data.
-\end{funcdesc}
diff --git a/Doc/libbasehttp.tex b/Doc/libbasehttp.tex
deleted file mode 100644
index 7ee55df..0000000
--- a/Doc/libbasehttp.tex
+++ /dev/null
@@ -1,219 +0,0 @@
-\section{Standard Module \module{BaseHTTPServer}}
-\label{module-BaseHTTPServer}
-\stmodindex{BaseHTTPServer}
-
-\indexii{WWW}{server}
-\indexii{HTTP}{protocol}
-\index{URL}
-\index{httpd}
-
-
-This module defines two classes for implementing HTTP servers
-(web servers). Usually, this module isn't used directly, but is used
-as a basis for building functioning web servers. See the
-\module{SimpleHTTPServer} and \module{CGIHTTPServer} modules.
-\refstmodindex{SimpleHTTPServer}
-\refstmodindex{CGIHTTPServer}
-
-The first class, \class{HTTPServer}, is a
-\class{SocketServer.TCPServer} subclass. It creates and listens at the
-web socket, dispatching the requests to a handler. Code to create and
-run the server looks like this:
-
-\begin{verbatim}
-def run(server_class=BaseHTTPServer.HTTPServer,
- handler_class=BaseHTTPServer.BaseHTTPRequestHandler):
- server_address = ('', 8000)
- httpd = server_class(server_address, handler_class)
- httpd.serve_forever()
-\end{verbatim}
-
-\begin{classdesc}{HTTPServer}{server_address, RequestHandlerClass}
-This class builds on the \class{TCPServer} class by
-storing the server address as instance
-variables named \member{server_name} and \member{server_port}. The
-server is accessible by the handler, typically through the handler's
-\member{server} instance variable.
-\end{classdesc}
-
-\begin{classdesc}{BaseHTTPRequestHandler}{request, client_address, server}
-This class is used
-to handle the HTTP requests that arrive at the server. By itself,
-it cannot respond to any actual HTTP requests; it must be subclassed
-to handle each request method (e.g. GET or POST).
-\class{BaseHTTPRequestHandler} provides a number of class and instance
-variables, and methods for use by subclasses.
-
-The handler will parse the request and the headers, then call a
-method specific to the request type. The method name is constructed
-from the request. For example, for the request method \samp{SPAM}, the
-\method{do_SPAM()} method will be called with no arguments. All of
-the relevant information is stored in instance variables of the
-handler. Subclasses should not need to override or extend the
-\method{__init__()} method.
-\end{classdesc}
-
-
-\class{BaseHTTPRequestHandler} has the following instance variables:
-
-\begin{memberdesc}{client_address}
-Contains a tuple of the form \code{(\var{host}, \var{port})} referring
-to the client's address.
-\end{memberdesc}
-
-\begin{memberdesc}{command}
-Contains the command (request type). For example, \code{'GET'}.
-\end{memberdesc}
-
-\begin{memberdesc}{path}
-Contains the request path.
-\end{memberdesc}
-
-\begin{memberdesc}{request_version}
-Contains the version string from the request. For example,
-\code{'HTTP/1.0'}.
-\end{memberdesc}
-
-\begin{memberdesc}{headers}
-Holds an instance of the class specified by the \member{MessageClass}
-class variable. This instance parses and manages the headers in
-the HTTP request.
-\end{memberdesc}
-
-\begin{memberdesc}{rfile}
-Contains an input stream, positioned at the start of the optional
-input data.
-\end{memberdesc}
-
-\begin{memberdesc}{wfile}
-Contains the output stream for writing a response back to the client.
-Proper adherance to the HTTP protocol must be used when writing
-to this stream.
-\end{memberdesc}
-
-
-\class{BaseHTTPRequestHandler} has the following class variables:
-
-\begin{memberdesc}{server_version}
-Specifies the server software version. You may want to override
-this.
-The format is multiple whitespace-separated strings,
-where each string is of the form name[/version].
-For example, \code{'BaseHTTP/0.2'}.
-\end{memberdesc}
-
-\begin{memberdesc}{sys_version}
-Contains the Python system version, in a form usable by the
-\member{version_string} method and the \member{server_version} class
-variable. For example, \code{'Python/1.4'}.
-\end{memberdesc}
-
-\begin{memberdesc}{error_message_format}
-Specifies a format string for building an error response to the
-client. It uses parenthesized, keyed format specifiers, so the
-format operand must be a dictionary. The \var{code} key should
-be an integer, specifing the numeric HTTP error code value.
-\var{message} should be a string containing a (detailed) error
-message of what occurred, and \var{explain} should be an
-explanation of the error code number. Default \var{message}
-and \var{explain} values can found in the \var{responses}
-class variable.
-\end{memberdesc}
-
-\begin{memberdesc}{protocol_version}
-This specifies the HTTP protocol version used in responses.
-Typically, this should not be overridden. Defaults to
-\code{'HTTP/1.0'}.
-\end{memberdesc}
-
-\begin{memberdesc}{MessageClass}
-Specifies a \class{rfc822.Message}-like class to parse HTTP
-headers. Typically, this is not overridden, and it defaults to
-\class{mimetools.Message}.
-\withsubitem{(in module mimetools)}{\ttindex{Message}}
-\end{memberdesc}
-
-\begin{memberdesc}{responses}
-This variable contains a mapping of error code integers to two-element
-tuples containing a short and long message. For example,
-\code{\{\var{code}: (\var{shortmessage}, \var{longmessage})\}}. The
-\var{shortmessage} is usually used as the \var{message} key in an
-error response, and \var{longmessage} as the \var{explain} key
-(see the \member{error_message_format} class variable).
-\end{memberdesc}
-
-
-A \class{BaseHTTPRequestHandler} instance has the following methods:
-
-\begin{methoddesc}{handle}{}
-Overrides the superclass' \method{handle()} method to provide the
-specific handler behavior. This method will parse and dispatch
-the request to the appropriate \method{do_*()} method.
-\end{methoddesc}
-
-\begin{methoddesc}{send_error}{code\optional{, message}}
-Sends and logs a complete error reply to the client. The numeric
-\var{code} specifies the HTTP error code, with \var{message} as
-optional, more specific text. A complete set of headers is sent,
-followed by text composed using the \member{error_message_format}
-class variable.
-\end{methoddesc}
-
-\begin{methoddesc}{send_response}{code\optional{, message}}
-Sends a response header and logs the accepted request. The HTTP
-response line is sent, followed by \emph{Server} and \emph{Date}
-headers. The values for these two headers are picked up from the
-\method{version_string()} and \method{date_time_string()} methods,
-respectively.
-\end{methoddesc}
-
-\begin{methoddesc}{send_header}{keyword, value}
-Writes a specific MIME header to the output stream. \var{keyword}
-should specify the header keyword, with \var{value} specifying
-its value.
-\end{methoddesc}
-
-\begin{methoddesc}{end_headers}{}
-Sends a blank line, indicating the end of the MIME headers in
-the response.
-\end{methoddesc}
-
-\begin{methoddesc}{log_request}{\optional{code\optional{, size}}}
-Logs an accepted (successful) request. \var{code} should specify
-the numeric HTTP code associated with the response. If a size of
-the response is available, then it should be passed as the
-\var{size} parameter.
-\end{methoddesc}
-
-\begin{methoddesc}{log_error}{...}
-Logs an error when a request cannot be fulfilled. By default,
-it passes the message to \method{log_message()}, so it takes the
-same arguments (\var{format} and additional values).
-\end{methoddesc}
-
-\begin{methoddesc}{log_message}{format, ...}
-Logs an arbitrary message to \code{sys.stderr}. This is typically
-overridden to create custom error logging mechanisms. The
-\var{format} argument is a standard printf-style format string,
-where the additional arguments to \method{log_message()} are applied
-as inputs to the formatting. The client address and current date
-and time are prefixed to every message logged.
-\end{methoddesc}
-
-\begin{methoddesc}{version_string}{}
-Returns the server software's version string. This is a combination
-of the \member{server_version} and \member{sys_version} class variables.
-\end{methoddesc}
-
-\begin{methoddesc}{date_time_string}{}
-Returns the current date and time, formatted for a message header.
-\end{methoddesc}
-
-\begin{methoddesc}{log_data_time_string}{}
-Returns the current date and time, formatted for logging.
-\end{methoddesc}
-
-\begin{methoddesc}{address_string}{}
-Returns the client address, formatted for logging. A name lookup
-is performed on the client's IP address.
-\end{methoddesc}
diff --git a/Doc/libbastion.tex b/Doc/libbastion.tex
deleted file mode 100644
index ddf6d9e..0000000
--- a/Doc/libbastion.tex
+++ /dev/null
@@ -1,48 +0,0 @@
-\section{Standard Module \module{Bastion}}
-\label{module-Bastion}
-\stmodindex{Bastion}
-
-% I'm concerned that the word 'bastion' won't be understood by people
-% for whom English is a second language, making the module name
-% somewhat mysterious. Thus, the brief definition... --amk
-
-According to the dictionary, a bastion is ``a fortified area or
-position'', or ``something that is considered a stronghold.'' It's a
-suitable name for this module, which provides a way to forbid access
-to certain attributes of an object. It must always be used with the
-\module{rexec} module, in order to allow restricted-mode programs access
-to certain safe attributes of an object, while denying access to
-other, unsafe attributes.
-
-% I've punted on the issue of documenting keyword arguments for now.
-
-\begin{funcdesc}{Bastion}{object\optional{, filter\optional{,
- name\optional{, class}}}}
-Protect the object \var{object}, returning a bastion for the
-object. Any attempt to access one of the object's attributes will
-have to be approved by the \var{filter} function; if the access is
-denied an \exception{AttributeError} exception will be raised.
-
-If present, \var{filter} must be a function that accepts a string
-containing an attribute name, and returns true if access to that
-attribute will be permitted; if \var{filter} returns false, the access
-is denied. The default filter denies access to any function beginning
-with an underscore (\samp{_}). The bastion's string representation
-will be \samp{<Bastion for \var{name}>} if a value for
-\var{name} is provided; otherwise, \samp{repr(\var{object})} will be
-used.
-
-\var{class}, if present, should be a subclass of \class{BastionClass};
-see the code in \file{bastion.py} for the details. Overriding the
-default \class{BastionClass} will rarely be required.
-\end{funcdesc}
-
-
-\begin{classdesc}{BastionClass}{getfunc, name}
-Class which actually implements bastion objects. This is the default
-class used by \function{Bastion()}. The \var{getfunc} parameter is a
-function which returns the value of an attribute which should be
-exposed to the restricted execution environment when called with the
-name of the attribute as the only parameter. \var{name} is used to
-construct the \function{repr()} of the \class{BastionClass} instance.
-\end{classdesc}
diff --git a/Doc/libbinascii.tex b/Doc/libbinascii.tex
deleted file mode 100644
index 77366ed..0000000
--- a/Doc/libbinascii.tex
+++ /dev/null
@@ -1,79 +0,0 @@
-\section{Built-in Module \module{binascii}}
-\label{module-binascii}
-\bimodindex{binascii}
-
-The \module{binascii} module contains a number of methods to convert
-between binary and various \ASCII{}-encoded binary
-representations. Normally, you will not use these modules directly but
-use wrapper modules like \module{uu}\refstmodindex{uu} or
-\module{hexbin}\refstmodindex{hexbin} instead, this module solely
-exists because bit-manipuation of large amounts of data is slow in
-Python.
-
-The \module{binascii} module defines the following functions:
-
-\begin{funcdesc}{a2b_uu}{string}
-Convert a single line of uuencoded data back to binary and return the
-binary data. Lines normally contain 45 (binary) bytes, except for the
-last line. Line data may be followed by whitespace.
-\end{funcdesc}
-
-\begin{funcdesc}{b2a_uu}{data}
-Convert binary data to a line of \ASCII{} characters, the return value
-is the converted line, including a newline char. The length of
-\var{data} should be at most 45.
-\end{funcdesc}
-
-\begin{funcdesc}{a2b_base64}{string}
-Convert a block of base64 data back to binary and return the
-binary data. More than one line may be passed at a time.
-\end{funcdesc}
-
-\begin{funcdesc}{b2a_base64}{data}
-Convert binary data to a line of \ASCII{} characters in base64 coding.
-The return value is the converted line, including a newline char.
-The length of \var{data} should be at most 57 to adhere to the base64
-standard.
-\end{funcdesc}
-
-\begin{funcdesc}{a2b_hqx}{string}
-Convert binhex4 formatted \ASCII{} data to binary, without doing
-RLE-decompression. The string should contain a complete number of
-binary bytes, or (in case of the last portion of the binhex4 data)
-have the remaining bits zero.
-\end{funcdesc}
-
-\begin{funcdesc}{rledecode_hqx}{data}
-Perform RLE-decompression on the data, as per the binhex4
-standard. The algorithm uses \code{0x90} after a byte as a repeat
-indicator, followed by a count. A count of \code{0} specifies a byte
-value of \code{0x90}. The routine returns the decompressed data,
-unless data input data ends in an orphaned repeat indicator, in which
-case the \exception{Incomplete} exception is raised.
-\end{funcdesc}
-
-\begin{funcdesc}{rlecode_hqx}{data}
-Perform binhex4 style RLE-compression on \var{data} and return the
-result.
-\end{funcdesc}
-
-\begin{funcdesc}{b2a_hqx}{data}
-Perform hexbin4 binary-to-\ASCII{} translation and return the
-resulting string. The argument should already be RLE-coded, and have a
-length divisible by 3 (except possibly the last fragment).
-\end{funcdesc}
-
-\begin{funcdesc}{crc_hqx}{data, crc}
-Compute the binhex4 crc value of \var{data}, starting with an initial
-\var{crc} and returning the result.
-\end{funcdesc}
-
-\begin{excdesc}{Error}
-Exception raised on errors. These are usually programming errors.
-\end{excdesc}
-
-\begin{excdesc}{Incomplete}
-Exception raised on incomplete data. These are usually not programming
-errors, but may be handled by reading a little more data and trying
-again.
-\end{excdesc}
diff --git a/Doc/libbinhex.tex b/Doc/libbinhex.tex
deleted file mode 100644
index 6a7d3c6..0000000
--- a/Doc/libbinhex.tex
+++ /dev/null
@@ -1,36 +0,0 @@
-\section{Standard Module \module{binhex}}
-\label{module-binhex}
-\stmodindex{binhex}
-
-This module encodes and decodes files in binhex4 format, a format
-allowing representation of Macintosh files in \ASCII{}. On the Macintosh,
-both forks of a file and the finder information are encoded (or
-decoded), on other platforms only the data fork is handled.
-
-The \module{binhex} module defines the following functions:
-
-\begin{funcdesc}{binhex}{input, output}
-Convert a binary file with filename \var{input} to binhex file
-\var{output}. The \var{output} parameter can either be a filename or a
-file-like object (any object supporting a \var{write} and \var{close}
-method).
-\end{funcdesc}
-
-\begin{funcdesc}{hexbin}{input\optional{, output}}
-Decode a binhex file \var{input}. \var{input} may be a filename or a
-file-like object supporting \var{read} and \var{close} methods.
-The resulting file is written to a file named \var{output}, unless the
-argument is empty in which case the output filename is read from the
-binhex file.
-\end{funcdesc}
-
-\subsection{Notes}
-There is an alternative, more powerful interface to the coder and
-decoder, see the source for details.
-
-If you code or decode textfiles on non-Macintosh platforms they will
-still use the Macintosh newline convention (carriage-return as end of
-line).
-
-As of this writing, \function{hexbin()} appears to not work in all
-cases.
diff --git a/Doc/libbisect.tex b/Doc/libbisect.tex
deleted file mode 100644
index 81cb550..0000000
--- a/Doc/libbisect.tex
+++ /dev/null
@@ -1,55 +0,0 @@
-% LaTeX produced by Fred L. Drake, Jr. <fdrake@acm.org>, with an
-% example based on the PyModules FAQ entry by Aaron Watters
-% <arw@pythonpros.com>.
-
-\section{Standard Module \module{bisect}}
-\stmodindex{bisect}
-\label{module-bisect}
-
-
-This module provides support for maintaining a list in sorted order
-without having to sort the list after each insertion. For long lists
-of items with expensive comparison operations, this can be an
-improvement over the more common approach. The module is called
-\module{bisect} because it uses a basic bisection algorithm to do its
-work. The source code may be used a useful reference for a working
-example of the algorithm (i.e., the boundary conditions are already
-right!).
-
-The following functions are provided:
-
-\begin{funcdesc}{bisect}{list, item\optional{, lo\optional{, hi}}}
-Locate the proper insertion point for \var{item} in \var{list} to
-maintain sorted order. The parameters \var{lo} and \var{hi} may be
-used to specify a subset of the list which should be considered. The
-return value is suitable for use as the first parameter to
-\code{\var{list}.insert()}.
-\end{funcdesc}
-
-\begin{funcdesc}{insort}{list, item\optional{, lo\optional{, hi}}}
-Insert \var{item} in \var{list} in sorted order. This is equivalent
-to \code{\var{list}.insert(bisect.bisect(\var{list}, \var{item},
-\var{lo}, \var{hi}), \var{item})}.
-\end{funcdesc}
-
-
-\subsection{Example}
-\nodename{bisect-example}
-
-The \function{bisect()} function is generally useful for categorizing
-numeric data. This example uses \function{bisect()} to look up a
-letter grade for an exam total (say) based on a set of ordered numeric
-breakpoints: 85 and up is an `A', 75..84 is a `B', etc.
-
-\begin{verbatim}
->>> grades = "FEDCBA"
->>> breakpoints = [30, 44, 66, 75, 85]
->>> from bisect import bisect
->>> def grade(total):
-... return grades[bisect(breakpoints, total)]
-...
->>> grade(66)
-'C'
->>> map(grade, [33, 99, 77, 44, 12, 88])
-['E', 'A', 'B', 'D', 'F', 'A']
-\end{verbatim}
diff --git a/Doc/libbltin.tex b/Doc/libbltin.tex
deleted file mode 100644
index a4a0dd0..0000000
--- a/Doc/libbltin.tex
+++ /dev/null
@@ -1,8 +0,0 @@
-\section{Built-in Module \module{__builtin__}}
-\label{module-builtin}
-\bimodindex{__builtin__}
-
-This module provides direct access to all `built-in' identifiers of
-Python; e.g. \code{__builtin__.open} is the full name for the built-in
-function \code{open()}. See section \ref{built-in-funcs}, ``Built-in
-Functions.''
diff --git a/Doc/libcalendar.tex b/Doc/libcalendar.tex
deleted file mode 100644
index 1f3931e..0000000
--- a/Doc/libcalendar.tex
+++ /dev/null
@@ -1,45 +0,0 @@
-% This section was contributed by Drew Csillag <drew_csillag@geocities.com>.
-
-\section{Standard Module \module{calendar}}
-\label{module-calendar}
-\stmodindex{calendar}
-
-
-This module allows you to output calendars like the \UNIX{}
-\manpage{cal}{1} program.
-
-\begin{funcdesc}{isleap}{year}
-Returns \code{1} if \var{year} is a leap year.
-\end{funcdesc}
-
-\begin{funcdesc}{leapdays}{year1, year2}
-Return the number of leap years in the range
-[\var{year1}\ldots\var{year2}].
-\end{funcdesc}
-
-\begin{funcdesc}{weekday}{year, month, day}
-Returns the day of the week (\code{0} is Monday) for \var{year}
-(\code{1970}--\dots), \var{month} (\code{1}--\code{12}), \var{day}
-(\code{1}--\code{31}).
-\end{funcdesc}
-
-\begin{funcdesc}{monthrange}{year, month}
-Returns weekday of first day of the month and number of days in month,
-for the specified \var{year} and \var{month}.
-\end{funcdesc}
-
-\begin{funcdesc}{monthcalendar}{year, month}
-Returns a matrix representing a month's calendar. Each row represents
-a week; days outside of the month a represented by zeros.
-\end{funcdesc}
-
-\begin{funcdesc}{prmonth}{year, month\optional{, width\optional{, length}}}
-Prints a month's calendar. If \var{width} is provided, it specifies
-the width of the columns that the numbers are centered in. If
-\var{length} is given, it specifies the number of lines that each
-week will use.
-\end{funcdesc}
-
-\begin{funcdesc}{prcal}{year}
-Prints the calendar for the year \var{year}.
-\end{funcdesc}
diff --git a/Doc/libcd.tex b/Doc/libcd.tex
deleted file mode 100644
index 44111a3..0000000
--- a/Doc/libcd.tex
+++ /dev/null
@@ -1,300 +0,0 @@
-\section{Built-in Module \module{cd}}
-\label{module-cd}
-\bimodindex{cd}
-
-This module provides an interface to the Silicon Graphics CD library.
-It is available only on Silicon Graphics systems.
-
-The way the library works is as follows. A program opens the CD-ROM
-device with \function{open()} and creates a parser to parse the data
-from the CD with \function{createparser()}. The object returned by
-\function{open()} can be used to read data from the CD, but also to get
-status information for the CD-ROM device, and to get information about
-the CD, such as the table of contents. Data from the CD is passed to
-the parser, which parses the frames, and calls any callback
-functions that have previously been added.
-
-An audio CD is divided into \dfn{tracks} or \dfn{programs} (the terms
-are used interchangeably). Tracks can be subdivided into
-\dfn{indices}. An audio CD contains a \dfn{table of contents} which
-gives the starts of the tracks on the CD. Index 0 is usually the
-pause before the start of a track. The start of the track as given by
-the table of contents is normally the start of index 1.
-
-Positions on a CD can be represented in two ways. Either a frame
-number or a tuple of three values, minutes, seconds and frames. Most
-functions use the latter representation. Positions can be both
-relative to the beginning of the CD, and to the beginning of the
-track.
-
-Module \module{cd} defines the following functions and constants:
-
-
-\begin{funcdesc}{createparser}{}
-Create and return an opaque parser object. The methods of the parser
-object are described below.
-\end{funcdesc}
-
-\begin{funcdesc}{msftoframe}{minutes, seconds, frames}
-Converts a \code{(\var{minutes}, \var{seconds}, \var{frames})} triple
-representing time in absolute time code into the corresponding CD
-frame number.
-\end{funcdesc}
-
-\begin{funcdesc}{open}{\optional{device\optional{, mode}}}
-Open the CD-ROM device. The return value is an opaque player object;
-methods of the player object are described below. The device is the
-name of the SCSI device file, e.g. \code{'/dev/scsi/sc0d4l0'}, or
-\code{None}. If omitted or \code{None}, the hardware inventory is
-consulted to locate a CD-ROM drive. The \var{mode}, if not omited,
-should be the string \code{'r'}.
-\end{funcdesc}
-
-The module defines the following variables:
-
-\begin{excdesc}{error}
-Exception raised on various errors.
-\end{excdesc}
-
-\begin{datadesc}{DATASIZE}
-The size of one frame's worth of audio data. This is the size of the
-audio data as passed to the callback of type \code{audio}.
-\end{datadesc}
-
-\begin{datadesc}{BLOCKSIZE}
-The size of one uninterpreted frame of audio data.
-\end{datadesc}
-
-The following variables are states as returned by
-\function{getstatus()}:
-
-\begin{datadesc}{READY}
-The drive is ready for operation loaded with an audio CD.
-\end{datadesc}
-
-\begin{datadesc}{NODISC}
-The drive does not have a CD loaded.
-\end{datadesc}
-
-\begin{datadesc}{CDROM}
-The drive is loaded with a CD-ROM. Subsequent play or read operations
-will return I/O errors.
-\end{datadesc}
-
-\begin{datadesc}{ERROR}
-An error aoocurred while trying to read the disc or its table of
-contents.
-\end{datadesc}
-
-\begin{datadesc}{PLAYING}
-The drive is in CD player mode playing an audio CD through its audio
-jacks.
-\end{datadesc}
-
-\begin{datadesc}{PAUSED}
-The drive is in CD layer mode with play paused.
-\end{datadesc}
-
-\begin{datadesc}{STILL}
-The equivalent of \constant{PAUSED} on older (non 3301) model Toshiba
-CD-ROM drives. Such drives have never been shipped by SGI.
-\end{datadesc}
-
-\begin{datadesc}{audio}
-\dataline{pnum}
-\dataline{index}
-\dataline{ptime}
-\dataline{atime}
-\dataline{catalog}
-\dataline{ident}
-\dataline{control}
-Integer constants describing the various types of parser callbacks
-that can be set by the \method{addcallback()} method of CD parser
-objects (see below).
-\end{datadesc}
-
-
-\subsection{Player Objects}
-\label{player-objects}
-
-Player objects (returned by \function{open()}) have the following
-methods:
-
-\begin{methoddesc}[CD player]{allowremoval}{}
-Unlocks the eject button on the CD-ROM drive permitting the user to
-eject the caddy if desired.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{bestreadsize}{}
-Returns the best value to use for the \var{num_frames} parameter of
-the \method{readda()} method. Best is defined as the value that
-permits a continuous flow of data from the CD-ROM drive.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{close}{}
-Frees the resources associated with the player object. After calling
-\method{close()}, the methods of the object should no longer be used.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{eject}{}
-Ejects the caddy from the CD-ROM drive.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{getstatus}{}
-Returns information pertaining to the current state of the CD-ROM
-drive. The returned information is a tuple with the following values:
-\var{state}, \var{track}, \var{rtime}, \var{atime}, \var{ttime},
-\var{first}, \var{last}, \var{scsi_audio}, \var{cur_block}.
-\var{rtime} is the time relative to the start of the current track;
-\var{atime} is the time relative to the beginning of the disc;
-\var{ttime} is the total time on the disc. For more information on
-the meaning of the values, see the man page \manpage{CDgetstatus}{3dm}.
-The value of \var{state} is one of the following: \constant{ERROR},
-\constant{NODISC}, \constant{READY}, \constant{PLAYING},
-\constant{PAUSED}, \constant{STILL}, or \constant{CDROM}.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{gettrackinfo}{track}
-Returns information about the specified track. The returned
-information is a tuple consisting of two elements, the start time of
-the track and the duration of the track.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{msftoblock}{min, sec, frame}
-Converts a minutes, seconds, frames triple representing a time in
-absolute time code into the corresponding logical block number for the
-given CD-ROM drive. You should use \function{msftoframe()} rather than
-\method{msftoblock()} for comparing times. The logical block number
-differs from the frame number by an offset required by certain CD-ROM
-drives.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{play}{start, play}
-Starts playback of an audio CD in the CD-ROM drive at the specified
-track. The audio output appears on the CD-ROM drive's headphone and
-audio jacks (if fitted). Play stops at the end of the disc.
-\var{start} is the number of the track at which to start playing the
-CD; if \var{play} is 0, the CD will be set to an initial paused
-state. The method \method{togglepause()} can then be used to commence
-play.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{playabs}{minutes, seconds, frames, play}
-Like \method{play()}, except that the start is given in minutes,
-seconds, and frames instead of a track number.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{playtrack}{start, play}
-Like \method{play()}, except that playing stops at the end of the
-track.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{playtrackabs}{track, minutes, seconds, frames, play}
-Like \method{play()}, except that playing begins at the spcified
-absolute time and ends at the end of the specified track.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{preventremoval}{}
-Locks the eject button on the CD-ROM drive thus preventing the user
-from arbitrarily ejecting the caddy.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{readda}{num_frames}
-Reads the specified number of frames from an audio CD mounted in the
-CD-ROM drive. The return value is a string representing the audio
-frames. This string can be passed unaltered to the
-\method{parseframe()} method of the parser object.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{seek}{minutes, seconds, frames}
-Sets the pointer that indicates the starting point of the next read of
-digital audio data from a CD-ROM. The pointer is set to an absolute
-time code location specified in \var{minutes}, \var{seconds}, and
-\var{frames}. The return value is the logical block number to which
-the pointer has been set.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{seekblock}{block}
-Sets the pointer that indicates the starting point of the next read of
-digital audio data from a CD-ROM. The pointer is set to the specified
-logical block number. The return value is the logical block number to
-which the pointer has been set.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{seektrack}{track}
-Sets the pointer that indicates the starting point of the next read of
-digital audio data from a CD-ROM. The pointer is set to the specified
-track. The return value is the logical block number to which the
-pointer has been set.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{stop}{}
-Stops the current playing operation.
-\end{methoddesc}
-
-\begin{methoddesc}[CD player]{togglepause}{}
-Pauses the CD if it is playing, and makes it play if it is paused.
-\end{methoddesc}
-
-
-\subsection{Parser Objects}
-\label{cd-parser-objects}
-
-Parser objects (returned by \function{createparser()}) have the
-following methods:
-
-\begin{methoddesc}[CD parser]{addcallback}{type, func, arg}
-Adds a callback for the parser. The parser has callbacks for eight
-different types of data in the digital audio data stream. Constants
-for these types are defined at the \module{cd} module level (see above).
-The callback is called as follows: \code{\var{func}(\var{arg}, type,
-data)}, where \var{arg} is the user supplied argument, \var{type} is
-the particular type of callback, and \var{data} is the data returned
-for this \var{type} of callback. The type of the data depends on the
-\var{type} of callback as follows:
-
-\begin{tableii}{l|p{4in}}{code}{Type}{Value}
- \lineii{audio}{String which can be passed unmodified to
-\function{al.writesamps()}.}
- \lineii{pnum}{Integer giving the program (track) number.}
- \lineii{index}{Integer giving the index number.}
- \lineii{ptime}{Tuple consisting of the program time in minutes,
-seconds, and frames.}
- \lineii{atime}{Tuple consisting of the absolute time in minutes,
-seconds, and frames.}
- \lineii{catalog}{String of 13 characters, giving the catalog number
-of the CD.}
- \lineii{ident}{String of 12 characters, giving the ISRC
-identification number of the recording. The string consists of two
-characters country code, three characters owner code, two characters
-giving the year, and five characters giving a serial number.}
- \lineii{control}{Integer giving the control bits from the CD
-subcode data}
-\end{tableii}
-\end{methoddesc}
-
-\begin{methoddesc}[CD parser]{deleteparser}{}
-Deletes the parser and frees the memory it was using. The object
-should not be used after this call. This call is done automatically
-when the last reference to the object is removed.
-\end{methoddesc}
-
-\begin{methoddesc}[CD parser]{parseframe}{frame}
-Parses one or more frames of digital audio data from a CD such as
-returned by \method{readda()}. It determines which subcodes are
-present in the data. If these subcodes have changed since the last
-frame, then \method{parseframe()} executes a callback of the
-appropriate type passing to it the subcode data found in the frame.
-Unlike the \C{} function, more than one frame of digital audio data
-can be passed to this method.
-\end{methoddesc}
-
-\begin{methoddesc}[CD parser]{removecallback}{type}
-Removes the callback for the given \var{type}.
-\end{methoddesc}
-
-\begin{methoddesc}[CD parser]{resetparser}{}
-Resets the fields of the parser used for tracking subcodes to an
-initial state. \method{resetparser()} should be called after the disc
-has been changed.
-\end{methoddesc}
diff --git a/Doc/libcgi.tex b/Doc/libcgi.tex
deleted file mode 100644
index cb0a6fb..0000000
--- a/Doc/libcgi.tex
+++ /dev/null
@@ -1,461 +0,0 @@
-\section{Standard Module \module{cgi}}
-\label{module-cgi}
-\stmodindex{cgi}
-\indexii{WWW}{server}
-\indexii{CGI}{protocol}
-\indexii{HTTP}{protocol}
-\indexii{MIME}{headers}
-\index{URL}
-
-
-Support module for CGI (Common Gateway Interface) scripts.%
-\index{Common Gateway Interface}
-
-This module defines a number of utilities for use by CGI scripts
-written in Python.
-
-\subsection{Introduction}
-\nodename{cgi-intro}
-
-A CGI script is invoked by an HTTP server, usually to process user
-input submitted through an HTML \code{<FORM>} or \code{<ISINPUT>} element.
-
-Most often, CGI scripts live in the server's special \file{cgi-bin}
-directory. The HTTP server places all sorts of information about the
-request (such as the client's hostname, the requested URL, the query
-string, and lots of other goodies) in the script's shell environment,
-executes the script, and sends the script's output back to the client.
-
-The script's input is connected to the client too, and sometimes the
-form data is read this way; at other times the form data is passed via
-the ``query string'' part of the URL. This module is intended
-to take care of the different cases and provide a simpler interface to
-the Python script. It also provides a number of utilities that help
-in debugging scripts, and the latest addition is support for file
-uploads from a form (if your browser supports it --- Grail 0.3 and
-Netscape 2.0 do).
-
-The output of a CGI script should consist of two sections, separated
-by a blank line. The first section contains a number of headers,
-telling the client what kind of data is following. Python code to
-generate a minimal header section looks like this:
-
-\begin{verbatim}
-print "Content-type: text/html" # HTML is following
-print # blank line, end of headers
-\end{verbatim}
-
-The second section is usually HTML, which allows the client software
-to display nicely formatted text with header, in-line images, etc.
-Here's Python code that prints a simple piece of HTML:
-
-\begin{verbatim}
-print "<TITLE>CGI script output</TITLE>"
-print "<H1>This is my first CGI script</H1>"
-print "Hello, world!"
-\end{verbatim}
-
-(It may not be fully legal HTML according to the letter of the
-standard, but any browser will understand it.)
-
-\subsection{Using the cgi module}
-\nodename{Using the cgi module}
-
-Begin by writing \samp{import cgi}. Do not use \samp{from cgi import
-*} --- the module defines all sorts of names for its own use or for
-backward compatibility that you don't want in your namespace.
-
-It's best to use the \class{FieldStorage} class. The other classes
-defined in this module are provided mostly for backward compatibility.
-Instantiate it exactly once, without arguments. This reads the form
-contents from standard input or the environment (depending on the
-value of various environment variables set according to the CGI
-standard). Since it may consume standard input, it should be
-instantiated only once.
-
-The \class{FieldStorage} instance can be accessed as if it were a Python
-dictionary. For instance, the following code (which assumes that the
-\code{content-type} header and blank line have already been printed)
-checks that the fields \code{name} and \code{addr} are both set to a
-non-empty string:
-
-\begin{verbatim}
-form = cgi.FieldStorage()
-form_ok = 0
-if form.has_key("name") and form.has_key("addr"):
- if form["name"].value != "" and form["addr"].value != "":
- form_ok = 1
-if not form_ok:
- print "<H1>Error</H1>"
- print "Please fill in the name and addr fields."
- return
-...further form processing here...
-\end{verbatim}
-
-Here the fields, accessed through \samp{form[\var{key}]}, are
-themselves instances of \class{FieldStorage} (or
-\class{MiniFieldStorage}, depending on the form encoding).
-
-If the submitted form data contains more than one field with the same
-name, the object retrieved by \samp{form[\var{key}]} is not a
-\class{FieldStorage} or \class{MiniFieldStorage}
-instance but a list of such instances. If you expect this possibility
-(i.e., when your HTML form comtains multiple fields with the same
-name), use the \function{type()} function to determine whether you
-have a single instance or a list of instances. For example, here's
-code that concatenates any number of username fields, separated by
-commas:
-
-\begin{verbatim}
-username = form["username"]
-if type(username) is type([]):
- # Multiple username fields specified
- usernames = ""
- for item in username:
- if usernames:
- # Next item -- insert comma
- usernames = usernames + "," + item.value
- else:
- # First item -- don't insert comma
- usernames = item.value
-else:
- # Single username field specified
- usernames = username.value
-\end{verbatim}
-
-If a field represents an uploaded file, the value attribute reads the
-entire file in memory as a string. This may not be what you want.
-You can test for an uploaded file by testing either the filename
-attribute or the file attribute. You can then read the data at
-leasure from the file attribute:
-
-\begin{verbatim}
-fileitem = form["userfile"]
-if fileitem.file:
- # It's an uploaded file; count lines
- linecount = 0
- while 1:
- line = fileitem.file.readline()
- if not line: break
- linecount = linecount + 1
-\end{verbatim}
-
-The file upload draft standard entertains the possibility of uploading
-multiple files from one field (using a recursive
-\mimetype{multipart/*} encoding). When this occurs, the item will be
-a dictionary-like \class{FieldStorage} item. This can be determined
-by testing its \member{type} attribute, which should be
-\mimetype{multipart/form-data} (or perhaps another MIME type matching
-\mimetype{multipart/*}). It this case, it can be iterated over
-recursively just like the top-level form object.
-
-When a form is submitted in the ``old'' format (as the query string or
-as a single data part of type
-\mimetype{application/x-www-form-urlencoded}), the items will actually
-be instances of the class \class{MiniFieldStorage}. In this case, the
-list, file and filename attributes are always \code{None}.
-
-
-\subsection{Old classes}
-
-These classes, present in earlier versions of the \module{cgi} module,
-are still supported for backward compatibility. New applications
-should use the \class{FieldStorage} class.
-
-\class{SvFormContentDict} stores single value form content as
-dictionary; it assumes each field name occurs in the form only once.
-
-\class{FormContentDict} stores multiple value form content as a
-dictionary (the form items are lists of values). Useful if your form
-contains multiple fields with the same name.
-
-Other classes (\class{FormContent}, \class{InterpFormContentDict}) are
-present for backwards compatibility with really old applications only.
-If you still use these and would be inconvenienced when they
-disappeared from a next version of this module, drop me a note.
-
-
-\subsection{Functions}
-\nodename{Functions in cgi module}
-
-These are useful if you want more control, or if you want to employ
-some of the algorithms implemented in this module in other
-circumstances.
-
-\begin{funcdesc}{parse}{fp}
-Parse a query in the environment or from a file (default
-\code{sys.stdin}).
-\end{funcdesc}
-
-\begin{funcdesc}{parse_qs}{qs}
-Parse a query string given as a string argument (data of type
-\mimetype{application/x-www-form-urlencoded}).
-\end{funcdesc}
-
-\begin{funcdesc}{parse_multipart}{fp, pdict}
-Parse input of type \mimetype{multipart/form-data} (for
-file uploads). Arguments are \var{fp} for the input file and
-\var{pdict} for the dictionary containing other parameters of
-\code{content-type} header
-
-Returns a dictionary just like \function{parse_qs()} keys are the
-field names, each value is a list of values for that field. This is
-easy to use but not much good if you are expecting megabytes to be
-uploaded --- in that case, use the \class{FieldStorage} class instead
-which is much more flexible. Note that \code{content-type} is the
-raw, unparsed contents of the \code{content-type} header.
-
-Note that this does not parse nested multipart parts --- use
-\class{FieldStorage} for that.
-\end{funcdesc}
-
-\begin{funcdesc}{parse_header}{string}
-Parse a header like \code{content-type} into a main
-content-type and a dictionary of parameters.
-\end{funcdesc}
-
-\begin{funcdesc}{test}{}
-Robust test CGI script, usable as main program.
-Writes minimal HTTP headers and formats all information provided to
-the script in HTML form.
-\end{funcdesc}
-
-\begin{funcdesc}{print_environ}{}
-Format the shell environment in HTML.
-\end{funcdesc}
-
-\begin{funcdesc}{print_form}{form}
-Format a form in HTML.
-\end{funcdesc}
-
-\begin{funcdesc}{print_directory}{}
-Format the current directory in HTML.
-\end{funcdesc}
-
-\begin{funcdesc}{print_environ_usage}{}
-Print a list of useful (used by CGI) environment variables in
-HTML.
-\end{funcdesc}
-
-\begin{funcdesc}{escape}{s\optional{, quote}}
-Convert the characters
-\character{\&}, \character{<} and \character{>} in string \var{s} to
-HTML-safe sequences. Use this if you need to display text that might
-contain such characters in HTML. If the optional flag \var{quote} is
-true, the double quote character (\character{"}) is also translated;
-this helps for inclusion in an HTML attribute value, e.g. in \code{<A
-HREF="...">}.
-\end{funcdesc}
-
-
-\subsection{Caring about security}
-
-There's one important rule: if you invoke an external program (e.g.
-via the \function{os.system()} or \function{os.popen()} functions),
-make very sure you don't pass arbitrary strings received from the
-client to the shell. This is a well-known security hole whereby
-clever hackers anywhere on the web can exploit a gullible CGI script
-to invoke arbitrary shell commands. Even parts of the URL or field
-names cannot be trusted, since the request doesn't have to come from
-your form!
-
-To be on the safe side, if you must pass a string gotten from a form
-to a shell command, you should make sure the string contains only
-alphanumeric characters, dashes, underscores, and periods.
-
-
-\subsection{Installing your CGI script on a Unix system}
-
-Read the documentation for your HTTP server and check with your local
-system administrator to find the directory where CGI scripts should be
-installed; usually this is in a directory \file{cgi-bin} in the server tree.
-
-Make sure that your script is readable and executable by ``others''; the
-\UNIX{} file mode should be \code{0755} octal (use \samp{chmod 0755
-filename}). Make sure that the first line of the script contains
-\code{\#!} starting in column 1 followed by the pathname of the Python
-interpreter, for instance:
-
-\begin{verbatim}
-#!/usr/local/bin/python
-\end{verbatim}
-
-Make sure the Python interpreter exists and is executable by ``others''.
-
-Make sure that any files your script needs to read or write are
-readable or writable, respectively, by ``others'' --- their mode
-should be \code{0644} for readable and \code{0666} for writable. This
-is because, for security reasons, the HTTP server executes your script
-as user ``nobody'', without any special privileges. It can only read
-(write, execute) files that everybody can read (write, execute). The
-current directory at execution time is also different (it is usually
-the server's cgi-bin directory) and the set of environment variables
-is also different from what you get at login. In particular, don't
-count on the shell's search path for executables (\envvar{PATH}) or
-the Python module search path (\envvar{PYTHONPATH}) to be set to
-anything interesting.
-
-If you need to load modules from a directory which is not on Python's
-default module search path, you can change the path in your script,
-before importing other modules, e.g.:
-
-\begin{verbatim}
-import sys
-sys.path.insert(0, "/usr/home/joe/lib/python")
-sys.path.insert(0, "/usr/local/lib/python")
-\end{verbatim}
-
-(This way, the directory inserted last will be searched first!)
-
-Instructions for non-\UNIX{} systems will vary; check your HTTP server's
-documentation (it will usually have a section on CGI scripts).
-
-
-\subsection{Testing your CGI script}
-
-Unfortunately, a CGI script will generally not run when you try it
-from the command line, and a script that works perfectly from the
-command line may fail mysteriously when run from the server. There's
-one reason why you should still test your script from the command
-line: if it contains a syntax error, the Python interpreter won't
-execute it at all, and the HTTP server will most likely send a cryptic
-error to the client.
-
-Assuming your script has no syntax errors, yet it does not work, you
-have no choice but to read the next section.
-
-
-\subsection{Debugging CGI scripts}
-
-First of all, check for trivial installation errors --- reading the
-section above on installing your CGI script carefully can save you a
-lot of time. If you wonder whether you have understood the
-installation procedure correctly, try installing a copy of this module
-file (\file{cgi.py}) as a CGI script. When invoked as a script, the file
-will dump its environment and the contents of the form in HTML form.
-Give it the right mode etc, and send it a request. If it's installed
-in the standard \file{cgi-bin} directory, it should be possible to send it a
-request by entering a URL into your browser of the form:
-
-\begin{verbatim}
-http://yourhostname/cgi-bin/cgi.py?name=Joe+Blow&addr=At+Home
-\end{verbatim}
-
-If this gives an error of type 404, the server cannot find the script
--- perhaps you need to install it in a different directory. If it
-gives another error (e.g. 500), there's an installation problem that
-you should fix before trying to go any further. If you get a nicely
-formatted listing of the environment and form content (in this
-example, the fields should be listed as ``addr'' with value ``At Home''
-and ``name'' with value ``Joe Blow''), the \file{cgi.py} script has been
-installed correctly. If you follow the same procedure for your own
-script, you should now be able to debug it.
-
-The next step could be to call the \module{cgi} module's
-\function{test()} function from your script: replace its main code
-with the single statement
-
-\begin{verbatim}
-cgi.test()
-\end{verbatim}
-
-This should produce the same results as those gotten from installing
-the \file{cgi.py} file itself.
-
-When an ordinary Python script raises an unhandled exception
-(e.g. because of a typo in a module name, a file that can't be opened,
-etc.), the Python interpreter prints a nice traceback and exits.
-While the Python interpreter will still do this when your CGI script
-raises an exception, most likely the traceback will end up in one of
-the HTTP server's log file, or be discarded altogether.
-
-Fortunately, once you have managed to get your script to execute
-\emph{some} code, it is easy to catch exceptions and cause a traceback
-to be printed. The \function{test()} function below in this module is
-an example. Here are the rules:
-
-\begin{enumerate}
-\item Import the traceback module before entering the \keyword{try}
- ... \keyword{except} statement
-
-\item Assign \code{sys.stderr} to be \code{sys.stdout}
-
-\item Make sure you finish printing the headers and the blank line
- early
-
-\item Wrap all remaining code in a \keyword{try} ... \keyword{except}
- statement
-
-\item In the except clause, call \function{traceback.print_exc()}
-\end{enumerate}
-
-For example:
-
-\begin{verbatim}
-import sys
-import traceback
-print "Content-type: text/html"
-print
-sys.stderr = sys.stdout
-try:
- ...your code here...
-except:
- print "\n\n<PRE>"
- traceback.print_exc()
-\end{verbatim}
-
-Notes: The assignment to \code{sys.stderr} is needed because the
-traceback prints to \code{sys.stderr}.
-The \code{print "{\e}n{\e}n<PRE>"} statement is necessary to
-disable the word wrapping in HTML.
-
-If you suspect that there may be a problem in importing the traceback
-module, you can use an even more robust approach (which only uses
-built-in modules):
-
-\begin{verbatim}
-import sys
-sys.stderr = sys.stdout
-print "Content-type: text/plain"
-print
-...your code here...
-\end{verbatim}
-
-This relies on the Python interpreter to print the traceback. The
-content type of the output is set to plain text, which disables all
-HTML processing. If your script works, the raw HTML will be displayed
-by your client. If it raises an exception, most likely after the
-first two lines have been printed, a traceback will be displayed.
-Because no HTML interpretation is going on, the traceback will
-readable.
-
-
-\subsection{Common problems and solutions}
-
-\begin{itemize}
-\item Most HTTP servers buffer the output from CGI scripts until the
-script is completed. This means that it is not possible to display a
-progress report on the client's display while the script is running.
-
-\item Check the installation instructions above.
-
-\item Check the HTTP server's log files. (\samp{tail -f logfile} in a
-separate window may be useful!)
-
-\item Always check a script for syntax errors first, by doing something
-like \samp{python script.py}.
-
-\item When using any of the debugging techniques, don't forget to add
-\samp{import sys} to the top of the script.
-
-\item When invoking external programs, make sure they can be found.
-Usually, this means using absolute path names --- \envvar{PATH} is
-usually not set to a very useful value in a CGI script.
-
-\item When reading or writing external files, make sure they can be read
-or written by every user on the system.
-
-\item Don't try to give a CGI script a set-uid mode. This doesn't work on
-most systems, and is a security liability as well.
-\end{itemize}
-
diff --git a/Doc/libcmath.tex b/Doc/libcmath.tex
deleted file mode 100644
index adce12f..0000000
--- a/Doc/libcmath.tex
+++ /dev/null
@@ -1,90 +0,0 @@
-\section{Built-in Module \module{cmath}}
-\label{module-cmath}
-
-\bimodindex{cmath}
-This module is always available.
-It provides access to mathematical functions for complex numbers.
-The functions are:
-
-\begin{funcdesc}{acos}{x}
-Return the arc cosine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{acosh}{x}
-Return the hyperbolic arc cosine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{asin}{x}
-Return the arc sine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{asinh}{x}
-Return the hyperbolic arc sine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{atan}{x}
-Return the arc tangent of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{atanh}{x}
-Return the hyperbolic arc tangent of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{cos}{x}
-Return the cosine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{cosh}{x}
-Return the hyperbolic cosine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{exp}{x}
-Return the exponential value \code{e**\var{x}}.
-\end{funcdesc}
-
-\begin{funcdesc}{log}{x}
-Return the natural logarithm of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{log10}{x}
-Return the base-10 logarithm of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{sin}{x}
-Return the sine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{sinh}{x}
-Return the hyperbolic sine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{sqrt}{x}
-Return the square root of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{tan}{x}
-Return the tangent of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{tanh}{x}
-Return the hyperbolic tangent of \var{x}.
-\end{funcdesc}
-
-The module also defines two mathematical constants:
-
-\begin{datadesc}{pi}
-The mathematical constant \emph{pi}, as a real.
-\end{datadesc}
-
-\begin{datadesc}{e}
-The mathematical constant \emph{e}, as a real.
-\end{datadesc}
-
-Note that the selection of functions is similar, but not identical, to
-that in module \code{math}\refbimodindex{math}. The reason for having
-two modules is, that some users aren't interested in complex numbers,
-and perhaps don't even know what they are. They would rather have
-\code{math.sqrt(-1)} raise an exception than return a complex number.
-Also note that the functions defined in \code{cmath} always return a
-complex number, even if the answer can be expressed as a real number
-(in which case the complex number has an imaginary part of zero).
diff --git a/Doc/libcode.tex b/Doc/libcode.tex
deleted file mode 100644
index 023d276..0000000
--- a/Doc/libcode.tex
+++ /dev/null
@@ -1,31 +0,0 @@
-\section{Standard Module \module{code}}
-\label{module-code}
-\stmodindex{code}
-
-The \code{code} module defines operations pertaining to Python code
-objects.
-
-The \code{code} module defines the following functions:
-
-
-\begin{funcdesc}{compile_command}{source, \optional{filename\optional{, symbol}}}
-This function is useful for programs that want to emulate Python's
-interpreter main loop (a.k.a. the read-eval-print loop). The tricky
-part is to determine when the user has entered an incomplete command
-that can be completed by entering more text (as opposed to a complete
-command or a syntax error). This function \emph{almost} always makes
-the same decision as the real interpreter main loop.
-
-Arguments: \var{source} is the source string; \var{filename} is the
-optional filename from which source was read, defaulting to
-\code{"<input>"}; and \var{symbol} is the optional grammar start
-symbol, which should be either \code{"single"} (the default) or
-\code{"eval"}.
-
-Return a code object (the same as \code{compile(\var{source},
-\var{filename}, \var{symbol})}) if the command is complete and valid;
-return \code{None} if the command is incomplete; raise
-\code{SyntaxError} if the command is a syntax error.
-
-
-\end{funcdesc}
diff --git a/Doc/libcommands.tex b/Doc/libcommands.tex
deleted file mode 100644
index 7ca3ede..0000000
--- a/Doc/libcommands.tex
+++ /dev/null
@@ -1,52 +0,0 @@
-% Documentation written by Sue Williams.
-
-\section{Standard Module \module{commands}}
-\stmodindex{commands}
-\label{module-commands}
-
-The \module{commands} module contains wrapper functions for
-\function{os.popen()} which take a system command as a string and
-return any output generated by the command and, optionally, the exit
-status.
-
-The \module{commands} module is only usable on systems which support
-\function{os.popen()} (currently \UNIX{}). It defines the following
-functions:
-
-
-\begin{funcdesc}{getstatusoutput}{cmd}
-Execute the string \var{cmd} in a shell with \function{os.popen()} and
-return a 2-tuple \code{(\var{status}, \var{output})}. \var{cmd} is
-actually run as \code{\{ \var{cmd} ; \} 2>\&1}, so that the returned
-output will contain output or error messages. A trailing newline is
-stripped from the output. The exit status for the command can be
-interpreted according to the rules for the \C{} function
-\cfunction{wait()}.
-\end{funcdesc}
-
-\begin{funcdesc}{getoutput}{cmd}
-Like \function{getstatusoutput()}, except the exit status is ignored
-and the return value is a string containing the command's output.
-\end{funcdesc}
-
-\begin{funcdesc}{getstatus}{file}
-Return the output of \samp{ls -ld \var{file}} as a string. This
-function uses the \function{getoutput()} function, and properly
-escapes backslashes and dollar signs in the argument.
-\end{funcdesc}
-
-Example:
-
-\begin{verbatim}
->>> import commands
->>> commands.getstatusoutput('ls /bin/ls')
-(0, '/bin/ls')
->>> commands.getstatusoutput('cat /bin/junk')
-(256, 'cat: /bin/junk: No such file or directory')
->>> commands.getstatusoutput('/bin/junk')
-(256, 'sh: /bin/junk: not found')
->>> commands.getoutput('ls /bin/ls')
-'/bin/ls'
->>> commands.getstatus('/bin/ls')
-'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'
-\end{verbatim}
diff --git a/Doc/libcopy.tex b/Doc/libcopy.tex
deleted file mode 100644
index 4e43585..0000000
--- a/Doc/libcopy.tex
+++ /dev/null
@@ -1,82 +0,0 @@
-\section{Standard Module \module{copy}}
-\label{module-copy}
-\stmodindex{copy}
-\setindexsubitem{(copy function)}
-\ttindex{copy}
-\ttindex{deepcopy}
-
-This module provides generic (shallow and deep) copying operations.
-
-Interface summary:
-
-\begin{verbatim}
-import copy
-
-x = copy.copy(y) # make a shallow copy of y
-x = copy.deepcopy(y) # make a deep copy of y
-\end{verbatim}
-%
-For module specific errors, \code{copy.error} is raised.
-
-The difference between shallow and deep copying is only relevant for
-compound objects (objects that contain other objects, like lists or
-class instances):
-
-\begin{itemize}
-
-\item
-A \emph{shallow copy} constructs a new compound object and then (to the
-extent possible) inserts \emph{references} into it to the objects found
-in the original.
-
-\item
-A \emph{deep copy} constructs a new compound object and then,
-recursively, inserts \emph{copies} into it of the objects found in the
-original.
-
-\end{itemize}
-
-Two problems often exist with deep copy operations that don't exist
-with shallow copy operations:
-
-\begin{itemize}
-
-\item
-Recursive objects (compound objects that, directly or indirectly,
-contain a reference to themselves) may cause a recursive loop.
-
-\item
-Because deep copy copies \emph{everything} it may copy too much, e.g.\
-administrative data structures that should be shared even between
-copies.
-
-\end{itemize}
-
-Python's \code{deepcopy()} operation avoids these problems by:
-
-\begin{itemize}
-
-\item
-keeping a table of objects already copied during the current
-copying pass; and
-
-\item
-letting user-defined classes override the copying operation or the
-set of components copied.
-
-\end{itemize}
-
-This version does not copy types like module, class, function, method,
-nor stack trace, stack frame, nor file, socket, window, nor array, nor
-any similar types.
-
-Classes can use the same interfaces to control copying that they use
-to control pickling: they can define methods called
-\code{__getinitargs__()}, \code{__getstate__()} and
-\code{__setstate__()}. See the description of module \code{pickle}
-for information on these methods.
-\refstmodindex{pickle}
-\setindexsubitem{(copy protocol)}
-\ttindex{__getinitargs__}
-\ttindex{__getstate__}
-\ttindex{__setstate__}
diff --git a/Doc/libcopyreg.tex b/Doc/libcopyreg.tex
deleted file mode 100644
index 7dabf42..0000000
--- a/Doc/libcopyreg.tex
+++ /dev/null
@@ -1,27 +0,0 @@
-\section{Standard Module \module{copy_reg}}
-% Note that the label is a little off; the underscore causes LaTeX to
-% yell & scream.
-\label{module-copyreg}
-\stmodindex{copy_reg}
-
-The \code{copy_reg} module provides support for the
-\code{pickle}\refstmodindex{pickle} and
-\code{cPickle}\refbimodindex{cPickle} modules. The
-\code{copy}\refstmodindex{copy} module is likely to use this in the
-future as well. It provides configuration information about object
-constructors which are not classes. Such constructors may be factory
-functions or class instances.
-
-
-\begin{funcdesc}{constructor}{object}
- Declares \var{object} to be a valid constructor.
-\end{funcdesc}
-
-\begin{funcdesc}{pickle}{type, function\optional{, constructor}}
- Declares that \var{function} should be used as a ``reduction''
- function for objects of type or class \var{type}. \var{function}
- should return either a string or a tuple. The optional
- \var{constructor} parameter, if provided, is a callable object which
- can be used to reconstruct the object when called with the tuple of
- arguments returned by \var{function} at pickling time.
-\end{funcdesc}
diff --git a/Doc/libcrypt.tex b/Doc/libcrypt.tex
deleted file mode 100644
index 8e9a7d3..0000000
--- a/Doc/libcrypt.tex
+++ /dev/null
@@ -1,22 +0,0 @@
-\section{Built-in Module \module{crypt}}
-\label{module-crypt}
-\bimodindex{crypt}
-
-This module implements an interface to the \manpage{crypt}{3} routine,
-which is a one-way hash function based upon a modified DES algorithm;
-see the \UNIX{} man page for further details. Possible uses include
-allowing Python scripts to accept typed passwords from the user, or
-attempting to crack \UNIX{} passwords with a dictionary.
-\index{crypt(3)}
-
-\begin{funcdesc}{crypt}{word, salt}
-\var{word} will usually be a user's password. \var{salt} is a
-2-character string which will be used to select one of 4096 variations
-of DES\indexii{cipher}{DES}. The characters in \var{salt} must be
-either \code{.}, \code{/}, or an alphanumeric character. Returns the
-hashed password as a string, which will be composed of characters from
-the same alphabet as the salt.
-\end{funcdesc}
-
-The module and documentation were written by Steve Majewski.
-\index{Majewski, Steve}
diff --git a/Doc/libcrypto.tex b/Doc/libcrypto.tex
deleted file mode 100644
index 8ea33a2..0000000
--- a/Doc/libcrypto.tex
+++ /dev/null
@@ -1,34 +0,0 @@
-\chapter{Cryptographic Services}
-\label{crypto}
-\index{cryptography}
-
-The modules described in this chapter implement various algorithms of
-a cryptographic nature. They are available at the discretion of the
-installation. Here's an overview:
-
-\begin{description}
-
-\item[md5]
---- RSA's MD5 message digest algorithm.
-
-\item[mpz]
---- Interface to the GNU MP library for arbitrary precision arithmetic.
-
-\item[rotor]
---- Enigma-like encryption and decryption.
-
-\end{description}
-
-Hardcore cypherpunks will probably find the cryptographic modules
-written by Andrew Kuchling of further interest; the package adds
-built-in modules for DES and IDEA encryption, provides a Python module
-for reading and decrypting PGP files, and then some. These modules
-are not distributed with Python but available separately. See the URL
-\url{http://starship.skyport.net/crew/amk/maintained/crypto.html} or
-send email to \email{akuchlin@acm.org} for more information.
-\index{PGP}
-\index{Pretty Good Privacy}
-\indexii{DES}{cipher}
-\indexii{IDEA}{cipher}
-\index{cryptography}
-\index{Kuchling, Andrew}
diff --git a/Doc/libdbm.tex b/Doc/libdbm.tex
deleted file mode 100644
index c4317fe..0000000
--- a/Doc/libdbm.tex
+++ /dev/null
@@ -1,36 +0,0 @@
-\section{Built-in Module \module{dbm}}
-\label{module-dbm}
-\bimodindex{dbm}
-
-The \code{dbm} module provides an interface to the \UNIX{}
-\code{(n)dbm} library. Dbm objects behave like mappings
-(dictionaries), except that keys and values are always strings.
-Printing a dbm object doesn't print the keys and values, and the
-\code{items()} and \code{values()} methods are not supported.
-
-See also the \code{gdbm} module, which provides a similar interface
-using the GNU GDBM library.
-\refbimodindex{gdbm}
-
-The module defines the following constant and functions:
-
-\begin{excdesc}{error}
-Raised on dbm-specific errors, such as I/O errors. \code{KeyError} is
-raised for general mapping errors like specifying an incorrect key.
-\end{excdesc}
-
-\begin{funcdesc}{open}{filename, \optional{flag, \optional{mode}}}
-Open a dbm database and return a dbm object. The \var{filename}
-argument is the name of the database file (without the \file{.dir} or
-\file{.pag} extensions).
-
-The optional \var{flag} argument can be
-\code{'r'} (to open an existing database for reading only --- default),
-\code{'w'} (to open an existing database for reading and writing),
-\code{'c'} (which creates the database if it doesn't exist), or
-\code{'n'} (which always creates a new empty database).
-
-The optional \var{mode} argument is the \UNIX{} mode of the file, used
-only when the database has to be created. It defaults to octal
-\code{0666}.
-\end{funcdesc}
diff --git a/Doc/libdis.tex b/Doc/libdis.tex
deleted file mode 100644
index eb60150..0000000
--- a/Doc/libdis.tex
+++ /dev/null
@@ -1,512 +0,0 @@
-\section{Standard Module \module{dis}}
-\stmodindex{dis}
-\label{module-dis}
-
-The \module{dis} module supports the analysis of Python byte code by
-disassembling it. Since there is no Python assembler, this module
-defines the Python assembly language. The Python byte code which
-this module takes as an input is defined in the file
-\file{Include/opcode.h} and used by the compiler and the interpreter.
-
-Example: Given the function \function{myfunc}:
-
-\begin{verbatim}
-def myfunc(alist):
- return len(alist)
-\end{verbatim}
-
-the following command can be used to get the disassembly of
-\function{myfunc()}:
-
-\begin{verbatim}
->>> dis.dis(myfunc)
- 0 SET_LINENO 1
-
- 3 SET_LINENO 2
- 6 LOAD_GLOBAL 0 (len)
- 9 LOAD_FAST 0 (alist)
- 12 CALL_FUNCTION 1
- 15 RETURN_VALUE
- 16 LOAD_CONST 0 (None)
- 19 RETURN_VALUE
-\end{verbatim}
-
-The \module{dis} module defines the following functions:
-
-\begin{funcdesc}{dis}{\optional{bytesource}}
-Disassemble the \var{bytesource} object. \var{bytesource} can denote
-either a class, a method, a function, or a code object. For a class,
-it disassembles all methods. For a single code sequence, it prints
-one line per byte code instruction. If no object is provided, it
-disassembles the last traceback.
-\end{funcdesc}
-
-\begin{funcdesc}{distb}{\optional{tb}}
-Disassembles the top-of-stack function of a traceback, using the last
-traceback if none was passed. The instruction causing the exception
-is indicated.
-\end{funcdesc}
-
-\begin{funcdesc}{disassemble}{code\optional{, lasti}}
-Disassembles a code object, indicating the last instruction if \var{lasti}
-was provided. The output is divided in the following columns:
-
-\begin{enumerate}
-\item the current instruction, indicated as \samp{-->},
-\item a labelled instruction, indicated with \samp{>>},
-\item the address of the instruction,
-\item the operation code name,
-\item operation parameters, and
-\item interpretation of the parameters in parentheses.
-\end{enumerate}
-
-The parameter interpretation recognizes local and global
-variable names, constant values, branch targets, and compare
-operators.
-\end{funcdesc}
-
-\begin{funcdesc}{disco}{code\optional{, lasti}}
-A synonym for disassemble. It is more convenient to type, and kept
-for compatibility with earlier Python releases.
-\end{funcdesc}
-
-\begin{datadesc}{opname}
-Sequence of a operation names, indexable using the byte code.
-\end{datadesc}
-
-\begin{datadesc}{cmp_op}
-Sequence of all compare operation names.
-\end{datadesc}
-
-\begin{datadesc}{hasconst}
-Sequence of byte codes that have a constant parameter.
-\end{datadesc}
-
-\begin{datadesc}{hasname}
-Sequence of byte codes that access a attribute by name.
-\end{datadesc}
-
-\begin{datadesc}{hasjrel}
-Sequence of byte codes that have a relative jump target.
-\end{datadesc}
-
-\begin{datadesc}{hasjabs}
-Sequence of byte codes that have an absolute jump target.
-\end{datadesc}
-
-\begin{datadesc}{haslocal}
-Sequence of byte codes that access a a local variable.
-\end{datadesc}
-
-\begin{datadesc}{hascompare}
-Sequence of byte codes of boolean operations.
-\end{datadesc}
-
-\subsection{Python Byte Code Instructions}
-\label{bytecodes}
-
-The Python compiler currently generates the following byte code
-instructions.
-
-\setindexsubitem{(byte code insns)}
-
-\begin{opcodedesc}{STOP_CODE}{}
-Indicates end-of-code to the compiler, not used by the interpreter.
-\end{opcodedesc}
-
-\begin{opcodedesc}{POP_TOP}{}
-Removes the top-of-stack (TOS) item.
-\end{opcodedesc}
-
-\begin{opcodedesc}{ROT_TWO}{}
-Swaps the two top-most stack items.
-\end{opcodedesc}
-
-\begin{opcodedesc}{ROT_THREE}{}
-Lifts second and third stack item one position up, moves top down
-to position three.
-\end{opcodedesc}
-
-\begin{opcodedesc}{DUP_TOP}{}
-Duplicates the reference on top of the stack.
-\end{opcodedesc}
-
-Unary Operations take the top of the stack, apply the operation, and
-push the result back on the stack.
-
-\begin{opcodedesc}{UNARY_POSITIVE}{}
-Implements \code{TOS = +TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{UNARY_NEG}{}
-Implements \code{TOS = -TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{UNARY_NOT}{}
-Implements \code{TOS = not TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{UNARY_CONVERT}{}
-Implements \code{TOS = `TOS`}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{UNARY_INVERT}{}
-Implements \code{TOS = \~TOS}.
-\end{opcodedesc}
-
-Binary operations remove the top of the stack (TOS) and the second top-most
-stack item (TOS1) from the stack. They perform the operation, and put the
-result back on the stack.
-
-\begin{opcodedesc}{BINARY_POWER}{}
-Implements \code{TOS = TOS1 ** TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BINARY_MULTIPLY}{}
-Implements \code{TOS = TOS1 * TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BINARY_DIVIDE}{}
-Implements \code{TOS = TOS1 / TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BINARY_MODULO}{}
-Implements \code{TOS = TOS1 \% TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BINARY_ADD}{}
-Implements \code{TOS = TOS1 + TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BINARY_SUBTRACT}{}
-Implements \code{TOS = TOS1 - TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BINARY_SUBSCR}{}
-Implements \code{TOS = TOS1[TOS]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BINARY_LSHIFT}{}
-Implements \code{TOS = TOS1 << TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BINARY_RSHIFT}{}
-Implements \code{TOS = TOS1 >> TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BINARY_AND}{}
-Implements \code{TOS = TOS1 and TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BINARY_XOR}{}
-Implements \code{TOS = TOS1 \^\ TOS}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BINARY_OR}{}
-Implements \code{TOS = TOS1 or TOS}.
-\end{opcodedesc}
-
-The slice opcodes take up to three parameters.
-
-\begin{opcodedesc}{SLICE+0}{}
-Implements \code{TOS = TOS[:]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{SLICE+1}{}
-Implements \code{TOS = TOS1[TOS:]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{SLICE+2}{}
-Implements \code{TOS = TOS1[:TOS1]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{SLICE+3}{}
-Implements \code{TOS = TOS2[TOS1:TOS]}.
-\end{opcodedesc}
-
-Slice assignment needs even an additional parameter. As any statement,
-they put nothing on the stack.
-
-\begin{opcodedesc}{STORE_SLICE+0}{}
-Implements \code{TOS[:] = TOS1}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{STORE_SLICE+1}{}
-Implements \code{TOS1[TOS:] = TOS2}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{STORE_SLICE+2}{}
-Implements \code{TOS1[:TOS] = TOS2}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{STORE_SLICE+3}{}
-Implements \code{TOS2[TOS1:TOS] = TOS3}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{DELETE_SLICE+0}{}
-Implements \code{del TOS[:]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{DELETE_SLICE+1}{}
-Implements \code{del TOS1[TOS:]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{DELETE_SLICE+2}{}
-Implements \code{del TOS1[:TOS]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{DELETE_SLICE+3}{}
-Implements \code{del TOS2[TOS1:TOS]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{STORE_SUBSCR}{}
-Implements \code{TOS1[TOS] = TOS2}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{DELETE_SUBSCR}{}
-Implements \code{del TOS1[TOS]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{PRINT_EXPR}{}
-Implements the expression statement for the interactive mode. TOS is
-removed from the stack and printed. In non-interactive mode, an
-expression statement is terminated with \code{POP_STACK}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{PRINT_ITEM}{}
-Prints TOS. There is one such instruction for
-each item in the print statement.
-\end{opcodedesc}
-
-\begin{opcodedesc}{PRINT_NEWLINE}{}
-Prints a new line on \code{sys.stdout}. This is generated as the
-last operation of a print statement, unless the statement ends
-with a comma.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BREAK_LOOP}{}
-Terminates a loop due to a break statement.
-\end{opcodedesc}
-
-\begin{opcodedesc}{LOAD_LOCALS}{}
-Pushes a reference to the locals of the current scope on the stack.
-This is used in the code for a class definition: After the class body
-is evaluated, the locals are passed to the class definition.
-\end{opcodedesc}
-
-\begin{opcodedesc}{RETURN_VALUE}{}
-Returns with TOS to the caller of the function.
-\end{opcodedesc}
-
-\begin{opcodedesc}{EXEC_STMT}{}
-Implements \code{exec TOS2,TOS1,TOS}. The compiler fills
-missing optional parameters with None.
-\end{opcodedesc}
-
-\begin{opcodedesc}{POP_BLOCK}{}
-Removes one block from the block stack. Per frame, there is a
-stack of blocks, denoting nested loops, try statements, and such.
-\end{opcodedesc}
-
-\begin{opcodedesc}{END_FINALLY}{}
-Terminates a finally-block. The interpreter recalls whether the
-exception has to be re-raised, or whether the function returns,
-and continues with the outer-next block.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BUILD_CLASS}{}
-Creates a new class object. TOS is the methods dictionary, TOS1
-the tuple of the names of the base classes, and TOS2 the class name.
-\end{opcodedesc}
-
-All of the following opcodes expect arguments. An argument is two
-bytes, with the more significant byte last.
-
-\begin{opcodedesc}{STORE_NAME}{namei}
-Implements \code{name = TOS}. \var{namei} is the index of \var{name}
-in the attribute \member{co_names} of the code object.
-The compiler tries to use \code{STORE_LOCAL} or \code{STORE_GLOBAL}
-if possible.
-\end{opcodedesc}
-
-\begin{opcodedesc}{DELETE_NAME}{namei}
-Implements \code{del name}, where \var{namei} is the index into
-\member{co_names} attribute of the code object.
-\end{opcodedesc}
-
-\begin{opcodedesc}{UNPACK_TUPLE}{count}
-Unpacks TOS into \var{count} individual values, which are put onto
-the stack right-to-left.
-\end{opcodedesc}
-
-\begin{opcodedesc}{UNPACK_LIST}{count}
-Unpacks TOS into \var{count} individual values.
-\end{opcodedesc}
-
-%\begin{opcodedesc}{UNPACK_ARG}{count}
-%This opcode is obsolete.
-%\end{opcodedesc}
-
-\begin{opcodedesc}{STORE_ATTR}{namei}
-Implements \code{TOS.name = TOS1}, where \var{namei} is the index
-of name in \member{co_names}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{DELETE_ATTR}{namei}
-Implements \code{del TOS.name}, using \var{namei} as index into
-\member{co_names}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{STORE_GLOBAL}{namei}
-Works as \code{STORE_NAME}, but stores the name as a global.
-\end{opcodedesc}
-
-\begin{opcodedesc}{DELETE_GLOBAL}{namei}
-Works as \code{DELETE_NAME}, but deletes a global name.
-\end{opcodedesc}
-
-%\begin{opcodedesc}{UNPACK_VARARG}{argc}
-%This opcode is obsolete.
-%\end{opcodedesc}
-
-\begin{opcodedesc}{LOAD_CONST}{consti}
-Pushes \samp{co_consts[\var{consti}]} onto the stack.
-\end{opcodedesc}
-
-\begin{opcodedesc}{LOAD_NAME}{namei}
-Pushes the value associated with \samp{co_names[\var{namei}]} onto the stack.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BUILD_TUPLE}{count}
-Creates a tuple consuming \var{count} items from the stack, and pushes
-the resulting tuple onto the stack.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BUILD_LIST}{count}
-Works as \code{BUILD_TUPLE}, but creates a list.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BUILD_MAP}{zero}
-Pushes an empty dictionary object onto the stack. The argument is ignored
-and set to zero by the compiler.
-\end{opcodedesc}
-
-\begin{opcodedesc}{LOAD_ATTR}{namei}
-Replaces TOS with \code{getattr(TOS,co_names[\var{namei}]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{COMPARE_OP}{opname}
-Performs a boolean operation. The operation name can be found
-in \code{cmp_op[\var{opname}]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{IMPORT_NAME}{namei}
-Imports the module \code{co_names[\var{namei}]}. The module object is
-pushed onto the stack. The current name space is not affected: for a
-proper import statement, a subsequent \code{STORE_FAST} instruction
-modifies the name space.
-\end{opcodedesc}
-
-\begin{opcodedesc}{IMPORT_FROM}{namei}
-Imports the attribute \code{co_names[\var{namei}]}. The module to import
-from is found in TOS and left there.
-\end{opcodedesc}
-
-\begin{opcodedesc}{JUMP_FORWARD}{delta}
-Increments byte code counter by \var{delta}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{JUMP_IF_TRUE}{delta}
-If TOS is true, increment the byte code counter by \var{delta}. TOS is
-left on the stack.
-\end{opcodedesc}
-
-\begin{opcodedesc}{JUMP_IF_FALSE}{delta}
-If TOS is false, increment the byte code counter by \var{delta}. TOS
-is not changed.
-\end{opcodedesc}
-
-\begin{opcodedesc}{JUMP_ABSOLUTE}{target}
-Set byte code counter to \var{target}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{FOR_LOOP}{delta}
-Iterate over a sequence. TOS is the current index, TOS1 the sequence.
-First, the next element is computed. If the sequence is exhausted,
-increment byte code counter by \var{delta}. Otherwise, push the
-sequence, the incremented counter, and the current item onto the stack.
-\end{opcodedesc}
-
-%\begin{opcodedesc}{LOAD_LOCAL}{namei}
-%This opcode is obsolete.
-%\end{opcodedesc}
-
-\begin{opcodedesc}{LOAD_GLOBAL}{namei}
-Loads the global named \code{co_names[\var{namei}]} onto the stack.
-\end{opcodedesc}
-
-%\begin{opcodedesc}{SET_FUNC_ARGS}{argc}
-%This opcode is obsolete.
-%\end{opcodedesc}
-
-\begin{opcodedesc}{SETUP_LOOP}{delta}
-Pushes a block for a loop onto the block stack. The block spans
-from the current instruction with a size of \var{delta} bytes.
-\end{opcodedesc}
-
-\begin{opcodedesc}{SETUP_EXCEPT}{delta}
-Pushes a try block from a try-except clause onto the block stack.
-\var{delta} points to the first except block.
-\end{opcodedesc}
-
-\begin{opcodedesc}{SETUP_FINALLY}{delta}
-Pushes a try block from a try-except clause onto the block stack.
-\var{delta} points to the finally block.
-\end{opcodedesc}
-
-\begin{opcodedesc}{LOAD_FAST}{var_num}
-Pushes a reference to the local \code{co_varnames[\var{var_num}]} onto
-the stack.
-\end{opcodedesc}
-
-\begin{opcodedesc}{STORE_FAST}{var_num}
-Stores TOS into the local \code{co_varnames[\var{var_num}]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{DELETE_FAST}{var_num}
-Deletes local \code{co_varnames[\var{var_num}]}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{SET_LINE_NO}{lineno}
-Sets the current line number to \var{lineno}.
-\end{opcodedesc}
-
-\begin{opcodedesc}{RAISE_VARARGS}{argc}
-Raises an exception. \var{argc} indicates the number of parameters
-to the raise statement, ranging from 1 to 3. The handler will find
-the traceback as TOS2, the parameter as TOS1, and the exception
-as TOS.
-\end{opcodedesc}
-
-\begin{opcodedesc}{CALL_FUNCTION}{argc}
-Calls a function. The low byte of \var{argc} indicates the number of
-positional parameters, the high byte the number of keyword parameters.
-On the stack, the opcode finds the keyword parameters first. For each
-keyword argument, the value is on top of the key. Below the keyword
-parameters, the positional parameters are on the stack, with the
-right-most parameter on top. Below the parameters, the function object
-to call is on the stack.
-\end{opcodedesc}
-
-\begin{opcodedesc}{MAKE_FUNCTION}{argc}
-Pushes a new function object on the stack. TOS is the code associated
-with the function. The function object is defined to have \var{argc}
-default parameters, which are found below TOS.
-\end{opcodedesc}
-
-\begin{opcodedesc}{BUILD_SLICE}{argc}
-Pushes a slice object on the stack. \var{argc} must be 2 or 3. If it
-is 2, \code{slice(TOS1, TOS)} is pushed; if it is 3,
-\code{slice(TOS2, TOS1, TOS)} is pushed.
-See the \code{slice()}\bifuncindex{slice} built-in function.
-\end{opcodedesc}
diff --git a/Doc/liberrno.tex b/Doc/liberrno.tex
deleted file mode 100644
index 40ab90d..0000000
--- a/Doc/liberrno.tex
+++ /dev/null
@@ -1,146 +0,0 @@
-\section{Standard Module \module{errno}}
-\label{module-errno}
-\stmodindex{errno}
-
-
-This module makes available standard errno system symbols.
-The value of each symbol is the corresponding integer value.
-The names and descriptions are borrowed from \file{linux/include/errno.h},
-which should be pretty all-inclusive.
-
-\begin{datadesc}{errorcode}
- Dictionary providing a mapping from the errno value to the string
- name in the underlying system. For instance,
- \code{errno.errorcode[errno.EPERM]} maps to \code{'EPERM'}.
-\end{datadesc}
-
-To translate a numeric error code to an error message, use
-\function{os.strerror()}.
-
-Of the following list, symbols that are not used on the current
-platform are not defined by the module. Symbols available can
-include:
-
-\begin{datadesc}{EPERM} Operation not permitted \end{datadesc}
-\begin{datadesc}{ENOENT} No such file or directory \end{datadesc}
-\begin{datadesc}{ESRCH} No such process \end{datadesc}
-\begin{datadesc}{EINTR} Interrupted system call \end{datadesc}
-\begin{datadesc}{EIO} I/O error \end{datadesc}
-\begin{datadesc}{ENXIO} No such device or address \end{datadesc}
-\begin{datadesc}{E2BIG} Arg list too long \end{datadesc}
-\begin{datadesc}{ENOEXEC} Exec format error \end{datadesc}
-\begin{datadesc}{EBADF} Bad file number \end{datadesc}
-\begin{datadesc}{ECHILD} No child processes \end{datadesc}
-\begin{datadesc}{EAGAIN} Try again \end{datadesc}
-\begin{datadesc}{ENOMEM} Out of memory \end{datadesc}
-\begin{datadesc}{EACCES} Permission denied \end{datadesc}
-\begin{datadesc}{EFAULT} Bad address \end{datadesc}
-\begin{datadesc}{ENOTBLK} Block device required \end{datadesc}
-\begin{datadesc}{EBUSY} Device or resource busy \end{datadesc}
-\begin{datadesc}{EEXIST} File exists \end{datadesc}
-\begin{datadesc}{EXDEV} Cross-device link \end{datadesc}
-\begin{datadesc}{ENODEV} No such device \end{datadesc}
-\begin{datadesc}{ENOTDIR} Not a directory \end{datadesc}
-\begin{datadesc}{EISDIR} Is a directory \end{datadesc}
-\begin{datadesc}{EINVAL} Invalid argument \end{datadesc}
-\begin{datadesc}{ENFILE} File table overflow \end{datadesc}
-\begin{datadesc}{EMFILE} Too many open files \end{datadesc}
-\begin{datadesc}{ENOTTY} Not a typewriter \end{datadesc}
-\begin{datadesc}{ETXTBSY} Text file busy \end{datadesc}
-\begin{datadesc}{EFBIG} File too large \end{datadesc}
-\begin{datadesc}{ENOSPC} No space left on device \end{datadesc}
-\begin{datadesc}{ESPIPE} Illegal seek \end{datadesc}
-\begin{datadesc}{EROFS} Read-only file system \end{datadesc}
-\begin{datadesc}{EMLINK} Too many links \end{datadesc}
-\begin{datadesc}{EPIPE} Broken pipe \end{datadesc}
-\begin{datadesc}{EDOM} Math argument out of domain of func \end{datadesc}
-\begin{datadesc}{ERANGE} Math result not representable \end{datadesc}
-\begin{datadesc}{EDEADLK} Resource deadlock would occur \end{datadesc}
-\begin{datadesc}{ENAMETOOLONG} File name too long \end{datadesc}
-\begin{datadesc}{ENOLCK} No record locks available \end{datadesc}
-\begin{datadesc}{ENOSYS} Function not implemented \end{datadesc}
-\begin{datadesc}{ENOTEMPTY} Directory not empty \end{datadesc}
-\begin{datadesc}{ELOOP} Too many symbolic links encountered \end{datadesc}
-\begin{datadesc}{EWOULDBLOCK} Operation would block \end{datadesc}
-\begin{datadesc}{ENOMSG} No message of desired type \end{datadesc}
-\begin{datadesc}{EIDRM} Identifier removed \end{datadesc}
-\begin{datadesc}{ECHRNG} Channel number out of range \end{datadesc}
-\begin{datadesc}{EL2NSYNC} Level 2 not synchronized \end{datadesc}
-\begin{datadesc}{EL3HLT} Level 3 halted \end{datadesc}
-\begin{datadesc}{EL3RST} Level 3 reset \end{datadesc}
-\begin{datadesc}{ELNRNG} Link number out of range \end{datadesc}
-\begin{datadesc}{EUNATCH} Protocol driver not attached \end{datadesc}
-\begin{datadesc}{ENOCSI} No CSI structure available \end{datadesc}
-\begin{datadesc}{EL2HLT} Level 2 halted \end{datadesc}
-\begin{datadesc}{EBADE} Invalid exchange \end{datadesc}
-\begin{datadesc}{EBADR} Invalid request descriptor \end{datadesc}
-\begin{datadesc}{EXFULL} Exchange full \end{datadesc}
-\begin{datadesc}{ENOANO} No anode \end{datadesc}
-\begin{datadesc}{EBADRQC} Invalid request code \end{datadesc}
-\begin{datadesc}{EBADSLT} Invalid slot \end{datadesc}
-\begin{datadesc}{EDEADLOCK} File locking deadlock error \end{datadesc}
-\begin{datadesc}{EBFONT} Bad font file format \end{datadesc}
-\begin{datadesc}{ENOSTR} Device not a stream \end{datadesc}
-\begin{datadesc}{ENODATA} No data available \end{datadesc}
-\begin{datadesc}{ETIME} Timer expired \end{datadesc}
-\begin{datadesc}{ENOSR} Out of streams resources \end{datadesc}
-\begin{datadesc}{ENONET} Machine is not on the network \end{datadesc}
-\begin{datadesc}{ENOPKG} Package not installed \end{datadesc}
-\begin{datadesc}{EREMOTE} Object is remote \end{datadesc}
-\begin{datadesc}{ENOLINK} Link has been severed \end{datadesc}
-\begin{datadesc}{EADV} Advertise error \end{datadesc}
-\begin{datadesc}{ESRMNT} Srmount error \end{datadesc}
-\begin{datadesc}{ECOMM} Communication error on send \end{datadesc}
-\begin{datadesc}{EPROTO} Protocol error \end{datadesc}
-\begin{datadesc}{EMULTIHOP} Multihop attempted \end{datadesc}
-\begin{datadesc}{EDOTDOT} RFS specific error \end{datadesc}
-\begin{datadesc}{EBADMSG} Not a data message \end{datadesc}
-\begin{datadesc}{EOVERFLOW} Value too large for defined data type \end{datadesc}
-\begin{datadesc}{ENOTUNIQ} Name not unique on network \end{datadesc}
-\begin{datadesc}{EBADFD} File descriptor in bad state \end{datadesc}
-\begin{datadesc}{EREMCHG} Remote address changed \end{datadesc}
-\begin{datadesc}{ELIBACC} Can not access a needed shared library \end{datadesc}
-\begin{datadesc}{ELIBBAD} Accessing a corrupted shared library \end{datadesc}
-\begin{datadesc}{ELIBSCN} .lib section in a.out corrupted \end{datadesc}
-\begin{datadesc}{ELIBMAX} Attempting to link in too many shared libraries \end{datadesc}
-\begin{datadesc}{ELIBEXEC} Cannot exec a shared library directly \end{datadesc}
-\begin{datadesc}{EILSEQ} Illegal byte sequence \end{datadesc}
-\begin{datadesc}{ERESTART} Interrupted system call should be restarted \end{datadesc}
-\begin{datadesc}{ESTRPIPE} Streams pipe error \end{datadesc}
-\begin{datadesc}{EUSERS} Too many users \end{datadesc}
-\begin{datadesc}{ENOTSOCK} Socket operation on non-socket \end{datadesc}
-\begin{datadesc}{EDESTADDRREQ} Destination address required \end{datadesc}
-\begin{datadesc}{EMSGSIZE} Message too long \end{datadesc}
-\begin{datadesc}{EPROTOTYPE} Protocol wrong type for socket \end{datadesc}
-\begin{datadesc}{ENOPROTOOPT} Protocol not available \end{datadesc}
-\begin{datadesc}{EPROTONOSUPPORT} Protocol not supported \end{datadesc}
-\begin{datadesc}{ESOCKTNOSUPPORT} Socket type not supported \end{datadesc}
-\begin{datadesc}{EOPNOTSUPP} Operation not supported on transport endpoint \end{datadesc}
-\begin{datadesc}{EPFNOSUPPORT} Protocol family not supported \end{datadesc}
-\begin{datadesc}{EAFNOSUPPORT} Address family not supported by protocol \end{datadesc}
-\begin{datadesc}{EADDRINUSE} Address already in use \end{datadesc}
-\begin{datadesc}{EADDRNOTAVAIL} Cannot assign requested address \end{datadesc}
-\begin{datadesc}{ENETDOWN} Network is down \end{datadesc}
-\begin{datadesc}{ENETUNREACH} Network is unreachable \end{datadesc}
-\begin{datadesc}{ENETRESET} Network dropped connection because of reset \end{datadesc}
-\begin{datadesc}{ECONNABORTED} Software caused connection abort \end{datadesc}
-\begin{datadesc}{ECONNRESET} Connection reset by peer \end{datadesc}
-\begin{datadesc}{ENOBUFS} No buffer space available \end{datadesc}
-\begin{datadesc}{EISCONN} Transport endpoint is already connected \end{datadesc}
-\begin{datadesc}{ENOTCONN} Transport endpoint is not connected \end{datadesc}
-\begin{datadesc}{ESHUTDOWN} Cannot send after transport endpoint shutdown \end{datadesc}
-\begin{datadesc}{ETOOMANYREFS} Too many references: cannot splice \end{datadesc}
-\begin{datadesc}{ETIMEDOUT} Connection timed out \end{datadesc}
-\begin{datadesc}{ECONNREFUSED} Connection refused \end{datadesc}
-\begin{datadesc}{EHOSTDOWN} Host is down \end{datadesc}
-\begin{datadesc}{EHOSTUNREACH} No route to host \end{datadesc}
-\begin{datadesc}{EALREADY} Operation already in progress \end{datadesc}
-\begin{datadesc}{EINPROGRESS} Operation now in progress \end{datadesc}
-\begin{datadesc}{ESTALE} Stale NFS file handle \end{datadesc}
-\begin{datadesc}{EUCLEAN} Structure needs cleaning \end{datadesc}
-\begin{datadesc}{ENOTNAM} Not a XENIX named type file \end{datadesc}
-\begin{datadesc}{ENAVAIL} No XENIX semaphores available \end{datadesc}
-\begin{datadesc}{EISNAM} Is a named type file \end{datadesc}
-\begin{datadesc}{EREMOTEIO} Remote I/O error \end{datadesc}
-\begin{datadesc}{EDQUOT} Quota exceeded \end{datadesc}
-
diff --git a/Doc/libexcs.tex b/Doc/libexcs.tex
deleted file mode 100644
index 7d2d85f..0000000
--- a/Doc/libexcs.tex
+++ /dev/null
@@ -1,272 +0,0 @@
-\section{Built-in Exceptions}
-\label{module-exceptions}
-\stmodindex{exceptions}
-
-Exceptions can be class objects or string objects. While
-traditionally, most exceptions have been string objects, in Python
-1.5, all standard exceptions have been converted to class objects,
-and users are encouraged to the the same. The source code for those
-exceptions is present in the standard library module
-\code{exceptions}; this module never needs to be imported explicitly.
-
-For backward compatibility, when Python is invoked with the \code{-X}
-option, the standard exceptions are strings. This may be needed to
-run some code that breaks because of the different semantics of class
-based exceptions. The \code{-X} option will become obsolete in future
-Python versions, so the recommended solution is to fix the code.
-
-Two distinct string objects with the same value are considered different
-exceptions. This is done to force programmers to use exception names
-rather than their string value when specifying exception handlers.
-The string value of all built-in exceptions is their name, but this is
-not a requirement for user-defined exceptions or exceptions defined by
-library modules.
-
-For class exceptions, in a \code{try} statement with an \code{except}
-clause that mentions a particular class, that clause also handles
-any exception classes derived from that class (but not exception
-classes from which \emph{it} is derived). Two exception classes
-that are not related via subclassing are never equivalent, even if
-they have the same name.
-\stindex{try}
-\stindex{except}
-
-The built-in exceptions listed below can be generated by the
-interpreter or built-in functions. Except where mentioned, they have
-an ``associated value'' indicating the detailed cause of the error.
-This may be a string or a tuple containing several items of
-information (e.g., an error code and a string explaining the code).
-The associated value is the second argument to the \code{raise}
-statement. For string exceptions, the associated value itself will be
-stored in the variable named as the second argument of the
-\code{except} clause (if any). For class exceptions derived from
-the root class \code{Exception}, that variable receives the exception
-instance, and the associated value is present as the exception
-instance's \code{args} attribute; this is a tuple even if the second
-argument to \code{raise} was not (then it is a singleton tuple).
-\stindex{raise}
-
-User code can raise built-in exceptions. This can be used to test an
-exception handler or to report an error condition ``just like'' the
-situation in which the interpreter raises the same exception; but
-beware that there is nothing to prevent user code from raising an
-inappropriate error.
-
-\setindexsubitem{(built-in exception base class)}
-
-The following exceptions are only used as base classes for other
-exceptions. When string-based standard exceptions are used, they
-are tuples containing the directly derived classes.
-
-\begin{excdesc}{Exception}
-The root class for exceptions. All built-in exceptions are derived
-from this class. All user-defined exceptions should also be derived
-from this class, but this is not (yet) enforced. The \code{str()}
-function, when applied to an instance of this class (or most derived
-classes) returns the string value of the argument or arguments, or an
-empty string if no arguments were given to the constructor. When used
-as a sequence, this accesses the arguments given to the constructor
-(handy for backward compatibility with old code).
-\end{excdesc}
-
-\begin{excdesc}{StandardError}
-The base class for built-in exceptions. All built-in exceptions are
-derived from this class, which is itself derived from the root class
-\code{Exception}.
-\end{excdesc}
-
-\begin{excdesc}{ArithmeticError}
-The base class for those built-in exceptions that are raised for
-various arithmetic errors: \code{OverflowError},
-\code{ZeroDivisionError}, \code{FloatingPointError}.
-\end{excdesc}
-
-\begin{excdesc}{LookupError}
-The base class for thise exceptions that are raised when a key or
-index used on a mapping or sequence is invalid: \code{IndexError},
-\code{KeyError}.
-\end{excdesc}
-
-\setindexsubitem{(built-in exception)}
-
-The following exceptions are the exceptions that are actually raised.
-They are class objects, except when the \code{-X} option is used to
-revert back to string-based standard exceptions.
-
-\begin{excdesc}{AssertionError}
-Raised when an \code{assert} statement fails.
-\stindex{assert}
-\end{excdesc}
-
-\begin{excdesc}{AttributeError}
-% xref to attribute reference?
- Raised when an attribute reference or assignment fails. (When an
- object does not support attribute references or attribute assignments
- at all, \code{TypeError} is raised.)
-\end{excdesc}
-
-\begin{excdesc}{EOFError}
-% XXXJH xrefs here
- Raised when one of the built-in functions (\code{input()} or
- \code{raw_input()}) hits an end-of-file condition (\EOF{}) without
- reading any data.
-% XXXJH xrefs here
- (N.B.: the \code{read()} and \code{readline()} methods of file
- objects return an empty string when they hit \EOF{}.) No associated value.
-\end{excdesc}
-
-\begin{excdesc}{FloatingPointError}
-Raised when a floating point operation fails. This exception is
-always defined, but can only be raised when Python is configured with
-the \code{--with-fpectl} option, or the \code{WANT_SIGFPE_HANDLER}
-symbol is defined in the \file{config.h} file.
-\end{excdesc}
-
-\begin{excdesc}{IOError}
-% XXXJH xrefs here
- Raised when an I/O operation (such as a \code{print} statement, the
- built-in \code{open()} function or a method of a file object) fails
- for an I/O-related reason, e.g., ``file not found'' or ``disk full''.
-
-When class exceptions are used, and this exception is instantiated as
-\code{IOError(errno, strerror)}, the instance has two additional
-attributes \code{errno} and \code{strerror} set to the error code and
-the error message, respectively. These attributes default to
-\code{None}.
-\end{excdesc}
-
-\begin{excdesc}{ImportError}
-% XXXJH xref to import statement?
- Raised when an \code{import} statement fails to find the module
- definition or when a \code{from {\rm \ldots} import} fails to find a
- name that is to be imported.
-\end{excdesc}
-
-\begin{excdesc}{IndexError}
-% XXXJH xref to sequences
- Raised when a sequence subscript is out of range. (Slice indices are
- silently truncated to fall in the allowed range; if an index is not a
- plain integer, \code{TypeError} is raised.)
-\end{excdesc}
-
-\begin{excdesc}{KeyError}
-% XXXJH xref to mapping objects?
- Raised when a mapping (dictionary) key is not found in the set of
- existing keys.
-\end{excdesc}
-
-\begin{excdesc}{KeyboardInterrupt}
- Raised when the user hits the interrupt key (normally
- \kbd{Control-C} or \kbd{DEL}). During execution, a check for
- interrupts is made regularly.
-% XXXJH xrefs here
- Interrupts typed when a built-in function \function{input()} or
- \function{raw_input()}) is waiting for input also raise this
- exception. This exception has no associated value.
-\end{excdesc}
-
-\begin{excdesc}{MemoryError}
- Raised when an operation runs out of memory but the situation may
- still be rescued (by deleting some objects). The associated value is
- a string indicating what kind of (internal) operation ran out of memory.
- Note that because of the underlying memory management architecture
- (\C{}'s \code{malloc()} function), the interpreter may not always be able
- to completely recover from this situation; it nevertheless raises an
- exception so that a stack traceback can be printed, in case a run-away
- program was the cause.
-\end{excdesc}
-
-\begin{excdesc}{NameError}
- Raised when a local or global name is not found. This applies only
- to unqualified names. The associated value is the name that could
- not be found.
-\end{excdesc}
-
-\begin{excdesc}{OverflowError}
-% XXXJH reference to long's and/or int's?
- Raised when the result of an arithmetic operation is too large to be
- represented. This cannot occur for long integers (which would rather
- raise \code{MemoryError} than give up). Because of the lack of
- standardization of floating point exception handling in \C{}, most
- floating point operations also aren't checked. For plain integers,
- all operations that can overflow are checked except left shift, where
- typical applications prefer to drop bits than raise an exception.
-\end{excdesc}
-
-\begin{excdesc}{RuntimeError}
- Raised when an error is detected that doesn't fall in any of the
- other categories. The associated value is a string indicating what
- precisely went wrong. (This exception is mostly a relic from a
- previous version of the interpreter; it is not used very much any
- more.)
-\end{excdesc}
-
-\begin{excdesc}{SyntaxError}
-% XXXJH xref to these functions?
- Raised when the parser encounters a syntax error. This may occur in
- an \code{import} statement, in an \code{exec} statement, in a call
- to the built-in function \code{eval()} or \code{input()}, or
- when reading the initial script or standard input (also
- interactively).
-
-When class exceptions are used, instances of this class have
-atttributes \code{filename}, \code{lineno}, \code{offset} and
-\code{text} for easier access to the details; for string exceptions,
-the associated value is usually a tuple of the form
-\code{(message, (filename, lineno, offset, text))}.
-For class exceptions, \code{str()} returns only the message.
-\end{excdesc}
-
-\begin{excdesc}{SystemError}
- Raised when the interpreter finds an internal error, but the
- situation does not look so serious to cause it to abandon all hope.
- The associated value is a string indicating what went wrong (in
- low-level terms).
-
- You should report this to the author or maintainer of your Python
- interpreter. Be sure to report the version string of the Python
- interpreter (\code{sys.version}; it is also printed at the start of an
- interactive Python session), the exact error message (the exception's
- associated value) and if possible the source of the program that
- triggered the error.
-\end{excdesc}
-
-\begin{excdesc}{SystemExit}
-% XXXJH xref to module sys?
- This exception is raised by the \code{sys.exit()} function. When it
- is not handled, the Python interpreter exits; no stack traceback is
- printed. If the associated value is a plain integer, it specifies the
- system exit status (passed to \C{}'s \code{exit()} function); if it is
- \code{None}, the exit status is zero; if it has another type (such as
- a string), the object's value is printed and the exit status is one.
-
-When class exceptions are used, the instance has an attribute
-\code{code} which is set to the proposed exit status or error message
-(defaulting to \code{None}).
-
- A call to \code{sys.exit()} is translated into an exception so that
- clean-up handlers (\code{finally} clauses of \code{try} statements)
- can be executed, and so that a debugger can execute a script without
- running the risk of losing control. The \code{os._exit()} function
- can be used if it is absolutely positively necessary to exit
- immediately (e.g., after a \code{fork()} in the child process).
-\end{excdesc}
-
-\begin{excdesc}{TypeError}
- Raised when a built-in operation or function is applied to an object
- of inappropriate type. The associated value is a string giving
- details about the type mismatch.
-\end{excdesc}
-
-\begin{excdesc}{ValueError}
- Raised when a built-in operation or function receives an argument
- that has the right type but an inappropriate value, and the
- situation is not described by a more precise exception such as
- \code{IndexError}.
-\end{excdesc}
-
-\begin{excdesc}{ZeroDivisionError}
- Raised when the second argument of a division or modulo operation is
- zero. The associated value is a string indicating the type of the
- operands and the operation.
-\end{excdesc}
diff --git a/Doc/libfcntl.tex b/Doc/libfcntl.tex
deleted file mode 100644
index 1c64af9..0000000
--- a/Doc/libfcntl.tex
+++ /dev/null
@@ -1,75 +0,0 @@
-% Manual text by Jaap Vermeulen
-\section{Built-in Module \module{fcntl}}
-\label{module-fcntl}
-\bimodindex{fcntl}
-\indexii{UNIX@\UNIX{}}{file control}
-\indexii{UNIX@\UNIX{}}{I/O control}
-
-This module performs file control and I/O control on file descriptors.
-It is an interface to the \cfunction{fcntl()} and \cfunction{ioctl()}
-\UNIX{} routines. File descriptors can be obtained with the
-\method{fileno()} method of a file or socket object.
-
-The module defines the following functions:
-
-
-\begin{funcdesc}{fcntl}{fd, op\optional{, arg}}
- Perform the requested operation on file descriptor \var{fd}.
- The operation is defined by \var{op} and is operating system
- dependent. Typically these codes can be retrieved from the library
- module \module{FCNTL}\refstmodindex{FCNTL}. The argument \var{arg}
- is optional, and defaults to the integer value \code{0}. When
- present, it can either be an integer value, or a string. With
- the argument missing or an integer value, the return value of this
- function is the integer return value of the \C{} \cfunction{fcntl()}
- call. When the argument is a string it represents a binary
- structure, e.g.\ created by \function{struct.pack()}. The binary
- data is copied to a buffer whose address is passed to the \C{}
- \cfunction{fcntl()} call. The return value after a successful call
- is the contents of the buffer, converted to a string object. In
- case the \cfunction{fcntl()} fails, an \exception{IOError} is
- raised.
-\end{funcdesc}
-
-\begin{funcdesc}{ioctl}{fd, op, arg}
- This function is identical to the \function{fcntl()} function, except
- that the operations are typically defined in the library module
- \module{IOCTL}.
-\end{funcdesc}
-
-\begin{funcdesc}{flock}{fd, op}
-Perform the lock operation \var{op} on file descriptor \var{fd}.
-See the \UNIX{} manual \manpage{flock}{3} for details. (On some
-systems, this function is emulated using \cfunction{fcntl()}.)
-\end{funcdesc}
-
-\begin{funcdesc}{lockf}{fd, code, \optional{len, \optional{start, \optional{whence}}}}
-This is a wrapper around the \constant{FCNTL.F_SETLK} and
-\constant{FCNTL.F_SETLKW} \function{fcntl()} calls. See the \UNIX{}
-manual for details.
-\end{funcdesc}
-
-If the library modules \module{FCNTL}\refstmodindex{FCNTL} or
-\module{IOCTL}\refstmodindex{IOCTL} are missing, you can find the
-opcodes in the \C{} include files \code{<sys/fcntl.h>} and
-\code{<sys/ioctl.h>}. You can create the modules yourself with the
-\program{h2py} script, found in the \file{Tools/scripts/} directory.
-
-
-Examples (all on a SVR4 compliant system):
-
-\begin{verbatim}
-import struct, FCNTL
-
-file = open(...)
-rv = fcntl(file.fileno(), FCNTL.O_NDELAY, 1)
-
-lockdata = struct.pack('hhllhh', FCNTL.F_WRLCK, 0, 0, 0, 0, 0)
-rv = fcntl(file.fileno(), FCNTL.F_SETLKW, lockdata)
-\end{verbatim}
-
-Note that in the first example the return value variable \code{rv} will
-hold an integer value; in the second example it will hold a string
-value. The structure lay-out for the \var{lockdata} variable is
-system dependent --- therefore using the \function{flock()} call may be
-better.
diff --git a/Doc/libfileinput.tex b/Doc/libfileinput.tex
deleted file mode 100644
index 0c0e81b..0000000
--- a/Doc/libfileinput.tex
+++ /dev/null
@@ -1,124 +0,0 @@
-% Documentation heavily adapted from module docstring.
-
-\section{Standard Module \module{fileinput}}
-\stmodindex{fileinput}
-\label{module-fileinput}
-
-This module implements a helper class and functions to quickly write a
-loop over standard input or a list of files.
-
-The typical use is:
-
-\begin{verbatim}
-import fileinput
-for line in fileinput.input():
- process(line)
-\end{verbatim}
-
-This iterates over the lines of all files listed in
-\code{sys.argv[1:]}, defaulting to \code{sys.stdin} if the list is
-empty. If a filename is \code{'-'}, it is also replaced by
-\code{sys.stdin}. To specify an alternative list of filenames, pass
-it as the first argument to \function{input()}. A single file name is
-also allowed.
-
-All files are opened in text mode. If an I/O error occurs during
-opening or reading a file, \exception{IOError} is raised.
-
-If \code{sys.stdin} is used more than once, the second and further use
-will return no lines, except perhaps for interactive use, or if it has
-been explicitly reset (e.g. using \code{sys.stdin.seek(0)}).
-
-Empty files are opened and immediately closed; the only time their
-presence in the list of filenames is noticeable at all is when the
-last file opened is empty.
-
-It is possible that the last line of a file does not end in a newline
-character; lines are returned including the trailing newline when it
-is present.
-
-The following function is the primary interface of this module:
-
-\begin{funcdesc}{input}{\optional{files\optional{,
- inplace\optional{, backup}}}}
- Create an instance of the \class{FileInput} class. The instance
- will be used as global state for the functions of this module, and
- is also returned to use during iteration.
-\end{funcdesc}
-
-
-The following functions use the global state created by
-\function{input()}; if there is no active state,
-\exception{RuntimeError} is raised.
-
-\begin{funcdesc}{filename}{}
- Return the name of the file currently being read. Before the first
- line has been read, returns \code{None}.
-\end{funcdesc}
-
-\begin{funcdesc}{lineno}{}
- Return the cumulative line number of the line that has just been
- read. Before the first line has been read, returns \code{0}. After
- the last line of the last file has been read, returns the line
- number of that line.
-\end{funcdesc}
-
-\begin{funcdesc}{filelineno}{}
- Return the line number in the current file. Before the first line
- has been read, returns \code{0}. After the last line of the last
- file has been read, returns the line number of that line within the
- file.
-\end{funcdesc}
-
-\begin{funcdesc}{isfirstline}{}
- Return true iff the line just read is the first line of its file.
-\end{funcdesc}
-
-\begin{funcdesc}{isstdin}{}
- Returns true iff the last line was read from \code{sys.stdin}.
-\end{funcdesc}
-
-\begin{funcdesc}{nextfile}{}
- Close the current file so that the next iteration will read the
- first line from the next file (if any); lines not read from the file
- will not count towards the cumulative line count. The filename is
- not changed until after the first line of the next file has been
- read. Before the first line has been read, this function has no
- effect; it cannot be used to skip the first file. After the last
- line of the last file has been read, this function has no effect.
-\end{funcdesc}
-
-\begin{funcdesc}{close}{}
- Close the sequence.
-\end{funcdesc}
-
-
-The class which implements the sequence behavior provided by the
-module is available for subclassing as well:
-
-\begin{classdesc}{FileInput}{\optional{files\optional{,
- inplace\optional{, backup}}}}
- Class \class{FileInput} is the implementation; its methods
- \method{filename()}, \method{lineno()}, \method{fileline()},
- \method{isfirstline()}, \method{isstdin()}, \method{nextfile()} and
- \method{close()} correspond to the functions of the same name in the
- module. In addition it has a \method{readline()} method which
- returns the next input line, and a \method{__getitem__()} method
- which implements the sequence behavior. The sequence must be
- accessed in strictly sequential order; random access and
- \method{readline()} cannot be mixed.
-\end{classdesc}
-
-\strong{Optional in-place filtering:} if the keyword argument
-\code{\var{inplace}=1} is passed to \function{input()} or to the
-\class{FileInput} constructor, the file is moved to a backup file and
-standard output is directed to the input file.
-This makes it possible to write a filter that rewrites its input file
-in place. If the keyword argument \code{\var{backup}='.<some
-extension>'} is also given, it specifies the extension for the backup
-file, and the backup file remains around; by default, the extension is
-\code{'.bak'} and it is deleted when the output file is closed. In-place
-filtering is disabled when standard input is read.
-
-\strong{Caveat:} The current implementation does not work for MS-DOS
-8+3 filesystems.
diff --git a/Doc/libfl.tex b/Doc/libfl.tex
deleted file mode 100644
index 7ebec7d..0000000
--- a/Doc/libfl.tex
+++ /dev/null
@@ -1,491 +0,0 @@
-\section{Built-in Module \module{fl}}
-\label{module-fl}
-\bimodindex{fl}
-
-This module provides an interface to the FORMS Library\index{FORMS
-Library} by Mark Overmars\index{Overmars, Mark}. The source for the
-library can be retrieved by anonymous ftp from host
-\samp{ftp.cs.ruu.nl}, directory \file{SGI/FORMS}. It was last tested
-with version 2.0b.
-
-Most functions are literal translations of their \C{} equivalents,
-dropping the initial \samp{fl_} from their name. Constants used by
-the library are defined in module \module{FL} described below.
-
-The creation of objects is a little different in Python than in C:
-instead of the `current form' maintained by the library to which new
-FORMS objects are added, all functions that add a FORMS object to a
-form are methods of the Python object representing the form.
-Consequently, there are no Python equivalents for the C functions
-\cfunction{fl_addto_form()} and \cfunction{fl_end_form()}, and the
-equivalent of \cfunction{fl_bgn_form()} is called
-\function{fl.make_form()}.
-
-Watch out for the somewhat confusing terminology: FORMS uses the word
-\dfn{object} for the buttons, sliders etc. that you can place in a form.
-In Python, `object' means any value. The Python interface to FORMS
-introduces two new Python object types: form objects (representing an
-entire form) and FORMS objects (representing one button, slider etc.).
-Hopefully this isn't too confusing.
-
-There are no `free objects' in the Python interface to FORMS, nor is
-there an easy way to add object classes written in Python. The FORMS
-interface to GL event handling is available, though, so you can mix
-FORMS with pure GL windows.
-
-\strong{Please note:} importing \module{fl} implies a call to the GL
-function \cfunction{foreground()} and to the FORMS routine
-\cfunction{fl_init()}.
-
-\subsection{Functions Defined in Module \module{fl}}
-\nodename{FL Functions}
-
-Module \module{fl} defines the following functions. For more
-information about what they do, see the description of the equivalent
-\C{} function in the FORMS documentation:
-
-\begin{funcdesc}{make_form}{type, width, height}
-Create a form with given type, width and height. This returns a
-\dfn{form} object, whose methods are described below.
-\end{funcdesc}
-
-\begin{funcdesc}{do_forms}{}
-The standard FORMS main loop. Returns a Python object representing
-the FORMS object needing interaction, or the special value
-\constant{FL.EVENT}.
-\end{funcdesc}
-
-\begin{funcdesc}{check_forms}{}
-Check for FORMS events. Returns what \function{do_forms()} above
-returns, or \code{None} if there is no event that immediately needs
-interaction.
-\end{funcdesc}
-
-\begin{funcdesc}{set_event_call_back}{function}
-Set the event callback function.
-\end{funcdesc}
-
-\begin{funcdesc}{set_graphics_mode}{rgbmode, doublebuffering}
-Set the graphics modes.
-\end{funcdesc}
-
-\begin{funcdesc}{get_rgbmode}{}
-Return the current rgb mode. This is the value of the \C{} global
-variable \cdata{fl_rgbmode}.
-\end{funcdesc}
-
-\begin{funcdesc}{show_message}{str1, str2, str3}
-Show a dialog box with a three-line message and an OK button.
-\end{funcdesc}
-
-\begin{funcdesc}{show_question}{str1, str2, str3}
-Show a dialog box with a three-line message and YES and NO buttons.
-It returns \code{1} if the user pressed YES, \code{0} if NO.
-\end{funcdesc}
-
-\begin{funcdesc}{show_choice}{str1, str2, str3, but1\optional{,
- but2\optional{, but3}}}
-Show a dialog box with a three-line message and up to three buttons.
-It returns the number of the button clicked by the user
-(\code{1}, \code{2} or \code{3}).
-\end{funcdesc}
-
-\begin{funcdesc}{show_input}{prompt, default}
-Show a dialog box with a one-line prompt message and text field in
-which the user can enter a string. The second argument is the default
-input string. It returns the string value as edited by the user.
-\end{funcdesc}
-
-\begin{funcdesc}{show_file_selector}{message, directory, pattern, default}
-Show a dialog box in which the user can select a file. It returns
-the absolute filename selected by the user, or \code{None} if the user
-presses Cancel.
-\end{funcdesc}
-
-\begin{funcdesc}{get_directory}{}
-\funcline{get_pattern}{}
-\funcline{get_filename}{}
-These functions return the directory, pattern and filename (the tail
-part only) selected by the user in the last
-\function{show_file_selector()} call.
-\end{funcdesc}
-
-\begin{funcdesc}{qdevice}{dev}
-\funcline{unqdevice}{dev}
-\funcline{isqueued}{dev}
-\funcline{qtest}{}
-\funcline{qread}{}
-%\funcline{blkqread}{?}
-\funcline{qreset}{}
-\funcline{qenter}{dev, val}
-\funcline{get_mouse}{}
-\funcline{tie}{button, valuator1, valuator2}
-These functions are the FORMS interfaces to the corresponding GL
-functions. Use these if you want to handle some GL events yourself
-when using \function{fl.do_events()}. When a GL event is detected that
-FORMS cannot handle, \function{fl.do_forms()} returns the special value
-\constant{FL.EVENT} and you should call \function{fl.qread()} to read
-the event from the queue. Don't use the equivalent GL functions!
-\end{funcdesc}
-
-\begin{funcdesc}{color}{}
-\funcline{mapcolor}{}
-\funcline{getmcolor}{}
-See the description in the FORMS documentation of
-\cfunction{fl_color()}, \cfunction{fl_mapcolor()} and
-\cfunction{fl_getmcolor()}.
-\end{funcdesc}
-
-\subsection{Form Objects}
-\label{form-objects}
-
-Form objects (returned by \function{make_form()} above) have the
-following methods. Each method corresponds to a \C{} function whose
-name is prefixed with \samp{fl_}; and whose first argument is a form
-pointer; please refer to the official FORMS documentation for
-descriptions.
-
-All the \method{add_*()} methods return a Python object representing
-the FORMS object. Methods of FORMS objects are described below. Most
-kinds of FORMS object also have some methods specific to that kind;
-these methods are listed here.
-
-\begin{flushleft}
-
-\begin{methoddesc}[form]{show_form}{placement, bordertype, name}
- Show the form.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{hide_form}{}
- Hide the form.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{redraw_form}{}
- Redraw the form.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{set_form_position}{x, y}
-Set the form's position.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{freeze_form}{}
-Freeze the form.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{unfreeze_form}{}
- Unfreeze the form.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{activate_form}{}
- Activate the form.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{deactivate_form}{}
- Deactivate the form.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{bgn_group}{}
- Begin a new group of objects; return a group object.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{end_group}{}
- End the current group of objects.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{find_first}{}
- Find the first object in the form.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{find_last}{}
- Find the last object in the form.
-\end{methoddesc}
-
-%---
-
-\begin{methoddesc}[form]{add_box}{type, x, y, w, h, name}
-Add a box object to the form.
-No extra methods.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{add_text}{type, x, y, w, h, name}
-Add a text object to the form.
-No extra methods.
-\end{methoddesc}
-
-%\begin{methoddesc}[form]{add_bitmap}{type, x, y, w, h, name}
-%Add a bitmap object to the form.
-%\end{methoddesc}
-
-\begin{methoddesc}[form]{add_clock}{type, x, y, w, h, name}
-Add a clock object to the form. \\
-Method:
-\method{get_clock()}.
-\end{methoddesc}
-
-%---
-
-\begin{methoddesc}[form]{add_button}{type, x, y, w, h, name}
-Add a button object to the form. \\
-Methods:
-\method{get_button()},
-\method{set_button()}.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{add_lightbutton}{type, x, y, w, h, name}
-Add a lightbutton object to the form. \\
-Methods:
-\method{get_button()},
-\method{set_button()}.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{add_roundbutton}{type, x, y, w, h, name}
-Add a roundbutton object to the form. \\
-Methods:
-\method{get_button()},
-\method{set_button()}.
-\end{methoddesc}
-
-%---
-
-\begin{methoddesc}[form]{add_slider}{type, x, y, w, h, name}
-Add a slider object to the form. \\
-Methods:
-\method{set_slider_value()},
-\method{get_slider_value()},
-\method{set_slider_bounds()},
-\method{get_slider_bounds()},
-\method{set_slider_return()},
-\method{set_slider_size()},
-\method{set_slider_precision()},
-\method{set_slider_step()}.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{add_valslider}{type, x, y, w, h, name}
-Add a valslider object to the form. \\
-Methods:
-\method{set_slider_value()},
-\method{get_slider_value()},
-\method{set_slider_bounds()},
-\method{get_slider_bounds()},
-\method{set_slider_return()},
-\method{set_slider_size()},
-\method{set_slider_precision()},
-\method{set_slider_step()}.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{add_dial}{type, x, y, w, h, name}
-Add a dial object to the form. \\
-Methods:
-\method{set_dial_value()},
-\method{get_dial_value()},
-\method{set_dial_bounds()},
-\method{get_dial_bounds()}.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{add_positioner}{type, x, y, w, h, name}
-Add a positioner object to the form. \\
-Methods:
-\method{set_positioner_xvalue()},
-\method{set_positioner_yvalue()},
-\method{set_positioner_xbounds()},
-\method{set_positioner_ybounds()},
-\method{get_positioner_xvalue()},
-\method{get_positioner_yvalue()},
-\method{get_positioner_xbounds()},
-\method{get_positioner_ybounds()}.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{add_counter}{type, x, y, w, h, name}
-Add a counter object to the form. \\
-Methods:
-\method{set_counter_value()},
-\method{get_counter_value()},
-\method{set_counter_bounds()},
-\method{set_counter_step()},
-\method{set_counter_precision()},
-\method{set_counter_return()}.
-\end{methoddesc}
-
-%---
-
-\begin{methoddesc}[form]{add_input}{type, x, y, w, h, name}
-Add a input object to the form. \\
-Methods:
-\method{set_input()},
-\method{get_input()},
-\method{set_input_color()},
-\method{set_input_return()}.
-\end{methoddesc}
-
-%---
-
-\begin{methoddesc}[form]{add_menu}{type, x, y, w, h, name}
-Add a menu object to the form. \\
-Methods:
-\method{set_menu()},
-\method{get_menu()},
-\method{addto_menu()}.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{add_choice}{type, x, y, w, h, name}
-Add a choice object to the form. \\
-Methods:
-\method{set_choice()},
-\method{get_choice()},
-\method{clear_choice()},
-\method{addto_choice()},
-\method{replace_choice()},
-\method{delete_choice()},
-\method{get_choice_text()},
-\method{set_choice_fontsize()},
-\method{set_choice_fontstyle()}.
-\end{methoddesc}
-
-\begin{methoddesc}[form]{add_browser}{type, x, y, w, h, name}
-Add a browser object to the form. \\
-Methods:
-\method{set_browser_topline()},
-\method{clear_browser()},
-\method{add_browser_line()},
-\method{addto_browser()},
-\method{insert_browser_line()},
-\method{delete_browser_line()},
-\method{replace_browser_line()},
-\method{get_browser_line()},
-\method{load_browser()},
-\method{get_browser_maxline()},
-\method{select_browser_line()},
-\method{deselect_browser_line()},
-\method{deselect_browser()},
-\method{isselected_browser_line()},
-\method{get_browser()},
-\method{set_browser_fontsize()},
-\method{set_browser_fontstyle()},
-\method{set_browser_specialkey()}.
-\end{methoddesc}
-
-%---
-
-\begin{methoddesc}[form]{add_timer}{type, x, y, w, h, name}
-Add a timer object to the form. \\
-Methods:
-\method{set_timer()},
-\method{get_timer()}.
-\end{methoddesc}
-\end{flushleft}
-
-Form objects have the following data attributes; see the FORMS
-documentation:
-
-\begin{tableiii}{l|l|l}{member}{Name}{C Type}{Meaning}
- \lineiii{window}{int (read-only)}{GL window id}
- \lineiii{w}{float}{form width}
- \lineiii{h}{float}{form height}
- \lineiii{x}{float}{form x origin}
- \lineiii{y}{float}{form y origin}
- \lineiii{deactivated}{int}{nonzero if form is deactivated}
- \lineiii{visible}{int}{nonzero if form is visible}
- \lineiii{frozen}{int}{nonzero if form is frozen}
- \lineiii{doublebuf}{int}{nonzero if double buffering on}
-\end{tableiii}
-
-\subsection{FORMS Objects}
-\label{forms-objects}
-
-Besides methods specific to particular kinds of FORMS objects, all
-FORMS objects also have the following methods:
-
-\begin{methoddesc}[FORMS object]{set_call_back}{function, argument}
-Set the object's callback function and argument. When the object
-needs interaction, the callback function will be called with two
-arguments: the object, and the callback argument. (FORMS objects
-without a callback function are returned by \function{fl.do_forms()}
-or \function{fl.check_forms()} when they need interaction.) Call this
-method without arguments to remove the callback function.
-\end{methoddesc}
-
-\begin{methoddesc}[FORMS object]{delete_object}{}
- Delete the object.
-\end{methoddesc}
-
-\begin{methoddesc}[FORMS object]{show_object}{}
- Show the object.
-\end{methoddesc}
-
-\begin{methoddesc}[FORMS object]{hide_object}{}
- Hide the object.
-\end{methoddesc}
-
-\begin{methoddesc}[FORMS object]{redraw_object}{}
- Redraw the object.
-\end{methoddesc}
-
-\begin{methoddesc}[FORMS object]{freeze_object}{}
- Freeze the object.
-\end{methoddesc}
-
-\begin{methoddesc}[FORMS object]{unfreeze_object}{}
- Unfreeze the object.
-\end{methoddesc}
-
-%\begin{methoddesc}[FORMS object]{handle_object}{} XXX
-%\end{methoddesc}
-
-%\begin{methoddesc}[FORMS object]{handle_object_direct}{} XXX
-%\end{methoddesc}
-
-FORMS objects have these data attributes; see the FORMS documentation:
-
-\begin{tableiii}{l|l|l}{member}{Name}{C Type}{Meaning}
- \lineiii{objclass}{int (read-only)}{object class}
- \lineiii{type}{int (read-only)}{object type}
- \lineiii{boxtype}{int}{box type}
- \lineiii{x}{float}{x origin}
- \lineiii{y}{float}{y origin}
- \lineiii{w}{float}{width}
- \lineiii{h}{float}{height}
- \lineiii{col1}{int}{primary color}
- \lineiii{col2}{int}{secondary color}
- \lineiii{align}{int}{alignment}
- \lineiii{lcol}{int}{label color}
- \lineiii{lsize}{float}{label font size}
- \lineiii{label}{string}{label string}
- \lineiii{lstyle}{int}{label style}
- \lineiii{pushed}{int (read-only)}{(see FORMS docs)}
- \lineiii{focus}{int (read-only)}{(see FORMS docs)}
- \lineiii{belowmouse}{int (read-only)}{(see FORMS docs)}
- \lineiii{frozen}{int (read-only)}{(see FORMS docs)}
- \lineiii{active}{int (read-only)}{(see FORMS docs)}
- \lineiii{input}{int (read-only)}{(see FORMS docs)}
- \lineiii{visible}{int (read-only)}{(see FORMS docs)}
- \lineiii{radio}{int (read-only)}{(see FORMS docs)}
- \lineiii{automatic}{int (read-only)}{(see FORMS docs)}
-\end{tableiii}
-
-\section{Standard Module \module{FL}}
-\label{module-FLuppercase}
-\stmodindex{FL}
-
-This module defines symbolic constants needed to use the built-in
-module \module{fl} (see above); they are equivalent to those defined in
-the \C{} header file \code{<forms.h>} except that the name prefix
-\samp{FL_} is omitted. Read the module source for a complete list of
-the defined names. Suggested use:
-
-\begin{verbatim}
-import fl
-from FL import *
-\end{verbatim}
-
-\section{Standard Module \module{flp}}
-\label{module-flp}
-\stmodindex{flp}
-
-This module defines functions that can read form definitions created
-by the `form designer' (\program{fdesign}) program that comes with the
-FORMS library (see module \module{fl} above).
-
-For now, see the file \file{flp.doc} in the Python library source
-directory for a description.
-
-XXX A complete description should be inserted here!
diff --git a/Doc/libfm.tex b/Doc/libfm.tex
deleted file mode 100644
index abcbaa4..0000000
--- a/Doc/libfm.tex
+++ /dev/null
@@ -1,90 +0,0 @@
-\section{Built-in Module \module{fm}}
-\label{module-fm}
-\bimodindex{fm}
-
-This module provides access to the IRIS \emph{Font Manager} library.
-\index{Font Manager, IRIS}
-\index{IRIS Font Manager}
-It is available only on Silicon Graphics machines.
-See also: \emph{4Sight User's Guide}, Section 1, Chapter 5: ``Using
-the IRIS Font Manager.''
-
-This is not yet a full interface to the IRIS Font Manager.
-Among the unsupported features are: matrix operations; cache
-operations; character operations (use string operations instead); some
-details of font info; individual glyph metrics; and printer matching.
-
-It supports the following operations:
-
-\begin{funcdesc}{init}{}
-Initialization function.
-Calls \cfunction{fminit()}.
-It is normally not necessary to call this function, since it is called
-automatically the first time the \module{fm} module is imported.
-\end{funcdesc}
-
-\begin{funcdesc}{findfont}{fontname}
-Return a font handle object.
-Calls \code{fmfindfont(\var{fontname})}.
-\end{funcdesc}
-
-\begin{funcdesc}{enumerate}{}
-Returns a list of available font names.
-This is an interface to \cfunction{fmenumerate()}.
-\end{funcdesc}
-
-\begin{funcdesc}{prstr}{string}
-Render a string using the current font (see the \function{setfont()} font
-handle method below).
-Calls \code{fmprstr(\var{string})}.
-\end{funcdesc}
-
-\begin{funcdesc}{setpath}{string}
-Sets the font search path.
-Calls \code{fmsetpath(\var{string})}.
-(XXX Does not work!?!)
-\end{funcdesc}
-
-\begin{funcdesc}{fontpath}{}
-Returns the current font search path.
-\end{funcdesc}
-
-Font handle objects support the following operations:
-
-\setindexsubitem{(font handle method)}
-\begin{funcdesc}{scalefont}{factor}
-Returns a handle for a scaled version of this font.
-Calls \code{fmscalefont(\var{fh}, \var{factor})}.
-\end{funcdesc}
-
-\begin{funcdesc}{setfont}{}
-Makes this font the current font.
-Note: the effect is undone silently when the font handle object is
-deleted.
-Calls \code{fmsetfont(\var{fh})}.
-\end{funcdesc}
-
-\begin{funcdesc}{getfontname}{}
-Returns this font's name.
-Calls \code{fmgetfontname(\var{fh})}.
-\end{funcdesc}
-
-\begin{funcdesc}{getcomment}{}
-Returns the comment string associated with this font.
-Raises an exception if there is none.
-Calls \code{fmgetcomment(\var{fh})}.
-\end{funcdesc}
-
-\begin{funcdesc}{getfontinfo}{}
-Returns a tuple giving some pertinent data about this font.
-This is an interface to \code{fmgetfontinfo()}.
-The returned tuple contains the following numbers:
-\code{(}\var{printermatched}, \var{fixed_width}, \var{xorig},
-\var{yorig}, \var{xsize}, \var{ysize}, \var{height},
-\var{nglyphs}\code{)}.
-\end{funcdesc}
-
-\begin{funcdesc}{getstrwidth}{string}
-Returns the width, in pixels, of \var{string} when drawn in this font.
-Calls \code{fmgetstrwidth(\var{fh}, \var{string})}.
-\end{funcdesc}
diff --git a/Doc/libfnmatch.tex b/Doc/libfnmatch.tex
deleted file mode 100644
index f2f82ba..0000000
--- a/Doc/libfnmatch.tex
+++ /dev/null
@@ -1,40 +0,0 @@
-\section{Standard Module \module{fnmatch}}
-\label{module-fnmatch}
-\stmodindex{fnmatch}
-
-This module provides support for \UNIX{} shell-style wildcards, which
-are \emph{not} the same as regular expressions (which are documented
-in the \module{re}\refstmodindex{re} module). The special characters
-used in shell-style wildcards are:
-
-\begin{list}{}{\leftmargin 0.5in \labelwidth 0.45in}
-\item[\code{*}] matches everything
-\item[\code{?}] matches any single character
-\item[\code{[}\var{seq}\code{]}] matches any character in \var{seq}
-\item[\code{[!}\var{seq}\code{]}] matches any character not in \var{seq}
-\end{list}
-
-Note that the filename separator (\code{'/'} on \UNIX{}) is \emph{not}
-special to this module. See module \code{glob}\refstmodindex{glob}
-for pathname expansion (\module{glob} uses \function{fnmatch()} to
-match filename segments).
-
-
-\begin{funcdesc}{fnmatch}{filename, pattern}
-Test whether the \var{filename} string matches the \var{pattern}
-string, returning true or false. If the operating system is
-case-insensitive, then both parameters will be normalized to all
-lower- or upper-case before the comparision is performed. If you
-require a case-sensitive comparision regardless of whether that's
-standard for your operating system, use \function{fnmatchcase()}
-instead.
-\end{funcdesc}
-
-\begin{funcdesc}{fnmatchcase}{filename, pattern}
-Test whether \var{filename} matches \var{pattern}, returning true or
-false; the comparision is case-sensitive.
-\end{funcdesc}
-
-\begin{seealso}
-\seemodule{glob}{Shell-style path expansion}
-\end{seealso}
diff --git a/Doc/libformatter.tex b/Doc/libformatter.tex
deleted file mode 100644
index 6a97f80..0000000
--- a/Doc/libformatter.tex
+++ /dev/null
@@ -1,323 +0,0 @@
-\section{Standard Module \module{formatter}}
-\label{module-formatter}
-\stmodindex{formatter}
-
-
-This module supports two interface definitions, each with mulitple
-implementations. The \emph{formatter} interface is used by the
-\class{HTMLParser} class of the \module{htmllib} module, and the
-\emph{writer} interface is required by the formatter interface.
-\withsubitem{(class in htmllib)}{\ttindex{HTMLParser}}
-
-Formatter objects transform an abstract flow of formatting events into
-specific output events on writer objects. Formatters manage several
-stack structures to allow various properties of a writer object to be
-changed and restored; writers need not be able to handle relative
-changes nor any sort of ``change back'' operation. Specific writer
-properties which may be controlled via formatter objects are
-horizontal alignment, font, and left margin indentations. A mechanism
-is provided which supports providing arbitrary, non-exclusive style
-settings to a writer as well. Additional interfaces facilitate
-formatting events which are not reversible, such as paragraph
-separation.
-
-Writer objects encapsulate device interfaces. Abstract devices, such
-as file formats, are supported as well as physical devices. The
-provided implementations all work with abstract devices. The
-interface makes available mechanisms for setting the properties which
-formatter objects manage and inserting data into the output.
-
-
-\subsection{The Formatter Interface}
-
-Interfaces to create formatters are dependent on the specific
-formatter class being instantiated. The interfaces described below
-are the required interfaces which all formatters must support once
-initialized.
-
-One data element is defined at the module level:
-
-
-\begin{datadesc}{AS_IS}
-Value which can be used in the font specification passed to the
-\code{push_font()} method described below, or as the new value to any
-other \code{push_\var{property}()} method. Pushing the \code{AS_IS}
-value allows the corresponding \code{pop_\var{property}()} method to
-be called without having to track whether the property was changed.
-\end{datadesc}
-
-The following attributes are defined for formatter instance objects:
-
-
-\begin{memberdesc}[formatter]{writer}
-The writer instance with which the formatter interacts.
-\end{memberdesc}
-
-
-\begin{methoddesc}[formatter]{end_paragraph}{blanklines}
-Close any open paragraphs and insert at least \var{blanklines}
-before the next paragraph.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{add_line_break}{}
-Add a hard line break if one does not already exist. This does not
-break the logical paragraph.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{add_hor_rule}{*args, **kw}
-Insert a horizontal rule in the output. A hard break is inserted if
-there is data in the current paragraph, but the logical paragraph is
-not broken. The arguments and keywords are passed on to the writer's
-\method{send_line_break()} method.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{add_flowing_data}{data}
-Provide data which should be formatted with collapsed whitespaces.
-Whitespace from preceeding and successive calls to
-\method{add_flowing_data()} is considered as well when the whitespace
-collapse is performed. The data which is passed to this method is
-expected to be word-wrapped by the output device. Note that any
-word-wrapping still must be performed by the writer object due to the
-need to rely on device and font information.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{add_literal_data}{data}
-Provide data which should be passed to the writer unchanged.
-Whitespace, including newline and tab characters, are considered legal
-in the value of \var{data}.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{add_label_data}{format, counter}
-Insert a label which should be placed to the left of the current left
-margin. This should be used for constructing bulleted or numbered
-lists. If the \var{format} value is a string, it is interpreted as a
-format specification for \var{counter}, which should be an integer.
-The result of this formatting becomes the value of the label; if
-\var{format} is not a string it is used as the label value directly.
-The label value is passed as the only argument to the writer's
-\method{send_label_data()} method. Interpretation of non-string label
-values is dependent on the associated writer.
-
-Format specifications are strings which, in combination with a counter
-value, are used to compute label values. Each character in the format
-string is copied to the label value, with some characters recognized
-to indicate a transform on the counter value. Specifically, the
-character \character{1} represents the counter value formatter as an
-arabic number, the characters \character{A} and \character{a}
-represent alphabetic representations of the counter value in upper and
-lower case, respectively, and \character{I} and \character{i}
-represent the counter value in Roman numerals, in upper and lower
-case. Note that the alphabetic and roman transforms require that the
-counter value be greater than zero.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{flush_softspace}{}
-Send any pending whitespace buffered from a previous call to
-\method{add_flowing_data()} to the associated writer object. This
-should be called before any direct manipulation of the writer object.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{push_alignment}{align}
-Push a new alignment setting onto the alignment stack. This may be
-\constant{AS_IS} if no change is desired. If the alignment value is
-changed from the previous setting, the writer's \method{new_alignment()}
-method is called with the \var{align} value.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{pop_alignment}{}
-Restore the previous alignment.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{push_font}{\code{(}size, italic, bold, teletype\code{)}}
-Change some or all font properties of the writer object. Properties
-which are not set to \constant{AS_IS} are set to the values passed in
-while others are maintained at their current settings. The writer's
-\method{new_font()} method is called with the fully resolved font
-specification.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{pop_font}{}
-Restore the previous font.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{push_margin}{margin}
-Increase the number of left margin indentations by one, associating
-the logical tag \var{margin} with the new indentation. The initial
-margin level is \code{0}. Changed values of the logical tag must be
-true values; false values other than \constant{AS_IS} are not
-sufficient to change the margin.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{pop_margin}{}
-Restore the previous margin.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{push_style}{*styles}
-Push any number of arbitrary style specifications. All styles are
-pushed onto the styles stack in order. A tuple representing the
-entire stack, including \constant{AS_IS} values, is passed to the
-writer's \method{new_styles()} method.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{pop_style}{\optional{n\code{ = 1}}}
-Pop the last \var{n} style specifications passed to
-\method{push_style()}. A tuple representing the revised stack,
-including \constant{AS_IS} values, is passed to the writer's
-\method{new_styles()} method.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{set_spacing}{spacing}
-Set the spacing style for the writer.
-\end{methoddesc}
-
-\begin{methoddesc}[formatter]{assert_line_data}{\optional{flag\code{ = 1}}}
-Inform the formatter that data has been added to the current paragraph
-out-of-band. This should be used when the writer has been manipulated
-directly. The optional \var{flag} argument can be set to false if
-the writer manipulations produced a hard line break at the end of the
-output.
-\end{methoddesc}
-
-
-\subsection{Formatter Implementations}
-
-Two implementations of formatter objects are provided by this module.
-Most applications may use one of these classes without modification or
-subclassing.
-
-\begin{classdesc}{NullFormatter}{\optional{writer}}
-A formatter which does nothing. If \var{writer} is omitted, a
-\class{NullWriter} instance is created. No methods of the writer are
-called by \class{NullFormatter} instances. Implementations should
-inherit from this class if implementing a writer interface but don't
-need to inherit any implementation.
-\end{classdesc}
-
-\begin{classdesc}{AbstractFormatter}{writer}
-The standard formatter. This implementation has demonstrated wide
-applicability to many writers, and may be used directly in most
-circumstances. It has been used to implement a full-featured
-world-wide web browser.
-\end{classdesc}
-
-
-
-\subsection{The Writer Interface}
-
-Interfaces to create writers are dependent on the specific writer
-class being instantiated. The interfaces described below are the
-required interfaces which all writers must support once initialized.
-Note that while most applications can use the
-\class{AbstractFormatter} class as a formatter, the writer must
-typically be provided by the application.
-
-
-\begin{methoddesc}[writer]{flush}{}
-Flush any buffered output or device control events.
-\end{methoddesc}
-
-\begin{methoddesc}[writer]{new_alignment}{align}
-Set the alignment style. The \var{align} value can be any object,
-but by convention is a string or \code{None}, where \code{None}
-indicates that the writer's ``preferred'' alignment should be used.
-Conventional \var{align} values are \code{'left'}, \code{'center'},
-\code{'right'}, and \code{'justify'}.
-\end{methoddesc}
-
-\begin{methoddesc}[writer]{new_font}{font}
-Set the font style. The value of \var{font} will be \code{None},
-indicating that the device's default font should be used, or a tuple
-of the form \code{(}\var{size}, \var{italic}, \var{bold},
-\var{teletype}\code{)}. Size will be a string indicating the size of
-font that should be used; specific strings and their interpretation
-must be defined by the application. The \var{italic}, \var{bold}, and
-\var{teletype} values are boolean indicators specifying which of those
-font attributes should be used.
-\end{methoddesc}
-
-\begin{methoddesc}[writer]{new_margin}{margin, level}
-Set the margin level to the integer \var{level} and the logical tag
-to \var{margin}. Interpretation of the logical tag is at the
-writer's discretion; the only restriction on the value of the logical
-tag is that it not be a false value for non-zero values of
-\var{level}.
-\end{methoddesc}
-
-\begin{methoddesc}[writer]{new_spacing}{spacing}
-Set the spacing style to \var{spacing}.
-\end{methoddesc}
-
-\begin{methoddesc}[writer]{new_styles}{styles}
-Set additional styles. The \var{styles} value is a tuple of
-arbitrary values; the value \constant{AS_IS} should be ignored. The
-\var{styles} tuple may be interpreted either as a set or as a stack
-depending on the requirements of the application and writer
-implementation.
-\end{methoddesc}
-
-\begin{methoddesc}[writer]{send_line_break}{}
-Break the current line.
-\end{methoddesc}
-
-\begin{methoddesc}[writer]{send_paragraph}{blankline}
-Produce a paragraph separation of at least \var{blankline} blank
-lines, or the equivelent. The \var{blankline} value will be an
-integer.
-\end{methoddesc}
-
-\begin{methoddesc}[writer]{send_hor_rule}{*args, **kw}
-Display a horizontal rule on the output device. The arguments to this
-method are entirely application- and writer-specific, and should be
-interpreted with care. The method implementation may assume that a
-line break has already been issued via \method{send_line_break()}.
-\end{methoddesc}
-
-\begin{methoddesc}[writer]{send_flowing_data}{data}
-Output character data which may be word-wrapped and re-flowed as
-needed. Within any sequence of calls to this method, the writer may
-assume that spans of multiple whitespace characters have been
-collapsed to single space characters.
-\end{methoddesc}
-
-\begin{methoddesc}[writer]{send_literal_data}{data}
-Output character data which has already been formatted
-for display. Generally, this should be interpreted to mean that line
-breaks indicated by newline characters should be preserved and no new
-line breaks should be introduced. The data may contain embedded
-newline and tab characters, unlike data provided to the
-\method{send_formatted_data()} interface.
-\end{methoddesc}
-
-\begin{methoddesc}[writer]{send_label_data}{data}
-Set \var{data} to the left of the current left margin, if possible.
-The value of \var{data} is not restricted; treatment of non-string
-values is entirely application- and writer-dependent. This method
-will only be called at the beginning of a line.
-\end{methoddesc}
-
-
-\subsection{Writer Implementations}
-
-Three implementations of the writer object interface are provided as
-examples by this module. Most applications will need to derive new
-writer classes from the \class{NullWriter} class.
-
-\begin{classdesc}{NullWriter}{}
-A writer which only provides the interface definition; no actions are
-taken on any methods. This should be the base class for all writers
-which do not need to inherit any implementation methods.
-\end{classdesc}
-
-\begin{classdesc}{AbstractWriter}{}
-A writer which can be used in debugging formatters, but not much
-else. Each method simply announces itself by printing its name and
-arguments on standard output.
-\end{classdesc}
-
-\begin{classdesc}{DumbWriter}{\optional{file\optional{, maxcol\code{ = 72}}}}
-Simple writer class which writes output on the file object passed in
-as \var{file} or, if \var{file} is omitted, on standard output. The
-output is simply word-wrapped to the number of columns specified by
-\var{maxcol}. This class is suitable for reflowing a sequence of
-paragraphs.
-\end{classdesc}
diff --git a/Doc/libframework.tex b/Doc/libframework.tex
deleted file mode 100644
index 5bd2e2a..0000000
--- a/Doc/libframework.tex
+++ /dev/null
@@ -1,294 +0,0 @@
-\section{Standard Module \module{FrameWork}}
-\stmodindex{FrameWork}
-\label{module-FrameWork}
-
-The \module{FrameWork} module contains classes that together provide a
-framework for an interactive Macintosh application. The programmer
-builds an application by creating subclasses that override various
-methods of the bases classes, thereby implementing the functionality
-wanted. Overriding functionality can often be done on various
-different levels, i.e. to handle clicks in a single dialog window in a
-non-standard way it is not necessary to override the complete event
-handling.
-
-The \module{FrameWork} is still very much work-in-progress, and the
-documentation describes only the most important functionality, and not
-in the most logical manner at that. Examine the source or the examples
-for more details.
-
-The \module{FrameWork} module defines the following functions:
-
-
-\begin{funcdesc}{Application}{}
-An object representing the complete application. See below for a
-description of the methods. The default \method{__init__()} routine
-creates an empty window dictionary and a menu bar with an apple menu.
-\end{funcdesc}
-
-\begin{funcdesc}{MenuBar}{}
-An object representing the menubar. This object is usually not created
-by the user.
-\end{funcdesc}
-
-\begin{funcdesc}{Menu}{bar, title\optional{, after}}
-An object representing a menu. Upon creation you pass the
-\code{MenuBar} the menu appears in, the \var{title} string and a
-position (1-based) \var{after} where the menu should appear (default:
-at the end).
-\end{funcdesc}
-
-\begin{funcdesc}{MenuItem}{menu, title\optional{, shortcut, callback}}
-Create a menu item object. The arguments are the menu to crate the
-item it, the item title string and optionally the keyboard shortcut
-and a callback routine. The callback is called with the arguments
-menu-id, item number within menu (1-based), current front window and
-the event record.
-
-In stead of a callable object the callback can also be a string. In
-this case menu selection causes the lookup of a method in the topmost
-window and the application. The method name is the callback string
-with \code{'domenu_'} prepended.
-
-Calling the \code{MenuBar} \code{fixmenudimstate} method sets the
-correct dimming for all menu items based on the current front window.
-\end{funcdesc}
-
-\begin{funcdesc}{Separator}{menu}
-Add a separator to the end of a menu.
-\end{funcdesc}
-
-\begin{funcdesc}{SubMenu}{menu, label}
-Create a submenu named \var{label} under menu \var{menu}. The menu
-object is returned.
-\end{funcdesc}
-
-\begin{funcdesc}{Window}{parent}
-Creates a (modeless) window. \var{Parent} is the application object to
-which the window belongs. The window is not displayed until later.
-\end{funcdesc}
-
-\begin{funcdesc}{DialogWindow}{parent}
-Creates a modeless dialog window.
-\end{funcdesc}
-
-\begin{funcdesc}{windowbounds}{width, height}
-Return a \code{(left, top, right, bottom)} tuple suitable for creation
-of a window of given width and height. The window will be staggered
-with respect to previous windows, and an attempt is made to keep the
-whole window on-screen. The window will however always be exact the
-size given, so parts may be offscreen.
-\end{funcdesc}
-
-\begin{funcdesc}{setwatchcursor}{}
-Set the mouse cursor to a watch.
-\end{funcdesc}
-
-\begin{funcdesc}{setarrowcursor}{}
-Set the mouse cursor to an arrow.
-\end{funcdesc}
-
-\subsection{Application Objects}
-\label{application-objects}
-
-Application objects have the following methods, among others:
-
-\setindexsubitem{(Application method)}
-
-\begin{funcdesc}{makeusermenus}{}
-Override this method if you need menus in your application. Append the
-menus to the attribute \member{menubar}.
-\end{funcdesc}
-
-\begin{funcdesc}{getabouttext}{}
-Override this method to return a text string describing your
-application. Alternatively, override the \method{do_about()} method
-for more elaborate ``about'' messages.
-\end{funcdesc}
-
-\begin{funcdesc}{mainloop}{\optional{mask\optional{, wait}}}
-This routine is the main event loop, call it to set your application
-rolling. \var{Mask} is the mask of events you want to handle,
-\var{wait} is the number of ticks you want to leave to other
-concurrent application (default 0, which is probably not a good
-idea). While raising \code{self} to exit the mainloop is still
-supported it is not recommended, call \code{self._quit} instead.
-
-The event loop is split into many small parts, each of which can be
-overridden. The default methods take care of dispatching events to
-windows and dialogs, handling drags and resizes, Apple Events, events
-for non-FrameWork windows, etc.
-
-In general, all event handlers should return \code{1} if the event is fully
-handled and \code{0} otherwise (because the front window was not a FrameWork
-window, for instance). This is needed so that update events and such
-can be passed on to other windows like the Sioux console window.
-Calling \function{MacOS.HandleEvent()} is not allowed within
-\var{our_dispatch} or its callees, since this may result in an
-infinite loop if the code is called through the Python inner-loop
-event handler.
-\end{funcdesc}
-
-\begin{funcdesc}{asyncevents}{onoff}
-Call this method with a nonzero parameter to enable
-asynchronous event handling. This will tell the inner interpreter loop
-to call the application event handler \var{async_dispatch} whenever events
-are available. This will cause FrameWork window updates and the user
-interface to remain working during long computations, but will slow the
-interpreter down and may cause surprising results in non-reentrant code
-(such as FrameWork itself). By default \var{async_dispatch} will immedeately
-call \var{our_dispatch} but you may override this to handle only certain
-events asynchronously. Events you do not handle will be passed to Sioux
-and such.
-
-The old on/off value is returned.
-\end{funcdesc}
-
-\begin{funcdesc}{_quit}{}
-Terminate the running \method{mainloop()} call at the next convenient
-moment.
-\end{funcdesc}
-
-\begin{funcdesc}{do_char}{c, event}
-The user typed character \var{c}. The complete details of the event
-can be found in the \var{event} structure. This method can also be
-provided in a \code{Window} object, which overrides the
-application-wide handler if the window is frontmost.
-\end{funcdesc}
-
-\begin{funcdesc}{do_dialogevent}{event}
-Called early in the event loop to handle modeless dialog events. The
-default method simply dispatches the event to the relevant dialog (not
-through the the \code{DialogWindow} object involved). Override if you
-need special handling of dialog events (keyboard shortcuts, etc).
-\end{funcdesc}
-
-\begin{funcdesc}{idle}{event}
-Called by the main event loop when no events are available. The
-null-event is passed (so you can look at mouse position, etc).
-\end{funcdesc}
-
-\subsection{Window Objects}
-\label{window-objects}
-
-Window objects have the following methods, among others:
-
-\setindexsubitem{(Window method)}
-
-\begin{funcdesc}{open}{}
-Override this method to open a window. Store the MacOS window-id in
-\code{self.wid} and call \code{self.do_postopen} to register the
-window with the parent application.
-\end{funcdesc}
-
-\begin{funcdesc}{close}{}
-Override this method to do any special processing on window
-close. Call \code{self.do_postclose} to cleanup the parent state.
-\end{funcdesc}
-
-\begin{funcdesc}{do_postresize}{width, height, macoswindowid}
-Called after the window is resized. Override if more needs to be done
-than calling \code{InvalRect}.
-\end{funcdesc}
-
-\begin{funcdesc}{do_contentclick}{local, modifiers, event}
-The user clicked in the content part of a window. The arguments are
-the coordinates (window-relative), the key modifiers and the raw
-event.
-\end{funcdesc}
-
-\begin{funcdesc}{do_update}{macoswindowid, event}
-An update event for the window was received. Redraw the window.
-\end{funcdesc}
-
-\begin{funcdesc}{do_activate}{activate, event}
-The window was activated (\code{activate==1}) or deactivated
-(\code{activate==0}). Handle things like focus highlighting, etc.
-\end{funcdesc}
-
-\subsection{ControlsWindow Object}
-\label{controlswindow-object}
-
-ControlsWindow objects have the following methods besides those of
-\code{Window} objects:
-
-\setindexsubitem{(ControlsWindow method)}
-
-\begin{funcdesc}{do_controlhit}{window, control, pcode, event}
-Part \code{pcode} of control \code{control} was hit by the
-user. Tracking and such has already been taken care of.
-\end{funcdesc}
-
-\subsection{ScrolledWindow Object}
-\label{scrolledwindow-object}
-
-ScrolledWindow objects are ControlsWindow objects with the following
-extra methods:
-
-\setindexsubitem{(ScrolledWindow method)}
-
-\begin{funcdesc}{scrollbars}{\optional{wantx\optional{, wanty}}}
-Create (or destroy) horizontal and vertical scrollbars. The arguments
-specify which you want (default: both). The scrollbars always have
-minimum \code{0} and maximum \code{32767}.
-\end{funcdesc}
-
-\begin{funcdesc}{getscrollbarvalues}{}
-You must supply this method. It should return a tuple \code{(\var{x},
-\var{y})} giving the current position of the scrollbars (between
-\code{0} and \code{32767}). You can return \code{None} for either to
-indicate the whole document is visible in that direction.
-\end{funcdesc}
-
-\begin{funcdesc}{updatescrollbars}{}
-Call this method when the document has changed. It will call
-\method{getscrollbarvalues()} and update the scrollbars.
-\end{funcdesc}
-
-\begin{funcdesc}{scrollbar_callback}{which, what, value}
-Supplied by you and called after user interaction. \var{which} will
-be \code{'x'} or \code{'y'}, \var{what} will be \code{'-'},
-\code{'--'}, \code{'set'}, \code{'++'} or \code{'+'}. For
-\code{'set'}, \var{value} will contain the new scrollbar position.
-\end{funcdesc}
-
-\begin{funcdesc}{scalebarvalues}{absmin, absmax, curmin, curmax}
-Auxiliary method to help you calculate values to return from
-\method{getscrollbarvalues()}. You pass document minimum and maximum value
-and topmost (leftmost) and bottommost (rightmost) visible values and
-it returns the correct number or \code{None}.
-\end{funcdesc}
-
-\begin{funcdesc}{do_activate}{onoff, event}
-Takes care of dimming/highlighting scrollbars when a window becomes
-frontmost vv. If you override this method call this one at the end of
-your method.
-\end{funcdesc}
-
-\begin{funcdesc}{do_postresize}{width, height, window}
-Moves scrollbars to the correct position. Call this method initially
-if you override it.
-\end{funcdesc}
-
-\begin{funcdesc}{do_controlhit}{window, control, pcode, event}
-Handles scrollbar interaction. If you override it call this method
-first, a nonzero return value indicates the hit was in the scrollbars
-and has been handled.
-\end{funcdesc}
-
-\subsection{DialogWindow Objects}
-\label{dialogwindow-objects}
-
-DialogWindow objects have the following methods besides those of
-\code{Window} objects:
-
-\setindexsubitem{(DialogWindow method)}
-
-\begin{funcdesc}{open}{resid}
-Create the dialog window, from the DLOG resource with id
-\var{resid}. The dialog object is stored in \code{self.wid}.
-\end{funcdesc}
-
-\begin{funcdesc}{do_itemhit}{item, event}
-Item number \var{item} was hit. You are responsible for redrawing
-toggle buttons, etc.
-\end{funcdesc}
diff --git a/Doc/libftplib.tex b/Doc/libftplib.tex
deleted file mode 100644
index 8ba2c61..0000000
--- a/Doc/libftplib.tex
+++ /dev/null
@@ -1,240 +0,0 @@
-\section{Standard Module \module{ftplib}}
-\label{module-ftplib}
-\stmodindex{ftplib}
-\indexii{FTP}{protocol}
-
-
-This module defines the class \class{FTP} and a few related items.
-The \class{FTP} class implements the client side of the FTP protocol.
-You can use this to write Python programs that perform a variety of
-automated FTP jobs, such as mirroring other ftp servers. It is also
-used by the module \module{urllib} to handle URLs that use FTP. For
-more information on FTP (File Transfer Protocol), see Internet
-\rfc{959}.
-
-Here's a sample session using the \module{ftplib} module:
-
-\begin{verbatim}
->>> from ftplib import FTP
->>> ftp = FTP('ftp.cwi.nl') # connect to host, default port
->>> ftp.login() # user anonymous, passwd user@hostname
->>> ftp.retrlines('LIST') # list directory contents
-total 24418
-drwxrwsr-x 5 ftp-usr pdmaint 1536 Mar 20 09:48 .
-dr-xr-srwt 105 ftp-usr pdmaint 1536 Mar 21 14:32 ..
--rw-r--r-- 1 ftp-usr pdmaint 5305 Mar 20 09:48 INDEX
- .
- .
- .
->>> ftp.quit()
-\end{verbatim}
-
-The module defines the following items:
-
-\begin{classdesc}{FTP}{\optional{host\optional{, user\optional{,
- passwd\optional{, acct}}}}}
-Return a new instance of the \class{FTP} class. When
-\var{host} is given, the method call \code{connect(\var{host})} is
-made. When \var{user} is given, additionally the method call
-\code{login(\var{user}, \var{passwd}, \var{acct})} is made (where
-\var{passwd} and \var{acct} default to the empty string when not given).
-\end{classdesc}
-
-\begin{datadesc}{all_errors}
-The set of all exceptions (as a tuple) that methods of \class{FTP}
-instances may raise as a result of problems with the FTP connection
-(as opposed to programming errors made by the caller). This set
-includes the four exceptions listed below as well as
-\exception{socket.error} and \exception{IOError}.
-\end{datadesc}
-
-\begin{excdesc}{error_reply}
-Exception raised when an unexpected reply is received from the server.
-\end{excdesc}
-
-\begin{excdesc}{error_temp}
-Exception raised when an error code in the range 400--499 is received.
-\end{excdesc}
-
-\begin{excdesc}{error_perm}
-Exception raised when an error code in the range 500--599 is received.
-\end{excdesc}
-
-\begin{excdesc}{error_proto}
-Exception raised when a reply is received from the server that does
-not begin with a digit in the range 1--5.
-\end{excdesc}
-
-
-\subsection{FTP Objects}
-\label{ftp-objects}
-
-\class{FTP} instances have the following methods:
-
-\begin{methoddesc}{set_debuglevel}{level}
-Set the instance's debugging level. This controls the amount of
-debugging output printed. The default, \code{0}, produces no
-debugging output. A value of \code{1} produces a moderate amount of
-debugging output, generally a single line per request. A value of
-\code{2} or higher produces the maximum amount of debugging output,
-logging each line sent and received on the control connection.
-\end{methoddesc}
-
-\begin{methoddesc}{connect}{host\optional{, port}}
-Connect to the given host and port. The default port number is \code{21}, as
-specified by the FTP protocol specification. It is rarely needed to
-specify a different port number. This function should be called only
-once for each instance; it should not be called at all if a host was
-given when the instance was created. All other methods can only be
-used after a connection has been made.
-\end{methoddesc}
-
-\begin{methoddesc}{getwelcome}{}
-Return the welcome message sent by the server in reply to the initial
-connection. (This message sometimes contains disclaimers or help
-information that may be relevant to the user.)
-\end{methoddesc}
-
-\begin{methoddesc}{login}{\optional{user\optional{, passwd\optional{, acct}}}}
-Log in as the given \var{user}. The \var{passwd} and \var{acct}
-parameters are optional and default to the empty string. If no
-\var{user} is specified, it defaults to \code{'anonymous'}. If
-\var{user} is \code{anonymous}, the default \var{passwd} is
-\samp{\var{realuser}@\var{host}} where \var{realuser} is the real user
-name (glanced from the \envvar{LOGNAME} or \envvar{USER} environment
-variable) and \var{host} is the hostname as returned by
-\function{socket.gethostname()}. This function should be called only
-once for each instance, after a connection has been established; it
-should not be called at all if a host and user were given when the
-instance was created. Most FTP commands are only allowed after the
-client has logged in.
-\end{methoddesc}
-
-\begin{methoddesc}{abort}{}
-Abort a file transfer that is in progress. Using this does not always
-work, but it's worth a try.
-\end{methoddesc}
-
-\begin{methoddesc}{sendcmd}{command}
-Send a simple command string to the server and return the response
-string.
-\end{methoddesc}
-
-\begin{methoddesc}{voidcmd}{command}
-Send a simple command string to the server and handle the response.
-Return nothing if a response code in the range 200--299 is received.
-Raise an exception otherwise.
-\end{methoddesc}
-
-\begin{methoddesc}{retrbinary}{command, callback\optional{, maxblocksize}}
-Retrieve a file in binary transfer mode. \var{command} should be an
-appropriate \samp{RETR} command, i.e.\ \code{'RETR \var{filename}'}.
-The \var{callback} function is called for each block of data received,
-with a single string argument giving the data block.
-The optional \var{maxblocksize} argument specifies the maximum chunk size to
-read on the low-level socket object created to do the actual transfer
-(which will also be the largest size of the data blocks passed to
-\var{callback}). A reasonable default is chosen.
-\end{methoddesc}
-
-\begin{methoddesc}{retrlines}{command\optional{, callback}}
-Retrieve a file or directory listing in \ASCII{} transfer mode.
-\var{command} should be an appropriate \samp{RETR} command (see
-\method{retrbinary()} or a \samp{LIST} command (usually just the string
-\code{'LIST'}). The \var{callback} function is called for each line,
-with the trailing CRLF stripped. The default \var{callback} prints
-the line to \code{sys.stdout}.
-\end{methoddesc}
-
-\begin{methoddesc}{storbinary}{command, file, blocksize}
-Store a file in binary transfer mode. \var{command} should be an
-appropriate \samp{STOR} command, i.e.\ \code{"STOR \var{filename}"}.
-\var{file} is an open file object which is read until \EOF{} using its
-\method{read()} method in blocks of size \var{blocksize} to provide the
-data to be stored.
-\end{methoddesc}
-
-\begin{methoddesc}{storlines}{command, file}
-Store a file in \ASCII{} transfer mode. \var{command} should be an
-appropriate \samp{STOR} command (see \method{storbinary()}). Lines are
-read until \EOF{} from the open file object \var{file} using its
-\method{readline()} method to privide the data to be stored.
-\end{methoddesc}
-
-\begin{methoddesc}{transfercmd}{cmd}
-Initiate a transfer over the data connection. If the transfer is
-active, send a \samp{PORT} command and the transfer command specified
-by \var{cmd}, and accept the connection. If the server is passive,
-send a \samp{PASV} command, connect to it, and start the transfer
-command. Either way, return the socket for the connection.
-\end{methoddesc}
-
-\begin{methoddesc}{ntransfercmd}{cmd}
-Like \method{transfercmd()}, but returns a tuple of the data
-connection and the expected size of the data. If the expected size
-could not be computed, \code{None} will be returned as the expected
-size.
-\end{methoddesc}
-
-\begin{methoddesc}{nlst}{argument\optional{, \ldots}}
-Return a list of files as returned by the \samp{NLST} command. The
-optional \var{argument} is a directory to list (default is the current
-server directory). Multiple arguments can be used to pass
-non-standard options to the \samp{NLST} command.
-\end{methoddesc}
-
-\begin{methoddesc}{dir}{argument\optional{, \ldots}}
-Return a directory listing as returned by the \samp{LIST} command, as
-a list of lines. The optional \var{argument} is a directory to list
-(default is the current server directory). Multiple arguments can be
-used to pass non-standard options to the \samp{LIST} command. If the
-last argument is a function, it is used as a \var{callback} function
-as for \method{retrlines()}.
-\end{methoddesc}
-
-\begin{methoddesc}{rename}{fromname, toname}
-Rename file \var{fromname} on the server to \var{toname}.
-\end{methoddesc}
-
-\begin{methoddesc}{delete}{filename}
-Remove the file named \var{filename} from the server. If successful,
-returns the text of the response, otherwise raises
-\exception{error_perm} on permission errors or \exception{error_reply}
-on other errors.
-\end{methoddesc}
-
-\begin{methoddesc}{cwd}{pathname}
-Set the current directory on the server.
-\end{methoddesc}
-
-\begin{methoddesc}{mkd}{pathname}
-Create a new directory on the server.
-\end{methoddesc}
-
-\begin{methoddesc}{pwd}{}
-Return the pathname of the current directory on the server.
-\end{methoddesc}
-
-\begin{methoddesc}{rmd}{dirname}
-Remove the directory named \var{dirname} on the server.
-\end{methoddesc}
-
-\begin{methoddesc}{size}{filename}
-Request the size of the file named \var{filename} on the server. On
-success, the size of the file is returned as an integer, otherwise
-\code{None} is returned. Note that the \samp{SIZE} command is not
-standardized, but is supported by many common server implementations.
-\end{methoddesc}
-
-\begin{methoddesc}{quit}{}
-Send a \samp{QUIT} command to the server and close the connection.
-This is the ``polite'' way to close a connection, but it may raise an
-exception of the server reponds with an error to the \samp{QUIT}
-command.
-\end{methoddesc}
-
-\begin{methoddesc}{close}{}
-Close the connection unilaterally. This should not be applied to an
-already closed connection (e.g.\ after a successful call to
-\method{quit()}.
-\end{methoddesc}
diff --git a/Doc/libfuncs.tex b/Doc/libfuncs.tex
deleted file mode 100644
index 1345734..0000000
--- a/Doc/libfuncs.tex
+++ /dev/null
@@ -1,635 +0,0 @@
-\section{Built-in Functions}
-\label{built-in-funcs}
-
-The Python interpreter has a number of functions built into it that
-are always available. They are listed here in alphabetical order.
-
-
-\setindexsubitem{(built-in function)}
-
-\begin{funcdesc}{__import__}{name\optional{, globals\optional{, locals\optional{, fromlist}}}}
-This function is invoked by the \keyword{import} statement. It
-mainly exists so that you can replace it with another
-function that has a compatible interface, in order to change the
-semantics of the \keyword{import} statement. For examples of why and
-how you would do this, see the standard library modules
-\module{ihooks} and \module{rexec}. See also the built-in module
-\module{imp}, which defines some useful operations out of which you can
-build your own \function{__import__()} function.
-\stindex{import}
-\refstmodindex{ihooks}
-\refstmodindex{rexec}
-\refbimodindex{imp}
-
-For example, the statement `\code{import} \code{spam}' results in the
-following call:
-\code{__import__('spam',} \code{globals(),} \code{locals(), [])};
-the statement \code{from} \code{spam.ham import} \code{eggs} results
-in \code{__import__('spam.ham',} \code{globals(),} \code{locals(),}
-\code{['eggs'])}.
-Note that even though \code{locals()} and \code{['eggs']} are passed
-in as arguments, the \function{__import__()} function does not set the
-local variable named \code{eggs}; this is done by subsequent code that
-is generated for the import statement. (In fact, the standard
-implementation does not use its \var{locals} argument at all, and uses
-its \var{globals} only to determine the package context of the
-\keyword{import} statement.)
-
-When the \var{name} variable is of the form \code{package.module},
-normally, the top-level package (the name up till the first dot) is
-returned, \emph{not} the module named by \var{name}. However, when a
-non-empty \var{fromlist} argument is given, the module named by
-\var{name} is returned. This is done for compatibility with the
-bytecode generated for the different kinds of import statement; when
-using \samp{import spam.ham.eggs}, the top-level package \code{spam}
-must be placed in the importing namespace, but when using \samp{from
-spam.ham import eggs}, the \code{spam.ham} subpackage must be used to
-find the \code{eggs} variable.
-\end{funcdesc}
-
-\begin{funcdesc}{abs}{x}
- Return the absolute value of a number. The argument may be a plain
- or long integer or a floating point number. If the argument is a
- complex number, its magnitude is returned.
-\end{funcdesc}
-
-\begin{funcdesc}{apply}{function, args\optional{, keywords}}
-The \var{function} argument must be a callable object (a user-defined or
-built-in function or method, or a class object) and the \var{args}
-argument must be a tuple. The \var{function} is called with
-\var{args} as argument list; the number of arguments is the the length
-of the tuple. (This is different from just calling
-\code{\var{func}(\var{args})}, since in that case there is always
-exactly one argument.)
-If the optional \var{keywords} argument is present, it must be a
-dictionary whose keys are strings. It specifies keyword arguments to
-be added to the end of the the argument list.
-\end{funcdesc}
-
-\begin{funcdesc}{callable}{object}
-Return true if the \var{object} argument appears callable, false if
-not. If this returns true, it is still possible that a call fails,
-but if it is false, calling \var{object} will never succeed. Note
-that classes are callable (calling a class returns a new instance);
-class instances are callable if they have a \method{__call__()} method.
-\end{funcdesc}
-
-\begin{funcdesc}{chr}{i}
- Return a string of one character whose \ASCII{} code is the integer
- \var{i}, e.g., \code{chr(97)} returns the string \code{'a'}. This is the
- inverse of \function{ord()}. The argument must be in the range [0..255],
- inclusive.
-\end{funcdesc}
-
-\begin{funcdesc}{cmp}{x, y}
- Compare the two objects \var{x} and \var{y} and return an integer
- according to the outcome. The return value is negative if \code{\var{x}
- < \var{y}}, zero if \code{\var{x} == \var{y}} and strictly positive if
- \code{\var{x} > \var{y}}.
-\end{funcdesc}
-
-\begin{funcdesc}{coerce}{x, y}
- Return a tuple consisting of the two numeric arguments converted to
- a common type, using the same rules as used by arithmetic
- operations.
-\end{funcdesc}
-
-\begin{funcdesc}{compile}{string, filename, kind}
- Compile the \var{string} into a code object. Code objects can be
- executed by an \keyword{exec} statement or evaluated by a call to
- \function{eval()}. The \var{filename} argument should
- give the file from which the code was read; pass e.g. \code{'<string>'}
- if it wasn't read from a file. The \var{kind} argument specifies
- what kind of code must be compiled; it can be \code{'exec'} if
- \var{string} consists of a sequence of statements, \code{'eval'}
- if it consists of a single expression, or \code{'single'} if
- it consists of a single interactive statement (in the latter case,
- expression statements that evaluate to something else than
- \code{None} will printed).
-\end{funcdesc}
-
-\begin{funcdesc}{complex}{real\optional{, imag}}
- Create a complex number with the value \var{real} + \var{imag}*j.
- Each argument may be any numeric type (including complex).
- If \var{imag} is omitted, it defaults to zero and the function
- serves as a numeric conversion function like \function{int()},
- \function{long()} and \function{float()}.
-\end{funcdesc}
-
-\begin{funcdesc}{delattr}{object, name}
- This is a relative of \function{setattr()}. The arguments are an
- object and a string. The string must be the name
- of one of the object's attributes. The function deletes
- the named attribute, provided the object allows it. For example,
- \code{delattr(\var{x}, '\var{foobar}')} is equivalent to
- \code{del \var{x}.\var{foobar}}.
-\end{funcdesc}
-
-\begin{funcdesc}{dir}{\optional{object}}
- Without arguments, return the list of names in the current local
- symbol table. With an argument, attempts to return a list of valid
- attribute for that object. This information is gleaned from the
- object's \member{__dict__}, \member{__methods__} and \member{__members__}
- attributes, if defined. The list is not necessarily complete; e.g.,
- for classes, attributes defined in base classes are not included,
- and for class instances, methods are not included.
- The resulting list is sorted alphabetically. For example:
-
-\begin{verbatim}
->>> import sys
->>> dir()
-['sys']
->>> dir(sys)
-['argv', 'exit', 'modules', 'path', 'stderr', 'stdin', 'stdout']
->>>
-\end{verbatim}
-\end{funcdesc}
-
-\begin{funcdesc}{divmod}{a, b}
- Take two numbers as arguments and return a pair of numbers consisting
- of their quotient and remainder when using long division. With mixed
- operand types, the rules for binary arithmetic operators apply. For
- plain and long integers, the result is the same as
- \code{(\var{a} / \var{b}, \var{a} \%{} \var{b})}.
- For floating point numbers the result is the same as
- \code{(math.floor(\var{a} / \var{b}), \var{a} \%{} \var{b})}.
-\end{funcdesc}
-
-\begin{funcdesc}{eval}{expression\optional{, globals\optional{, locals}}}
- The arguments are a string and two optional dictionaries. The
- \var{expression} argument is parsed and evaluated as a Python
- expression (technically speaking, a condition list) using the
- \var{globals} and \var{locals} dictionaries as global and local name
- space. If the \var{locals} dictionary is omitted it defaults to
- the \var{globals} dictionary. If both dictionaries are omitted, the
- expression is executed in the environment where \keyword{eval} is
- called. The return value is the result of the evaluated expression.
- Syntax errors are reported as exceptions. Example:
-
-\begin{verbatim}
->>> x = 1
->>> print eval('x+1')
-2
->>>
-\end{verbatim}
-
- This function can also be used to execute arbitrary code objects
- (e.g.\ created by \function{compile()}). In this case pass a code
- object instead of a string. The code object must have been compiled
- passing \code{'eval'} to the \var{kind} argument.
-
- Hints: dynamic execution of statements is supported by the
- \keyword{exec} statement. Execution of statements from a file is
- supported by the \function{execfile()} function. The
- \function{globals()} and \function{locals()} functions returns the
- current global and local dictionary, respectively, which may be
- useful to pass around for use by \function{eval()} or
- \function{execfile()}.
-\end{funcdesc}
-
-\begin{funcdesc}{execfile}{file\optional{, globals\optional{, locals}}}
- This function is similar to the
- \keyword{exec} statement, but parses a file instead of a string. It
- is different from the \keyword{import} statement in that it does not
- use the module administration --- it reads the file unconditionally
- and does not create a new module.\footnote{It is used relatively
- rarely so does not warrant being made into a statement.}
-
- The arguments are a file name and two optional dictionaries. The
- file is parsed and evaluated as a sequence of Python statements
- (similarly to a module) using the \var{globals} and \var{locals}
- dictionaries as global and local name space. If the \var{locals}
- dictionary is omitted it defaults to the \var{globals} dictionary.
- If both dictionaries are omitted, the expression is executed in the
- environment where \function{execfile()} is called. The return value is
- \code{None}.
-\end{funcdesc}
-
-\begin{funcdesc}{filter}{function, list}
-Construct a list from those elements of \var{list} for which
-\var{function} returns true. If \var{list} is a string or a tuple,
-the result also has that type; otherwise it is always a list. If
-\var{function} is \code{None}, the identity function is assumed,
-i.e.\ all elements of \var{list} that are false (zero or empty) are
-removed.
-\end{funcdesc}
-
-\begin{funcdesc}{float}{x}
- Convert a string or a number to floating point. If the argument is a
- string, it must contain a possibly singed decimal or floating point
- number, possibly embedded in whitespace;
- this behaves identical to \code{string.atof(\var{x})}.
- Otherwise, the argument may be a plain or
- long integer or a floating point number, and a floating point number
- with the same value (within Python's floating point precision) is
- returned.
-\end{funcdesc}
-
-\begin{funcdesc}{getattr}{object, name}
- The arguments are an object and a string. The string must be the
- name of one of the object's attributes. The result is the value of
- that attribute. For example, \code{getattr(\var{x},
- '\var{foobar}')} is equivalent to \code{\var{x}.\var{foobar}}.
-\end{funcdesc}
-
-\begin{funcdesc}{globals}{}
-Return a dictionary representing the current global symbol table.
-This is always the dictionary of the current module (inside a
-function or method, this is the module where it is defined, not the
-module from which it is called).
-\end{funcdesc}
-
-\begin{funcdesc}{hasattr}{object, name}
- The arguments are an object and a string. The result is 1 if the
- string is the name of one of the object's attributes, 0 if not.
- (This is implemented by calling \code{getattr(\var{object},
- \var{name})} and seeing whether it raises an exception or not.)
-\end{funcdesc}
-
-\begin{funcdesc}{hash}{object}
- Return the hash value of the object (if it has one). Hash values
- are integers. They are used to quickly compare dictionary
- keys during a dictionary lookup. Numeric values that compare equal
- have the same hash value (even if they are of different types, e.g.
- 1 and 1.0).
-\end{funcdesc}
-
-\begin{funcdesc}{hex}{x}
- Convert an integer number (of any size) to a hexadecimal string.
- The result is a valid Python expression. Note: this always yields
- an unsigned literal, e.g. on a 32-bit machine, \code{hex(-1)} yields
- \code{'0xffffffff'}. When evaluated on a machine with the same
- word size, this literal is evaluated as -1; at a different word
- size, it may turn up as a large positive number or raise an
- \exception{OverflowError} exception.
-\end{funcdesc}
-
-\begin{funcdesc}{id}{object}
- Return the `identity' of an object. This is an integer which is
- guaranteed to be unique and constant for this object during its
- lifetime. (Two objects whose lifetimes are disjunct may have the
- same \function{id()} value.) (Implementation note: this is the
- address of the object.)
-\end{funcdesc}
-
-\begin{funcdesc}{input}{\optional{prompt}}
- Almost equivalent to \code{eval(raw_input(\var{prompt}))}. Like
- \function{raw_input()}, the \var{prompt} argument is optional, and the
- \module{readline} module is used when loaded. The difference
- is that a long input expression may be broken over multiple lines using
- the backslash convention.
-\end{funcdesc}
-
-\begin{funcdesc}{intern}{string}
- Enter \var{string} in the table of ``interned'' strings and return
- the interned string -- which is \var{string} itself or a copy.
- Interning strings is useful to gain a little performance on
- dictionary lookup -- if the keys in a dictionary are interned, and
- the lookup key is interned, the key comparisons (after hashing) can
- be done by a pointer compare instead of a string compare. Normally,
- the names used in Python programs are automatically interned, and
- the dictionaries used to hold module, class or instance attributes
- have interned keys. Interned strings are immortal (i.e. never get
- garbage collected).
-\end{funcdesc}
-
-\begin{funcdesc}{int}{x}
- Convert a string or number to a plain integer. If the argument is a
- string, it must contain a possibly singed decimal number
- representable as a Python integer, possibly embedded in whitespace;
- this behaves identical to \code{string.atoi(\var{x})}.
- Otherwise, the argument may be a plain or
- long integer or a floating point number. Conversion of floating
- point numbers to integers is defined by the C semantics; normally
- the conversion truncates towards zero.\footnote{This is ugly --- the
- language definition should require truncation towards zero.}
-\end{funcdesc}
-
-\begin{funcdesc}{isinstance}{object, class}
-Return true if the \var{object} argument is an instance of the
-\var{class} argument, or of a (direct or indirect) subclass thereof.
-Also return true if \var{class} is a type object and \var{object} is
-an object of that type. If \var{object} is not a class instance or a
-object of the given type, the function always returns false. If
-\var{class} is neither a class object nor a type object, a
-\exception{TypeError} exception is raised.
-\end{funcdesc}
-
-\begin{funcdesc}{issubclass}{class1, class2}
-Return true if \var{class1} is a subclass (direct or indirect) of
-\var{class2}. A class is considered a subclass of itself. If either
-argument is not a class object, a \exception{TypeError} exception is
-raised.
-\end{funcdesc}
-
-\begin{funcdesc}{len}{s}
- Return the length (the number of items) of an object. The argument
- may be a sequence (string, tuple or list) or a mapping (dictionary).
-\end{funcdesc}
-
-\begin{funcdesc}{list}{sequence}
-Return a list whose items are the same and in the same order as
-\var{sequence}'s items. If \var{sequence} is already a list,
-a copy is made and returned, similar to \code{\var{sequence}[:]}.
-For instance, \code{list('abc')} returns
-returns \code{['a', 'b', 'c']} and \code{list( (1, 2, 3) )} returns
-\code{[1, 2, 3]}.
-\end{funcdesc}
-
-\begin{funcdesc}{locals}{}
-Return a dictionary representing the current local symbol table.
-Inside a function, modifying this dictionary does not always have the
-desired effect.
-\end{funcdesc}
-
-\begin{funcdesc}{long}{x}
- Convert a string or number to a long integer. If the argument is a
- string, it must contain a possibly singed decimal number of
- arbitrary size, possibly embedded in whitespace;
- this behaves identical to \code{string.atol(\var{x})}.
- Otherwise, the argument may be a plain or
- long integer or a floating point number, and a long integer with
- the same value is returned. Conversion of floating
- point numbers to integers is defined by the C semantics;
- see the description of \function{int()}.
-\end{funcdesc}
-
-\begin{funcdesc}{map}{function, list, ...}
-Apply \var{function} to every item of \var{list} and return a list
-of the results. If additional \var{list} arguments are passed,
-\var{function} must take that many arguments and is applied to
-the items of all lists in parallel; if a list is shorter than another
-it is assumed to be extended with \code{None} items. If
-\var{function} is \code{None}, the identity function is assumed; if
-there are multiple list arguments, \function{map()} returns a list
-consisting of tuples containing the corresponding items from all lists
-(i.e. a kind of transpose operation). The \var{list} arguments may be
-any kind of sequence; the result is always a list.
-\end{funcdesc}
-
-\begin{funcdesc}{max}{s}
- Return the largest item of a non-empty sequence (string, tuple or
- list).
-\end{funcdesc}
-
-\begin{funcdesc}{min}{s}
- Return the smallest item of a non-empty sequence (string, tuple or
- list).
-\end{funcdesc}
-
-\begin{funcdesc}{oct}{x}
- Convert an integer number (of any size) to an octal string. The
- result is a valid Python expression. Note: this always yields
- an unsigned literal, e.g. on a 32-bit machine, \code{oct(-1)} yields
- \code{'037777777777'}. When evaluated on a machine with the same
- word size, this literal is evaluated as -1; at a different word
- size, it may turn up as a large positive number or raise an
- \exception{OverflowError} exception.
-\end{funcdesc}
-
-\begin{funcdesc}{open}{filename\optional{, mode\optional{, bufsize}}}
- Return a new file object (described earlier under Built-in Types).
- The first two arguments are the same as for \code{stdio}'s
- \cfunction{fopen()}: \var{filename} is the file name to be opened,
- \var{mode} indicates how the file is to be opened: \code{'r'} for
- reading, \code{'w'} for writing (truncating an existing file), and
- \code{'a'} opens it for appending (which on \emph{some} \UNIX{}
- systems means that \emph{all} writes append to the end of the file,
- regardless of the current seek position).
- Modes \code{'r+'}, \code{'w+'} and
- \code{'a+'} open the file for updating, provided the underlying
- \code{stdio} library understands this. On systems that differentiate
- between binary and text files, \code{'b'} appended to the mode opens
- the file in binary mode. If the file cannot be opened,
- \exception{IOError} is raised.
-If \var{mode} is omitted, it defaults to \code{'r'}.
-The optional \var{bufsize} argument specifies the file's desired
-buffer size: 0 means unbuffered, 1 means line buffered, any other
-positive value means use a buffer of (approximately) that size. A
-negative \var{bufsize} means to use the system default, which is
-usually line buffered for for tty devices and fully buffered for other
-files.%
-\footnote{Specifying a buffer size currently has no effect on systems
-that don't have \cfunction{setvbuf()}. The interface to specify the buffer
-size is not done using a method that calls \cfunction{setvbuf()}, because
-that may dump core when called after any I/O has been performed, and
-there's no reliable way to determine whether this is the case.}
-\end{funcdesc}
-
-\begin{funcdesc}{ord}{c}
- Return the \ASCII{} value of a string of one character. E.g.,
- \code{ord('a')} returns the integer \code{97}. This is the inverse of
- \function{chr()}.
-\end{funcdesc}
-
-\begin{funcdesc}{pow}{x, y\optional{, z}}
- Return \var{x} to the power \var{y}; if \var{z} is present, return
- \var{x} to the power \var{y}, modulo \var{z} (computed more
- efficiently than \code{pow(\var{x}, \var{y}) \%\ \var{z}}).
- The arguments must have
- numeric types. With mixed operand types, the rules for binary
- arithmetic operators apply. The effective operand type is also the
- type of the result; if the result is not expressible in this type, the
- function raises an exception; e.g., \code{pow(2, -1)} or \code{pow(2,
- 35000)} is not allowed.
-\end{funcdesc}
-
-\begin{funcdesc}{range}{\optional{start,} stop\optional{, step}}
- This is a versatile function to create lists containing arithmetic
- progressions. It is most often used in \keyword{for} loops. The
- arguments must be plain integers. If the \var{step} argument is
- omitted, it defaults to \code{1}. If the \var{start} argument is
- omitted, it defaults to \code{0}. The full form returns a list of
- plain integers \code{[\var{start}, \var{start} + \var{step},
- \var{start} + 2 * \var{step}, \ldots]}. If \var{step} is positive,
- the last element is the largest \code{\var{start} + \var{i} *
- \var{step}} less than \var{stop}; if \var{step} is negative, the last
- element is the largest \code{\var{start} + \var{i} * \var{step}}
- greater than \var{stop}. \var{step} must not be zero (or else
- \exception{ValueError} is raised). Example:
-
-\begin{verbatim}
->>> range(10)
-[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
->>> range(1, 11)
-[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
->>> range(0, 30, 5)
-[0, 5, 10, 15, 20, 25]
->>> range(0, 10, 3)
-[0, 3, 6, 9]
->>> range(0, -10, -1)
-[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
->>> range(0)
-[]
->>> range(1, 0)
-[]
->>>
-\end{verbatim}
-\end{funcdesc}
-
-\begin{funcdesc}{raw_input}{\optional{prompt}}
- If the \var{prompt} argument is present, it is written to standard output
- without a trailing newline. The function then reads a line from input,
- converts it to a string (stripping a trailing newline), and returns that.
- When \EOF{} is read, \exception{EOFError} is raised. Example:
-
-\begin{verbatim}
->>> s = raw_input('--> ')
---> Monty Python's Flying Circus
->>> s
-"Monty Python's Flying Circus"
->>>
-\end{verbatim}
-
-If the \module{readline} module was loaded, then
-\function{raw_input()} will use it to provide elaborate
-line editing and history features.
-\end{funcdesc}
-
-\begin{funcdesc}{reduce}{function, list\optional{, initializer}}
-Apply the binary \var{function} to the items of \var{list} so as to
-reduce the list to a single value. E.g.,
-\code{reduce(lambda x, y: x*y, \var{list}, 1)} returns the product of
-the elements of \var{list}. The optional \var{initializer} can be
-thought of as being prepended to \var{list} so as to allow reduction
-of an empty \var{list}. The \var{list} arguments may be any kind of
-sequence.
-\end{funcdesc}
-
-\begin{funcdesc}{reload}{module}
-Re-parse and re-initialize an already imported \var{module}. The
-argument must be a module object, so it must have been successfully
-imported before. This is useful if you have edited the module source
-file using an external editor and want to try out the new version
-without leaving the Python interpreter. The return value is the
-module object (i.e.\ the same as the \var{module} argument).
-
-There are a number of caveats:
-
-If a module is syntactically correct but its initialization fails, the
-first \keyword{import} statement for it does not bind its name locally,
-but does store a (partially initialized) module object in
-\code{sys.modules}. To reload the module you must first
-\keyword{import} it again (this will bind the name to the partially
-initialized module object) before you can \function{reload()} it.
-
-When a module is reloaded, its dictionary (containing the module's
-global variables) is retained. Redefinitions of names will override
-the old definitions, so this is generally not a problem. If the new
-version of a module does not define a name that was defined by the old
-version, the old definition remains. This feature can be used to the
-module's advantage if it maintains a global table or cache of objects
---- with a \keyword{try} statement it can test for the table's presence
-and skip its initialization if desired.
-
-It is legal though generally not very useful to reload built-in or
-dynamically loaded modules, except for \module{sys}, \module{__main__}
-and \module{__builtin__}. In certain cases, however, extension
-modules are not designed to be initialized more than once, and may
-fail in arbitrary ways when reloaded.
-
-If a module imports objects from another module using \keyword{from}
-\ldots{} \keyword{import} \ldots{}, calling \function{reload()} for
-the other module does not redefine the objects imported from it ---
-one way around this is to re-execute the \keyword{from} statement,
-another is to use \keyword{import} and qualified names
-(\var{module}.\var{name}) instead.
-
-If a module instantiates instances of a class, reloading the module
-that defines the class does not affect the method definitions of the
-instances --- they continue to use the old class definition. The same
-is true for derived classes.
-\end{funcdesc}
-
-\begin{funcdesc}{repr}{object}
-Return a string containing a printable representation of an object.
-This is the same value yielded by conversions (reverse quotes).
-It is sometimes useful to be able to access this operation as an
-ordinary function. For many types, this function makes an attempt
-to return a string that would yield an object with the same value
-when passed to \function{eval()}.
-\end{funcdesc}
-
-\begin{funcdesc}{round}{x, n}
- Return the floating point value \var{x} rounded to \var{n} digits
- after the decimal point. If \var{n} is omitted, it defaults to zero.
- The result is a floating point number. Values are rounded to the
- closest multiple of 10 to the power minus \var{n}; if two multiples
- are equally close, rounding is done away from 0 (so e.g.
- \code{round(0.5)} is \code{1.0} and \code{round(-0.5)} is \code{-1.0}).
-\end{funcdesc}
-
-\begin{funcdesc}{setattr}{object, name, value}
- This is the counterpart of \function{getattr()}. The arguments are an
- object, a string and an arbitrary value. The string must be the name
- of one of the object's attributes. The function assigns the value to
- the attribute, provided the object allows it. For example,
- \code{setattr(\var{x}, '\var{foobar}', 123)} is equivalent to
- \code{\var{x}.\var{foobar} = 123}.
-\end{funcdesc}
-
-\begin{funcdesc}{slice}{\optional{start,} stop\optional{, step}}
-Return a slice object representing the set of indices specified by
-\code{range(\var{start}, \var{stop}, \var{step})}. The \var{start}
-and \var{step} arguments default to None. Slice objects have
-read-only data attributes \member{start}, \member{stop} and \member{step}
-which merely return the argument values (or their default). They have
-no other explicit functionality; however they are used by Numerical
-Python\index{Numerical Python} and other third party extensions.
-Slice objects are also generated when extended indexing syntax is
-used, e.g. for \samp{a[start:stop:step]} or \samp{a[start:stop, i]}.
-\end{funcdesc}
-
-\begin{funcdesc}{str}{object}
-Return a string containing a nicely printable representation of an
-object. For strings, this returns the string itself. The difference
-with \code{repr(\var{object})} is that \code{str(\var{object})} does not
-always attempt to return a string that is acceptable to \function{eval()};
-its goal is to return a printable string.
-\end{funcdesc}
-
-\begin{funcdesc}{tuple}{sequence}
-Return a tuple whose items are the same and in the same order as
-\var{sequence}'s items. If \var{sequence} is already a tuple, it
-is returned unchanged. For instance, \code{tuple('abc')} returns
-returns \code{('a', 'b', 'c')} and \code{tuple([1, 2, 3])} returns
-\code{(1, 2, 3)}.
-\end{funcdesc}
-
-\begin{funcdesc}{type}{object}
-Return the type of an \var{object}. The return value is a type
-object. The standard module \module{types} defines names for all
-built-in types.
-\refstmodindex{types}
-\obindex{type}
-For instance:
-
-\begin{verbatim}
->>> import types
->>> if isinstance(x, types.StringType): print "It's a string"
-\end{verbatim}
-\end{funcdesc}
-
-\begin{funcdesc}{vars}{\optional{object}}
-Without arguments, return a dictionary corresponding to the current
-local symbol table. With a module, class or class instance object as
-argument (or anything else that has a \member{__dict__} attribute),
-returns a dictionary corresponding to the object's symbol table.
-The returned dictionary should not be modified: the effects on the
-corresponding symbol table are undefined.%
-\footnote{In the current implementation, local variable bindings
-cannot normally be affected this way, but variables retrieved from
-other scopes (e.g. modules) can be. This may change.}
-\end{funcdesc}
-
-\begin{funcdesc}{xrange}{\optional{start,} stop\optional{, step}}
-This function is very similar to \function{range()}, but returns an
-``xrange object'' instead of a list. This is an opaque sequence type
-which yields the same values as the corresponding list, without
-actually storing them all simultaneously. The advantage of
-\function{xrange()} over \function{range()} is minimal (since
-\function{xrange()} still has to create the values when asked for
-them) except when a very large range is used on a memory-starved
-machine (e.g. MS-DOS) or when all of the range's elements are never
-used (e.g. when the loop is usually terminated with \keyword{break}).
-\end{funcdesc}
diff --git a/Doc/libgdbm.tex b/Doc/libgdbm.tex
deleted file mode 100644
index 8f2d7d1..0000000
--- a/Doc/libgdbm.tex
+++ /dev/null
@@ -1,93 +0,0 @@
-\section{Built-in Module \module{gdbm}}
-\label{module-gdbm}
-\bimodindex{gdbm}
-
-% Note that if this section appears on the same page as the first
-% paragraph of the dbm module section, makeindex will produce the
-% warning:
-%
-% ## Warning (input = lib.idx, line = 1184; output = lib.ind, line = 852):
-% -- Conflicting entries: multiple encaps for the same page under same key.
-%
-% This is because the \bimodindex{gdbm} and \refbimodindex{gdbm}
-% entries in the .idx file are slightly different (the \bimodindex{}
-% version includes "|textbf" at the end to make the defining occurance
-% bold). There doesn't appear to be anything that can be done about
-% this; it's just a little annoying. The warning can be ignored, but
-% the index produced uses the non-bold version.
-
-This module is quite similar to the \code{dbm} module, but uses \code{gdbm}
-instead to provide some additional functionality. Please note that
-the file formats created by \code{gdbm} and \code{dbm} are incompatible.
-\refbimodindex{dbm}
-
-The \code{gdbm} module provides an interface to the GNU DBM
-library. \code{gdbm} objects behave like mappings
-(dictionaries), except that keys and values are always strings.
-Printing a \code{gdbm} object doesn't print the keys and values, and the
-\code{items()} and \code{values()} methods are not supported.
-
-The module defines the following constant and functions:
-
-\begin{excdesc}{error}
-Raised on \code{gdbm}-specific errors, such as I/O errors. \code{KeyError} is
-raised for general mapping errors like specifying an incorrect key.
-\end{excdesc}
-
-\begin{funcdesc}{open}{filename, \optional{flag, \optional{mode}}}
-Open a \code{gdbm} database and return a \code{gdbm} object. The
-\var{filename} argument is the name of the database file.
-
-The optional \var{flag} argument can be
-\code{'r'} (to open an existing database for reading only --- default),
-\code{'w'} (to open an existing database for reading and writing),
-\code{'c'} (which creates the database if it doesn't exist), or
-\code{'n'} (which always creates a new empty database).
-
-Appending \code{f} to the flag opens the database in fast mode;
-altered data will not automatically be written to the disk after every
-change. This results in faster writes to the database, but may result
-in an inconsistent database if the program crashes while the database
-is still open. Use the \code{sync()} method to force any unwritten
-data to be written to the disk.
-
-The optional \var{mode} argument is the \UNIX{} mode of the file, used
-only when the database has to be created. It defaults to octal
-\code{0666}.
-\end{funcdesc}
-
-In addition to the dictionary-like methods, \code{gdbm} objects have the
-following methods:
-
-\begin{funcdesc}{firstkey}{}
-It's possible to loop over every key in the database using this method
-and the \code{nextkey()} method. The traversal is ordered by \code{gdbm}'s
-internal hash values, and won't be sorted by the key values. This
-method returns the starting key.
-\end{funcdesc}
-
-\begin{funcdesc}{nextkey}{key}
-Returns the key that follows \var{key} in the traversal. The
-following code prints every key in the database \code{db}, without having to
-create a list in memory that contains them all:
-\begin{verbatim}
-k=db.firstkey()
-while k!=None:
- print k
- k=db.nextkey(k)
-\end{verbatim}
-\end{funcdesc}
-
-\begin{funcdesc}{reorganize}{}
-If you have carried out a lot of deletions and would like to shrink
-the space used by the \code{gdbm} file, this routine will reorganize the
-database. \code{gdbm} will not shorten the length of a database file except
-by using this reorganization; otherwise, deleted file space will be
-kept and reused as new (key,value) pairs are added.
-\end{funcdesc}
-
-\begin{funcdesc}{sync}{}
-When the database has been opened in fast mode, this method forces any
-unwritten data to be written to the disk.
-\end{funcdesc}
-
diff --git a/Doc/libgetopt.tex b/Doc/libgetopt.tex
deleted file mode 100644
index be00fef..0000000
--- a/Doc/libgetopt.tex
+++ /dev/null
@@ -1,80 +0,0 @@
-\section{Standard Module \module{getopt}}
-\label{module-getopt}
-\stmodindex{getopt}
-
-This module helps scripts to parse the command line arguments in
-\code{sys.argv}.
-It supports the same conventions as the \UNIX{} \cfunction{getopt()}
-function (including the special meanings of arguments of the form
-`\code{-}' and `\code{-}\code{-}').
-% That's to fool latex2html into leaving the two hyphens alone!
-Long options similar to those supported by
-GNU software may be used as well via an optional third argument.
-This module provides a single function and an exception:
-
-\begin{funcdesc}{getopt}{args, options\optional{, long_options}}
-Parses command line options and parameter list. \var{args} is the
-argument list to be parsed, without the leading reference to the
-running program. Typically, this means \samp{sys.argv[1:]}.
-\var{options} is the string of option letters that the script wants to
-recognize, with options that require an argument followed by a colon
-(i.e., the same format that \UNIX{} \cfunction{getopt()} uses). If
-specified, \var{long_options} is a list of strings with the names of
-the long options which should be supported. The leading
-\code{'-}\code{-'} characters should not be included in the option
-name. Options which require an argument should be followed by an
-equal sign (\code{'='}).
-
-The return value consists of two elements: the first is a list of
-\code{(\var{option}, \var{value})} pairs; the second is the list of
-program arguments left after the option list was stripped (this is a
-trailing slice of the first argument).
-Each option-and-value pair returned has the option as its first
-element, prefixed with a hyphen (e.g., \code{'-x'}), and the option
-argument as its second element, or an empty string if the option has
-no argument.
-The options occur in the list in the same order in which they were
-found, thus allowing multiple occurrences. Long and short options may
-be mixed.
-\end{funcdesc}
-
-\begin{excdesc}{error}
-This is raised when an unrecognized option is found in the argument
-list or when an option requiring an argument is given none.
-The argument to the exception is a string indicating the cause of the
-error. For long options, an argument given to an option which does
-not require one will also cause this exception to be raised.
-\end{excdesc}
-
-
-An example using only \UNIX{} style options:
-
-\begin{verbatim}
->>> import getopt, string
->>> args = string.split('-a -b -cfoo -d bar a1 a2')
->>> args
-['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2']
->>> optlist, args = getopt.getopt(args, 'abc:d:')
->>> optlist
-[('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]
->>> args
-['a1', 'a2']
->>>
-\end{verbatim}
-
-Using long option names is equally easy:
-
-\begin{verbatim}
->>> s = '--condition=foo --testing --output-file abc.def -x a1 a2'
->>> args = string.split(s)
->>> args
-['--condition=foo', '--testing', '--output-file', 'abc.def', '-x', 'a1', 'a2']
->>> optlist, args = getopt.getopt(args, 'x', [
-... 'condition=', 'output-file=', 'testing'])
->>> optlist
-[('--condition', 'foo'), ('--testing', ''), ('--output-file', 'abc.def'), ('-x',
- '')]
->>> args
-['a1', 'a2']
->>>
-\end{verbatim}
diff --git a/Doc/libgl.tex b/Doc/libgl.tex
deleted file mode 100644
index abbaf10..0000000
--- a/Doc/libgl.tex
+++ /dev/null
@@ -1,197 +0,0 @@
-\section{Built-in Module \module{gl}}
-\label{module-gl}
-\bimodindex{gl}
-
-This module provides access to the Silicon Graphics
-\emph{Graphics Library}.
-It is available only on Silicon Graphics machines.
-
-\strong{Warning:}
-Some illegal calls to the GL library cause the Python interpreter to dump
-core.
-In particular, the use of most GL calls is unsafe before the first
-window is opened.
-
-The module is too large to document here in its entirety, but the
-following should help you to get started.
-The parameter conventions for the C functions are translated to Python as
-follows:
-
-\begin{itemize}
-\item
-All (short, long, unsigned) int values are represented by Python
-integers.
-\item
-All float and double values are represented by Python floating point
-numbers.
-In most cases, Python integers are also allowed.
-\item
-All arrays are represented by one-dimensional Python lists.
-In most cases, tuples are also allowed.
-\item
-\begin{sloppypar}
-All string and character arguments are represented by Python strings,
-for instance,
-\code{winopen('Hi There!')}
-and
-\code{rotate(900, 'z')}.
-\end{sloppypar}
-\item
-All (short, long, unsigned) integer arguments or return values that are
-only used to specify the length of an array argument are omitted.
-For example, the C call
-
-\begin{verbatim}
-lmdef(deftype, index, np, props)
-\end{verbatim}
-%
-is translated to Python as
-
-\begin{verbatim}
-lmdef(deftype, index, props)
-\end{verbatim}
-%
-\item
-Output arguments are omitted from the argument list; they are
-transmitted as function return values instead.
-If more than one value must be returned, the return value is a tuple.
-If the C function has both a regular return value (that is not omitted
-because of the previous rule) and an output argument, the return value
-comes first in the tuple.
-Examples: the C call
-
-\begin{verbatim}
-getmcolor(i, &red, &green, &blue)
-\end{verbatim}
-%
-is translated to Python as
-
-\begin{verbatim}
-red, green, blue = getmcolor(i)
-\end{verbatim}
-%
-\end{itemize}
-
-The following functions are non-standard or have special argument
-conventions:
-
-\begin{funcdesc}{varray}{argument}
-%JHXXX the argument-argument added
-Equivalent to but faster than a number of
-\code{v3d()}
-calls.
-The \var{argument} is a list (or tuple) of points.
-Each point must be a tuple of coordinates
-\code{(\var{x}, \var{y}, \var{z})} or \code{(\var{x}, \var{y})}.
-The points may be 2- or 3-dimensional but must all have the
-same dimension.
-Float and int values may be mixed however.
-The points are always converted to 3D double precision points
-by assuming \code{\var{z} = 0.0} if necessary (as indicated in the man page),
-and for each point
-\code{v3d()}
-is called.
-\end{funcdesc}
-
-\begin{funcdesc}{nvarray}{}
-Equivalent to but faster than a number of
-\code{n3f}
-and
-\code{v3f}
-calls.
-The argument is an array (list or tuple) of pairs of normals and points.
-Each pair is a tuple of a point and a normal for that point.
-Each point or normal must be a tuple of coordinates
-\code{(\var{x}, \var{y}, \var{z})}.
-Three coordinates must be given.
-Float and int values may be mixed.
-For each pair,
-\code{n3f()}
-is called for the normal, and then
-\code{v3f()}
-is called for the point.
-\end{funcdesc}
-
-\begin{funcdesc}{vnarray}{}
-Similar to
-\code{nvarray()}
-but the pairs have the point first and the normal second.
-\end{funcdesc}
-
-\begin{funcdesc}{nurbssurface}{s_k, t_k, ctl, s_ord, t_ord, type}
-% XXX s_k[], t_k[], ctl[][]
-Defines a nurbs surface.
-The dimensions of
-\code{\var{ctl}[][]}
-are computed as follows:
-\code{[len(\var{s_k}) - \var{s_ord}]},
-\code{[len(\var{t_k}) - \var{t_ord}]}.
-\end{funcdesc}
-
-\begin{funcdesc}{nurbscurve}{knots, ctlpoints, order, type}
-Defines a nurbs curve.
-The length of ctlpoints is
-\code{len(\var{knots}) - \var{order}}.
-\end{funcdesc}
-
-\begin{funcdesc}{pwlcurve}{points, type}
-Defines a piecewise-linear curve.
-\var{points}
-is a list of points.
-\var{type}
-must be
-\code{N_ST}.
-\end{funcdesc}
-
-\begin{funcdesc}{pick}{n}
-\funcline{select}{n}
-The only argument to these functions specifies the desired size of the
-pick or select buffer.
-\end{funcdesc}
-
-\begin{funcdesc}{endpick}{}
-\funcline{endselect}{}
-These functions have no arguments.
-They return a list of integers representing the used part of the
-pick/select buffer.
-No method is provided to detect buffer overrun.
-\end{funcdesc}
-
-Here is a tiny but complete example GL program in Python:
-
-\begin{verbatim}
-import gl, GL, time
-
-def main():
- gl.foreground()
- gl.prefposition(500, 900, 500, 900)
- w = gl.winopen('CrissCross')
- gl.ortho2(0.0, 400.0, 0.0, 400.0)
- gl.color(GL.WHITE)
- gl.clear()
- gl.color(GL.RED)
- gl.bgnline()
- gl.v2f(0.0, 0.0)
- gl.v2f(400.0, 400.0)
- gl.endline()
- gl.bgnline()
- gl.v2f(400.0, 0.0)
- gl.v2f(0.0, 400.0)
- gl.endline()
- time.sleep(5)
-
-main()
-\end{verbatim}
-%
-\section{Standard Modules \module{GL} and \module{DEVICE}}
-\nodename{GL and DEVICE}
-\stmodindex{GL}
-\stmodindex{DEVICE}
-
-These modules define the constants used by the Silicon Graphics
-\emph{Graphics Library}
-that C programmers find in the header files
-\file{<gl/gl.h>}
-and
-\file{<gl/device.h>}.
-Read the module source files for details.
diff --git a/Doc/libglob.tex b/Doc/libglob.tex
deleted file mode 100644
index 10f667a..0000000
--- a/Doc/libglob.tex
+++ /dev/null
@@ -1,35 +0,0 @@
-\section{Standard Module \module{glob}}
-\label{module-glob}
-\stmodindex{glob}
-
-The \module{glob} module finds all the pathnames matching a specified
-pattern according to the rules used by the \UNIX{} shell. No tilde
-expansion is done, but \code{*}, \code{?}, and character ranges
-expressed with \code{[]} will be correctly matched. This is done by
-using the \function{os.listdir()} and \function{fnmatch.fnmatch()}
-functions in concert, and not by actually invoking a subshell. (For
-tilde and shell variable expansion, use \function{os.path.expanduser()}
-and \function{os.path.expandvars()}.)
-
-\begin{funcdesc}{glob}{pathname}
-Returns a possibly-empty list of path names that match \var{pathname},
-which must be a string containing a path specification.
-\var{pathname} can be either absolute (like
-\file{/usr/src/Python-1.5/Makefile}) or relative (like
-\file{../../Tools/*.gif}), and can contain shell-style wildcards.
-\end{funcdesc}
-
-For example, consider a directory containing only the following files:
-\file{1.gif}, \file{2.txt}, and \file{card.gif}. \function{glob()}
-will produce the following results. Notice how any leading components
-of the path are preserved.
-
-\begin{verbatim}
->>> import glob
->>> glob.glob('./[0-9].*')
-['./1.gif', './2.txt']
->>> glob.glob('*.gif')
-['1.gif', 'card.gif']
->>> glob.glob('?.gif')
-['1.gif']
-\end{verbatim}
diff --git a/Doc/libgopherlib.tex b/Doc/libgopherlib.tex
deleted file mode 100644
index 156d6d7..0000000
--- a/Doc/libgopherlib.tex
+++ /dev/null
@@ -1,31 +0,0 @@
-\section{Standard Module \module{gopherlib}}
-\label{module-gopherlib}
-\stmodindex{gopherlib}
-\indexii{Gopher}{protocol}
-
-
-This module provides a minimal implementation of client side of the
-the Gopher protocol. It is used by the module \code{urllib} to handle
-URLs that use the Gopher protocol.
-
-The module defines the following functions:
-
-\begin{funcdesc}{send_selector}{selector, host\optional{, port}}
-Send a \var{selector} string to the gopher server at \var{host} and
-\var{port} (default \code{70}). Returns an open file object from
-which the returned document can be read.
-\end{funcdesc}
-
-\begin{funcdesc}{send_query}{selector, query, host\optional{, port}}
-Send a \var{selector} string and a \var{query} string to a gopher
-server at \var{host} and \var{port} (default \code{70}). Returns an
-open file object from which the returned document can be read.
-\end{funcdesc}
-
-Note that the data returned by the Gopher server can be of any type,
-depending on the first character of the selector string. If the data
-is text (first character of the selector is \samp{0}), lines are
-terminated by CRLF, and the data is terminated by a line consisting of
-a single \samp{.}, and a leading \samp{.} should be stripped from
-lines that begin with \samp{..}. Directory listings (first character
-of the selector is \samp{1}) are transferred using the same protocol.
diff --git a/Doc/libgrp.tex b/Doc/libgrp.tex
deleted file mode 100644
index 551171b..0000000
--- a/Doc/libgrp.tex
+++ /dev/null
@@ -1,32 +0,0 @@
-\section{Built-in Module \module{grp}}
-\label{module-grp}
-
-\bimodindex{grp}
-This module provides access to the \UNIX{} group database.
-It is available on all \UNIX{} versions.
-
-Group database entries are reported as 4-tuples containing the
-following items from the group database (see \file{<grp.h>}), in order:
-\code{gr_name},
-\code{gr_passwd},
-\code{gr_gid},
-\code{gr_mem}.
-The gid is an integer, name and password are strings, and the member
-list is a list of strings.
-(Note that most users are not explicitly listed as members of the
-group they are in according to the password database.)
-A \code{KeyError} exception is raised if the entry asked for cannot be found.
-
-It defines the following items:
-
-\begin{funcdesc}{getgrgid}{gid}
-Return the group database entry for the given numeric group ID.
-\end{funcdesc}
-
-\begin{funcdesc}{getgrnam}{name}
-Return the group database entry for the given group name.
-\end{funcdesc}
-
-\begin{funcdesc}{getgrall}{}
-Return a list of all available group entries, in arbitrary order.
-\end{funcdesc}
diff --git a/Doc/libgzip.tex b/Doc/libgzip.tex
deleted file mode 100644
index fd2bc28..0000000
--- a/Doc/libgzip.tex
+++ /dev/null
@@ -1,47 +0,0 @@
-\section{Standard Module \module{gzip}}
-\label{module-gzip}
-\stmodindex{gzip}
-
-The data compression provided by the \code{zlib} module is compatible
-with that used by the GNU compression program \program{gzip}.
-Accordingly, the \module{gzip} module provides the \class{GzipFile}
-class to read and write \program{gzip}-format files, automatically
-compressing or decompressing the data so it looks like an ordinary
-file object.
-
-\class{GzipFile} objects simulate most of the methods of a file
-object, though it's not possible to use the \method{seek()} and
-\method{tell()} methods to access the file randomly.
-\withsubitem{(class in gzip)}{\ttindex{GzipFile}}
-
-
-\begin{funcdesc}{open}{fileobj\optional{, filename\optional{,
- mode\optional{, compresslevel}}}}
- Returns a new \class{GzipFile} object on top of \var{fileobj}, which
- can be a regular file, a \class{StringIO} object, or any object which
- simulates a file.
-
- The \program{gzip} file format includes the original filename of the
- uncompressed file; when opening a \class{GzipFile} object for
- writing, it can be set by the \var{filename} argument. The default
- value is an empty string.
-
- \var{mode} can be either \code{'r'} or \code{'w'} depending on
- whether the file will be read or written. \var{compresslevel} is an
- integer from \code{1} to \code{9} controlling the level of
- compression; \code{1} is fastest and produces the least compression,
- and \code{9} is slowest and produces the most compression. The
- default value of \var{compresslevel} is \code{9}.
-
- Calling a \class{GzipFile} object's \method{close()} method does not
- close \var{fileobj}, since you might wish to append more material
- after the compressed data. This also allows you to pass a
- \class{StringIO} object opened for writing as \var{fileobj}, and
- retrieve the resulting memory buffer using the \class{StringIO}
- object's \method{getvalue()} method.
-\end{funcdesc}
-
-\begin{seealso}
-\seemodule{zlib}{the basic data compression module}
-\end{seealso}
-
diff --git a/Doc/libhtmllib.tex b/Doc/libhtmllib.tex
deleted file mode 100644
index c856b42..0000000
--- a/Doc/libhtmllib.tex
+++ /dev/null
@@ -1,119 +0,0 @@
-\section{Standard Module \module{htmllib}}
-\label{module-htmllib}
-\stmodindex{htmllib}
-\index{HTML}
-\index{hypertext}
-
-
-This module defines a class which can serve as a base for parsing text
-files formatted in the HyperText Mark-up Language (HTML). The class
-is not directly concerned with I/O --- it must be provided with input
-in string form via a method, and makes calls to methods of a
-``formatter'' object in order to produce output. The
-\class{HTMLParser} class is designed to be used as a base class for
-other classes in order to add functionality, and allows most of its
-methods to be extended or overridden. In turn, this class is derived
-from and extends the \class{SGMLParser} class defined in module
-\module{sgmllib}\refstmodindex{sgmllib}. The \class{HTMLParser}
-implementation supports the HTML 2.0 language as described in
-\rfc{1866}. Two implementations of formatter objects are provided in
-the \module{formatter}\refstmodindex{formatter} module; refer to the
-documentation for that module for information on the formatter
-interface.
-\index{SGML}
-\withsubitem{(in module sgmllib)}{\ttindex{SGMLParser}}
-\index{formatter}
-
-The following is a summary of the interface defined by
-\class{sgmllib.SGMLParser}:
-
-\begin{itemize}
-
-\item
-The interface to feed data to an instance is through the \method{feed()}
-method, which takes a string argument. This can be called with as
-little or as much text at a time as desired; \samp{p.feed(a);
-p.feed(b)} has the same effect as \samp{p.feed(a+b)}. When the data
-contains complete HTML tags, these are processed immediately;
-incomplete elements are saved in a buffer. To force processing of all
-unprocessed data, call the \method{close()} method.
-
-For example, to parse the entire contents of a file, use:
-\begin{verbatim}
-parser.feed(open('myfile.html').read())
-parser.close()
-\end{verbatim}
-
-\item
-The interface to define semantics for HTML tags is very simple: derive
-a class and define methods called \code{start_\var{tag}()},
-\code{end_\var{tag}()}, or \code{do_\var{tag}()}. The parser will
-call these at appropriate moments: \code{start_\var{tag}} or
-\code{do_\var{tag}()} is called when an opening tag of the form
-\code{<\var{tag} ...>} is encountered; \code{end_\var{tag}()} is called
-when a closing tag of the form \code{<\var{tag}>} is encountered. If
-an opening tag requires a corresponding closing tag, like \code{<H1>}
-... \code{</H1>}, the class should define the \code{start_\var{tag}()}
-method; if a tag requires no closing tag, like \code{<P>}, the class
-should define the \code{do_\var{tag}()} method.
-
-\end{itemize}
-
-The module defines a single class:
-
-\begin{classdesc}{HTMLParser}{formatter}
-This is the basic HTML parser class. It supports all entity names
-required by the HTML 2.0 specification (\rfc{1866}). It also defines
-handlers for all HTML 2.0 and many HTML 3.0 and 3.2 elements.
-\end{classdesc}
-
-In addition to tag methods, the \class{HTMLParser} class provides some
-additional methods and instance variables for use within tag methods.
-
-\begin{memberdesc}{formatter}
-This is the formatter instance associated with the parser.
-\end{memberdesc}
-
-\begin{memberdesc}{nofill}
-Boolean flag which should be true when whitespace should not be
-collapsed, or false when it should be. In general, this should only
-be true when character data is to be treated as ``preformatted'' text,
-as within a \code{<PRE>} element. The default value is false. This
-affects the operation of \method{handle_data()} and \method{save_end()}.
-\end{memberdesc}
-
-
-\begin{methoddesc}{anchor_bgn}{href, name, type}
-This method is called at the start of an anchor region. The arguments
-correspond to the attributes of the \code{<A>} tag with the same
-names. The default implementation maintains a list of hyperlinks
-(defined by the \code{href} attribute) within the document. The list
-of hyperlinks is available as the data attribute \code{anchorlist}.
-\end{methoddesc}
-
-\begin{methoddesc}{anchor_end}{}
-This method is called at the end of an anchor region. The default
-implementation adds a textual footnote marker using an index into the
-list of hyperlinks created by \method{anchor_bgn()}.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_image}{source, alt\optional{, ismap\optional{, align\optional{, width\optional{, height}}}}}
-This method is called to handle images. The default implementation
-simply passes the \var{alt} value to the \method{handle_data()}
-method.
-\end{methoddesc}
-
-\begin{methoddesc}{save_bgn}{}
-Begins saving character data in a buffer instead of sending it to the
-formatter object. Retrieve the stored data via \method{save_end()}.
-Use of the \method{save_bgn()} / \method{save_end()} pair may not be
-nested.
-\end{methoddesc}
-
-\begin{methoddesc}{save_end}{}
-Ends buffering character data and returns all data saved since the
-preceeding call to \method{save_bgn()}. If the \code{nofill} flag is
-false, whitespace is collapsed to single spaces. A call to this
-method without a preceeding call to \method{save_bgn()} will raise a
-\exception{TypeError} exception.
-\end{methoddesc}
diff --git a/Doc/libhttplib.tex b/Doc/libhttplib.tex
deleted file mode 100644
index 55ec9b98..0000000
--- a/Doc/libhttplib.tex
+++ /dev/null
@@ -1,129 +0,0 @@
-\section{Standard Module \module{httplib}}
-\label{module-httplib}
-\stmodindex{httplib}
-\indexii{HTTP}{protocol}
-
-
-This module defines a class which implements the client side of the
-HTTP protocol. It is normally not used directly --- the module
-\module{urllib}\refstmodindex{urllib} uses it to handle URLs that use
-HTTP.
-
-The module defines one class, \class{HTTP}:
-
-\begin{classdesc}{HTTP}{\optional{host\optional{, port}}}
-An \class{HTTP} instance
-represents one transaction with an HTTP server. It should be
-instantiated passing it a host and optional port number. If no port
-number is passed, the port is extracted from the host string if it has
-the form \code{\var{host}:\var{port}}, else the default HTTP port (80)
-is used. If no host is passed, no connection is made, and the
-\method{connect()} method should be used to connect to a server. For
-example, the following calls all create instances that connect to the
-server at the same host and port:
-
-\begin{verbatim}
->>> h1 = httplib.HTTP('www.cwi.nl')
->>> h2 = httplib.HTTP('www.cwi.nl:80')
->>> h3 = httplib.HTTP('www.cwi.nl', 80)
-\end{verbatim}
-
-Once an \class{HTTP} instance has been connected to an HTTP server, it
-should be used as follows:
-
-\begin{enumerate}
-
-\item[1.] Make exactly one call to the \method{putrequest()} method.
-
-\item[2.] Make zero or more calls to the \method{putheader()} method.
-
-\item[3.] Call the \method{endheaders()} method (this can be omitted if
-step 4 makes no calls).
-
-\item[4.] Optional calls to the \method{send()} method.
-
-\item[5.] Call the \method{getreply()} method.
-
-\item[6.] Call the \method{getfile()} method and read the data off the
-file object that it returns.
-
-\end{enumerate}
-\end{classdesc}
-
-\subsection{HTTP Objects}
-
-\class{HTTP} instances have the following methods:
-
-
-\begin{methoddesc}{set_debuglevel}{level}
-Set the debugging level (the amount of debugging output printed).
-The default debug level is \code{0}, meaning no debugging output is
-printed.
-\end{methoddesc}
-
-\begin{methoddesc}{connect}{host\optional{, port}}
-Connect to the server given by \var{host} and \var{port}. See the
-intro for the default port. This should be called directly only if
-the instance was instantiated without passing a host.
-\end{methoddesc}
-
-\begin{methoddesc}{send}{data}
-Send data to the server. This should be used directly only after the
-\method{endheaders()} method has been called and before
-\method{getreply()} has been called.
-\end{methoddesc}
-
-\begin{methoddesc}{putrequest}{request, selector}
-This should be the first call after the connection to the server has
-been made. It sends a line to the server consisting of the
-\var{request} string, the \var{selector} string, and the HTTP version
-(\code{HTTP/1.0}).
-\end{methoddesc}
-
-\begin{methoddesc}{putheader}{header, argument\optional{, ...}}
-Send an \rfc{822} style header to the server. It sends a line to the
-server consisting of the header, a colon and a space, and the first
-argument. If more arguments are given, continuation lines are sent,
-each consisting of a tab and an argument.
-\end{methoddesc}
-
-\begin{methoddesc}{endheaders}{}
-Send a blank line to the server, signalling the end of the headers.
-\end{methoddesc}
-
-\begin{methoddesc}{getreply}{}
-Complete the request by shutting down the sending end of the socket,
-read the reply from the server, and return a triple
-\code{(\var{replycode}, \var{message}, \var{headers})}. Here,
-\var{replycode} is the integer reply code from the request (e.g.\
-\code{200} if the request was handled properly); \var{message} is the
-message string corresponding to the reply code; and \var{headers} is
-an instance of the class \class{mimetools.Message} containing the
-headers received from the server. See the description of the
-\module{mimetools}\refstmodindex{mimetools} module.
-\end{methoddesc}
-
-\begin{methoddesc}{getfile}{}
-Return a file object from which the data returned by the server can be
-read, using the \method{read()}, \method{readline()} or
-\method{readlines()} methods.
-\end{methoddesc}
-
-\subsection{Example}
-\nodename{HTTP Example}
-
-Here is an example session:
-
-\begin{verbatim}
->>> import httplib
->>> h = httplib.HTTP('www.cwi.nl')
->>> h.putrequest('GET', '/index.html')
->>> h.putheader('Accept', 'text/html')
->>> h.putheader('Accept', 'text/plain')
->>> h.endheaders()
->>> errcode, errmsg, headers = h.getreply()
->>> print errcode # Should be 200
->>> f = h.getfile()
->>> data = f.read() # Get the raw HTML
->>> f.close()
-\end{verbatim}
diff --git a/Doc/libimageop.tex b/Doc/libimageop.tex
deleted file mode 100644
index c21be48..0000000
--- a/Doc/libimageop.tex
+++ /dev/null
@@ -1,85 +0,0 @@
-\section{Built-in Module \module{imageop}}
-\label{module-imageop}
-\bimodindex{imageop}
-
-The \module{imageop} module contains some useful operations on images.
-It operates on images consisting of 8 or 32 bit pixels stored in
-Python strings. This is the same format as used by
-\function{gl.lrectwrite()} and the \module{imgfile} module.
-
-The module defines the following variables and functions:
-
-\begin{excdesc}{error}
-This exception is raised on all errors, such as unknown number of bits
-per pixel, etc.
-\end{excdesc}
-
-
-\begin{funcdesc}{crop}{image, psize, width, height, x0, y0, x1, y1}
-Return the selected part of \var{image}, which should by
-\var{width} by \var{height} in size and consist of pixels of
-\var{psize} bytes. \var{x0}, \var{y0}, \var{x1} and \var{y1} are like
-the \function{gl.lrectread()} parameters, i.e.\ the boundary is
-included in the new image. The new boundaries need not be inside the
-picture. Pixels that fall outside the old image will have their value
-set to zero. If \var{x0} is bigger than \var{x1} the new image is
-mirrored. The same holds for the y coordinates.
-\end{funcdesc}
-
-\begin{funcdesc}{scale}{image, psize, width, height, newwidth, newheight}
-Return \var{image} scaled to size \var{newwidth} by \var{newheight}.
-No interpolation is done, scaling is done by simple-minded pixel
-duplication or removal. Therefore, computer-generated images or
-dithered images will not look nice after scaling.
-\end{funcdesc}
-
-\begin{funcdesc}{tovideo}{image, psize, width, height}
-Run a vertical low-pass filter over an image. It does so by computing
-each destination pixel as the average of two vertically-aligned source
-pixels. The main use of this routine is to forestall excessive
-flicker if the image is displayed on a video device that uses
-interlacing, hence the name.
-\end{funcdesc}
-
-\begin{funcdesc}{grey2mono}{image, width, height, threshold}
-Convert a 8-bit deep greyscale image to a 1-bit deep image by
-tresholding all the pixels. The resulting image is tightly packed and
-is probably only useful as an argument to \function{mono2grey()}.
-\end{funcdesc}
-
-\begin{funcdesc}{dither2mono}{image, width, height}
-Convert an 8-bit greyscale image to a 1-bit monochrome image using a
-(simple-minded) dithering algorithm.
-\end{funcdesc}
-
-\begin{funcdesc}{mono2grey}{image, width, height, p0, p1}
-Convert a 1-bit monochrome image to an 8 bit greyscale or color image.
-All pixels that are zero-valued on input get value \var{p0} on output
-and all one-value input pixels get value \var{p1} on output. To
-convert a monochrome black-and-white image to greyscale pass the
-values \code{0} and \code{255} respectively.
-\end{funcdesc}
-
-\begin{funcdesc}{grey2grey4}{image, width, height}
-Convert an 8-bit greyscale image to a 4-bit greyscale image without
-dithering.
-\end{funcdesc}
-
-\begin{funcdesc}{grey2grey2}{image, width, height}
-Convert an 8-bit greyscale image to a 2-bit greyscale image without
-dithering.
-\end{funcdesc}
-
-\begin{funcdesc}{dither2grey2}{image, width, height}
-Convert an 8-bit greyscale image to a 2-bit greyscale image with
-dithering. As for \function{dither2mono()}, the dithering algorithm
-is currently very simple.
-\end{funcdesc}
-
-\begin{funcdesc}{grey42grey}{image, width, height}
-Convert a 4-bit greyscale image to an 8-bit greyscale image.
-\end{funcdesc}
-
-\begin{funcdesc}{grey22grey}{image, width, height}
-Convert a 2-bit greyscale image to an 8-bit greyscale image.
-\end{funcdesc}
diff --git a/Doc/libimaplib.tex b/Doc/libimaplib.tex
deleted file mode 100644
index fa3ec68..0000000
--- a/Doc/libimaplib.tex
+++ /dev/null
@@ -1,241 +0,0 @@
-% Based on HTML documentation by Piers Lauder <piers@staff.cs.usyd.edu.au>;
-% converted by Fred L. Drake, Jr. <fdrake@acm.org>.
-%
-% The imaplib module was written by Piers Lauder.
-
-\section{Standard Module \module{imaplib}}
-\stmodindex{imaplib}
-\label{module-imaplib}
-\indexii{IMAP4}{protocol}
-
-This module defines a class, \class{IMAP4}, which encapsulates a
-connection to an IMAP4 server and implements the IMAP4rev1 client
-protocol as defined in \rfc{2060}. It is backward compatible with
-IMAP4 (\rfc{1730}) servers, but note that the \samp{STATUS} command is
-not supported in IMAP4.
-
-A single class is provided by the \code{imaplib} module:
-
-\begin{classdesc}{IMAP4}{\optional{host\optional{, port}}}
-This class implements the actual IMAP4 protocol. The connection is
-created and protocol version (IMAP4 or IMAP4rev1) is determined when
-the instance is initialized.
-If \var{host} is not specified, \code{''} (the local host) is used.
-If \var{port} is omitted, the standard IMAP4 port (143) is used.
-\end{classdesc}
-
-Two exceptions are defined as attributes of the \class{IMAP4} class:
-
-\begin{excdesc}{IMAP4.error}
-Exception raised on any errors. The reason for the exception is
-passed to the constructor as a string.
-\end{excdesc}
-
-\begin{excdesc}{IMAP4.abort}
-IMAP4 server errors cause this exception to be raised. This is a
-sub-class of \exception{IMAP4.error}. Note that closing the instance
-and instantiating a new one will usually allow recovery from this
-exception.
-\end{excdesc}
-
-The following utility functions are defined:
-
-\begin{funcdesc}{Internaldate2tuple}{datestr}
- Converts an IMAP4 INTERNALDATE string to Coordinated Universal
- Time. Returns a \module{time} module tuple.
-\end{funcdesc}
-
-\begin{funcdesc}{Int2AP}{num}
- Converts an integer into a string representation using characters
- from the set [\code{A} .. \code{P}].
-\end{funcdesc}
-
-\begin{funcdesc}{ParseFlags}{flagstr}
- Converts an IMAP4 \samp{FLAGS} response to a tuple of individual
- flags.
-\end{funcdesc}
-
-\begin{funcdesc}{Time2Internaldate}{date_time}
- Converts a \module{time} module tuple to an IMAP4
- \samp{INTERNALDATE} representation. Returns a string in the form:
- \code{"DD-Mmm-YYYY HH:MM:SS +HHMM"} (including double-quotes).
-\end{funcdesc}
-
-
-\subsection{IMAP4 Objects}
-\label{imap4-objects}
-
-All IMAP4rev1 commands are represented by methods of the same name,
-either upper-case or lower-case.
-
-Each command returns a tuple: \code{(}\var{type}, \code{[}\var{data},
-...\code{])} where \var{type} is usually \code{'OK'} or \code{'NO'},
-and \var{data} is either the text from the command response, or
-mandated results from the command.
-
-An \class{IMAP4} instance has the following methods:
-
-
-\begin{methoddesc}{append}{mailbox, flags, date_time, message}
- Append message to named mailbox.
-\end{methoddesc}
-
-\begin{methoddesc}{authenticate}{func}
- Authenticate command --- requires response processing. This is
- currently unimplemented, and raises an exception.
-\end{methoddesc}
-
-\begin{methoddesc}{check}{}
- Checkpoint mailbox on server.
-\end{methoddesc}
-
-\begin{methoddesc}{close}{}
- Close currently selected mailbox. Deleted messages are removed from
- writable mailbox. This is the recommended command before
- \samp{LOGOUT}.
-\end{methoddesc}
-
-\begin{methoddesc}{copy}{message_set, new_mailbox}
- Copy \var{message_set} messages onto end of \var{new_mailbox}.
-\end{methoddesc}
-
-\begin{methoddesc}{create}{mailbox}
- Create new mailbox named \var{mailbox}.
-\end{methoddesc}
-
-\begin{methoddesc}{delete}{mailbox}
- Delete old mailbox named \var{mailbox}.
-\end{methoddesc}
-
-\begin{methoddesc}{expunge}{}
- Permanently remove deleted items from selected mailbox. Generates an
- \samp{EXPUNGE} response for each deleted message. Returned data
- contains a list of \samp{EXPUNGE} message numbers in order
- received.
-\end{methoddesc}
-
-\begin{methoddesc}{fetch}{message_set, message_parts}
- Fetch (parts of) messages. Returned data are tuples of message part
- envelope and data.
-\end{methoddesc}
-
-\begin{methoddesc}{list}{\optional{directory\optional{, pattern}}}
- List mailbox names in \var{directory} matching
- \var{pattern}. \var{directory} defaults to the top-level mail
- folder, and \var{pattern} defaults to match anything. Returned data
- contains a list of \samp{LIST} responses.
-\end{methoddesc}
-
-\begin{methoddesc}{login}{user, password}
- Identify the client using a plaintext password.
-\end{methoddesc}
-
-\begin{methoddesc}{logout}{}
- Shutdown connection to server. Returns server \samp{BYE} response.
-\end{methoddesc}
-
-\begin{methoddesc}{lsub}{\optional{directory\optional{, pattern}}}
- List subscribed mailbox names in directory matching pattern.
- \var{directory} defaults to the top level directory and
- \var{pattern} defaults to match any mailbox.
- Returned data are tuples of message part envelope and data.
-\end{methoddesc}
-
-\begin{methoddesc}{recent}{}
- Prompt server for an update. Returned data is \code{None} if no new
- messages, else value of \samp{RECENT} response.
-\end{methoddesc}
-
-\begin{methoddesc}{rename}{oldmailbox, newmailbox}
- Rename mailbox named \var{oldmailbox} to \var{newmailbox}.
-\end{methoddesc}
-
-\begin{methoddesc}{response}{code}
- Return data for response \var{code} if received, or
- \code{None}. Returns the given code, instead of the usual type.
-\end{methoddesc}
-
-\begin{methoddesc}{search}{charset, criteria}
- Search mailbox for matching messages. Returned data contains a space
- separated list of matching message numbers.
-\end{methoddesc}
-
-\begin{methoddesc}{select}{\optional{mailbox\optional{, readonly}}}
- Select a mailbox. Returned data is the count of messages in
- \var{mailbox} (\samp{EXISTS} response). The default \var{mailbox}
- is \code{'INBOX'}. If the \var{readonly} flag is set, modifications
- to the mailbox are not allowed.
-\end{methoddesc}
-
-\begin{methoddesc}{status}{mailbox, names}
- Request named status conditions for \var{mailbox}.
-\end{methoddesc}
-
-\begin{methoddesc}{store}{message_set, command, flag_list}
- Alters flag dispositions for messages in mailbox.
-\end{methoddesc}
-
-\begin{methoddesc}{subscribe}{mailbox}
- Subscribe to new mailbox.
-\end{methoddesc}
-
-\begin{methoddesc}{uid}{command, args}
- Execute command args with messages identified by UID, rather than
- message number. Returns response appropriate to command.
-\end{methoddesc}
-
-\begin{methoddesc}{unsubscribe}{mailbox}
- Unsubscribe from old mailbox.
-\end{methoddesc}
-
-\begin{methoddesc}{xatom}{name\optional{, arg1\optional{, arg2}}}
- Allow simple extension commands notified by server in
- \samp{CAPABILITY} response.
-\end{methoddesc}
-
-
-The following attributes are defined on instances of \class{IMAP4}:
-
-
-\begin{memberdesc}{PROTOCOL_VERSION}
-The most recent supported protocol in the \samp{CAPABILITY}
-response from the server.
-\end{memberdesc}
-
-\begin{memberdesc}{debug}
-Integer value to control debugging output. The initialize value is
-taken from the module variable \code{Debug}. Values greater than
-three trace each command.
-\end{memberdesc}
-
-
-\subsection{IMAP4 Example}
-\label{imap4-example}
-
-Here is a minimal example (without error checking) that opens a
-mailbox and retrieves and prints all messages:
-
-\begin{verbatim}
-import getpass, imaplib, string
-M = imaplib.IMAP4()
-M.LOGIN(getpass.getuser(), getpass.getpass())
-M.SELECT()
-typ, data = M.SEARCH(None, 'ALL')
-for num in string.split(data[0]):
- typ, data = M.FETCH(num, '(RFC822)')
- print 'Message %s\n%s\n' % (num, data[0][1])
-M.LOGOUT()
-\end{verbatim}
-
-Note that IMAP4 message numbers change as the mailbox changes, so it
-is highly advisable to use UIDs instead, with the UID command.
-
-At the end of the module, there is a test section that contains a more
-extensive example of usage.
-
-\begin{seealso}
-\seetext{Documents describing the protocol, and sources and binaries
-for servers implementing it, can all be found at the University of
-Washington's \emph{IMAP Information Center}
-(\url{http://www.cac.washington.edu/imap/}).}
-\end{seealso}
diff --git a/Doc/libimgfile.tex b/Doc/libimgfile.tex
deleted file mode 100644
index e74fe9e..0000000
--- a/Doc/libimgfile.tex
+++ /dev/null
@@ -1,62 +0,0 @@
-\section{Built-in Module \module{imgfile}}
-\label{module-imgfile}
-\bimodindex{imgfile}
-
-The \module{imgfile} module allows Python programs to access SGI imglib image
-files (also known as \file{.rgb} files). The module is far from
-complete, but is provided anyway since the functionality that there is
-is enough in some cases. Currently, colormap files are not supported.
-
-The module defines the following variables and functions:
-
-\begin{excdesc}{error}
-This exception is raised on all errors, such as unsupported file type, etc.
-\end{excdesc}
-
-\begin{funcdesc}{getsizes}{file}
-This function returns a tuple \code{(\var{x}, \var{y}, \var{z})} where
-\var{x} and \var{y} are the size of the image in pixels and
-\var{z} is the number of
-bytes per pixel. Only 3 byte RGB pixels and 1 byte greyscale pixels
-are currently supported.
-\end{funcdesc}
-
-\begin{funcdesc}{read}{file}
-This function reads and decodes the image on the specified file, and
-returns it as a Python string. The string has either 1 byte greyscale
-pixels or 4 byte RGBA pixels. The bottom left pixel is the first in
-the string. This format is suitable to pass to \function{gl.lrectwrite()},
-for instance.
-\end{funcdesc}
-
-\begin{funcdesc}{readscaled}{file, x, y, filter\optional{, blur}}
-This function is identical to read but it returns an image that is
-scaled to the given \var{x} and \var{y} sizes. If the \var{filter} and
-\var{blur} parameters are omitted scaling is done by
-simply dropping or duplicating pixels, so the result will be less than
-perfect, especially for computer-generated images.
-
-Alternatively, you can specify a filter to use to smoothen the image
-after scaling. The filter forms supported are \code{'impulse'},
-\code{'box'}, \code{'triangle'}, \code{'quadratic'} and
-\code{'gaussian'}. If a filter is specified \var{blur} is an optional
-parameter specifying the blurriness of the filter. It defaults to \code{1.0}.
-
-\function{readscaled()} makes no attempt to keep the aspect ratio
-correct, so that is the users' responsibility.
-\end{funcdesc}
-
-\begin{funcdesc}{ttob}{flag}
-This function sets a global flag which defines whether the scan lines
-of the image are read or written from bottom to top (flag is zero,
-compatible with SGI GL) or from top to bottom(flag is one,
-compatible with X). The default is zero.
-\end{funcdesc}
-
-\begin{funcdesc}{write}{file, data, x, y, z}
-This function writes the RGB or greyscale data in \var{data} to image
-file \var{file}. \var{x} and \var{y} give the size of the image,
-\var{z} is 1 for 1 byte greyscale images or 3 for RGB images (which are
-stored as 4 byte values of which only the lower three bytes are used).
-These are the formats returned by \function{gl.lrectread()}.
-\end{funcdesc}
diff --git a/Doc/libimghdr.tex b/Doc/libimghdr.tex
deleted file mode 100644
index 2f21a25..0000000
--- a/Doc/libimghdr.tex
+++ /dev/null
@@ -1,52 +0,0 @@
-\section{Standard Module \module{imghdr}}
-\label{module-imghdr}
-\stmodindex{imghdr}
-
-The \module{imghdr} module determines the type of image contained in a
-file or byte stream.
-
-The \module{imghdr} module defines the following function:
-
-
-\begin{funcdesc}{what}{filename\optional{, h}}
-Tests the image data contained in the file named by \var{filename},
-and returns a string describing the image type. If optional \var{h}
-is provided, the \var{filename} is ignored and \var{h} is assumed to
-contain the byte stream to test.
-\end{funcdesc}
-
-The following image types are recognized, as listed below with the
-return value from \function{what()}:
-
-\begin{tableii}{l|l}{code}{Value}{Image format}
- \lineii{'rgb'}{SGI ImgLib Files}
- \lineii{'gif'}{GIF 87a and 89a Files}
- \lineii{'pbm'}{Portable Bitmap Files}
- \lineii{'pgm'}{Portable Graymap Files}
- \lineii{'ppm'}{Portable Pixmap Files}
- \lineii{'tiff'}{TIFF Files}
- \lineii{'rast'}{Sun Raster Files}
- \lineii{'xbm'}{X Bitmap Files}
- \lineii{'jpeg'}{JPEG data in JIFF format}
-\end{tableii}
-
-You can extend the list of file types \module{imghdr} can recognize by
-appending to this variable:
-
-\begin{datadesc}{tests}
-A list of functions performing the individual tests. Each function
-takes two arguments: the byte-stream and an open file-like object.
-When \function{what()} is called with a byte-stream, the file-like
-object will be \code{None}.
-
-The test function should return a string describing the image type if
-the test succeeded, or \code{None} if it failed.
-\end{datadesc}
-
-Example:
-
-\begin{verbatim}
->>> import imghdr
->>> imghdr.what('/tmp/bass.gif')
-'gif'
-\end{verbatim}
diff --git a/Doc/libimp.tex b/Doc/libimp.tex
deleted file mode 100644
index 7d4f8d1..0000000
--- a/Doc/libimp.tex
+++ /dev/null
@@ -1,241 +0,0 @@
-\section{Built-in Module \module{imp}}
-\label{module-imp}
-\bimodindex{imp}
-\index{import}
-
-This module provides an interface to the mechanisms used to implement
-the \keyword{import} statement. It defines the following constants and
-functions:
-
-
-\begin{funcdesc}{get_magic}{}
-Return the magic string value used to recognize byte-compiled code
-files (``\code{.pyc} files''). (This value may be different for each
-Python version.)
-\end{funcdesc}
-
-\begin{funcdesc}{get_suffixes}{}
-Return a list of triples, each describing a particular type of module.
-Each triple has the form \code{(\var{suffix}, \var{mode},
-\var{type})}, where \var{suffix} is a string to be appended to the
-module name to form the filename to search for, \var{mode} is the mode
-string to pass to the built-in \code{open} function to open the file
-(this can be \code{'r'} for text files or \code{'rb'} for binary
-files), and \var{type} is the file type, which has one of the values
-\constant{PY_SOURCE}, \constant{PY_COMPILED}, or
-\constant{C_EXTENSION}, described below.
-\end{funcdesc}
-
-\begin{funcdesc}{find_module}{name\optional{, path}}
-Try to find the module \var{name} on the search path \var{path}. If
-\var{path} is a list of directory names, each directory is searched
-for files with any of the suffixes returned by \function{get_suffixes()}
-above. Invalid names in the list are silently ignored (but all list
-items must be strings). If \var{path} is omitted or \code{None}, the
-list of directory names given by \code{sys.path} is searched, but
-first it searches a few special places: it tries to find a built-in
-module with the given name (\constant{C_BUILTIN}), then a frozen module
-(\constant{PY_FROZEN}), and on some systems some other places are looked
-in as well (on the Mac, it looks for a resource (\constant{PY_RESOURCE});
-on Windows, it looks in the registry which may point to a specific
-file).
-
-If search is successful, the return value is a triple
-\code{(\var{file}, \var{pathname}, \var{description})} where
-\var{file} is an open file object positioned at the beginning,
-\var{pathname} is the pathname of the
-file found, and \var{description} is a triple as contained in the list
-returned by \function{get_suffixes()} describing the kind of module found.
-If the module does not live in a file, the returned \var{file} is
-\code{None}, \var{filename} is the empty string, and the
-\var{description} tuple contains empty strings for its suffix and
-mode; the module type is as indicate in parentheses dabove. If the
-search is unsuccessful, \exception{ImportError} is raised. Other
-exceptions indicate problems with the arguments or environment.
-
-This function does not handle hierarchical module names (names
-containing dots). In order to find \var{P}.\var{M}, i.e., submodule
-\var{M} of package \var{P}, use \function{find_module()} and
-\function{load_module()} to find and load package \var{P}, and then use
-\function{find_module()} with the \var{path} argument set to
-\code{\var{P}.__path__}. When \var{P} itself has a dotted name, apply
-this recipe recursively.
-\end{funcdesc}
-
-\begin{funcdesc}{load_module}{name, file, filename, description}
-Load a module that was previously found by \function{find_module()} (or by
-an otherwise conducted search yielding compatible results). This
-function does more than importing the module: if the module was
-already imported, it is equivalent to a
-\function{reload()}\bifuncindex{reload}! The
-\var{name} argument indicates the full module name (including the
-package name, if this is a submodule of a package). The \var{file}
-argument is an open file, and \var{filename} is the corresponding
-file name; these can be \code{None} and \code{''}, respectively, when
-the module is not being loaded from a file. The \var{description}
-argument is a tuple as returned by \function{find_module()} describing
-what kind of module must be loaded.
-
-If the load is successful, the return value is the module object;
-otherwise, an exception (usually \exception{ImportError}) is raised.
-
-\strong{Important:} the caller is responsible for closing the
-\var{file} argument, if it was not \code{None}, even when an exception
-is raised. This is best done using a \keyword{try}
-... \keyword{finally} statement.
-\end{funcdesc}
-
-\begin{funcdesc}{new_module}{name}
-Return a new empty module object called \var{name}. This object is
-\emph{not} inserted in \code{sys.modules}.
-\end{funcdesc}
-
-The following constants with integer values, defined in this module,
-are used to indicate the search result of \function{find_module()}.
-
-\begin{datadesc}{PY_SOURCE}
-The module was found as a source file.
-\end{datadesc}
-
-\begin{datadesc}{PY_COMPILED}
-The module was found as a compiled code object file.
-\end{datadesc}
-
-\begin{datadesc}{C_EXTENSION}
-The module was found as dynamically loadable shared library.
-\end{datadesc}
-
-\begin{datadesc}{PY_RESOURCE}
-The module was found as a Macintosh resource. This value can only be
-returned on a Macintosh.
-\end{datadesc}
-
-\begin{datadesc}{PKG_DIRECTORY}
-The module was found as a package directory.
-\end{datadesc}
-
-\begin{datadesc}{C_BUILTIN}
-The module was found as a built-in module.
-\end{datadesc}
-
-\begin{datadesc}{PY_FROZEN}
-The module was found as a frozen module (see \function{init_frozen()}).
-\end{datadesc}
-
-The following constant and functions are obsolete; their functionality
-is available through \function{find_module()} or \function{load_module()}.
-They are kept around for backward compatibility:
-
-\begin{datadesc}{SEARCH_ERROR}
-Unused.
-\end{datadesc}
-
-\begin{funcdesc}{init_builtin}{name}
-Initialize the built-in module called \var{name} and return its module
-object. If the module was already initialized, it will be initialized
-\emph{again}. A few modules cannot be initialized twice --- attempting
-to initialize these again will raise an \exception{ImportError}
-exception. If there is no
-built-in module called \var{name}, \code{None} is returned.
-\end{funcdesc}
-
-\begin{funcdesc}{init_frozen}{name}
-Initialize the frozen module called \var{name} and return its module
-object. If the module was already initialized, it will be initialized
-\emph{again}. If there is no frozen module called \var{name},
-\code{None} is returned. (Frozen modules are modules written in
-Python whose compiled byte-code object is incorporated into a
-custom-built Python interpreter by Python's \program{freeze} utility.
-See \file{Tools/freeze/} for now.)
-\end{funcdesc}
-
-\begin{funcdesc}{is_builtin}{name}
-Return \code{1} if there is a built-in module called \var{name} which
-can be initialized again. Return \code{-1} if there is a built-in
-module called \var{name} which cannot be initialized again (see
-\function{init_builtin()}). Return \code{0} if there is no built-in
-module called \var{name}.
-\end{funcdesc}
-
-\begin{funcdesc}{is_frozen}{name}
-Return \code{1} if there is a frozen module (see
-\function{init_frozen()}) called \var{name}, or \code{0} if there is
-no such module.
-\end{funcdesc}
-
-\begin{funcdesc}{load_compiled}{name, pathname, file}
-Load and initialize a module implemented as a byte-compiled code file
-and return its module object. If the module was already initialized,
-it will be initialized \emph{again}. The \var{name} argument is used
-to create or access a module object. The \var{pathname} argument
-points to the byte-compiled code file. The \var{file}
-argument is the byte-compiled code file, open for reading in binary
-mode, from the beginning.
-It must currently be a real file object, not a
-user-defined class emulating a file.
-\end{funcdesc}
-
-\begin{funcdesc}{load_dynamic}{name, pathname\optional{, file}}
-Load and initialize a module implemented as a dynamically loadable
-shared library and return its module object. If the module was
-already initialized, it will be initialized \emph{again}. Some modules
-don't like that and may raise an exception. The \var{pathname}
-argument must point to the shared library. The \var{name} argument is
-used to construct the name of the initialization function: an external
-C function called \samp{init\var{name}()} in the shared library is
-called. The optional \var{file} argment is ignored. (Note: using
-shared libraries is highly system dependent, and not all systems
-support it.)
-\end{funcdesc}
-
-\begin{funcdesc}{load_source}{name, pathname, file}
-Load and initialize a module implemented as a Python source file and
-return its module object. If the module was already initialized, it
-will be initialized \emph{again}. The \var{name} argument is used to
-create or access a module object. The \var{pathname} argument points
-to the source file. The \var{file} argument is the source
-file, open for reading as text, from the beginning.
-It must currently be a real file
-object, not a user-defined class emulating a file. Note that if a
-properly matching byte-compiled file (with suffix \file{.pyc}) exists,
-it will be used instead of parsing the given source file.
-\end{funcdesc}
-
-
-\subsection{Examples}
-\label{examples-imp}
-
-The following function emulates what was the standard import statement
-up to Python 1.4 (i.e., no hierarchical module names). (This
-\emph{implementation} wouldn't work in that version, since
-\function{find_module()} has been extended and
-\function{load_module()} has been added in 1.4.)
-
-\begin{verbatim}
-import imp import sys
-
-def __import__(name, globals=None, locals=None, fromlist=None):
- # Fast path: see if the module has already been imported.
- try:
- return sys.modules[name]
- except KeyError:
- pass
-
- # If any of the following calls raises an exception,
- # there's a problem we can't handle -- let the caller handle it.
-
- fp, pathname, description = imp.find_module(name)
-
- try:
- return imp.load_module(name, fp, pathname, description)
- finally:
- # Since we may exit via an exception, close fp explicitly.
- if fp:
- fp.close()
-\end{verbatim}
-
-A more complete example that implements hierarchical module names and
-includes a \function{reload()}\bifuncindex{reload} function can be
-found in the standard module \module{knee}\refstmodindex{knee} (which
-is intended as an example only --- don't rely on any part of it being
-a standard interface).
diff --git a/Doc/libintro.tex b/Doc/libintro.tex
deleted file mode 100644
index cc0fd86..0000000
--- a/Doc/libintro.tex
+++ /dev/null
@@ -1,48 +0,0 @@
-\chapter{Introduction}
-\label{intro}
-
-The ``Python library'' contains several different kinds of components.
-
-It contains data types that would normally be considered part of the
-``core'' of a language, such as numbers and lists. For these types,
-the Python language core defines the form of literals and places some
-constraints on their semantics, but does not fully define the
-semantics. (On the other hand, the language core does define
-syntactic properties like the spelling and priorities of operators.)
-
-The library also contains built-in functions and exceptions ---
-objects that can be used by all Python code without the need of an
-\keyword{import} statement. Some of these are defined by the core
-language, but many are not essential for the core semantics and are
-only described here.
-
-The bulk of the library, however, consists of a collection of modules.
-There are many ways to dissect this collection. Some modules are
-written in C and built in to the Python interpreter; others are
-written in Python and imported in source form. Some modules provide
-interfaces that are highly specific to Python, like printing a stack
-trace; some provide interfaces that are specific to particular
-operating systems, like socket I/O; others provide interfaces that are
-specific to a particular application domain, like the World-Wide Web.
-Some modules are avaiable in all versions and ports of Python; others
-are only available when the underlying system supports or requires
-them; yet others are available only when a particular configuration
-option was chosen at the time when Python was compiled and installed.
-
-This manual is organized ``from the inside out'': it first describes
-the built-in data types, then the built-in functions and exceptions,
-and finally the modules, grouped in chapters of related modules. The
-ordering of the chapters as well as the ordering of the modules within
-each chapter is roughly from most relevant to least important.
-
-This means that if you start reading this manual from the start, and
-skip to the next chapter when you get bored, you will get a reasonable
-overview of the available modules and application areas that are
-supported by the Python library. Of course, you don't \emph{have} to
-read it like a novel --- you can also browse the table of contents (in
-front of the manual), or look for a specific function, module or term
-in the index (in the back). And finally, if you enjoy learning about
-random subjects, you choose a random page number (see module
-\module{rand}) and read a section or two.
-
-Let the show begin!
diff --git a/Doc/libjpeg.tex b/Doc/libjpeg.tex
deleted file mode 100644
index 76e70af..0000000
--- a/Doc/libjpeg.tex
+++ /dev/null
@@ -1,57 +0,0 @@
-\section{Built-in Module \module{jpeg}}
-\label{module-jpeg}
-\bimodindex{jpeg}
-
-The module \module{jpeg} provides access to the jpeg compressor and
-decompressor written by the Independent JPEG Group%
-\index{Independent JPEG Group}%
-. JPEG is a (draft?)
-standard for compressing pictures. For details on JPEG or the
-Independent JPEG Group software refer to the JPEG standard or the
-documentation provided with the software.
-
-The \module{jpeg} module defines an exception and some functions.
-
-\begin{excdesc}{error}
-Exception raised by \function{compress()} and \function{decompress()}
-in case of errors.
-\end{excdesc}
-
-\begin{funcdesc}{compress}{data, w, h, b}
-Treat data as a pixmap of width \var{w} and height \var{h}, with
-\var{b} bytes per pixel. The data is in SGI GL order, so the first
-pixel is in the lower-left corner. This means that \function{gl.lrectread()}
-return data can immediately be passed to \function{compress()}.
-Currently only 1 byte and 4 byte pixels are allowed, the former being
-treated as greyscale and the latter as RGB color.
-\function{compress()} returns a string that contains the compressed
-picture, in JFIF\index{JFIF} format.
-\end{funcdesc}
-
-\begin{funcdesc}{decompress}{data}
-Data is a string containing a picture in JFIF\index{JFIF} format. It
-returns a tuple \code{(\var{data}, \var{width}, \var{height},
-\var{bytesperpixel})}. Again, the data is suitable to pass to
-\function{gl.lrectwrite()}.
-\end{funcdesc}
-
-\begin{funcdesc}{setoption}{name, value}
-Set various options. Subsequent \function{compress()} and
-\function{decompress()} calls will use these options. The following
-options are available:
-
-\begin{tableii}{l|p{3in}}{code}{Option}{Effect}
- \lineii{'forcegray'}{%
- Force output to be grayscale, even if input is RGB.}
- \lineii{'quality'}{%
- Set the quality of the compressed image to a value between
- \code{0} and \code{100} (default is \code{75}). This only affects
- compression.}
- \lineii{'optimize'}{%
- Perform Huffman table optimization. Takes longer, but results in
- smaller compressed image. This only affects compression.}
- \lineii{'smooth'}{%
- Perform inter-block smoothing on uncompressed image. Only useful
- for low-quality images. This only affects decompression.}
-\end{tableii}
-\end{funcdesc}
diff --git a/Doc/libkeyword.tex b/Doc/libkeyword.tex
deleted file mode 100644
index 7a263ef..0000000
--- a/Doc/libkeyword.tex
+++ /dev/null
@@ -1,10 +0,0 @@
-\section{Standard Module \module{keyword}}
-\label{module-keyword}
-\stmodindex{keyword}
-
-This module allows a Python program to determine if a string is a
-keyword. A single function is provided:
-
-\begin{funcdesc}{iskeyword}{s}
-Return true if \var{s} is a Python keyword.
-\end{funcdesc}
diff --git a/Doc/liblocale.tex b/Doc/liblocale.tex
deleted file mode 100644
index 07361b8..0000000
--- a/Doc/liblocale.tex
+++ /dev/null
@@ -1,274 +0,0 @@
-\section{Standard Module \module{locale}}
-\stmodindex{locale}
-
-\label{module-locale}
-
-The \code{locale} module opens access to the \POSIX{} locale database
-and functionality. The \POSIX{} locale mechanism allows applications
-to integrate certain cultural aspects into an applications, without
-requiring the programmer to know all the specifics of each country
-where the software is executed.
-
-The \module{locale} module is implemented on top of the
-\module{_locale}\refbimodindex{_locale} module, which in turn uses an
-ANSI \C{} locale implementation if available.
-
-The \module{locale} module defines the following exception and
-functions:
-
-
-\begin{funcdesc}{setlocale}{category\optional{, value}}
-If \var{value} is specified, modifies the locale setting for the
-\var{category}. The available categories are listed in the data
-description below. The value is the name of a locale. An empty string
-specifies the user's default settings. If the modification of the
-locale fails, the exception \exception{Error} is
-raised. If successful, the new locale setting is returned.
-
-If no \var{value} is specified, the current setting for the
-\var{category} is returned.
-
-\function{setlocale()} is not thread safe on most systems. Applications
-typically start with a call of
-\begin{verbatim}
-import locale
-locale.setlocale(locale.LC_ALL,"")
-\end{verbatim}
-This sets the locale for all categories to the user's default setting
-(typically specified in the \code{LANG} environment variable). If the
-locale is not changed thereafter, using multithreading should not
-cause problems.
-\end{funcdesc}
-
-\begin{excdesc}{Error}
-Exception raised when \function{setlocale()} fails.
-\end{excdesc}
-
-\begin{funcdesc}{localeconv}{}
-Returns the database of of the local conventions as a dictionary. This
-dictionary has the following strings as keys:
-\begin{itemize}
-\item \code{decimal_point} specifies the decimal point used in
-floating point number representations for the \code{LC_NUMERIC}
-category.
-\item \code{grouping} is a sequence of numbers specifying at which
-relative positions the \code{thousands_sep} is expected. If the
-sequence is terminated with \code{locale.CHAR_MAX}, no further
-grouping is performed. If the sequence terminates with a \code{0}, the last
-group size is repeatedly used.
-\item \code{thousands_sep} is the character used between groups.
-\item \code{int_curr_symbol} specifies the international currency
-symbol from the \code{LC_MONETARY} category.
-\item \code{currency_symbol} is the local currency symbol.
-\item \code{mon_decimal_point} is the decimal point used in monetary
-values.
-\item \code{mon_thousands_sep} is the separator for grouping of
-monetary values.
-\item \code{mon_grouping} has the same format as the \code{grouping}
-key; it is used for monetary values.
-\item \code{positive_sign} and \code{negative_sign} gives the sign
-used for positive and negative monetary quantities.
-\item \code{int_frac_digits} and \code{frac_digits} specify the number
-of fractional digits used in the international and local formatting
-of monetary values.
-\item \code{p_cs_precedes} and \code{n_cs_precedes} specifies whether
-the currency symbol precedes the value for positive or negative
-values.
-\item \code{p_sep_by_space} and \code{n_sep_by_space} specifies
-whether there is a space between the positive or negative value and
-the currency symbol.
-\item \code{p_sign_posn} and \code{n_sign_posn} indicate how the
-sign should be placed for positive and negative monetary values.
-\end{itemize}
-
-The possible values for \code{p_sign_posn} and \code{n_sign_posn}
-are given below.
-
-\begin{tableii}{c|l}{code}{Value}{Explanation}
-\lineii{0}{Currency and value are surrounded by parentheses.}
-\lineii{1}{The sign should precede the value and currency symbol.}
-\lineii{2}{The sign should follow the value and currency symbol.}
-\lineii{3}{The sign should immediately precede the value.}
-\lineii{4}{The sign should immediately follow the value.}
-\lineii{LC_MAX}{Nothing is specified in this locale.}
-\end{tableii}
-\end{funcdesc}
-
-\begin{funcdesc}{strcoll}{string1,string2}
-Compares two strings according to the current \constant{LC_COLLATE}
-setting. As any other compare function, returns a negative, or a
-positive value, or \code{0}, depending on whether \var{string1}
-collates before or after \var{string2} or is equal to it.
-\end{funcdesc}
-
-\begin{funcdesc}{strxfrm}{string}
-Transforms a string to one that can be used for the built-in function
-\function{cmp()}\bifuncindex{cmp}, and still returns locale-aware
-results. This function can be used when the same string is compared
-repeatedly, e.g. when collating a sequence of strings.
-\end{funcdesc}
-
-\begin{funcdesc}{format}{format, val, \optional{grouping\code{ = 0}}}
-Formats a number \var{val} according to the current
-\constant{LC_NUMERIC} setting. The format follows the conventions of
-the \code{\%} operator. For floating point values, the decimal point
-is modified if appropriate. If \var{grouping} is true, also takes the
-grouping into account.
-\end{funcdesc}
-
-\begin{funcdesc}{str}{float}
-Formats a floating point number using the same format as the built-in
-function \code{str(\var{float})}, but takes the decimal point into
-account.
-\end{funcdesc}
-
-\begin{funcdesc}{atof}{string}
-Converts a string to a floating point number, following the
-\constant{LC_NUMERIC} settings.
-\end{funcdesc}
-
-\begin{funcdesc}{atoi}{string}
-Converts a string to an integer, following the \constant{LC_NUMERIC}
-conventions.
-\end{funcdesc}
-
-\begin{datadesc}{LC_CTYPE}
-\refstmodindex{string}
-Locale category for the character type functions. Depending on the
-settings of this category, the functions of module \module{string}
-dealing with case change their behaviour.
-\end{datadesc}
-
-\begin{datadesc}{LC_COLLATE}
-Locale category for sorting strings. The functions
-\function{strcoll()} and \function{strxfrm()} of the \module{locale}
-module are affected.
-\end{datadesc}
-
-\begin{datadesc}{LC_TIME}
-Locale category for the formatting of time. The function
-\function{time.strftime()} follows these conventions.
-\end{datadesc}
-
-\begin{datadesc}{LC_MONETARY}
-Locale category for formatting of monetary values. The available
-options are available from the \function{localeconv()} function.
-\end{datadesc}
-
-\begin{datadesc}{LC_MESSAGES}
-Locale category for message display. Python currently does not support
-application specific locale-aware messages. Messages displayed by the
-operating system, like those returned by \function{os.strerror()}
-might be affected by this category.
-\end{datadesc}
-
-\begin{datadesc}{LC_NUMERIC}
-Locale category for formatting numbers. The functions
-\function{format()}, \function{atoi()}, \function{atof()} and
-\function{str()} of the \module{locale} module are affected by that
-category. All other numeric formatting operations are not affected.
-\end{datadesc}
-
-\begin{datadesc}{LC_ALL}
-Combination of all locale settings. If this flag is used when the
-locale is changed, setting the locale for all categories is
-attempted. If that fails for any category, no category is changed at
-all. When the locale is retrieved using this flag, a string indicating
-the setting for all categories is returned. This string can be later
-used to restore the settings.
-\end{datadesc}
-
-\begin{datadesc}{CHAR_MAX}
-This is a symbolic constant used for different values returned by
-\function{localeconv()}.
-\end{datadesc}
-
-Example:
-
-\begin{verbatim}
->>> import locale
->>> loc = locale.setlocale(locale.LC_ALL) # get current locale
->>> locale.setlocale(locale.LC_ALL, "de") # use German locale
->>> locale.strcoll("f\344n", "foo") # compare a string containing an umlaut
->>> locale.setlocale(locale.LC_ALL, "") # use user's preferred locale
->>> locale.setlocale(locale.LC_ALL, "C") # use default (C) locale
->>> locale.setlocale(locale.LC_ALL, loc) # restore saved locale
-\end{verbatim}
-
-\subsection{Background, details, hints, tips and caveats}
-
-The C standard defines the locale as a program-wide property that may
-be relatively expensive to change. On top of that, some
-implementation are broken in such a way that frequent locale changes
-may cause core dumps. This makes the locale somewhat painful to use
-correctly.
-
-Initially, when a program is started, the locale is the \samp{C} locale, no
-matter what the user's preferred locale is. The program must
-explicitly say that it wants the user's preferred locale settings by
-calling \code{setlocale(LC_ALL, "")}.
-
-It is generally a bad idea to call \function{setlocale()} in some library
-routine, since as a side effect it affects the entire program. Saving
-and restoring it is almost as bad: it is expensive and affects other
-threads that happen to run before the settings have been restored.
-
-If, when coding a module for general use, you need a locale
-independent version of an operation that is affected by the locale
-(e.g. \function{string.lower()}, or certain formats used with
-\function{time.strftime()})), you will have to find a way to do it
-without using the standard library routine. Even better is convincing
-yourself that using locale settings is okay. Only as a last resort
-should you document that your module is not compatible with
-non-\samp{C} locale settings.
-
-The case conversion functions in the
-\module{string}\refstmodindex{string} and
-\module{strop}\refbimodindex{strop} modules are affected by the locale
-settings. When a call to the \function{setlocale()} function changes
-the \constant{LC_CTYPE} settings, the variables
-\code{string.lowercase}, \code{string.uppercase} and
-\code{string.letters} (and their counterparts in \module{strop}) are
-recalculated. Note that this code that uses these variable through
-`\keyword{from} ... \keyword{import} ...', e.g. \code{from string
-import letters}, is not affected by subsequent \function{setlocale()}
-calls.
-
-The only way to perform numeric operations according to the locale
-is to use the special functions defined by this module:
-\function{atof()}, \function{atoi()}, \function{format()},
-\function{str()}.
-
-\subsection{For extension writers and programs that embed Python}
-\label{embedding-locale}
-
-Extension modules should never call \function{setlocale()}, except to
-find out what the current locale is. But since the return value can
-only be used portably to restore it, that is not very useful (except
-perhaps to find out whether or not the locale is \samp{C}).
-
-When Python is embedded in an application, if the application sets the
-locale to something specific before initializing Python, that is
-generally okay, and Python will use whatever locale is set,
-\emph{except} that the \constant{LC_NUMERIC} locale should always be
-\samp{C}.
-
-The \function{setlocale()} function in the \module{locale} module contains
-gives the Python progammer the impression that you can manipulate the
-\constant{LC_NUMERIC} locale setting, but this not the case at the \C{}
-level: \C{} code will always find that the \constant{LC_NUMERIC} locale
-setting is \samp{C}. This is because too much would break when the
-decimal point character is set to something else than a period
-(e.g. the Python parser would break). Caveat: threads that run
-without holding Python's global interpreter lock may occasionally find
-that the numeric locale setting differs; this is because the only
-portable way to implement this feature is to set the numeric locale
-settings to what the user requests, extract the relevant
-characteristics, and then restore the \samp{C} numeric locale.
-
-When Python code uses the \module{locale} module to change the locale,
-this also affect the embedding application. If the embedding
-application doesn't want this to happen, it should remove the
-\module{_locale} extension module (which does all the work) from the
-table of built-in modules in the \file{config.c} file, and make sure
-that the \module{_locale} module is not accessible as a shared library.
diff --git a/Doc/libmailbox.tex b/Doc/libmailbox.tex
deleted file mode 100644
index 4ff2dedb..0000000
--- a/Doc/libmailbox.tex
+++ /dev/null
@@ -1,39 +0,0 @@
-\section{Standard Module \module{mailbox}}
-\label{module-mailbox}
-\stmodindex{mailbox}
-
-
-This module defines a number of classes that allow easy and uniform
-access to mail messages in a (\UNIX{}) mailbox.
-
-\begin{classdesc}{UnixMailbox}{fp}
-Access a classic \UNIX{}-style mailbox, where all messages are contained
-in a single file and separated by ``From name time'' lines.
-The file object \var{fp} points to the mailbox file.
-\end{classdesc}
-
-\begin{classdesc}{MmdfMailbox}{fp}
-Access an MMDF-style mailbox, where all messages are contained
-in a single file and separated by lines consisting of 4 control-A
-characters. The file object \var{fp} points to the mailbox file.
-\end{classdesc}
-
-\begin{classdesc}{MHMailbox}{dirname}
-Access an MH mailbox, a directory with each message in a separate
-file with a numeric name.
-The name of the mailbox directory is passed in \var{dirname}.
-\end{classdesc}
-
-\subsection{Mailbox Objects}
-\label{mailbox-objects}
-
-All implementations of Mailbox objects have one externally visible
-method:
-
-\begin{methoddesc}[mailbox]{next}{}
-Return the next message in the mailbox, as a \class{rfc822.Message} object.
-Depending on the mailbox implementation the \var{fp} attribute of this
-object may be a true file object or a class instance simulating a file object,
-taking care of things like message boundaries if multiple mail messages are
-contained in a single file, etc.
-\end{methoddesc}
diff --git a/Doc/libmailcap.tex b/Doc/libmailcap.tex
deleted file mode 100644
index 0ea762a..0000000
--- a/Doc/libmailcap.tex
+++ /dev/null
@@ -1,79 +0,0 @@
-\section{Standard Module \module{mailcap}}
-\label{module-mailcap}
-\stmodindex{mailcap}
-
-Mailcap files are used to configure how MIME-aware applications such
-as mail readers and Web browsers react to files with different MIME
-types. (The name ``mailcap'' is derived from the phrase ``mail
-capability''.) For example, a mailcap file might contain a line like
-\samp{video/mpeg; xmpeg \%s}. Then, if the user encounters an email
-message or Web document with the MIME type \mimetype{video/mpeg},
-\samp{\%s} will be replaced by a filename (usually one belonging to a
-temporary file) and the \program{xmpeg} program can be automatically
-started to view the file.
-
-The mailcap format is documented in \rfc{1524}, ``A User Agent
-Configuration Mechanism For Multimedia Mail Format Information,'' but
-is not an Internet standard. However, mailcap files are supported on
-most \UNIX{} systems.
-
-\begin{funcdesc}{findmatch}{caps, MIMEtype%
- \optional{, key\optional{,
- filename\optional{, plist}}}}
-Return a 2-tuple; the first element is a string containing the command
-line to be executed
-(which can be passed to \code{os.system()}), and the second element is
-the mailcap entry for a given MIME type. If no matching MIME
-type can be found, \code{(None, None)} is returned.
-
-\var{key} is the name of the field desired, which represents the type
-of activity to be performed; the default value is 'view', since in the
-most common case you simply want to view the body of the MIME-typed
-data. Other possible values might be 'compose' and 'edit', if you
-wanted to create a new body of the given MIME type or alter the
-existing body data. See \rfc{1524} for a complete list of these
-fields.
-
-\var{filename} is the filename to be substituted for \samp{\%s} in the
-command line; the default value is
-\code{'/dev/null'} which is almost certainly not what you want, so
-usually you'll override it by specifying a filename.
-
-\var{plist} can be a list containing named parameters; the default
-value is simply an empty list. Each entry in the list must be a
-string containing the parameter name, an equals sign (\code{=}), and the
-parameter's value. Mailcap entries can contain
-named parameters like \code{\%\{foo\}}, which will be replaced by the
-value of the parameter named 'foo'. For example, if the command line
-\samp{showpartial \%\{id\}\ \%\{number\}\ \%\{total\}}
-was in a mailcap file, and \var{plist} was set to \code{['id=1',
-'number=2', 'total=3']}, the resulting command line would be
-\code{"showpartial 1 2 3"}.
-
-In a mailcap file, the "test" field can optionally be specified to
-test some external condition (e.g., the machine architecture, or the
-window system in use) to determine whether or not the mailcap line
-applies. \code{findmatch()} will automatically check such conditions
-and skip the entry if the check fails.
-\end{funcdesc}
-
-\begin{funcdesc}{getcaps}{}
-Returns a dictionary mapping MIME types to a list of mailcap file
-entries. This dictionary must be passed to the \code{findmatch()}
-function. An entry is stored as a list of dictionaries, but it
-shouldn't be necessary to know the details of this representation.
-
-The information is derived from all of the mailcap files found on the
-system. Settings in the user's mailcap file \file{\$HOME/.mailcap}
-will override settings in the system mailcap files
-\file{/etc/mailcap}, \file{/usr/etc/mailcap}, and
-\file{/usr/local/etc/mailcap}.
-\end{funcdesc}
-
-An example usage:
-\begin{verbatim}
->>> import mailcap
->>> d=mailcap.getcaps()
->>> mailcap.findmatch(d, 'video/mpeg', filename='/tmp/tmp1223')
-('xmpeg /tmp/tmp1223', {'view': 'xmpeg %s'})
-\end{verbatim}
diff --git a/Doc/libmain.tex b/Doc/libmain.tex
deleted file mode 100644
index df1fbfb..0000000
--- a/Doc/libmain.tex
+++ /dev/null
@@ -1,6 +0,0 @@
-\section{Built-in Module \module{__main__}}
-\label{module-main}
-\bimodindex{__main__}
-This module represents the (otherwise anonymous) scope in which the
-interpreter's main program executes --- commands read either from
-standard input or from a script file.
diff --git a/Doc/libmarshal.tex b/Doc/libmarshal.tex
deleted file mode 100644
index 5878cfa..0000000
--- a/Doc/libmarshal.tex
+++ /dev/null
@@ -1,90 +0,0 @@
-\section{Built-in Module \module{marshal}}
-\label{module-marshal}
-\bimodindex{marshal}
-
-This module contains functions that can read and write Python
-values in a binary format. The format is specific to Python, but
-independent of machine architecture issues (e.g., you can write a
-Python value to a file on a PC, transport the file to a Sun, and read
-it back there). Details of the format are undocumented on purpose;
-it may change between Python versions (although it rarely does).%
-\footnote{The name of this module stems from a bit of terminology used
-by the designers of Modula-3 (amongst others), who use the term
-``marshalling'' for shipping of data around in a self-contained form.
-Strictly speaking, ``to marshal'' means to convert some data from
-internal to external form (in an RPC buffer for instance) and
-``unmarshalling'' for the reverse process.}
-
-This is not a general ``persistency'' module. For general persistency
-and transfer of Python objects through RPC calls, see the modules
-\module{pickle} and \module{shelve}. The \module{marshal} module exists
-mainly to support reading and writing the ``pseudo-compiled'' code for
-Python modules of \file{.pyc} files.
-\refstmodindex{pickle}
-\refstmodindex{shelve}
-\obindex{code}
-
-Not all Python object types are supported; in general, only objects
-whose value is independent from a particular invocation of Python can
-be written and read by this module. The following types are supported:
-\code{None}, integers, long integers, floating point numbers,
-strings, tuples, lists, dictionaries, and code objects, where it
-should be understood that tuples, lists and dictionaries are only
-supported as long as the values contained therein are themselves
-supported; and recursive lists and dictionaries should not be written
-(they will cause infinite loops).
-
-\strong{Caveat:} On machines where C's \code{long int} type has more than
-32 bits (such as the DEC Alpha), it
-is possible to create plain Python integers that are longer than 32
-bits. Since the current \module{marshal} module uses 32 bits to
-transfer plain Python integers, such values are silently truncated.
-This particularly affects the use of very long integer literals in
-Python modules --- these will be accepted by the parser on such
-machines, but will be silently be truncated when the module is read
-from the \file{.pyc} instead.%
-\footnote{A solution would be to refuse such literals in the parser,
-since they are inherently non-portable. Another solution would be to
-let the \module{marshal} module raise an exception when an integer
-value would be truncated. At least one of these solutions will be
-implemented in a future version.}
-
-There are functions that read/write files as well as functions
-operating on strings.
-
-The module defines these functions:
-
-\begin{funcdesc}{dump}{value, file}
- Write the value on the open file. The value must be a supported
- type. The file must be an open file object such as
- \code{sys.stdout} or returned by \function{open()} or
- \function{posix.popen()}.
-
- If the value has (or contains an object that has) an unsupported type,
- a \exception{ValueError} exception is raised --- but garbage data
- will also be written to the file. The object will not be properly
- read back by \function{load()}.
-\end{funcdesc}
-
-\begin{funcdesc}{load}{file}
- Read one value from the open file and return it. If no valid value
- is read, raise \exception{EOFError}, \exception{ValueError} or
- \exception{TypeError}. The file must be an open file object.
-
- \strong{Warning:} If an object containing an unsupported type was
- marshalled with \function{dump()}, \function{load()} will substitute
- \code{None} for the unmarshallable type.
-\end{funcdesc}
-
-\begin{funcdesc}{dumps}{value}
- Return the string that would be written to a file by
- \code{dump(\var{value}, \var{file})}. The value must be a supported
- type. Raise a \exception{ValueError} exception if value has (or
- contains an object that has) an unsupported type.
-\end{funcdesc}
-
-\begin{funcdesc}{loads}{string}
- Convert the string to a value. If no valid value is found, raise
- \exception{EOFError}, \exception{ValueError} or
- \exception{TypeError}. Extra characters in the string are ignored.
-\end{funcdesc}
diff --git a/Doc/libmath.tex b/Doc/libmath.tex
deleted file mode 100644
index 1cc6b20..0000000
--- a/Doc/libmath.tex
+++ /dev/null
@@ -1,122 +0,0 @@
-\section{Built-in Module \module{math}}
-\label{module-math}
-
-\bimodindex{math}
-This module is always available.
-It provides access to the mathematical functions defined by the \C{}
-standard.
-They are:
-
-\begin{funcdesc}{acos}{x}
-Return the arc cosine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{asin}{x}
-Return the arc sine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{atan}{x}
-Return the arc tangent of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{atan2}{x, y}
-Return \code{atan(\var{x} / \var{y})}.
-\end{funcdesc}
-
-\begin{funcdesc}{ceil}{x}
-Return the ceiling of \var{x} as a real.
-\end{funcdesc}
-
-\begin{funcdesc}{cos}{x}
-Return the cosine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{cosh}{x}
-Return the hyperbolic cosine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{exp}{x}
-Return \code{e**\var{x}}.
-\end{funcdesc}
-
-\begin{funcdesc}{fabs}{x}
-Return the absolute value of the real \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{floor}{x}
-Return the floor of \var{x} as a real.
-\end{funcdesc}
-
-\begin{funcdesc}{fmod}{x, y}
-Return \code{\var{x} \%\ \var{y}}.
-\end{funcdesc}
-
-\begin{funcdesc}{frexp}{x}
-Return the matissa and exponent for \var{x}. The mantissa is
-positive.
-\end{funcdesc}
-
-\begin{funcdesc}{hypot}{x, y}
-Return the Euclidean distance, \code{sqrt(\var{x}*\var{x} + \var{y}*\var{y})}.
-\end{funcdesc}
-
-\begin{funcdesc}{ldexp}{x, i}
-Return \code{\var{x} * (2**\var{i})}.
-\end{funcdesc}
-
-\begin{funcdesc}{log}{x}
-Return the natural logarithm of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{log10}{x}
-Return the base-10 logarithm of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{modf}{x}
-Return the fractional and integer parts of \var{x}. Both results
-carry the sign of \var{x}. The integer part is returned as a real.
-\end{funcdesc}
-
-\begin{funcdesc}{pow}{x, y}
-Return \code{\var{x}**\var{y}}.
-\end{funcdesc}
-
-\begin{funcdesc}{sin}{x}
-Return the sine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{sinh}{x}
-Return the hyperbolic sine of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{sqrt}{x}
-Return the square root of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{tan}{x}
-Return the tangent of \var{x}.
-\end{funcdesc}
-
-\begin{funcdesc}{tanh}{x}
-Return the hyperbolic tangent of \var{x}.
-\end{funcdesc}
-
-Note that \function{frexp()} and \function{modf()} have a different
-call/return pattern than their \C{} equivalents: they take a single
-argument and return a pair of values, rather than returning their
-second return value through an `output parameter' (there is no such
-thing in Python).
-
-The module also defines two mathematical constants:
-
-\begin{datadesc}{pi}
-The mathematical constant \emph{pi}.
-\end{datadesc}
-
-\begin{datadesc}{e}
-The mathematical constant \emph{e}.
-\end{datadesc}
-
-\begin{seealso}
- \seemodule{cmath}{Complex number versions of many of these functions.}
-\end{seealso}
diff --git a/Doc/libmd5.tex b/Doc/libmd5.tex
deleted file mode 100644
index d1e7367..0000000
--- a/Doc/libmd5.tex
+++ /dev/null
@@ -1,64 +0,0 @@
-\section{Built-in Module \module{md5}}
-\label{module-md5}
-\bimodindex{md5}
-
-This module implements the interface to RSA's MD5 message digest
-\index{message digest, MD5}
-algorithm (see also Internet \rfc{1321}). Its use is quite
-straightforward:\ use the \function{new()} to create an md5 object.
-You can now feed this object with arbitrary strings using the
-\method{update()} method, and at any point you can ask it for the
-\dfn{digest} (a strong kind of 128-bit checksum,
-a.k.a. ``fingerprint'') of the contatenation of the strings fed to it
-so far using the \method{digest()} method.
-\index{checksum!MD5}
-
-For example, to obtain the digest of the string \code{'Nobody inspects
-the spammish repetition'}:
-
-\begin{verbatim}
->>> import md5
->>> m = md5.new()
->>> m.update("Nobody inspects")
->>> m.update(" the spammish repetition")
->>> m.digest()
-'\273d\234\203\335\036\245\311\331\336\311\241\215\360\377\351'
-\end{verbatim}
-
-More condensed:
-
-\begin{verbatim}
->>> md5.new("Nobody inspects the spammish repetition").digest()
-'\273d\234\203\335\036\245\311\331\336\311\241\215\360\377\351'
-\end{verbatim}
-
-\begin{funcdesc}{new}{\optional{arg}}
-Return a new md5 object. If \var{arg} is present, the method call
-\code{update(\var{arg})} is made.
-\end{funcdesc}
-
-\begin{funcdesc}{md5}{\optional{arg}}
-For backward compatibility reasons, this is an alternative name for the
-\function{new()} function.
-\end{funcdesc}
-
-An md5 object has the following methods:
-
-\begin{methoddesc}[md5]{update}{arg}
-Update the md5 object with the string \var{arg}. Repeated calls are
-equivalent to a single call with the concatenation of all the
-arguments, i.e.\ \code{m.update(a); m.update(b)} is equivalent to
-\code{m.update(a+b)}.
-\end{methoddesc}
-
-\begin{methoddesc}[md5]{digest}{}
-Return the digest of the strings passed to the \method{update()}
-method so far. This is an 16-byte string which may contain
-non-\ASCII{} characters, including null bytes.
-\end{methoddesc}
-
-\begin{methoddesc}[md5]{copy}{}
-Return a copy (``clone'') of the md5 object. This can be used to
-efficiently compute the digests of strings that share a common initial
-substring.
-\end{methoddesc}
diff --git a/Doc/libmimetools.tex b/Doc/libmimetools.tex
deleted file mode 100644
index 54d1fe0..0000000
--- a/Doc/libmimetools.tex
+++ /dev/null
@@ -1,95 +0,0 @@
-\section{Standard Module \module{mimetools}}
-\label{module-mimetools}
-\stmodindex{mimetools}
-
-
-This module defines a subclass of the \class{rfc822.Message} class and
-a number of utility functions that are useful for the manipulation for
-MIME multipart or encoded message.
-
-It defines the following items:
-
-\begin{classdesc}{Message}{fp\optional{, seekable}}
-Return a new instance of the \class{Message} class. This is a
-subclass of the \class{rfc822.Message} class, with some additional
-methods (see below). The \var{seekable} argument has the same meaning
-as for \class{rfc822.Message}.
-\end{classdesc}
-
-\begin{funcdesc}{choose_boundary}{}
-Return a unique string that has a high likelihood of being usable as a
-part boundary. The string has the form
-\code{'\var{hostipaddr}.\var{uid}.\var{pid}.\var{timestamp}.\var{random}'}.
-\end{funcdesc}
-
-\begin{funcdesc}{decode}{input, output, encoding}
-Read data encoded using the allowed MIME \var{encoding} from open file
-object \var{input} and write the decoded data to open file object
-\var{output}. Valid values for \var{encoding} include
-\code{'base64'}, \code{'quoted-printable'} and \code{'uuencode'}.
-\end{funcdesc}
-
-\begin{funcdesc}{encode}{input, output, encoding}
-Read data from open file object \var{input} and write it encoded using
-the allowed MIME \var{encoding} to open file object \var{output}.
-Valid values for \var{encoding} are the same as for \method{decode()}.
-\end{funcdesc}
-
-\begin{funcdesc}{copyliteral}{input, output}
-Read lines until \EOF{} from open file \var{input} and write them to
-open file \var{output}.
-\end{funcdesc}
-
-\begin{funcdesc}{copybinary}{input, output}
-Read blocks until \EOF{} from open file \var{input} and write them to
-open file \var{output}. The block size is currently fixed at 8192.
-\end{funcdesc}
-
-
-\subsection{Additional Methods of Message objects}
-\nodename{mimetools.Message Methods}
-
-The \class{Message} class defines the following methods in
-addition to the \class{rfc822.Message} methods:
-
-\begin{methoddesc}{getplist}{}
-Return the parameter list of the \code{content-type} header. This is
-a list if strings. For parameters of the form
-\samp{\var{key}=\var{value}}, \var{key} is converted to lower case but
-\var{value} is not. For example, if the message contains the header
-\samp{Content-type: text/html; spam=1; Spam=2; Spam} then
-\method{getplist()} will return the Python list \code{['spam=1',
-'spam=2', 'Spam']}.
-\end{methoddesc}
-
-\begin{methoddesc}{getparam}{name}
-Return the \var{value} of the first parameter (as returned by
-\method{getplist()} of the form \samp{\var{name}=\var{value}} for the
-given \var{name}. If \var{value} is surrounded by quotes of the form
-`\code{<}...\code{>}' or `\code{"}...\code{"}', these are removed.
-\end{methoddesc}
-
-\begin{methoddesc}{getencoding}{}
-Return the encoding specified in the \code{content-transfer-encoding}
-message header. If no such header exists, return \code{'7bit'}. The
-encoding is converted to lower case.
-\end{methoddesc}
-
-\begin{methoddesc}{gettype}{}
-Return the message type (of the form \samp{\var{type}/\var{subtype}})
-as specified in the \code{content-type} header. If no such header
-exists, return \code{'text/plain'}. The type is converted to lower
-case.
-\end{methoddesc}
-
-\begin{methoddesc}{getmaintype}{}
-Return the main type as specified in the \code{content-type} header.
-If no such header exists, return \code{'text'}. The main type is
-converted to lower case.
-\end{methoddesc}
-
-\begin{methoddesc}{getsubtype}{}
-Return the subtype as specified in the \code{content-type} header. If
-no such header exists, return \code{'plain'}. The subtype is
-converted to lower case.
-\end{methoddesc}
diff --git a/Doc/libmimify.tex b/Doc/libmimify.tex
deleted file mode 100644
index 366e940..0000000
--- a/Doc/libmimify.tex
+++ /dev/null
@@ -1,83 +0,0 @@
-\section{Standard Module \module{mimify}}
-\label{module-mimify}
-\stmodindex{mimify}
-
-The mimify module defines two functions to convert mail messages to
-and from MIME format. The mail message can be either a simple message
-or a so-called multipart message. Each part is treated separately.
-Mimifying (a part of) a message entails encoding the message as
-quoted-printable if it contains any characters that cannot be
-represented using 7-bit ASCII. Unmimifying (a part of) a message
-entails undoing the quoted-printable encoding. Mimify and unmimify
-are especially useful when a message has to be edited before being
-sent. Typical use would be:
-
-\begin{verbatim}
-unmimify message
-edit message
-mimify message
-send message
-\end{verbatim}
-
-The modules defines the following user-callable functions and
-user-settable variables:
-
-\begin{funcdesc}{mimify}{infile, outfile}
-Copy the message in \var{infile} to \var{outfile}, converting parts to
-quoted-printable and adding MIME mail headers when necessary.
-\var{infile} and \var{outfile} can be file objects (actually, any
-object that has a \code{readline} method (for \var{infile}) or a
-\code{write} method (for \var{outfile})) or strings naming the files.
-If \var{infile} and \var{outfile} are both strings, they may have the
-same value.
-\end{funcdesc}
-
-\begin{funcdesc}{unmimify}{infile, outfile, decode_base64 = 0}
-Copy the message in \var{infile} to \var{outfile}, decoding all
-quoted-printable parts. \var{infile} and \var{outfile} can be file
-objects (actually, any object that has a \code{readline} method (for
-\var{infile}) or a \code{write} method (for \var{outfile})) or strings
-naming the files. If \var{infile} and \var{outfile} are both strings,
-they may have the same value.
-If the \var{decode_base64} argument is provided and tests true, any
-parts that are coded in the base64 encoding are decoded as well.
-\end{funcdesc}
-
-\begin{funcdesc}{mime_decode_header}{line}
-Return a decoded version of the encoded header line in \var{line}.
-\end{funcdesc}
-
-\begin{funcdesc}{mime_encode_header}{line}
-Return a MIME-encoded version of the header line in \var{line}.
-\end{funcdesc}
-
-\begin{datadesc}{MAXLEN}
-By default, a part will be encoded as quoted-printable when it
-contains any non-ASCII characters (i.e., characters with the 8th bit
-set), or if there are any lines longer than \code{MAXLEN} characters
-(default value 200).
-\end{datadesc}
-
-\begin{datadesc}{CHARSET}
-When not specified in the mail headers, a character set must be filled
-in. The string used is stored in \code{CHARSET}, and the default
-value is ISO-8859-1 (also known as Latin1 (latin-one)).
-\end{datadesc}
-
-This module can also be used from the command line. Usage is as
-follows:
-\begin{verbatim}
-mimify.py -e [-l length] [infile [outfile]]
-mimify.py -d [-b] [infile [outfile]]
-\end{verbatim}
-to encode (mimify) and decode (unmimify) respectively. \var{infile}
-defaults to standard input, \var{outfile} defaults to standard output.
-The same file can be specified for input and output.
-
-If the \code{-l} option is given when encoding, if there are any lines
-longer than the specified \var{length}, the containing part will be
-encoded.
-
-If the \code{-b} option is given when decoding, any base64 parts will
-be decoded as well.
-
diff --git a/Doc/libminiae.tex b/Doc/libminiae.tex
deleted file mode 100644
index a1cd6f4..0000000
--- a/Doc/libminiae.tex
+++ /dev/null
@@ -1,63 +0,0 @@
-\section{Standard Module \module{MiniAEFrame}}
-\stmodindex{MiniAEFrame}
-\label{module-MiniAEFrame}
-
-The module \module{MiniAEFrame} provides a framework for an application
-that can function as an Open Scripting Architecture
-\index{Open Scripting Architecture}
-(OSA) server, i.e. receive and process
-AppleEvents\index{AppleEvents}. It can be used in conjunction with
-\module{FrameWork}\refstmodindex{FrameWork} or standalone.
-
-This module is temporary, it will eventually be replaced by a module
-that handles argument names better and possibly automates making your
-application scriptable.
-
-The \module{MiniAEFrame} module defines the following classes:
-
-
-\begin{classdesc}{AEServer}{}
-A class that handles AppleEvent dispatch. Your application should
-subclass this class together with either
-\class{MiniApplication} or
-\class{FrameWork.Application}. Your \method{__init__()} method should
-call the \method{__init__()} method for both classes.
-\end{classdesc}
-
-\begin{classdesc}{MiniApplication}{}
-A class that is more or less compatible with
-\class{FrameWork.Application} but with less functionality. Its
-event loop supports the apple menu, command-dot and AppleEvents; other
-events are passed on to the Python interpreter and/or Sioux.
-Useful if your application wants to use \class{AEServer} but does not
-provide its own windows, etc.
-\end{classdesc}
-
-
-\subsection{AEServer Objects}
-\label{aeserver-objects}
-
-\begin{methoddesc}[AEServer]{installaehandler}{classe, type, callback}
-Installs an AppleEvent handler. \var{classe} and \var{type} are the
-four-character OSA Class and Type designators, \code{'****'} wildcards
-are allowed. When a matching AppleEvent is received the parameters are
-decoded and your callback is invoked.
-\end{methoddesc}
-
-\begin{methoddesc}[AEServer]{callback}{_object, **kwargs}
-Your callback is called with the OSA Direct Object as first positional
-parameter. The other parameters are passed as keyword arguments, with
-the 4-character designator as name. Three extra keyword parameters are
-passed: \code{_class} and \code{_type} are the Class and Type
-designators and \code{_attributes} is a dictionary with the AppleEvent
-attributes.
-
-The return value of your method is packed with
-\function{aetools.packevent()} and sent as reply.
-\end{methoddesc}
-
-Note that there are some serious problems with the current
-design. AppleEvents which have non-identifier 4-character designators
-for arguments are not implementable, and it is not possible to return
-an error to the originator. This will be addressed in a future
-release.
diff --git a/Doc/libmisc.tex b/Doc/libmisc.tex
deleted file mode 100644
index 24881a8..0000000
--- a/Doc/libmisc.tex
+++ /dev/null
@@ -1,28 +0,0 @@
-\chapter{Miscellaneous Services}
-\label{misc}
-
-The modules described in this chapter provide miscellaneous services
-that are available in all Python versions. Here's an overview:
-
-\begin{description}
-
-\item[math]
---- Mathematical functions (\function{sin()} etc.).
-
-\item[cmath]
---- Mathematical functions for complex numbers.
-
-\item[whrandom]
---- Floating point pseudo-random number generator.
-
-\item[random]
---- Generate pseudo-random numbers with various common distributions.
-
-\item[array]
---- Efficient arrays of uniformly typed numeric values.
-
-\item[fileinput]
---- Perl-like iteration over lines from multiple input streams, with
-``save in place'' capability.
-
-\end{description}
diff --git a/Doc/libmm.tex b/Doc/libmm.tex
deleted file mode 100644
index 8660909..0000000
--- a/Doc/libmm.tex
+++ /dev/null
@@ -1,29 +0,0 @@
-\chapter{Multimedia Services}
-\label{mmedia}
-
-The modules described in this chapter implement various algorithms or
-interfaces that are mainly useful for multimedia applications. They
-are available at the discretion of the installation. Here's an overview:
-
-\begin{description}
-
-\item[audioop]
---- Manipulate raw audio data.
-
-\item[imageop]
---- Manipulate raw image data.
-
-\item[aifc]
---- Read and write audio files in AIFF or AIFC format.
-
-\item[jpeg]
---- Read and write image files in compressed JPEG format.
-
-\item[rgbimg]
---- Read and write image files in ``SGI RGB'' format (the module is
-\emph{not} SGI specific though)!
-
-\item[imghdr]
---- Determine the type of image contained in a file or byte stream.
-
-\end{description}
diff --git a/Doc/libmpz.tex b/Doc/libmpz.tex
deleted file mode 100644
index 707a3a8..0000000
--- a/Doc/libmpz.tex
+++ /dev/null
@@ -1,89 +0,0 @@
-\section{Built-in Module \module{mpz}}
-\label{module-mpz}
-\bimodindex{mpz}
-
-This is an optional module. It is only available when Python is
-configured to include it, which requires that the GNU MP software is
-installed.
-\index{MP, GNU library}
-\index{arbitrary precision integers}
-\index{integer!arbitrary precision}
-
-This module implements the interface to part of the GNU MP library,
-which defines arbitrary precision integer and rational number
-arithmetic routines. Only the interfaces to the \emph{integer}
-(\function{mpz_*()}) routines are provided. If not stated
-otherwise, the description in the GNU MP documentation can be applied.
-
-In general, \dfn{mpz}-numbers can be used just like other standard
-Python numbers, e.g.\ you can use the built-in operators like \code{+},
-\code{*}, etc., as well as the standard built-in functions like
-\function{abs()}, \function{int()}, \ldots, \function{divmod()},
-\function{pow()}. \strong{Please note:} the \emph{bitwise-xor}
-operation has been implemented as a bunch of \emph{and}s,
-\emph{invert}s and \emph{or}s, because the library lacks an
-\cfunction{mpz_xor()} function, and I didn't need one.
-
-You create an mpz-number by calling the function \function{mpz()} (see
-below for an exact description). An mpz-number is printed like this:
-\code{mpz(\var{value})}.
-
-
-\begin{funcdesc}{mpz}{value}
- Create a new mpz-number. \var{value} can be an integer, a long,
- another mpz-number, or even a string. If it is a string, it is
- interpreted as an array of radix-256 digits, least significant digit
- first, resulting in a positive number. See also the \method{binary()}
- method, described below.
-\end{funcdesc}
-
-\begin{datadesc}{MPZType}
- The type of the objects returned by \function{mpz()} and most other
- functions in this module.
-\end{datadesc}
-
-
-A number of \emph{extra} functions are defined in this module. Non
-mpz-arguments are converted to mpz-values first, and the functions
-return mpz-numbers.
-
-\begin{funcdesc}{powm}{base, exponent, modulus}
- Return \code{pow(\var{base}, \var{exponent}) \%{} \var{modulus}}. If
- \code{\var{exponent} == 0}, return \code{mpz(1)}. In contrast to the
- \C{} library function, this version can handle negative exponents.
-\end{funcdesc}
-
-\begin{funcdesc}{gcd}{op1, op2}
- Return the greatest common divisor of \var{op1} and \var{op2}.
-\end{funcdesc}
-
-\begin{funcdesc}{gcdext}{a, b}
- Return a tuple \code{(\var{g}, \var{s}, \var{t})}, such that
- \code{\var{a}*\var{s} + \var{b}*\var{t} == \var{g} == gcd(\var{a}, \var{b})}.
-\end{funcdesc}
-
-\begin{funcdesc}{sqrt}{op}
- Return the square root of \var{op}. The result is rounded towards zero.
-\end{funcdesc}
-
-\begin{funcdesc}{sqrtrem}{op}
- Return a tuple \code{(\var{root}, \var{remainder})}, such that
- \code{\var{root}*\var{root} + \var{remainder} == \var{op}}.
-\end{funcdesc}
-
-\begin{funcdesc}{divm}{numerator, denominator, modulus}
- Returns a number \var{q} such that
- \code{\var{q} * \var{denominator} \%{} \var{modulus} ==
- \var{numerator}}. One could also implement this function in Python,
- using \function{gcdext()}.
-\end{funcdesc}
-
-An mpz-number has one method:
-
-\begin{methoddesc}[mpz]{binary}{}
- Convert this mpz-number to a binary string, where the number has been
- stored as an array of radix-256 digits, least significant digit first.
-
- The mpz-number must have a value greater than or equal to zero,
- otherwise \exception{ValueError} will be raised.
-\end{methoddesc}
diff --git a/Doc/libni.tex b/Doc/libni.tex
deleted file mode 100644
index 14ff395..0000000
--- a/Doc/libni.tex
+++ /dev/null
@@ -1,60 +0,0 @@
-\section{Standard Module \module{ni}}
-\label{module-ni}
-\stmodindex{ni}
-
-\strong{Warning: This module is obsolete.} As of Python 1.5a4,
-package support (with different semantics for \code{__init__} and no
-support for \code{__domain__} or \code{__}) is built in the
-interpreter. The ni module is retained only for backward
-compatibility. As of Python 1.5b2, it has been renamed to \code{ni1};
-if you really need it, you can use \code{import ni1}, but the
-recommended approach is to rely on the built-in package support,
-converting existing packages if needed. Note that mixing \code{ni}
-and the built-in package support doesn't work: once you import
-\code{ni}, all packages use it.
-
-The \code{ni} module defines a new importing scheme, which supports
-packages containing several Python modules. To enable package
-support, execute \code{import ni} before importing any packages. Importing
-this module automatically installs the relevant import hooks. There
-are no publicly-usable functions or variables in the \code{ni} module.
-
-To create a package named \code{spam} containing sub-modules \code{ham}, \code{bacon} and
-\code{eggs}, create a directory \file{spam} somewhere on Python's module search
-path, as given in \code{sys.path}. Then, create files called \file{ham.py}, \file{bacon.py} and
-\file{eggs.py} inside \file{spam}.
-
-To import module \code{ham} from package \code{spam} and use function
-\code{hamneggs()} from that module, you can use any of the following
-possibilities:
-
-\begin{verbatim}
-import spam.ham # *not* "import spam" !!!
-spam.ham.hamneggs()
-\end{verbatim}
-%
-\begin{verbatim}
-from spam import ham
-ham.hamneggs()
-\end{verbatim}
-%
-\begin{verbatim}
-from spam.ham import hamneggs
-hamneggs()
-\end{verbatim}
-%
-\code{import spam} creates an
-empty package named \code{spam} if one does not already exist, but it does
-\emph{not} automatically import \code{spam}'s submodules.
-The only submodule that is guaranteed to be imported is
-\code{spam.__init__}, if it exists; it would be in a file named
-\file{__init__.py} in the \file{spam} directory. Note that
-\code{spam.__init__} is a submodule of package spam. It can refer to
-spam's namespace as \code{__} (two underscores):
-
-\begin{verbatim}
-__.spam_inited = 1 # Set a package-level variable
-\end{verbatim}
-%
-Additional initialization code (setting up variables, importing other
-submodules) can be performed in \file{spam/__init__.py}.
diff --git a/Doc/libnntplib.tex b/Doc/libnntplib.tex
deleted file mode 100644
index ba1d788..0000000
--- a/Doc/libnntplib.tex
+++ /dev/null
@@ -1,246 +0,0 @@
-\section{Standard Module \module{nntplib}}
-\label{module-nntplib}
-\stmodindex{nntplib}
-\indexii{NNTP}{protocol}
-
-
-This module defines the class \class{NNTP} which implements the client
-side of the NNTP protocol. It can be used to implement a news reader
-or poster, or automated news processors. For more information on NNTP
-(Network News Transfer Protocol), see Internet \rfc{977}.
-
-Here are two small examples of how it can be used. To list some
-statistics about a newsgroup and print the subjects of the last 10
-articles:
-
-\begin{verbatim}
->>> s = NNTP('news.cwi.nl')
->>> resp, count, first, last, name = s.group('comp.lang.python')
->>> print 'Group', name, 'has', count, 'articles, range', first, 'to', last
-Group comp.lang.python has 59 articles, range 3742 to 3803
->>> resp, subs = s.xhdr('subject', first + '-' + last)
->>> for id, sub in subs[-10:]: print id, sub
-...
-3792 Re: Removing elements from a list while iterating...
-3793 Re: Who likes Info files?
-3794 Emacs and doc strings
-3795 a few questions about the Mac implementation
-3796 Re: executable python scripts
-3797 Re: executable python scripts
-3798 Re: a few questions about the Mac implementation
-3799 Re: PROPOSAL: A Generic Python Object Interface for Python C Modules
-3802 Re: executable python scripts
-3803 Re: \POSIX{} wait and SIGCHLD
->>> s.quit()
-'205 news.cwi.nl closing connection. Goodbye.'
-\end{verbatim}
-
-To post an article from a file (this assumes that the article has
-valid headers):
-
-\begin{verbatim}
->>> s = NNTP('news.cwi.nl')
->>> f = open('/tmp/article')
->>> s.post(f)
-'240 Article posted successfully.'
->>> s.quit()
-'205 news.cwi.nl closing connection. Goodbye.'
-\end{verbatim}
-%
-The module itself defines the following items:
-
-\begin{classdesc}{NNTP}{host\optional{, port}}
-Return a new instance of the \class{NNTP} class, representing a
-connection to the NNTP server running on host \var{host}, listening at
-port \var{port}. The default \var{port} is 119.
-\end{classdesc}
-
-\begin{excdesc}{error_reply}
-Exception raised when an unexpected reply is received from the server.
-\end{excdesc}
-
-\begin{excdesc}{error_temp}
-Exception raised when an error code in the range 400--499 is received.
-\end{excdesc}
-
-\begin{excdesc}{error_perm}
-Exception raised when an error code in the range 500--599 is received.
-\end{excdesc}
-
-\begin{excdesc}{error_proto}
-Exception raised when a reply is received from the server that does
-not begin with a digit in the range 1--5.
-\end{excdesc}
-
-
-\subsection{NNTP Objects}
-\label{nntp-objects}
-
-NNTP instances have the following methods. The \var{response} that is
-returned as the first item in the return tuple of almost all methods
-is the server's response: a string beginning with a three-digit code.
-If the server's response indicates an error, the method raises one of
-the above exceptions.
-
-
-\begin{methoddesc}{getwelcome}{}
-Return the welcome message sent by the server in reply to the initial
-connection. (This message sometimes contains disclaimers or help
-information that may be relevant to the user.)
-\end{methoddesc}
-
-\begin{methoddesc}{set_debuglevel}{level}
-Set the instance's debugging level. This controls the amount of
-debugging output printed. The default, \code{0}, produces no debugging
-output. A value of \code{1} produces a moderate amount of debugging
-output, generally a single line per request or response. A value of
-\code{2} or higher produces the maximum amount of debugging output,
-logging each line sent and received on the connection (including
-message text).
-\end{methoddesc}
-
-\begin{methoddesc}{newgroups}{date, time}
-Send a \samp{NEWGROUPS} command. The \var{date} argument should be a
-string of the form \code{"\var{yy}\var{mm}\var{dd}"} indicating the
-date, and \var{time} should be a string of the form
-\code{"\var{hh}\var{mm}\var{ss}"} indicating the time. Return a pair
-\code{(\var{response}, \var{groups})} where \var{groups} is a list of
-group names that are new since the given date and time.
-\end{methoddesc}
-
-\begin{methoddesc}{newnews}{group, date, time}
-Send a \samp{NEWNEWS} command. Here, \var{group} is a group name or
-\code{'*'}, and \var{date} and \var{time} have the same meaning as for
-\method{newgroups()}. Return a pair \code{(\var{response},
-\var{articles})} where \var{articles} is a list of article ids.
-\end{methoddesc}
-
-\begin{methoddesc}{list}{}
-Send a \samp{LIST} command. Return a pair \code{(\var{response},
-\var{list})} where \var{list} is a list of tuples. Each tuple has the
-form \code{(\var{group}, \var{last}, \var{first}, \var{flag})}, where
-\var{group} is a group name, \var{last} and \var{first} are the last
-and first article numbers (as strings), and \var{flag} is \code{'y'}
-if posting is allowed, \code{'n'} if not, and \code{'m'} if the
-newsgroup is moderated. (Note the ordering: \var{last}, \var{first}.)
-\end{methoddesc}
-
-\begin{methoddesc}{group}{name}
-Send a \samp{GROUP} command, where \var{name} is the group name.
-Return a tuple \code{(}\var{response}\code{,} \var{count}\code{,}
-\var{first}\code{,} \var{last}\code{,} \var{name}\code{)} where
-\var{count} is the (estimated) number of articles in the group,
-\var{first} is the first article number in the group, \var{last} is
-the last article number in the group, and \var{name} is the group
-name. The numbers are returned as strings.
-\end{methoddesc}
-
-\begin{methoddesc}{help}{}
-Send a \samp{HELP} command. Return a pair \code{(\var{response},
-\var{list})} where \var{list} is a list of help strings.
-\end{methoddesc}
-
-\begin{methoddesc}{stat}{id}
-Send a \samp{STAT} command, where \var{id} is the message id (enclosed
-in \character{<} and \character{>}) or an article number (as a string).
-Return a triple \code{(\var{response}, \var{number}, \var{id})} where
-\var{number} is the article number (as a string) and \var{id} is the
-article id (enclosed in \character{<} and \character{>}).
-\end{methoddesc}
-
-\begin{methoddesc}{next}{}
-Send a \samp{NEXT} command. Return as for \method{stat()}.
-\end{methoddesc}
-
-\begin{methoddesc}{last}{}
-Send a \samp{LAST} command. Return as for \method{stat()}.
-\end{methoddesc}
-
-\begin{methoddesc}{head}{id}
-Send a \samp{HEAD} command, where \var{id} has the same meaning as for
-\method{stat()}. Return a pair \code{(\var{response}, \var{list})}
-where \var{list} is a list of the article's headers (an uninterpreted
-list of lines, without trailing newlines).
-\end{methoddesc}
-
-\begin{methoddesc}{body}{id}
-Send a \samp{BODY} command, where \var{id} has the same meaning as for
-\method{stat()}. Return a pair \code{(\var{response}, \var{list})}
-where \var{list} is a list of the article's body text (an
-uninterpreted list of lines, without trailing newlines).
-\end{methoddesc}
-
-\begin{methoddesc}{article}{id}
-Send a \samp{ARTICLE} command, where \var{id} has the same meaning as
-for \method{stat()}. Return a pair \code{(\var{response}, \var{list})}
-where \var{list} is a list of the article's header and body text (an
-uninterpreted list of lines, without trailing newlines).
-\end{methoddesc}
-
-\begin{methoddesc}{slave}{}
-Send a \samp{SLAVE} command. Return the server's \var{response}.
-\end{methoddesc}
-
-\begin{methoddesc}{xhdr}{header, string}
-Send an \samp{XHDR} command. This command is not defined in the RFC
-but is a common extension. The \var{header} argument is a header
-keyword, e.g. \code{'subject'}. The \var{string} argument should have
-the form \code{"\var{first}-\var{last}"} where \var{first} and
-\var{last} are the first and last article numbers to search. Return a
-pair \code{(\var{response}, \var{list})}, where \var{list} is a list of
-pairs \code{(\var{id}, \var{text})}, where \var{id} is an article id
-(as a string) and \var{text} is the text of the requested header for
-that article.
-\end{methoddesc}
-
-\begin{methoddesc}{post}{file}
-Post an article using the \samp{POST} command. The \var{file}
-argument is an open file object which is read until EOF using its
-\method{readline()} method. It should be a well-formed news article,
-including the required headers. The \method{post()} method
-automatically escapes lines beginning with \samp{.}.
-\end{methoddesc}
-
-\begin{methoddesc}{ihave}{id, file}
-Send an \samp{IHAVE} command. If the response is not an error, treat
-\var{file} exactly as for the \method{post()} method.
-\end{methoddesc}
-
-\begin{methoddesc}{date}{}
-Return a triple \code{(\var{response}, \var{date}, \var{time})},
-containing the current date and time in a form suitable for the
-\method{newnews()} and \method{newgroups()} methods.
-This is an optional NNTP extension, and may not be supported by all
-servers.
-\end{methoddesc}
-
-\begin{methoddesc}{xgtitle}{name}
-Process an \samp{XGTITLE} command, returning a pair \code{(\var{response},
-\var{list})}, where \var{list} is a list of tuples containing
-\code{(\var{name}, \var{title})}.
-% XXX huh? Should that be name, description?
-This is an optional NNTP extension, and may not be supported by all
-servers.
-\end{methoddesc}
-
-\begin{methoddesc}{xover}{start, end}
-Return a pair \code{(\var{resp}, \var{list})}. \var{list} is a list
-of tuples, one for each article in the range delimited by the \var{start}
-and \var{end} article numbers. Each tuple is of the form
-\code{(}\var{article number}\code{,} \var{subject}\code{,}
-\var{poster}\code{,} \var{date}\code{,} \var{id}\code{,}
-\var{references}\code{,} \var{size}\code{,} \var{lines}\code{)}.
-This is an optional NNTP extension, and may not be supported by all
-servers.
-\end{methoddesc}
-
-\begin{methoddesc}{xpath}{id}
-Return a pair \code{(\var{resp}, \var{path})}, where \var{path} is the
-directory path to the article with message ID \var{id}. This is an
-optional NNTP extension, and may not be supported by all servers.
-\end{methoddesc}
-
-\begin{methoddesc}{quit}{}
-Send a \samp{QUIT} command and close the connection. Once this method
-has been called, no other methods of the NNTP object should be called.
-\end{methoddesc}
diff --git a/Doc/libobjs.tex b/Doc/libobjs.tex
deleted file mode 100644
index 8668eff..0000000
--- a/Doc/libobjs.tex
+++ /dev/null
@@ -1,24 +0,0 @@
-\chapter{Built-in Types, Exceptions and Functions}
-\nodename{Built-in Objects}
-\label{builtin}
-
-Names for built-in exceptions and functions are found in a separate
-symbol table. This table is searched last when the interpreter looks
-up the meaning of a name, so local and global
-user-defined names can override built-in names. Built-in types are
-described together here for easy reference.%
-\footnote{Most descriptions sorely lack explanations of the exceptions
- that may be raised --- this will be fixed in a future version of
- this manual.}
-\indexii{built-in}{types}
-\indexii{built-in}{exceptions}
-\indexii{built-in}{functions}
-\index{symbol table}
-
-The tables in this chapter document the priorities of operators by
-listing them in order of ascending priority (within a table) and
-grouping operators that have the same priority in the same box.
-Binary operators of the same priority group from left to right.
-(Unary operators group from right to left, but there you have no real
-choice.) See Chapter 5 of the \emph{Python Reference Manual} for the
-complete picture on operator priorities.
diff --git a/Doc/liboperator.tex b/Doc/liboperator.tex
deleted file mode 100644
index 2169ea8..0000000
--- a/Doc/liboperator.tex
+++ /dev/null
@@ -1,132 +0,0 @@
-% Contributed by Skip Montanaro, from the module's doc strings.
-
-\section{Built-in Module \module{operator}}
-\label{module-operator}
-\bimodindex{operator}
-
-The \module{operator} module exports a set of functions implemented in C
-corresponding to the intrinsic operators of Python. For example,
-\code{operator.add(x, y)} is equivalent to the expression \code{x+y}. The
-function names are those used for special class methods; variants without
-leading and trailing \samp{__} are also provided for convenience.
-
-The \module{operator} module defines the following functions:
-
-\begin{funcdesc}{add}{a, b}
-\funcline{__add__}{a, b}
-Return \var{a} \code{+} \var{b}, for \var{a} and \var{b} numbers.
-\end{funcdesc}
-
-\begin{funcdesc}{sub}{a, b}
-\funcline{__sub__}{a, b}
-Return \var{a} \code{-} \var{b}.
-\end{funcdesc}
-
-\begin{funcdesc}{mul}{a, b}
-\funcline{__mul__}{a, b}
-Return \var{a} \code{*} \var{b}, for \var{a} and \var{b} numbers.
-\end{funcdesc}
-
-\begin{funcdesc}{div}{a, b}
-\funcline{__div__}{a, b}
-Return \var{a} \code{/} \var{b}.
-\end{funcdesc}
-
-\begin{funcdesc}{mod}{a, b}
-\funcline{__mod__}{a, b}
-Return \var{a} \code{\%} \var{b}.
-\end{funcdesc}
-
-\begin{funcdesc}{neg}{o}
-\funcline{__neg__}{o}
-Return \var{o} negated.
-\end{funcdesc}
-
-\begin{funcdesc}{pos}{o}
-\funcline{__pos__}{o}
-Return \var{o} positive.
-\end{funcdesc}
-
-\begin{funcdesc}{abs}{o}
-\funcline{__abs__}{o}
-Return the absolute value of \var{o}.
-\end{funcdesc}
-
-\begin{funcdesc}{inv}{o}
-\funcline{__inv__}{o}
-Return the inverse of \var{o}.
-\end{funcdesc}
-
-\begin{funcdesc}{lshift}{a, b}
-\funcline{__lshift__}{a, b}
-Return \var{a} shifted left by \var{b}.
-\end{funcdesc}
-
-\begin{funcdesc}{rshift}{a, b}
-\funcline{__rshift__}{a, b}
-Return \var{a} shifted right by \var{b}.
-\end{funcdesc}
-
-\begin{funcdesc}{and_}{a, b}
-\funcline{__and__}{a, b}
-Return the bitwise and of \var{a} and \var{b}.
-\end{funcdesc}
-
-\begin{funcdesc}{or_}{a, b}
-\funcline{__or__}{a, b}
-Return the bitwise or of \var{a} and \var{b}.
-\end{funcdesc}
-
-\begin{funcdesc}{concat}{a, b}
-\funcline{__concat__}{a, b}
-Return \var{a} \code{+} \var{b} for \var{a} and \var{b} sequences.
-\end{funcdesc}
-
-\begin{funcdesc}{repeat}{a, b}
-\funcline{__repeat__}{a, b}
-Return \var{a} \code{*} \var{b} where \var{a} is a sequence and
-\var{b} is an integer.
-\end{funcdesc}
-
-\begin{funcdesc}{getitem}{a, b}
-\funcline{__getitem__}{a, b}
-Return the value of \var{a} at index \var{b}.
-\end{funcdesc}
-
-\begin{funcdesc}{setitem}{a, b, c}
-\funcline{__setitem__}{a, b, c}
-Set the value of \var{a} at index \var{b} to \var{c}.
-\end{funcdesc}
-
-\begin{funcdesc}{delitem}{a, b}
-\funcline{__delitem__}{a, b}
-Remove the value of \var{a} at index \var{b}.
-\end{funcdesc}
-
-\begin{funcdesc}{getslice}{a, b, c}
-\funcline{__getslice__}{a, b, c}
-Return the slice of \var{a} from index \var{b} to index \var{c}\code{-1}.
-\end{funcdesc}
-
-\begin{funcdesc}{setslice}{a, b, c, v}
-\funcline{__setslice__}{a, b, c, v}
-Set the slice of \var{a} from index \var{b} to index \var{c}\code{-1} to the
-sequence \var{v}.
-\end{funcdesc}
-
-\begin{funcdesc}{delslice}{a, b, c}
-\funcline{__delslice__}{a, b, c}
-Delete the slice of \var{a} from index \var{b} to index \var{c}\code{-1}.
-\end{funcdesc}
-
-
-Example: Build a dictionary that maps the ordinals from \code{0} to
-\code{256} to their character equivalents.
-
-\begin{verbatim}
->>> import operator
->>> d = {}
->>> keys = range(256)
->>> vals = map(chr, keys)
->>> map(operator.setitem, [d]*len(keys), keys, vals)
-\end{verbatim}
diff --git a/Doc/libos.tex b/Doc/libos.tex
deleted file mode 100644
index 810e40c..0000000
--- a/Doc/libos.tex
+++ /dev/null
@@ -1,110 +0,0 @@
-\section{Standard Module \module{os}}
-\label{module-os}
-\stmodindex{os}
-
-This module provides a more portable way of using operating system
-(OS) dependent functionality than importing an OS dependent built-in
-module like \module{posix}.
-
-When the optional built-in module \module{posix} is available, this
-module exports the same functions and data as \module{posix}; otherwise,
-it searches for an OS dependent built-in module like \module{mac} and
-exports the same functions and data as found there. The design of all
-Python's built-in OS dependent modules is such that as long as the same
-functionality is available, it uses the same interface; e.g., the
-function \code{os.stat(\var{file})} returns stat info about \var{file}
-in a format compatible with the \POSIX{} interface.
-
-Extensions peculiar to a particular OS are also available through the
-\module{os} module, but using them is of course a threat to
-portability!
-
-Note that after the first time \module{os} is imported, there is
-\emph{no} performance penalty in using functions from \module{os}
-instead of directly from the OS dependent built-in module, so there
-should be \emph{no} reason not to use \module{os}!
-
-In addition to whatever the correct OS dependent module exports, the
-following variables and functions are always exported by \module{os}:
-
-\begin{datadesc}{name}
-The name of the OS dependent module imported. The following names
-have currently been registered: \code{'posix'}, \code{'nt'},
-\code{'dos'}, \code{'mac'}.
-\end{datadesc}
-
-\begin{datadesc}{path}
-The corresponding OS dependent standard module for pathname
-operations, e.g., \module{posixpath} or \module{macpath}. Thus, (given
-the proper imports), \code{os.path.split(\var{file})} is equivalent to but
-more portable than \code{posixpath.split(\var{file})}.
-\end{datadesc}
-
-\begin{datadesc}{curdir}
-The constant string used by the OS to refer to the current directory,
-e.g. \code{'.'} for \POSIX{} or \code{':'} for the Macintosh.
-\end{datadesc}
-
-\begin{datadesc}{pardir}
-The constant string used by the OS to refer to the parent directory,
-e.g. \code{'..'} for \POSIX{} or \code{'::'} for the Macintosh.
-\end{datadesc}
-
-\begin{datadesc}{sep}
-The character used by the OS to separate pathname components,
-e.g. \code{'/'} for \POSIX{} or \code{':'} for the Macintosh. Note that
-knowing this is not sufficient to be able to parse or concatenate
-pathnames --- better use \function{os.path.split()} and
-\function{os.path.join()}---but it is occasionally useful.
-\end{datadesc}
-
-\begin{datadesc}{altsep}
-An alternative character used by the OS to separate pathname components,
-or \code{None} if only one separator character exists. This is set to
-\code{'/'} on DOS/Windows systems where \code{sep} is a backslash.
-\end{datadesc}
-
-\begin{datadesc}{pathsep}
-The character conventionally used by the OS to separate search patch
-components (as in \code{\$PATH}), e.g.\ \code{':'} for \POSIX{} or
-\code{';'} for MS-DOS.
-\end{datadesc}
-
-\begin{datadesc}{defpath}
-The default search path used by \code{exec*p*()} if the environment
-doesn't have a \code{'PATH'} key.
-\end{datadesc}
-
-\begin{funcdesc}{execl}{path, arg0, arg1, ...}
-This is equivalent to
-\code{execv(\var{path}, (\var{arg0}, \var{arg1}, ...))}.
-\end{funcdesc}
-
-\begin{funcdesc}{execle}{path, arg0, arg1, ..., env}
-This is equivalent to
-\code{execve(\var{path}, (\var{arg0}, \var{arg1}, ...), \var{env})}.
-\end{funcdesc}
-
-\begin{funcdesc}{execlp}{path, arg0, arg1, ...}
-This is equivalent to
-\code{execvp(\var{path}, (\var{arg0}, \var{arg1}, ...))}.
-\end{funcdesc}
-
-\begin{funcdesc}{execvp}{path, args}
-This is like \code{execv(\var{path}, \var{args})} but duplicates
-the shell's actions in searching for an executable file in a list of
-directories. The directory list is obtained from
-\code{environ['PATH']}.
-\end{funcdesc}
-
-\begin{funcdesc}{execvpe}{path, args, env}
-This is a cross between \function{execve()} and \function{execvp()}.
-The directory list is obtained from \code{\var{env}['PATH']}.
-\end{funcdesc}
-
-(The functions \code{execv()} and \code{execve()} are not
-documented here, since they are implemented by the OS dependent
-module. If the OS dependent module doesn't define either of these,
-the functions that rely on it will raise an exception. They are
-documented in the section on module \module{posix}, together with all
-other functions that \module{os} imports from the OS dependent module.)
diff --git a/Doc/libpanel.tex b/Doc/libpanel.tex
deleted file mode 100644
index 3553808..0000000
--- a/Doc/libpanel.tex
+++ /dev/null
@@ -1,68 +0,0 @@
-\section{Standard Module \module{panel}}
-\label{module-panel}
-\stmodindex{panel}
-
-\strong{Please note:} The FORMS library, to which the
-\code{fl}\refbimodindex{fl} module described above interfaces, is a
-simpler and more accessible user interface library for use with GL
-than the \code{panel} module (besides also being by a Dutch author).
-
-This module should be used instead of the built-in module
-\code{pnl}\refbimodindex{pnl}
-to interface with the
-\emph{Panel Library}.
-
-The module is too large to document here in its entirety.
-One interesting function:
-
-\begin{funcdesc}{defpanellist}{filename}
-Parses a panel description file containing S-expressions written by the
-\emph{Panel Editor}
-that accompanies the Panel Library and creates the described panels.
-It returns a list of panel objects.
-\end{funcdesc}
-
-\strong{Warning:}
-the Python interpreter will dump core if you don't create a GL window
-before calling
-\code{panel.mkpanel()}
-or
-\code{panel.defpanellist()}.
-
-\section{Standard Module \module{panelparser}}
-\label{module-panelparser}
-\stmodindex{panelparser}
-
-This module defines a self-contained parser for S-expressions as output
-by the Panel Editor (which is written in Scheme so it can't help writing
-S-expressions).
-The relevant function is
-\code{panelparser.parse_file(\var{file})}
-which has a file object (not a filename!) as argument and returns a list
-of parsed S-expressions.
-Each S-expression is converted into a Python list, with atoms converted
-to Python strings and sub-expressions (recursively) to Python lists.
-For more details, read the module file.
-% XXXXJH should be funcdesc, I think
-
-\section{Built-in Module \module{pnl}}
-\label{module-pnl}
-\bimodindex{pnl}
-
-This module provides access to the
-\emph{Panel Library}
-built by NASA Ames\index{NASA} (to get it, send e-mail to
-\code{panel-request@nas.nasa.gov}).
-All access to it should be done through the standard module
-\code{panel}\refstmodindex{panel},
-which transparantly exports most functions from
-\code{pnl}
-but redefines
-\code{pnl.dopanel()}.
-
-\strong{Warning:}
-the Python interpreter will dump core if you don't create a GL window
-before calling
-\code{pnl.mkpanel()}.
-
-The module is too large to document here in its entirety.
diff --git a/Doc/libparser.tex b/Doc/libparser.tex
deleted file mode 100644
index 6759a9f..0000000
--- a/Doc/libparser.tex
+++ /dev/null
@@ -1,724 +0,0 @@
-% libparser.tex
-%
-% Copyright 1995 Virginia Polytechnic Institute and State University
-% and Fred L. Drake, Jr. This copyright notice must be distributed on
-% all copies, but this document otherwise may be distributed as part
-% of the Python distribution. No fee may be charged for this document
-% in any representation, either on paper or electronically. This
-% restriction does not affect other elements in a distributed package
-% in any way.
-%
-
-\section{Built-in Module \module{parser}}
-\label{module-parser}
-\bimodindex{parser}
-\index{parsing!Python source code}
-
-The \module{parser} module provides an interface to Python's internal
-parser and byte-code compiler. The primary purpose for this interface
-is to allow Python code to edit the parse tree of a Python expression
-and create executable code from this. This is better than trying
-to parse and modify an arbitrary Python code fragment as a string
-because parsing is performed in a manner identical to the code
-forming the application. It is also faster.
-
-The \module{parser} module was written and documented by Fred
-L. Drake, Jr. (\email{fdrake@acm.org}).%
-\index{Drake, Fred L., Jr.}
-
-There are a few things to note about this module which are important
-to making use of the data structures created. This is not a tutorial
-on editing the parse trees for Python code, but some examples of using
-the \module{parser} module are presented.
-
-Most importantly, a good understanding of the Python grammar processed
-by the internal parser is required. For full information on the
-language syntax, refer to the \emph{Python Language Reference}. The
-parser itself is created from a grammar specification defined in the file
-\file{Grammar/Grammar} in the standard Python distribution. The parse
-trees stored in the AST objects created by this module are the
-actual output from the internal parser when created by the
-\function{expr()} or \function{suite()} functions, described below. The AST
-objects created by \function{sequence2ast()} faithfully simulate those
-structures. Be aware that the values of the sequences which are
-considered ``correct'' will vary from one version of Python to another
-as the formal grammar for the language is revised. However,
-transporting code from one Python version to another as source text
-will always allow correct parse trees to be created in the target
-version, with the only restriction being that migrating to an older
-version of the interpreter will not support more recent language
-constructs. The parse trees are not typically compatible from one
-version to another, whereas source code has always been
-forward-compatible.
-
-Each element of the sequences returned by \function{ast2list()} or
-\function{ast2tuple()} has a simple form. Sequences representing
-non-terminal elements in the grammar always have a length greater than
-one. The first element is an integer which identifies a production in
-the grammar. These integers are given symbolic names in the C header
-file \file{Include/graminit.h} and the Python module
-\module{symbol}. Each additional element of the sequence represents
-a component of the production as recognized in the input string: these
-are always sequences which have the same form as the parent. An
-important aspect of this structure which should be noted is that
-keywords used to identify the parent node type, such as the keyword
-\keyword{if} in an \constant{if_stmt}, are included in the node tree without
-any special treatment. For example, the \keyword{if} keyword is
-represented by the tuple \code{(1, 'if')}, where \code{1} is the
-numeric value associated with all \code{NAME} tokens, including
-variable and function names defined by the user. In an alternate form
-returned when line number information is requested, the same token
-might be represented as \code{(1, 'if', 12)}, where the \code{12}
-represents the line number at which the terminal symbol was found.
-
-Terminal elements are represented in much the same way, but without
-any child elements and the addition of the source text which was
-identified. The example of the \keyword{if} keyword above is
-representative. The various types of terminal symbols are defined in
-the C header file \file{Include/token.h} and the Python module
-\module{token}.
-
-The AST objects are not required to support the functionality of this
-module, but are provided for three purposes: to allow an application
-to amortize the cost of processing complex parse trees, to provide a
-parse tree representation which conserves memory space when compared
-to the Python list or tuple representation, and to ease the creation
-of additional modules in C which manipulate parse trees. A simple
-``wrapper'' class may be created in Python to hide the use of AST
-objects.
-
-The \module{parser} module defines functions for a few distinct
-purposes. The most important purposes are to create AST objects and
-to convert AST objects to other representations such as parse trees
-and compiled code objects, but there are also functions which serve to
-query the type of parse tree represented by an AST object.
-
-
-\subsection{Creating AST Objects}
-\label{Creating ASTs}
-
-AST objects may be created from source code or from a parse tree.
-When creating an AST object from source, different functions are used
-to create the \code{'eval'} and \code{'exec'} forms.
-
-\begin{funcdesc}{expr}{string}
-The \function{expr()} function parses the parameter \code{\var{string}}
-as if it were an input to \samp{compile(\var{string}, 'eval')}. If
-the parse succeeds, an AST object is created to hold the internal
-parse tree representation, otherwise an appropriate exception is
-thrown.
-\end{funcdesc}
-
-\begin{funcdesc}{suite}{string}
-The \function{suite()} function parses the parameter \code{\var{string}}
-as if it were an input to \samp{compile(\var{string}, 'exec')}. If
-the parse succeeds, an AST object is created to hold the internal
-parse tree representation, otherwise an appropriate exception is
-thrown.
-\end{funcdesc}
-
-\begin{funcdesc}{sequence2ast}{sequence}
-This function accepts a parse tree represented as a sequence and
-builds an internal representation if possible. If it can validate
-that the tree conforms to the Python grammar and all nodes are valid
-node types in the host version of Python, an AST object is created
-from the internal representation and returned to the called. If there
-is a problem creating the internal representation, or if the tree
-cannot be validated, a \exception{ParserError} exception is thrown. An AST
-object created this way should not be assumed to compile correctly;
-normal exceptions thrown by compilation may still be initiated when
-the AST object is passed to \function{compileast()}. This may indicate
-problems not related to syntax (such as a \exception{MemoryError}
-exception), but may also be due to constructs such as the result of
-parsing \code{del f(0)}, which escapes the Python parser but is
-checked by the bytecode compiler.
-
-Sequences representing terminal tokens may be represented as either
-two-element lists of the form \code{(1, 'name')} or as three-element
-lists of the form \code{(1, 'name', 56)}. If the third element is
-present, it is assumed to be a valid line number. The line number
-may be specified for any subset of the terminal symbols in the input
-tree.
-\end{funcdesc}
-
-\begin{funcdesc}{tuple2ast}{sequence}
-This is the same function as \function{sequence2ast()}. This entry point
-is maintained for backward compatibility.
-\end{funcdesc}
-
-
-\subsection{Converting AST Objects}
-\label{Converting ASTs}
-
-AST objects, regardless of the input used to create them, may be
-converted to parse trees represented as list- or tuple- trees, or may
-be compiled into executable code objects. Parse trees may be
-extracted with or without line numbering information.
-
-\begin{funcdesc}{ast2list}{ast\optional{, line_info}}
-This function accepts an AST object from the caller in
-\code{\var{ast}} and returns a Python list representing the
-equivelent parse tree. The resulting list representation can be used
-for inspection or the creation of a new parse tree in list form. This
-function does not fail so long as memory is available to build the
-list representation. If the parse tree will only be used for
-inspection, \function{ast2tuple()} should be used instead to reduce memory
-consumption and fragmentation. When the list representation is
-required, this function is significantly faster than retrieving a
-tuple representation and converting that to nested lists.
-
-If \code{\var{line_info}} is true, line number information will be
-included for all terminal tokens as a third element of the list
-representing the token. Note that the line number provided specifies
-the line on which the token \emph{ends}. This information is
-omitted if the flag is false or omitted.
-\end{funcdesc}
-
-\begin{funcdesc}{ast2tuple}{ast\optional{, line_info}}
-This function accepts an AST object from the caller in
-\code{\var{ast}} and returns a Python tuple representing the
-equivelent parse tree. Other than returning a tuple instead of a
-list, this function is identical to \function{ast2list()}.
-
-If \code{\var{line_info}} is true, line number information will be
-included for all terminal tokens as a third element of the list
-representing the token. This information is omitted if the flag is
-false or omitted.
-\end{funcdesc}
-
-\begin{funcdesc}{compileast}{ast\optional{, filename\code{ = '<ast>'}}}
-The Python byte compiler can be invoked on an AST object to produce
-code objects which can be used as part of an \code{exec} statement or
-a call to the built-in \function{eval()}\bifuncindex{eval} function.
-This function provides the interface to the compiler, passing the
-internal parse tree from \code{\var{ast}} to the parser, using the
-source file name specified by the \code{\var{filename}} parameter.
-The default value supplied for \code{\var{filename}} indicates that
-the source was an AST object.
-
-Compiling an AST object may result in exceptions related to
-compilation; an example would be a \exception{SyntaxError} caused by the
-parse tree for \code{del f(0)}: this statement is considered legal
-within the formal grammar for Python but is not a legal language
-construct. The \exception{SyntaxError} raised for this condition is
-actually generated by the Python byte-compiler normally, which is why
-it can be raised at this point by the \module{parser} module. Most
-causes of compilation failure can be diagnosed programmatically by
-inspection of the parse tree.
-\end{funcdesc}
-
-
-\subsection{Queries on AST Objects}
-\label{Querying ASTs}
-
-Two functions are provided which allow an application to determine if
-an AST was created as an expression or a suite. Neither of these
-functions can be used to determine if an AST was created from source
-code via \function{expr()} or \function{suite()} or from a parse tree
-via \function{sequence2ast()}.
-
-\begin{funcdesc}{isexpr}{ast}
-When \code{\var{ast}} represents an \code{'eval'} form, this function
-returns true, otherwise it returns false. This is useful, since code
-objects normally cannot be queried for this information using existing
-built-in functions. Note that the code objects created by
-\function{compileast()} cannot be queried like this either, and are
-identical to those created by the built-in
-\function{compile()}\bifuncindex{compile} function.
-\end{funcdesc}
-
-
-\begin{funcdesc}{issuite}{ast}
-This function mirrors \function{isexpr()} in that it reports whether an
-AST object represents an \code{'exec'} form, commonly known as a
-``suite.'' It is not safe to assume that this function is equivelent
-to \samp{not isexpr(\var{ast})}, as additional syntactic fragments may
-be supported in the future.
-\end{funcdesc}
-
-
-\subsection{Exceptions and Error Handling}
-\label{AST Errors}
-
-The parser module defines a single exception, but may also pass other
-built-in exceptions from other portions of the Python runtime
-environment. See each function for information about the exceptions
-it can raise.
-
-\begin{excdesc}{ParserError}
-Exception raised when a failure occurs within the parser module. This
-is generally produced for validation failures rather than the built in
-\exception{SyntaxError} thrown during normal parsing.
-The exception argument is either a string describing the reason of the
-failure or a tuple containing a sequence causing the failure from a parse
-tree passed to \function{sequence2ast()} and an explanatory string. Calls to
-\function{sequence2ast()} need to be able to handle either type of exception,
-while calls to other functions in the module will only need to be
-aware of the simple string values.
-\end{excdesc}
-
-Note that the functions \function{compileast()}, \function{expr()}, and
-\function{suite()} may throw exceptions which are normally thrown by the
-parsing and compilation process. These include the built in
-exceptions \exception{MemoryError}, \exception{OverflowError},
-\exception{SyntaxError}, and \exception{SystemError}. In these cases, these
-exceptions carry all the meaning normally associated with them. Refer
-to the descriptions of each function for detailed information.
-
-
-\subsection{AST Objects}
-\label{AST Objects}
-
-AST objects returned by \function{expr()}, \function{suite()} and
-\function{sequence2ast()} have no methods of their own.
-
-Ordered and equality comparisons are supported between AST objects.
-Pickling of AST objects (using the \module{pickle} module) is also
-supported.
-
-\begin{datadesc}{ASTType}
-The type of the objects returned by \function{expr()},
-\function{suite()} and \function{sequence2ast()}.
-\end{datadesc}
-
-
-AST objects have the following methods:
-
-
-\begin{methoddesc}[AST]{compile}{\optional{filename}}
-Same as \code{compileast(\var{ast}, \var{filename})}.
-\end{methoddesc}
-
-\begin{methoddesc}[AST]{isexpr}{}
-Same as \code{isexpr(\var{ast})}.
-\end{methoddesc}
-
-\begin{methoddesc}[AST]{issuite}{}
-Same as \code{issuite(\var{ast})}.
-\end{methoddesc}
-
-\begin{methoddesc}[AST]{tolist}{\optional{line_info}}
-Same as \code{ast2list(\var{ast}, \var{line_info})}.
-\end{methoddesc}
-
-\begin{methoddesc}[AST]{totuple}{\optional{line_info}}
-Same as \code{ast2tuple(\var{ast}, \var{line_info})}.
-\end{methoddesc}
-
-
-\subsection{Examples}
-\nodename{AST Examples}
-
-The parser modules allows operations to be performed on the parse tree
-of Python source code before the bytecode is generated, and provides
-for inspection of the parse tree for information gathering purposes.
-Two examples are presented. The simple example demonstrates emulation
-of the \function{compile()}\bifuncindex{compile} built-in function and
-the complex example shows the use of a parse tree for information
-discovery.
-
-\subsubsection{Emulation of \function{compile()}}
-
-While many useful operations may take place between parsing and
-bytecode generation, the simplest operation is to do nothing. For
-this purpose, using the \module{parser} module to produce an
-intermediate data structure is equivelent to the code
-
-\begin{verbatim}
->>> code = compile('a + 5', 'eval')
->>> a = 5
->>> eval(code)
-10
-\end{verbatim}
-
-The equivelent operation using the \module{parser} module is somewhat
-longer, and allows the intermediate internal parse tree to be retained
-as an AST object:
-
-\begin{verbatim}
->>> import parser
->>> ast = parser.expr('a + 5')
->>> code = parser.compileast(ast)
->>> a = 5
->>> eval(code)
-10
-\end{verbatim}
-
-An application which needs both AST and code objects can package this
-code into readily available functions:
-
-\begin{verbatim}
-import parser
-
-def load_suite(source_string):
- ast = parser.suite(source_string)
- code = parser.compileast(ast)
- return ast, code
-
-def load_expression(source_string):
- ast = parser.expr(source_string)
- code = parser.compileast(ast)
- return ast, code
-\end{verbatim}
-
-\subsubsection{Information Discovery}
-
-Some applications benefit from direct access to the parse tree. The
-remainder of this section demonstrates how the parse tree provides
-access to module documentation defined in docstrings without requiring
-that the code being examined be loaded into a running interpreter via
-\keyword{import}. This can be very useful for performing analyses of
-untrusted code.
-
-Generally, the example will demonstrate how the parse tree may be
-traversed to distill interesting information. Two functions and a set
-of classes are developed which provide programmatic access to high
-level function and class definitions provided by a module. The
-classes extract information from the parse tree and provide access to
-the information at a useful semantic level, one function provides a
-simple low-level pattern matching capability, and the other function
-defines a high-level interface to the classes by handling file
-operations on behalf of the caller. All source files mentioned here
-which are not part of the Python installation are located in the
-\file{Demo/parser/} directory of the distribution.
-
-The dynamic nature of Python allows the programmer a great deal of
-flexibility, but most modules need only a limited measure of this when
-defining classes, functions, and methods. In this example, the only
-definitions that will be considered are those which are defined in the
-top level of their context, e.g., a function defined by a \keyword{def}
-statement at column zero of a module, but not a function defined
-within a branch of an \code{if} ... \code{else} construct, though
-there are some good reasons for doing so in some situations. Nesting
-of definitions will be handled by the code developed in the example.
-
-To construct the upper-level extraction methods, we need to know what
-the parse tree structure looks like and how much of it we actually
-need to be concerned about. Python uses a moderately deep parse tree
-so there are a large number of intermediate nodes. It is important to
-read and understand the formal grammar used by Python. This is
-specified in the file \file{Grammar/Grammar} in the distribution.
-Consider the simplest case of interest when searching for docstrings:
-a module consisting of a docstring and nothing else. (See file
-\file{docstring.py}.)
-
-\begin{verbatim}
-"""Some documentation.
-"""
-\end{verbatim}
-
-Using the interpreter to take a look at the parse tree, we find a
-bewildering mass of numbers and parentheses, with the documentation
-buried deep in nested tuples.
-
-\begin{verbatim}
->>> import parser
->>> import pprint
->>> ast = parser.suite(open('docstring.py').read())
->>> tup = parser.ast2tuple(ast)
->>> pprint.pprint(tup)
-(257,
- (264,
- (265,
- (266,
- (267,
- (307,
- (287,
- (288,
- (289,
- (290,
- (292,
- (293,
- (294,
- (295,
- (296,
- (297,
- (298,
- (299,
- (300, (3, '"""Some documentation.\012"""'))))))))))))))))),
- (4, ''))),
- (4, ''),
- (0, ''))
-\end{verbatim}
-
-The numbers at the first element of each node in the tree are the node
-types; they map directly to terminal and non-terminal symbols in the
-grammar. Unfortunately, they are represented as integers in the
-internal representation, and the Python structures generated do not
-change that. However, the \module{symbol} and \module{token} modules
-provide symbolic names for the node types and dictionaries which map
-from the integers to the symbolic names for the node types.
-
-In the output presented above, the outermost tuple contains four
-elements: the integer \code{257} and three additional tuples. Node
-type \code{257} has the symbolic name \constant{file_input}. Each of
-these inner tuples contains an integer as the first element; these
-integers, \code{264}, \code{4}, and \code{0}, represent the node types
-\constant{stmt}, \constant{NEWLINE}, and \constant{ENDMARKER},
-respectively.
-Note that these values may change depending on the version of Python
-you are using; consult \file{symbol.py} and \file{token.py} for
-details of the mapping. It should be fairly clear that the outermost
-node is related primarily to the input source rather than the contents
-of the file, and may be disregarded for the moment. The \constant{stmt}
-node is much more interesting. In particular, all docstrings are
-found in subtrees which are formed exactly as this node is formed,
-with the only difference being the string itself. The association
-between the docstring in a similar tree and the defined entity (class,
-function, or module) which it describes is given by the position of
-the docstring subtree within the tree defining the described
-structure.
-
-By replacing the actual docstring with something to signify a variable
-component of the tree, we allow a simple pattern matching approach to
-check any given subtree for equivelence to the general pattern for
-docstrings. Since the example demonstrates information extraction, we
-can safely require that the tree be in tuple form rather than list
-form, allowing a simple variable representation to be
-\code{['variable_name']}. A simple recursive function can implement
-the pattern matching, returning a boolean and a dictionary of variable
-name to value mappings. (See file \file{example.py}.)
-
-\begin{verbatim}
-from types import ListType, TupleType
-
-def match(pattern, data, vars=None):
- if vars is None:
- vars = {}
- if type(pattern) is ListType:
- vars[pattern[0]] = data
- return 1, vars
- if type(pattern) is not TupleType:
- return (pattern == data), vars
- if len(data) != len(pattern):
- return 0, vars
- for pattern, data in map(None, pattern, data):
- same, vars = match(pattern, data, vars)
- if not same:
- break
- return same, vars
-\end{verbatim}
-
-Using this simple representation for syntactic variables and the symbolic
-node types, the pattern for the candidate docstring subtrees becomes
-fairly readable. (See file \file{example.py}.)
-
-\begin{verbatim}
-import symbol
-import token
-
-DOCSTRING_STMT_PATTERN = (
- symbol.stmt,
- (symbol.simple_stmt,
- (symbol.small_stmt,
- (symbol.expr_stmt,
- (symbol.testlist,
- (symbol.test,
- (symbol.and_test,
- (symbol.not_test,
- (symbol.comparison,
- (symbol.expr,
- (symbol.xor_expr,
- (symbol.and_expr,
- (symbol.shift_expr,
- (symbol.arith_expr,
- (symbol.term,
- (symbol.factor,
- (symbol.power,
- (symbol.atom,
- (token.STRING, ['docstring'])
- )))))))))))))))),
- (token.NEWLINE, '')
- ))
-\end{verbatim}
-
-Using the \function{match()} function with this pattern, extracting the
-module docstring from the parse tree created previously is easy:
-
-\begin{verbatim}
->>> found, vars = match(DOCSTRING_STMT_PATTERN, tup[1])
->>> found
-1
->>> vars
-{'docstring': '"""Some documentation.\012"""'}
-\end{verbatim}
-
-Once specific data can be extracted from a location where it is
-expected, the question of where information can be expected
-needs to be answered. When dealing with docstrings, the answer is
-fairly simple: the docstring is the first \constant{stmt} node in a code
-block (\constant{file_input} or \constant{suite} node types). A module
-consists of a single \constant{file_input} node, and class and function
-definitions each contain exactly one \constant{suite} node. Classes and
-functions are readily identified as subtrees of code block nodes which
-start with \code{(stmt, (compound_stmt, (classdef, ...} or
-\code{(stmt, (compound_stmt, (funcdef, ...}. Note that these subtrees
-cannot be matched by \function{match()} since it does not support multiple
-sibling nodes to match without regard to number. A more elaborate
-matching function could be used to overcome this limitation, but this
-is sufficient for the example.
-
-Given the ability to determine whether a statement might be a
-docstring and extract the actual string from the statement, some work
-needs to be performed to walk the parse tree for an entire module and
-extract information about the names defined in each context of the
-module and associate any docstrings with the names. The code to
-perform this work is not complicated, but bears some explanation.
-
-The public interface to the classes is straightforward and should
-probably be somewhat more flexible. Each ``major'' block of the
-module is described by an object providing several methods for inquiry
-and a constructor which accepts at least the subtree of the complete
-parse tree which it represents. The \class{ModuleInfo} constructor
-accepts an optional \var{name} parameter since it cannot
-otherwise determine the name of the module.
-
-The public classes include \class{ClassInfo}, \class{FunctionInfo},
-and \class{ModuleInfo}. All objects provide the
-methods \method{get_name()}, \method{get_docstring()},
-\method{get_class_names()}, and \method{get_class_info()}. The
-\class{ClassInfo} objects support \method{get_method_names()} and
-\method{get_method_info()} while the other classes provide
-\method{get_function_names()} and \method{get_function_info()}.
-
-Within each of the forms of code block that the public classes
-represent, most of the required information is in the same form and is
-accessed in the same way, with classes having the distinction that
-functions defined at the top level are referred to as ``methods.''
-Since the difference in nomenclature reflects a real semantic
-distinction from functions defined outside of a class, the
-implementation needs to maintain the distinction.
-Hence, most of the functionality of the public classes can be
-implemented in a common base class, \class{SuiteInfoBase}, with the
-accessors for function and method information provided elsewhere.
-Note that there is only one class which represents function and method
-information; this parallels the use of the \keyword{def} statement to
-define both types of elements.
-
-Most of the accessor functions are declared in \class{SuiteInfoBase}
-and do not need to be overriden by subclasses. More importantly, the
-extraction of most information from a parse tree is handled through a
-method called by the \class{SuiteInfoBase} constructor. The example
-code for most of the classes is clear when read alongside the formal
-grammar, but the method which recursively creates new information
-objects requires further examination. Here is the relevant part of
-the \class{SuiteInfoBase} definition from \file{example.py}:
-
-\begin{verbatim}
-class SuiteInfoBase:
- _docstring = ''
- _name = ''
-
- def __init__(self, tree = None):
- self._class_info = {}
- self._function_info = {}
- if tree:
- self._extract_info(tree)
-
- def _extract_info(self, tree):
- # extract docstring
- if len(tree) == 2:
- found, vars = match(DOCSTRING_STMT_PATTERN[1], tree[1])
- else:
- found, vars = match(DOCSTRING_STMT_PATTERN, tree[3])
- if found:
- self._docstring = eval(vars['docstring'])
- # discover inner definitions
- for node in tree[1:]:
- found, vars = match(COMPOUND_STMT_PATTERN, node)
- if found:
- cstmt = vars['compound']
- if cstmt[0] == symbol.funcdef:
- name = cstmt[2][1]
- self._function_info[name] = FunctionInfo(cstmt)
- elif cstmt[0] == symbol.classdef:
- name = cstmt[2][1]
- self._class_info[name] = ClassInfo(cstmt)
-\end{verbatim}
-
-After initializing some internal state, the constructor calls the
-\method{_extract_info()} method. This method performs the bulk of the
-information extraction which takes place in the entire example. The
-extraction has two distinct phases: the location of the docstring for
-the parse tree passed in, and the discovery of additional definitions
-within the code block represented by the parse tree.
-
-The initial \keyword{if} test determines whether the nested suite is of
-the ``short form'' or the ``long form.'' The short form is used when
-the code block is on the same line as the definition of the code
-block, as in
-
-\begin{verbatim}
-def square(x): "Square an argument."; return x ** 2
-\end{verbatim}
-
-while the long form uses an indented block and allows nested
-definitions:
-
-\begin{verbatim}
-def make_power(exp):
- "Make a function that raises an argument to the exponent `exp'."
- def raiser(x, y=exp):
- return x ** y
- return raiser
-\end{verbatim}
-
-When the short form is used, the code block may contain a docstring as
-the first, and possibly only, \constant{small_stmt} element. The
-extraction of such a docstring is slightly different and requires only
-a portion of the complete pattern used in the more common case. As
-implemented, the docstring will only be found if there is only
-one \constant{small_stmt} node in the \constant{simple_stmt} node.
-Since most functions and methods which use the short form do not
-provide a docstring, this may be considered sufficient. The
-extraction of the docstring proceeds using the \function{match()} function
-as described above, and the value of the docstring is stored as an
-attribute of the \class{SuiteInfoBase} object.
-
-After docstring extraction, a simple definition discovery
-algorithm operates on the \constant{stmt} nodes of the
-\constant{suite} node. The special case of the short form is not
-tested; since there are no \constant{stmt} nodes in the short form,
-the algorithm will silently skip the single \constant{simple_stmt}
-node and correctly not discover any nested definitions.
-
-Each statement in the code block is categorized as
-a class definition, function or method definition, or
-something else. For the definition statements, the name of the
-element defined is extracted and a representation object
-appropriate to the definition is created with the defining subtree
-passed as an argument to the constructor. The repesentation objects
-are stored in instance variables and may be retrieved by name using
-the appropriate accessor methods.
-
-The public classes provide any accessors required which are more
-specific than those provided by the \class{SuiteInfoBase} class, but
-the real extraction algorithm remains common to all forms of code
-blocks. A high-level function can be used to extract the complete set
-of information from a source file. (See file \file{example.py}.)
-
-\begin{verbatim}
-def get_docs(fileName):
- source = open(fileName).read()
- import os
- basename = os.path.basename(os.path.splitext(fileName)[0])
- import parser
- ast = parser.suite(source)
- tup = parser.ast2tuple(ast)
- return ModuleInfo(tup, basename)
-\end{verbatim}
-
-This provides an easy-to-use interface to the documentation of a
-module. If information is required which is not extracted by the code
-of this example, the code may be extended at clearly defined points to
-provide additional capabilities.
-
-\begin{seealso}
-
-\seemodule{symbol}{useful constants representing internal nodes of the
-parse tree}
-
-\seemodule{token}{useful constants representing leaf nodes of the
-parse tree and functions for testing node values}
-
-\end{seealso}
diff --git a/Doc/libpdb.tex b/Doc/libpdb.tex
deleted file mode 100644
index 50a841e..0000000
--- a/Doc/libpdb.tex
+++ /dev/null
@@ -1,298 +0,0 @@
-\chapter{The Python Debugger}
-\label{module-pdb}
-\stmodindex{pdb}
-\index{debugging}
-
-
-The module \code{pdb} defines an interactive source code debugger for
-Python programs. It supports setting
-(conditional) breakpoints and single stepping
-at the source line level, inspection of stack frames, source code
-listing, and evaluation of arbitrary Python code in the context of any
-stack frame. It also supports post-mortem debugging and can be called
-under program control.
-
-The debugger is extensible --- it is actually defined as a class
-\class{Pdb}.
-\withsubitem{(class in pdb)}{\ttindex{Pdb}}
-This is currently undocumented but easily understood by reading the
-source. The extension interface uses the (also undocumented) modules
-\module{bdb}\refstmodindex{bdb} and \module{cmd}\refstmodindex{cmd}.
-
-A primitive windowing version of the debugger also exists --- this is
-module \module{wdb}, which requires \module{stdwin} (see the chapter
-on STDWIN specific modules).
-\refbimodindex{stdwin}
-\refstmodindex{wdb}
-
-The debugger's prompt is \samp{(Pdb) }.
-Typical usage to run a program under control of the debugger is:
-
-\begin{verbatim}
->>> import pdb
->>> import mymodule
->>> pdb.run('mymodule.test()')
-> <string>(0)?()
-(Pdb) continue
-> <string>(1)?()
-(Pdb) continue
-NameError: 'spam'
-> <string>(1)?()
-(Pdb)
-\end{verbatim}
-
-\file{pdb.py} can also be invoked as
-a script to debug other scripts. For example:
-
-\begin{verbatim}
-python /usr/local/lib/python1.5/pdb.py myscript.py
-\end{verbatim}
-
-Typical usage to inspect a crashed program is:
-
-\begin{verbatim}
->>> import pdb
->>> import mymodule
->>> mymodule.test()
-Traceback (innermost last):
- File "<stdin>", line 1, in ?
- File "./mymodule.py", line 4, in test
- test2()
- File "./mymodule.py", line 3, in test2
- print spam
-NameError: spam
->>> pdb.pm()
-> ./mymodule.py(3)test2()
--> print spam
-(Pdb)
-\end{verbatim}
-
-The module defines the following functions; each enters the debugger
-in a slightly different way:
-
-\begin{funcdesc}{run}{statement\optional{, globals\optional{, locals}}}
-Execute the \var{statement} (given as a string) under debugger
-control. The debugger prompt appears before any code is executed; you
-can set breakpoints and type \code{continue}, or you can step through
-the statement using \code{step} or \code{next} (all these commands are
-explained below). The optional \var{globals} and \var{locals}
-arguments specify the environment in which the code is executed; by
-default the dictionary of the module \code{__main__} is used. (See
-the explanation of the \code{exec} statement or the \code{eval()}
-built-in function.)
-\end{funcdesc}
-
-\begin{funcdesc}{runeval}{expression\optional{, globals\optional{, locals}}}
-Evaluate the \var{expression} (given as a a string) under debugger
-control. When \code{runeval()} returns, it returns the value of the
-expression. Otherwise this function is similar to
-\code{run()}.
-\end{funcdesc}
-
-\begin{funcdesc}{runcall}{function\optional{, argument, ...}}
-Call the \var{function} (a function or method object, not a string)
-with the given arguments. When \code{runcall()} returns, it returns
-whatever the function call returned. The debugger prompt appears as
-soon as the function is entered.
-\end{funcdesc}
-
-\begin{funcdesc}{set_trace}{}
-Enter the debugger at the calling stack frame. This is useful to
-hard-code a breakpoint at a given point in a program, even if the code
-is not otherwise being debugged (e.g. when an assertion fails).
-\end{funcdesc}
-
-\begin{funcdesc}{post_mortem}{traceback}
-Enter post-mortem debugging of the given \var{traceback} object.
-\end{funcdesc}
-
-\begin{funcdesc}{pm}{}
-Enter post-mortem debugging of the traceback found in
-\code{sys.last_traceback}.
-\end{funcdesc}
-
-\section{Debugger Commands}
-
-The debugger recognizes the following commands. Most commands can be
-abbreviated to one or two letters; e.g. ``\code{h(elp)}'' means that
-either ``\code{h}'' or ``\code{help}'' can be used to enter the help
-command (but not ``\code{he}'' or ``\code{hel}'', nor ``\code{H}'' or
-``\code{Help} or ``\code{HELP}''). Arguments to commands must be
-separated by whitespace (spaces or tabs). Optional arguments are
-enclosed in square brackets (``\code{[]}'') in the command syntax; the
-square brackets must not be typed. Alternatives in the command syntax
-are separated by a vertical bar (``\code{|}'').
-
-Entering a blank line repeats the last command entered. Exception: if
-the last command was a ``\code{list}'' command, the next 11 lines are
-listed.
-
-Commands that the debugger doesn't recognize are assumed to be Python
-statements and are executed in the context of the program being
-debugged. Python statements can also be prefixed with an exclamation
-point (``\code{!}''). This is a powerful way to inspect the program
-being debugged; it is even possible to change a variable or call a
-function. When an
-exception occurs in such a statement, the exception name is printed
-but the debugger's state is not changed.
-
-\begin{description}
-
-\item[h(elp) \optional{\var{command}}]
-
-Without argument, print the list of available commands. With a
-\var{command} as argument, print help about that command. \samp{help
-pdb} displays the full documentation file; if the environment variable
-\code{PAGER} is defined, the file is piped through that command
-instead. Since the \var{command} argument must be an identifier,
-\samp{help exec} must be entered to get help on the \samp{!} command.
-
-\item[w(here)]
-
-Print a stack trace, with the most recent frame at the bottom. An
-arrow indicates the current frame, which determines the context of
-most commands.
-
-\item[d(own)]
-
-Move the current frame one level down in the stack trace
-(to an older frame).
-
-\item[u(p)]
-
-Move the current frame one level up in the stack trace
-(to a newer frame).
-
-\item[b(reak) \optional{\var{lineno}\code{\Large|}\var{function}%
- \optional{, \code{'}\var{condition}\code{'}}}]
-
-With a \var{lineno} argument, set a break there in the current
-file. With a \var{function} argument, set a break at the entry of
-that function. Without argument, list all breaks.
-If a second argument is present, it is a string (included in string
-quotes!) specifying an expression which must evaluate to true before
-the breakpoint is honored.
-
-\item[cl(ear) \optional{\var{lineno}}]
-
-With a \var{lineno} argument, clear that break in the current file.
-Without argument, clear all breaks (but first ask confirmation).
-
-\item[s(tep)]
-
-Execute the current line, stop at the first possible occasion
-(either in a function that is called or on the next line in the
-current function).
-
-\item[n(ext)]
-
-Continue execution until the next line in the current function
-is reached or it returns. (The difference between \code{next} and
-\code{step} is that \code{step} stops inside a called function, while
-\code{next} executes called functions at (nearly) full speed, only
-stopping at the next line in the current function.)
-
-\item[r(eturn)]
-
-Continue execution until the current function returns.
-
-\item[c(ont(inue))]
-
-Continue execution, only stop when a breakpoint is encountered.
-
-\item[l(ist) \optional{\var{first\optional{, last}}}]
-
-List source code for the current file. Without arguments, list 11
-lines around the current line or continue the previous listing. With
-one argument, list 11 lines around at that line. With two arguments,
-list the given range; if the second argument is less than the first,
-it is interpreted as a count.
-
-\item[a(rgs)]
-
-Print the argument list of the current function.
-
-\item[p \var{expression}]
-
-Evaluate the \var{expression} in the current context and print its
-value. (Note: \code{print} can also be used, but is not a debugger
-command --- this executes the Python \code{print} statement.)
-
-\item[\optional{!}\var{statement}]
-
-Execute the (one-line) \var{statement} in the context of
-the current stack frame.
-The exclamation point can be omitted unless the first word
-of the statement resembles a debugger command.
-To set a global variable, you can prefix the assignment
-command with a ``\code{global}'' command on the same line, e.g.:
-
-\begin{verbatim}
-(Pdb) global list_options; list_options = ['-l']
-(Pdb)
-\end{verbatim}
-
-\item[q(uit)]
-
-Quit from the debugger.
-The program being executed is aborted.
-
-\end{description}
-
-\section{How It Works}
-
-Some changes were made to the interpreter:
-
-\begin{itemize}
-\item \code{sys.settrace(\var{func})} sets the global trace function
-\item there can also a local trace function (see later)
-\end{itemize}
-
-Trace functions have three arguments: \var{frame}, \var{event}, and
-\var{arg}. \var{frame} is the current stack frame. \var{event} is a
-string: \code{'call'}, \code{'line'}, \code{'return'} or
-\code{'exception'}. \var{arg} depends on the event type.
-
-The global trace function is invoked (with \var{event} set to
-\code{'call'}) whenever a new local scope is entered; it should return
-a reference to the local trace function to be used that scope, or
-\code{None} if the scope shouldn't be traced.
-
-The local trace function should return a reference to itself (or to
-another function for further tracing in that scope), or \code{None} to
-turn off tracing in that scope.
-
-Instance methods are accepted (and very useful!) as trace functions.
-
-The events have the following meaning:
-
-\begin{description}
-
-\item[\code{'call'}]
-A function is called (or some other code block entered). The global
-trace function is called; arg is the argument list to the function;
-the return value specifies the local trace function.
-
-\item[\code{'line'}]
-The interpreter is about to execute a new line of code (sometimes
-multiple line events on one line exist). The local trace function is
-called; arg in None; the return value specifies the new local trace
-function.
-
-\item[\code{'return'}]
-A function (or other code block) is about to return. The local trace
-function is called; arg is the value that will be returned. The trace
-function's return value is ignored.
-
-\item[\code{'exception'}]
-An exception has occurred. The local trace function is called; arg is
-a triple (exception, value, traceback); the return value specifies the
-new local trace function
-
-\end{description}
-
-Note that as an exception is propagated down the chain of callers, an
-\code{'exception'} event is generated at each level.
-
-For more information on code and frame objects, refer to the
-\emph{Python Reference Manual}.
diff --git a/Doc/libpickle.tex b/Doc/libpickle.tex
deleted file mode 100644
index edd496f..0000000
--- a/Doc/libpickle.tex
+++ /dev/null
@@ -1,290 +0,0 @@
-\section{Standard Module \module{pickle}}
-\label{module-pickle}
-\stmodindex{pickle}
-\index{persistency}
-\indexii{persistent}{objects}
-\indexii{serializing}{objects}
-\indexii{marshalling}{objects}
-\indexii{flattening}{objects}
-\indexii{pickling}{objects}
-
-
-The \module{pickle} module implements a basic but powerful algorithm for
-``pickling'' (a.k.a.\ serializing, marshalling or flattening) nearly
-arbitrary Python objects. This is the act of converting objects to a
-stream of bytes (and back: ``unpickling'').
-This is a more primitive notion than
-persistency --- although \module{pickle} reads and writes file objects,
-it does not handle the issue of naming persistent objects, nor the
-(even more complicated) area of concurrent access to persistent
-objects. The \module{pickle} module can transform a complex object into
-a byte stream and it can transform the byte stream into an object with
-the same internal structure. The most obvious thing to do with these
-byte streams is to write them onto a file, but it is also conceivable
-to send them across a network or store them in a database. The module
-\module{shelve} provides a simple interface to pickle and unpickle
-objects on ``dbm''-style database files.
-\refstmodindex{shelve}
-
-\strong{Note:} The \module{pickle} module is rather slow. A
-reimplementation of the same algorithm in \C{}, which is up to 1000 times
-faster, is available as the \module{cPickle}\refbimodindex{cPickle}
-module. This has the same interface except that \code{Pickler} and
-\code{Unpickler} are factory functions, not classes (so they cannot be
-used as base classes for inheritance).
-
-Unlike the built-in module \module{marshal}, \module{pickle} handles
-the following correctly:
-\refbimodindex{marshal}
-
-\begin{itemize}
-
-\item recursive objects (objects containing references to themselves)
-
-\item object sharing (references to the same object in different places)
-
-\item user-defined classes and their instances
-
-\end{itemize}
-
-The data format used by \module{pickle} is Python-specific. This has
-the advantage that there are no restrictions imposed by external
-standards such as XDR%
-\index{XDR}
-\index{External Data Representation}
-(which can't represent pointer sharing); however
-it means that non-Python programs may not be able to reconstruct
-pickled Python objects.
-
-By default, the \module{pickle} data format uses a printable \ASCII{}
-representation. This is slightly more voluminous than a binary
-representation. The big advantage of using printable \ASCII{} (and of
-some other characteristics of \module{pickle}'s representation) is that
-for debugging or recovery purposes it is possible for a human to read
-the pickled file with a standard text editor.
-
-A binary format, which is slightly more efficient, can be chosen by
-specifying a nonzero (true) value for the \var{bin} argument to the
-\class{Pickler} constructor or the \function{dump()} and \function{dumps()}
-functions. The binary format is not the default because of backwards
-compatibility with the Python 1.4 pickle module. In a future version,
-the default may change to binary.
-
-The \module{pickle} module doesn't handle code objects, which the
-\module{marshal} module does. I suppose \module{pickle} could, and maybe
-it should, but there's probably no great need for it right now (as
-long as \module{marshal} continues to be used for reading and writing
-code objects), and at least this avoids the possibility of smuggling
-Trojan horses into a program.
-\refbimodindex{marshal}
-
-For the benefit of persistency modules written using \module{pickle}, it
-supports the notion of a reference to an object outside the pickled
-data stream. Such objects are referenced by a name, which is an
-arbitrary string of printable \ASCII{} characters. The resolution of
-such names is not defined by the \module{pickle} module --- the
-persistent object module will have to implement a method
-\method{persistent_load()}. To write references to persistent objects,
-the persistent module must define a method \method{persistent_id()} which
-returns either \code{None} or the persistent ID of the object.
-
-There are some restrictions on the pickling of class instances.
-
-First of all, the class must be defined at the top level in a module.
-Furthermore, all its instance variables must be picklable.
-
-\setindexsubitem{(pickle protocol)}
-
-When a pickled class instance is unpickled, its \method{__init__()} method
-is normally \emph{not} invoked. \strong{Note:} This is a deviation
-from previous versions of this module; the change was introduced in
-Python 1.5b2. The reason for the change is that in many cases it is
-desirable to have a constructor that requires arguments; it is a
-(minor) nuisance to have to provide a \method{__getinitargs__()} method.
-
-If it is desirable that the \method{__init__()} method be called on
-unpickling, a class can define a method \method{__getinitargs__()},
-which should return a \emph{tuple} containing the arguments to be
-passed to the class constructor (\method{__init__()}). This method is
-called at pickle time; the tuple it returns is incorporated in the
-pickle for the instance.
-\ttindex{__getinitargs__()}
-\ttindex{__init__()}
-
-Classes can further influence how their instances are pickled --- if the class
-defines the method \method{__getstate__()}, it is called and the return
-state is pickled as the contents for the instance, and if the class
-defines the method \method{__setstate__()}, it is called with the
-unpickled state. (Note that these methods can also be used to
-implement copying class instances.) If there is no
-\method{__getstate__()} method, the instance's \member{__dict__} is
-pickled. If there is no \method{__setstate__()} method, the pickled
-object must be a dictionary and its items are assigned to the new
-instance's dictionary. (If a class defines both \method{__getstate__()}
-and \method{__setstate__()}, the state object needn't be a dictionary
---- these methods can do what they want.) This protocol is also used
-by the shallow and deep copying operations defined in the \module{copy}
-module.\refstmodindex{copy}
-\ttindex{__getstate__()}
-\ttindex{__setstate__()}
-\ttindex{__dict__}
-
-Note that when class instances are pickled, their class's code and
-data are not pickled along with them. Only the instance data are
-pickled. This is done on purpose, so you can fix bugs in a class or
-add methods and still load objects that were created with an earlier
-version of the class. If you plan to have long-lived objects that
-will see many versions of a class, it may be worthwhile to put a version
-number in the objects so that suitable conversions can be made by the
-class's \method{__setstate__()} method.
-
-When a class itself is pickled, only its name is pickled --- the class
-definition is not pickled, but re-imported by the unpickling process.
-Therefore, the restriction that the class must be defined at the top
-level in a module applies to pickled classes as well.
-
-\setindexsubitem{(in module pickle)}
-
-The interface can be summarized as follows.
-
-To pickle an object \code{x} onto a file \code{f}, open for writing:
-
-\begin{verbatim}
-p = pickle.Pickler(f)
-p.dump(x)
-\end{verbatim}
-
-A shorthand for this is:
-
-\begin{verbatim}
-pickle.dump(x, f)
-\end{verbatim}
-
-To unpickle an object \code{x} from a file \code{f}, open for reading:
-
-\begin{verbatim}
-u = pickle.Unpickler(f)
-x = u.load()
-\end{verbatim}
-
-A shorthand is:
-
-\begin{verbatim}
-x = pickle.load(f)
-\end{verbatim}
-
-The \class{Pickler} class only calls the method \code{f.write()} with a
-string argument. The \class{Unpickler} calls the methods \code{f.read()}
-(with an integer argument) and \code{f.readline()} (without argument),
-both returning a string. It is explicitly allowed to pass non-file
-objects here, as long as they have the right methods.
-\ttindex{Unpickler}
-\ttindex{Pickler}
-
-The constructor for the \class{Pickler} class has an optional second
-argument, \var{bin}. If this is present and nonzero, the binary
-pickle format is used; if it is zero or absent, the (less efficient,
-but backwards compatible) text pickle format is used. The
-\class{Unpickler} class does not have an argument to distinguish
-between binary and text pickle formats; it accepts either format.
-
-The following types can be pickled:
-\begin{itemize}
-
-\item \code{None}
-
-\item integers, long integers, floating point numbers
-
-\item strings
-
-\item tuples, lists and dictionaries containing only picklable objects
-
-\item classes that are defined at the top level in a module
-
-\item instances of such classes whose \member{__dict__} or
-\method{__setstate__()} is picklable
-
-\end{itemize}
-
-Attempts to pickle unpicklable objects will raise the
-\exception{PicklingError} exception; when this happens, an unspecified
-number of bytes may have been written to the file.
-
-It is possible to make multiple calls to the \method{dump()} method of
-the same \class{Pickler} instance. These must then be matched to the
-same number of calls to the \method{load()} method of the
-corresponding \class{Unpickler} instance. If the same object is
-pickled by multiple \method{dump()} calls, the \method{load()} will all
-yield references to the same object. \emph{Warning}: this is intended
-for pickling multiple objects without intervening modifications to the
-objects or their parts. If you modify an object and then pickle it
-again using the same \class{Pickler} instance, the object is not
-pickled again --- a reference to it is pickled and the
-\class{Unpickler} will return the old value, not the modified one.
-(There are two problems here: (a) detecting changes, and (b)
-marshalling a minimal set of changes. I have no answers. Garbage
-Collection may also become a problem here.)
-
-Apart from the \class{Pickler} and \class{Unpickler} classes, the
-module defines the following functions, and an exception:
-
-\begin{funcdesc}{dump}{object, file\optional{, bin}}
-Write a pickled representation of \var{obect} to the open file object
-\var{file}. This is equivalent to
-\samp{Pickler(\var{file}, \var{bin}).dump(\var{object})}.
-If the optional \var{bin} argument is present and nonzero, the binary
-pickle format is used; if it is zero or absent, the (less efficient)
-text pickle format is used.
-\end{funcdesc}
-
-\begin{funcdesc}{load}{file}
-Read a pickled object from the open file object \var{file}. This is
-equivalent to \samp{Unpickler(\var{file}).load()}.
-\end{funcdesc}
-
-\begin{funcdesc}{dumps}{object\optional{, bin}}
-Return the pickled representation of the object as a string, instead
-of writing it to a file. If the optional \var{bin} argument is
-present and nonzero, the binary pickle format is used; if it is zero
-or absent, the (less efficient) text pickle format is used.
-\end{funcdesc}
-
-\begin{funcdesc}{loads}{string}
-Read a pickled object from a string instead of a file. Characters in
-the string past the pickled object's representation are ignored.
-\end{funcdesc}
-
-\begin{excdesc}{PicklingError}
-This exception is raised when an unpicklable object is passed to
-\code{Pickler.dump()}.
-\end{excdesc}
-
-
-\begin{seealso}
-\seemodule[copyreg]{copy_reg}{pickle interface constructor
-registration}
-
-\seemodule{shelve}{indexed databases of objects; uses \module{pickle}}
-
-\seemodule{copy}{shallow and deep object copying}
-
-\seemodule{marshal}{high-performance serialization of built-in types}
-\end{seealso}
-
-
-\section{Built-in Module \module{cPickle}}
-\bimodindex{cPickle}
-\label{module-cPickle}
-
-% This section was written by Fred L. Drake, Jr. <fdrake@acm.org>
-
-The \module{cPickle} module provides a similar interface and identical
-functionality as the \module{pickle} module, but can be up to 1000
-times faster since it is implemented in \C{}. The only other
-important difference to note is that \function{Pickler()} and
-\function{Unpickler()} are functions and not classes, and so cannot be
-subclassed. This should not be an issue in most cases.
-
-The format of the pickle data is identical to that produced using the
-\module{pickle} module, so it is possible to use \module{pickle} and
-\module{cPickle} interchangably with existing pickles.
diff --git a/Doc/libpopen2.tex b/Doc/libpopen2.tex
deleted file mode 100644
index 9e8a0ca..0000000
--- a/Doc/libpopen2.tex
+++ /dev/null
@@ -1,71 +0,0 @@
-% This section was contributed by Drew Csillag
-% <drew_csillag@geocities.com>, with some re-organization by Fred L.
-% Drake, Jr. <fdrake@acm.org>.
-
-\section{Standard Module \module{popen2}}
-\label{module-popen2}
-\stmodindex{popen2}
-
-This module allows you to spawn processes and connect their
-input/output/error pipes and obtain their return codes.
-
-The primary interface offered by this module is a pair of factory
-functions:
-
-\begin{funcdesc}{popen2}{cmd\optional{, bufsize}}
-Executes \var{cmd} as a sub-process. If \var{bufsize} is specified,
-it specifies the buffer size for the I/O pipes. Returns
-\code{(\var{child_stdout}, \var{child_stdin})}.
-\end{funcdesc}
-
-\begin{funcdesc}{popen2}{cmd\optional{, bufsize}}
-Executes \var{cmd} as a sub-process. If \var{bufsize} is specified,
-it specifies the buffer size for the I/O pipes. Returns
-\code{(\var{child_stdout}, \var{child_stdin}, \var{child_stderr})}.
-\end{funcdesc}
-
-The class defining the objects returned by the factory functions is
-also available:
-
-\begin{classdesc}{Popen3}{cmd\optional{, capturestderr\optional{, bufsize}}}
-This class represents a child process. Normally, \class{Popen3}
-instances are created using the factory functions described above.
-
-If not using one off the helper functions to create \class{Popen3}
-objects, the parameter \var{cmd} is the shell command to execute in a
-sub-process. The \var{capturestderr} flag, if true, specifies that
-the object should capture standard error output of the child process.
-The default is false. If the \var{bufsize} parameter is specified, it
-specifies the size of the I/O buffers to/from the child process.
-\end{classdesc}
-
-
-\subsection{Popen3 Objects}
-\label{popen3-objects}
-
-Instances of the \class{Popen3} class have the following methods:
-
-\begin{methoddesc}{poll}{}
-Returns \code{-1} if child process hasn't completed yet, or its return
-code otherwise.
-\end{methoddesc}
-
-\begin{methoddesc}{wait}{}
-Waits for and returns the return code of the child process.
-\end{methoddesc}
-
-
-The following attributes of \class{Popen3} objects are also available:
-
-\begin{datadesc}{fromchild}
-A file object that provides output from the child process.
-\end{datadesc}
-
-\begin{datadesc}{tochild}
-A file object that provides input to the child process.
-\end{datadesc}
-
-\begin{datadesc}{childerr}
-Where the standard error from the child process goes is
-\var{capturestderr} was true for the constructor, or \code{None}.
-\end{datadesc}
diff --git a/Doc/libpoplib.tex b/Doc/libpoplib.tex
deleted file mode 100644
index 12882e9..0000000
--- a/Doc/libpoplib.tex
+++ /dev/null
@@ -1,131 +0,0 @@
-%By Andrew T. Csillag
-%Even though I put it into LaTeX, I cannot really claim that I wrote
-%it since I just stole most of it from the poplib.py source code and
-%the imaplib ``chapter''.
-
-\section{Standard Module \module{poplib}}
-\stmodindex{poplib}
-\label{module-poplib}
-\indexii{POP3}{protocol}
-
-This module defines a class, \class{POP3}, which encapsulates a
-connection to an POP3 server and implements protocol as defined in
-\rfc{1725}. The \class{POP3} class supports both the minmal and
-optional command sets.
-
-A single class is provided by the \module{poplib} module:
-
-\begin{classdesc}{POP3}{host\optional{, port}}
-This class implements the actual POP3 protocol. The connection is
-created when the instance is initialized.
-If \var{port} is omitted, the standard POP3 port (110) is used.
-\end{classdesc}
-
-One exception is defined as attributes of the \module{poplib} module:
-
-\begin{excdesc}{error_proto}
-Exception raised on any errors. The reason for the exception is
-passed to the constructor as a string.
-\end{excdesc}
-
-
-\subsection{POP3 Objects}
-\label{pop3-objects}
-
-All POP3 commands are represented by methods of the same name,
-in lower-case.
-
-Most commands return the response text sent by the server.
-
-An \class{POP3} instance has the following methods:
-
-
-\begin{methoddesc}{getwelcome}{}
-Returns the greeting string sent by the POP3 server.
-\end{methoddesc}
-
-
-\begin{methoddesc}{user}{username}
-Send user commad, response should indicate that a password is required.
-\end{methoddesc}
-
-\begin{methoddesc}{pass_}{password}
-Send password, response includes message count and mailbox size.
-Note: the mailbox on the server is locked until \method{quit()} is
-called.
-\end{methoddesc}
-
-\begin{methoddesc}{apop}{user, secret}
-Use the more secure APOP authentication to log into the POP3 server.
-\end{methoddesc}
-
-\begin{methoddesc}{rpop}{user}
-Use RPOP authentication (similar to UNIX r-commands) to log into POP3 server.
-\end{methoddesc}
-
-\begin{methoddesc}{stat}{}
-Get mailbox status. The result is a tuple of 2 integers:
-\code{(\var{message count}, \var{mailbox size})}.
-\end{methoddesc}
-
-\begin{methoddesc}{list}{\optional{which}}
-Request message list, result is in the form
-\code{['response', ['mesg_num octets', ...]]}. If \var{which} is
-set, it is the message to list.
-\end{methoddesc}
-
-\begin{methoddesc}{retr}{which}
-Retrieve whole message number \var{which}. Result is in form
-\code{['response', ['line', ...], octets]}.
-\end{methoddesc}
-
-\begin{methoddesc}{dele}{which}
-Delete message number \var{which}.
-\end{methoddesc}
-
-\begin{methoddesc}{rset}{}
-Remove any deletion marks for the mailbox.
-\end{methoddesc}
-
-\begin{methoddesc}{noop}{}
-Do nothing. Might be used as a keep-alive.
-\end{methoddesc}
-
-\begin{methoddesc}{quit}{}
-Signoff: commit changes, unlock mailbox, drop connection.
-\end{methoddesc}
-
-\begin{methoddesc}{top}{which, howmuch}
-Retrieves the message header plus \var{howmuch} lines of the message
-after the header of message number \var{which}. Result is in form
-\code{['response', ['line', ...], octets]}.
-\end{methoddesc}
-
-\begin{methoddesc}{uidl}{\optional{which}}
-Return message digest (unique id) list.
-If \var{which} is specified, result contains unique id for that
-message, otherwise result is list \code{['response',
-['mesgnum uid', ...], octets]}.
-\end{methoddesc}
-
-
-\subsection{POP3 Example}
-\label{pop3-example}
-
-Here is a minimal example (without error checking) that opens a
-mailbox and retrieves and prints all messages:
-
-\begin{verbatim}
-import getpass, poplib, string
-
-M = poplib.POP3('localhost')
-M.user(getpass.getuser())
-M.pass(getpass.getpass())
-numMessages = len(M.list()[1])
-for i in range(numMessages):
- for j in M.retr(i+1)[1]:
- sys.stdout.write(j)
-\end{verbatim}
-
-At the end of the module, there is a test section that contains a more
-extensive example of usage.
diff --git a/Doc/libposix.tex b/Doc/libposix.tex
deleted file mode 100644
index bccc283..0000000
--- a/Doc/libposix.tex
+++ /dev/null
@@ -1,509 +0,0 @@
-\section{Built-in Module \module{posix}}
-\label{module-posix}
-\bimodindex{posix}
-
-This module provides access to operating system functionality that is
-standardized by the \C{} Standard and the \POSIX{} standard (a thinly
-disguised \UNIX{} interface).
-
-\strong{Do not import this module directly.} Instead, import the
-module \module{os}, which provides a \emph{portable} version of this
-interface. On \UNIX{}, the \module{os} module provides a superset of
-the \module{posix} interface. On non-\UNIX{} operating systems the
-\module{posix} module is not available, but a subset is always
-available through the \module{os} interface. Once \module{os} is
-imported, there is \emph{no} performance penalty in using it instead
-of \module{posix}. In addition, \module{os} provides some additional
-functionality, such as automatically calling \function{putenv()}
-when an entry in \code{os.environ} is changed.
-\refstmodindex{os}
-
-The descriptions below are very terse; refer to the corresponding
-\UNIX{} manual (or \POSIX{} documentation) entry for more information.
-Arguments called \var{path} refer to a pathname given as a string.
-
-Errors are reported as exceptions; the usual exceptions are given
-for type errors, while errors reported by the system calls raise
-\exception{error}, described below.
-
-Module \module{posix} defines the following data items:
-
-\begin{datadesc}{environ}
-A dictionary representing the string environment at the time
-the interpreter was started.
-For example,
-\code{posix.environ['HOME']}
-is the pathname of your home directory, equivalent to
-\code{getenv("HOME")}
-in \C{}.
-
-Modifying this dictionary does not affect the string environment
-passed on by \function{execv()}, \function{popen()} or
-\function{system()}; if you need to change the environment, pass
-\code{environ} to \function{execve()} or add variable assignments and
-export statements to the command string for \function{system()} or
-\function{popen()}.
-
-\emph{However:} If you are using this module via the \module{os}
-module (as you should -- see the introduction above), \code{environ}
-is a a mapping object that behaves almost like a dictionary but
-invokes \function{putenv()} automatically called whenever an item is
-changed.
-\end{datadesc}
-
-\begin{excdesc}{error}
-This exception is raised when a \POSIX{} function returns a
-\POSIX{}-related error (e.g., not for illegal argument types). The
-accompanying value is a pair containing the numeric error code from
-\cdata{errno} and the corresponding string, as would be printed by the
-\C{} function \cfunction{perror()}. See the module
-\module{errno}\refbimodindex{errno}, which contains names for the
-error codes defined by the underlying operating system.
-
-When exceptions are classes, this exception carries two attributes,
-\member{errno} and \member{strerror}. The first holds the value of
-the \C{} \cdata{errno} variable, and the latter holds the
-corresponding error message from \cfunction{strerror()}.
-
-When exceptions are strings, the string for the exception is
-\code{'os.error'}; this reflects the more portable access to the
-exception through the \module{os} module.
-\end{excdesc}
-
-It defines the following functions and constants:
-
-\begin{funcdesc}{chdir}{path}
-Change the current working directory to \var{path}.
-\end{funcdesc}
-
-\begin{funcdesc}{chmod}{path, mode}
-Change the mode of \var{path} to the numeric \var{mode}.
-\end{funcdesc}
-
-\begin{funcdesc}{chown}{path, uid, gid}
-Change the owner and group id of \var{path} to the numeric \var{uid}
-and \var{gid}.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{close}{fd}
-Close file descriptor \var{fd}.
-
-Note: this function is intended for low-level I/O and must be applied
-to a file descriptor as returned by \function{open()} or
-\function{pipe()}. To close a ``file object'' returned by the
-built-in function \function{open()} or by \function{popen()} or
-\function{fdopen()}, use its \method{close()} method.
-\end{funcdesc}
-
-\begin{funcdesc}{dup}{fd}
-Return a duplicate of file descriptor \var{fd}.
-\end{funcdesc}
-
-\begin{funcdesc}{dup2}{fd, fd2}
-Duplicate file descriptor \var{fd} to \var{fd2}, closing the latter
-first if necessary.
-\end{funcdesc}
-
-\begin{funcdesc}{execv}{path, args}
-Execute the executable \var{path} with argument list \var{args},
-replacing the current process (i.e., the Python interpreter).
-The argument list may be a tuple or list of strings.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{execve}{path, args, env}
-Execute the executable \var{path} with argument list \var{args},
-and environment \var{env},
-replacing the current process (i.e., the Python interpreter).
-The argument list may be a tuple or list of strings.
-The environment must be a dictionary mapping strings to strings.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{_exit}{n}
-Exit to the system with status \var{n}, without calling cleanup
-handlers, flushing stdio buffers, etc.
-(Not on MS-DOS.)
-
-Note: the standard way to exit is \code{sys.exit(\var{n})}.
-\function{_exit()} should normally only be used in the child process
-after a \function{fork()}.
-\end{funcdesc}
-
-\begin{funcdesc}{fdopen}{fd\optional{, mode\optional{, bufsize}}}
-Return an open file object connected to the file descriptor \var{fd}.
-The \var{mode} and \var{bufsize} arguments have the same meaning as
-the corresponding arguments to the built-in \function{open()} function.
-\end{funcdesc}
-
-\begin{funcdesc}{fork}{}
-Fork a child process. Return \code{0} in the child, the child's
-process id in the parent.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{fstat}{fd}
-Return status for file descriptor \var{fd}, like \function{stat()}.
-\end{funcdesc}
-
-\begin{funcdesc}{ftruncate}{fd, length}
-Truncate the file corresponding to file descriptor \var{fd},
-so that it is at most \var{length} bytes in size.
-\end{funcdesc}
-
-\begin{funcdesc}{getcwd}{}
-Return a string representing the current working directory.
-\end{funcdesc}
-
-\begin{funcdesc}{getegid}{}
-Return the current process' effective group id.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{geteuid}{}
-Return the current process' effective user id.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{getgid}{}
-Return the current process' group id.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{getpgrp}{}
-Return the current process group id.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{getpid}{}
-Return the current process id.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{getppid}{}
-Return the parent's process id.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{getuid}{}
-Return the current process' user id.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{kill}{pid, sig}
-Kill the process \var{pid} with signal \var{sig}.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{link}{src, dst}
-Create a hard link pointing to \var{src} named \var{dst}.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{listdir}{path}
-Return a list containing the names of the entries in the directory.
-The list is in arbitrary order. It does not include the special
-entries \code{'.'} and \code{'..'} even if they are present in the
-directory.
-\end{funcdesc}
-
-\begin{funcdesc}{lseek}{fd, pos, how}
-Set the current position of file descriptor \var{fd} to position
-\var{pos}, modified by \var{how}: \code{0} to set the position
-relative to the beginning of the file; \code{1} to set it relative to
-the current position; \code{2} to set it relative to the end of the
-file.
-\end{funcdesc}
-
-\begin{funcdesc}{lstat}{path}
-Like \function{stat()}, but do not follow symbolic links. (On systems
-without symbolic links, this is identical to \function{stat()}.)
-\end{funcdesc}
-
-\begin{funcdesc}{mkfifo}{path\optional{, mode}}
-Create a FIFO (a \POSIX{} named pipe) named \var{path} with numeric mode
-\var{mode}. The default \var{mode} is \code{0666} (octal). The current
-umask value is first masked out from the mode.
-(Not on MS-DOS.)
-
-FIFOs are pipes that can be accessed like regular files. FIFOs exist
-until they are deleted (for example with \function{os.unlink()}).
-Generally, FIFOs are used as rendezvous between ``client'' and
-``server'' type processes: the server opens the FIFO for reading, and
-the client opens it for writing. Note that \function{mkfifo()}
-doesn't open the FIFO --- it just creates the rendezvous point.
-\end{funcdesc}
-
-\begin{funcdesc}{mkdir}{path\optional{, mode}}
-Create a directory named \var{path} with numeric mode \var{mode}.
-The default \var{mode} is \code{0777} (octal). On some systems,
-\var{mode} is ignored. Where it is used, the current umask value is
-first masked out.
-\end{funcdesc}
-
-\begin{funcdesc}{nice}{increment}
-Add \var{increment} to the process' ``niceness''. Return the new
-niceness. (Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{open}{file, flags\optional{, mode}}
-Open the file \var{file} and set various flags according to
-\var{flags} and possibly its mode according to \var{mode}.
-The default \var{mode} is \code{0777} (octal), and the current umask
-value is first masked out. Return the file descriptor for the newly
-opened file.
-
-For a description of the flag and mode values, see the \UNIX{} or \C{}
-run-time documentation; flag constants (like \constant{O_RDONLY} and
-\constant{O_WRONLY}) are defined in this module too (see below).
-
-Note: this function is intended for low-level I/O. For normal usage,
-use the built-in function \function{open()}, which returns a ``file
-object'' with \method{read()} and \method{write()} methods (and many
-more).
-\end{funcdesc}
-
-\begin{funcdesc}{pipe}{}
-Create a pipe. Return a pair of file descriptors \code{(\var{r},
-\var{w})} usable for reading and writing, respectively.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{plock}{op}
-Lock program segments into memory. The value of \var{op}
-(defined in \code{<sys/lock.h>}) determines which segments are locked.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{popen}{command\optional{, mode\optional{, bufsize}}}
-Open a pipe to or from \var{command}. The return value is an open
-file object connected to the pipe, which can be read or written
-depending on whether \var{mode} is \code{'r'} (default) or \code{'w'}.
-The \var{bufsize} argument has the same meaning as the corresponding
-argument to the built-in \function{open()} function. The exit status of
-the command (encoded in the format specified for \function{wait()}) is
-available as the return value of the \method{close()} method of the file
-object.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{putenv}{varname, value}
-\index{environment variables!setting}
-Set the environment variable named \var{varname} to the string
-\var{value}. Such changes to the environment affect subprocesses
-started with \function{os.system()}, \function{os.popen()} or
-\function{os.fork()} and \function{os.execv()}. (Not on all systems.)
-
-When \function{putenv()} is
-supported, assignments to items in \code{os.environ} are automatically
-translated into corresponding calls to \function{putenv()}; however,
-calls to \function{putenv()} don't update \code{os.environ}, so it is
-actually preferable to assign to items of \code{os.environ}.
-\end{funcdesc}
-
-\begin{funcdesc}{strerror}{code}
-Return the error message corresponding to the error code in \var{code}.
-\end{funcdesc}
-
-\begin{funcdesc}{read}{fd, n}
-Read at most \var{n} bytes from file descriptor \var{fd}.
-Return a string containing the bytes read.
-
-Note: this function is intended for low-level I/O and must be applied
-to a file descriptor as returned by \function{open()} or
-\function{pipe()}. To read a ``file object'' returned by the
-built-in function \function{open()} or by \function{popen()} or
-\function{fdopen()}, or \code{sys.stdin}, use its
-\method{read()} or \method{readline()} methods.
-\end{funcdesc}
-
-\begin{funcdesc}{readlink}{path}
-Return a string representing the path to which the symbolic link
-points. (On systems without symbolic links, this always raises
-\exception{error}.)
-\end{funcdesc}
-
-\begin{funcdesc}{remove}{path}
-Remove the file \var{path}. See \function{rmdir()} below to remove a
-directory. This is identical to the \function{unlink()} function
-documented below.
-\end{funcdesc}
-
-\begin{funcdesc}{rename}{src, dst}
-Rename the file or directory \var{src} to \var{dst}.
-\end{funcdesc}
-
-\begin{funcdesc}{rmdir}{path}
-Remove the directory \var{path}.
-\end{funcdesc}
-
-\begin{funcdesc}{setgid}{gid}
-Set the current process' group id.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{setpgrp}{}
-Calls the system call \cfunction{setpgrp()} or \cfunction{setpgrp(0,
-0)} depending on which version is implemented (if any). See the
-\UNIX{} manual for the semantics.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{setpgid}{pid, pgrp}
-Calls the system call \cfunction{setpgid()}. See the \UNIX{} manual
-for the semantics.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{setsid}{}
-Calls the system call \cfunction{setsid()}. See the \UNIX{} manual
-for the semantics.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{setuid}{uid}
-Set the current process' user id.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{stat}{path}
-Perform a \cfunction{stat()} system call on the given path. The
-return value is a tuple of at least 10 integers giving the most
-important (and portable) members of the \emph{stat} structure, in the
-order
-\code{st_mode},
-\code{st_ino},
-\code{st_dev},
-\code{st_nlink},
-\code{st_uid},
-\code{st_gid},
-\code{st_size},
-\code{st_atime},
-\code{st_mtime},
-\code{st_ctime}.
-More items may be added at the end by some implementations.
-(On MS-DOS, some items are filled with dummy values.)
-
-Note: The standard module \module{stat}\refstmodindex{stat} defines
-functions and constants that are useful for extracting information
-from a stat structure.
-\end{funcdesc}
-
-\begin{funcdesc}{symlink}{src, dst}
-Create a symbolic link pointing to \var{src} named \var{dst}. (On
-systems without symbolic links, this always raises \exception{error}.)
-\end{funcdesc}
-
-\begin{funcdesc}{system}{command}
-Execute the command (a string) in a subshell. This is implemented by
-calling the Standard \C{} function \cfunction{system()}, and has the
-same limitations. Changes to \code{posix.environ}, \code{sys.stdin}
-etc.\ are not reflected in the environment of the executed command.
-The return value is the exit status of the process encoded in the
-format specified for \function{wait()}.
-\end{funcdesc}
-
-\begin{funcdesc}{tcgetpgrp}{fd}
-Return the process group associated with the terminal given by
-\var{fd} (an open file descriptor as returned by \function{open()}).
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{tcsetpgrp}{fd, pg}
-Set the process group associated with the terminal given by
-\var{fd} (an open file descriptor as returned by \function{open()})
-to \var{pg}.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{times}{}
-Return a 5-tuple of floating point numbers indicating accumulated (CPU
-or other)
-times, in seconds. The items are: user time, system time, children's
-user time, children's system time, and elapsed real time since a fixed
-point in the past, in that order. See the \UNIX{}
-manual page \manpage{times}{2}. (Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{umask}{mask}
-Set the current numeric umask and returns the previous umask.
-(Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{uname}{}
-Return a 5-tuple containing information identifying the current
-operating system. The tuple contains 5 strings:
-\code{(\var{sysname}, \var{nodename}, \var{release}, \var{version},
-\var{machine})}. Some systems truncate the nodename to 8
-characters or to the leading component; a better way to get the
-hostname is \function{socket.gethostname()}%
-\withsubitem{(in module socket)}{\ttindex{gethostname()}}
-or even
-\code{socket.gethostbyaddr(socket.gethostname())}%
-\withsubitem{(in module socket)}{\ttindex{gethostbyaddr()}}.
-(Not on MS-DOS, nor on older \UNIX{} systems.)
-\end{funcdesc}
-
-\begin{funcdesc}{unlink}{path}
-Remove the file \var{path}. This is the same function as \code{remove};
-the \code{unlink} name is its traditional \UNIX{} name.
-\end{funcdesc}
-
-\begin{funcdesc}{utime}{path, {\rm (}atime, mtime{\rm )}}
-Set the access and modified time of the file to the given values.
-(The second argument is a tuple of two items.)
-\end{funcdesc}
-
-\begin{funcdesc}{wait}{}
-Wait for completion of a child process, and return a tuple containing
-its pid and exit status indication: a 16-bit number, whose low byte is
-the signal number that killed the process, and whose high byte is the
-exit status (if the signal number is zero); the high bit of the low
-byte is set if a core file was produced. (Not on MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{waitpid}{pid, options}
-Wait for completion of a child process given by proces id, and return
-a tuple containing its pid and exit status indication (encoded as for
-\function{wait()}). The semantics of the call are affected by the
-value of the integer \var{options}, which should be \code{0} for
-normal operation. (If the system does not support
-\function{waitpid()}, this always raises \exception{error}. Not on
-MS-DOS.)
-\end{funcdesc}
-
-\begin{funcdesc}{write}{fd, str}
-Write the string \var{str} to file descriptor \var{fd}.
-Return the number of bytes actually written.
-
-Note: this function is intended for low-level I/O and must be applied
-to a file descriptor as returned by \function{open()} or
-\function{pipe()}. To write a ``file object'' returned by the
-built-in function \function{open()} or by \function{popen()} or
-\function{fdopen()}, or \code{sys.stdout} or \code{sys.stderr}, use
-its \method{write()} method.
-\end{funcdesc}
-
-\begin{datadesc}{WNOHANG}
-The option for \function{waitpid()} to avoid hanging if no child
-process status is available immediately.
-\end{datadesc}
-
-
-\begin{datadesc}{O_RDONLY}
-\dataline{O_WRONLY}
-\dataline{O_RDWR}
-\dataline{O_NDELAY}
-\dataline{O_NONBLOCK}
-\dataline{O_APPEND}
-\dataline{O_DSYNC}
-\dataline{O_RSYNC}
-\dataline{O_SYNC}
-\dataline{O_NOCTTY}
-\dataline{O_CREAT}
-\dataline{O_EXCL}
-\dataline{O_TRUNC}
-Options for the \code{flag} argument to the \function{open()} function.
-These can be bit-wise OR'd together.
-\end{datadesc}
diff --git a/Doc/libposixfile.tex b/Doc/libposixfile.tex
deleted file mode 100644
index a1f853d..0000000
--- a/Doc/libposixfile.tex
+++ /dev/null
@@ -1,162 +0,0 @@
-% Manual text and implementation by Jaap Vermeulen
-\section{Standard Module \module{posixfile}}
-\label{module-posixfile}
-\bimodindex{posixfile}
-\indexii{\POSIX{}}{file object}
-
-\emph{Note:} This module will become obsolete in a future release.
-The locking operation that it provides is done better and more
-portably by the \function{fcntl.lockf()} call.%
-\withsubitem{(in module fcntl)}{\ttindex{lockf()}}
-
-This module implements some additional functionality over the built-in
-file objects. In particular, it implements file locking, control over
-the file flags, and an easy interface to duplicate the file object.
-The module defines a new file object, the posixfile object. It
-has all the standard file object methods and adds the methods
-described below. This module only works for certain flavors of
-\UNIX{}, since it uses \function{fcntl.fcntl()} for file locking.%
-\withsubitem{(in module fcntl)}{\ttindex{fcntl()}}
-
-To instantiate a posixfile object, use the \function{open()} function
-in the \module{posixfile} module. The resulting object looks and
-feels roughly the same as a standard file object.
-
-The \module{posixfile} module defines the following constants:
-
-
-\begin{datadesc}{SEEK_SET}
-Offset is calculated from the start of the file.
-\end{datadesc}
-
-\begin{datadesc}{SEEK_CUR}
-Offset is calculated from the current position in the file.
-\end{datadesc}
-
-\begin{datadesc}{SEEK_END}
-Offset is calculated from the end of the file.
-\end{datadesc}
-
-The \module{posixfile} module defines the following functions:
-
-
-\begin{funcdesc}{open}{filename\optional{, mode\optional{, bufsize}}}
- Create a new posixfile object with the given filename and mode. The
- \var{filename}, \var{mode} and \var{bufsize} arguments are
- interpreted the same way as by the built-in \function{open()}
- function.
-\end{funcdesc}
-
-\begin{funcdesc}{fileopen}{fileobject}
- Create a new posixfile object with the given standard file object.
- The resulting object has the same filename and mode as the original
- file object.
-\end{funcdesc}
-
-The posixfile object defines the following additional methods:
-
-\setindexsubitem{(posixfile method)}
-\begin{funcdesc}{lock}{fmt, \optional{len\optional{, start\optional{, whence}}}}
- Lock the specified section of the file that the file object is
- referring to. The format is explained
- below in a table. The \var{len} argument specifies the length of the
- section that should be locked. The default is \code{0}. \var{start}
- specifies the starting offset of the section, where the default is
- \code{0}. The \var{whence} argument specifies where the offset is
- relative to. It accepts one of the constants \constant{SEEK_SET},
- \constant{SEEK_CUR} or \constant{SEEK_END}. The default is
- \constant{SEEK_SET}. For more information about the arguments refer
- to the \manpage{fcntl}{2} manual page on your system.
-\end{funcdesc}
-
-\begin{funcdesc}{flags}{\optional{flags}}
- Set the specified flags for the file that the file object is referring
- to. The new flags are ORed with the old flags, unless specified
- otherwise. The format is explained below in a table. Without
- the \var{flags} argument
- a string indicating the current flags is returned (this is
- the same as the \samp{?} modifier). For more information about the
- flags refer to the \manpage{fcntl}{2} manual page on your system.
-\end{funcdesc}
-
-\begin{funcdesc}{dup}{}
- Duplicate the file object and the underlying file pointer and file
- descriptor. The resulting object behaves as if it were newly
- opened.
-\end{funcdesc}
-
-\begin{funcdesc}{dup2}{fd}
- Duplicate the file object and the underlying file pointer and file
- descriptor. The new object will have the given file descriptor.
- Otherwise the resulting object behaves as if it were newly opened.
-\end{funcdesc}
-
-\begin{funcdesc}{file}{}
- Return the standard file object that the posixfile object is based
- on. This is sometimes necessary for functions that insist on a
- standard file object.
-\end{funcdesc}
-
-All methods raise \exception{IOError} when the request fails.
-
-Format characters for the \method{lock()} method have the following
-meaning:
-
-\begin{tableii}{c|l}{samp}{Format}{Meaning}
- \lineii{u}{unlock the specified region}
- \lineii{r}{request a read lock for the specified section}
- \lineii{w}{request a write lock for the specified section}
-\end{tableii}
-
-In addition the following modifiers can be added to the format:
-
-\begin{tableiii}{c|l|c}{samp}{Modifier}{Meaning}{Notes}
- \lineiii{|}{wait until the lock has been granted}{}
- \lineiii{?}{return the first lock conflicting with the requested lock, or
- \code{None} if there is no conflict.}{(1)}
-\end{tableiii}
-
-Note:
-
-(1) The lock returned is in the format \code{(\var{mode}, \var{len},
-\var{start}, \var{whence}, \var{pid})} where \var{mode} is a character
-representing the type of lock ('r' or 'w'). This modifier prevents a
-request from being granted; it is for query purposes only.
-
-Format characters for the \method{flags()} method have the following
-meanings:
-
-\begin{tableii}{c|l}{samp}{Format}{Meaning}
- \lineii{a}{append only flag}
- \lineii{c}{close on exec flag}
- \lineii{n}{no delay flag (also called non-blocking flag)}
- \lineii{s}{synchronization flag}
-\end{tableii}
-
-In addition the following modifiers can be added to the format:
-
-\begin{tableiii}{c|l|c}{samp}{Modifier}{Meaning}{Notes}
- \lineiii{!}{turn the specified flags 'off', instead of the default 'on'}{(1)}
- \lineiii{=}{replace the flags, instead of the default 'OR' operation}{(1)}
- \lineiii{?}{return a string in which the characters represent the flags that
- are set.}{(2)}
-\end{tableiii}
-
-Note:
-
-(1) The \samp{!} and \samp{=} modifiers are mutually exclusive.
-
-(2) This string represents the flags after they may have been altered
-by the same call.
-
-Examples:
-
-\begin{verbatim}
-import posixfile
-
-file = posixfile.open('/tmp/test', 'w')
-file.lock('w|')
-...
-file.lock('u')
-file.close()
-\end{verbatim}
diff --git a/Doc/libppath.tex b/Doc/libppath.tex
deleted file mode 100644
index 86b5a34..0000000
--- a/Doc/libppath.tex
+++ /dev/null
@@ -1,145 +0,0 @@
-\section{Standard Module \module{posixpath}}
-\label{module-posixpath}
-\stmodindex{posixpath}
-
-This module implements some useful functions on \POSIX{} pathnames.
-
-\strong{Do not import this module directly.} Instead, import the
-module \module{os} and use \code{os.path}.
-\refstmodindex{os}
-
-
-\begin{funcdesc}{basename}{p}
-Return the base name of pathname
-\var{p}.
-This is the second half of the pair returned by
-\code{posixpath.split(\var{p})}.
-\end{funcdesc}
-
-\begin{funcdesc}{commonprefix}{list}
-Return the longest string that is a prefix of all strings in
-\var{list}.
-If
-\var{list}
-is empty, return the empty string (\code{''}).
-\end{funcdesc}
-
-\begin{funcdesc}{exists}{p}
-Return true if
-\var{p}
-refers to an existing path.
-\end{funcdesc}
-
-\begin{funcdesc}{expanduser}{p}
-Return the argument with an initial component of \samp{\~} or
-\samp{\~\var{user}} replaced by that \var{user}'s home directory. An
-initial \samp{\~{}} is replaced by the environment variable \code{\${}HOME};
-an initial \samp{\~\var{user}} is looked up in the password directory through
-the built-in module \module{pwd}\refbimodindex{pwd}. If the expansion
-fails, or if the path does not begin with a tilde, the path is
-returned unchanged.
-\end{funcdesc}
-
-\begin{funcdesc}{expandvars}{p}
-Return the argument with environment variables expanded. Substrings
-of the form \samp{\$\var{name}} or \samp{\$\{\var{name}\}} are
-replaced by the value of environment variable \var{name}. Malformed
-variable names and references to non-existing variables are left
-unchanged.
-\end{funcdesc}
-
-\begin{funcdesc}{isabs}{p}
-Return true if \var{p} is an absolute pathname (begins with a slash).
-\end{funcdesc}
-
-\begin{funcdesc}{isfile}{p}
-Return true if \var{p} is an existing regular file. This follows
-symbolic links, so both \function{islink()} and \function{isfile()}
-can be true for the same path.
-\end{funcdesc}
-
-\begin{funcdesc}{isdir}{p}
-Return true if \var{p} is an existing directory. This follows
-symbolic links, so both \function{islink()} and \function{isdir()} can
-be true for the same path.
-\end{funcdesc}
-
-\begin{funcdesc}{islink}{p}
-Return true if
-\var{p}
-refers to a directory entry that is a symbolic link.
-Always false if symbolic links are not supported.
-\end{funcdesc}
-
-\begin{funcdesc}{ismount}{p}
-Return true if pathname \var{p} is a \dfn{mount point}: a point in a
-file system where a different file system has been mounted. The
-function checks whether \var{p}'s parent, \file{\var{p}/..}, is on a
-different device than \var{p}, or whether \file{\var{p}/..} and
-\var{p} point to the same i-node on the same device --- this should
-detect mount points for all \UNIX{} and \POSIX{} variants.
-\end{funcdesc}
-
-\begin{funcdesc}{join}{p\optional{, q\optional{, ...}}}
-Joins one or more path components intelligently. If any component is
-an absolute path, all previous components are thrown away, and joining
-continues. The return value is the concatenation of \var{p}, and
-optionally \var{q}, etc., with exactly one slash (\code{'/'}) inserted
-between components, unless \var{p} is empty.
-\end{funcdesc}
-
-\begin{funcdesc}{normcase}{p}
-Normalize the case of a pathname. On \UNIX{}, this returns the path
-unchanged; on case-insensitive filesystems, it converts the path to
-lowercase. On Windows, it also converts forward slashes to backward
-slashes.
-\end{funcdesc}
-
-\begin{funcdesc}{normpath}{p}
-Normalize a pathname. This collapses redundant separators and
-up-level references, e.g. \code{A//B}, \code{A/./B} and
-\code{A/foo/../B} all become \code{A/B}. It does not normalize the
-case (use \function{normcase()} for that). On Windows, it does
-converts forward slashes to backward slashes.
-\end{funcdesc}
-
-\begin{funcdesc}{samefile}{p, q}
-Return true if both pathname arguments refer to the same file or
-directory (as indicated by device number and i-node number).
-Raise an exception if a \function{os.stat()} call on either pathname
-fails.
-\end{funcdesc}
-
-\begin{funcdesc}{split}{p}
-Split the pathname \var{p} in a pair \code{(\var{head}, \var{tail})},
-where \var{tail} is the last pathname component and \var{head} is
-everything leading up to that. The \var{tail} part will never contain
-a slash; if \var{p} ends in a slash, \var{tail} will be empty. If
-there is no slash in \var{p}, \var{head} will be empty. If \var{p} is
-empty, both \var{head} and \var{tail} are empty. Trailing slashes are
-stripped from \var{head} unless it is the root (one or more slashes
-only). In nearly all cases, \code{join(\var{head}, \var{tail})}
-equals \var{p} (the only exception being when there were multiple
-slashes separating \var{head} from \var{tail}).
-\end{funcdesc}
-
-\begin{funcdesc}{splitext}{p}
-Split the pathname \var{p} in a pair \code{(\var{root}, \var{ext})}
-such that \code{\var{root} + \var{ext} == \var{p}},
-and \var{ext} is empty or begins with a period and contains
-at most one period.
-\end{funcdesc}
-
-\begin{funcdesc}{walk}{p, visit, arg}
-Calls the function \var{visit} with arguments
-\code{(\var{arg}, \var{dirname}, \var{names})} for each directory in the
-directory tree rooted at \var{p} (including \var{p} itself, if it is a
-directory). The argument \var{dirname} specifies the visited directory,
-the argument \var{names} lists the files in the directory (gotten from
-\code{os.listdir(\var{dirname})}).
-The \var{visit} function may modify \var{names} to
-influence the set of directories visited below \var{dirname}, e.g., to
-avoid visiting certain parts of the tree. (The object referred to by
-\var{names} must be modified in place, using \keyword{del} or slice
-assignment.)
-\end{funcdesc}
diff --git a/Doc/libpprint.tex b/Doc/libpprint.tex
deleted file mode 100644
index 0ad1dc5..0000000
--- a/Doc/libpprint.tex
+++ /dev/null
@@ -1,172 +0,0 @@
-%% Author: Fred L. Drake, Jr. <fdrake@acm.org>
-
-\section{Standard Module \module{pprint}}
-\stmodindex{pprint}
-\label{module-pprint}
-
-The \module{pprint} module provides a capability to ``pretty-print''
-arbitrary Python data structures in a form which can be used as input
-to the interpreter. If the formatted structures include objects which
-are not fundamental Python types, the representation may not be
-loadable. This may be the case if objects such as files, sockets,
-classes, or instances are included, as well as many other builtin
-objects which are not representable as Python constants.
-
-The formatted representation keeps objects on a single line if it can,
-and breaks them onto multiple lines if they don't fit within the
-allowed width. Construct \class{PrettyPrinter} objects explicitly if
-you need to adjust the width constraint.
-
-The \module{pprint} module defines one class:
-
-
-% First the implementation class:
-
-\begin{classdesc}{PrettyPrinter}{...}
-Construct a \class{PrettyPrinter} instance. This constructor
-understands several keyword parameters. An output stream may be set
-using the \var{stream} keyword; the only method used on the stream
-object is the file protocol's \method{write()} method. If not
-specified, the \class{PrettyPrinter} adopts \code{sys.stdout}. Three
-additional parameters may be used to control the formatted
-representation. The keywords are \var{indent}, \var{depth}, and
-\var{width}. The amount of indentation added for each recursive level
-is specified by \var{indent}; the default is one. Other values can
-cause output to look a little odd, but can make nesting easier to
-spot. The number of levels which may be printed is controlled by
-\var{depth}; if the data structure being printed is too deep, the next
-contained level is replaced by \samp{...}. By default, there is no
-constraint on the depth of the objects being formatted. The desired
-output width is constrained using the \var{width} parameter; the
-default is eighty characters. If a structure cannot be formatted
-within the constrained width, a best effort will be made.
-
-\begin{verbatim}
->>> import pprint, sys
->>> stuff = sys.path[:]
->>> stuff.insert(0, stuff[:])
->>> pp = pprint.PrettyPrinter(indent=4)
->>> pp.pprint(stuff)
-[ [ '',
- '/usr/local/lib/python1.5',
- '/usr/local/lib/python1.5/test',
- '/usr/local/lib/python1.5/sunos5',
- '/usr/local/lib/python1.5/sharedmodules',
- '/usr/local/lib/python1.5/tkinter'],
- '',
- '/usr/local/lib/python1.5',
- '/usr/local/lib/python1.5/test',
- '/usr/local/lib/python1.5/sunos5',
- '/usr/local/lib/python1.5/sharedmodules',
- '/usr/local/lib/python1.5/tkinter']
->>>
->>> import parser
->>> tup = parser.ast2tuple(
-... parser.suite(open('pprint.py').read()))[1][1][1]
->>> pp = pprint.PrettyPrinter(depth=6)
->>> pp.pprint(tup)
-(266, (267, (307, (287, (288, (...))))))
-\end{verbatim}
-\end{classdesc}
-
-
-% Now the derivative functions:
-
-The \class{PrettyPrinter} class supports several derivative functions:
-
-\begin{funcdesc}{pformat}{object}
-Return the formatted representation of \var{object} as a string. The
-default parameters for formatting are used.
-\end{funcdesc}
-
-\begin{funcdesc}{pprint}{object\optional{, stream}}
-Prints the formatted representation of \var{object} on \var{stream},
-followed by a newline. If \var{stream} is omitted, \code{sys.stdout}
-is used. This may be used in the interactive interpreter instead of a
-\keyword{print} statement for inspecting values. The default
-parameters for formatting are used.
-
-\begin{verbatim}
->>> stuff = sys.path[:]
->>> stuff.insert(0, stuff)
->>> pprint.pprint(stuff)
-[<Recursion on list with id=869440>,
- '',
- '/usr/local/lib/python1.5',
- '/usr/local/lib/python1.5/test',
- '/usr/local/lib/python1.5/sunos5',
- '/usr/local/lib/python1.5/sharedmodules',
- '/usr/local/lib/python1.5/tkinter']
-\end{verbatim}
-\end{funcdesc}
-
-\begin{funcdesc}{isreadable}{object}
-Determine if the formatted representation of \var{object} is
-``readable,'' or can be used to reconstruct the value using
-\function{eval()}\bifuncindex{eval}. This always returns false for
-recursive objects.
-
-\begin{verbatim}
->>> pprint.isreadable(stuff)
-0
-\end{verbatim}
-\end{funcdesc}
-
-\begin{funcdesc}{isrecursive}{object}
-Determine if \var{object} requires a recursive representation.
-\end{funcdesc}
-
-
-One more support function is also defined:
-
-\begin{funcdesc}{saferepr}{object}
-Return a string representation of \var{object}, protected against
-recursive data structures. If the representation of \var{object}
-exposes a recursive entry, the recursive reference will be represented
-as \samp{<Recursion on \var{typename} with id=\var{number}>}. The
-representation is not otherwise formatted.
-\end{funcdesc}
-
-% This example is outside the {funcdesc} to keep it from running over
-% the right margin.
-\begin{verbatim}
->>> pprint.saferepr(stuff)
-"[<Recursion on list with id=682968>, '', '/usr/local/lib/python1.5', '/usr/loca
-l/lib/python1.5/test', '/usr/local/lib/python1.5/sunos5', '/usr/local/lib/python
-1.5/sharedmodules', '/usr/local/lib/python1.5/tkinter']"
-\end{verbatim}
-
-
-\subsection{PrettyPrinter Objects}
-\label{PrettyPrinter Objects}
-
-\class{PrettyPrinter} instances have the following methods:
-
-
-\begin{methoddesc}{pformat}{object}
-Return the formatted representation of \var{object}. This takes into
-Account the options passed to the \class{PrettyPrinter} constructor.
-\end{methoddesc}
-
-\begin{methoddesc}{pprint}{object}
-Print the formatted representation of \var{object} on the configured
-stream, followed by a newline.
-\end{methoddesc}
-
-The following methods provide the implementations for the
-corresponding functions of the same names. Using these methods on an
-instance is slightly more efficient since new \class{PrettyPrinter}
-objects don't need to be created.
-
-\begin{methoddesc}{isreadable}{object}
-Determine if the formatted representation of the object is
-``readable,'' or can be used to reconstruct the value using
-\function{eval()}\bifuncindex{eval}. Note that this returns false for
-recursive objects. If the \var{depth} parameter of the
-\class{PrettyPrinter} is set and the object is deeper than allowed,
-this returns false.
-\end{methoddesc}
-
-\begin{methoddesc}{isrecursive}{object}
-Determine if the object requires a recursive representation.
-\end{methoddesc}
diff --git a/Doc/libprofile.tex b/Doc/libprofile.tex
deleted file mode 100644
index 61da988..0000000
--- a/Doc/libprofile.tex
+++ /dev/null
@@ -1,767 +0,0 @@
-\chapter{The Python Profiler}
-\label{profile}
-
-Copyright \copyright{} 1994, by InfoSeek Corporation, all rights reserved.
-\index{InfoSeek Corporation}
-
-Written by James Roskind\index{Roskind, James}.%
-\footnote{
-Updated and converted to \LaTeX\ by Guido van Rossum. The references to
-the old profiler are left in the text, although it no longer exists.
-}
-
-Permission to use, copy, modify, and distribute this Python software
-and its associated documentation for any purpose (subject to the
-restriction in the following sentence) without fee is hereby granted,
-provided that the above copyright notice appears in all copies, and
-that both that copyright notice and this permission notice appear in
-supporting documentation, and that the name of InfoSeek not be used in
-advertising or publicity pertaining to distribution of the software
-without specific, written prior permission. This permission is
-explicitly restricted to the copying and modification of the software
-to remain in Python, compiled Python, or other languages (such as C)
-wherein the modified or derived code is exclusively imported into a
-Python module.
-
-INFOSEEK CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
-SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS. IN NO EVENT SHALL INFOSEEK CORPORATION BE LIABLE FOR ANY
-SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-The profiler was written after only programming in Python for 3 weeks.
-As a result, it is probably clumsy code, but I don't know for sure yet
-'cause I'm a beginner :-). I did work hard to make the code run fast,
-so that profiling would be a reasonable thing to do. I tried not to
-repeat code fragments, but I'm sure I did some stuff in really awkward
-ways at times. Please send suggestions for improvements to:
-\email{jar@netscape.com}. I won't promise \emph{any} support. ...but
-I'd appreciate the feedback.
-
-
-\section{Introduction to the profiler}
-\nodename{Profiler Introduction}
-
-A \dfn{profiler} is a program that describes the run time performance
-of a program, providing a variety of statistics. This documentation
-describes the profiler functionality provided in the modules
-\module{profile} and \module{pstats}. This profiler provides
-\dfn{deterministic profiling} of any Python programs. It also
-provides a series of report generation tools to allow users to rapidly
-examine the results of a profile operation.
-\index{deterministic profiling}
-\index{profiling, deterministic}
-
-
-\section{How Is This Profiler Different From The Old Profiler?}
-\nodename{Profiler Changes}
-
-(This section is of historical importance only; the old profiler
-discussed here was last seen in Python 1.1.)
-
-The big changes from old profiling module are that you get more
-information, and you pay less CPU time. It's not a trade-off, it's a
-trade-up.
-
-To be specific:
-
-\begin{description}
-
-\item[Bugs removed:]
-Local stack frame is no longer molested, execution time is now charged
-to correct functions.
-
-\item[Accuracy increased:]
-Profiler execution time is no longer charged to user's code,
-calibration for platform is supported, file reads are not done \emph{by}
-profiler \emph{during} profiling (and charged to user's code!).
-
-\item[Speed increased:]
-Overhead CPU cost was reduced by more than a factor of two (perhaps a
-factor of five), lightweight profiler module is all that must be
-loaded, and the report generating module (\module{pstats}) is not needed
-during profiling.
-
-\item[Recursive functions support:]
-Cumulative times in recursive functions are correctly calculated;
-recursive entries are counted.
-
-\item[Large growth in report generating UI:]
-Distinct profiles runs can be added together forming a comprehensive
-report; functions that import statistics take arbitrary lists of
-files; sorting criteria is now based on keywords (instead of 4 integer
-options); reports shows what functions were profiled as well as what
-profile file was referenced; output format has been improved.
-
-\end{description}
-
-
-\section{Instant Users Manual}
-
-This section is provided for users that ``don't want to read the
-manual.'' It provides a very brief overview, and allows a user to
-rapidly perform profiling on an existing application.
-
-To profile an application with a main entry point of \samp{foo()}, you
-would add the following to your module:
-
-\begin{verbatim}
-import profile
-profile.run('foo()')
-\end{verbatim}
-%
-The above action would cause \samp{foo()} to be run, and a series of
-informative lines (the profile) to be printed. The above approach is
-most useful when working with the interpreter. If you would like to
-save the results of a profile into a file for later examination, you
-can supply a file name as the second argument to the \function{run()}
-function:
-
-\begin{verbatim}
-import profile
-profile.run('foo()', 'fooprof')
-\end{verbatim}
-%
-The file \file{profile.py} can also be invoked as
-a script to profile another script. For example:
-
-\begin{verbatim}
-python /usr/local/lib/python1.5/profile.py myscript.py
-\end{verbatim}
-
-When you wish to review the profile, you should use the methods in the
-\module{pstats} module. Typically you would load the statistics data as
-follows:
-
-\begin{verbatim}
-import pstats
-p = pstats.Stats('fooprof')
-\end{verbatim}
-%
-The class \class{Stats} (the above code just created an instance of
-this class) has a variety of methods for manipulating and printing the
-data that was just read into \samp{p}. When you ran
-\function{profile.run()} above, what was printed was the result of three
-method calls:
-
-\begin{verbatim}
-p.strip_dirs().sort_stats(-1).print_stats()
-\end{verbatim}
-%
-The first method removed the extraneous path from all the module
-names. The second method sorted all the entries according to the
-standard module/line/name string that is printed (this is to comply
-with the semantics of the old profiler). The third method printed out
-all the statistics. You might try the following sort calls:
-
-\begin{verbatim}
-p.sort_stats('name')
-p.print_stats()
-\end{verbatim}
-%
-The first call will actually sort the list by function name, and the
-second call will print out the statistics. The following are some
-interesting calls to experiment with:
-
-\begin{verbatim}
-p.sort_stats('cumulative').print_stats(10)
-\end{verbatim}
-%
-This sorts the profile by cumulative time in a function, and then only
-prints the ten most significant lines. If you want to understand what
-algorithms are taking time, the above line is what you would use.
-
-If you were looking to see what functions were looping a lot, and
-taking a lot of time, you would do:
-
-\begin{verbatim}
-p.sort_stats('time').print_stats(10)
-\end{verbatim}
-%
-to sort according to time spent within each function, and then print
-the statistics for the top ten functions.
-
-You might also try:
-
-\begin{verbatim}
-p.sort_stats('file').print_stats('__init__')
-\end{verbatim}
-%
-This will sort all the statistics by file name, and then print out
-statistics for only the class init methods ('cause they are spelled
-with \samp{__init__} in them). As one final example, you could try:
-
-\begin{verbatim}
-p.sort_stats('time', 'cum').print_stats(.5, 'init')
-\end{verbatim}
-%
-This line sorts statistics with a primary key of time, and a secondary
-key of cumulative time, and then prints out some of the statistics.
-To be specific, the list is first culled down to 50\% (re: \samp{.5})
-of its original size, then only lines containing \code{init} are
-maintained, and that sub-sub-list is printed.
-
-If you wondered what functions called the above functions, you could
-now (\samp{p} is still sorted according to the last criteria) do:
-
-\begin{verbatim}
-p.print_callers(.5, 'init')
-\end{verbatim}
-
-and you would get a list of callers for each of the listed functions.
-
-If you want more functionality, you're going to have to read the
-manual, or guess what the following functions do:
-
-\begin{verbatim}
-p.print_callees()
-p.add('fooprof')
-\end{verbatim}
-%
-\section{What Is Deterministic Profiling?}
-\nodename{Deterministic Profiling}
-
-\dfn{Deterministic profiling} is meant to reflect the fact that all
-\dfn{function call}, \dfn{function return}, and \dfn{exception} events
-are monitored, and precise timings are made for the intervals between
-these events (during which time the user's code is executing). In
-contrast, \dfn{statistical profiling} (which is not done by this
-module) randomly samples the effective instruction pointer, and
-deduces where time is being spent. The latter technique traditionally
-involves less overhead (as the code does not need to be instrumented),
-but provides only relative indications of where time is being spent.
-
-In Python, since there is an interpreter active during execution, the
-presence of instrumented code is not required to do deterministic
-profiling. Python automatically provides a \dfn{hook} (optional
-callback) for each event. In addition, the interpreted nature of
-Python tends to add so much overhead to execution, that deterministic
-profiling tends to only add small processing overhead in typical
-applications. The result is that deterministic profiling is not that
-expensive, yet provides extensive run time statistics about the
-execution of a Python program.
-
-Call count statistics can be used to identify bugs in code (surprising
-counts), and to identify possible inline-expansion points (high call
-counts). Internal time statistics can be used to identify ``hot
-loops'' that should be carefully optimized. Cumulative time
-statistics should be used to identify high level errors in the
-selection of algorithms. Note that the unusual handling of cumulative
-times in this profiler allows statistics for recursive implementations
-of algorithms to be directly compared to iterative implementations.
-
-
-\section{Reference Manual}
-\stmodindex{profile}
-\label{module-profile}
-
-
-The primary entry point for the profiler is the global function
-\function{profile.run()}. It is typically used to create any profile
-information. The reports are formatted and printed using methods of
-the class \class{pstats.Stats}. The following is a description of all
-of these standard entry points and functions. For a more in-depth
-view of some of the code, consider reading the later section on
-Profiler Extensions, which includes discussion of how to derive
-``better'' profilers from the classes presented, or reading the source
-code for these modules.
-
-\begin{funcdesc}{run}{string\optional{, filename\optional{, ...}}}
-
-This function takes a single argument that has can be passed to the
-\keyword{exec} statement, and an optional file name. In all cases this
-routine attempts to \keyword{exec} its first argument, and gather profiling
-statistics from the execution. If no file name is present, then this
-function automatically prints a simple profiling report, sorted by the
-standard name string (file/line/function-name) that is presented in
-each line. The following is a typical output from such a call:
-
-\begin{verbatim}
- main()
- 2706 function calls (2004 primitive calls) in 4.504 CPU seconds
-
-Ordered by: standard name
-
-ncalls tottime percall cumtime percall filename:lineno(function)
- 2 0.006 0.003 0.953 0.477 pobject.py:75(save_objects)
- 43/3 0.533 0.012 0.749 0.250 pobject.py:99(evaluate)
- ...
-\end{verbatim}
-
-The first line indicates that this profile was generated by the call:\\
-\code{profile.run('main()')}, and hence the exec'ed string is
-\code{'main()'}. The second line indicates that 2706 calls were
-monitored. Of those calls, 2004 were \dfn{primitive}. We define
-\dfn{primitive} to mean that the call was not induced via recursion.
-The next line: \code{Ordered by:\ standard name}, indicates that
-the text string in the far right column was used to sort the output.
-The column headings include:
-
-\begin{description}
-
-\item[ncalls ]
-for the number of calls,
-
-\item[tottime ]
-for the total time spent in the given function (and excluding time
-made in calls to sub-functions),
-
-\item[percall ]
-is the quotient of \code{tottime} divided by \code{ncalls}
-
-\item[cumtime ]
-is the total time spent in this and all subfunctions (i.e., from
-invocation till exit). This figure is accurate \emph{even} for recursive
-functions.
-
-\item[percall ]
-is the quotient of \code{cumtime} divided by primitive calls
-
-\item[filename:lineno(function) ]
-provides the respective data of each function
-
-\end{description}
-
-When there are two numbers in the first column (e.g.: \samp{43/3}),
-then the latter is the number of primitive calls, and the former is
-the actual number of calls. Note that when the function does not
-recurse, these two values are the same, and only the single figure is
-printed.
-
-\end{funcdesc}
-
-Analysis of the profiler data is done using this class from the
-\module{pstats} module:
-
-% now switch modules....
-\stmodindex{pstats}
-
-\begin{classdesc}{Stats}{filename\optional{, ...}}
-This class constructor creates an instance of a ``statistics object''
-from a \var{filename} (or set of filenames). \class{Stats} objects are
-manipulated by methods, in order to print useful reports.
-
-The file selected by the above constructor must have been created by
-the corresponding version of \module{profile}. To be specific, there is
-\emph{no} file compatibility guaranteed with future versions of this
-profiler, and there is no compatibility with files produced by other
-profilers (e.g., the old system profiler).
-
-If several files are provided, all the statistics for identical
-functions will be coalesced, so that an overall view of several
-processes can be considered in a single report. If additional files
-need to be combined with data in an existing \class{Stats} object, the
-\method{add()} method can be used.
-\end{classdesc}
-
-
-\subsection{The \module{Stats} Class}
-
-\setindexsubitem{(Stats method)}
-
-\begin{methoddesc}{strip_dirs}{}
-This method for the \class{Stats} class removes all leading path
-information from file names. It is very useful in reducing the size
-of the printout to fit within (close to) 80 columns. This method
-modifies the object, and the stripped information is lost. After
-performing a strip operation, the object is considered to have its
-entries in a ``random'' order, as it was just after object
-initialization and loading. If \method{strip_dirs()} causes two
-function names to be indistinguishable (i.e., they are on the same
-line of the same filename, and have the same function name), then the
-statistics for these two entries are accumulated into a single entry.
-\end{methoddesc}
-
-
-\begin{methoddesc}{add}{filename\optional{, ...}}
-This method of the \class{Stats} class accumulates additional
-profiling information into the current profiling object. Its
-arguments should refer to filenames created by the corresponding
-version of \function{profile.run()}. Statistics for identically named
-(re: file, line, name) functions are automatically accumulated into
-single function statistics.
-\end{methoddesc}
-
-\begin{methoddesc}{sort_stats}{key\optional{, ...}}
-This method modifies the \class{Stats} object by sorting it according
-to the supplied criteria. The argument is typically a string
-identifying the basis of a sort (example: \code{'time'} or
-\code{'name'}).
-
-When more than one key is provided, then additional keys are used as
-secondary criteria when the there is equality in all keys selected
-before them. For example, \samp{sort_stats('name', 'file')} will sort
-all the entries according to their function name, and resolve all ties
-(identical function names) by sorting by file name.
-
-Abbreviations can be used for any key names, as long as the
-abbreviation is unambiguous. The following are the keys currently
-defined:
-
-\begin{tableii}{l|l}{code}{Valid Arg}{Meaning}
- \lineii{'calls'}{call count}
- \lineii{'cumulative'}{cumulative time}
- \lineii{'file'}{file name}
- \lineii{'module'}{file name}
- \lineii{'pcalls'}{primitive call count}
- \lineii{'line'}{line number}
- \lineii{'name'}{function name}
- \lineii{'nfl'}{name/file/line}
- \lineii{'stdname'}{standard name}
- \lineii{'time'}{internal time}
-\end{tableii}
-
-Note that all sorts on statistics are in descending order (placing
-most time consuming items first), where as name, file, and line number
-searches are in ascending order (i.e., alphabetical). The subtle
-distinction between \code{'nfl'} and \code{'stdname'} is that the
-standard name is a sort of the name as printed, which means that the
-embedded line numbers get compared in an odd way. For example, lines
-3, 20, and 40 would (if the file names were the same) appear in the
-string order 20, 3 and 40. In contrast, \code{'nfl'} does a numeric
-compare of the line numbers. In fact, \code{sort_stats('nfl')} is the
-same as \code{sort_stats('name', 'file', 'line')}.
-
-For compatibility with the old profiler, the numeric arguments
-\code{-1}, \code{0}, \code{1}, and \code{2} are permitted. They are
-interpreted as \code{'stdname'}, \code{'calls'}, \code{'time'}, and
-\code{'cumulative'} respectively. If this old style format (numeric)
-is used, only one sort key (the numeric key) will be used, and
-additional arguments will be silently ignored.
-\end{methoddesc}
-
-
-\begin{methoddesc}{reverse_order}{}
-This method for the \class{Stats} class reverses the ordering of the basic
-list within the object. This method is provided primarily for
-compatibility with the old profiler. Its utility is questionable
-now that ascending vs descending order is properly selected based on
-the sort key of choice.
-\end{methoddesc}
-
-\begin{methoddesc}{print_stats}{restriction\optional{, ...}}
-This method for the \class{Stats} class prints out a report as described
-in the \function{profile.run()} definition.
-
-The order of the printing is based on the last \method{sort_stats()}
-operation done on the object (subject to caveats in \method{add()} and
-\method{strip_dirs()}.
-
-The arguments provided (if any) can be used to limit the list down to
-the significant entries. Initially, the list is taken to be the
-complete set of profiled functions. Each restriction is either an
-integer (to select a count of lines), or a decimal fraction between
-0.0 and 1.0 inclusive (to select a percentage of lines), or a regular
-expression (to pattern match the standard name that is printed; as of
-Python 1.5b1, this uses the Perl-style regular expression syntax
-defined by the \module{re} module). If several restrictions are
-provided, then they are applied sequentially. For example:
-
-\begin{verbatim}
-print_stats(.1, 'foo:')
-\end{verbatim}
-
-would first limit the printing to first 10\% of list, and then only
-print functions that were part of filename \samp{.*foo:}. In
-contrast, the command:
-
-\begin{verbatim}
-print_stats('foo:', .1)
-\end{verbatim}
-
-would limit the list to all functions having file names \samp{.*foo:},
-and then proceed to only print the first 10\% of them.
-\end{methoddesc}
-
-
-\begin{methoddesc}{print_callers}{restrictions\optional{, ...}}
-This method for the \class{Stats} class prints a list of all functions
-that called each function in the profiled database. The ordering is
-identical to that provided by \method{print_stats()}, and the definition
-of the restricting argument is also identical. For convenience, a
-number is shown in parentheses after each caller to show how many
-times this specific call was made. A second non-parenthesized number
-is the cumulative time spent in the function at the right.
-\end{methoddesc}
-
-\begin{methoddesc}{print_callees}{restrictions\optional{, ...}}
-This method for the \class{Stats} class prints a list of all function
-that were called by the indicated function. Aside from this reversal
-of direction of calls (re: called vs was called by), the arguments and
-ordering are identical to the \method{print_callers()} method.
-\end{methoddesc}
-
-\begin{methoddesc}{ignore}{}
-\deprecated{1.5.1}{This is not needed in modern versions of Python.%
-\footnote{
-This was once necessary, when Python would print any unused expression
-result that was not \code{None}. The method is still defined for
-backward compatibility.
-}}
-\end{methoddesc}
-
-
-\section{Limitations}
-
-There are two fundamental limitations on this profiler. The first is
-that it relies on the Python interpreter to dispatch \dfn{call},
-\dfn{return}, and \dfn{exception} events. Compiled \C{} code does not
-get interpreted, and hence is ``invisible'' to the profiler. All time
-spent in \C{} code (including built-in functions) will be charged to the
-Python function that invoked the \C{} code. If the \C{} code calls out
-to some native Python code, then those calls will be profiled
-properly.
-
-The second limitation has to do with accuracy of timing information.
-There is a fundamental problem with deterministic profilers involving
-accuracy. The most obvious restriction is that the underlying ``clock''
-is only ticking at a rate (typically) of about .001 seconds. Hence no
-measurements will be more accurate that that underlying clock. If
-enough measurements are taken, then the ``error'' will tend to average
-out. Unfortunately, removing this first error induces a second source
-of error...
-
-The second problem is that it ``takes a while'' from when an event is
-dispatched until the profiler's call to get the time actually
-\emph{gets} the state of the clock. Similarly, there is a certain lag
-when exiting the profiler event handler from the time that the clock's
-value was obtained (and then squirreled away), until the user's code
-is once again executing. As a result, functions that are called many
-times, or call many functions, will typically accumulate this error.
-The error that accumulates in this fashion is typically less than the
-accuracy of the clock (i.e., less than one clock tick), but it
-\emph{can} accumulate and become very significant. This profiler
-provides a means of calibrating itself for a given platform so that
-this error can be probabilistically (i.e., on the average) removed.
-After the profiler is calibrated, it will be more accurate (in a least
-square sense), but it will sometimes produce negative numbers (when
-call counts are exceptionally low, and the gods of probability work
-against you :-). ) Do \emph{NOT} be alarmed by negative numbers in
-the profile. They should \emph{only} appear if you have calibrated
-your profiler, and the results are actually better than without
-calibration.
-
-
-\section{Calibration}
-
-The profiler class has a hard coded constant that is added to each
-event handling time to compensate for the overhead of calling the time
-function, and socking away the results. The following procedure can
-be used to obtain this constant for a given platform (see discussion
-in section Limitations above).
-
-\begin{verbatim}
-import profile
-pr = profile.Profile()
-print pr.calibrate(100)
-print pr.calibrate(100)
-print pr.calibrate(100)
-\end{verbatim}
-
-The argument to \method{calibrate()} is the number of times to try to
-do the sample calls to get the CPU times. If your computer is
-\emph{very} fast, you might have to do:
-
-\begin{verbatim}
-pr.calibrate(1000)
-\end{verbatim}
-
-or even:
-
-\begin{verbatim}
-pr.calibrate(10000)
-\end{verbatim}
-
-The object of this exercise is to get a fairly consistent result.
-When you have a consistent answer, you are ready to use that number in
-the source code. For a Sun Sparcstation 1000 running Solaris 2.3, the
-magical number is about .00053. If you have a choice, you are better
-off with a smaller constant, and your results will ``less often'' show
-up as negative in profile statistics.
-
-The following shows how the trace_dispatch() method in the Profile
-class should be modified to install the calibration constant on a Sun
-Sparcstation 1000:
-
-\begin{verbatim}
-def trace_dispatch(self, frame, event, arg):
- t = self.timer()
- t = t[0] + t[1] - self.t - .00053 # Calibration constant
-
- if self.dispatch[event](frame,t):
- t = self.timer()
- self.t = t[0] + t[1]
- else:
- r = self.timer()
- self.t = r[0] + r[1] - t # put back unrecorded delta
- return
-\end{verbatim}
-
-Note that if there is no calibration constant, then the line
-containing the callibration constant should simply say:
-
-\begin{verbatim}
-t = t[0] + t[1] - self.t # no calibration constant
-\end{verbatim}
-
-You can also achieve the same results using a derived class (and the
-profiler will actually run equally fast!!), but the above method is
-the simplest to use. I could have made the profiler ``self
-calibrating'', but it would have made the initialization of the
-profiler class slower, and would have required some \emph{very} fancy
-coding, or else the use of a variable where the constant \samp{.00053}
-was placed in the code shown. This is a \strong{VERY} critical
-performance section, and there is no reason to use a variable lookup
-at this point, when a constant can be used.
-
-
-\section{Extensions --- Deriving Better Profilers}
-\nodename{Profiler Extensions}
-
-The \class{Profile} class of module \module{profile} was written so that
-derived classes could be developed to extend the profiler. Rather
-than describing all the details of such an effort, I'll just present
-the following two examples of derived classes that can be used to do
-profiling. If the reader is an avid Python programmer, then it should
-be possible to use these as a model and create similar (and perchance
-better) profile classes.
-
-If all you want to do is change how the timer is called, or which
-timer function is used, then the basic class has an option for that in
-the constructor for the class. Consider passing the name of a
-function to call into the constructor:
-
-\begin{verbatim}
-pr = profile.Profile(your_time_func)
-\end{verbatim}
-
-The resulting profiler will call \code{your_time_func()} instead of
-\function{os.times()}. The function should return either a single number
-or a list of numbers (like what \function{os.times()} returns). If the
-function returns a single time number, or the list of returned numbers
-has length 2, then you will get an especially fast version of the
-dispatch routine.
-
-Be warned that you \emph{should} calibrate the profiler class for the
-timer function that you choose. For most machines, a timer that
-returns a lone integer value will provide the best results in terms of
-low overhead during profiling. (\function{os.times()} is
-\emph{pretty} bad, 'cause it returns a tuple of floating point values,
-so all arithmetic is floating point in the profiler!). If you want to
-substitute a better timer in the cleanest fashion, you should derive a
-class, and simply put in the replacement dispatch method that better
-handles your timer call, along with the appropriate calibration
-constant :-).
-
-
-\subsection{OldProfile Class}
-
-The following derived profiler simulates the old style profiler,
-providing errant results on recursive functions. The reason for the
-usefulness of this profiler is that it runs faster (i.e., less
-overhead) than the old profiler. It still creates all the caller
-stats, and is quite useful when there is \emph{no} recursion in the
-user's code. It is also a lot more accurate than the old profiler, as
-it does not charge all its overhead time to the user's code.
-
-\begin{verbatim}
-class OldProfile(Profile):
-
- def trace_dispatch_exception(self, frame, t):
- rt, rtt, rct, rfn, rframe, rcur = self.cur
- if rcur and not rframe is frame:
- return self.trace_dispatch_return(rframe, t)
- return 0
-
- def trace_dispatch_call(self, frame, t):
- fn = `frame.f_code`
-
- self.cur = (t, 0, 0, fn, frame, self.cur)
- if self.timings.has_key(fn):
- tt, ct, callers = self.timings[fn]
- self.timings[fn] = tt, ct, callers
- else:
- self.timings[fn] = 0, 0, {}
- return 1
-
- def trace_dispatch_return(self, frame, t):
- rt, rtt, rct, rfn, frame, rcur = self.cur
- rtt = rtt + t
- sft = rtt + rct
-
- pt, ptt, pct, pfn, pframe, pcur = rcur
- self.cur = pt, ptt+rt, pct+sft, pfn, pframe, pcur
-
- tt, ct, callers = self.timings[rfn]
- if callers.has_key(pfn):
- callers[pfn] = callers[pfn] + 1
- else:
- callers[pfn] = 1
- self.timings[rfn] = tt+rtt, ct + sft, callers
-
- return 1
-
-
- def snapshot_stats(self):
- self.stats = {}
- for func in self.timings.keys():
- tt, ct, callers = self.timings[func]
- nor_func = self.func_normalize(func)
- nor_callers = {}
- nc = 0
- for func_caller in callers.keys():
- nor_callers[self.func_normalize(func_caller)] = \
- callers[func_caller]
- nc = nc + callers[func_caller]
- self.stats[nor_func] = nc, nc, tt, ct, nor_callers
-\end{verbatim}
-
-\subsection{HotProfile Class}
-
-This profiler is the fastest derived profile example. It does not
-calculate caller-callee relationships, and does not calculate
-cumulative time under a function. It only calculates time spent in a
-function, so it runs very quickly (re: very low overhead). In truth,
-the basic profiler is so fast, that is probably not worth the savings
-to give up the data, but this class still provides a nice example.
-
-\begin{verbatim}
-class HotProfile(Profile):
-
- def trace_dispatch_exception(self, frame, t):
- rt, rtt, rfn, rframe, rcur = self.cur
- if rcur and not rframe is frame:
- return self.trace_dispatch_return(rframe, t)
- return 0
-
- def trace_dispatch_call(self, frame, t):
- self.cur = (t, 0, frame, self.cur)
- return 1
-
- def trace_dispatch_return(self, frame, t):
- rt, rtt, frame, rcur = self.cur
-
- rfn = `frame.f_code`
-
- pt, ptt, pframe, pcur = rcur
- self.cur = pt, ptt+rt, pframe, pcur
-
- if self.timings.has_key(rfn):
- nc, tt = self.timings[rfn]
- self.timings[rfn] = nc + 1, rt + rtt + tt
- else:
- self.timings[rfn] = 1, rt + rtt
-
- return 1
-
-
- def snapshot_stats(self):
- self.stats = {}
- for func in self.timings.keys():
- nc, tt = self.timings[func]
- nor_func = self.func_normalize(func)
- self.stats[nor_func] = nc, nc, tt, 0, {}
-\end{verbatim}
diff --git a/Doc/libpwd.tex b/Doc/libpwd.tex
deleted file mode 100644
index 5275acd..0000000
--- a/Doc/libpwd.tex
+++ /dev/null
@@ -1,32 +0,0 @@
-\section{Built-in Module \module{pwd}}
-\label{module-pwd}
-
-\bimodindex{pwd}
-This module provides access to the \UNIX{} password database.
-It is available on all \UNIX{} versions.
-
-Password database entries are reported as 7-tuples containing the
-following items from the password database (see \file{<pwd.h>}), in order:
-\code{pw_name},
-\code{pw_passwd},
-\code{pw_uid},
-\code{pw_gid},
-\code{pw_gecos},
-\code{pw_dir},
-\code{pw_shell}.
-The uid and gid items are integers, all others are strings.
-A \code{KeyError} exception is raised if the entry asked for cannot be found.
-
-It defines the following items:
-
-\begin{funcdesc}{getpwuid}{uid}
-Return the password database entry for the given numeric user ID.
-\end{funcdesc}
-
-\begin{funcdesc}{getpwnam}{name}
-Return the password database entry for the given user name.
-\end{funcdesc}
-
-\begin{funcdesc}{getpwall}{}
-Return a list of all available password database entries, in arbitrary order.
-\end{funcdesc}
diff --git a/Doc/libpython.tex b/Doc/libpython.tex
deleted file mode 100644
index 944f80f..0000000
--- a/Doc/libpython.tex
+++ /dev/null
@@ -1,84 +0,0 @@
-\chapter{Python Services}
-\label{python}
-
-The modules described in this chapter provide a wide range of services
-related to the Python interpreter and its interaction with its
-environment. Here's an overview:
-
-\begin{description}
-
-\item[sys]
---- Access system specific parameters and functions.
-
-\item[types]
---- Names for all built-in types.
-
-\item[UserDict]
---- Class wrapper for dictionary objects.
-
-\item[UserList]
---- Class wrapper for list objects.
-
-\item[operator]
---- All Python's standard operators as built-in functions.
-
-\item[traceback]
---- Print or retrieve a stack traceback.
-
-\item[pickle]
---- Convert Python objects to streams of bytes and back.
-
-\item[cPickle]
---- Faster version of \module{pickle}, but not subclassable.
-
-\item[copy_reg]
---- Register \module{pickle} support functions.
-
-\item[shelve]
---- Python object persistency.
-
-\item[copy]
---- Shallow and deep copy operations.
-
-\item[marshal]
---- Convert Python objects to streams of bytes and back (with
-different constraints).
-
-\item[imp]
---- Access the implementation of the \keyword{import} statement.
-
-\item[parser]
---- Retrieve and submit parse trees from and to the runtime support
-environment.
-
-\item[symbol]
---- Constants representing internal nodes of the parse tree.
-
-\item[token]
---- Constants representing terminal nodes of the parse tree.
-
-\item[keyword]
---- Test whether a string is a keyword in the Python language.
-
-\item[code]
---- Code object services.
-
-\item[pprint]
---- Data pretty printer.
-
-\item[dis]
---- Disassembler.
-
-\item[site]
---- A standard way to reference site-specific modules.
-
-\item[user]
---- A standard way to reference user-specific modules.
-
-\item[__builtin__]
---- The set of built-in functions.
-
-\item[__main__]
---- The environment where the top-level script is run.
-
-\end{description}
diff --git a/Doc/libqueue.tex b/Doc/libqueue.tex
deleted file mode 100644
index 680238d..0000000
--- a/Doc/libqueue.tex
+++ /dev/null
@@ -1,68 +0,0 @@
-\section{Standard Module \module{Queue}}
-\stmodindex{Queue}
-\label{module-Queue}
-
-
-The \module{Queue} module implements a multi-producer, multi-consumer
-FIFO queue. It is especially useful in threads programming when
-information must be exchanged safely between multiple threads. The
-\class{Queue} class in this module implements all the required locking
-semantics. It depends on the availability of thread support in
-Python.
-
-The \module{Queue} module defines the following class and exception:
-
-
-\begin{classdesc}{Queue}{maxsize}
-Constructor for the class. \var{maxsize} is an integer that sets the
-upperbound limit on the number of items that can be placed in the
-queue. Insertion will block once this size has been reached, until
-queue items are consumed. If \var{maxsize} is less than or equal to
-zero, the queue size is infinite.
-\end{classdesc}
-
-\begin{excdesc}{Empty}
-Exception raised when non-blocking get (e.g. \method{get_nowait()}) is
-called on a \class{Queue} object which is empty, or for which the
-emptyiness cannot be determined (i.e. because the appropriate locks
-cannot be acquired).
-\end{excdesc}
-
-\subsection{Queue Objects}
-\label{QueueObjects}
-
-Class \class{Queue} implements queue objects and has the methods
-described below. This class can be derived from in order to implement
-other queue organizations (e.g. stack) but the inheritable interface
-is not described here. See the source code for details. The public
-methods are:
-
-\begin{methoddesc}{qsize}{}
-Returns the approximate size of the queue. Because of multithreading
-semantics, this number is not reliable.
-\end{methoddesc}
-
-\begin{methoddesc}{empty}{}
-Returns \code{1} if the queue is empty, \code{0} otherwise. Because
-of multithreading semantics, this is not reliable.
-\end{methoddesc}
-
-\begin{methoddesc}{full}{}
-Returns \code{1} if the queue is full, \code{0} otherwise. Because of
-multithreading semantics, this is not reliable.
-\end{methoddesc}
-
-\begin{methoddesc}{put}{item}
-Puts \var{item} into the queue.
-\end{methoddesc}
-
-\begin{methoddesc}{get}{}
-Gets and returns an item from the queue, blocking if necessary until
-one is available.
-\end{methoddesc}
-
-\begin{methoddesc}{get_nowait}{}
-Gets and returns an item from the queue if one is immediately
-available. Raises an \exception{Empty} exception if the queue is
-empty or if the queue's emptiness cannot be determined.
-\end{methoddesc}
diff --git a/Doc/libquopri.tex b/Doc/libquopri.tex
deleted file mode 100644
index abe07df..0000000
--- a/Doc/libquopri.tex
+++ /dev/null
@@ -1,32 +0,0 @@
-\section{Standard Module \module{quopri}}
-\label{module-quopri}
-\stmodindex{quopri}
-
-This module performs quoted-printable transport encoding and decoding,
-as defined in \rfc{1521}: ``MIME (Multipurpose Internet Mail Extensions)
-Part One''. The quoted-printable encoding is designed for data where
-there are relatively few nonprintable characters; the base64 encoding
-scheme available via the \module{base64} module is more compact if there
-are many such characters, as when sending a graphics file.
-\indexii{quoted-printable}{encoding}
-\index{MIME!quoted-printable encoding}
-
-
-\begin{funcdesc}{decode}{input, output}
-Decode the contents of the \var{input} file and write the resulting
-decoded binary data to the \var{output} file.
-\var{input} and \var{output} must either be file objects or objects that
-mimic the file object interface. \var{input} will be read until
-\code{\var{input}.read()} returns an empty string.
-\end{funcdesc}
-
-\begin{funcdesc}{encode}{input, output, quotetabs}
-Encode the contents of the \var{input} file and write the resulting
-quoted-printable data to the \var{output} file.
-\var{input} and \var{output} must either be file objects or objects that
-mimic the file object interface. \var{input} will be read until
-\code{\var{input}.read()} returns an empty string.
-\end{funcdesc}
-
-
-
diff --git a/Doc/librand.tex b/Doc/librand.tex
deleted file mode 100644
index a48ea22..0000000
--- a/Doc/librand.tex
+++ /dev/null
@@ -1,28 +0,0 @@
-\section{Standard Module \module{rand}}
-\label{module-rand}
-\stmodindex{rand}
-
-The \code{rand} module simulates the C library's \code{rand()}
-interface, though the results aren't necessarily compatible with any
-given library's implementation. While still supported for
-compatibility, the \code{rand} module is now considered obsolete; if
-possible, use the \code{whrandom} module instead.
-
-
-\begin{funcdesc}{choice}{seq}
-Returns a random element from the sequence \var{seq}.
-\end{funcdesc}
-
-\begin{funcdesc}{rand}{}
-Return a random integer between 0 and 32767, inclusive.
-\end{funcdesc}
-
-\begin{funcdesc}{srand}{seed}
-Set a starting seed value for the random number generator; \var{seed}
-can be an arbitrary integer.
-\end{funcdesc}
-
-\begin{seealso}
-\seemodule{whrandom}{the standard Python random number generator}
-\end{seealso}
-
diff --git a/Doc/librandom.tex b/Doc/librandom.tex
deleted file mode 100644
index b76822e..0000000
--- a/Doc/librandom.tex
+++ /dev/null
@@ -1,86 +0,0 @@
-\section{Standard Module \module{random}}
-\label{module-random}
-\stmodindex{random}
-
-This module implements pseudo-random number generators for various
-distributions: on the real line, there are functions to compute normal
-or Gaussian, lognormal, negative exponential, gamma, and beta
-distributions. For generating distribution of angles, the circular
-uniform and von Mises distributions are available.
-
-The module exports the following functions, which are exactly
-equivalent to those in the \module{whrandom} module:
-\function{choice()}, \function{randint()}, \function{random()} and
-\function{uniform()}. See the documentation for the \module{whrandom}
-module for these functions.
-
-The following functions specific to the \module{random} module are also
-defined, and all return real values. Function parameters are named
-after the corresponding variables in the distribution's equation, as
-used in common mathematical practice; most of these equations can be
-found in any statistics text.
-
-\begin{funcdesc}{betavariate}{alpha, beta}
-Beta distribution. Conditions on the parameters are
-\code{\var{alpha} >- 1} and \code{\var{beta} > -1}.
-Returned values will range between 0 and 1.
-\end{funcdesc}
-
-\begin{funcdesc}{cunifvariate}{mean, arc}
-Circular uniform distribution. \var{mean} is the mean angle, and
-\var{arc} is the range of the distribution, centered around the mean
-angle. Both values must be expressed in radians, and can range
-between 0 and pi. Returned values will range between
-\code{\var{mean} - \var{arc}/2} and \code{\var{mean} + \var{arc}/2}.
-\end{funcdesc}
-
-\begin{funcdesc}{expovariate}{lambd}
-Exponential distribution. \var{lambd} is 1.0 divided by the desired
-mean. (The parameter would be called ``lambda'', but that is a
-reserved word in Python.) Returned values will range from 0 to
-positive infinity.
-\end{funcdesc}
-
-\begin{funcdesc}{gamma}{alpha, beta}
-Gamma distribution. (\emph{Not} the gamma function!) Conditions on
-the parameters are \code{\var{alpha} > -1} and \code{\var{beta} > 0}.
-\end{funcdesc}
-
-\begin{funcdesc}{gauss}{mu, sigma}
-Gaussian distribution. \var{mu} is the mean, and \var{sigma} is the
-standard deviation. This is slightly faster than the
-\function{normalvariate()} function defined below.
-\end{funcdesc}
-
-\begin{funcdesc}{lognormvariate}{mu, sigma}
-Log normal distribution. If you take the natural logarithm of this
-distribution, you'll get a normal distribution with mean \var{mu} and
-standard deviation \var{sigma}. \var{mu} can have any value, and \var{sigma}
-must be greater than zero.
-\end{funcdesc}
-
-\begin{funcdesc}{normalvariate}{mu, sigma}
-Normal distribution. \var{mu} is the mean, and \var{sigma} is the
-standard deviation.
-\end{funcdesc}
-
-\begin{funcdesc}{vonmisesvariate}{mu, kappa}
-\var{mu} is the mean angle, expressed in radians between 0 and 2*pi,
-and \var{kappa} is the concentration parameter, which must be greater
-than or equal to zero. If \var{kappa} is equal to zero, this
-distribution reduces to a uniform random angle over the range 0 to
-2*pi.
-\end{funcdesc}
-
-\begin{funcdesc}{paretovariate}{alpha}
-Pareto distribution. \var{alpha} is the shape parameter.
-\end{funcdesc}
-
-\begin{funcdesc}{weibullvariate}{alpha, beta}
-Weibull distribution. \var{alpha} is the scale parameter and
-\var{beta} is the shape parameter.
-\end{funcdesc}
-
-\begin{seealso}
-\seemodule{whrandom}{the standard Python random number generator}
-\end{seealso}
diff --git a/Doc/libre.tex b/Doc/libre.tex
deleted file mode 100644
index a47723f..0000000
--- a/Doc/libre.tex
+++ /dev/null
@@ -1,634 +0,0 @@
-\section{Built-in Module \module{re}}
-\label{module-re}
-
-\bimodindex{re}
-
-This module provides regular expression matching operations similar to
-those found in Perl. It's 8-bit clean: the strings being processed
-may contain both null bytes and characters whose high bit is set. Regular
-expression patterns may not contain null bytes, but they may contain
-characters with the high bit set. The \module{re} module is always
-available.
-
-Regular expressions use the backslash character (\character{\e}) to
-indicate special forms or to allow special characters to be used
-without invoking their special meaning. This collides with Python's
-usage of the same character for the same purpose in string literals;
-for example, to match a literal backslash, one might have to write
-\code{'\e\e\e\e'} as the pattern string, because the regular expression
-must be \samp{\e\e}, and each backslash must be expressed as
-\samp{\e\e} inside a regular Python string literal.
-
-The solution is to use Python's raw string notation for regular
-expression patterns; backslashes are not handled in any special way in
-a string literal prefixed with \character{r}. So \code{r"\e n"} is a
-two-character string containing \character{\e} and \character{n},
-while \code{"\e n"} is a one-character string containing a newline.
-Usually patterns will be expressed in Python code using this raw
-string notation.
-
-\subsection{Regular Expression Syntax}
-\label{re-syntax}
-
-A regular expression (or RE) specifies a set of strings that matches
-it; the functions in this module let you check if a particular string
-matches a given regular expression (or if a given regular expression
-matches a particular string, which comes down to the same thing).
-
-Regular expressions can be concatenated to form new regular
-expressions; if \emph{A} and \emph{B} are both regular expressions,
-then \emph{AB} is also an regular expression. If a string \emph{p}
-matches A and another string \emph{q} matches B, the string \emph{pq}
-will match AB. Thus, complex expressions can easily be constructed
-from simpler primitive expressions like the ones described here. For
-details of the theory and implementation of regular expressions,
-consult the Friedl book referenced below, or almost any textbook about
-compiler construction.
-
-A brief explanation of the format of regular expressions follows.
-%For further information and a gentler presentation, consult XXX somewhere.
-
-Regular expressions can contain both special and ordinary characters.
-Most ordinary characters, like \character{A}, \character{a}, or \character{0},
-are the simplest regular expressions; they simply match themselves.
-You can concatenate ordinary characters, so \regexp{last} matches the
-string \code{'last'}. (In the rest of this section, we'll write RE's in
-\regexp{this special style}, usually without quotes, and strings to be
-matched \code{'in single quotes'}.)
-
-Some characters, like \character{|} or \character{(}, are special. Special
-characters either stand for classes of ordinary characters, or affect
-how the regular expressions around them are interpreted.
-
-The special characters are:
-% define these since they're used twice:
-\newcommand{\MyLeftMargin}{0.7in}
-\newcommand{\MyLabelWidth}{0.65in}
-\begin{list}{}{\leftmargin \MyLeftMargin \labelwidth \MyLabelWidth}
-\item[\character{.}] (Dot.) In the default mode, this matches any
-character except a newline. If the \constant{DOTALL} flag has been
-specified, this matches any character including a newline.
-%
-\item[\character{\^}] (Caret.) Matches the start of the string, and in
-\constant{MULTILINE} mode also matches immediately after each newline.
-%
-\item[\character{\$}] Matches the end of the string, and in
-\constant{MULTILINE} mode also matches before a newline.
-\regexp{foo} matches both 'foo' and 'foobar', while the regular
-expression \regexp{foo\$} matches only 'foo'.
-%
-\item[\character{*}] Causes the resulting RE to
-match 0 or more repetitions of the preceding RE, as many repetitions
-as are possible. \regexp{ab*} will
-match 'a', 'ab', or 'a' followed by any number of 'b's.
-%
-\item[\character{+}] Causes the
-resulting RE to match 1 or more repetitions of the preceding RE.
-\regexp{ab+} will match 'a' followed by any non-zero number of 'b's; it
-will not match just 'a'.
-%
-\item[\character{?}] Causes the resulting RE to
-match 0 or 1 repetitions of the preceding RE. \regexp{ab?} will
-match either 'a' or 'ab'.
-\item[\code{*?}, \code{+?}, \code{??}] The \character{*}, \character{+}, and
-\character{?} qualifiers are all \dfn{greedy}; they match as much text as
-possible. Sometimes this behaviour isn't desired; if the RE
-\regexp{<.*>} is matched against \code{'<H1>title</H1>'}, it will match the
-entire string, and not just \code{'<H1>'}.
-Adding \character{?} after the qualifier makes it perform the match in
-\dfn{non-greedy} or \dfn{minimal} fashion; as \emph{few} characters as
-possible will be matched. Using \regexp{.*?} in the previous
-expression will match only \code{'<H1>'}.
-%
-\item[\code{\{\var{m},\var{n}\}}] Causes the resulting RE to match from
-\var{m} to \var{n} repetitions of the preceding RE, attempting to
-match as many repetitions as possible. For example, \regexp{a\{3,5\}}
-will match from 3 to 5 \character{a} characters. Omitting \var{m} is the same
-as specifying 0 for the lower bound; omitting \var{n} specifies an
-infinite upper bound.
-%
-\item[\code{\{\var{m},\var{n}\}?}] Causes the resulting RE to
-match from \var{m} to \var{n} repetitions of the preceding RE,
-attempting to match as \emph{few} repetitions as possible. This is
-the non-greedy version of the previous qualifier. For example, on the
-6-character string \code{'aaaaaa'}, \regexp{a\{3,5\}} will match 5 \character{a}
-characters, while \regexp{a\{3,5\}?} will only match 3 characters.
-%
-\item[\character{\e}] Either escapes special characters (permitting you to match
-characters like \character{*}, \character{?}, and so forth), or
-signals a special sequence; special sequences are discussed below.
-
-If you're not using a raw string to
-express the pattern, remember that Python also uses the
-backslash as an escape sequence in string literals; if the escape
-sequence isn't recognized by Python's parser, the backslash and
-subsequent character are included in the resulting string. However,
-if Python would recognize the resulting sequence, the backslash should
-be repeated twice. This is complicated and hard to understand, so
-it's highly recommended that you use raw strings for all but the
-simplest expressions.
-%
-\item[\code{[]}] Used to indicate a set of characters. Characters can
-be listed individually, or a range of characters can be indicated by
-giving two characters and separating them by a \character{-}. Special
-characters are not active inside sets. For example, \regexp{[akm\$]}
-will match any of the characters \character{a}, \character{k},
-\character{m}, or \character{\$}; \regexp{[a-z]}
-will match any lowercase letter, and \code{[a-zA-Z0-9]} matches any
-letter or digit. Character classes such as \code{\e w} or \code {\e
-S} (defined below) are also acceptable inside a range. If you want to
-include a \character{]} or a \character{-} inside a set, precede it with a
-backslash, or place it as the first character. The
-pattern \regexp{[]]} will match \code{']'}, for example.
-
-You can match the characters not within a range by \dfn{complementing}
-the set. This is indicated by including a
-\character{\^} as the first character of the set; \character{\^} elsewhere will
-simply match the \character{\^} character. For example, \regexp{[\^5]}
-will match any character except \character{5}.
-
-%
-\item[\character{|}]\code{A|B}, where A and B can be arbitrary REs,
-creates a regular expression that will match either A or B. This can
-be used inside groups (see below) as well. To match a literal \character{|},
-use \regexp{\e|}, or enclose it inside a character class, as in \regexp{[|]}.
-%
-\item[\code{(...)}] Matches whatever regular expression is inside the
-parentheses, and indicates the start and end of a group; the contents
-of a group can be retrieved after a match has been performed, and can
-be matched later in the string with the \regexp{\e \var{number}} special
-sequence, described below. To match the literals \character{(} or \character{')},
-use \regexp{\e(} or \regexp{\e)}, or enclose them inside a character
-class: \regexp{[(] [)]}.
-%
-\item[\code{(?...)}] This is an extension notation (a \character{?} following a
-\character{(} is not meaningful otherwise). The first character after
-the \character{?}
-determines what the meaning and further syntax of the construct is.
-Extensions usually do not create a new group;
-\regexp{(?P<\var{name}>...)} is the only exception to this rule.
-Following are the currently supported extensions.
-%
-\item[\code{(?iLmsx)}] (One or more letters from the set \character{i},
-\character{L}, \character{m}, \character{s}, \character{x}.) The group matches
-the empty string; the letters set the corresponding flags
-(\constant{re.I}, \constant{re.L}, \constant{re.M}, \constant{re.S},
-\constant{re.X}) for the entire regular expression. This is useful if
-you wish to include the flags as part of the regular expression, instead
-of passing a \var{flag} argument to the \function{compile()} function.
-%
-\item[\code{(?:...)}] A non-grouping version of regular parentheses.
-Matches whatever regular expression is inside the parentheses, but the
-substring matched by the
-group \emph{cannot} be retrieved after performing a match or
-referenced later in the pattern.
-%
-\item[\code{(?P<\var{name}>...)}] Similar to regular parentheses, but
-the substring matched by the group is accessible via the symbolic group
-name \var{name}. Group names must be valid Python identifiers. A
-symbolic group is also a numbered group, just as if the group were not
-named. So the group named 'id' in the example above can also be
-referenced as the numbered group 1.
-
-For example, if the pattern is
-\regexp{(?P<id>[a-zA-Z_]\e w*)}, the group can be referenced by its
-name in arguments to methods of match objects, such as \code{m.group('id')}
-or \code{m.end('id')}, and also by name in pattern text
-(e.g. \regexp{(?P=id)}) and replacement text (e.g. \code{\e g<id>}).
-%
-\item[\code{(?P=\var{name})}] Matches whatever text was matched by the
-earlier group named \var{name}.
-%
-\item[\code{(?\#...)}] A comment; the contents of the parentheses are
-simply ignored.
-%
-\item[\code{(?=...)}] Matches if \regexp{...} matches next, but doesn't
-consume any of the string. This is called a lookahead assertion. For
-example, \regexp{Isaac (?=Asimov)} will match \code{'Isaac~'} only if it's
-followed by \code{'Asimov'}.
-%
-\item[\code{(?!...)}] Matches if \regexp{...} doesn't match next. This
-is a negative lookahead assertion. For example,
-\regexp{Isaac (?!Asimov)} will match \code{'Isaac~'} only if it's \emph{not}
-followed by \code{'Asimov'}.
-
-\end{list}
-
-The special sequences consist of \character{\e} and a character from the
-list below. If the ordinary character is not on the list, then the
-resulting RE will match the second character. For example,
-\regexp{\e\$} matches the character \character{\$}.
-
-\begin{list}{}{\leftmargin \MyLeftMargin \labelwidth \MyLabelWidth}
-
-%
-\item[\code{\e \var{number}}] Matches the contents of the group of the
-same number. Groups are numbered starting from 1. For example,
-\regexp{(.+) \e 1} matches \code{'the the'} or \code{'55 55'}, but not
-\code{'the end'} (note
-the space after the group). This special sequence can only be used to
-match one of the first 99 groups. If the first digit of \var{number}
-is 0, or \var{number} is 3 octal digits long, it will not be interpreted
-as a group match, but as the character with octal value \var{number}.
-Inside the \character{[} and \character{]} of a character class, all numeric
-escapes are treated as characters.
-%
-\item[\code{\e A}] Matches only at the start of the string.
-%
-\item[\code{\e b}] Matches the empty string, but only at the
-beginning or end of a word. A word is defined as a sequence of
-alphanumeric characters, so the end of a word is indicated by
-whitespace or a non-alphanumeric character. Inside a character range,
-\regexp{\e b} represents the backspace character, for compatibility with
-Python's string literals.
-%
-\item[\code{\e B}] Matches the empty string, but only when it is
-\emph{not} at the beginning or end of a word.
-%
-\item[\code{\e d}]Matches any decimal digit; this is
-equivalent to the set \regexp{[0-9]}.
-%
-\item[\code{\e D}]Matches any non-digit character; this is
-equivalent to the set \regexp{[\^0-9]}.
-%
-\item[\code{\e s}]Matches any whitespace character; this is
-equivalent to the set \regexp{[ \e t\e n\e r\e f\e v]}.
-%
-\item[\code{\e S}]Matches any non-whitespace character; this is
-equivalent to the set \regexp{[\^\ \e t\e n\e r\e f\e v]}.
-%
-\item[\code{\e w}]When the \constant{LOCALE} flag is not specified,
-matches any alphanumeric character; this is equivalent to the set
-\regexp{[a-zA-Z0-9_]}. With \constant{LOCALE}, it will match the set
-\regexp{[0-9_]} plus whatever characters are defined as letters for the
-current locale.
-%
-\item[\code{\e W}]When the \constant{LOCALE} flag is not specified,
-matches any non-alphanumeric character; this is equivalent to the set
-\regexp{[\^a-zA-Z0-9_]}. With \constant{LOCALE}, it will match any
-character not in the set \regexp{[0-9_]}, and not defined as a letter
-for the current locale.
-
-\item[\code{\e Z}]Matches only at the end of the string.
-%
-
-\item[\code{\e \e}] Matches a literal backslash.
-
-\end{list}
-
-
-\subsection{Module Contents}
-\nodename{Contents of Module re}
-
-The module defines the following functions and constants, and an exception:
-
-
-\begin{funcdesc}{compile}{pattern\optional{, flags}}
- Compile a regular expression pattern into a regular expression
- object, which can be used for matching using its \function{match()} and
- \function{search()} methods, described below.
-
- The expression's behaviour can be modified by specifying a
- \var{flags} value. Values can be any of the following variables,
- combined using bitwise OR (the \code{|} operator).
-
-The sequence
-
-\begin{verbatim}
-prog = re.compile(pat)
-result = prog.match(str)
-\end{verbatim}
-
-is equivalent to
-
-\begin{verbatim}
-result = re.match(pat, str)
-\end{verbatim}
-
-but the version using \function{compile()} is more efficient when the
-expression will be used several times in a single program.
-%(The compiled version of the last pattern passed to
-%\function{regex.match()} or \function{regex.search()} is cached, so
-%programs that use only a single regular expression at a time needn't
-%worry about compiling regular expressions.)
-\end{funcdesc}
-
-\begin{datadesc}{I}
-\dataline{IGNORECASE}
-Perform case-insensitive matching; expressions like \regexp{[A-Z]} will match
-lowercase letters, too. This is not affected by the current locale.
-\end{datadesc}
-
-\begin{datadesc}{L}
-\dataline{LOCALE}
-Make \regexp{\e w}, \regexp{\e W}, \regexp{\e b},
-\regexp{\e B}, dependent on the current locale.
-\end{datadesc}
-
-\begin{datadesc}{M}
-\dataline{MULTILINE}
-When specified, the pattern character \character{\^} matches at the
-beginning of the string and at the beginning of each line
-(immediately following each newline); and the pattern character
-\character{\$} matches at the end of the string and at the end of each line
-(immediately preceding each newline).
-By default, \character{\^} matches only at the beginning of the string, and
-\character{\$} only at the end of the string and immediately before the
-newline (if any) at the end of the string.
-\end{datadesc}
-
-\begin{datadesc}{S}
-\dataline{DOTALL}
-Make the \character{.} special character match any character at all, including a
-newline; without this flag, \character{.} will match anything \emph{except}
-a newline.
-\end{datadesc}
-
-\begin{datadesc}{X}
-\dataline{VERBOSE}
-This flag allows you to write regular expressions that look nicer.
-Whitespace within the pattern is ignored,
-except when in a character class or preceded by an unescaped
-backslash, and, when a line contains a \character{\#} neither in a character
-class or preceded by an unescaped backslash, all characters from the
-leftmost such \character{\#} through the end of the line are ignored.
-% XXX should add an example here
-\end{datadesc}
-
-
-\begin{funcdesc}{escape}{string}
- Return \var{string} with all non-alphanumerics backslashed; this is
- useful if you want to match an arbitrary literal string that may have
- regular expression metacharacters in it.
-\end{funcdesc}
-
-\begin{funcdesc}{match}{pattern, string\optional{, flags}}
- If zero or more characters at the beginning of \var{string} match
- the regular expression \var{pattern}, return a corresponding
- \class{MatchObject} instance. Return \code{None} if the string does not
- match the pattern; note that this is different from a zero-length
- match.
-\end{funcdesc}
-
-\begin{funcdesc}{search}{pattern, string\optional{, flags}}
- Scan through \var{string} looking for a location where the regular
- expression \var{pattern} produces a match, and return a
- corresponding \class{MatchObject} instance.
- Return \code{None} if no
- position in the string matches the pattern; note that this is
- different from finding a zero-length match at some point in the string.
-\end{funcdesc}
-
-\begin{funcdesc}{split}{pattern, string, \optional{, maxsplit\code{ = 0}}}
- Split \var{string} by the occurrences of \var{pattern}. If
- capturing parentheses are used in pattern, then occurrences of
- patterns or subpatterns are also returned.
- If \var{maxsplit} is nonzero, at most \var{maxsplit} splits
- occur, and the remainder of the string is returned as the final
- element of the list. (Incompatibility note: in the original Python
- 1.5 release, \var{maxsplit} was ignored. This has been fixed in
- later releases.)
-%
-\begin{verbatim}
->>> re.split('[\W]+', 'Words, words, words.')
-['Words', 'words', 'words', '']
->>> re.split('([\W]+)', 'Words, words, words.')
-['Words', ', ', 'words', ', ', 'words', '.', '']
->>> re.split('[\W]+', 'Words, words, words.', 1)
-['Words', 'words, words.']
-\end{verbatim}
-%
- This function combines and extends the functionality of
- the old \function{regsub.split()} and \function{regsub.splitx()}.
-\end{funcdesc}
-
-\begin{funcdesc}{sub}{pattern, repl, string\optional{, count\code{ = 0}}}
-Return the string obtained by replacing the leftmost non-overlapping
-occurrences of \var{pattern} in \var{string} by the replacement
-\var{repl}. If the pattern isn't found, \var{string} is returned
-unchanged. \var{repl} can be a string or a function; if a function,
-it is called for every non-overlapping occurance of \var{pattern}.
-The function takes a single match object argument, and returns the
-replacement string. For example:
-%
-\begin{verbatim}
->>> def dashrepl(matchobj):
-.... if matchobj.group(0) == '-': return ' '
-.... else: return '-'
->>> re.sub('-{1,2}', dashrepl, 'pro----gram-files')
-'pro--gram files'
-\end{verbatim}
-%
-The pattern may be a string or a
-regex object; if you need to specify
-regular expression flags, you must use a regex object, or use
-embedded modifiers in a pattern; e.g.
-\samp{sub("(?i)b+", "x", "bbbb BBBB")} returns \code{'x x'}.
-
-The optional argument \var{count} is the maximum number of pattern
-occurrences to be replaced; \var{count} must be a non-negative integer, and
-the default value of 0 means to replace all occurrences.
-
-Empty matches for the pattern are replaced only when not adjacent to a
-previous match, so \samp{sub('x*', '-', 'abc')} returns \code{'-a-b-c-'}.
-
-If \var{repl} is a string, any backslash escapes in it are processed.
-That is, \samp{\e n} is converted to a single newline character,
-\samp{\e r} is converted to a linefeed, and so forth. Unknown escapes
-such as \samp{\e j} are left alone. Backreferences, such as \samp{\e 6}, are
-replaced with the substring matched by group 6 in the pattern.
-
-In addition to character escapes and backreferences as described
-above, \samp{\e g<name>} will use the substring matched by the group
-named \samp{name}, as defined by the \regexp{(?P<name>...)} syntax.
-\samp{\e g<number>} uses the corresponding group number; \samp{\e
-g<2>} is therefore equivalent to \samp{\e 2}, but isn't ambiguous in a
-replacement such as \samp{\e g<2>0}. \samp{\e 20} would be
-interpreted as a reference to group 20, not a reference to group 2
-followed by the literal character \character{0}.
-\end{funcdesc}
-
-\begin{funcdesc}{subn}{pattern, repl, string\optional{, count\code{ = 0}}}
-Perform the same operation as \function{sub()}, but return a tuple
-\code{(\var{new_string}, \var{number_of_subs_made})}.
-\end{funcdesc}
-
-\begin{excdesc}{error}
- Exception raised when a string passed to one of the functions here
- is not a valid regular expression (e.g., unmatched parentheses) or
- when some other error occurs during compilation or matching. It is
- never an error if a string contains no match for a pattern.
-\end{excdesc}
-
-
-\subsection{Regular Expression Objects}
-\label{re-objects}
-
-Compiled regular expression objects support the following methods and
-attributes:
-
-\begin{methoddesc}[RegexObject]{match}{string\optional{, pos}\optional{,
- endpos}}
- If zero or more characters at the beginning of \var{string} match
- this regular expression, return a corresponding
- \class{MatchObject} instance. Return \code{None} if the string does not
- match the pattern; note that this is different from a zero-length
- match.
-
- The optional second parameter \var{pos} gives an index in the string
- where the search is to start; it defaults to \code{0}. The
- \character{\^} pattern character will not match at the index where the
- search is to start.
-
- The optional parameter \var{endpos} limits how far the string will
- be searched; it will be as if the string is \var{endpos} characters
- long, so only the characters from \var{pos} to \var{endpos} will be
- searched for a match.
-\end{methoddesc}
-
-\begin{methoddesc}[RegexObject]{search}{string\optional{, pos}\optional{,
- endpos}}
- Scan through \var{string} looking for a location where this regular
- expression produces a match. Return \code{None} if no
- position in the string matches the pattern; note that this is
- different from finding a zero-length match at some point in the string.
-
- The optional \var{pos} and \var{endpos} parameters have the same
- meaning as for the \method{match()} method.
-\end{methoddesc}
-
-\begin{methoddesc}[RegexObject]{split}{string, \optional{,
- maxsplit\code{ = 0}}}
-Identical to the \function{split()} function, using the compiled pattern.
-\end{methoddesc}
-
-\begin{methoddesc}[RegexObject]{sub}{repl, string\optional{, count\code{ = 0}}}
-Identical to the \function{sub()} function, using the compiled pattern.
-\end{methoddesc}
-
-\begin{methoddesc}[RegexObject]{subn}{repl, string\optional{,
- count\code{ = 0}}}
-Identical to the \function{subn()} function, using the compiled pattern.
-\end{methoddesc}
-
-
-\begin{memberdesc}[RegexObject]{flags}
-The flags argument used when the regex object was compiled, or
-\code{0} if no flags were provided.
-\end{memberdesc}
-
-\begin{memberdesc}[RegexObject]{groupindex}
-A dictionary mapping any symbolic group names defined by
-\regexp{(?P<\var{id}>)} to group numbers. The dictionary is empty if no
-symbolic groups were used in the pattern.
-\end{memberdesc}
-
-\begin{memberdesc}[RegexObject]{pattern}
-The pattern string from which the regex object was compiled.
-\end{memberdesc}
-
-
-\subsection{Match Objects}
-\label{match-objects}
-
-\class{MatchObject} instances support the following methods and attributes:
-
-\begin{methoddesc}[MatchObject]{group}{\optional{group1, group2, ...}}
-Returns one or more subgroups of the match. If there is a single
-argument, the result is a single string; if there are
-multiple arguments, the result is a tuple with one item per argument.
-Without arguments, \var{group1} defaults to zero (i.e. the whole match
-is returned).
-If a \var{groupN} argument is zero, the corresponding return value is the
-entire matching string; if it is in the inclusive range [1..99], it is
-the string matching the the corresponding parenthesized group. If a
-group number is negative or larger than the number of groups defined
-in the pattern, an \exception{IndexError} exception is raised.
-If a group is contained in a part of the pattern that did not match,
-the corresponding result is \code{None}. If a group is contained in a
-part of the pattern that matched multiple times, the last match is
-returned.
-
-If the regular expression uses the \regexp{(?P<\var{name}>...)} syntax,
-the \var{groupN} arguments may also be strings identifying groups by
-their group name. If a string argument is not used as a group name in
-the pattern, an \exception{IndexError} exception is raised.
-
-A moderately complicated example:
-
-\begin{verbatim}
-m = re.match(r"(?P<int>\d+)\.(\d*)", '3.14')
-\end{verbatim}
-
-After performing this match, \code{m.group(1)} is \code{'3'}, as is
-\code{m.group('int')}, and \code{m.group(2)} is \code{'14'}.
-\end{methoddesc}
-
-\begin{methoddesc}[MatchObject]{groups}{}
-Return a tuple containing all the subgroups of the match, from 1 up to
-however many groups are in the pattern. Groups that did not
-participate in the match have values of \code{None}. (Incompatibility
-note: in the original Python 1.5 release, if the tuple was one element
-long, a string would be returned instead. In later versions, a
-singleton tuple is returned in such cases.)
-\end{methoddesc}
-
-\begin{methoddesc}[MatchObject]{start}{\optional{group}}
-\funcline{end}{\optional{group}}
-Return the indices of the start and end of the substring
-matched by \var{group}; \var{group} defaults to zero (meaning the whole
-matched substring).
-Return \code{None} if \var{group} exists but
-did not contribute to the match. For a match object
-\var{m}, and a group \var{g} that did contribute to the match, the
-substring matched by group \var{g} (equivalent to
-\code{\var{m}.group(\var{g})}) is
-
-\begin{verbatim}
-m.string[m.start(g):m.end(g)]
-\end{verbatim}
-
-Note that
-\code{m.start(\var{group})} will equal \code{m.end(\var{group})} if
-\var{group} matched a null string. For example, after \code{\var{m} =
-re.search('b(c?)', 'cba')}, \code{\var{m}.start(0)} is 1,
-\code{\var{m}.end(0)} is 2, \code{\var{m}.start(1)} and
-\code{\var{m}.end(1)} are both 2, and \code{\var{m}.start(2)} raises
-an \exception{IndexError} exception.
-\end{methoddesc}
-
-\begin{methoddesc}[MatchObject]{span}{\optional{group}}
-For \class{MatchObject} \var{m}, return the 2-tuple
-\code{(\var{m}.start(\var{group}), \var{m}.end(\var{group}))}.
-Note that if \var{group} did not contribute to the match, this is
-\code{(None, None)}. Again, \var{group} defaults to zero.
-\end{methoddesc}
-
-\begin{memberdesc}[MatchObject]{pos}
-The value of \var{pos} which was passed to the
-\function{search()} or \function{match()} function. This is the index into
-the string at which the regex engine started looking for a match.
-\end{memberdesc}
-
-\begin{memberdesc}[MatchObject]{endpos}
-The value of \var{endpos} which was passed to the
-\function{search()} or \function{match()} function. This is the index into
-the string beyond which the regex engine will not go.
-\end{memberdesc}
-
-\begin{memberdesc}[MatchObject]{re}
-The regular expression object whose \method{match()} or
-\method{search()} method produced this \class{MatchObject} instance.
-\end{memberdesc}
-
-\begin{memberdesc}[MatchObject]{string}
-The string passed to \function{match()} or \function{search()}.
-\end{memberdesc}
-
-\begin{seealso}
-\seetext{Jeffrey Friedl, \emph{Mastering Regular Expressions},
-O'Reilly. The Python material in this book dates from before the
-\module{re} module, but it covers writing good regular expression
-patterns in great detail.}
-\end{seealso}
-
diff --git a/Doc/libregex.tex b/Doc/libregex.tex
deleted file mode 100644
index fabc182..0000000
--- a/Doc/libregex.tex
+++ /dev/null
@@ -1,366 +0,0 @@
-\section{Built-in Module \module{regex}}
-\label{module-regex}
-\bimodindex{regex}
-
-This module provides regular expression matching operations similar to
-those found in Emacs.
-
-\strong{Obsolescence note:}
-This module is obsolete as of Python version 1.5; it is still being
-maintained because much existing code still uses it. All new code in
-need of regular expressions should use the new
-\code{re}\refstmodindex{re} module, which supports the more powerful
-and regular Perl-style regular expressions. Existing code should be
-converted. The standard library module
-\code{reconvert}\refstmodindex{reconvert} helps in converting
-\code{regex} style regular expressions to \code{re}\refstmodindex{re}
-style regular expressions. (For more conversion help, see Andrew
-Kuchling's\index{Kuchling, Andrew} ``\module{regex-to-re} HOWTO'' at
-\url{http://www.python.org/doc/howto/regex-to-re/}.)
-
-By default the patterns are Emacs-style regular expressions
-(with one exception). There is
-a way to change the syntax to match that of several well-known
-\UNIX{} utilities. The exception is that Emacs' \samp{\e s}
-pattern is not supported, since the original implementation references
-the Emacs syntax tables.
-
-This module is 8-bit clean: both patterns and strings may contain null
-bytes and characters whose high bit is set.
-
-\strong{Please note:} There is a little-known fact about Python string
-literals which means that you don't usually have to worry about
-doubling backslashes, even though they are used to escape special
-characters in string literals as well as in regular expressions. This
-is because Python doesn't remove backslashes from string literals if
-they are followed by an unrecognized escape character.
-\emph{However}, if you want to include a literal \dfn{backslash} in a
-regular expression represented as a string literal, you have to
-\emph{quadruple} it or enclose it in a singleton character class.
-E.g.\ to extract \LaTeX\ \samp{\e section\{{\rm
-\ldots}\}} headers from a document, you can use this pattern:
-\code{'[\e ]section\{\e (.*\e )\}'}. \emph{Another exception:}
-the escape sequece \samp{\e b} is significant in string literals
-(where it means the ASCII bell character) as well as in Emacs regular
-expressions (where it stands for a word boundary), so in order to
-search for a word boundary, you should use the pattern \code{'\e \e b'}.
-Similarly, a backslash followed by a digit 0-7 should be doubled to
-avoid interpretation as an octal escape.
-
-\subsection{Regular Expressions}
-
-A regular expression (or RE) specifies a set of strings that matches
-it; the functions in this module let you check if a particular string
-matches a given regular expression (or if a given regular expression
-matches a particular string, which comes down to the same thing).
-
-Regular expressions can be concatenated to form new regular
-expressions; if \emph{A} and \emph{B} are both regular expressions,
-then \emph{AB} is also an regular expression. If a string \emph{p}
-matches A and another string \emph{q} matches B, the string \emph{pq}
-will match AB. Thus, complex expressions can easily be constructed
-from simpler ones like the primitives described here. For details of
-the theory and implementation of regular expressions, consult almost
-any textbook about compiler construction.
-
-% XXX The reference could be made more specific, say to
-% "Compilers: Principles, Techniques and Tools", by Alfred V. Aho,
-% Ravi Sethi, and Jeffrey D. Ullman, or some FA text.
-
-A brief explanation of the format of regular expressions follows.
-
-Regular expressions can contain both special and ordinary characters.
-Ordinary characters, like '\code{A}', '\code{a}', or '\code{0}', are
-the simplest regular expressions; they simply match themselves. You
-can concatenate ordinary characters, so '\code{last}' matches the
-characters 'last'. (In the rest of this section, we'll write RE's in
-\code{this special font}, usually without quotes, and strings to be
-matched 'in single quotes'.)
-
-Special characters either stand for classes of ordinary characters, or
-affect how the regular expressions around them are interpreted.
-
-The special characters are:
-\begin{itemize}
-\item[\code{.}] (Dot.) Matches any character except a newline.
-\item[\code{\^}] (Caret.) Matches the start of the string.
-\item[\code{\$}] Matches the end of the string.
-\code{foo} matches both 'foo' and 'foobar', while the regular
-expression '\code{foo\$}' matches only 'foo'.
-\item[\code{*}] Causes the resulting RE to
-match 0 or more repetitions of the preceding RE. \code{ab*} will
-match 'a', 'ab', or 'a' followed by any number of 'b's.
-\item[\code{+}] Causes the
-resulting RE to match 1 or more repetitions of the preceding RE.
-\code{ab+} will match 'a' followed by any non-zero number of 'b's; it
-will not match just 'a'.
-\item[\code{?}] Causes the resulting RE to
-match 0 or 1 repetitions of the preceding RE. \code{ab?} will
-match either 'a' or 'ab'.
-
-\item[\code{\e}] Either escapes special characters (permitting you to match
-characters like '*?+\&\$'), or signals a special sequence; special
-sequences are discussed below. Remember that Python also uses the
-backslash as an escape sequence in string literals; if the escape
-sequence isn't recognized by Python's parser, the backslash and
-subsequent character are included in the resulting string. However,
-if Python would recognize the resulting sequence, the backslash should
-be repeated twice.
-
-\item[\code{[]}] Used to indicate a set of characters. Characters can
-be listed individually, or a range is indicated by giving two
-characters and separating them by a '-'. Special characters are
-not active inside sets. For example, \code{[akm\$]}
-will match any of the characters 'a', 'k', 'm', or '\$'; \code{[a-z]} will
-match any lowercase letter.
-
-If you want to include a \code{]} inside a
-set, it must be the first character of the set; to include a \code{-},
-place it as the first or last character.
-
-Characters \emph{not} within a range can be matched by including a
-\code{\^} as the first character of the set; \code{\^} elsewhere will
-simply match the '\code{\^}' character.
-\end{itemize}
-
-The special sequences consist of '\code{\e}' and a character
-from the list below. If the ordinary character is not on the list,
-then the resulting RE will match the second character. For example,
-\code{\e\$} matches the character '\$'. Ones where the backslash
-should be doubled in string literals are indicated.
-
-\begin{itemize}
-\item[\code{\e|}]\code{A\e|B}, where A and B can be arbitrary REs,
-creates a regular expression that will match either A or B. This can
-be used inside groups (see below) as well.
-%
-\item[\code{\e( \e)}] Indicates the start and end of a group; the
-contents of a group can be matched later in the string with the
-\code{\e [1-9]} special sequence, described next.
-\end{itemize}
-
-\begin{fulllineitems}
-\item[\code{\e \e 1, ... \e \e 7, \e 8, \e 9}]
-Matches the contents of the group of the same
-number. For example, \code{\e (.+\e ) \e \e 1} matches 'the the' or
-'55 55', but not 'the end' (note the space after the group). This
-special sequence can only be used to match one of the first 9 groups;
-groups with higher numbers can be matched using the \code{\e v}
-sequence. (\code{\e 8} and \code{\e 9} don't need a double backslash
-because they are not octal digits.)
-\end{fulllineitems}
-
-\begin{itemize}
-\item[\code{\e \e b}] Matches the empty string, but only at the
-beginning or end of a word. A word is defined as a sequence of
-alphanumeric characters, so the end of a word is indicated by
-whitespace or a non-alphanumeric character.
-%
-\item[\code{\e B}] Matches the empty string, but when it is \emph{not} at the
-beginning or end of a word.
-%
-\item[\code{\e v}] Must be followed by a two digit decimal number, and
-matches the contents of the group of the same number. The group
-number must be between 1 and 99, inclusive.
-%
-\item[\code{\e w}]Matches any alphanumeric character; this is
-equivalent to the set \code{[a-zA-Z0-9]}.
-%
-\item[\code{\e W}] Matches any non-alphanumeric character; this is
-equivalent to the set \code{[\^a-zA-Z0-9]}.
-\item[\code{\e <}] Matches the empty string, but only at the beginning of a
-word. A word is defined as a sequence of alphanumeric characters, so
-the end of a word is indicated by whitespace or a non-alphanumeric
-character.
-\item[\code{\e >}] Matches the empty string, but only at the end of a
-word.
-
-\item[\code{\e \e \e \e}] Matches a literal backslash.
-
-% In Emacs, the following two are start of buffer/end of buffer. In
-% Python they seem to be synonyms for ^$.
-\item[\code{\e `}] Like \code{\^}, this only matches at the start of the
-string.
-\item[\code{\e \e '}] Like \code{\$}, this only matches at the end of
-the string.
-% end of buffer
-\end{itemize}
-
-\subsection{Module Contents}
-\nodename{Contents of Module regex}
-
-The module defines these functions, and an exception:
-
-
-\begin{funcdesc}{match}{pattern, string}
- Return how many characters at the beginning of \var{string} match
- the regular expression \var{pattern}. Return \code{-1} if the
- string does not match the pattern (this is different from a
- zero-length match!).
-\end{funcdesc}
-
-\begin{funcdesc}{search}{pattern, string}
- Return the first position in \var{string} that matches the regular
- expression \var{pattern}. Return \code{-1} if no position in the string
- matches the pattern (this is different from a zero-length match
- anywhere!).
-\end{funcdesc}
-
-\begin{funcdesc}{compile}{pattern\optional{, translate}}
- Compile a regular expression pattern into a regular expression
- object, which can be used for matching using its \code{match()} and
- \code{search()} methods, described below. The optional argument
- \var{translate}, if present, must be a 256-character string
- indicating how characters (both of the pattern and of the strings to
- be matched) are translated before comparing them; the \var{i}-th
- element of the string gives the translation for the character with
- \ASCII{} code \var{i}. This can be used to implement
- case-insensitive matching; see the \code{casefold} data item below.
-
- The sequence
-
-\begin{verbatim}
-prog = regex.compile(pat)
-result = prog.match(str)
-\end{verbatim}
-%
-is equivalent to
-
-\begin{verbatim}
-result = regex.match(pat, str)
-\end{verbatim}
-
-but the version using \code{compile()} is more efficient when multiple
-regular expressions are used concurrently in a single program. (The
-compiled version of the last pattern passed to \code{regex.match()} or
-\code{regex.search()} is cached, so programs that use only a single
-regular expression at a time needn't worry about compiling regular
-expressions.)
-\end{funcdesc}
-
-\begin{funcdesc}{set_syntax}{flags}
- Set the syntax to be used by future calls to \code{compile()},
- \code{match()} and \code{search()}. (Already compiled expression
- objects are not affected.) The argument is an integer which is the
- OR of several flag bits. The return value is the previous value of
- the syntax flags. Names for the flags are defined in the standard
- module \code{regex_syntax}\refstmodindex{regex_syntax}; read the
- file \file{regex_syntax.py} for more information.
-\end{funcdesc}
-
-\begin{funcdesc}{get_syntax}{}
- Returns the current value of the syntax flags as an integer.
-\end{funcdesc}
-
-\begin{funcdesc}{symcomp}{pattern\optional{, translate}}
-This is like \code{compile()}, but supports symbolic group names: if a
-parenthesis-enclosed group begins with a group name in angular
-brackets, e.g. \code{'\e(<id>[a-z][a-z0-9]*\e)'}, the group can
-be referenced by its name in arguments to the \code{group()} method of
-the resulting compiled regular expression object, like this:
-\code{p.group('id')}. Group names may contain alphanumeric characters
-and \code{'_'} only.
-\end{funcdesc}
-
-\begin{excdesc}{error}
- Exception raised when a string passed to one of the functions here
- is not a valid regular expression (e.g., unmatched parentheses) or
- when some other error occurs during compilation or matching. (It is
- never an error if a string contains no match for a pattern.)
-\end{excdesc}
-
-\begin{datadesc}{casefold}
-A string suitable to pass as the \var{translate} argument to
-\code{compile()} to map all upper case characters to their lowercase
-equivalents.
-\end{datadesc}
-
-\noindent
-Compiled regular expression objects support these methods:
-
-\setindexsubitem{(regex method)}
-\begin{funcdesc}{match}{string\optional{, pos}}
- Return how many characters at the beginning of \var{string} match
- the compiled regular expression. Return \code{-1} if the string
- does not match the pattern (this is different from a zero-length
- match!).
-
- The optional second parameter, \var{pos}, gives an index in the string
- where the search is to start; it defaults to \code{0}. This is not
- completely equivalent to slicing the string; the \code{'\^'} pattern
- character matches at the real begin of the string and at positions
- just after a newline, not necessarily at the index where the search
- is to start.
-\end{funcdesc}
-
-\begin{funcdesc}{search}{string\optional{, pos}}
- Return the first position in \var{string} that matches the regular
- expression \code{pattern}. Return \code{-1} if no position in the
- string matches the pattern (this is different from a zero-length
- match anywhere!).
-
- The optional second parameter has the same meaning as for the
- \code{match()} method.
-\end{funcdesc}
-
-\begin{funcdesc}{group}{index, index, ...}
-This method is only valid when the last call to the \code{match()}
-or \code{search()} method found a match. It returns one or more
-groups of the match. If there is a single \var{index} argument,
-the result is a single string; if there are multiple arguments, the
-result is a tuple with one item per argument. If the \var{index} is
-zero, the corresponding return value is the entire matching string; if
-it is in the inclusive range [1..99], it is the string matching the
-the corresponding parenthesized group (using the default syntax,
-groups are parenthesized using \code{{\e}(} and \code{{\e})}). If no
-such group exists, the corresponding result is \code{None}.
-
-If the regular expression was compiled by \code{symcomp()} instead of
-\code{compile()}, the \var{index} arguments may also be strings
-identifying groups by their group name.
-\end{funcdesc}
-
-\noindent
-Compiled regular expressions support these data attributes:
-
-\setindexsubitem{(regex attribute)}
-
-\begin{datadesc}{regs}
-When the last call to the \code{match()} or \code{search()} method found a
-match, this is a tuple of pairs of indexes corresponding to the
-beginning and end of all parenthesized groups in the pattern. Indices
-are relative to the string argument passed to \code{match()} or
-\code{search()}. The 0-th tuple gives the beginning and end or the
-whole pattern. When the last match or search failed, this is
-\code{None}.
-\end{datadesc}
-
-\begin{datadesc}{last}
-When the last call to the \code{match()} or \code{search()} method found a
-match, this is the string argument passed to that method. When the
-last match or search failed, this is \code{None}.
-\end{datadesc}
-
-\begin{datadesc}{translate}
-This is the value of the \var{translate} argument to
-\code{regex.compile()} that created this regular expression object. If
-the \var{translate} argument was omitted in the \code{regex.compile()}
-call, this is \code{None}.
-\end{datadesc}
-
-\begin{datadesc}{givenpat}
-The regular expression pattern as passed to \code{compile()} or
-\code{symcomp()}.
-\end{datadesc}
-
-\begin{datadesc}{realpat}
-The regular expression after stripping the group names for regular
-expressions compiled with \code{symcomp()}. Same as \code{givenpat}
-otherwise.
-\end{datadesc}
-
-\begin{datadesc}{groupindex}
-A dictionary giving the mapping from symbolic group names to numerical
-group indexes for regular expressions compiled with \code{symcomp()}.
-\code{None} otherwise.
-\end{datadesc}
diff --git a/Doc/libregsub.tex b/Doc/libregsub.tex
deleted file mode 100644
index c390a49..0000000
--- a/Doc/libregsub.tex
+++ /dev/null
@@ -1,70 +0,0 @@
-\section{Standard Module \module{regsub}}
-\label{module-regsub}
-\stmodindex{regsub}
-
-This module defines a number of functions useful for working with
-regular expressions (see built-in module \code{regex}).
-
-Warning: these functions are not thread-safe.
-
-\strong{Obsolescence note:}
-This module is obsolete as of Python version 1.5; it is still being
-maintained because much existing code still uses it. All new code in
-need of regular expressions should use the new \module{re} module, which
-supports the more powerful and regular Perl-style regular expressions.
-Existing code should be converted. The standard library module
-\module{reconvert} helps in converting \code{regex} style regular
-expressions to \module{re} style regular expressions. (For more
-conversion help, see Andrew Kuchling's\index{Kuchling, Andrew}
-``regex-to-re HOWTO'' at
-\url{http://www.python.org/doc/howto/regex-to-re/}.)
-
-
-\begin{funcdesc}{sub}{pat, repl, str}
-Replace the first occurrence of pattern \var{pat} in string
-\var{str} by replacement \var{repl}. If the pattern isn't found,
-the string is returned unchanged. The pattern may be a string or an
-already compiled pattern. The replacement may contain references
-\samp{\e \var{digit}} to subpatterns and escaped backslashes.
-\end{funcdesc}
-
-\begin{funcdesc}{gsub}{pat, repl, str}
-Replace all (non-overlapping) occurrences of pattern \var{pat} in
-string \var{str} by replacement \var{repl}. The same rules as for
-\code{sub()} apply. Empty matches for the pattern are replaced only
-when not adjacent to a previous match, so e.g.
-\code{gsub('', '-', 'abc')} returns \code{'-a-b-c-'}.
-\end{funcdesc}
-
-\begin{funcdesc}{split}{str, pat\optional{, maxsplit}}
-Split the string \var{str} in fields separated by delimiters matching
-the pattern \var{pat}, and return a list containing the fields. Only
-non-empty matches for the pattern are considered, so e.g.
-\code{split('a:b', ':*')} returns \code{['a', 'b']} and
-\code{split('abc', '')} returns \code{['abc']}. The \var{maxsplit}
-defaults to 0. If it is nonzero, only \var{maxsplit} number of splits
-occur, and the remainder of the string is returned as the final
-element of the list.
-\end{funcdesc}
-
-\begin{funcdesc}{splitx}{str, pat\optional{, maxsplit}}
-Split the string \var{str} in fields separated by delimiters matching
-the pattern \var{pat}, and return a list containing the fields as well
-as the separators. For example, \code{splitx('a:::b', ':*')} returns
-\code{['a', ':::', 'b']}. Otherwise, this function behaves the same
-as \code{split}.
-\end{funcdesc}
-
-\begin{funcdesc}{capwords}{s\optional{, pat}}
-Capitalize words separated by optional pattern \var{pat}. The default
-pattern uses any characters except letters, digits and underscores as
-word delimiters. Capitalization is done by changing the first
-character of each word to upper case.
-\end{funcdesc}
-
-\begin{funcdesc}{clear_cache}{}
-The regsub module maintains a cache of compiled regular expressions,
-keyed on the regular expression string and the syntax of the regex
-module at the time the expression was compiled. This function clears
-that cache.
-\end{funcdesc}
diff --git a/Doc/libresource.tex b/Doc/libresource.tex
deleted file mode 100644
index bb0bff2..0000000
--- a/Doc/libresource.tex
+++ /dev/null
@@ -1,200 +0,0 @@
-\section{Built-in Module \module{resource}}
-\label{module-resource}
-
-\bimodindex{resource}
-This module provides basic mechanisms for measuring and controlling
-system resources utilized by a program.
-
-Symbolic constants are used to specify particular system resources and
-to request usage information about either the current process or its
-children.
-
-A single exception is defined for errors:
-
-
-\begin{excdesc}{error}
- The functions described below may raise this error if the underlying
- system call failures unexpectedly.
-\end{excdesc}
-
-\subsection{Resource Limits}
-
-Resources usage can be limited using the \function{setrlimit()} function
-described below. Each resource is controlled by a pair of limits: a
-soft limit and a hard limit. The soft limit is the current limit, and
-may be lowered or raised by a process over time. The soft limit can
-never exceed the hard limit. The hard limit can be lowered to any
-value greater than the soft limit, but not raised. (Only processes with
-the effective UID of the super-user can raise a hard limit.)
-
-The specific resources that can be limited are system dependent. They
-are described in the \manpage{getrlimit}{2} man page. The resources
-listed below are supported when the underlying operating system
-supports them; resources which cannot be checked or controlled by the
-operating system are not defined in this module for those platforms.
-
-\begin{funcdesc}{getrlimit}{resource}
- Returns a tuple \code{(\var{soft}, \var{hard})} with the current
- soft and hard limits of \var{resource}. Raises \exception{ValueError} if
- an invalid resource is specified, or \exception{error} if the
- underyling system call fails unexpectedly.
-\end{funcdesc}
-
-\begin{funcdesc}{setrlimit}{resource, limits}
- Sets new limits of consumption of \var{resource}. The \var{limits}
- argument must be a tuple \code{(\var{soft}, \var{hard})} of two
- integers describing the new limits. A value of \code{-1} can be used to
- specify the maximum possible upper limit.
-
- Raises \exception{ValueError} if an invalid resource is specified,
- if the new soft limit exceeds the hard limit, or if a process tries
- to raise its hard limit (unless the process has an effective UID of
- super-user). Can also raise \exception{error} if the underyling
- system call fails.
-\end{funcdesc}
-
-These symbols define resources whose consumption can be controlled
-using the \function{setrlimit()} and \function{getrlimit()} functions
-described below. The values of these symbols are exactly the constants
-used by \C{} programs.
-
-The \UNIX{} man page for \manpage{getrlimit}{2} lists the available
-resources. Note that not all systems use the same symbol or same
-value to denote the same resource.
-
-\begin{datadesc}{RLIMIT_CORE}
- The maximum size (in bytes) of a core file that the current process
- can create. This may result in the creation of a partial core file
- if a larger core would be required to contain the entire process
- image.
-\end{datadesc}
-
-\begin{datadesc}{RLIMIT_CPU}
- The maximum amount of CPU time (in seconds) that a process can
- use. If this limit is exceeded, a \constant{SIGXCPU} signal is sent to
- the process. (See the \module{signal} module documentation for
- information about how to catch this signal and do something useful,
- e.g. flush open files to disk.)
-\end{datadesc}
-
-\begin{datadesc}{RLIMIT_FSIZE}
- The maximum size of a file which the process may create. This only
- affects the stack of the main thread in a multi-threaded process.
-\end{datadesc}
-
-\begin{datadesc}{RLIMIT_DATA}
- The maximum size (in bytes) of the process's heap.
-\end{datadesc}
-
-\begin{datadesc}{RLIMIT_STACK}
- The maximum size (in bytes) of the call stack for the current
- process.
-\end{datadesc}
-
-\begin{datadesc}{RLIMIT_RSS}
- The maximum resident set size that should be made available to the
- process.
-\end{datadesc}
-
-\begin{datadesc}{RLIMIT_NPROC}
- The maximum number of processes the current process may create.
-\end{datadesc}
-
-\begin{datadesc}{RLIMIT_NOFILE}
- The maximum number of open file descriptors for the current
- process.
-\end{datadesc}
-
-\begin{datadesc}{RLIMIT_OFILE}
- The BSD name for \constant{RLIMIT_NOFILE}.
-\end{datadesc}
-
-\begin{datadesc}{RLIMIT_MEMLOC}
- The maximm address space which may be locked in memory.
-\end{datadesc}
-
-\begin{datadesc}{RLIMIT_VMEM}
- The largest area of mapped memory which the process may occupy.
-\end{datadesc}
-
-\begin{datadesc}{RLIMIT_AS}
- The maximum area (in bytes) of address space which may be taken by
- the process.
-\end{datadesc}
-
-\subsection{Resource Usage}
-
-These functiona are used to retrieve resource usage information:
-
-\begin{funcdesc}{getrusage}{who}
- This function returns a large tuple that describes the resources
- consumed by either the current process or its children, as specified
- by the \var{who} parameter. The \var{who} parameter should be
- specified using one of the \code{RUSAGE_*} constants described
- below.
-
- The elements of the return value each
- describe how a particular system resource has been used, e.g. amount
- of time spent running is user mode or number of times the process was
- swapped out of main memory. Some values are dependent on the clock
- tick internal, e.g. the amount of memory the process is using.
-
- The first two elements of the return value are floating point values
- representing the amount of time spent executing in user mode and the
- amount of time spent executing in system mode, respectively. The
- remaining values are integers. Consult the \manpage{getrusage}{2}
- man page for detailed information about these values. A brief
- summary is presented here:
-
-\begin{tableii}{r|l}{code}{Offset}{Resource}
- \lineii{0}{time in user mode (float)}
- \lineii{1}{time in system mode (float)}
- \lineii{2}{maximum resident set size}
- \lineii{3}{shared memory size}
- \lineii{4}{unshared memory size}
- \lineii{5}{unshared stack size}
- \lineii{6}{page faults not requiring I/O}
- \lineii{7}{page faults requiring I/O}
- \lineii{8}{number of swap outs}
- \lineii{9}{block input operations}
- \lineii{10}{block output operations}
- \lineii{11}{messages sent}
- \lineii{12}{messages received}
- \lineii{13}{signals received}
- \lineii{14}{voluntary context switches}
- \lineii{15}{involuntary context switches}
-\end{tableii}
-
- This function will raise a \exception{ValueError} if an invalid
- \var{who} parameter is specified. It may also raise
- \exception{error} exception in unusual circumstances.
-\end{funcdesc}
-
-\begin{funcdesc}{getpagesize}{}
- Returns the number of bytes in a system page. (This need not be the
- same as the hardware page size.) This function is useful for
- determining the number of bytes of memory a process is using. The
- third element of the tuple returned by \function{getrusage()} describes
- memory usage in pages; multiplying by page size produces number of
- bytes.
-\end{funcdesc}
-
-The following \code{RUSAGE_*} symbols are passed to the
-\function{getrusage()} function to specify which processes information
-should be provided for.
-
-\begin{datadesc}{RUSAGE_SELF}
- \constant{RUSAGE_SELF} should be used to
- request information pertaining only to the process itself.
-\end{datadesc}
-
-\begin{datadesc}{RUSAGE_CHILDREN}
- Pass to \function{getrusage()} to request resource information for
- child processes of the calling process.
-\end{datadesc}
-
-\begin{datadesc}{RUSAGE_BOTH}
- Pass to \function{getrusage()} to request resources consumed by both
- the current process and child processes. May not be available on all
- systems.
-\end{datadesc}
diff --git a/Doc/librestricted.tex b/Doc/librestricted.tex
deleted file mode 100644
index f78d7bb..0000000
--- a/Doc/librestricted.tex
+++ /dev/null
@@ -1,79 +0,0 @@
-\chapter{Restricted Execution}
-\label{restricted}
-
-In general, Python programs have complete access to the underlying
-operating system throug the various functions and classes, For
-example, a Python program can open any file for reading and writing by
-using the \code{open()} built-in function (provided the underlying OS
-gives you permission!). This is exactly what you want for most
-applications.
-
-There exists a class of applications for which this ``openness'' is
-inappropriate. Take Grail: a web browser that accepts ``applets'',
-snippets of Python code, from anywhere on the Internet for execution
-on the local system. This can be used to improve the user interface
-of forms, for instance. Since the originator of the code is unknown,
-it is obvious that it cannot be trusted with the full resources of the
-local machine.
-
-\emph{Restricted execution} is the basic framework in Python that allows
-for the segregation of trusted and untrusted code. It is based on the
-notion that trusted Python code (a \emph{supervisor}) can create a
-``padded cell' (or environment) with limited permissions, and run the
-untrusted code within this cell. The untrusted code cannot break out
-of its cell, and can only interact with sensitive system resources
-through interfaces defined and managed by the trusted code. The term
-``restricted execution'' is favored over ``safe-Python''
-since true safety is hard to define, and is determined by the way the
-restricted environment is created. Note that the restricted
-environments can be nested, with inner cells creating subcells of
-lesser, but never greater, privilege.
-
-An interesting aspect of Python's restricted execution model is that
-the interfaces presented to untrusted code usually have the same names
-as those presented to trusted code. Therefore no special interfaces
-need to be learned to write code designed to run in a restricted
-environment. And because the exact nature of the padded cell is
-determined by the supervisor, different restrictions can be imposed,
-depending on the application. For example, it might be deemed
-``safe'' for untrusted code to read any file within a specified
-directory, but never to write a file. In this case, the supervisor
-may redefine the built-in
-\code{open()} function so that it raises an exception whenever the
-\var{mode} parameter is \code{'w'}. It might also perform a
-\code{chroot()}-like operation on the \var{filename} parameter, such
-that root is always relative to some safe ``sandbox'' area of the
-filesystem. In this case, the untrusted code would still see an
-built-in \code{open()} function in its environment, with the same
-calling interface. The semantics would be identical too, with
-\code{IOError}s being raised when the supervisor determined that an
-unallowable parameter is being used.
-
-The Python run-time determines whether a particular code block is
-executing in restricted execution mode based on the identity of the
-\code{__builtins__} object in its global variables: if this is (the
-dictionary of) the standard \code{__builtin__} module, the code is
-deemed to be unrestricted, else it is deemed to be restricted.
-
-Python code executing in restricted mode faces a number of limitations
-that are designed to prevent it from escaping from the padded cell.
-For instance, the function object attribute \code{func_globals} and the
-class and instance object attribute \code{__dict__} are unavailable.
-
-Two modules provide the framework for setting up restricted execution
-environments:
-
-\begin{description}
-
-\item[rexec]
---- Basic restricted execution framework.
-
-\item[Bastion]
---- Providing restricted access to objects.
-
-\end{description}
-
-\begin{seealso}
-\seetext{Andrew Kuchling, ``Restricted Execution HOWTO.'' Available
-online at \url{http://www.python.org/doc/howto/rexec/}.}
-\end{seealso}
diff --git a/Doc/librexec.tex b/Doc/librexec.tex
deleted file mode 100644
index baddece..0000000
--- a/Doc/librexec.tex
+++ /dev/null
@@ -1,221 +0,0 @@
-\section{Standard Module \module{rexec}}
-\label{module-rexec}
-\stmodindex{rexec}
-
-
-This module contains the \class{RExec} class, which supports
-\method{r_exec()}, \method{r_eval()}, \method{r_execfile()}, and
-\method{r_import()} methods, which are restricted versions of the standard
-Python functions \method{exec()}, \method{eval()}, \method{execfile()}, and
-the \keyword{import} statement.
-Code executed in this restricted environment will
-only have access to modules and functions that are deemed safe; you
-can subclass \class{RExec} to add or remove capabilities as desired.
-
-\emph{Note:} The \class{RExec} class can prevent code from performing
-unsafe operations like reading or writing disk files, or using TCP/IP
-sockets. However, it does not protect against code using extremely
-large amounts of memory or CPU time.
-
-\begin{classdesc}{RExec}{\optional{hooks\optional{, verbose}}}
-Returns an instance of the \class{RExec} class.
-
-\var{hooks} is an instance of the \class{RHooks} class or a subclass of it.
-If it is omitted or \code{None}, the default \class{RHooks} class is
-instantiated.
-Whenever the \module{RExec} module searches for a module (even a
-built-in one) or reads a module's code, it doesn't actually go out to
-the file system itself. Rather, it calls methods of an \class{RHooks}
-instance that was passed to or created by its constructor. (Actually,
-the \class{RExec} object doesn't make these calls --- they are made by
-a module loader object that's part of the \class{RExec} object. This
-allows another level of flexibility, e.g. using packages.)
-
-By providing an alternate \class{RHooks} object, we can control the
-file system accesses made to import a module, without changing the
-actual algorithm that controls the order in which those accesses are
-made. For instance, we could substitute an \class{RHooks} object that
-passes all filesystem requests to a file server elsewhere, via some
-RPC mechanism such as ILU. Grail's applet loader uses this to support
-importing applets from a URL for a directory.
-
-If \var{verbose} is true, additional debugging output may be sent to
-standard output.
-\end{classdesc}
-
-The \class{RExec} class has the following class attributes, which are
-used by the \method{__init__()} method. Changing them on an existing
-instance won't have any effect; instead, create a subclass of
-\class{RExec} and assign them new values in the class definition.
-Instances of the new class will then use those new values. All these
-attributes are tuples of strings.
-
-\begin{memberdesc}{nok_builtin_names}
-Contains the names of built-in functions which will \emph{not} be
-available to programs running in the restricted environment. The
-value for \class{RExec} is \code{('open',} \code{'reload',}
-\code{'__import__')}. (This gives the exceptions, because by far the
-majority of built-in functions are harmless. A subclass that wants to
-override this variable should probably start with the value from the
-base class and concatenate additional forbidden functions --- when new
-dangerous built-in functions are added to Python, they will also be
-added to this module.)
-\end{memberdesc}
-
-\begin{memberdesc}{ok_builtin_modules}
-Contains the names of built-in modules which can be safely imported.
-The value for \class{RExec} is \code{('audioop',} \code{'array',}
-\code{'binascii',} \code{'cmath',} \code{'errno',} \code{'imageop',}
-\code{'marshal',} \code{'math',} \code{'md5',} \code{'operator',}
-\code{'parser',} \code{'regex',} \code{'rotor',} \code{'select',}
-\code{'strop',} \code{'struct',} \code{'time')}. A similar remark
-about overriding this variable applies --- use the value from the base
-class as a starting point.
-\end{memberdesc}
-
-\begin{memberdesc}{ok_path}
-Contains the directories which will be searched when an \keyword{import}
-is performed in the restricted environment.
-The value for \class{RExec} is the same as \code{sys.path} (at the time
-the module is loaded) for unrestricted code.
-\end{memberdesc}
-
-\begin{memberdesc}{ok_posix_names}
-% Should this be called ok_os_names?
-Contains the names of the functions in the \module{os} module which will be
-available to programs running in the restricted environment. The
-value for \class{RExec} is \code{('error',} \code{'fstat',}
-\code{'listdir',} \code{'lstat',} \code{'readlink',} \code{'stat',}
-\code{'times',} \code{'uname',} \code{'getpid',} \code{'getppid',}
-\code{'getcwd',} \code{'getuid',} \code{'getgid',} \code{'geteuid',}
-\code{'getegid')}.
-\end{memberdesc}
-
-\begin{memberdesc}{ok_sys_names}
-Contains the names of the functions and variables in the \module{sys}
-module which will be available to programs running in the restricted
-environment. The value for \class{RExec} is \code{('ps1',}
-\code{'ps2',} \code{'copyright',} \code{'version',} \code{'platform',}
-\code{'exit',} \code{'maxint')}.
-\end{memberdesc}
-
-
-\class{RExec} instances support the following methods:
-
-\begin{methoddesc}{r_eval}{code}
-\var{code} must either be a string containing a Python expression, or
-a compiled code object, which will be evaluated in the restricted
-environment's \module{__main__} module. The value of the expression or
-code object will be returned.
-\end{methoddesc}
-
-\begin{methoddesc}{r_exec}{code}
-\var{code} must either be a string containing one or more lines of
-Python code, or a compiled code object, which will be executed in the
-restricted environment's \module{__main__} module.
-\end{methoddesc}
-
-\begin{methoddesc}{r_execfile}{filename}
-Execute the Python code contained in the file \var{filename} in the
-restricted environment's \module{__main__} module.
-\end{methoddesc}
-
-Methods whose names begin with \samp{s_} are similar to the functions
-beginning with \samp{r_}, but the code will be granted access to
-restricted versions of the standard I/O streams \code{sys.stdin},
-\code{sys.stderr}, and \code{sys.stdout}.
-
-\begin{methoddesc}{s_eval}{code}
-\var{code} must be a string containing a Python expression, which will
-be evaluated in the restricted environment.
-\end{methoddesc}
-
-\begin{methoddesc}{s_exec}{code}
-\var{code} must be a string containing one or more lines of Python code,
-which will be executed in the restricted environment.
-\end{methoddesc}
-
-\begin{methoddesc}{s_execfile}{code}
-Execute the Python code contained in the file \var{filename} in the
-restricted environment.
-\end{methoddesc}
-
-\class{RExec} objects must also support various methods which will be
-implicitly called by code executing in the restricted environment.
-Overriding these methods in a subclass is used to change the policies
-enforced by a restricted environment.
-
-\begin{methoddesc}{r_import}{modulename\optional{, globals\optional{,
- locals\optional{, fromlist}}}}
-Import the module \var{modulename}, raising an \exception{ImportError}
-exception if the module is considered unsafe.
-\end{methoddesc}
-
-\begin{methoddesc}{r_open}{filename\optional{, mode\optional{, bufsize}}}
-Method called when \function{open()} is called in the restricted
-environment. The arguments are identical to those of \function{open()},
-and a file object (or a class instance compatible with file objects)
-should be returned. \class{RExec}'s default behaviour is allow opening
-any file for reading, but forbidding any attempt to write a file. See
-the example below for an implementation of a less restrictive
-\method{r_open()}.
-\end{methoddesc}
-
-\begin{methoddesc}{r_reload}{module}
-Reload the module object \var{module}, re-parsing and re-initializing it.
-\end{methoddesc}
-
-\begin{methoddesc}{r_unload}{module}
-Unload the module object \var{module} (i.e., remove it from the
-restricted environment's \code{sys.modules} dictionary).
-\end{methoddesc}
-
-And their equivalents with access to restricted standard I/O streams:
-
-\begin{methoddesc}{s_import}{modulename\optional{, globals\optional{,
- locals\optional{, fromlist}}}}
-Import the module \var{modulename}, raising an \exception{ImportError}
-exception if the module is considered unsafe.
-\end{methoddesc}
-
-\begin{methoddesc}{s_reload}{module}
-Reload the module object \var{module}, re-parsing and re-initializing it.
-\end{methoddesc}
-
-\begin{methoddesc}{s_unload}{module}
-Unload the module object \var{module}.
-% XXX what are the semantics of this?
-\end{methoddesc}
-
-\subsection{An example}
-
-Let us say that we want a slightly more relaxed policy than the
-standard \class{RExec} class. For example, if we're willing to allow
-files in \file{/tmp} to be written, we can subclass the \class{RExec}
-class:
-
-\begin{verbatim}
-class TmpWriterRExec(rexec.RExec):
- def r_open(self, file, mode='r', buf=-1):
- if mode in ('r', 'rb'):
- pass
- elif mode in ('w', 'wb', 'a', 'ab'):
- # check filename : must begin with /tmp/
- if file[:5]!='/tmp/':
- raise IOError, "can't write outside /tmp"
- elif (string.find(file, '/../') >= 0 or
- file[:3] == '../' or file[-3:] == '/..'):
- raise IOError, "'..' in filename forbidden"
- else: raise IOError, "Illegal open() mode"
- return open(file, mode, buf)
-\end{verbatim}
-%
-Notice that the above code will occasionally forbid a perfectly valid
-filename; for example, code in the restricted environment won't be
-able to open a file called \file{/tmp/foo/../bar}. To fix this, the
-\method{r_open()} method would have to simplify the filename to
-\file{/tmp/bar}, which would require splitting apart the filename and
-performing various operations on it. In cases where security is at
-stake, it may be preferable to write simple code which is sometimes
-overly restrictive, instead of more general code that is also more
-complex and may harbor a subtle security hole.
diff --git a/Doc/librfc822.tex b/Doc/librfc822.tex
deleted file mode 100644
index 945aef2..0000000
--- a/Doc/librfc822.tex
+++ /dev/null
@@ -1,165 +0,0 @@
-\section{Standard Module \module{rfc822}}
-\label{module-rfc822}
-\stmodindex{rfc822}
-
-
-This module defines a class, \class{Message}, which represents a
-collection of ``email headers'' as defined by the Internet standard
-\rfc{822}. It is used in various contexts, usually to read such
-headers from a file.
-
-Note that there's a separate module to read \UNIX{}, MH, and MMDF
-style mailbox files: \module{mailbox}\refstmodindex{mailbox}.
-
-\begin{classdesc}{Message}{file\optional{, seekable}}
-A \class{Message} instance is instantiated with an open file object as
-parameter. The optional \var{seekable} parameter indicates if the
-file object is seekable; the default value is \code{1} for true.
-Instantiation reads headers from the file up to a blank line and
-stores them in the instance; after instantiation, the file is
-positioned directly after the blank line that terminates the headers.
-
-Input lines as read from the file may either be terminated by CR-LF or
-by a single linefeed; a terminating CR-LF is replaced by a single
-linefeed before the line is stored.
-
-All header matching is done independent of upper or lower case;
-e.g. \code{\var{m}['From']}, \code{\var{m}['from']} and
-\code{\var{m}['FROM']} all yield the same result.
-\end{classdesc}
-
-\begin{funcdesc}{parsedate}{date}
-Attempts to parse a date according to the rules in \rfc{822}.
-however, some mailers don't follow that format as specified, so
-\function{parsedate()} tries to guess correctly in such cases.
-\var{date} is a string containing an \rfc{822} date, such as
-\code{'Mon, 20 Nov 1995 19:12:08 -0500'}. If it succeeds in parsing
-the date, \function{parsedate()} returns a 9-tuple that can be passed
-directly to \function{time.mktime()}; otherwise \code{None} will be
-returned.
-\end{funcdesc}
-
-\begin{funcdesc}{parsedate_tz}{date}
-Performs the same function as \function{parsedate()}, but returns
-either \code{None} or a 10-tuple; the first 9 elements make up a tuple
-that can be passed directly to \function{time.mktime()}, and the tenth
-is the offset of the date's timezone from UTC (which is the official
-term for Greenwich Mean Time). (Note that the sign of the timezone
-offset is the opposite of the sign of the \code{time.timezone}
-variable for the same timezone; the latter variable follows the
-\POSIX{} standard while this module follows \rfc{822}.) If the input
-string has no timezone, the last element of the tuple returned is
-\code{None}.
-\end{funcdesc}
-
-\begin{funcdesc}{mktime_tz}{tuple}
-Turn a 10-tuple as returned by \function{parsedate_tz()} into a UTC
-timestamp. It the timezone item in the tuple is \code{None}, assume
-local time. Minor deficiency: this first interprets the first 8
-elements as a local time and then compensates for the timezone
-difference; this may yield a slight error around daylight savings time
-switch dates. Not enough to worry about for common use.
-\end{funcdesc}
-
-\subsection{Message Objects}
-\label{message-objects}
-
-A \class{Message} instance has the following methods:
-
-\begin{methoddesc}{rewindbody}{}
-Seek to the start of the message body. This only works if the file
-object is seekable.
-\end{methoddesc}
-
-\begin{methoddesc}{getallmatchingheaders}{name}
-Return a list of lines consisting of all headers matching
-\var{name}, if any. Each physical line, whether it is a continuation
-line or not, is a separate list item. Return the empty list if no
-header matches \var{name}.
-\end{methoddesc}
-
-\begin{methoddesc}{getfirstmatchingheader}{name}
-Return a list of lines comprising the first header matching
-\var{name}, and its continuation line(s), if any. Return \code{None}
-if there is no header matching \var{name}.
-\end{methoddesc}
-
-\begin{methoddesc}{getrawheader}{name}
-Return a single string consisting of the text after the colon in the
-first header matching \var{name}. This includes leading whitespace,
-the trailing linefeed, and internal linefeeds and whitespace if there
-any continuation line(s) were present. Return \code{None} if there is
-no header matching \var{name}.
-\end{methoddesc}
-
-\begin{methoddesc}{getheader}{name}
-Like \code{getrawheader(\var{name})}, but strip leading and trailing
-whitespace. Internal whitespace is not stripped.
-\end{methoddesc}
-
-\begin{methoddesc}{getaddr}{name}
-Return a pair \code{(\var{full name}, \var{email address})} parsed
-from the string returned by \code{getheader(\var{name})}. If no
-header matching \var{name} exists, return \code{(None, None)};
-otherwise both the full name and the address are (possibly empty)
-strings.
-
-Example: If \var{m}'s first \code{From} header contains the string
-\code{'jack@cwi.nl (Jack Jansen)'}, then
-\code{m.getaddr('From')} will yield the pair
-\code{('Jack Jansen', 'jack@cwi.nl')}.
-If the header contained
-\code{'Jack Jansen <jack@cwi.nl>'} instead, it would yield the
-exact same result.
-\end{methoddesc}
-
-\begin{methoddesc}{getaddrlist}{name}
-This is similar to \code{getaddr(\var{list})}, but parses a header
-containing a list of email addresses (e.g. a \code{To} header) and
-returns a list of \code{(\var{full name}, \var{email address})} pairs
-(even if there was only one address in the header). If there is no
-header matching \var{name}, return an empty list.
-
-XXX The current version of this function is not really correct. It
-yields bogus results if a full name contains a comma.
-\end{methoddesc}
-
-\begin{methoddesc}{getdate}{name}
-Retrieve a header using \method{getheader()} and parse it into a 9-tuple
-compatible with \function{time.mktime()}. If there is no header matching
-\var{name}, or it is unparsable, return \code{None}.
-
-Date parsing appears to be a black art, and not all mailers adhere to
-the standard. While it has been tested and found correct on a large
-collection of email from many sources, it is still possible that this
-function may occasionally yield an incorrect result.
-\end{methoddesc}
-
-\begin{methoddesc}{getdate_tz}{name}
-Retrieve a header using \method{getheader()} and parse it into a
-10-tuple; the first 9 elements will make a tuple compatible with
-\function{time.mktime()}, and the 10th is a number giving the offset
-of the date's timezone from UTC. Similarly to \method{getdate()}, if
-there is no header matching \var{name}, or it is unparsable, return
-\code{None}.
-\end{methoddesc}
-
-\class{Message} instances also support a read-only mapping interface.
-In particular: \code{\var{m}[name]} is like
-\code{\var{m}.getheader(name)} but raises \exception{KeyError} if
-there is no matching header; and \code{len(\var{m})},
-\code{\var{m}.has_key(name)}, \code{\var{m}.keys()},
-\code{\var{m}.values()} and \code{\var{m}.items()} act as expected
-(and consistently).
-
-Finally, \class{Message} instances have two public instance variables:
-
-\begin{memberdesc}{headers}
-A list containing the entire set of header lines, in the order in
-which they were read. Each line contains a trailing newline. The
-blank line terminating the headers is not contained in the list.
-\end{memberdesc}
-
-\begin{memberdesc}{fp}
-The file object passed at instantiation time.
-\end{memberdesc}
diff --git a/Doc/librgbimg.tex b/Doc/librgbimg.tex
deleted file mode 100644
index 73e4aae..0000000
--- a/Doc/librgbimg.tex
+++ /dev/null
@@ -1,45 +0,0 @@
-\section{Built-in Module \module{rgbimg}}
-\label{module-rgbimg}
-\bimodindex{rgbimg}
-
-The \module{rgbimg} module allows Python programs to access SGI imglib image
-files (also known as \file{.rgb} files). The module is far from
-complete, but is provided anyway since the functionality that there is
-enough in some cases. Currently, colormap files are not supported.
-
-The module defines the following variables and functions:
-
-\begin{excdesc}{error}
-This exception is raised on all errors, such as unsupported file type, etc.
-\end{excdesc}
-
-\begin{funcdesc}{sizeofimage}{file}
-This function returns a tuple \code{(\var{x}, \var{y})} where
-\var{x} and \var{y} are the size of the image in pixels.
-Only 4 byte RGBA pixels, 3 byte RGB pixels, and 1 byte greyscale pixels
-are currently supported.
-\end{funcdesc}
-
-\begin{funcdesc}{longimagedata}{file}
-This function reads and decodes the image on the specified file, and
-returns it as a Python string. The string has 4 byte RGBA pixels.
-The bottom left pixel is the first in
-the string. This format is suitable to pass to \function{gl.lrectwrite()},
-for instance.
-\end{funcdesc}
-
-\begin{funcdesc}{longstoimage}{data, x, y, z, file}
-This function writes the RGBA data in \var{data} to image
-file \var{file}. \var{x} and \var{y} give the size of the image.
-\var{z} is 1 if the saved image should be 1 byte greyscale, 3 if the
-saved image should be 3 byte RGB data, or 4 if the saved images should
-be 4 byte RGBA data. The input data always contains 4 bytes per pixel.
-These are the formats returned by \function{gl.lrectread()}.
-\end{funcdesc}
-
-\begin{funcdesc}{ttob}{flag}
-This function sets a global flag which defines whether the scan lines
-of the image are read or written from bottom to top (flag is zero,
-compatible with SGI GL) or from top to bottom(flag is one,
-compatible with X)\@. The default is zero.
-\end{funcdesc}
diff --git a/Doc/librotor.tex b/Doc/librotor.tex
deleted file mode 100644
index 63dc56e..0000000
--- a/Doc/librotor.tex
+++ /dev/null
@@ -1,104 +0,0 @@
-\section{Built-in Module \module{rotor}}
-\label{module-rotor}
-\bimodindex{rotor}
-
-This module implements a rotor-based encryption algorithm, contributed by
-Lance Ellinghouse\index{Ellinghouse, Lance}. The design is derived
-from the Enigma device\indexii{Enigma}{device}, a machine
-used during World War II to encipher messages. A rotor is simply a
-permutation. For example, if the character `A' is the origin of the rotor,
-then a given rotor might map `A' to `L', `B' to `Z', `C' to `G', and so on.
-To encrypt, we choose several different rotors, and set the origins of the
-rotors to known positions; their initial position is the ciphering key. To
-encipher a character, we permute the original character by the first rotor,
-and then apply the second rotor's permutation to the result. We continue
-until we've applied all the rotors; the resulting character is our
-ciphertext. We then change the origin of the final rotor by one position,
-from `A' to `B'; if the final rotor has made a complete revolution, then we
-rotate the next-to-last rotor by one position, and apply the same procedure
-recursively. In other words, after enciphering one character, we advance
-the rotors in the same fashion as a car's odometer. Decoding works in the
-same way, except we reverse the permutations and apply them in the opposite
-order.
-\indexii{Enigma}{cipher}
-
-The available functions in this module are:
-
-\begin{funcdesc}{newrotor}{key\optional{, numrotors}}
-Return a rotor object. \var{key} is a string containing the encryption key
-for the object; it can contain arbitrary binary data. The key will be used
-to randomly generate the rotor permutations and their initial positions.
-\var{numrotors} is the number of rotor permutations in the returned object;
-if it is omitted, a default value of 6 will be used.
-\end{funcdesc}
-
-Rotor objects have the following methods:
-
-\begin{methoddesc}[rotor]{setkey}{key}
-Sets the rotor's key to \var{key}.
-\end{methoddesc}
-
-\begin{methoddesc}[rotor]{encrypt}{plaintext}
-Reset the rotor object to its initial state and encrypt \var{plaintext},
-returning a string containing the ciphertext. The ciphertext is always the
-same length as the original plaintext.
-\end{methoddesc}
-
-\begin{methoddesc}[rotor]{encryptmore}{plaintext}
-Encrypt \var{plaintext} without resetting the rotor object, and return a
-string containing the ciphertext.
-\end{methoddesc}
-
-\begin{methoddesc}[rotor]{decrypt}{ciphertext}
-Reset the rotor object to its initial state and decrypt \var{ciphertext},
-returning a string containing the ciphertext. The plaintext string will
-always be the same length as the ciphertext.
-\end{methoddesc}
-
-\begin{methoddesc}[rotor]{decryptmore}{ciphertext}
-Decrypt \var{ciphertext} without resetting the rotor object, and return a
-string containing the ciphertext.
-\end{methoddesc}
-
-An example usage:
-\begin{verbatim}
->>> import rotor
->>> rt = rotor.newrotor('key', 12)
->>> rt.encrypt('bar')
-'\2534\363'
->>> rt.encryptmore('bar')
-'\357\375$'
->>> rt.encrypt('bar')
-'\2534\363'
->>> rt.decrypt('\2534\363')
-'bar'
->>> rt.decryptmore('\357\375$')
-'bar'
->>> rt.decrypt('\357\375$')
-'l(\315'
->>> del rt
-\end{verbatim}
-
-The module's code is not an exact simulation of the original Enigma
-device; it implements the rotor encryption scheme differently from the
-original. The most important difference is that in the original
-Enigma, there were only 5 or 6 different rotors in existence, and they
-were applied twice to each character; the cipher key was the order in
-which they were placed in the machine. The Python \module{rotor}
-module uses the supplied key to initialize a random number generator;
-the rotor permutations and their initial positions are then randomly
-generated. The original device only enciphered the letters of the
-alphabet, while this module can handle any 8-bit binary data; it also
-produces binary output. This module can also operate with an
-arbitrary number of rotors.
-
-The original Enigma cipher was broken in 1944. % XXX: Is this right?
-The version implemented here is probably a good deal more difficult to crack
-(especially if you use many rotors), but it won't be impossible for
-a truly skilful and determined attacker to break the cipher. So if you want
-to keep the NSA out of your files, this rotor cipher may well be unsafe, but
-for discouraging casual snooping through your files, it will probably be
-just fine, and may be somewhat safer than using the \UNIX{} \program{crypt}
-command.
-\index{NSA}
-\index{National Security Agency}
diff --git a/Doc/libselect.tex b/Doc/libselect.tex
deleted file mode 100644
index b7a8c85..0000000
--- a/Doc/libselect.tex
+++ /dev/null
@@ -1,46 +0,0 @@
-\section{Built-in Module \module{select}}
-\label{module-select}
-\bimodindex{select}
-
-This module provides access to the function \cfunction{select()}
-available in most \UNIX{} versions. It defines the following:
-
-\begin{excdesc}{error}
-The exception raised when an error occurs. The accompanying value is
-a pair containing the numeric error code from \cdata{errno} and the
-corresponding string, as would be printed by the \C{} function
-\cfunction{perror()}.
-\end{excdesc}
-
-\begin{funcdesc}{select}{iwtd, owtd, ewtd\optional{, timeout}}
-This is a straightforward interface to the \UNIX{} \cfunction{select()}
-system call. The first three arguments are lists of `waitable
-objects': either integers representing \UNIX{} file descriptors or
-objects with a parameterless method named \method{fileno()} returning
-such an integer. The three lists of waitable objects are for input,
-output and `exceptional conditions', respectively. Empty lists are
-allowed. The optional \var{timeout} argument specifies a time-out as a
-floating point number in seconds. When the \var{timeout} argument
-is omitted the function blocks until at least one file descriptor is
-ready. A time-out value of zero specifies a poll and never blocks.
-
-The return value is a triple of lists of objects that are ready:
-subsets of the first three arguments. When the time-out is reached
-without a file descriptor becoming ready, three empty lists are
-returned.
-
-Amongst the acceptable object types in the lists are Python file
-objects (e.g. \code{sys.stdin}, or objects returned by
-\function{open()} or \function{os.popen()}), socket objects
-returned by \function{socket.socket()},%
-\withsubitem{(in module socket)}{\ttindex{socket()}}
-\withsubitem{(in module posix)}{\ttindex{popen()}}
-\withsubitem{(in module os)}{\ttindex{popen()}}
-and the module \module{stdwin}\refbimodindex{stdwin} which happens to
-define a function \function{fileno()}%
-\withsubitem{(in module stdwin)}{\ttindex{fileno()}}
-for just this purpose. You may
-also define a \dfn{wrapper} class yourself, as long as it has an
-appropriate \method{fileno()} method (that really returns a \UNIX{}
-file descriptor, not just a random integer).
-\end{funcdesc}
diff --git a/Doc/libsgi.tex b/Doc/libsgi.tex
deleted file mode 100644
index b1bb5cb..0000000
--- a/Doc/libsgi.tex
+++ /dev/null
@@ -1,5 +0,0 @@
-\chapter{SGI IRIX Specific Services}
-\label{sgi}
-
-The modules described in this chapter provide interfaces to features
-that are unique to SGI's IRIX operating system (versions 4 and 5).
diff --git a/Doc/libsgmllib.tex b/Doc/libsgmllib.tex
deleted file mode 100644
index f086b4b..0000000
--- a/Doc/libsgmllib.tex
+++ /dev/null
@@ -1,198 +0,0 @@
-\section{Standard Module \module{sgmllib}}
-\label{module-sgmllib}
-\stmodindex{sgmllib}
-\index{SGML}
-
-This module defines a class \class{SGMLParser} which serves as the
-basis for parsing text files formatted in SGML (Standard Generalized
-Mark-up Language). In fact, it does not provide a full SGML parser
---- it only parses SGML insofar as it is used by HTML, and the module
-only exists as a base for the \module{htmllib}\refstmodindex{htmllib}
-module.
-
-
-\begin{classdesc}{SGMLParser}{}
-The \class{SGMLParser} class is instantiated without arguments.
-The parser is hardcoded to recognize the following
-constructs:
-
-\begin{itemize}
-\item
-Opening and closing tags of the form
-\samp{<\var{tag} \var{attr}="\var{value}" ...>} and
-\samp{</\var{tag}>}, respectively.
-
-\item
-Numeric character references of the form \samp{\&\#\var{name};}.
-
-\item
-Entity references of the form \samp{\&\var{name};}.
-
-\item
-SGML comments of the form \samp{<!--\var{text}-->}. Note that
-spaces, tabs, and newlines are allowed between the trailing
-\samp{>} and the immediately preceeding \samp{--}.
-
-\end{itemize}
-\end{classdesc}
-
-\class{SGMLParser} instances have the following interface methods:
-
-
-\begin{methoddesc}{reset}{}
-Reset the instance. Loses all unprocessed data. This is called
-implicitly at instantiation time.
-\end{methoddesc}
-
-\begin{methoddesc}{setnomoretags}{}
-Stop processing tags. Treat all following input as literal input
-(CDATA). (This is only provided so the HTML tag \code{<PLAINTEXT>}
-can be implemented.)
-\end{methoddesc}
-
-\begin{methoddesc}{setliteral}{}
-Enter literal mode (CDATA mode).
-\end{methoddesc}
-
-\begin{methoddesc}{feed}{data}
-Feed some text to the parser. It is processed insofar as it consists
-of complete elements; incomplete data is buffered until more data is
-fed or \method{close()} is called.
-\end{methoddesc}
-
-\begin{methoddesc}{close}{}
-Force processing of all buffered data as if it were followed by an
-end-of-file mark. This method may be redefined by a derived class to
-define additional processing at the end of the input, but the
-redefined version should always call \method{close()}.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_starttag}{tag, method, attributes}
-This method is called to handle start tags for which either a
-\code{start_\var{tag}()} or \code{do_\var{tag}()} method has been
-defined. The \var{tag} argument is the name of the tag converted to
-lower case, and the \var{method} argument is the bound method which
-should be used to support semantic interpretation of the start tag.
-The \var{attributes} argument is a list of \code{(\var{name}, \var{value})}
-pairs containing the attributes found inside the tag's \code{<>}
-brackets. The \var{name} has been translated to lower case and double
-quotes and backslashes in the \var{value} have been interpreted. For
-instance, for the tag \code{<A HREF="http://www.cwi.nl/">}, this
-method would be called as \samp{unknown_starttag('a', [('href',
-'http://www.cwi.nl/')])}. The base implementation simply calls
-\var{method} with \var{attributes} as the only argument.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_endtag}{tag, method}
-This method is called to handle endtags for which an
-\code{end_\var{tag}()} method has been defined. The \var{tag}
-argument is the name of the tag converted to lower case, and the
-\var{method} argument is the bound method which should be used to
-support semantic interpretation of the end tag. If no
-\code{end_\var{tag}()} method is defined for the closing element,
-this handler is not called. The base implementation simply calls
-\var{method}.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_data}{data}
-This method is called to process arbitrary data. It is intended to be
-overridden by a derived class; the base class implementation does
-nothing.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_charref}{ref}
-This method is called to process a character reference of the form
-\samp{\&\#\var{ref};}. In the base implementation, \var{ref} must
-be a decimal number in the
-range 0-255. It translates the character to \ASCII{} and calls the
-method \method{handle_data()} with the character as argument. If
-\var{ref} is invalid or out of range, the method
-\code{unknown_charref(\var{ref})} is called to handle the error. A
-subclass must override this method to provide support for named
-character entities.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_entityref}{ref}
-This method is called to process a general entity reference of the
-form \samp{\&\var{ref};} where \var{ref} is an general entity
-reference. It looks for \var{ref} in the instance (or class)
-variable \member{entitydefs} which should be a mapping from entity
-names to corresponding translations.
-If a translation is found, it calls the method \method{handle_data()}
-with the translation; otherwise, it calls the method
-\code{unknown_entityref(\var{ref})}. The default \member{entitydefs}
-defines translations for \code{\&amp;}, \code{\&apos}, \code{\&gt;},
-\code{\&lt;}, and \code{\&quot;}.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_comment}{comment}
-This method is called when a comment is encountered. The
-\var{comment} argument is a string containing the text between the
-\samp{<!--} and \samp{-->} delimiters, but not the delimiters
-themselves. For example, the comment \samp{<!--text-->} will
-cause this method to be called with the argument \code{'text'}. The
-default method does nothing.
-\end{methoddesc}
-
-\begin{methoddesc}{report_unbalanced}{tag}
-This method is called when an end tag is found which does not
-correspond to any open element.
-\end{methoddesc}
-
-\begin{methoddesc}{unknown_starttag}{tag, attributes}
-This method is called to process an unknown start tag. It is intended
-to be overridden by a derived class; the base class implementation
-does nothing.
-\end{methoddesc}
-
-\begin{methoddesc}{unknown_endtag}{tag}
-This method is called to process an unknown end tag. It is intended
-to be overridden by a derived class; the base class implementation
-does nothing.
-\end{methoddesc}
-
-\begin{methoddesc}{unknown_charref}{ref}
-This method is called to process unresolvable numeric character
-references. Refer to \method{handle_charref()} to determine what is
-handled by default. It is intended to be overridden by a derived
-class; the base class implementation does nothing.
-\end{methoddesc}
-
-\begin{methoddesc}{unknown_entityref}{ref}
-This method is called to process an unknown entity reference. It is
-intended to be overridden by a derived class; the base class
-implementation does nothing.
-\end{methoddesc}
-
-Apart from overriding or extending the methods listed above, derived
-classes may also define methods of the following form to define
-processing of specific tags. Tag names in the input stream are case
-independent; the \var{tag} occurring in method names must be in lower
-case:
-
-\begin{methoddescni}{start_\var{tag}}{attributes}
-This method is called to process an opening tag \var{tag}. It has
-preference over \code{do_\var{tag}()}. The \var{attributes}
-argument has the same meaning as described for
-\method{handle_starttag()} above.
-\end{methoddescni}
-
-\begin{methoddescni}{do_\var{tag}}{attributes}
-This method is called to process an opening tag \var{tag} that does
-not come with a matching closing tag. The \var{attributes} argument
-has the same meaning as described for \method{handle_starttag()} above.
-\end{methoddescni}
-
-\begin{methoddescni}{end_\var{tag}}{}
-This method is called to process a closing tag \var{tag}.
-\end{methoddescni}
-
-Note that the parser maintains a stack of open elements for which no
-end tag has been found yet. Only tags processed by
-\code{start_\var{tag}()} are pushed on this stack. Definition of an
-\code{end_\var{tag}()} method is optional for these tags. For tags
-processed by \code{do_\var{tag}()} or by \method{unknown_tag()}, no
-\code{end_\var{tag}()} method must be defined; if defined, it will not
-be used. If both \code{start_\var{tag}()} and \code{do_\var{tag}()}
-methods exist for a tag, the \code{start_\var{tag}()} method takes
-precedence.
diff --git a/Doc/libshelve.tex b/Doc/libshelve.tex
deleted file mode 100644
index 90afbc6..0000000
--- a/Doc/libshelve.tex
+++ /dev/null
@@ -1,61 +0,0 @@
-\section{Standard Module \module{shelve}}
-\label{module-shelve}
-\stmodindex{shelve}
-
-A ``shelf'' is a persistent, dictionary-like object. The difference
-with ``dbm'' databases is that the values (not the keys!) in a shelf
-can be essentially arbitrary Python objects --- anything that the
-\code{pickle} module can handle. This includes most class instances,
-recursive data types, and objects containing lots of shared
-sub-objects. The keys are ordinary strings.
-\refstmodindex{pickle}
-
-To summarize the interface (\code{key} is a string, \code{data} is an
-arbitrary object):
-
-\begin{verbatim}
-import shelve
-
-d = shelve.open(filename) # open, with (g)dbm filename -- no suffix
-
-d[key] = data # store data at key (overwrites old data if
- # using an existing key)
-data = d[key] # retrieve data at key (raise KeyError if no
- # such key)
-del d[key] # delete data stored at key (raises KeyError
- # if no such key)
-flag = d.has_key(key) # true if the key exists
-list = d.keys() # a list of all existing keys (slow!)
-
-d.close() # close it
-\end{verbatim}
-%
-Restrictions:
-
-\begin{itemize}
-
-\item
-The choice of which database package will be used (e.g. \code{dbm} or
-\code{gdbm})
-depends on which interface is available. Therefore it isn't safe to
-open the database directly using \code{dbm}. The database is also
-(unfortunately) subject to the limitations of \code{dbm}, if it is used ---
-this means that (the pickled representation of) the objects stored in
-the database should be fairly small, and in rare cases key collisions
-may cause the database to refuse updates.
-\refbimodindex{dbm}
-\refbimodindex{gdbm}
-
-\item
-Dependent on the implementation, closing a persistent dictionary may
-or may not be necessary to flush changes to disk.
-
-\item
-The \code{shelve} module does not support \emph{concurrent} read/write
-access to shelved objects. (Multiple simultaneous read accesses are
-safe.) When a program has a shelf open for writing, no other program
-should have it open for reading or writing. \UNIX{} file locking can
-be used to solve this, but this differs across \UNIX{} versions and
-requires knowledge about the database implementation used.
-
-\end{itemize}
diff --git a/Doc/libsignal.tex b/Doc/libsignal.tex
deleted file mode 100644
index 49eb62e..0000000
--- a/Doc/libsignal.tex
+++ /dev/null
@@ -1,142 +0,0 @@
-\section{Built-in Module \module{signal}}
-\label{module-signal}
-
-\bimodindex{signal}
-This module provides mechanisms to use signal handlers in Python.
-Some general rules for working with signals handlers:
-
-\begin{itemize}
-
-\item
-A handler for a particular signal, once set, remains installed until
-it is explicitly reset (i.e. Python emulates the BSD style interface
-regardless of the underlying implementation), with the exception of
-the handler for \constant{SIGCHLD}, which follows the underlying
-implementation.
-
-\item
-There is no way to ``block'' signals temporarily from critical
-sections (since this is not supported by all \UNIX{} flavors).
-
-\item
-Although Python signal handlers are called asynchronously as far as
-the Python user is concerned, they can only occur between the
-``atomic'' instructions of the Python interpreter. This means that
-signals arriving during long calculations implemented purely in \C{}
-(e.g.\ regular expression matches on large bodies of text) may be
-delayed for an arbitrary amount of time.
-
-\item
-When a signal arrives during an I/O operation, it is possible that the
-I/O operation raises an exception after the signal handler returns.
-This is dependent on the underlying \UNIX{} system's semantics regarding
-interrupted system calls.
-
-\item
-Because the \C{} signal handler always returns, it makes little sense to
-catch synchronous errors like \constant{SIGFPE} or \constant{SIGSEGV}.
-
-\item
-Python installs a small number of signal handlers by default:
-\constant{SIGPIPE} is ignored (so write errors on pipes and sockets can be
-reported as ordinary Python exceptions), \constant{SIGINT} is translated
-into a \exception{KeyboardInterrupt} exception, and \constant{SIGTERM} is
-caught so that necessary cleanup (especially \code{sys.exitfunc}) can
-be performed before actually terminating. All of these can be
-overridden.
-
-\item
-Some care must be taken if both signals and threads are used in the
-same program. The fundamental thing to remember in using signals and
-threads simultaneously is:\ always perform \function{signal()} operations
-in the main thread of execution. Any thread can perform an
-\function{alarm()}, \function{getsignal()}, or \function{pause()};
-only the main thread can set a new signal handler, and the main thread
-will be the only one to receive signals (this is enforced by the
-Python \module{signal} module, even if the underlying thread
-implementation supports sending signals to individual threads). This
-means that signals can't be used as a means of interthread
-communication. Use locks instead.
-
-\end{itemize}
-
-The variables defined in the \module{signal} module are:
-
-\begin{datadesc}{SIG_DFL}
- This is one of two standard signal handling options; it will simply
- perform the default function for the signal. For example, on most
- systems the default action for \constant{SIGQUIT} is to dump core
- and exit, while the default action for \constant{SIGCLD} is to
- simply ignore it.
-\end{datadesc}
-
-\begin{datadesc}{SIG_IGN}
- This is another standard signal handler, which will simply ignore
- the given signal.
-\end{datadesc}
-
-\begin{datadesc}{SIG*}
- All the signal numbers are defined symbolically. For example, the
- hangup signal is defined as \constant{signal.SIGHUP}; the variable names
- are identical to the names used in C programs, as found in
- \file{<signal.h>}.
- The \UNIX{} man page for `\cfunction{signal()}' lists the existing
- signals (on some systems this is \manpage{signal}{2}, on others the
- list is in \manpage{signal}{7}).
- Note that not all systems define the same set of signal names; only
- those names defined by the system are defined by this module.
-\end{datadesc}
-
-\begin{datadesc}{NSIG}
- One more than the number of the highest signal number.
-\end{datadesc}
-
-The \module{signal} module defines the following functions:
-
-\begin{funcdesc}{alarm}{time}
- If \var{time} is non-zero, this function requests that a
- \constant{SIGALRM} signal be sent to the process in \var{time} seconds.
- Any previously scheduled alarm is canceled (i.e.\ only one alarm can
- be scheduled at any time). The returned value is then the number of
- seconds before any previously set alarm was to have been delivered.
- If \var{time} is zero, no alarm id scheduled, and any scheduled
- alarm is canceled. The return value is the number of seconds
- remaining before a previously scheduled alarm. If the return value
- is zero, no alarm is currently scheduled. (See the \UNIX{} man page
- \manpage{alarm}{2}.)
-\end{funcdesc}
-
-\begin{funcdesc}{getsignal}{signalnum}
- Return the current signal handler for the signal \var{signalnum}.
- The returned value may be a callable Python object, or one of the
- special values \constant{signal.SIG_IGN}, \constant{signal.SIG_DFL} or
- \constant{None}. Here, \constant{signal.SIG_IGN} means that the
- signal was previously ignored, \constant{signal.SIG_DFL} means that the
- default way of handling the signal was previously in use, and
- \code{None} means that the previous signal handler was not installed
- from Python.
-\end{funcdesc}
-
-\begin{funcdesc}{pause}{}
- Cause the process to sleep until a signal is received; the
- appropriate handler will then be called. Returns nothing. (See the
- \UNIX{} man page \manpage{signal}{2}.)
-\end{funcdesc}
-
-\begin{funcdesc}{signal}{signalnum, handler}
- Set the handler for signal \var{signalnum} to the function
- \var{handler}. \var{handler} can be any callable Python object, or
- one of the special values \constant{signal.SIG_IGN} or
- \constant{signal.SIG_DFL}. The previous signal handler will be returned
- (see the description of \function{getsignal()} above). (See the
- \UNIX{} man page \manpage{signal}{2}.)
-
- When threads are enabled, this function can only be called from the
- main thread; attempting to call it from other threads will cause a
- \exception{ValueError} exception to be raised.
-
- The \var{handler} is called with two arguments: the signal number
- and the current stack frame (\code{None} or a frame object; see the
- reference manual for a description of frame objects).
-\obindex{frame}
-\end{funcdesc}
diff --git a/Doc/libsite.tex b/Doc/libsite.tex
deleted file mode 100644
index 84b1e64..0000000
--- a/Doc/libsite.tex
+++ /dev/null
@@ -1,85 +0,0 @@
-\section{Standard Module \module{site}}
-\label{module-site}
-\stmodindex{site}
-
-\strong{This module is automatically imported during initialization.}
-
-In earlier versions of Python (up to and including 1.5a3), scripts or
-modules that needed to use site-specific modules would place
-\samp{import site} somewhere near the top of their code. This is no
-longer necessary.
-
-This will append site-specific paths to to the module search path.
-\indexiii{module}{search}{path}
-
-It starts by constructing up to four directories from a head and a
-tail part. For the head part, it uses \code{sys.prefix} and
-\code{sys.exec_prefix}; empty heads are skipped. For
-the tail part, it uses the empty string (on Macintosh or Windows) or
-it uses first \file{lib/python\var{version}/site-packages} and then
-\file{lib/site-python} (on \UNIX{}). For each of the distinct
-head-tail combinations, it sees if it refers to an existing directory,
-and if so, adds to \code{sys.path}, and also inspected for path
-configuration files.
-\indexii{site-python}{directory}
-\indexii{site-packages}{directory}
-
-A path configuration file is a file whose name has the form
-\file{\var{package}.pth}; its contents are additional items (one
-per line) to be added to \code{sys.path}. Non-existing items are
-never added to \code{sys.path}, but no check is made that the item
-refers to a directory (rather than a file). No item is added to
-\code{sys.path} more than once. Blank lines and lines beginning with
-\code{\#} are skipped.
-\index{package}
-\indexiii{path}{configuration}{file}
-
-For example, suppose \code{sys.prefix} and \code{sys.exec_prefix} are
-set to \file{/usr/local}. The Python \version\ library is then
-installed in \file{/usr/local/lib/python1.5} (note that only the first
-three characters of \code{sys.version} are used to form the path
-name). Suppose this has a subdirectory
-\file{/usr/local/lib/python1.5/site-packages} with three
-subsubdirectories, \file{foo}, \file{bar} and \file{spam}, and two
-path configuration files, \file{foo.pth} and \file{bar.pth}. Assume
-\file{foo.pth} contains the following:
-
-\begin{verbatim}
-# foo package configuration
-
-foo
-bar
-bletch
-\end{verbatim}
-
-and \file{bar.pth} contains:
-
-\begin{verbatim}
-# bar package configuration
-
-bar
-\end{verbatim}
-
-Then the following directories are added to \code{sys.path}, in this
-order:
-
-\begin{verbatim}
-/usr/local/lib/python1.5/site-packages/bar
-/usr/local/lib/python1.5/site-packages/foo
-\end{verbatim}
-
-Note that \file{bletch} is omitted because it doesn't exist; the
-\file{bar} directory precedes the \file{foo} directory because
-\file{bar.pth} comes alphabetically before \file{foo.pth}; and
-\file{spam} is omitted because it is not mentioned in either path
-configuration file.
-
-After these path manipulations, an attempt is made to import a module
-named \module{sitecustomize}\refmodindex{sitecustomize}, which can
-perform arbitrary site-specific customizations. If this import fails
-with an \exception{ImportError} exception, it is silently ignored.
-
-Note that for some non-\UNIX{} systems, \code{sys.prefix} and
-\code{sys.exec_prefix} are empty, and the path manipulations are
-skipped; however the import of
-\module{sitecustomize}\refmodindex{sitecustomize} is still attempted.
diff --git a/Doc/libsocket.tex b/Doc/libsocket.tex
deleted file mode 100644
index 76d2b1a..0000000
--- a/Doc/libsocket.tex
+++ /dev/null
@@ -1,380 +0,0 @@
-\section{Built-in Module \module{socket}}
-\label{module-socket}
-\bimodindex{socket}
-
-This module provides access to the BSD \emph{socket} interface.
-It is available on \UNIX{} systems that support this interface.
-
-For an introduction to socket programming (in C), see the following
-papers: \emph{An Introductory 4.3BSD Interprocess Communication
-Tutorial}, by Stuart Sechrest and \emph{An Advanced 4.3BSD Interprocess
-Communication Tutorial}, by Samuel J. Leffler et al, both in the
-\UNIX{} Programmer's Manual, Supplementary Documents 1 (sections PS1:7
-and PS1:8). The \UNIX{} manual pages for the various socket-related
-system calls are also a valuable source of information on the details of
-socket semantics.
-
-The Python interface is a straightforward transliteration of the
-\UNIX{} system call and library interface for sockets to Python's
-object-oriented style: the \function{socket()} function returns a
-\dfn{socket object} whose methods implement the various socket system
-calls. Parameter types are somewhat higher-level than in the C
-interface: as with \method{read()} and \method{write()} operations on
-Python files, buffer allocation on receive operations is automatic,
-and buffer length is implicit on send operations.
-
-Socket addresses are represented as a single string for the
-\constant{AF_UNIX} address family and as a pair
-\code{(\var{host}, \var{port})} for the \constant{AF_INET} address
-family, where \var{host} is a string representing
-either a hostname in Internet domain notation like
-\code{'daring.cwi.nl'} or an IP address like \code{'100.50.200.5'},
-and \var{port} is an integral port number. Other address families are
-currently not supported. The address format required by a particular
-socket object is automatically selected based on the address family
-specified when the socket object was created.
-
-For IP addresses, two special forms are accepted instead of a host
-address: the empty string represents \constant{INADDR_ANY}, and the string
-\code{"<broadcast>"} represents \constant{INADDR_BROADCAST}.
-
-All errors raise exceptions. The normal exceptions for invalid
-argument types and out-of-memory conditions can be raised; errors
-related to socket or address semantics raise the error \code{socket.error}.
-
-Non-blocking mode is supported through the \code{setblocking()}
-method.
-
-The module \module{socket} exports the following constants and functions:
-
-
-\begin{excdesc}{error}
-This exception is raised for socket- or address-related errors.
-The accompanying value is either a string telling what went wrong or a
-pair \code{(\var{errno}, \var{string})}
-representing an error returned by a system
-call, similar to the value accompanying \code{os.error}.
-See the module \module{errno}\refbimodindex{errno}, which contains
-names for the error codes defined by the underlying operating system.
-\end{excdesc}
-
-\begin{datadesc}{AF_UNIX}
-\dataline{AF_INET}
-These constants represent the address (and protocol) families,
-used for the first argument to \function{socket()}. If the
-\constant{AF_UNIX} constant is not defined then this protocol is
-unsupported.
-\end{datadesc}
-
-\begin{datadesc}{SOCK_STREAM}
-\dataline{SOCK_DGRAM}
-\dataline{SOCK_RAW}
-\dataline{SOCK_RDM}
-\dataline{SOCK_SEQPACKET}
-These constants represent the socket types,
-used for the second argument to \function{socket()}.
-(Only \constant{SOCK_STREAM} and
-\constant{SOCK_DGRAM} appear to be generally useful.)
-\end{datadesc}
-
-\begin{datadesc}{SO_*}
-\dataline{SOMAXCONN}
-\dataline{MSG_*}
-\dataline{SOL_*}
-\dataline{IPPROTO_*}
-\dataline{IPPORT_*}
-\dataline{INADDR_*}
-\dataline{IP_*}
-Many constants of these forms, documented in the \UNIX{} documentation on
-sockets and/or the IP protocol, are also defined in the socket module.
-They are generally used in arguments to the \method{setsockopt()} and
-\method{getsockopt()} methods of socket objects. In most cases, only
-those symbols that are defined in the \UNIX{} header files are defined;
-for a few symbols, default values are provided.
-\end{datadesc}
-
-\begin{funcdesc}{gethostbyname}{hostname}
-Translate a host name to IP address format. The IP address is
-returned as a string, e.g., \code{'100.50.200.5'}. If the host name
-is an IP address itself it is returned unchanged.
-\end{funcdesc}
-
-\begin{funcdesc}{gethostname}{}
-Return a string containing the hostname of the machine where
-the Python interpreter is currently executing. If you want to know the
-current machine's IP address, use \code{gethostbyname(gethostname())}.
-Note: \function{gethostname()} doesn't always return the fully qualified
-domain name; use \code{gethostbyaddr(gethostname())}
-(see below).
-\end{funcdesc}
-
-\begin{funcdesc}{gethostbyaddr}{ip_address}
-Return a triple \code{(\var{hostname}, \var{aliaslist},
-\var{ipaddrlist})} where \var{hostname} is the primary host name
-responding to the given \var{ip_address}, \var{aliaslist} is a
-(possibly empty) list of alternative host names for the same address,
-and \var{ipaddrlist} is a list of IP addresses for the same interface
-on the same host (most likely containing only a single address).
-To find the fully qualified domain name, check \var{hostname} and the
-items of \var{aliaslist} for an entry containing at least one period.
-\end{funcdesc}
-
-\begin{funcdesc}{getprotobyname}{protocolname}
-Translate an Internet protocol name (e.g. \code{'icmp'}) to a constant
-suitable for passing as the (optional) third argument to the
-\function{socket()} function. This is usually only needed for sockets
-opened in ``raw'' mode (\constant{SOCK_RAW}); for the normal socket
-modes, the correct protocol is chosen automatically if the protocol is
-omitted or zero.
-\end{funcdesc}
-
-\begin{funcdesc}{getservbyname}{servicename, protocolname}
-Translate an Internet service name and protocol name to a port number
-for that service. The protocol name should be \code{'tcp'} or
-\code{'udp'}.
-\end{funcdesc}
-
-\begin{funcdesc}{socket}{family, type\optional{, proto}}
-Create a new socket using the given address family, socket type and
-protocol number. The address family should be \constant{AF_INET} or
-\constant{AF_UNIX}. The socket type should be \constant{SOCK_STREAM},
-\constant{SOCK_DGRAM} or perhaps one of the other \samp{SOCK_} constants.
-The protocol number is usually zero and may be omitted in that case.
-\end{funcdesc}
-
-\begin{funcdesc}{fromfd}{fd, family, type\optional{, proto}}
-Build a socket object from an existing file descriptor (an integer as
-returned by a file object's \method{fileno()} method). Address family,
-socket type and protocol number are as for the \code{socket} function
-above. The file descriptor should refer to a socket, but this is not
-checked --- subsequent operations on the object may fail if the file
-descriptor is invalid. This function is rarely needed, but can be
-used to get or set socket options on a socket passed to a program as
-standard input or output (e.g.\ a server started by the \UNIX{} inet
-daemon).
-\end{funcdesc}
-
-\begin{funcdesc}{ntohl}{x}
-Convert 32-bit integers from network to host byte order. On machines
-where the host byte order is the same as network byte order, this is a
-no-op; otherwise, it performs a 4-byte swap operation.
-\end{funcdesc}
-
-\begin{funcdesc}{ntohs}{x}
-Convert 16-bit integers from network to host byte order. On machines
-where the host byte order is the same as network byte order, this is a
-no-op; otherwise, it performs a 2-byte swap operation.
-\end{funcdesc}
-
-\begin{funcdesc}{htonl}{x}
-Convert 32-bit integers from host to network byte order. On machines
-where the host byte order is the same as network byte order, this is a
-no-op; otherwise, it performs a 4-byte swap operation.
-\end{funcdesc}
-
-\begin{funcdesc}{htons}{x}
-Convert 16-bit integers from host to network byte order. On machines
-where the host byte order is the same as network byte order, this is a
-no-op; otherwise, it performs a 2-byte swap operation.
-\end{funcdesc}
-
-\begin{datadesc}{SocketType}
-This is a Python type object that represents the socket object type.
-It is the same as \code{type(socket(...))}.
-\end{datadesc}
-
-\subsection{Socket Objects}
-
-Socket objects have the following methods. Except for
-\method{makefile()} these correspond to \UNIX{} system calls
-applicable to sockets.
-
-\begin{methoddesc}[socket]{accept}{}
-Accept a connection.
-The socket must be bound to an address and listening for connections.
-The return value is a pair \code{(\var{conn}, \var{address})}
-where \var{conn} is a \emph{new} socket object usable to send and
-receive data on the connection, and \var{address} is the address bound
-to the socket on the other end of the connection.
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{bind}{address}
-Bind the socket to \var{address}. The socket must not already be bound.
-(The format of \var{address} depends on the address family --- see above.)
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{close}{}
-Close the socket. All future operations on the socket object will fail.
-The remote end will receive no more data (after queued data is flushed).
-Sockets are automatically closed when they are garbage-collected.
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{connect}{address}
-Connect to a remote socket at \var{address}.
-(The format of \var{address} depends on the address family --- see
-above.)
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{connect_ex}{address}
-Like \code{connect(\var{address})}, but return an error indicator
-instead of raising an exception. The error indicator is 0 if the
-operation succeeded, otherwise the value of the \cdata{errno}
-variable. This is useful, e.g., for asynchronous connects.
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{fileno}{}
-Return the socket's file descriptor (a small integer). This is useful
-with \function{select.select()}.
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{getpeername}{}
-Return the remote address to which the socket is connected. This is
-useful to find out the port number of a remote IP socket, for instance.
-(The format of the address returned depends on the address family ---
-see above.) On some systems this function is not supported.
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{getsockname}{}
-Return the socket's own address. This is useful to find out the port
-number of an IP socket, for instance.
-(The format of the address returned depends on the address family ---
-see above.)
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{getsockopt}{level, optname\optional{, buflen}}
-Return the value of the given socket option (see the \UNIX{} man page
-\manpage{getsockopt}{2}). The needed symbolic constants
-(\constant{SO_*} etc.) are defined in this module. If \var{buflen}
-is absent, an integer option is assumed and its integer value
-is returned by the function. If \var{buflen} is present, it specifies
-the maximum length of the buffer used to receive the option in, and
-this buffer is returned as a string. It is up to the caller to decode
-the contents of the buffer (see the optional built-in module
-\module{struct} for a way to decode C structures encoded as strings).
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{listen}{backlog}
-Listen for connections made to the socket. The \var{backlog} argument
-specifies the maximum number of queued connections and should be at
-least 1; the maximum value is system-dependent (usually 5).
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{makefile}{\optional{mode\optional{, bufsize}}}
-Return a \dfn{file object} associated with the socket. (File objects
-were described earlier in \ref{bltin-file-objects}, ``File Objects.'')
-The file object references a \cfunction{dup()}ped version of the
-socket file descriptor, so the file object and socket object may be
-closed or garbage-collected independently. The optional \var{mode}
-and \var{bufsize} arguments are interpreted the same way as by the
-built-in \function{open()} function.
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{recv}{bufsize\optional{, flags}}
-Receive data from the socket. The return value is a string representing
-the data received. The maximum amount of data to be received
-at once is specified by \var{bufsize}. See the \UNIX{} manual page
-\manpage{recv}{2} for the meaning of the optional argument
-\var{flags}; it defaults to zero.
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{recvfrom}{bufsize\optional{, flags}}
-Receive data from the socket. The return value is a pair
-\code{(\var{string}, \var{address})} where \var{string} is a string
-representing the data received and \var{address} is the address of the
-socket sending the data. The optional \var{flags} argument has the
-same meaning as for \method{recv()} above.
-(The format of \var{address} depends on the address family --- see above.)
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{send}{string\optional{, flags}}
-Send data to the socket. The socket must be connected to a remote
-socket. The optional \var{flags} argument has the same meaning as for
-\method{recv()} above. Returns the number of bytes sent.
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{sendto}{string\optional{, flags}, address}
-Send data to the socket. The socket should not be connected to a
-remote socket, since the destination socket is specified by
-\var{address}. The optional \var{flags} argument has the same
-meaning as for \method{recv()} above. Return the number of bytes sent.
-(The format of \var{address} depends on the address family --- see above.)
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{setblocking}{flag}
-Set blocking or non-blocking mode of the socket: if \var{flag} is 0,
-the socket is set to non-blocking, else to blocking mode. Initially
-all sockets are in blocking mode. In non-blocking mode, if a
-\method{recv()} call doesn't find any data, or if a \code{send} call can't
-immediately dispose of the data, a \exception{error} exception is
-raised; in blocking mode, the calls block until they can proceed.
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{setsockopt}{level, optname, value}
-Set the value of the given socket option (see the \UNIX{} man page
-\manpage{setsockopt}{2}). The needed symbolic constants are defined in
-the \module{socket} module (\code{SO_*} etc.). The value can be an
-integer or a string representing a buffer. In the latter case it is
-up to the caller to ensure that the string contains the proper bits
-(see the optional built-in module
-\module{struct}\refbimodindex{struct} for a way to encode C structures
-as strings).
-\end{methoddesc}
-
-\begin{methoddesc}[socket]{shutdown}{how}
-Shut down one or both halves of the connection. If \var{how} is
-\code{0}, further receives are disallowed. If \var{how} is \code{1},
-further sends are disallowed. If \var{how} is \code{2}, further sends
-and receives are disallowed.
-\end{methoddesc}
-
-Note that there are no methods \method{read()} or \method{write()};
-use \method{recv()} and \method{send()} without \var{flags} argument
-instead.
-
-\subsection{Example}
-\nodename{Socket Example}
-
-Here are two minimal example programs using the TCP/IP protocol:\ a
-server that echoes all data that it receives back (servicing only one
-client), and a client using it. Note that a server must perform the
-sequence \function{socket()}, \method{bind()}, \method{listen()},
-\method{accept()} (possibly repeating the \method{accept()} to service
-more than one client), while a client only needs the sequence
-\function{socket()}, \method{connect()}. Also note that the server
-does not \method{send()}/\method{recv()} on the
-socket it is listening on but on the new socket returned by
-\method{accept()}.
-
-\begin{verbatim}
-# Echo server program
-from socket import *
-HOST = '' # Symbolic name meaning the local host
-PORT = 50007 # Arbitrary non-privileged server
-s = socket(AF_INET, SOCK_STREAM)
-s.bind(HOST, PORT)
-s.listen(1)
-conn, addr = s.accept()
-print 'Connected by', addr
-while 1:
- data = conn.recv(1024)
- if not data: break
- conn.send(data)
-conn.close()
-\end{verbatim}
-
-\begin{verbatim}
-# Echo client program
-from socket import *
-HOST = 'daring.cwi.nl' # The remote host
-PORT = 50007 # The same port as used by the server
-s = socket(AF_INET, SOCK_STREAM)
-s.connect(HOST, PORT)
-s.send('Hello, world')
-data = s.recv(1024)
-s.close()
-print 'Received', `data`
-\end{verbatim}
-
-\begin{seealso}
-\seemodule{SocketServer}{classes that simplify writing network servers}
-\end{seealso}
diff --git a/Doc/libsocksvr.tex b/Doc/libsocksvr.tex
deleted file mode 100644
index 8769c36..0000000
--- a/Doc/libsocksvr.tex
+++ /dev/null
@@ -1,196 +0,0 @@
-\section{Standard Module \module{SocketServer}}
-\label{module-SocketServer}
-\stmodindex{SocketServer}
-
-The \module{SocketServer} module simplifies the task of writing network
-servers.
-
-There are four basic server classes: \class{TCPServer} uses the
-Internet TCP protocol, which provides for continuous streams of data
-between the client and server. \class{UDPServer} uses datagrams, which
-are discrete packets of information that may arrive out of order or be
-lost while in transit. The more infrequently used
-\class{UnixStreamServer} and \class{UnixDatagramServer} classes are
-similar, but use \UNIX{} domain sockets; they're not available on
-non-\UNIX{} platforms. For more details on network programming, consult
-a book such as W. Richard Steven's \emph{UNIX Network Programming}
-or Ralph Davis's \emph{Win32 Network Programming}.
-
-These four classes process requests \dfn{synchronously}; each request
-must be completed before the next request can be started. This isn't
-suitable if each request takes a long time to complete, because it
-requires a lot of computation, or because it returns a lot of data
-which the client is slow to process. The solution is to create a
-separate process or thread to handle each request; the
-\class{ForkingMixIn} and \class{ThreadingMixIn} mix-in classes can be
-used to support asynchronous behaviour.
-
-Creating a server requires several steps. First, you must create a
-request handler class by subclassing the \class{BaseRequestHandler}
-class and overriding its \method{handle()} method; this method will
-process incoming requests. Second, you must instantiate one of the
-server classes, passing it the server's address and the request
-handler class. Finally, call the \method{handle_request()} or
-\method{serve_forever()} method of the server object to process one or
-many requests.
-
-Server classes have the same external methods and attributes, no
-matter what network protocol they use:
-
-\setindexsubitem{(SocketServer protocol)}
-
-%XXX should data and methods be intermingled, or separate?
-% how should the distinction between class and instance variables be
-% drawn?
-
-\begin{funcdesc}{fileno}{}
-Return an integer file descriptor for the socket on which the server
-is listening. This function is most commonly passed to
-\function{select.select()}, to allow monitoring multiple servers in the
-same process.
-\end{funcdesc}
-
-\begin{funcdesc}{handle_request}{}
-Process a single request. This function calls the following methods
-in order: \method{get_request()}, \method{verify_request()}, and
-\method{process_request()}. If the user-provided \method{handle()}
-method of the handler class raises an exception, the server's
-\method{handle_error()} method will be called.
-\end{funcdesc}
-
-\begin{funcdesc}{serve_forever}{}
-Handle an infinite number of requests. This simply calls
-\method{handle_request()} inside an infinite loop.
-\end{funcdesc}
-
-\begin{datadesc}{address_family}
-The family of protocols to which the server's socket belongs.
-\constant{socket.AF_INET} and \constant{socket.AF_UNIX} are two
-possible values.
-\end{datadesc}
-
-\begin{datadesc}{RequestHandlerClass}
-The user-provided request handler class; an instance of this class is
-created for each request.
-\end{datadesc}
-
-\begin{datadesc}{server_address}
-The address on which the server is listening. The format of addresses
-varies depending on the protocol family; see the documentation for the
-socket module for details. For Internet protocols, this is a tuple
-containing a string giving the address, and an integer port number:
-\code{('127.0.0.1', 80)}, for example.
-\end{datadesc}
-
-\begin{datadesc}{socket}
-The socket object on which the server will listen for incoming requests.
-\end{datadesc}
-
-% XXX should class variables be covered before instance variables, or
-% vice versa?
-
-The server classes support the following class variables:
-
-\begin{datadesc}{request_queue_size}
-The size of the request queue. If it takes a long time to process a
-single request, any requests that arrive while the server is busy are
-placed into a queue, up to \member{request_queue_size} requests. Once
-the queue is full, further requests from clients will get a
-``Connection denied'' error. The default value is usually 5, but this
-can be overridden by subclasses.
-\end{datadesc}
-
-\begin{datadesc}{socket_type}
-The type of socket used by the server; \constant{socket.SOCK_STREAM}
-and \constant{socket.SOCK_DGRAM} are two possible values.
-\end{datadesc}
-
-There are various server methods that can be overridden by subclasses
-of base server classes like \class{TCPServer}; these methods aren't
-useful to external users of the server object.
-
-% should the default implementations of these be documented, or should
-% it be assumed that the user will look at SocketServer.py?
-
-\begin{funcdesc}{finish_request}{}
-Actually processes the request by instantiating
-\member{RequestHandlerClass} and calling its \method{handle()} method.
-\end{funcdesc}
-
-\begin{funcdesc}{get_request}{}
-Must accept a request from the socket, and return a 2-tuple containing
-the \emph{new} socket object to be used to communicate with the
-client, and the client's address.
-\end{funcdesc}
-
-\begin{funcdesc}{handle_error}{request, client_address}
-This function is called if the \member{RequestHandlerClass}'s
-\method{handle()} method raises an exception. The default action is
-to print the traceback to standard output and continue handling
-further requests.
-\end{funcdesc}
-
-\begin{funcdesc}{process_request}{request, client_address}
-Calls \method{finish_request()} to create an instance of the
-\member{RequestHandlerClass}. If desired, this function can create a
-new process or thread to handle the request; the \class{ForkingMixIn}
-and \class{ThreadingMixIn} classes do this.
-\end{funcdesc}
-
-% Is there any point in documenting the following two functions?
-% What would the purpose of overriding them be: initializing server
-% instance variables, adding new network families?
-
-\begin{funcdesc}{server_activate}{}
-Called by the server's constructor to activate the server.
-May be overridden.
-\end{funcdesc}
-
-\begin{funcdesc}{server_bind}{}
-Called by the server's constructor to bind the socket to the desired
-address. May be overridden.
-\end{funcdesc}
-
-\begin{funcdesc}{verify_request}{request, client_address}
-Must return a Boolean value; if the value is true, the request will be
-processed, and if it's false, the request will be denied.
-This function can be overridden to implement access controls for a server.
-The default implementation always return true.
-\end{funcdesc}
-
-The request handler class must define a new \method{handle()} method,
-and can override any of the following methods. A new instance is
-created for each request.
-
-\begin{funcdesc}{finish}{}
-Called after the \method{handle()} method to perform any clean-up
-actions required. The default implementation does nothing. If
-\method{setup()} or \method{handle()} raise an exception, this
-function will not be called.
-\end{funcdesc}
-
-\begin{funcdesc}{handle}{}
-This function must do all the work required to service a request.
-Several instance attributes are available to it; the request is
-available as \member{self.request}; the client address as
-\member{self.client_request}; and the server instance as
-\member{self.server}, in case it needs access to per-server
-information.
-
-The type of \member{self.request} is different for datagram or stream
-services. For stream services, \member{self.request} is a socket
-object; for datagram services, \member{self.request} is a string.
-However, this can be hidden by using the mix-in request handler
-classes
-\class{StreamRequestHandler} or \class{DatagramRequestHandler}, which
-override the \method{setup()} and \method{finish()} methods, and
-provides \member{self.rfile} and \member{self.wfile} attributes.
-\member{self.rfile} and \member{self.wfile} can be read or written,
-respectively, to get the request data or return data to the client.
-\end{funcdesc}
-
-\begin{funcdesc}{setup}{}
-Called before the \method{handle()} method to perform any
-initialization actions required. The default implementation does
-nothing.
-\end{funcdesc}
diff --git a/Doc/libsomeos.tex b/Doc/libsomeos.tex
deleted file mode 100644
index 1e282f5..0000000
--- a/Doc/libsomeos.tex
+++ /dev/null
@@ -1,39 +0,0 @@
-\chapter{Optional Operating System Services}
-\label{someos}
-
-The modules described in this chapter provide interfaces to operating
-system features that are available on selected operating systems only.
-The interfaces are generally modelled after the \UNIX{} or \C{}
-interfaces but they are available on some other systems as well
-(e.g. Windows or NT). Here's an overview:
-
-\begin{description}
-
-\item[signal]
---- Set handlers for asynchronous events.
-
-\item[socket]
---- Low-level networking interface.
-
-\item[select]
---- Wait for I/O completion on multiple streams.
-
-\item[thread]
---- Create multiple threads of control within one namespace.
-
-\item[Queue]
---- A stynchronized queue class.
-
-\item[anydbm]
---- Generic interface to DBM-style database modules.
-
-\item[whichdb]
---- Guess which DBM-style module created a given database.
-
-\item[zlib]
-\item[gzip]
---- Compression and decompression compatible with the
-\program{gzip} program (\module{zlib} is the low-level interface,
-\module{gzip} the high-level one).
-
-\end{description}
diff --git a/Doc/libsoundex.tex b/Doc/libsoundex.tex
deleted file mode 100644
index fdecbab..0000000
--- a/Doc/libsoundex.tex
+++ /dev/null
@@ -1,41 +0,0 @@
-\section{Built-in Module \module{soundex}}
-\label{module-soundex}
-\bimodindex{soundex}
-
-
-The soundex algorithm takes an English word, and returns an
-easily-computed hash of it; this hash is intended to be the same for
-words that sound alike. This module provides an interface to the
-soundex algorithm.
-
-Note that the soundex algorithm is quite simple-minded, and isn't
-perfect by any measure. Its main purpose is to help looking up names
-in databases, when the name may be misspelled --- soundex hashes common
-misspellings together.
-
-\begin{funcdesc}{get_soundex}{string}
-Return the soundex hash value for a word; it will always be a
-6-character string. \var{string} must contain the word to be hashed,
-with no leading whitespace; the case of the word is ignored. (Note
-that the original algorithm produces a 4-character result.)
-\end{funcdesc}
-
-\begin{funcdesc}{sound_similar}{string1, string2}
-Compare the word in \var{string1} with the word in \var{string2}; this
-is equivalent to
-\code{get_soundex(\var{string1})} \code{==}
-\code{get_soundex(\var{string2})}.
-\end{funcdesc}
-
-
-\begin{seealso}
-
-\seetext{Donald E. Knuth, \emph{Sorting and Searching,} vol. 3 in
-``The Art of Computer Programming.'' Addison-Wesley Publishing
-Company: Reading, MA: 1973. pp.\ 391-392. Discusses the origin and
-usefulness of the algorithm, as well as the algorithm itself. Knuth
-gives his sources as \emph{U.S. Patents 1261167} (1918) and
-\emph{1435663} (1922), attributing the algorithm to Margaret K. Odell
-and Robert C. Russel. Additional references are provided.}
-
-\end{seealso}
diff --git a/Doc/libstat.tex b/Doc/libstat.tex
deleted file mode 100644
index 5e76335..0000000
--- a/Doc/libstat.tex
+++ /dev/null
@@ -1,110 +0,0 @@
-% By Skip Montanaro
-
-\section{Standard Module \module{stat}}
-\stmodindex{stat}
-\label{module-stat}
-
-The \code{stat} module defines constants and functions for interpreting the
-results of \code{os.stat()} and \code{os.lstat()} (if they exist).
-For complete details about the \code{stat()} and \code{lstat()} system
-calls, consult your local man pages.
-
-The \code{stat} module defines the following functions:
-
-
-\begin{funcdesc}{S_ISDIR}{mode}
-Return non-zero if the mode was gotten from a directory.
-\end{funcdesc}
-
-\begin{funcdesc}{S_ISCHR}{mode}
-Return non-zero if the mode was gotten from a character special device.
-\end{funcdesc}
-
-\begin{funcdesc}{S_ISBLK}{mode}
-Return non-zero if the mode was gotten from a block special device.
-\end{funcdesc}
-
-\begin{funcdesc}{S_ISREG}{mode}
-Return non-zero if the mode was gotten from a regular file.
-\end{funcdesc}
-
-\begin{funcdesc}{S_ISFIFO}{mode}
-Return non-zero if the mode was gotten from a FIFO.
-\end{funcdesc}
-
-\begin{funcdesc}{S_ISLNK}{mode}
-Return non-zero if the mode was gotten from a symbolic link.
-\end{funcdesc}
-
-\begin{funcdesc}{S_ISSOCK}{mode}
-Return non-zero if the mode was gotten from a socket.
-\end{funcdesc}
-
-All the data items below are simply symbolic indexes into the 10-tuple
-returned by \code{os.stat()} or \code{os.lstat()}.
-
-\begin{datadesc}{ST_MODE}
-Inode protection mode.
-\end{datadesc}
-
-\begin{datadesc}{ST_INO}
-Inode number.
-\end{datadesc}
-
-\begin{datadesc}{ST_DEV}
-Device inode resides on.
-\end{datadesc}
-
-\begin{datadesc}{ST_NLINK}
-Number of links to the inode.
-\end{datadesc}
-
-\begin{datadesc}{ST_UID}
-User id of the owner.
-\end{datadesc}
-
-\begin{datadesc}{ST_GID}
-Group id of the owner.
-\end{datadesc}
-
-\begin{datadesc}{ST_SIZE}
-File size in bytes.
-\end{datadesc}
-
-\begin{datadesc}{ST_ATIME}
-Time of last access.
-\end{datadesc}
-
-\begin{datadesc}{ST_MTIME}
-Time of last modification.
-\end{datadesc}
-
-\begin{datadesc}{ST_CTIME}
-Time of last status change (see manual pages for details).
-\end{datadesc}
-
-Example:
-
-\begin{verbatim}
-import os, sys
-from stat import *
-
-def process(dir, func):
- '''recursively descend the directory rooted at dir, calling func for
- each regular file'''
-
- for f in os.listdir(dir):
- mode = os.stat('%s/%s' % (dir, f))[ST_MODE]
- if S_ISDIR(mode):
- # recurse into directory
- process('%s/%s' % (dir, f), func)
- elif S_ISREG(mode):
- func('%s/%s' % (dir, f))
- else:
- print 'Skipping %s/%s' % (dir, f)
-
-def f(file):
- print 'frobbed', file
-
-if __name__ == '__main__': process(sys.argv[1], f)
-\end{verbatim}
diff --git a/Doc/libstdwin.tex b/Doc/libstdwin.tex
deleted file mode 100644
index 146457a..0000000
--- a/Doc/libstdwin.tex
+++ /dev/null
@@ -1,920 +0,0 @@
-\chapter{Standard Windowing Interface}
-
-The modules in this chapter are available only on those systems where
-the STDWIN library is available. STDWIN runs on \UNIX{} under X11 and
-on the Macintosh. See CWI report CS-R8817.
-
-\strong{Warning:} Using STDWIN is not recommended for new
-applications. It has never been ported to Microsoft Windows or
-Windows NT, and for X11 or the Macintosh it lacks important
-functionality --- in particular, it has no tools for the construction
-of dialogs. For most platforms, alternative, native solutions exist
-(though none are currently documented in this manual): Tkinter for
-\UNIX{} under X11, native Xt with Motif or Athena widgets for \UNIX{}
-under X11, Win32 for Windows and Windows NT, and a collection of
-native toolkit interfaces for the Macintosh.
-
-\section{Built-in Module \module{stdwin}}
-\label{module-stdwin}
-\bimodindex{stdwin}
-
-This module defines several new object types and functions that
-provide access to the functionality of STDWIN.
-
-On \UNIX{} running X11, it can only be used if the \code{DISPLAY}
-environment variable is set or an explicit \samp{-display
-\var{displayname}} argument is passed to the Python interpreter.
-
-Functions have names that usually resemble their C STDWIN counterparts
-with the initial `w' dropped.
-Points are represented by pairs of integers; rectangles
-by pairs of points.
-For a complete description of STDWIN please refer to the documentation
-of STDWIN for C programmers (aforementioned CWI report).
-
-\subsection{Functions Defined in Module \module{stdwin}}
-\nodename{STDWIN Functions}
-
-The following functions are defined in the \code{stdwin} module:
-
-\begin{funcdesc}{open}{title}
-Open a new window whose initial title is given by the string argument.
-Return a window object; window object methods are described below.%
-\footnote{The Python version of STDWIN does not support draw procedures; all
- drawing requests are reported as draw events.}
-\end{funcdesc}
-
-\begin{funcdesc}{getevent}{}
-Wait for and return the next event.
-An event is returned as a triple: the first element is the event
-type, a small integer; the second element is the window object to which
-the event applies, or
-\code{None}
-if it applies to no window in particular;
-the third element is type-dependent.
-Names for event types and command codes are defined in the standard
-module
-\code{stdwinevent}.
-\end{funcdesc}
-
-\begin{funcdesc}{pollevent}{}
-Return the next event, if one is immediately available.
-If no event is available, return \code{()}.
-\end{funcdesc}
-
-\begin{funcdesc}{getactive}{}
-Return the window that is currently active, or \code{None} if no
-window is currently active. (This can be emulated by monitoring
-WE_ACTIVATE and WE_DEACTIVATE events.)
-\end{funcdesc}
-
-\begin{funcdesc}{listfontnames}{pattern}
-Return the list of font names in the system that match the pattern (a
-string). The pattern should normally be \code{'*'}; returns all
-available fonts. If the underlying window system is X11, other
-patterns follow the standard X11 font selection syntax (as used e.g.
-in resource definitions), i.e. the wildcard character \code{'*'}
-matches any sequence of characters (including none) and \code{'?'}
-matches any single character.
-On the Macintosh this function currently returns an empty list.
-\end{funcdesc}
-
-\begin{funcdesc}{setdefscrollbars}{hflag, vflag}
-Set the flags controlling whether subsequently opened windows will
-have horizontal and/or vertical scroll bars.
-\end{funcdesc}
-
-\begin{funcdesc}{setdefwinpos}{h, v}
-Set the default window position for windows opened subsequently.
-\end{funcdesc}
-
-\begin{funcdesc}{setdefwinsize}{width, height}
-Set the default window size for windows opened subsequently.
-\end{funcdesc}
-
-\begin{funcdesc}{getdefscrollbars}{}
-Return the flags controlling whether subsequently opened windows will
-have horizontal and/or vertical scroll bars.
-\end{funcdesc}
-
-\begin{funcdesc}{getdefwinpos}{}
-Return the default window position for windows opened subsequently.
-\end{funcdesc}
-
-\begin{funcdesc}{getdefwinsize}{}
-Return the default window size for windows opened subsequently.
-\end{funcdesc}
-
-\begin{funcdesc}{getscrsize}{}
-Return the screen size in pixels.
-\end{funcdesc}
-
-\begin{funcdesc}{getscrmm}{}
-Return the screen size in millimeters.
-\end{funcdesc}
-
-\begin{funcdesc}{fetchcolor}{colorname}
-Return the pixel value corresponding to the given color name.
-Return the default foreground color for unknown color names.
-Hint: the following code tests whether you are on a machine that
-supports more than two colors:
-\begin{verbatim}
-if stdwin.fetchcolor('black') <> \
- stdwin.fetchcolor('red') <> \
- stdwin.fetchcolor('white'):
- print 'color machine'
-else:
- print 'monochrome machine'
-\end{verbatim}
-\end{funcdesc}
-
-\begin{funcdesc}{setfgcolor}{pixel}
-Set the default foreground color.
-This will become the default foreground color of windows opened
-subsequently, including dialogs.
-\end{funcdesc}
-
-\begin{funcdesc}{setbgcolor}{pixel}
-Set the default background color.
-This will become the default background color of windows opened
-subsequently, including dialogs.
-\end{funcdesc}
-
-\begin{funcdesc}{getfgcolor}{}
-Return the pixel value of the current default foreground color.
-\end{funcdesc}
-
-\begin{funcdesc}{getbgcolor}{}
-Return the pixel value of the current default background color.
-\end{funcdesc}
-
-\begin{funcdesc}{setfont}{fontname}
-Set the current default font.
-This will become the default font for windows opened subsequently,
-and is also used by the text measuring functions \code{textwidth},
-\code{textbreak}, \code{lineheight} and \code{baseline} below.
-This accepts two more optional parameters, size and style:
-Size is the font size (in `points').
-Style is a single character specifying the style, as follows:
-\code{'b'} = bold,
-\code{'i'} = italic,
-\code{'o'} = bold + italic,
-\code{'u'} = underline;
-default style is roman.
-Size and style are ignored under X11 but used on the Macintosh.
-(Sorry for all this complexity --- a more uniform interface is being designed.)
-\end{funcdesc}
-
-\begin{funcdesc}{menucreate}{title}
-Create a menu object referring to a global menu (a menu that appears in
-all windows).
-Methods of menu objects are described below.
-Note: normally, menus are created locally; see the window method
-\code{menucreate} below.
-\strong{Warning:} the menu only appears in a window as long as the object
-returned by this call exists.
-\end{funcdesc}
-
-\begin{funcdesc}{newbitmap}{width, height}
-Create a new bitmap object of the given dimensions.
-Methods of bitmap objects are described below.
-Not available on the Macintosh.
-\end{funcdesc}
-
-\begin{funcdesc}{fleep}{}
-Cause a beep or bell (or perhaps a `visual bell' or flash, hence the
-name).
-\end{funcdesc}
-
-\begin{funcdesc}{message}{string}
-Display a dialog box containing the string.
-The user must click OK before the function returns.
-\end{funcdesc}
-
-\begin{funcdesc}{askync}{prompt, default}
-Display a dialog that prompts the user to answer a question with yes or
-no.
-Return 0 for no, 1 for yes.
-If the user hits the Return key, the default (which must be 0 or 1) is
-returned.
-If the user cancels the dialog, the
-\code{KeyboardInterrupt}
-exception is raised.
-\end{funcdesc}
-
-\begin{funcdesc}{askstr}{prompt, default}
-Display a dialog that prompts the user for a string.
-If the user hits the Return key, the default string is returned.
-If the user cancels the dialog, the
-\code{KeyboardInterrupt}
-exception is raised.
-\end{funcdesc}
-
-\begin{funcdesc}{askfile}{prompt, default, new}
-Ask the user to specify a filename.
-If
-\var{new}
-is zero it must be an existing file; otherwise, it must be a new file.
-If the user cancels the dialog, the
-\code{KeyboardInterrupt}
-exception is raised.
-\end{funcdesc}
-
-\begin{funcdesc}{setcutbuffer}{i, string}
-Store the string in the system's cut buffer number
-\var{i},
-where it can be found (for pasting) by other applications.
-On X11, there are 8 cut buffers (numbered 0..7).
-Cut buffer number 0 is the `clipboard' on the Macintosh.
-\end{funcdesc}
-
-\begin{funcdesc}{getcutbuffer}{i}
-Return the contents of the system's cut buffer number
-\var{i}.
-\end{funcdesc}
-
-\begin{funcdesc}{rotatecutbuffers}{n}
-On X11, rotate the 8 cut buffers by
-\var{n}.
-Ignored on the Macintosh.
-\end{funcdesc}
-
-\begin{funcdesc}{getselection}{i}
-Return X11 selection number
-\var{i.}
-Selections are not cut buffers.
-Selection numbers are defined in module
-\code{stdwinevents}.
-Selection \code{WS_PRIMARY} is the
-\dfn{primary}
-selection (used by
-xterm,
-for instance);
-selection \code{WS_SECONDARY} is the
-\dfn{secondary}
-selection; selection \code{WS_CLIPBOARD} is the
-\dfn{clipboard}
-selection (used by
-xclipboard).
-On the Macintosh, this always returns an empty string.
-\end{funcdesc}
-
-\begin{funcdesc}{resetselection}{i}
-Reset selection number
-\var{i},
-if this process owns it.
-(See window method
-\code{setselection()}).
-\end{funcdesc}
-
-\begin{funcdesc}{baseline}{}
-Return the baseline of the current font (defined by STDWIN as the
-vertical distance between the baseline and the top of the
-characters).
-\end{funcdesc}
-
-\begin{funcdesc}{lineheight}{}
-Return the total line height of the current font.
-\end{funcdesc}
-
-\begin{funcdesc}{textbreak}{str, width}
-Return the number of characters of the string that fit into a space of
-\var{width}
-bits wide when drawn in the curent font.
-\end{funcdesc}
-
-\begin{funcdesc}{textwidth}{str}
-Return the width in bits of the string when drawn in the current font.
-\end{funcdesc}
-
-\begin{funcdesc}{connectionnumber}{}
-\funcline{fileno}{}
-(X11 under \UNIX{} only) Return the ``connection number'' used by the
-underlying X11 implementation. (This is normally the file number of
-the socket.) Both functions return the same value;
-\code{connectionnumber()} is named after the corresponding function in
-X11 and STDWIN, while \code{fileno()} makes it possible to use the
-\code{stdwin} module as a ``file'' object parameter to
-\code{select.select()}. Note that if \code{select()} implies that
-input is possible on \code{stdwin}, this does not guarantee that an
-event is ready --- it may be some internal communication going on
-between the X server and the client library. Thus, you should call
-\code{stdwin.pollevent()} until it returns \code{None} to check for
-events if you don't want your program to block. Because of internal
-buffering in X11, it is also possible that \code{stdwin.pollevent()}
-returns an event while \code{select()} does not find \code{stdwin} to
-be ready, so you should read any pending events with
-\code{stdwin.pollevent()} until it returns \code{None} before entering
-a blocking \code{select()} call.
-\ttindex{select}
-\end{funcdesc}
-
-\subsection{Window Objects}
-\nodename{STDWIN Window Objects}
-
-Window objects are created by \code{stdwin.open()}. They are closed
-by their \code{close()} method or when they are garbage-collected.
-Window objects have the following methods:
-
-\setindexsubitem{(window method)}
-
-\begin{funcdesc}{begindrawing}{}
-Return a drawing object, whose methods (described below) allow drawing
-in the window.
-\end{funcdesc}
-
-\begin{funcdesc}{change}{rect}
-Invalidate the given rectangle; this may cause a draw event.
-\end{funcdesc}
-
-\begin{funcdesc}{gettitle}{}
-Returns the window's title string.
-\end{funcdesc}
-
-\begin{funcdesc}{getdocsize}{}
-\begin{sloppypar}
-Return a pair of integers giving the size of the document as set by
-\code{setdocsize()}.
-\end{sloppypar}
-\end{funcdesc}
-
-\begin{funcdesc}{getorigin}{}
-Return a pair of integers giving the origin of the window with respect
-to the document.
-\end{funcdesc}
-
-\begin{funcdesc}{gettitle}{}
-Return the window's title string.
-\end{funcdesc}
-
-\begin{funcdesc}{getwinsize}{}
-Return a pair of integers giving the size of the window.
-\end{funcdesc}
-
-\begin{funcdesc}{getwinpos}{}
-Return a pair of integers giving the position of the window's upper
-left corner (relative to the upper left corner of the screen).
-\end{funcdesc}
-
-\begin{funcdesc}{menucreate}{title}
-Create a menu object referring to a local menu (a menu that appears
-only in this window).
-Methods of menu objects are described below.
-\strong{Warning:} the menu only appears as long as the object
-returned by this call exists.
-\end{funcdesc}
-
-\begin{funcdesc}{scroll}{rect, point}
-Scroll the given rectangle by the vector given by the point.
-\end{funcdesc}
-
-\begin{funcdesc}{setdocsize}{point}
-Set the size of the drawing document.
-\end{funcdesc}
-
-\begin{funcdesc}{setorigin}{point}
-Move the origin of the window (its upper left corner)
-to the given point in the document.
-\end{funcdesc}
-
-\begin{funcdesc}{setselection}{i, str}
-Attempt to set X11 selection number
-\var{i}
-to the string
-\var{str}.
-(See stdwin method
-\code{getselection()}
-for the meaning of
-\var{i}.)
-Return true if it succeeds.
-If succeeds, the window ``owns'' the selection until
-(a) another application takes ownership of the selection; or
-(b) the window is deleted; or
-(c) the application clears ownership by calling
-\code{stdwin.resetselection(\var{i})}.
-When another application takes ownership of the selection, a
-\code{WE_LOST_SEL}
-event is received for no particular window and with the selection number
-as detail.
-Ignored on the Macintosh.
-\end{funcdesc}
-
-\begin{funcdesc}{settimer}{dsecs}
-Schedule a timer event for the window in
-\code{\var{dsecs}/10}
-seconds.
-\end{funcdesc}
-
-\begin{funcdesc}{settitle}{title}
-Set the window's title string.
-\end{funcdesc}
-
-\begin{funcdesc}{setwincursor}{name}
-\begin{sloppypar}
-Set the window cursor to a cursor of the given name.
-It raises the
-\code{RuntimeError}
-exception if no cursor of the given name exists.
-Suitable names include
-\code{'ibeam'},
-\code{'arrow'},
-\code{'cross'},
-\code{'watch'}
-and
-\code{'plus'}.
-On X11, there are many more (see
-\file{<X11/cursorfont.h>}).
-\end{sloppypar}
-\end{funcdesc}
-
-\begin{funcdesc}{setwinpos}{h, v}
-Set the the position of the window's upper left corner (relative to
-the upper left corner of the screen).
-\end{funcdesc}
-
-\begin{funcdesc}{setwinsize}{width, height}
-Set the window's size.
-\end{funcdesc}
-
-\begin{funcdesc}{show}{rect}
-Try to ensure that the given rectangle of the document is visible in
-the window.
-\end{funcdesc}
-
-\begin{funcdesc}{textcreate}{rect}
-Create a text-edit object in the document at the given rectangle.
-Methods of text-edit objects are described below.
-\end{funcdesc}
-
-\begin{funcdesc}{setactive}{}
-Attempt to make this window the active window. If successful, this
-will generate a WE_ACTIVATE event (and a WE_DEACTIVATE event in case
-another window in this application became inactive).
-\end{funcdesc}
-
-\begin{funcdesc}{close}{}
-Discard the window object. It should not be used again.
-\end{funcdesc}
-
-\subsection{Drawing Objects}
-
-Drawing objects are created exclusively by the window method
-\code{begindrawing()}.
-Only one drawing object can exist at any given time; the drawing object
-must be deleted to finish drawing.
-No drawing object may exist when
-\code{stdwin.getevent()}
-is called.
-Drawing objects have the following methods:
-
-\setindexsubitem{(drawing method)}
-
-\begin{funcdesc}{box}{rect}
-Draw a box just inside a rectangle.
-\end{funcdesc}
-
-\begin{funcdesc}{circle}{center, radius}
-Draw a circle with given center point and radius.
-\end{funcdesc}
-
-\begin{funcdesc}{elarc}{center, \(rh, rv\), \(a1, a2\)}
-Draw an elliptical arc with given center point.
-\code{(\var{rh}, \var{rv})}
-gives the half sizes of the horizontal and vertical radii.
-\code{(\var{a1}, \var{a2})}
-gives the angles (in degrees) of the begin and end points.
-0 degrees is at 3 o'clock, 90 degrees is at 12 o'clock.
-\end{funcdesc}
-
-\begin{funcdesc}{erase}{rect}
-Erase a rectangle.
-\end{funcdesc}
-
-\begin{funcdesc}{fillcircle}{center, radius}
-Draw a filled circle with given center point and radius.
-\end{funcdesc}
-
-\begin{funcdesc}{fillelarc}{center, \(rh, rv\), \(a1, a2\)}
-Draw a filled elliptical arc; arguments as for \code{elarc}.
-\end{funcdesc}
-
-\begin{funcdesc}{fillpoly}{points}
-Draw a filled polygon given by a list (or tuple) of points.
-\end{funcdesc}
-
-\begin{funcdesc}{invert}{rect}
-Invert a rectangle.
-\end{funcdesc}
-
-\begin{funcdesc}{line}{p1, p2}
-Draw a line from point
-\var{p1}
-to
-\var{p2}.
-\end{funcdesc}
-
-\begin{funcdesc}{paint}{rect}
-Fill a rectangle.
-\end{funcdesc}
-
-\begin{funcdesc}{poly}{points}
-Draw the lines connecting the given list (or tuple) of points.
-\end{funcdesc}
-
-\begin{funcdesc}{shade}{rect, percent}
-Fill a rectangle with a shading pattern that is about
-\var{percent}
-percent filled.
-\end{funcdesc}
-
-\begin{funcdesc}{text}{p, str}
-Draw a string starting at point p (the point specifies the
-top left coordinate of the string).
-\end{funcdesc}
-
-\begin{funcdesc}{xorcircle}{center, radius}
-\funcline{xorelarc}{center, \(rh, rv\), \(a1, a2\)}
-\funcline{xorline}{p1, p2}
-\funcline{xorpoly}{points}
-Draw a circle, an elliptical arc, a line or a polygon, respectively,
-in XOR mode.
-\end{funcdesc}
-
-\begin{funcdesc}{setfgcolor}{}
-\funcline{setbgcolor}{}
-\funcline{getfgcolor}{}
-\funcline{getbgcolor}{}
-These functions are similar to the corresponding functions described
-above for the
-\code{stdwin}
-module, but affect or return the colors currently used for drawing
-instead of the global default colors.
-When a drawing object is created, its colors are set to the window's
-default colors, which are in turn initialized from the global default
-colors when the window is created.
-\end{funcdesc}
-
-\begin{funcdesc}{setfont}{}
-\funcline{baseline}{}
-\funcline{lineheight}{}
-\funcline{textbreak}{}
-\funcline{textwidth}{}
-These functions are similar to the corresponding functions described
-above for the
-\code{stdwin}
-module, but affect or use the current drawing font instead of
-the global default font.
-When a drawing object is created, its font is set to the window's
-default font, which is in turn initialized from the global default
-font when the window is created.
-\end{funcdesc}
-
-\begin{funcdesc}{bitmap}{point, bitmap, mask}
-Draw the \var{bitmap} with its top left corner at \var{point}.
-If the optional \var{mask} argument is present, it should be either
-the same object as \var{bitmap}, to draw only those bits that are set
-in the bitmap, in the foreground color, or \code{None}, to draw all
-bits (ones are drawn in the foreground color, zeros in the background
-color).
-Not available on the Macintosh.
-\end{funcdesc}
-
-\begin{funcdesc}{cliprect}{rect}
-Set the ``clipping region'' to a rectangle.
-The clipping region limits the effect of all drawing operations, until
-it is changed again or until the drawing object is closed. When a
-drawing object is created the clipping region is set to the entire
-window. When an object to be drawn falls partly outside the clipping
-region, the set of pixels drawn is the intersection of the clipping
-region and the set of pixels that would be drawn by the same operation
-in the absence of a clipping region.
-\end{funcdesc}
-
-\begin{funcdesc}{noclip}{}
-Reset the clipping region to the entire window.
-\end{funcdesc}
-
-\begin{funcdesc}{close}{}
-\funcline{enddrawing}{}
-Discard the drawing object. It should not be used again.
-\end{funcdesc}
-
-\subsection{Menu Objects}
-
-A menu object represents a menu.
-The menu is destroyed when the menu object is deleted.
-The following methods are defined:
-
-\setindexsubitem{(menu method)}
-
-\begin{funcdesc}{additem}{text, shortcut}
-Add a menu item with given text.
-The shortcut must be a string of length 1, or omitted (to specify no
-shortcut).
-\end{funcdesc}
-
-\begin{funcdesc}{setitem}{i, text}
-Set the text of item number
-\var{i}.
-\end{funcdesc}
-
-\begin{funcdesc}{enable}{i, flag}
-Enable or disables item
-\var{i}.
-\end{funcdesc}
-
-\begin{funcdesc}{check}{i, flag}
-Set or clear the
-\dfn{check mark}
-for item
-\var{i}.
-\end{funcdesc}
-
-\begin{funcdesc}{close}{}
-Discard the menu object. It should not be used again.
-\end{funcdesc}
-
-\subsection{Bitmap Objects}
-
-A bitmap represents a rectangular array of bits.
-The top left bit has coordinate (0, 0).
-A bitmap can be drawn with the \code{bitmap} method of a drawing object.
-Bitmaps are currently not available on the Macintosh.
-
-The following methods are defined:
-
-\setindexsubitem{(bitmap method)}
-
-\begin{funcdesc}{getsize}{}
-Return a tuple representing the width and height of the bitmap.
-(This returns the values that have been passed to the \code{newbitmap}
-function.)
-\end{funcdesc}
-
-\begin{funcdesc}{setbit}{point, bit}
-Set the value of the bit indicated by \var{point} to \var{bit}.
-\end{funcdesc}
-
-\begin{funcdesc}{getbit}{point}
-Return the value of the bit indicated by \var{point}.
-\end{funcdesc}
-
-\begin{funcdesc}{close}{}
-Discard the bitmap object. It should not be used again.
-\end{funcdesc}
-
-\subsection{Text-edit Objects}
-
-A text-edit object represents a text-edit block.
-For semantics, see the STDWIN documentation for C programmers.
-The following methods exist:
-
-\setindexsubitem{(text-edit method)}
-
-\begin{funcdesc}{arrow}{code}
-Pass an arrow event to the text-edit block.
-The
-\var{code}
-must be one of
-\code{WC_LEFT},
-\code{WC_RIGHT},
-\code{WC_UP}
-or
-\code{WC_DOWN}
-(see module
-\code{stdwinevents}).
-\end{funcdesc}
-
-\begin{funcdesc}{draw}{rect}
-Pass a draw event to the text-edit block.
-The rectangle specifies the redraw area.
-\end{funcdesc}
-
-\begin{funcdesc}{event}{type, window, detail}
-Pass an event gotten from
-\code{stdwin.getevent()}
-to the text-edit block.
-Return true if the event was handled.
-\end{funcdesc}
-
-\begin{funcdesc}{getfocus}{}
-Return 2 integers representing the start and end positions of the
-focus, usable as slice indices on the string returned by
-\code{gettext()}.
-\end{funcdesc}
-
-\begin{funcdesc}{getfocustext}{}
-Return the text in the focus.
-\end{funcdesc}
-
-\begin{funcdesc}{getrect}{}
-Return a rectangle giving the actual position of the text-edit block.
-(The bottom coordinate may differ from the initial position because
-the block automatically shrinks or grows to fit.)
-\end{funcdesc}
-
-\begin{funcdesc}{gettext}{}
-Return the entire text buffer.
-\end{funcdesc}
-
-\begin{funcdesc}{move}{rect}
-Specify a new position for the text-edit block in the document.
-\end{funcdesc}
-
-\begin{funcdesc}{replace}{str}
-Replace the text in the focus by the given string.
-The new focus is an insert point at the end of the string.
-\end{funcdesc}
-
-\begin{funcdesc}{setfocus}{i, j}
-Specify the new focus.
-Out-of-bounds values are silently clipped.
-\end{funcdesc}
-
-\begin{funcdesc}{settext}{str}
-Replace the entire text buffer by the given string and set the focus
-to \code{(0, 0)}.
-\end{funcdesc}
-
-\begin{funcdesc}{setview}{rect}
-Set the view rectangle to \var{rect}. If \var{rect} is \code{None},
-viewing mode is reset. In viewing mode, all output from the text-edit
-object is clipped to the viewing rectangle. This may be useful to
-implement your own scrolling text subwindow.
-\end{funcdesc}
-
-\begin{funcdesc}{close}{}
-Discard the text-edit object. It should not be used again.
-\end{funcdesc}
-
-\subsection{Example}
-\nodename{STDWIN Example}
-
-Here is a minimal example of using STDWIN in Python.
-It creates a window and draws the string ``Hello world'' in the top
-left corner of the window.
-The window will be correctly redrawn when covered and re-exposed.
-The program quits when the close icon or menu item is requested.
-
-\begin{verbatim}
-import stdwin
-from stdwinevents import *
-
-def main():
- mywin = stdwin.open('Hello')
- #
- while 1:
- (type, win, detail) = stdwin.getevent()
- if type == WE_DRAW:
- draw = win.begindrawing()
- draw.text((0, 0), 'Hello, world')
- del draw
- elif type == WE_CLOSE:
- break
-
-main()
-\end{verbatim}
-%
-\section{Standard Module \module{stdwinevents}}
-\label{module-stdwinevents}
-\stmodindex{stdwinevents}
-
-This module defines constants used by STDWIN for event types
-(\code{WE_ACTIVATE} etc.), command codes (\code{WC_LEFT} etc.)
-and selection types (\code{WS_PRIMARY} etc.).
-Read the file for details.
-Suggested usage is
-
-\begin{verbatim}
->>> from stdwinevents import *
->>>
-\end{verbatim}
-%
-\section{Standard Module \module{rect}}
-\label{module-rect}
-\stmodindex{rect}
-
-This module contains useful operations on rectangles.
-A rectangle is defined as in module
-\code{stdwin}:
-a pair of points, where a point is a pair of integers.
-For example, the rectangle
-
-\begin{verbatim}
-(10, 20), (90, 80)
-\end{verbatim}
-%
-is a rectangle whose left, top, right and bottom edges are 10, 20, 90
-and 80, respectively.
-Note that the positive vertical axis points down (as in
-\code{stdwin}).
-
-The module defines the following objects:
-
-\begin{excdesc}{error}
-The exception raised by functions in this module when they detect an
-error.
-The exception argument is a string describing the problem in more
-detail.
-\end{excdesc}
-
-\begin{datadesc}{empty}
-The rectangle returned when some operations return an empty result.
-This makes it possible to quickly check whether a result is empty:
-
-\begin{verbatim}
->>> import rect
->>> r1 = (10, 20), (90, 80)
->>> r2 = (0, 0), (10, 20)
->>> r3 = rect.intersect([r1, r2])
->>> if r3 is rect.empty: print 'Empty intersection'
-Empty intersection
->>>
-\end{verbatim}
-\end{datadesc}
-
-\begin{funcdesc}{is_empty}{r}
-Returns true if the given rectangle is empty.
-A rectangle
-\code{(\var{left}, \var{top}), (\var{right}, \var{bottom})}
-is empty if
-%begin{latexonly}
-\iftexi
-%end{latexonly}
-\code{\var{left} >= \var{right}} or \code{\var{top} => \var{bottom}}.
-%begin{latexonly}
-\else
-$\var{left} \geq \var{right}$ or $\var{top} \geq \var{bottom}$.
-%%JHXXX\emph{left~$\geq$~right} or \emph{top~$\leq$~bottom}.
-\fi
-%end{latexonly}
-\end{funcdesc}
-
-\begin{funcdesc}{intersect}{list}
-Returns the intersection of all rectangles in the list argument.
-It may also be called with a tuple argument.
-Raises
-\code{rect.error}
-if the list is empty.
-Returns
-\code{rect.empty}
-if the intersection of the rectangles is empty.
-\end{funcdesc}
-
-\begin{funcdesc}{union}{list}
-Returns the smallest rectangle that contains all non-empty rectangles in
-the list argument.
-It may also be called with a tuple argument or with two or more
-rectangles as arguments.
-Returns
-\code{rect.empty}
-if the list is empty or all its rectangles are empty.
-\end{funcdesc}
-
-\begin{funcdesc}{pointinrect}{point, rect}
-Returns true if the point is inside the rectangle.
-By definition, a point
-\code{(\var{h}, \var{v})}
-is inside a rectangle
-\code{(\var{left}, \var{top}), (\var{right}, \var{bottom})} if
-%begin{latexonly}
-\iftexi
-%end{latexonly}
-\code{\var{left} <= \var{h} < \var{right}} and
-\code{\var{top} <= \var{v} < \var{bottom}}.
-%begin{latexonly}
-\else
-$\var{left} \leq \var{h} < \var{right}$ and
-$\var{top} \leq \var{v} < \var{bottom}$.
-\fi
-%end{latexonly}
-\end{funcdesc}
-
-\begin{funcdesc}{inset}{rect, \(dh, dv\)}
-Returns a rectangle that lies inside the
-\code{rect}
-argument by
-\var{dh}
-pixels horizontally
-and
-\var{dv}
-pixels
-vertically.
-If
-\var{dh}
-or
-\var{dv}
-is negative, the result lies outside
-\var{rect}.
-\end{funcdesc}
-
-\begin{funcdesc}{rect2geom}{rect}
-Converts a rectangle to geometry representation:
-\code{(\var{left}, \var{top}), (\var{width}, \var{height})}.
-\end{funcdesc}
-
-\begin{funcdesc}{geom2rect}{geom}
-Converts a rectangle given in geometry representation back to the
-standard rectangle representation
-\code{(\var{left}, \var{top}), (\var{right}, \var{bottom})}.
-\end{funcdesc}
diff --git a/Doc/libstring.tex b/Doc/libstring.tex
deleted file mode 100644
index 3939229..0000000
--- a/Doc/libstring.tex
+++ /dev/null
@@ -1,242 +0,0 @@
-\section{Standard Module \module{string}}
-\label{module-string}
-\stmodindex{string}
-
-This module defines some constants useful for checking character
-classes and some useful string functions. See the module
-\module{re}\refstmodindex{re} for string functions based on regular
-expressions.
-
-The constants defined in this module are are:
-
-\begin{datadesc}{digits}
- The string \code{'0123456789'}.
-\end{datadesc}
-
-\begin{datadesc}{hexdigits}
- The string \code{'0123456789abcdefABCDEF'}.
-\end{datadesc}
-
-\begin{datadesc}{letters}
- The concatenation of the strings \function{lowercase()} and
- \function{uppercase()} described below.
-\end{datadesc}
-
-\begin{datadesc}{lowercase}
- A string containing all the characters that are considered lowercase
- letters. On most systems this is the string
- \code{'abcdefghijklmnopqrstuvwxyz'}. Do not change its definition ---
- the effect on the routines \function{upper()} and
- \function{swapcase()} is undefined.
-\end{datadesc}
-
-\begin{datadesc}{octdigits}
- The string \code{'01234567'}.
-\end{datadesc}
-
-\begin{datadesc}{uppercase}
- A string containing all the characters that are considered uppercase
- letters. On most systems this is the string
- \code{'ABCDEFGHIJKLMNOPQRSTUVWXYZ'}. Do not change its definition ---
- the effect on the routines \function{lower()} and
- \function{swapcase()} is undefined.
-\end{datadesc}
-
-\begin{datadesc}{whitespace}
- A string containing all characters that are considered whitespace.
- On most systems this includes the characters space, tab, linefeed,
- return, formfeed, and vertical tab. Do not change its definition ---
- the effect on the routines \function{strip()} and \function{split()}
- is undefined.
-\end{datadesc}
-
-The functions defined in this module are:
-
-
-\begin{funcdesc}{atof}{s}
-Convert a string to a floating point number. The string must have
-the standard syntax for a floating point literal in Python, optionally
-preceded by a sign (\samp{+} or \samp{-}). Note that this behaves
-identical to the built-in function
-\function{float()}\bifuncindex{float} when passed a string.
-\end{funcdesc}
-
-\begin{funcdesc}{atoi}{s\optional{, base}}
-Convert string \var{s} to an integer in the given \var{base}. The
-string must consist of one or more digits, optionally preceded by a
-sign (\samp{+} or \samp{-}). The \var{base} defaults to 10. If it is
-0, a default base is chosen depending on the leading characters of the
-string (after stripping the sign): \samp{0x} or \samp{0X} means 16,
-\samp{0} means 8, anything else means 10. If \var{base} is 16, a
-leading \samp{0x} or \samp{0X} is always accepted. Note that when
-invoked without \var{base} or with \var{base} set to 10, this behaves
-identical to the built-in function \function{int()} when passed a string.
-(Also note: for a more flexible interpretation of numeric literals,
-use the built-in function \function{eval()}\bifuncindex{eval}.)
-\end{funcdesc}
-
-\begin{funcdesc}{atol}{s\optional{, base}}
-Convert string \var{s} to a long integer in the given \var{base}. The
-string must consist of one or more digits, optionally preceded by a
-sign (\samp{+} or \samp{-}). The \var{base} argument has the same
-meaning as for \function{atoi()}. A trailing \samp{l} or \samp{L} is
-not allowed, except if the base is 0. Note that when invoked without
-\var{base} or with \var{base} set to 10, this behaves identical to the
-built-in function \function{long()}\bifuncindex{long} when passed a
-string.
-\end{funcdesc}
-
-\begin{funcdesc}{capitalize}{word}
-Capitalize the first character of the argument.
-\end{funcdesc}
-
-\begin{funcdesc}{capwords}{s}
-Split the argument into words using \function{split()}, capitalize
-each word using \function{capitalize()}, and join the capitalized
-words using \function{join()}. Note that this replaces runs of
-whitespace characters by a single space, and removes leading and
-trailing whitespace.
-\end{funcdesc}
-
-\begin{funcdesc}{expandtabs}{s, tabsize}
-Expand tabs in a string, i.e.\ replace them by one or more spaces,
-depending on the current column and the given tab size. The column
-number is reset to zero after each newline occurring in the string.
-This doesn't understand other non-printing characters or escape
-sequences.
-\end{funcdesc}
-
-\begin{funcdesc}{find}{s, sub\optional{, start\optional{,end}}}
-Return the lowest index in \var{s} where the substring \var{sub} is
-found such that \var{sub} is wholly contained in
-\code{\var{s}[\var{start}:\var{end}]}. Return \code{-1} on failure.
-Defaults for \var{start} and \var{end} and interpretation of negative
-values is the same as for slices.
-\end{funcdesc}
-
-\begin{funcdesc}{rfind}{s, sub\optional{, start\optional{, end}}}
-Like \function{find()} but find the highest index.
-\end{funcdesc}
-
-\begin{funcdesc}{index}{s, sub\optional{, start\optional{, end}}}
-Like \function{find()} but raise \exception{ValueError} when the
-substring is not found.
-\end{funcdesc}
-
-\begin{funcdesc}{rindex}{s, sub\optional{, start\optional{, end}}}
-Like \function{rfind()} but raise \exception{ValueError} when the
-substring is not found.
-\end{funcdesc}
-
-\begin{funcdesc}{count}{s, sub\optional{, start\optional{, end}}}
-Return the number of (non-overlapping) occurrences of substring
-\var{sub} in string \code{\var{s}[\var{start}:\var{end}]}.
-Defaults for \var{start} and \var{end} and interpretation of negative
-values is the same as for slices.
-\end{funcdesc}
-
-\begin{funcdesc}{lower}{s}
-Convert letters to lower case.
-\end{funcdesc}
-
-\begin{funcdesc}{maketrans}{from, to}
-Return a translation table suitable for passing to
-\function{translate()} or \function{regex.compile()}, that will map
-each character in \var{from} into the character at the same position
-in \var{to}; \var{from} and \var{to} must have the same length.
-\end{funcdesc}
-
-\begin{funcdesc}{split}{s\optional{, sep\optional{, maxsplit}}}
-Return a list of the words of the string \var{s}. If the optional
-second argument \var{sep} is absent or \code{None}, the words are
-separated by arbitrary strings of whitespace characters (space, tab,
-newline, return, formfeed). If the second argument \var{sep} is
-present and not \code{None}, it specifies a string to be used as the
-word separator. The returned list will then have one more items than
-the number of non-overlapping occurrences of the separator in the
-string. The optional third argument \var{maxsplit} defaults to 0. If
-it is nonzero, at most \var{maxsplit} number of splits occur, and the
-remainder of the string is returned as the final element of the list
-(thus, the list will have at most \code{\var{maxsplit}+1} elements).
-\end{funcdesc}
-
-\begin{funcdesc}{splitfields}{s\optional{, sep\optional{, maxsplit}}}
-This function behaves identically to \function{split()}. (In the
-past, \function{split()} was only used with one argument, while
-\function{splitfields()} was only used with two arguments.)
-\end{funcdesc}
-
-\begin{funcdesc}{join}{words\optional{, sep}}
-Concatenate a list or tuple of words with intervening occurrences of
-\var{sep}. The default value for \var{sep} is a single space
-character. It is always true that
-\samp{string.join(string.split(\var{s}, \var{sep}), \var{sep})}
-equals \var{s}.
-\end{funcdesc}
-
-\begin{funcdesc}{joinfields}{words\optional{, sep}}
-This function behaves identical to \function{join()}. (In the past,
-\function{join()} was only used with one argument, while
-\function{joinfields()} was only used with two arguments.)
-\end{funcdesc}
-
-\begin{funcdesc}{lstrip}{s}
-Remove leading whitespace from the string \var{s}.
-\end{funcdesc}
-
-\begin{funcdesc}{rstrip}{s}
-Remove trailing whitespace from the string \var{s}.
-\end{funcdesc}
-
-\begin{funcdesc}{strip}{s}
-Remove leading and trailing whitespace from the string \var{s}.
-\end{funcdesc}
-
-\begin{funcdesc}{swapcase}{s}
-Convert lower case letters to upper case and vice versa.
-\end{funcdesc}
-
-\begin{funcdesc}{translate}{s, table\optional{, deletechars}}
-Delete all characters from \var{s} that are in \var{deletechars} (if
-present), and then translate the characters using \var{table}, which
-must be a 256-character string giving the translation for each
-character value, indexed by its ordinal.
-\end{funcdesc}
-
-\begin{funcdesc}{upper}{s}
-Convert letters to upper case.
-\end{funcdesc}
-
-\begin{funcdesc}{ljust}{s, width}
-\funcline{rjust}{s, width}
-\funcline{center}{s, width}
-These functions respectively left-justify, right-justify and center a
-string in a field of given width.
-They return a string that is at least
-\var{width}
-characters wide, created by padding the string
-\var{s}
-with spaces until the given width on the right, left or both sides.
-The string is never truncated.
-\end{funcdesc}
-
-\begin{funcdesc}{zfill}{s, width}
-Pad a numeric string on the left with zero digits until the given
-width is reached. Strings starting with a sign are handled correctly.
-\end{funcdesc}
-
-\begin{funcdesc}{replace}{str, old, new\optional{, maxsplit}}
-Return a copy of string \var{str} with all occurrences of substring
-\var{old} replaced by \var{new}. If the optional argument
-\var{maxsplit} is given, the first \var{maxsplit} occurrences are
-replaced.
-\end{funcdesc}
-
-This module is implemented in Python. Much of its functionality has
-been reimplemented in the built-in module
-\module{strop}\refbimodindex{strop}. However, you
-should \emph{never} import the latter module directly. When
-\module{string} discovers that \module{strop} exists, it transparently
-replaces parts of itself with the implementation from \module{strop}.
-After initialization, there is \emph{no} overhead in using
-\module{string} instead of \module{strop}.
diff --git a/Doc/libstrings.tex b/Doc/libstrings.tex
deleted file mode 100644
index 7294002..0000000
--- a/Doc/libstrings.tex
+++ /dev/null
@@ -1,30 +0,0 @@
-\chapter{String Services}
-\label{strings}
-
-The modules described in this chapter provide a wide range of string
-manipulation operations. Here's an overview:
-
-\begin{description}
-
-\item[string]
---- Common string operations.
-
-\item[re]
---- New Perl-style regular expression search and match operations.
-
-\item[regex]
---- Regular expression search and match operations.
-
-\item[regsub]
---- Substitution and splitting operations that use regular expressions.
-
-\item[struct]
---- Interpret strings as packed binary data.
-
-\item[StringIO]
---- Read and write strings as if they were files.
-
-\item[cStringIO]
---- Faster version of \module{StringIO}, but not subclassable.
-
-\end{description}
diff --git a/Doc/libstrio.tex b/Doc/libstrio.tex
deleted file mode 100644
index 86ebf46..0000000
--- a/Doc/libstrio.tex
+++ /dev/null
@@ -1,42 +0,0 @@
-\section{Standard Module \module{StringIO}}
-\label{module-StringIO}
-
-\stmodindex{StringIO}
-
-This module implements a file-like class, \class{StringIO},
-that reads and writes a string buffer (also known as \emph{memory
-files}). See the description on file objects for operations.
-
-\begin{classdesc}{StringIO}{\optional{buffer}}
-When a \class{StringIO} object is created, it can be initialized
-to an existing string by passing the string to the constructor.
-If no string is given, the \class{StringIO} will start empty.
-\end{classdesc}
-
-The following methods of \class{StringIO} objects require special
-mention:
-
-\begin{methoddesc}{getvalue}{}
-Retrieve the entire contents of the ``file'' at any time before the
-\class{StringIO} object's \method{close()} method is called.
-\end{methoddesc}
-
-\begin{methoddesc}{close}{}
-Free the memory buffer.
-\end{methoddesc}
-
-
-\section{Built-in Module \module{cStringIO}}
-\bimodindex{cStringIO}
-\label{module-cStringIO}
-
-% This section was written by Fred L. Drake, Jr. <fdrake@acm.org>
-
-The module \module{cStringIO} provides an interface similar to that of
-the \module{StringIO} module. Heavy use of \class{StringIO.StringIO}
-objects can be made more efficient by using the function
-\function{StringIO()} from this module instead.
-
-Since this module provides a factory function which returns objects of
-built-in types, there's no way to build your own version using
-subclassing. Use the original \module{StringIO} module in that case.
diff --git a/Doc/libstruct.tex b/Doc/libstruct.tex
deleted file mode 100644
index 5925328..0000000
--- a/Doc/libstruct.tex
+++ /dev/null
@@ -1,140 +0,0 @@
-\section{Built-in Module \module{struct}}
-\label{module-struct}
-\bimodindex{struct}
-\indexii{C@\C{}}{structures}
-
-This module performs conversions between Python values and C
-structs represented as Python strings. It uses \dfn{format strings}
-(explained below) as compact descriptions of the lay-out of the C
-structs and the intended conversion to/from Python values.
-
-The module defines the following exception and functions:
-
-
-\begin{excdesc}{error}
- Exception raised on various occasions; argument is a string
- describing what is wrong.
-\end{excdesc}
-
-\begin{funcdesc}{pack}{fmt, v1, v2, {\rm \ldots}}
- Return a string containing the values
- \code{\var{v1}, \var{v2}, {\rm \ldots}} packed according to the given
- format. The arguments must match the values required by the format
- exactly.
-\end{funcdesc}
-
-\begin{funcdesc}{unpack}{fmt, string}
- Unpack the string (presumably packed by \code{pack(\var{fmt}, {\rm \ldots})})
- according to the given format. The result is a tuple even if it
- contains exactly one item. The string must contain exactly the
- amount of data required by the format (i.e. \code{len(\var{string})} must
- equal \code{calcsize(\var{fmt})}).
-\end{funcdesc}
-
-\begin{funcdesc}{calcsize}{fmt}
- Return the size of the struct (and hence of the string)
- corresponding to the given format.
-\end{funcdesc}
-
-Format characters have the following meaning; the conversion between C
-and Python values should be obvious given their types:
-
-\begin{tableiii}{c|l|l}{samp}{Format}{C Type}{Python}
- \lineiii{x}{pad byte}{no value}
- \lineiii{c}{char}{string of length 1}
- \lineiii{b}{signed char}{integer}
- \lineiii{B}{unsigned char}{integer}
- \lineiii{h}{short}{integer}
- \lineiii{H}{unsigned short}{integer}
- \lineiii{i}{int}{integer}
- \lineiii{I}{unsigned int}{integer}
- \lineiii{l}{long}{integer}
- \lineiii{L}{unsigned long}{integer}
- \lineiii{f}{float}{float}
- \lineiii{d}{double}{float}
- \lineiii{s}{char[]}{string}
-\end{tableiii}
-
-A format character may be preceded by an integral repeat count; e.g.\
-the format string \code{'4h'} means exactly the same as \code{'hhhh'}.
-
-Whitespace characters between formats are ignored; a count and its
-format must not contain whitespace though.
-
-For the \code{'s'} format character, the count is interpreted as the
-size of the string, not a repeat count like for the other format
-characters; e.g. \code{'10s'} means a single 10-byte string, while
-\code{'10c'} means 10 characters. For packing, the string is
-truncated or padded with null bytes as appropriate to make it fit.
-For unpacking, the resulting string always has exactly the specified
-number of bytes. As a special case, \code{'0s'} means a single, empty
-string (while \code{'0c'} means 0 characters).
-
-For the \code{'I'} and \code{'L'} format characters, the return
-value is a Python long integer.
-
-By default, C numbers are represented in the machine's native format
-and byte order, and properly aligned by skipping pad bytes if
-necessary (according to the rules used by the C compiler).
-
-Alternatively, the first character of the format string can be used to
-indicate the byte order, size and alignment of the packed data,
-according to the following table:
-
-\begin{tableiii}{c|l|l}{samp}{Character}{Byte order}{Size and alignment}
- \lineiii{@}{native}{native}
- \lineiii{=}{native}{standard}
- \lineiii{<}{little-endian}{standard}
- \lineiii{>}{big-endian}{standard}
- \lineiii{!}{network (= big-endian)}{standard}
-\end{tableiii}
-
-If the first character is not one of these, \code{'@'} is assumed.
-
-Native byte order is big-endian or little-endian, depending on the
-host system (e.g. Motorola and Sun are big-endian; Intel and DEC are
-little-endian).
-
-Native size and alignment are determined using the C compiler's sizeof
-expression. This is always combined with native byte order.
-
-Standard size and alignment are as follows: no alignment is required
-for any type (so you have to use pad bytes); short is 2 bytes; int and
-long are 4 bytes. Float and double are 32-bit and 64-bit IEEE floating
-point numbers, respectively.
-
-Note the difference between \code{'@'} and \code{'='}: both use native
-byte order, but the size and alignment of the latter is standardized.
-
-The form \code{'!'} is available for those poor souls who claim they
-can't remember whether network byte order is big-endian or
-little-endian.
-
-There is no way to indicate non-native byte order (i.e. force
-byte-swapping); use the appropriate choice of \code{'<'} or
-\code{'>'}.
-
-Examples (all using native byte order, size and alignment, on a
-big-endian machine):
-
-\begin{verbatim}
->>> from struct import *
->>> pack('hhl', 1, 2, 3)
-'\000\001\000\002\000\000\000\003'
->>> unpack('hhl', '\000\001\000\002\000\000\000\003')
-(1, 2, 3)
->>> calcsize('hhl')
-8
->>>
-\end{verbatim}
-%
-Hint: to align the end of a structure to the alignment requirement of
-a particular type, end the format with the code for that type with a
-repeat count of zero, e.g.\ the format \code{'llh0l'} specifies two
-pad bytes at the end, assuming longs are aligned on 4-byte boundaries.
-This only works when native size and alignment are in effect;
-standard size and alignment does not enforce any alignment.
-
-\begin{seealso}
-\seemodule{array}{packed binary storage of homogeneous data}
-\end{seealso}
diff --git a/Doc/libsun.tex b/Doc/libsun.tex
deleted file mode 100644
index 25826cd..0000000
--- a/Doc/libsun.tex
+++ /dev/null
@@ -1,6 +0,0 @@
-\chapter{SunOS Specific Services}
-\label{sunos}
-
-The modules described in this chapter provide interfaces to features
-that are unique to the SunOS operating system (versions 4 and 5; the
-latter is also known as Solaris version 2).
diff --git a/Doc/libsunaudio.tex b/Doc/libsunaudio.tex
deleted file mode 100644
index c43d611..0000000
--- a/Doc/libsunaudio.tex
+++ /dev/null
@@ -1,108 +0,0 @@
-\section{Built-in Module \module{sunaudiodev}}
-\label{module-sunaudiodev}
-\bimodindex{sunaudiodev}
-
-This module allows you to access the sun audio interface. The sun
-audio hardware is capable of recording and playing back audio data
-in u-LAW\index{u-LAW} format with a sample rate of 8K per second. A
-full description can be found in the \manpage{audio}{7I} manual page.
-
-The module defines the following variables and functions:
-
-\begin{excdesc}{error}
-This exception is raised on all errors. The argument is a string
-describing what went wrong.
-\end{excdesc}
-
-\begin{funcdesc}{open}{mode}
-This function opens the audio device and returns a sun audio device
-object. This object can then be used to do I/O on. The \var{mode} parameter
-is one of \code{'r'} for record-only access, \code{'w'} for play-only
-access, \code{'rw'} for both and \code{'control'} for access to the
-control device. Since only one process is allowed to have the recorder
-or player open at the same time it is a good idea to open the device
-only for the activity needed. See \manpage{audio}{7I} for details.
-\end{funcdesc}
-
-
-\subsection{Audio Device Objects}
-\label{audio-device-objects}
-
-The audio device objects are returned by \function{open()} define the
-following methods (except \code{control} objects which only provide
-\method{getinfo()}, \method{setinfo()} and \method{drain()}):
-
-\begin{methoddesc}[audio device]{close}{}
-This method explicitly closes the device. It is useful in situations
-where deleting the object does not immediately close it since there
-are other references to it. A closed device should not be used again.
-\end{methoddesc}
-
-\begin{methoddesc}[audio device]{drain}{}
-This method waits until all pending output is processed and then returns.
-Calling this method is often not necessary: destroying the object will
-automatically close the audio device and this will do an implicit drain.
-\end{methoddesc}
-
-\begin{methoddesc}[audio device]{flush}{}
-This method discards all pending output. It can be used avoid the
-slow response to a user's stop request (due to buffering of up to one
-second of sound).
-\end{methoddesc}
-
-\begin{methoddesc}[audio device]{getinfo}{}
-This method retrieves status information like input and output volume,
-etc. and returns it in the form of
-an audio status object. This object has no methods but it contains a
-number of attributes describing the current device status. The names
-and meanings of the attributes are described in
-\file{/usr/include/sun/audioio.h} and in the \manpage{audio}{7I}
-manual page. Member names
-are slightly different from their \C{} counterparts: a status object is
-only a single structure. Members of the \cdata{play} substructure have
-\samp{o_} prepended to their name and members of the \cdata{record}
-structure have \samp{i_}. So, the \C{} member \cdata{play.sample_rate} is
-accessed as \member{o_sample_rate}, \cdata{record.gain} as \member{i_gain}
-and \cdata{monitor_gain} plainly as \member{monitor_gain}.
-\end{methoddesc}
-
-\begin{methoddesc}[audio device]{ibufcount}{}
-This method returns the number of samples that are buffered on the
-recording side, i.e.\ the program will not block on a
-\function{read()} call of so many samples.
-\end{methoddesc}
-
-\begin{methoddesc}[audio device]{obufcount}{}
-This method returns the number of samples buffered on the playback
-side. Unfortunately, this number cannot be used to determine a number
-of samples that can be written without blocking since the kernel
-output queue length seems to be variable.
-\end{methoddesc}
-
-\begin{methoddesc}[audio device]{read}{size}
-This method reads \var{size} samples from the audio input and returns
-them as a Python string. The function blocks until enough data is available.
-\end{methoddesc}
-
-\begin{methoddesc}[audio device]{setinfo}{status}
-This method sets the audio device status parameters. The \var{status}
-parameter is an device status object as returned by \function{getinfo()} and
-possibly modified by the program.
-\end{methoddesc}
-
-\begin{methoddesc}[audio device]{write}{samples}
-Write is passed a Python string containing audio samples to be played.
-If there is enough buffer space free it will immediately return,
-otherwise it will block.
-\end{methoddesc}
-
-There is a companion module,
-\module{SUNAUDIODEV}\refstmodindex{SUNAUDIODEV}, which defines useful
-symbolic constants like \constant{MIN_GAIN}, \constant{MAX_GAIN},
-\constant{SPEAKER}, etc. The names of the constants are the same names
-as used in the \C{} include file \code{<sun/audioio.h>}, with the
-leading string \samp{AUDIO_} stripped.
-
-Useability of the control device is limited at the moment, since there
-is no way to use the ``wait for something to happen'' feature the
-device provides.
diff --git a/Doc/libsymbol.tex b/Doc/libsymbol.tex
deleted file mode 100644
index 0761405..0000000
--- a/Doc/libsymbol.tex
+++ /dev/null
@@ -1,24 +0,0 @@
-\section{Standard Module \module{symbol}}
-\label{module-symbol}
-\stmodindex{symbol}
-
-This module provides constants which represent the numeric values of
-internal nodes of the parse tree. Unlike most Python constants, these
-use lower-case names. Refer to the file \file{Grammar/Grammar} in the
-Python distribution for the defintions of the names in the context of
-the language grammar. The specific numeric values which the names map
-to may change between Python versions.
-
-This module also provides one additional data object:
-
-
-
-\begin{datadesc}{sym_name}
-Dictionary mapping the numeric values of the constants defined in this
-module back to name strings, allowing more human-readable
-representation of parse trees to be generated.
-\end{datadesc}
-
-\begin{seealso}
-\seemodule{parser}{second example uses this module}
-\end{seealso}
diff --git a/Doc/libsys.tex b/Doc/libsys.tex
deleted file mode 100644
index 1dac264..0000000
--- a/Doc/libsys.tex
+++ /dev/null
@@ -1,249 +0,0 @@
-\section{Built-in Module \module{sys}}
-\label{module-sys}
-
-\bimodindex{sys}
-This module provides access to some variables used or maintained by the
-interpreter and to functions that interact strongly with the interpreter.
-It is always available.
-
-
-\begin{datadesc}{argv}
- The list of command line arguments passed to a Python script.
- \code{argv[0]} is the script name (it is operating system
- dependent whether this is a full pathname or not).
- If the command was executed using the \samp{-c} command line option
- to the interpreter, \code{argv[0]} is set to the string
- \code{"-c"}.
- If no script name was passed to the Python interpreter,
- \code{argv} has zero length.
-\end{datadesc}
-
-\begin{datadesc}{builtin_module_names}
- A tuple of strings giving the names of all modules that are compiled
- into this Python interpreter. (This information is not available in
- any other way --- \code{modules.keys()} only lists the imported
- modules.)
-\end{datadesc}
-
-\begin{funcdesc}{exc_info}{}
-This function returns a tuple of three values that give information
-about the exception that is currently being handled. The information
-returned is specific both to the current thread and to the current
-stack frame. If the current stack frame is not handling an exception,
-the information is taken from the calling stack frame, or its caller,
-and so on until a stack frame is found that is handling an exception.
-Here, ``handling an exception'' is defined as ``executing or having
-executed an except clause.'' For any stack frame, only
-information about the most recently handled exception is accessible.
-
-If no exception is being handled anywhere on the stack, a tuple
-containing three \code{None} values is returned. Otherwise, the
-values returned are
-\code{(\var{type}, \var{value}, \var{traceback})}.
-Their meaning is: \var{type} gets the exception type of the exception
-being handled (a string or class object); \var{value} gets the
-exception parameter (its \dfn{associated value} or the second argument
-to \keyword{raise}, which is always a class instance if the exception
-type is a class object); \var{traceback} gets a traceback object (see
-the Reference Manual) which encapsulates the call stack at the point
-where the exception originally occurred.
-\obindex{traceback}
-
-\strong{Warning:} assigning the \var{traceback} return value to a
-local variable in a function that is handling an exception will cause
-a circular reference. This will prevent anything referenced by a local
-variable in the same function or by the traceback from being garbage
-collected. Since most functions don't need access to the traceback,
-the best solution is to use something like
-\code{type, value = sys.exc_info()[:2]}
-to extract only the exception type and value. If you do need the
-traceback, make sure to delete it after use (best done with a
-\keyword{try} ... \keyword{finally} statement) or to call
-\function{exc_info()} in a function that does not itself handle an
-exception.
-\end{funcdesc}
-
-\begin{datadesc}{exc_type}
-\dataline{exc_value}
-\dataline{exc_traceback}
-\deprecated {1.5}
- {Use \function{exc_info()} instead.}
-Since they are global variables, they are not specific to the current
-thread, so their use is not safe in a multi-threaded program. When no
-exception is being handled, \code{exc_type} is set to \code{None} and
-the other two are undefined.
-\end{datadesc}
-
-\begin{datadesc}{exec_prefix}
-A string giving the site-specific
-directory prefix where the platform-dependent Python files are
-installed; by default, this is also \code{"/usr/local"}. This can be
-set at build time with the \code{-}\code{-exec-prefix} argument to the
-\program{configure} script. Specifically, all configuration files
-(e.g. the \file{config.h} header file) are installed in the directory
-\code{exec_prefix + "/lib/python\var{version}/config"}, and shared library
-modules are installed in
-\code{exec_prefix + "/lib/python\var{version}/lib-dynload"},
-where \var{version} is equal to \code{version[:3]}.
-\end{datadesc}
-
-\begin{funcdesc}{exit}{n}
- Exit from Python with numeric exit status \var{n}. This is
- implemented by raising the \exception{SystemExit} exception, so cleanup
- actions specified by finally clauses of \keyword{try} statements
- are honored, and it is possible to catch the exit attempt at an outer
- level.
-\end{funcdesc}
-
-\begin{datadesc}{exitfunc}
- This value is not actually defined by the module, but can be set by
- the user (or by a program) to specify a clean-up action at program
- exit. When set, it should be a parameterless function. This function
- will be called when the interpreter exits in any way (except when a
- fatal error occurs: in that case the interpreter's internal state
- cannot be trusted).
-\end{datadesc}
-
-\begin{funcdesc}{getrefcount}{object}
-Return the reference count of the \var{object}. The count returned is
-generally one higher than you might expect, because it includes the
-(temporary) reference as an argument to \code{getrefcount()}.
-\end{funcdesc}
-
-\begin{datadesc}{last_type}
-\dataline{last_value}
-\dataline{last_traceback}
-These three variables are not always defined; they are set when an
-exception is not handled and the interpreter prints an error message
-and a stack traceback. Their intended use is to allow an interactive
-user to import a debugger module and engage in post-mortem debugging
-without having to re-execute the command that caused the error.
-(Typical use is \samp{import pdb; pdb.pm()} to enter the post-mortem
-debugger; see the chapter ``The Python Debugger'' for more
-information.)
-\refstmodindex{pdb}
-
-The meaning of the variables is the same
-as that of the return values from \function{exc_info()} above.
-(Since there is only one interactive thread, thread-safety is not a
-concern for these variables, unlike for \code{exc_type} etc.)
-\end{datadesc}
-
-\begin{datadesc}{modules}
- This is a dictionary that maps module names to modules which have
- already been loaded. This can be manipulated to force reloading of
- modules and other tricks. Note that removing a module from this
- dictionary is \emph{not} the same as calling
- \function{reload()}\bifuncindex{reload} on the corresponding module
- object.
-\end{datadesc}
-
-\begin{datadesc}{path}
-\indexiii{module}{search}{path}
- A list of strings that specifies the search path for modules.
- Initialized from the environment variable \code{\$PYTHONPATH}, or an
- installation-dependent default.
-
-The first item of this list, \code{path[0]}, is the
-directory containing the script that was used to invoke the Python
-interpreter. If the script directory is not available (e.g. if the
-interpreter is invoked interactively or if the script is read from
-standard input), \code{path[0]} is the empty string, which directs
-Python to search modules in the current directory first. Notice that
-the script directory is inserted \emph{before} the entries inserted as
-a result of \code{\$PYTHONPATH}.
-\end{datadesc}
-
-\begin{datadesc}{platform}
-This string contains a platform identifier, e.g. \code{'sunos5'} or
-\code{'linux1'}. This can be used to append platform-specific
-components to \code{path}, for instance.
-\end{datadesc}
-
-\begin{datadesc}{prefix}
-A string giving the site-specific directory prefix where the platform
-independent Python files are installed; by default, this is the string
-\code{"/usr/local"}. This can be set at build time with the
-\code{-}\code{-prefix} argument to the \program{configure} script. The main
-collection of Python library modules is installed in the directory
-\code{prefix + "/lib/python\var{version}"} while the platform
-independent header files (all except \file{config.h}) are stored in
-\code{prefix + "/include/python\var{version}"},
-where \var{version} is equal to \code{version[:3]}.
-
-\end{datadesc}
-
-\begin{datadesc}{ps1}
-\dataline{ps2}
-\index{interpreter prompts}
-\index{prompts, interpreter}
- Strings specifying the primary and secondary prompt of the
- interpreter. These are only defined if the interpreter is in
- interactive mode. Their initial values in this case are
- \code{'>>> '} and \code{'... '}. If a non-string object is assigned
- to either variable, its \function{str()} is re-evaluated each time
- the interpreter prepares to read a new interactive command; this can
- be used to implement a dynamic prompt.
-\end{datadesc}
-
-\begin{funcdesc}{setcheckinterval}{interval}
-Set the interpreter's ``check interval''. This integer value
-determines how often the interpreter checks for periodic things such
-as thread switches and signal handlers. The default is \code{10}, meaning
-the check is performed every 10 Python virtual instructions. Setting
-it to a larger value may increase performance for programs using
-threads. Setting it to a value \code{<=} 0 checks every virtual instruction,
-maximizing responsiveness as well as overhead.
-\end{funcdesc}
-
-\begin{funcdesc}{settrace}{tracefunc}
- Set the system's trace function, which allows you to implement a
- Python source code debugger in Python. See section ``How It Works''
- in the chapter on the Python Debugger.
-\end{funcdesc}
-\index{trace function}
-\index{debugger}
-
-\begin{funcdesc}{setprofile}{profilefunc}
- Set the system's profile function, which allows you to implement a
- Python source code profiler in Python. See the chapter on the
- Python Profiler. The system's profile function
- is called similarly to the system's trace function (see
- \function{settrace()}), but it isn't called for each executed line of
- code (only on call and return and when an exception occurs). Also,
- its return value is not used, so it can just return \code{None}.
-\end{funcdesc}
-\index{profile function}
-\index{profiler}
-
-\begin{datadesc}{stdin}
-\dataline{stdout}
-\dataline{stderr}
- File objects corresponding to the interpreter's standard input,
- output and error streams. \code{stdin} is used for all
- interpreter input except for scripts but including calls to
- \function{input()}\bifuncindex{input} and
- \function{raw_input()}\bifuncindex{raw_input}. \code{stdout} is used
- for the output of \keyword{print} and expression statements and for the
- prompts of \function{input()} and \function{raw_input()}. The interpreter's
- own prompts and (almost all of) its error messages go to
- \code{stderr}. \code{stdout} and \code{stderr} needn't
- be built-in file objects: any object is acceptable as long as it has
- a \method{write()} method that takes a string argument. (Changing these
- objects doesn't affect the standard I/O streams of processes
- executed by \function{os.popen()}, \function{os.system()} or the
- \function{exec*()} family of functions in the \module{os} module.)
-\refstmodindex{os}
-\end{datadesc}
-
-\begin{datadesc}{tracebacklimit}
-When this variable is set to an integer value, it determines the
-maximum number of levels of traceback information printed when an
-unhandled exception occurs. The default is \code{1000}. When set to
-0 or less, all traceback information is suppressed and only the
-exception type and value are printed.
-\end{datadesc}
-
-\begin{datadesc}{version}
-A string containing the version number of the Python interpreter.
-\end{datadesc}
diff --git a/Doc/libsyslog.tex b/Doc/libsyslog.tex
deleted file mode 100644
index 3e5b166..0000000
--- a/Doc/libsyslog.tex
+++ /dev/null
@@ -1,71 +0,0 @@
-\section{Built-in Module \module{syslog}}
-\label{module-syslog}
-\bimodindex{syslog}
-
-This module provides an interface to the \UNIX{} \code{syslog} library
-routines. Refer to the \UNIX{} manual pages for a detailed description
-of the \code{syslog} facility.
-
-The module defines the following functions:
-
-
-\begin{funcdesc}{syslog}{\optional{priority,} message}
-Send the string \var{message} to the system logger. A trailing
-newline is added if necessary. Each message is tagged with a priority
-composed of a \var{facility} and a \var{level}. The optional
-\var{priority} argument, which defaults to \constant{LOG_INFO},
-determines the message priority. If the facility is not encoded in
-\var{priority} using logical-or (\code{LOG_INFO | LOG_USER}), the
-value given in the \function{openlog()} call is used.
-\end{funcdesc}
-
-\begin{funcdesc}{openlog}{ident\optional{, logopt\optional{, facility}}}
-Logging options other than the defaults can be set by explicitly
-opening the log file with \function{openlog()} prior to calling
-\function{syslog()}. The defaults are (usually) \var{ident} =
-\code{'syslog'}, \var{logopt} = \code{0}, \var{facility} =
-\constant{LOG_USER}. The \var{ident} argument is a string which is
-prepended to every message. The optional \var{logopt} argument is a
-bit field - see below for possible values to combine. The optional
-\var{facility} argument sets the default facility for messages which
-do not have a facility explicitly encoded.
-\end{funcdesc}
-
-\begin{funcdesc}{closelog}{}
-Close the log file.
-\end{funcdesc}
-
-\begin{funcdesc}{setlogmask}{maskpri}
-This function set the priority mask to \var{maskpri} and returns the
-previous mask value. Calls to \function{syslog()} with a priority
-level not set in \var{maskpri} are ignored. The default is to log all
-priorities. The function \code{LOG_MASK(\var{pri})} calculates the
-mask for the individual priority \var{pri}. The function
-\code{LOG_UPTO(\var{pri})} calculates the mask for all priorities up
-to and including \var{pri}.
-\end{funcdesc}
-
-The module defines the following constants:
-
-\begin{description}
-
-\item[Priority levels (high to low):]
-
-\constant{LOG_EMERG}, \constant{LOG_ALERT}, \constant{LOG_CRIT},
-\constant{LOG_ERR}, \constant{LOG_WARNING}, \constant{LOG_NOTICE},
-\constant{LOG_INFO}, \constant{LOG_DEBUG}.
-
-\item[Facilities:]
-
-\constant{LOG_KERN}, \constant{LOG_USER}, \constant{LOG_MAIL},
-\constant{LOG_DAEMON}, \constant{LOG_AUTH}, \constant{LOG_LPR},
-\constant{LOG_NEWS}, \constant{LOG_UUCP}, \constant{LOG_CRON} and
-\constant{LOG_LOCAL0} to \constant{LOG_LOCAL7}.
-
-\item[Log options:]
-
-\constant{LOG_PID}, \constant{LOG_CONS}, \constant{LOG_NDELAY},
-\constant{LOG_NOWAIT} and \constant{LOG_PERROR} if defined in
-\code{<syslog.h>}.
-
-\end{description}
diff --git a/Doc/libtempfile.tex b/Doc/libtempfile.tex
deleted file mode 100644
index 93577e7..0000000
--- a/Doc/libtempfile.tex
+++ /dev/null
@@ -1,49 +0,0 @@
-\section{Standard Module \module{tempfile}}
-\label{module-tempfile}
-\stmodindex{tempfile}
-\indexii{temporary}{file name}
-\indexii{temporary}{file}
-
-
-This module generates temporary file names. It is not \UNIX{} specific,
-but it may require some help on non-\UNIX{} systems.
-
-Note: the modules does not create temporary files, nor does it
-automatically remove them when the current process exits or dies.
-
-The module defines a single user-callable function:
-
-\begin{funcdesc}{mktemp}{}
-Return a unique temporary filename. This is an absolute pathname of a
-file that does not exist at the time the call is made. No two calls
-will return the same filename.
-\end{funcdesc}
-
-The module uses two global variables that tell it how to construct a
-temporary name. The caller may assign values to them; by default they
-are initialized at the first call to \function{mktemp()}.
-
-\begin{datadesc}{tempdir}
-When set to a value other than \code{None}, this variable defines the
-directory in which filenames returned by \function{mktemp()} reside.
-The default is taken from the environment variable \envvar{TMPDIR}; if
-this is not set, either \file{/usr/tmp} is used (on \UNIX{}), or the
-current working directory (all other systems). No check is made to
-see whether its value is valid.
-\end{datadesc}
-
-\begin{datadesc}{template}
-When set to a value other than \code{None}, this variable defines the
-prefix of the final component of the filenames returned by
-\function{mktemp()}. A string of decimal digits is added to generate
-unique filenames. The default is either \file{@\var{pid}.} where
-\var{pid} is the current process ID (on \UNIX{}), or \file{tmp} (all
-other systems).
-\end{datadesc}
-
-\strong{Warning:} if a \UNIX{} process uses \code{mktemp()}, then
-calls \function{fork()} and both parent and child continue to use
-\function{mktemp()}, the processes will generate conflicting temporary
-names. To resolve this, the child process should assign \code{None}
-to \code{template}, to force recomputing the default on the next call
-to \function{mktemp()}.
diff --git a/Doc/libtemplate.tex b/Doc/libtemplate.tex
deleted file mode 100644
index d190506..0000000
--- a/Doc/libtemplate.tex
+++ /dev/null
@@ -1,140 +0,0 @@
-% Template for a library manual section.
-% PLEASE REMOVE THE COMMENTS AFTER USING THE TEMPLATE
-
-
-% ==== 1. ====
-% Choose one of the following section headers and index entries;
-% \section generates the section header,
-% \bimodindex or \stmodindex generates an index entry for this
-% module. Note that these should only be used for the defining entry
-% for the module. Other references to the module should use
-% \refbimodindex, \refstmodindex, \refexmodindex or \refmodindex, as
-% appropriate. (Just prepend "ref" to the csname of the \*modindex
-% macro used in the module definition.)
-%
-% The \label{module-spam} line is for the \seealso command.
-
-\section{Built-in Module \module{spam}} % If implemented in C, in
-\bimodindex{spam} % standard library
-
-\section{Standard Module \module{spam}} % If implemented in Python, in
-\stmodindex{spam} % standard library
-
-\section{Extension Module \module{spam}}% If implemented in C, but not
-\exmodindex{spam} % in standard library
-
-\section{Module \module{spam}} % If implemented in Python, but not
-\modindex{spam} % in standard library
-
-\label{module-spam}
-
-% ==== 2. ====
-% Give a short overview of what the module does.
-% If it is platform specific, mention this.
-% Mention other important restrictions or general operating principles.
-% For example:
-
-The \module{spam} module defines operations for handling cans of Spam.
-It knows the four generally available Spam varieties and understands
-both can sizes.
-
-Because spamification requires \UNIX{} process management, the module
-is only available on genuine \UNIX{} systems.
-
-
-% ==== 3. ====
-% List the public functions defined by the module. Begin with a
-% standard phrase. You may also list the exceptions and other data
-% items defined in the module, insofar as they are important for the
-% user.
-
-The \module{spam} module defines the following functions:
-
-% ---- 3.1. ----
-% For each function, use a ``funcdesc'' block. This has exactly two
-% parameters (each parameters is contained in a set of curly braces):
-% the first parameter is the function name (this automatically
-% generates an index entry); the second parameter is the function's
-% argument list. If there are no arguments, use an empty pair of
-% curly braces. If there is more than one argument, separate the
-% arguments with backslash-comma. Optional parts of the parameter
-% list are contained in \optional{...} (this generates a set of square
-% brackets around its parameter). Arguments are automatically set in
-% italics in the parameter list. Each argument should be mentioned at
-% least once in the description; each usage (even inside \code{...})
-% should be enclosed in \var{...}.
-
-\begin{funcdesc}{open}{filename\optional{, mode\optional{, buffersize}}}
-Open the file \var{filename} as a can of Spam. The optional
-\var{mode} and \var{buffersize} arguments specify the read-write mode
-(\code{'r'} (default) or \code{'w'}) and the buffer size (default:
-system dependent).
-\end{funcdesc}
-
-% ---- 3.2. ----
-% Data items are described using a ``datadesc'' block. This has only
-% one parameter: the item's name.
-
-\begin{datadesc}{cansize}
-The default can size, in ounces. Legal values are 7 and 12. The
-default varies per supermarket. This variable should not be changed
-once the \function{open()} function has been called.
-\end{datadesc}
-
-% --- 3.3. ---
-% Exceptions are described using a ``excdesc'' block. This has only
-% one parameter: the exception name.
-
-\begin{excdesc}{error}
-Exception raised when an operation fails for a Spam specific reason.
-The exception argument is a string describing the reason of the
-failure.
-\end{excdesc}
-
-% ---- 3.4. ----
-% Other standard environments:
-%
-% classdesc - Python classes; same arguments are funcdesc
-% methoddesc - methods, like funcdesc but has an optional parameter
-% to give the type name: \begin{methoddesc}[mytype]{name}{args}
-% By default, the type name will be the name of the
-% last class defined using classdesc. The type name
-% is required if the type is implemented in C (because
-% there's no classdesc) or if the class isn't directly
-% documented (if it's private).
-% memberdesc - data members, like datadesc, but with an optional
-% type name like methoddesc.
-
-
-% ==== 4. ====
-% Now is probably a good time for a complete example. (Alternatively,
-% an example giving the flavor of the module may be given before the
-% detailed list of functions.)
-
-Example:
-
-\begin{verbatim}
->>> import spam
->>> can = spam.open('/etc/passwd')
->>> can.empty()
->>> can.close()
-\end{verbatim}
-% Note that there is no trailing ">>> " prompt shown.
-
-% ==== 5. ====
-% If your module defines new object types (for a built-in module) or
-% classes (for a module written in Python), you should list the
-% methods and instance variables (if any) of each type or class in a
-% separate subsection.
-
-\subsection{Spam Objects}
-\label{spam-objects}
-% This label is generally useful for referencing this section, but is
-% also used to give a filename when generating HTML.
-
-Spam objects, as returned by \function{open()} above, have the
-following methods:
-
-\begin{methoddesc}[spam]{empty}{}
-Empty the can into the trash.
-\end{methoddesc}
diff --git a/Doc/libtermios.tex b/Doc/libtermios.tex
deleted file mode 100644
index 5e2ce1e..0000000
--- a/Doc/libtermios.tex
+++ /dev/null
@@ -1,109 +0,0 @@
-\section{Built-in Module \module{termios}}
-\label{module-termios}
-\bimodindex{termios}
-\indexii{\POSIX{}}{I/O control}
-\indexii{tty}{I/O control}
-
-
-This module provides an interface to the \POSIX{} calls for tty I/O
-control. For a complete description of these calls, see the \POSIX{} or
-\UNIX{} manual pages. It is only available for those \UNIX{} versions
-that support \POSIX{} \emph{termios} style tty I/O control (and then
-only if configured at installation time).
-
-All functions in this module take a file descriptor \var{fd} as their
-first argument. This must be an integer file descriptor, such as
-returned by \code{sys.stdin.fileno()}.
-
-This module should be used in conjunction with the
-\module{TERMIOS}\refstmodindex{TERMIOS} module, which defines the
-relevant symbolic constants (see the next section).
-
-The module defines the following functions:
-
-\begin{funcdesc}{tcgetattr}{fd}
-Return a list containing the tty attributes for file descriptor
-\var{fd}, as follows: \code{[}\var{iflag}, \var{oflag}, \var{cflag},
-\var{lflag}, \var{ispeed}, \var{ospeed}, \var{cc}\code{]} where
-\var{cc} is a list of the tty special characters (each a string of
-length 1, except the items with indices \constant{TERMIOS.VMIN} and
-\constant{TERMIOS.VTIME}, which are integers when these fields are
-defined). The interpretation of the flags and the speeds as well as
-the indexing in the \var{cc} array must be done using the symbolic
-constants defined in the \module{TERMIOS} module.
-\end{funcdesc}
-
-\begin{funcdesc}{tcsetattr}{fd, when, attributes}
-Set the tty attributes for file descriptor \var{fd} from the
-\var{attributes}, which is a list like the one returned by
-\function{tcgetattr()}. The \var{when} argument determines when the
-attributes are changed: \constant{TERMIOS.TCSANOW} to change
-immediately, \constant{TERMIOS.TCSADRAIN} to change after transmitting
-all queued output, or \constant{TERMIOS.TCSAFLUSH} to change after
-transmitting all queued output and discarding all queued input.
-\end{funcdesc}
-
-\begin{funcdesc}{tcsendbreak}{fd, duration}
-Send a break on file descriptor \var{fd}. A zero \var{duration} sends
-a break for 0.25--0.5 seconds; a nonzero \var{duration} has a system
-dependent meaning.
-\end{funcdesc}
-
-\begin{funcdesc}{tcdrain}{fd}
-Wait until all output written to file descriptor \var{fd} has been
-transmitted.
-\end{funcdesc}
-
-\begin{funcdesc}{tcflush}{fd, queue}
-Discard queued data on file descriptor \var{fd}. The \var{queue}
-selector specifies which queue: \constant{TERMIOS.TCIFLUSH} for the
-input queue, \constant{TERMIOS.TCOFLUSH} for the output queue, or
-\constant{TERMIOS.TCIOFLUSH} for both queues.
-\end{funcdesc}
-
-\begin{funcdesc}{tcflow}{fd, action}
-Suspend or resume input or output on file descriptor \var{fd}. The
-\var{action} argument can be \constant{TERMIOS.TCOOFF} to suspend
-output, \constant{TERMIOS.TCOON} to restart output,
-\constant{TERMIOS.TCIOFF} to suspend input, or
-\constant{TERMIOS.TCION} to restart input.
-\end{funcdesc}
-
-\subsection{Example}
-\nodename{termios Example}
-
-Here's a function that prompts for a password with echoing turned
-off. Note the technique using a separate \function{tcgetattr()} call
-and a \keyword{try} ... \keyword{finally} statement to ensure that the
-old tty attributes are restored exactly no matter what happens:
-
-\begin{verbatim}
-def getpass(prompt = "Password: "):
- import termios, TERMIOS, sys
- fd = sys.stdin.fileno()
- old = termios.tcgetattr(fd)
- new = termios.tcgetattr(fd)
- new[3] = new[3] & ~TERMIOS.ECHO # lflags
- try:
- termios.tcsetattr(fd, TERMIOS.TCSADRAIN, new)
- passwd = raw_input(prompt)
- finally:
- termios.tcsetattr(fd, TERMIOS.TCSADRAIN, old)
- return passwd
-\end{verbatim}
-
-\section{Standard Module \module{TERMIOS}}
-\label{module-TERMIOSuppercase}
-\stmodindex{TERMIOS}
-\indexii{\POSIX{}}{I/O control}
-\indexii{tty}{I/O control}
-
-
-This module defines the symbolic constants required to use the
-\module{termios}\refbimodindex{termios} module (see the previous
-section). See the \POSIX{} or \UNIX{} manual pages (or the source)
-for a list of those constants.
-
-Note: this module resides in a system-dependent subdirectory of the
-Python library directory. You may have to generate it for your
-particular system using the script \file{Tools/scripts/h2py.py}.
diff --git a/Doc/libthread.tex b/Doc/libthread.tex
deleted file mode 100644
index 9e9d8ba..0000000
--- a/Doc/libthread.tex
+++ /dev/null
@@ -1,127 +0,0 @@
-\section{Built-in Module \module{thread}}
-\label{module-thread}
-\bimodindex{thread}
-
-This module provides low-level primitives for working with multiple
-threads (a.k.a.\ \dfn{light-weight processes} or \dfn{tasks}) --- multiple
-threads of control sharing their global data space. For
-synchronization, simple locks (a.k.a.\ \dfn{mutexes} or \dfn{binary
-semaphores}) are provided.
-\index{light-weight processes}
-\index{processes, light-weight}
-\index{binary semaphores}
-\index{semaphores, binary}
-
-The module is optional. It is supported on Windows NT and '95, SGI
-IRIX, Solaris 2.x, as well as on systems that have a \POSIX{} thread
-(a.k.a. ``pthread'') implementation.
-\index{pthreads}
-\indexii{threads}{\POSIX{}}
-
-It defines the following constant and functions:
-
-\begin{excdesc}{error}
-Raised on thread-specific errors.
-\end{excdesc}
-
-\begin{funcdesc}{start_new_thread}{func, arg}
-Start a new thread. The thread executes the function \var{func}
-with the argument list \var{arg} (which must be a tuple). When the
-function returns, the thread silently exits. When the function
-terminates with an unhandled exception, a stack trace is printed and
-then the thread exits (but other threads continue to run).
-\end{funcdesc}
-
-\begin{funcdesc}{exit}{}
-This is a shorthand for \function{exit_thread()}.
-\end{funcdesc}
-
-\begin{funcdesc}{exit_thread}{}
-Raise the \exception{SystemExit} exception. When not caught, this
-will cause the thread to exit silently.
-\end{funcdesc}
-
-%\begin{funcdesc}{exit_prog}{status}
-%Exit all threads and report the value of the integer argument
-%\var{status} as the exit status of the entire program.
-%\strong{Caveat:} code in pending \code{finally} clauses, in this thread
-%or in other threads, is not executed.
-%\end{funcdesc}
-
-\begin{funcdesc}{allocate_lock}{}
-Return a new lock object. Methods of locks are described below. The
-lock is initially unlocked.
-\end{funcdesc}
-
-\begin{funcdesc}{get_ident}{}
-Return the `thread identifier' of the current thread. This is a
-nonzero integer. Its value has no direct meaning; it is intended as a
-magic cookie to be used e.g. to index a dictionary of thread-specific
-data. Thread identifiers may be recycled when a thread exits and
-another thread is created.
-\end{funcdesc}
-
-
-Lock objects have the following methods:
-
-\begin{methoddesc}[lock]{acquire}{\optional{waitflag}}
-Without the optional argument, this method acquires the lock
-unconditionally, if necessary waiting until it is released by another
-thread (only one thread at a time can acquire a lock --- that's their
-reason for existence), and returns \code{None}. If the integer
-\var{waitflag} argument is present, the action depends on its value:\
-if it is zero, the lock is only acquired if it can be acquired
-immediately without waiting, while if it is nonzero, the lock is
-acquired unconditionally as before. If an argument is present, the
-return value is \code{1} if the lock is acquired successfully,
-\code{0} if not.
-\end{methoddesc}
-
-\begin{methoddesc}[lock]{release}{}
-Releases the lock. The lock must have been acquired earlier, but not
-necessarily by the same thread.
-\end{methoddesc}
-
-\begin{methoddesc}[lock]{locked}{}
-Return the status of the lock:\ \code{1} if it has been acquired by
-some thread, \code{0} if not.
-\end{methoddesc}
-
-\strong{Caveats:}
-
-\begin{itemize}
-\item
-Threads interact strangely with interrupts: the
-\exception{KeyboardInterrupt} exception will be received by an
-arbitrary thread. (When the \module{signal}\refbimodindex{signal}
-module is available, interrupts always go to the main thread.)
-
-\item
-Calling \function{sys.exit()} or raising the \exception{SystemExit}
-exception is equivalent to calling \function{exit_thread()}.
-
-\item
-Not all built-in functions that may block waiting for I/O allow other
-threads to run. (The most popular ones (\function{time.sleep()},
-\method{\var{file}.read()}, \function{select.select()}) work as
-expected.)
-
-\item
-It is not possible to interrupt the \method{acquire()} method on a lock
---- the \exception{KeyboardInterrupt} exception will happen after the
-lock has been acquired.
-
-\item
-When the main thread exits, it is system defined whether the other
-threads survive. On SGI IRIX using the native thread implementation,
-they survive. On most other systems, they are killed without
-executing \keyword{try} ... \keyword{finally} clauses or executing
-object destructors.
-\indexii{threads}{IRIX}
-
-\item
-When the main thread exits, it does not do any of its usual cleanup
-(except that \keyword{try} ... \keyword{finally} clauses are honored),
-and the standard I/O files are not flushed.
-
-\end{itemize}
diff --git a/Doc/libtime.tex b/Doc/libtime.tex
deleted file mode 100644
index ed4f4ef..0000000
--- a/Doc/libtime.tex
+++ /dev/null
@@ -1,189 +0,0 @@
-\section{Built-in Module \module{time}}
-\label{module-time}
-\bimodindex{time}
-
-This module provides various time-related functions.
-It is always available.
-
-An explanation of some terminology and conventions is in order.
-
-\begin{itemize}
-
-\item
-The \dfn{epoch}\index{epoch} is the point where the time starts. On
-January 1st of that year, at 0 hours, the ``time since the epoch'' is
-zero. For \UNIX{}, the epoch is 1970. To find out what the epoch is,
-look at \code{gmtime(0)}.
-
-\item
-UTC is Coordinated Universal Time (formerly known as Greenwich Mean
-Time). The acronym UTC is not a mistake but a compromise between
-English and French.%
-\index{UTC}%
-\index{Coordinated Universal Time}%
-\index{Greenwich Mean Time}
-
-\item
-DST is Daylight Saving Time, an adjustment of the timezone by
-(usually) one hour during part of the year. DST rules are magic
-(determined by local law) and can change from year to year. The \C{}
-library has a table containing the local rules (often it is read from
-a system file for flexibility) and is the only source of True Wisdom
-in this respect.%
-\index{Daylight Saving Time}
-
-\item
-The precision of the various real-time functions may be less than
-suggested by the units in which their value or argument is expressed.
-E.g.\ on most \UNIX{} systems, the clock ``ticks'' only 50 or 100 times a
-second, and on the Mac, times are only accurate to whole seconds.
-
-\item
-On the other hand, the precision of \function{time()} and
-\function{sleep()} is better than their \UNIX{} equivalents: times are
-expressed as floating point numbers, \function{time()} returns the
-most accurate time available (using \UNIX{} \cfunction{gettimeofday()}
-where available), and \function{sleep()} will accept a time with a
-nonzero fraction (\UNIX{} \cfunction{select()} is used to implement
-this, where available).
-
-\item
-The time tuple as returned by \function{gmtime()} and
-\function{localtime()}, or as accpted by \function{mktime()} is a
-tuple of 9 integers: year (e.g.\ 1993), month (1--12), day (1--31),
-hour (0--23), minute (0--59), second (0--59), weekday (0--6, monday is
-0), Julian day (1--366) and daylight savings flag (-1, 0 or 1).
-Note that unlike the \C{} structure, the month value is a range of 1-12, not
-0-11. A year value less than 100 will typically be silently converted to
-1900 plus the year value. A \code{-1} argument as daylight savings
-flag, passed to \function{mktime()} will usually result in the correct
-daylight savings state to be filled in.
-
-\end{itemize}
-
-The module defines the following functions and data items:
-
-
-\begin{datadesc}{altzone}
-The offset of the local DST timezone, in seconds west of the 0th
-meridian, if one is defined. Negative if the local DST timezone is
-east of the 0th meridian (as in Western Europe, including the UK).
-Only use this if \code{daylight} is nonzero.
-\end{datadesc}
-
-\begin{funcdesc}{asctime}{tuple}
-Convert a tuple representing a time as returned by \code{gmtime()} or
-\code{localtime()} to a 24-character string of the following form:
-\code{'Sun Jun 20 23:21:05 1993'}. Note: unlike the C function of
-the same name, there is no trailing newline.
-\end{funcdesc}
-
-\begin{funcdesc}{clock}{}
-Return the current CPU time as a floating point number expressed in
-seconds. The precision, and in fact the very definiton of the meaning
-of ``CPU time''\index{CPU time}, depends on that of the \C{} function
-of the same name, but in any case, this is the function to use for
-benchmarking\index{benchmarking} Python or timing algorithms.
-\end{funcdesc}
-
-\begin{funcdesc}{ctime}{secs}
-Convert a time expressed in seconds since the epoch to a string
-representing local time. \code{ctime(\var{secs})} is equivalent to
-\code{asctime(localtime(\var{secs}))}.
-\end{funcdesc}
-
-\begin{datadesc}{daylight}
-Nonzero if a DST timezone is defined.
-\end{datadesc}
-
-\begin{funcdesc}{gmtime}{secs}
-Convert a time expressed in seconds since the epoch to a time tuple
-in UTC in which the dst flag is always zero. Fractions of a second are
-ignored.
-\end{funcdesc}
-
-\begin{funcdesc}{localtime}{secs}
-Like \function{gmtime()} but converts to local time. The dst flag is
-set to \code{1} when DST applies to the given time.
-\end{funcdesc}
-
-\begin{funcdesc}{mktime}{tuple}
-This is the inverse function of \code{localtime}. Its argument is the
-full 9-tuple (since the dst flag is needed --- pass \code{-1} as the
-dst flag if it is unknown) which expresses the time
-in \emph{local} time, not UTC. It returns a floating
-point number, for compatibility with \function{time()}. If the input
-value cannot be represented as a valid time, \exception{OverflowError}
-is raised.
-\end{funcdesc}
-
-\begin{funcdesc}{sleep}{secs}
-Suspend execution for the given number of seconds. The argument may
-be a floating point number to indicate a more precise sleep time.
-\end{funcdesc}
-
-\begin{funcdesc}{strftime}{format, tuple}
-Convert a tuple representing a time as returned by \code{gmtime()} or
-\code{localtime()} to a string as specified by the format argument.
-
-The following directives, shown without the optional field width and
-precision specification, are replaced by the indicated characters:
-
-\begin{tableii}{c|p{24em}}{code}{Directive}{Meaning}
- \lineii{\%a}{Locale's abbreviated weekday name.}
- \lineii{\%A}{Locale's full weekday name.}
- \lineii{\%b}{Locale's abbreviated month name.}
- \lineii{\%B}{Locale's full month name.}
- \lineii{\%c}{Locale's appropriate date and time representation.}
- \lineii{\%d}{Day of the month as a decimal number [01,31].}
- \lineii{\%H}{Hour (24-hour clock) as a decimal number [00,23].}
- \lineii{\%I}{Hour (12-hour clock) as a decimal number [01,12].}
- \lineii{\%j}{Day of the year as a decimal number [001,366].}
- \lineii{\%m}{Month as a decimal number [01,12].}
- \lineii{\%M}{Minute as a decimal number [00,59].}
- \lineii{\%p}{Locale's equivalent of either AM or PM.}
- \lineii{\%S}{Second as a decimal number [00,61].}
- \lineii{\%U}{Week number of the year (Sunday as the first day of the
- week) as a decimal number [00,53]. All days in a new year
- preceding the first Sunday are considered to be in week 0.}
- \lineii{\%w}{Weekday as a decimal number [0(Sunday),6].}
- \lineii{\%W}{Week number of the year (Monday as the first day of the
- week) as a decimal number [00,53]. All days in a new year
- preceding the first Sunday are considered to be in week 0.}
- \lineii{\%x}{Locale's appropriate date representation.}
- \lineii{\%X}{Locale's appropriate time representation.}
- \lineii{\%y}{Year without century as a decimal number [00,99].}
- \lineii{\%Y}{Year with century as a decimal number.}
- \lineii{\%Z}{Time zone name (or by no characters if no time zone exists).}
- \lineii{\%\%}{\%}
-\end{tableii}
-
-Additional directives may be supported on certain platforms, but
-only the ones listed here have a meaning standardized by ANSI C.
-
-On some platforms, an optional field width and precision
-specification can immediately follow the initial \code{\%} of a
-directive in the following order; this is also not portable.
-The field width is normally 2 except for \code{\%j} where it is 3.
-
-\end{funcdesc}
-
-\begin{funcdesc}{time}{}
-Return the time as a floating point number expressed in seconds since
-the epoch, in UTC. Note that even though the time is always returned
-as a floating point number, not all systems provide time with a better
-precision than 1 second.
-\end{funcdesc}
-
-\begin{datadesc}{timezone}
-The offset of the local (non-DST) timezone, in seconds west of the 0th
-meridian (i.e. negative in most of Western Europe, positive in the US,
-zero in the UK).
-\end{datadesc}
-
-\begin{datadesc}{tzname}
-A tuple of two strings: the first is the name of the local non-DST
-timezone, the second is the name of the local DST timezone. If no DST
-timezone is defined, the second string should not be used.
-\end{datadesc}
-
diff --git a/Doc/libtoken.tex b/Doc/libtoken.tex
deleted file mode 100644
index 15ab2a4..0000000
--- a/Doc/libtoken.tex
+++ /dev/null
@@ -1,37 +0,0 @@
-\section{Standard Module \module{token}}
-\label{module-token}
-\stmodindex{token}
-
-This module provides constants which represent the numeric values of
-leaf nodes of the parse tree (terminal tokens). Refer to the file
-\file{Grammar/Grammar} in the Python distribution for the defintions
-of the names in the context of the language grammar. The specific
-numeric values which the names map to may change between Python
-versions.
-
-This module also provides one data object and some functions. The
-functions mirror definitions in the Python C header files.
-
-
-
-\begin{datadesc}{tok_name}
-Dictionary mapping the numeric values of the constants defined in this
-module back to name strings, allowing more human-readable
-representation of parse trees to be generated.
-\end{datadesc}
-
-\begin{funcdesc}{ISTERMINAL}{x}
-Return true for terminal token values.
-\end{funcdesc}
-
-\begin{funcdesc}{ISNONTERMINAL}{x}
-Return true for non-terminal token values.
-\end{funcdesc}
-
-\begin{funcdesc}{ISEOF}{x}
-Return true if \var{x} is the marker indicating the end of input.
-\end{funcdesc}
-
-\begin{seealso}
-\seemodule{parser}{second example uses this module}
-\end{seealso}
diff --git a/Doc/libtraceback.tex b/Doc/libtraceback.tex
deleted file mode 100644
index f9aa74a..0000000
--- a/Doc/libtraceback.tex
+++ /dev/null
@@ -1,55 +0,0 @@
-\section{Standard Module \module{traceback}}
-\label{module-traceback}
-\stmodindex{traceback}
-
-
-This module provides a standard interface to format and print stack
-traces of Python programs. It exactly mimics the behavior of the
-Python interpreter when it prints a stack trace. This is useful when
-you want to print stack traces under program control, e.g. in a
-``wrapper'' around the interpreter.
-
-The module uses traceback objects --- this is the object type
-that is stored in the variables \code{sys.exc_traceback} and
-\code{sys.last_traceback}.
-\obindex{traceback}
-
-The module defines the following functions:
-
-\begin{funcdesc}{print_tb}{traceback\optional{, limit}}
-Print up to \var{limit} stack trace entries from \var{traceback}. If
-\var{limit} is omitted or \code{None}, all entries are printed.
-\end{funcdesc}
-
-\begin{funcdesc}{extract_tb}{traceback\optional{, limit}}
-Return a list of up to \var{limit} ``pre-processed'' stack trace
-entries extracted from \var{traceback}. It is useful for alternate
-formatting of stack traces. If \var{limit} is omitted or \code{None},
-all entries are extracted. A ``pre-processed'' stack trace entry is a
-quadruple (\var{filename}, \var{line number}, \var{function name},
-\var{line text}) representing the information that is usually printed
-for a stack trace. The \var{line text} is a string with leading and
-trailing whitespace stripped; if the source is not available it is
-\code{None}.
-\end{funcdesc}
-
-\begin{funcdesc}{print_exception}{type, value, traceback\optional{, limit}}
-Print exception information and up to \var{limit} stack trace entries
-from \var{traceback}. This differs from \function{print_tb()} in the
-following ways: (1) if \var{traceback} is not \code{None}, it prints a
-header \samp{Traceback (innermost last):}; (2) it prints the
-exception \var{type} and \var{value} after the stack trace; (3) if
-\var{type} is \exception{SyntaxError} and \var{value} has the appropriate
-format, it prints the line where the syntax error occurred with a
-caret indicating the approximate position of the error.
-\end{funcdesc}
-
-\begin{funcdesc}{print_exc}{\optional{limit}}
-This is a shorthand for `\code{print_exception(sys.exc_type,}
-\code{sys.exc_value,} \code{sys.exc_traceback,} \var{limit}\code{)}'.
-\end{funcdesc}
-
-\begin{funcdesc}{print_last}{\optional{limit}}
-This is a shorthand for `\code{print_exception(sys.last_type,}
-\code{sys.last_value,} \code{sys.last_traceback,} \var{limit}\code{)}'.
-\end{funcdesc}
diff --git a/Doc/libtypes.tex b/Doc/libtypes.tex
deleted file mode 100644
index 2dfe742..0000000
--- a/Doc/libtypes.tex
+++ /dev/null
@@ -1,863 +0,0 @@
-\section{Built-in Types}
-\label{types}
-
-The following sections describe the standard types that are built into
-the interpreter. These are the numeric types, sequence types, and
-several others, including types themselves. There is no explicit
-Boolean type; use integers instead.
-\indexii{built-in}{types}
-\indexii{Boolean}{type}
-
-Some operations are supported by several object types; in particular,
-all objects can be compared, tested for truth value, and converted to
-a string (with the \code{`{\rm \ldots}`} notation). The latter conversion is
-implicitly used when an object is written by the \code{print} statement.
-\stindex{print}
-
-
-\subsection{Truth Value Testing}
-\label{truth}
-
-Any object can be tested for truth value, for use in an \code{if} or
-\code{while} condition or as operand of the Boolean operations below.
-The following values are considered false:
-\stindex{if}
-\stindex{while}
-\indexii{truth}{value}
-\indexii{Boolean}{operations}
-\index{false}
-
-\setindexsubitem{(Built-in object)}
-\begin{itemize}
-
-\item \code{None}
- \ttindex{None}
-
-\item zero of any numeric type, e.g., \code{0}, \code{0L}, \code{0.0}.
-
-\item any empty sequence, e.g., \code{''}, \code{()}, \code{[]}.
-
-\item any empty mapping, e.g., \code{\{\}}.
-
-\item instances of user-defined classes, if the class defines a
- \code{__nonzero__()} or \code{__len__()} method, when that
- method returns zero.
-
-\end{itemize}
-
-All other values are considered true --- so objects of many types are
-always true.
-\index{true}
-
-Operations and built-in functions that have a Boolean result always
-return \code{0} for false and \code{1} for true, unless otherwise
-stated. (Important exception: the Boolean operations
-\samp{or}\opindex{or} and \samp{and}\opindex{and} always return one of
-their operands.)
-
-
-\subsection{Boolean Operations}
-\label{boolean}
-
-These are the Boolean operations, ordered by ascending priority:
-\indexii{Boolean}{operations}
-
-\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
- \lineiii{\var{x} or \var{y}}{if \var{x} is false, then \var{y}, else \var{x}}{(1)}
- \lineiii{\var{x} and \var{y}}{if \var{x} is false, then \var{x}, else \var{y}}{(1)}
- \hline
- \lineiii{not \var{x}}{if \var{x} is false, then \code{1}, else \code{0}}{(2)}
-\end{tableiii}
-\opindex{and}
-\opindex{or}
-\opindex{not}
-
-\noindent
-Notes:
-
-\begin{description}
-
-\item[(1)]
-These only evaluate their second argument if needed for their outcome.
-
-\item[(2)]
-\samp{not} has a lower priority than non-Boolean operators, so e.g.
-\code{not a == b} is interpreted as \code{not(a == b)}, and
-\code{a == not b} is a syntax error.
-
-\end{description}
-
-
-\subsection{Comparisons}
-\label{comparisons}
-
-Comparison operations are supported by all objects. They all have the
-same priority (which is higher than that of the Boolean operations).
-Comparisons can be chained arbitrarily, e.g. \code{x < y <= z} is
-equivalent to \code{x < y and y <= z}, except that \code{y} is
-evaluated only once (but in both cases \code{z} is not evaluated at
-all when \code{x < y} is found to be false).
-\indexii{chaining}{comparisons}
-
-This table summarizes the comparison operations:
-
-\begin{tableiii}{c|l|c}{code}{Operation}{Meaning}{Notes}
- \lineiii{<}{strictly less than}{}
- \lineiii{<=}{less than or equal}{}
- \lineiii{>}{strictly greater than}{}
- \lineiii{>=}{greater than or equal}{}
- \lineiii{==}{equal}{}
- \lineiii{<>}{not equal}{(1)}
- \lineiii{!=}{not equal}{(1)}
- \lineiii{is}{object identity}{}
- \lineiii{is not}{negated object identity}{}
-\end{tableiii}
-\indexii{operator}{comparison}
-\opindex{==} % XXX *All* others have funny characters < ! >
-\opindex{is}
-\opindex{is not}
-
-\noindent
-Notes:
-
-\begin{description}
-
-\item[(1)]
-\code{<>} and \code{!=} are alternate spellings for the same operator.
-(I couldn't choose between \ABC{} and \C{}! :-)
-\index{ABC language@\ABC{} language}
-\index{language!ABC@\ABC{}}
-\indexii{C@\C{}}{language}
-
-\end{description}
-
-Objects of different types, except different numeric types, never
-compare equal; such objects are ordered consistently but arbitrarily
-(so that sorting a heterogeneous array yields a consistent result).
-Furthermore, some types (e.g., windows) support only a degenerate
-notion of comparison where any two objects of that type are unequal.
-Again, such objects are ordered arbitrarily but consistently.
-\indexii{types}{numeric}
-\indexii{objects}{comparing}
-
-(Implementation note: objects of different types except numbers are
-ordered by their type names; objects of the same types that don't
-support proper comparison are ordered by their address.)
-
-Two more operations with the same syntactic priority, \samp{in} and
-\samp{not in}, are supported only by sequence types (below).
-\opindex{in}
-\opindex{not in}
-
-
-\subsection{Numeric Types}
-\label{typesnumeric}
-
-There are four numeric types: \dfn{plain integers}, \dfn{long integers},
-\dfn{floating point numbers}, and \dfn{complex numbers}.
-Plain integers (also just called \dfn{integers})
-are implemented using \code{long} in \C{}, which gives them at least 32
-bits of precision. Long integers have unlimited precision. Floating
-point numbers are implemented using \code{double} in \C{}. All bets on
-their precision are off unless you happen to know the machine you are
-working with.
-\indexii{numeric}{types}
-\indexii{integer}{types}
-\indexii{integer}{type}
-\indexiii{long}{integer}{type}
-\indexii{floating point}{type}
-\indexii{complex number}{type}
-\indexii{C@\C{}}{language}
-
-Complex numbers have a real and imaginary part, which are both
-implemented using \code{double} in \C{}. To extract these parts from
-a complex number \var{z}, use \code{\var{z}.real} and \code{\var{z}.imag}.
-
-Numbers are created by numeric literals or as the result of built-in
-functions and operators. Unadorned integer literals (including hex
-and octal numbers) yield plain integers. Integer literals with an \samp{L}
-or \samp{l} suffix yield long integers
-(\samp{L} is preferred because \samp{1l} looks too much like eleven!).
-Numeric literals containing a decimal point or an exponent sign yield
-floating point numbers. Appending \samp{j} or \samp{J} to a numeric
-literal yields a complex number.
-\indexii{numeric}{literals}
-\indexii{integer}{literals}
-\indexiii{long}{integer}{literals}
-\indexii{floating point}{literals}
-\indexii{complex number}{literals}
-\indexii{hexadecimal}{literals}
-\indexii{octal}{literals}
-
-Python fully supports mixed arithmetic: when a binary arithmetic
-operator has operands of different numeric types, the operand with the
-``smaller'' type is converted to that of the other, where plain
-integer is smaller than long integer is smaller than floating point is
-smaller than complex.
-Comparisons between numbers of mixed type use the same rule.%
-\footnote{As a consequence, the list \code{[1, 2]} is considered equal
- to \code{[1.0, 2.0]}, and similar for tuples.}
-The functions \code{int()}, \code{long()}, \code{float()},
-and \code{complex()} can be used
-to coerce numbers to a specific type.
-\index{arithmetic}
-\bifuncindex{int}
-\bifuncindex{long}
-\bifuncindex{float}
-\bifuncindex{complex}
-
-All numeric types support the following operations, sorted by
-ascending priority (operations in the same box have the same
-priority; all numeric operations have a higher priority than
-comparison operations):
-
-\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
- \lineiii{\var{x} + \var{y}}{sum of \var{x} and \var{y}}{}
- \lineiii{\var{x} - \var{y}}{difference of \var{x} and \var{y}}{}
- \hline
- \lineiii{\var{x} * \var{y}}{product of \var{x} and \var{y}}{}
- \lineiii{\var{x} / \var{y}}{quotient of \var{x} and \var{y}}{(1)}
- \lineiii{\var{x} \%{} \var{y}}{remainder of \code{\var{x} / \var{y}}}{}
- \hline
- \lineiii{-\var{x}}{\var{x} negated}{}
- \lineiii{+\var{x}}{\var{x} unchanged}{}
- \hline
- \lineiii{abs(\var{x})}{absolute value or magnitude of \var{x}}{}
- \lineiii{int(\var{x})}{\var{x} converted to integer}{(2)}
- \lineiii{long(\var{x})}{\var{x} converted to long integer}{(2)}
- \lineiii{float(\var{x})}{\var{x} converted to floating point}{}
- \lineiii{complex(\var{re},\var{im})}{a complex number with real part \var{re}, imaginary part \var{im}. \var{im} defaults to zero.}{}
- \lineiii{divmod(\var{x}, \var{y})}{the pair \code{(\var{x} / \var{y}, \var{x} \%{} \var{y})}}{(3)}
- \lineiii{pow(\var{x}, \var{y})}{\var{x} to the power \var{y}}{}
- \lineiii{\var{x} ** \var{y}}{\var{x} to the power \var{y}}{}
-\end{tableiii}
-\indexiii{operations on}{numeric}{types}
-
-\noindent
-Notes:
-\begin{description}
-
-\item[(1)]
-For (plain or long) integer division, the result is an integer.
-The result is always rounded towards minus infinity: 1/2 is 0,
-(-1)/2 is -1, 1/(-2) is -1, and (-1)/(-2) is 0.
-\indexii{integer}{division}
-\indexiii{long}{integer}{division}
-
-\item[(2)]
-Conversion from floating point to (long or plain) integer may round or
-truncate as in \C{}; see functions \code{floor()} and \code{ceil()} in
-module \code{math} for well-defined conversions.
-\bifuncindex{floor}
-\bifuncindex{ceil}
-\indexii{numeric}{conversions}
-\refbimodindex{math}
-\indexii{C@\C{}}{language}
-
-\item[(3)]
-See the section on built-in functions for an exact definition.
-
-\end{description}
-% XXXJH exceptions: overflow (when? what operations?) zerodivision
-
-\subsubsection{Bit-string Operations on Integer Types}
-\nodename{Bit-string Operations}
-
-Plain and long integer types support additional operations that make
-sense only for bit-strings. Negative numbers are treated as their 2's
-complement value (for long integers, this assumes a sufficiently large
-number of bits that no overflow occurs during the operation).
-
-The priorities of the binary bit-wise operations are all lower than
-the numeric operations and higher than the comparisons; the unary
-operation \samp{\~} has the same priority as the other unary numeric
-operations (\samp{+} and \samp{-}).
-
-This table lists the bit-string operations sorted in ascending
-priority (operations in the same box have the same priority):
-
-\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
- \lineiii{\var{x} | \var{y}}{bitwise \dfn{or} of \var{x} and \var{y}}{}
- \lineiii{\var{x} \^{} \var{y}}{bitwise \dfn{exclusive or} of \var{x} and \var{y}}{}
- \lineiii{\var{x} \&{} \var{y}}{bitwise \dfn{and} of \var{x} and \var{y}}{}
- \lineiii{\var{x} << \var{n}}{\var{x} shifted left by \var{n} bits}{(1), (2)}
- \lineiii{\var{x} >> \var{n}}{\var{x} shifted right by \var{n} bits}{(1), (3)}
- \hline
- \lineiii{\~\var{x}}{the bits of \var{x} inverted}{}
-\end{tableiii}
-\indexiii{operations on}{integer}{types}
-\indexii{bit-string}{operations}
-\indexii{shifting}{operations}
-\indexii{masking}{operations}
-
-\noindent
-Notes:
-\begin{description}
-\item[(1)] Negative shift counts are illegal and cause a
-\exception{ValueError} to be raised.
-\item[(2)] A left shift by \var{n} bits is equivalent to
-multiplication by \code{pow(2, \var{n})} without overflow check.
-\item[(3)] A right shift by \var{n} bits is equivalent to
-division by \code{pow(2, \var{n})} without overflow check.
-\end{description}
-
-
-\subsection{Sequence Types}
-\label{typesseq}
-
-There are three sequence types: strings, lists and tuples.
-
-Strings literals are written in single or double quotes:
-\code{'xyzzy'}, \code{"frobozz"}. See Chapter 2 of the \emph{Python
-Reference Manual} for more about string literals. Lists are
-constructed with square brackets, separating items with commas:
-\code{[a, b, c]}. Tuples are constructed by the comma operator (not
-within square brackets), with or without enclosing parentheses, but an
-empty tuple must have the enclosing parentheses, e.g.,
-\code{a, b, c} or \code{()}. A single item tuple must have a trailing
-comma, e.g., \code{(d,)}.
-\indexii{sequence}{types}
-\indexii{string}{type}
-\indexii{tuple}{type}
-\indexii{list}{type}
-
-Sequence types support the following operations. The \samp{in} and
-\samp{not in} operations have the same priorities as the comparison
-operations. The \samp{+} and \samp{*} operations have the same
-priority as the corresponding numeric operations.\footnote{They must
-have since the parser can't tell the type of the operands.}
-
-This table lists the sequence operations sorted in ascending priority
-(operations in the same box have the same priority). In the table,
-\var{s} and \var{t} are sequences of the same type; \var{n}, \var{i}
-and \var{j} are integers:
-
-\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
- \lineiii{\var{x} in \var{s}}{\code{1} if an item of \var{s} is equal to \var{x}, else \code{0}}{}
- \lineiii{\var{x} not in \var{s}}{\code{0} if an item of \var{s} is
-equal to \var{x}, else \code{1}}{}
- \hline
- \lineiii{\var{s} + \var{t}}{the concatenation of \var{s} and \var{t}}{}
- \lineiii{\var{s} * \var{n}{\rm ,} \var{n} * \var{s}}{\var{n} copies of \var{s} concatenated}{(3)}
- \hline
- \lineiii{\var{s}[\var{i}]}{\var{i}'th item of \var{s}, origin 0}{(1)}
- \lineiii{\var{s}[\var{i}:\var{j}]}{slice of \var{s} from \var{i} to \var{j}}{(1), (2)}
- \hline
- \lineiii{len(\var{s})}{length of \var{s}}{}
- \lineiii{min(\var{s})}{smallest item of \var{s}}{}
- \lineiii{max(\var{s})}{largest item of \var{s}}{}
-\end{tableiii}
-\indexiii{operations on}{sequence}{types}
-\bifuncindex{len}
-\bifuncindex{min}
-\bifuncindex{max}
-\indexii{concatenation}{operation}
-\indexii{repetition}{operation}
-\indexii{subscript}{operation}
-\indexii{slice}{operation}
-\opindex{in}
-\opindex{not in}
-
-\noindent
-Notes:
-
-\begin{description}
-
-\item[(1)] If \var{i} or \var{j} is negative, the index is relative to
- the end of the string, i.e., \code{len(\var{s}) + \var{i}} or
- \code{len(\var{s}) + \var{j}} is substituted. But note that \code{-0} is
- still \code{0}.
-
-\item[(2)] The slice of \var{s} from \var{i} to \var{j} is defined as
- the sequence of items with index \var{k} such that \code{\var{i} <=
- \var{k} < \var{j}}. If \var{i} or \var{j} is greater than
- \code{len(\var{s})}, use \code{len(\var{s})}. If \var{i} is omitted,
- use \code{0}. If \var{j} is omitted, use \code{len(\var{s})}. If
- \var{i} is greater than or equal to \var{j}, the slice is empty.
-
-\item[(3)] Values of \var{n} less than \code{0} are treated as
- \code{0} (which yields an empty sequence of the same type as
- \var{s}).
-
-\end{description}
-
-\subsubsection{More String Operations}
-
-String objects have one unique built-in operation: the \code{\%}
-operator (modulo) with a string left argument interprets this string
-as a \C{} \cfunction{sprintf()} format string to be applied to the
-right argument, and returns the string resulting from this formatting
-operation.
-
-The right argument should be a tuple with one item for each argument
-required by the format string; if the string requires a single
-argument, the right argument may also be a single non-tuple object.%
-\footnote{A tuple object in this case should be a singleton.}
-The following format characters are understood:
-\code{\%}, \code{c}, \code{s}, \code{i}, \code{d}, \code{u}, \code{o},
-\code{x}, \code{X}, \code{e}, \code{E}, \code{f}, \code{g}, \code{G}.
-Width and precision may be a \code{*} to specify that an integer argument
-specifies the actual width or precision. The flag characters
-\code{-}, \code{+}, blank, \code{\#} and \code{0} are understood. The
-size specifiers \code{h}, \code{l} or \code{L} may be
-present but are ignored. The \code{\%s} conversion takes any Python
-object and converts it to a string using \code{str()} before
-formatting it. The ANSI features \code{\%p} and \code{\%n}
-are not supported. Since Python strings have an explicit length,
-\code{\%s} conversions don't assume that \code{'\e0'} is the end of
-the string.
-
-For safety reasons, floating point precisions are clipped to 50;
-\code{\%f} conversions for numbers whose absolute value is over 1e25
-are replaced by \code{\%g} conversions.%
-\footnote{These numbers are fairly arbitrary. They are intended to
-avoid printing endless strings of meaningless digits without hampering
-correct use and without having to know the exact precision of floating
-point values on a particular machine.}
-All other errors raise exceptions.
-
-If the right argument is a dictionary (or any kind of mapping), then
-the formats in the string must have a parenthesized key into that
-dictionary inserted immediately after the \character{\%} character,
-and each format formats the corresponding entry from the mapping.
-For example:
-
-\begin{verbatim}
->>> count = 2
->>> language = 'Python'
->>> print '%(language)s has %(count)03d quote types.' % vars()
-Python has 002 quote types.
-\end{verbatim}
-
-In this case no \code{*} specifiers may occur in a format (since they
-require a sequential parameter list).
-
-Additional string operations are defined in standard module
-\module{string} and in built-in module \module{re}.
-\refstmodindex{string}
-\refbimodindex{re}
-
-\subsubsection{Mutable Sequence Types}
-
-List objects support additional operations that allow in-place
-modification of the object.
-These operations would be supported by other mutable sequence types
-(when added to the language) as well.
-Strings and tuples are immutable sequence types and such objects cannot
-be modified once created.
-The following operations are defined on mutable sequence types (where
-\var{x} is an arbitrary object):
-\indexiii{mutable}{sequence}{types}
-\indexii{list}{type}
-
-\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
- \lineiii{\var{s}[\var{i}] = \var{x}}
- {item \var{i} of \var{s} is replaced by \var{x}}{}
- \lineiii{\var{s}[\var{i}:\var{j}] = \var{t}}
- {slice of \var{s} from \var{i} to \var{j} is replaced by \var{t}}{}
- \lineiii{del \var{s}[\var{i}:\var{j}]}
- {same as \code{\var{s}[\var{i}:\var{j}] = []}}{}
- \lineiii{\var{s}.append(\var{x})}
- {same as \code{\var{s}[len(\var{s}):len(\var{s})] = [\var{x}]}}{}
- \lineiii{\var{s}.count(\var{x})}
- {return number of \var{i}'s for which \code{\var{s}[\var{i}] == \var{x}}}{}
- \lineiii{\var{s}.index(\var{x})}
- {return smallest \var{i} such that \code{\var{s}[\var{i}] == \var{x}}}{(1)}
- \lineiii{\var{s}.insert(\var{i}, \var{x})}
- {same as \code{\var{s}[\var{i}:\var{i}] = [\var{x}]}
- if \code{\var{i} >= 0}}{}
- \lineiii{\var{s}.remove(\var{x})}
- {same as \code{del \var{s}[\var{s}.index(\var{x})]}}{(1)}
- \lineiii{\var{s}.reverse()}
- {reverses the items of \var{s} in place}{(3)}
- \lineiii{\var{s}.sort()}
- {sort the items of \var{s} in place}{(2), (3)}
-\end{tableiii}
-\indexiv{operations on}{mutable}{sequence}{types}
-\indexiii{operations on}{sequence}{types}
-\indexiii{operations on}{list}{type}
-\indexii{subscript}{assignment}
-\indexii{slice}{assignment}
-\stindex{del}
-\setindexsubitem{(list method)}
-\ttindex{append}
-\ttindex{count}
-\ttindex{index}
-\ttindex{insert}
-\ttindex{remove}
-\ttindex{reverse}
-\ttindex{sort}
-
-\noindent
-Notes:
-\begin{description}
-\item[(1)] Raises an exception when \var{x} is not found in \var{s}.
-
-\item[(2)] The \code{sort()} method takes an optional argument
- specifying a comparison function of two arguments (list items) which
- should return \code{-1}, \code{0} or \code{1} depending on whether the
- first argument is considered smaller than, equal to, or larger than the
- second argument. Note that this slows the sorting process down
- considerably; e.g. to sort a list in reverse order it is much faster
- to use calls to \code{sort()} and \code{reverse()} than to use
- \code{sort()} with a comparison function that reverses the ordering of
- the elements.
-
-\item[(3)] The \code{sort()} and \code{reverse()} methods modify the
-list in place for economy of space when sorting or reversing a large
-list. They don't return the sorted or reversed list to remind you of
-this side effect.
-
-\end{description}
-
-
-\subsection{Mapping Types}
-\label{typesmapping}
-
-A \dfn{mapping} object maps values of one type (the key type) to
-arbitrary objects. Mappings are mutable objects. There is currently
-only one standard mapping type, the \dfn{dictionary}. A dictionary's keys are
-almost arbitrary values. The only types of values not acceptable as
-keys are values containing lists or dictionaries or other mutable
-types that are compared by value rather than by object identity.
-Numeric types used for keys obey the normal rules for numeric
-comparison: if two numbers compare equal (e.g. \code{1} and
-\code{1.0}) then they can be used interchangeably to index the same
-dictionary entry.
-
-\indexii{mapping}{types}
-\indexii{dictionary}{type}
-
-Dictionaries are created by placing a comma-separated list of
-\code{\var{key}: \var{value}} pairs within braces, for example:
-\code{\{'jack': 4098, 'sjoerd': 4127\}} or
-\code{\{4098: 'jack', 4127: 'sjoerd'\}}.
-
-The following operations are defined on mappings (where \var{a} is a
-mapping, \var{k} is a key and \var{x} is an arbitrary object):
-
-\begin{tableiii}{c|l|c}{code}{Operation}{Result}{Notes}
- \lineiii{len(\var{a})}{the number of items in \var{a}}{}
- \lineiii{\var{a}[\var{k}]}{the item of \var{a} with key \var{k}}{(1)}
- \lineiii{\var{a}[\var{k}] = \var{x}}{set \code{\var{a}[\var{k}]} to \var{x}}{}
- \lineiii{del \var{a}[\var{k}]}{remove \code{\var{a}[\var{k}]} from \var{a}}{(1)}
- \lineiii{\var{a}.clear()}{remove all items from \code{a}}{}
- \lineiii{\var{a}.copy()}{a (shallow) copy of \code{a}}{}
- \lineiii{\var{a}.has_key(\var{k})}{\code{1} if \var{a} has a key \var{k}, else \code{0}}{}
- \lineiii{\var{a}.items()}{a copy of \var{a}'s list of (key, item) pairs}{(2)}
- \lineiii{\var{a}.keys()}{a copy of \var{a}'s list of keys}{(2)}
- \lineiii{\var{a}.update(\var{b})}{\code{for k, v in \var{b}.items(): \var{a}[k] = v}}{(3)}
- \lineiii{\var{a}.values()}{a copy of \var{a}'s list of values}{(2)}
- \lineiii{\var{a}.get(\var{k}\optional{, \var{f}})}{the item of \var{a} with key \var{k}}{(4)}
-\end{tableiii}
-\indexiii{operations on}{mapping}{types}
-\indexiii{operations on}{dictionary}{type}
-\stindex{del}
-\bifuncindex{len}
-\setindexsubitem{(dictionary method)}
-\ttindex{keys}
-\ttindex{has_key}
-
-\noindent
-Notes:
-\begin{description}
-\item[(1)] Raises an exception if \var{k} is not in the map.
-
-\item[(2)] Keys and values are listed in random order.
-
-\item[(3)] \var{b} must be of the same type as \var{a}.
-
-\item[(4)] Never raises an exception if \var{k} is not in the map,
-instead it returns \var{f}. \var{f} is optional, when not provided
-and \var{k} is not in the map, \code{None} is returned.
-\end{description}
-
-
-\subsection{Other Built-in Types}
-\label{typesother}
-
-The interpreter supports several other kinds of objects.
-Most of these support only one or two operations.
-
-\subsubsection{Modules}
-
-The only special operation on a module is attribute access:
-\code{\var{m}.\var{name}}, where \var{m} is a module and \var{name}
-accesses a name defined in \var{m}'s symbol table. Module attributes
-can be assigned to. (Note that the \code{import} statement is not,
-strictly spoking, an operation on a module object; \code{import
-\var{foo}} does not require a module object named \var{foo} to exist,
-rather it requires an (external) \emph{definition} for a module named
-\var{foo} somewhere.)
-
-A special member of every module is \code{__dict__}.
-This is the dictionary containing the module's symbol table.
-Modifying this dictionary will actually change the module's symbol
-table, but direct assignment to the \code{__dict__} attribute is not
-possible (i.e., you can write \code{\var{m}.__dict__['a'] = 1}, which
-defines \code{\var{m}.a} to be \code{1}, but you can't write
-\code{\var{m}.__dict__ = \{\}}.
-
-Modules are written like this: \code{<module 'sys'>}.
-
-\subsubsection{Classes and Class Instances}
-\nodename{Classes and Instances}
-
-See Chapters 3 and 7 of the \emph{Python Reference Manual} for these.
-
-\subsubsection{Functions}
-
-Function objects are created by function definitions. The only
-operation on a function object is to call it:
-\code{\var{func}(\var{argument-list})}.
-
-There are really two flavors of function objects: built-in functions
-and user-defined functions. Both support the same operation (to call
-the function), but the implementation is different, hence the
-different object types.
-
-The implementation adds two special read-only attributes:
-\code{\var{f}.func_code} is a function's \dfn{code
-object}\obindex{code} (see below) and \code{\var{f}.func_globals} is
-the dictionary used as the function's global name space (this is the
-same as \code{\var{m}.__dict__} where \var{m} is the module in which
-the function \var{f} was defined).
-
-
-\subsubsection{Methods}
-\obindex{method}
-
-Methods are functions that are called using the attribute notation.
-There are two flavors: built-in methods (such as \code{append()} on
-lists) and class instance methods. Built-in methods are described
-with the types that support them.
-
-The implementation adds two special read-only attributes to class
-instance methods: \code{\var{m}.im_self} is the object whose method this
-is, and \code{\var{m}.im_func} is the function implementing the method.
-Calling \code{\var{m}(\var{arg-1}, \var{arg-2}, {\rm \ldots},
-\var{arg-n})} is completely equivalent to calling
-\code{\var{m}.im_func(\var{m}.im_self, \var{arg-1}, \var{arg-2}, {\rm
-\ldots}, \var{arg-n})}.
-
-See the \emph{Python Reference Manual} for more information.
-
-\subsubsection{Code Objects}
-\obindex{code}
-
-Code objects are used by the implementation to represent
-``pseudo-compiled'' executable Python code such as a function body.
-They differ from function objects because they don't contain a
-reference to their global execution environment. Code objects are
-returned by the built-in \code{compile()} function and can be
-extracted from function objects through their \code{func_code}
-attribute.
-\bifuncindex{compile}
-\ttindex{func_code}
-
-A code object can be executed or evaluated by passing it (instead of a
-source string) to the \code{exec} statement or the built-in
-\code{eval()} function.
-\stindex{exec}
-\bifuncindex{eval}
-
-See the \emph{Python Reference Manual} for more information.
-
-\subsubsection{Type Objects}
-\label{bltin-type-objects}
-
-Type objects represent the various object types. An object's type is
-accessed by the built-in function \code{type()}. There are no special
-operations on types. The standard module \code{types} defines names
-for all standard built-in types.
-\bifuncindex{type}
-\refstmodindex{types}
-
-Types are written like this: \code{<type 'int'>}.
-
-\subsubsection{The Null Object}
-\label{bltin-null-object}
-
-This object is returned by functions that don't explicitly return a
-value. It supports no special operations. There is exactly one null
-object, named \code{None} (a built-in name).
-
-It is written as \code{None}.
-
-\subsubsection{File Objects}
-\label{bltin-file-objects}
-
-File objects are implemented using \C{}'s \code{stdio} package and can be
-created with the built-in function \code{open()} described under
-Built-in Functions below. They are also returned by some other
-built-in functions and methods, e.g.\ \code{posix.popen()} and
-\code{posix.fdopen()} and the \code{makefile()} method of socket
-objects.
-\bifuncindex{open}
-\refbimodindex{posix}
-\refbimodindex{socket}
-
-When a file operation fails for an I/O-related reason, the exception
-\code{IOError} is raised. This includes situations where the
-operation is not defined for some reason, like \code{seek()} on a tty
-device or writing a file opened for reading.
-
-Files have the following methods:
-
-
-\begin{methoddesc}[file]{close}{}
- Close the file. A closed file cannot be read or written anymore.
-\end{methoddesc}
-
-\begin{methoddesc}[file]{flush}{}
- Flush the internal buffer, like \code{stdio}'s \code{fflush()}.
-\end{methoddesc}
-
-\begin{methoddesc}[file]{isatty}{}
- Return \code{1} if the file is connected to a tty(-like) device, else
- \code{0}.
-\end{methoddesc}
-
-\begin{methoddesc}[file]{fileno}{}
-Return the integer ``file descriptor'' that is used by the underlying
-implementation to request I/O operations from the operating system.
-This can be useful for other, lower level interfaces that use file
-descriptors, e.g. module \code{fcntl} or \code{os.read()} and friends.
-\refbimodindex{fcntl}
-\end{methoddesc}
-
-\begin{methoddesc}[file]{read}{\optional{size}}
- Read at most \var{size} bytes from the file (less if the read hits
- \EOF{} or no more data is immediately available on a pipe, tty or
- similar device). If the \var{size} argument is negative or omitted,
- read all data until \EOF{} is reached. The bytes are returned as a string
- object. An empty string is returned when \EOF{} is encountered
- immediately. (For certain files, like ttys, it makes sense to
- continue reading after an \EOF{} is hit.)
-\end{methoddesc}
-
-\begin{methoddesc}[file]{readline}{\optional{size}}
- Read one entire line from the file. A trailing newline character is
- kept in the string%
-\footnote{The advantage of leaving the newline on is that an empty string
- can be returned to mean \EOF{} without being ambiguous. Another
- advantage is that (in cases where it might matter, e.g. if you
- want to make an exact copy of a file while scanning its lines)
- you can tell whether the last line of a file ended in a newline
- or not (yes this happens!).}
- (but may be absent when a file ends with an
- incomplete line). If the \var{size} argument is present and
- non-negative, it is a maximum byte count (including the trailing
- newline) and an incomplete line may be returned.
- An empty string is returned when \EOF{} is hit
- immediately. Note: unlike \code{stdio}'s \cfunction{fgets()}, the returned
- string contains null characters (\code{'\e 0'}) if they occurred in the
- input.
-\end{methoddesc}
-
-\begin{methoddesc}[file]{readlines}{\optional{sizehint}}
- Read until \EOF{} using \method{readline()} and return a list containing
- the lines thus read. If the optional \var{sizehint} argument is
- present, instead of reading up to \EOF{}, whole lines totalling
- approximately \var{sizehint} bytes (possibly after rounding up to an
- internal buffer size) are read.
-\end{methoddesc}
-
-\begin{methoddesc}[file]{seek}{offset, whence}
- Set the file's current position, like \code{stdio}'s \cfunction{fseek()}.
- The \var{whence} argument is optional and defaults to \code{0}
- (absolute file positioning); other values are \code{1} (seek
- relative to the current position) and \code{2} (seek relative to the
- file's end). There is no return value.
-\end{methoddesc}
-
-\begin{methoddesc}[file]{tell}{}
- Return the file's current position, like \code{stdio}'s
- \cfunction{ftell()}.
-\end{methoddesc}
-
-\begin{methoddesc}[file]{truncate}{\optional{size}}
-Truncate the file's size. If the optional size argument present, the
-file is truncated to (at most) that size. The size defaults to the
-current position. Availability of this function depends on the
-operating system version (e.g., not all \UNIX{} versions support this
-operation).
-\end{methoddesc}
-
-\begin{methoddesc}[file]{write}{str}
-Write a string to the file. There is no return value. Note: due to
-buffering, the string may not actually show up in the file until
-the \method{flush()} or \method{close()} method is called.
-\end{methoddesc}
-
-\begin{methoddesc}[file]{writelines}{list}
-Write a list of strings to the file. There is no return value.
-(The name is intended to match \method{readlines()};
-\method{writelines()} does not add line separators.)
-\end{methoddesc}
-
-
-File objects also offer the following attributes:
-
-\begin{memberdesc}[file]{closed}
-Boolean indicating the current state of the file object. This is a
-read-only attribute; the \method{close()} method changes the value.
-\end{memberdesc}
-
-\begin{memberdesc}[file]{mode}
-The I/O mode for the file. If the file was created using the
-\function{open()} built-in function, this will be the value of the
-\var{mode} parameter. This is a read-only attribute.
-\end{memberdesc}
-
-\begin{memberdesc}[file]{name}
-If the file object was created using \function{open()}, the name of
-the file. Otherwise, some string that indicates the source of the
-file object, of the form \samp{<\mbox{\ldots}>}. This is a read-only
-attribute.
-\end{memberdesc}
-
-\begin{memberdesc}[file]{softspace}
-Boolean that indicates whether a space character needs to be printed
-before another value when using the \keyword{print} statement.
-Classes that are trying to simulate a file object should also have a
-writable \member{softspace} attribute, which should be initialized to
-zero. This will be automatic for classes implemented in Python; types
-implemented in \C{} will have to provide a writable \member{softspace}
-attribute.
-\end{memberdesc}
-
-\subsubsection{Internal Objects}
-
-See the \emph{Python Reference Manual} for this information. It
-describes code objects, stack frame objects, traceback objects, and
-slice objects.
-
-
-\subsection{Special Attributes}
-\label{specialattrs}
-
-The implementation adds a few special read-only attributes to several
-object types, where they are relevant:
-
-\begin{itemize}
-
-\item
-\code{\var{x}.__dict__} is a dictionary of some sort used to store an
-object's (writable) attributes;
-
-\item
-\code{\var{x}.__methods__} lists the methods of many built-in object types,
-e.g., \code{[].__methods__} yields
-\code{['append', 'count', 'index', 'insert', 'remove', 'reverse', 'sort']};
-
-\item
-\code{\var{x}.__members__} lists data attributes;
-
-\item
-\code{\var{x}.__class__} is the class to which a class instance belongs;
-
-\item
-\code{\var{x}.__bases__} is the tuple of base classes of a class object.
-
-\end{itemize}
diff --git a/Doc/libtypes2.tex b/Doc/libtypes2.tex
deleted file mode 100644
index a9bba64..0000000
--- a/Doc/libtypes2.tex
+++ /dev/null
@@ -1,127 +0,0 @@
-\section{Standard Module \module{types}}
-\label{module-types}
-\stmodindex{types}
-
-
-This module defines names for all object types that are used by the
-standard Python interpreter, but not for the types defined by various
-extension modules. It is safe to use \samp{from types import *} ---
-the module does not export any names besides the ones listed here.
-New names exported by future versions of this module will all end in
-\samp{Type}.
-
-Typical use is for functions that do different things depending on
-their argument types, like the following:
-
-\begin{verbatim}
-from types import *
-def delete(list, item):
- if type(item) is IntType:
- del list[item]
- else:
- list.remove(item)
-\end{verbatim}
-
-The module defines the following names:
-
-\begin{datadesc}{NoneType}
-The type of \code{None}.
-\end{datadesc}
-
-\begin{datadesc}{TypeType}
-The type of type objects (such as returned by
-\function{type()}\bifuncindex{type}).
-\end{datadesc}
-
-\begin{datadesc}{IntType}
-The type of integers (e.g. \code{1}).
-\end{datadesc}
-
-\begin{datadesc}{LongType}
-The type of long integers (e.g. \code{1L}).
-\end{datadesc}
-
-\begin{datadesc}{FloatType}
-The type of floating point numbers (e.g. \code{1.0}).
-\end{datadesc}
-
-\begin{datadesc}{StringType}
-The type of character strings (e.g. \code{'Spam'}).
-\end{datadesc}
-
-\begin{datadesc}{TupleType}
-The type of tuples (e.g. \code{(1, 2, 3, 'Spam')}).
-\end{datadesc}
-
-\begin{datadesc}{ListType}
-The type of lists (e.g. \code{[0, 1, 2, 3]}).
-\end{datadesc}
-
-\begin{datadesc}{DictType}
-The type of dictionaries (e.g. \code{\{'Bacon': 1, 'Ham': 0\}}).
-\end{datadesc}
-
-\begin{datadesc}{DictionaryType}
-An alternate name for \code{DictType}.
-\end{datadesc}
-
-\begin{datadesc}{FunctionType}
-The type of user-defined functions and lambdas.
-\end{datadesc}
-
-\begin{datadesc}{LambdaType}
-An alternate name for \code{FunctionType}.
-\end{datadesc}
-
-\begin{datadesc}{CodeType}
-The type for code objects such as returned by
-\function{compile()}\bifuncindex{compile}.
-\end{datadesc}
-
-\begin{datadesc}{ClassType}
-The type of user-defined classes.
-\end{datadesc}
-
-\begin{datadesc}{InstanceType}
-The type of instances of user-defined classes.
-\end{datadesc}
-
-\begin{datadesc}{MethodType}
-The type of methods of user-defined class instances.
-\end{datadesc}
-
-\begin{datadesc}{UnboundMethodType}
-An alternate name for \code{MethodType}.
-\end{datadesc}
-
-\begin{datadesc}{BuiltinFunctionType}
-The type of built-in functions like \function{len()} or
-\function{sys.exit()}.
-\end{datadesc}
-
-\begin{datadesc}{BuiltinMethodType}
-An alternate name for \code{BuiltinFunction}.
-\end{datadesc}
-
-\begin{datadesc}{ModuleType}
-The type of modules.
-\end{datadesc}
-
-\begin{datadesc}{FileType}
-The type of open file objects such as \code{sys.stdout}.
-\end{datadesc}
-
-\begin{datadesc}{XRangeType}
-The type of range objects returned by
-\function{xrange()}\bifuncindex{xrange}.
-\end{datadesc}
-
-\begin{datadesc}{TracebackType}
-The type of traceback objects such as found in
-\code{sys.exc_traceback}.
-\end{datadesc}
-
-\begin{datadesc}{FrameType}
-The type of frame objects such as found in \code{tb.tb_frame} if
-\code{tb} is a traceback object.
-\end{datadesc}
diff --git a/Doc/libundoc.tex b/Doc/libundoc.tex
deleted file mode 100644
index f807fec..0000000
--- a/Doc/libundoc.tex
+++ /dev/null
@@ -1,312 +0,0 @@
-\chapter{Undocumented Modules}
-\label{undoc}
-
-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{Frameworks; somewhat harder to document, but well worth the effort}
-
-\begin{description}
-\item[Tkinter.py]
---- Interface to Tcl/Tk for graphical user interfaces;
-Fredrik Lundh is working on this one!
-
-\item[Tkdnd.py]
---- Drag-and-drop support for \module{Tkinter}.
-
-\item[CGIHTTPServer.py]
---- CGI-savvy HTTP Server
-
-\item[SimpleHTTPServer.py]
---- Simple HTTP Server
-\end{description}
-
-
-\section{Stuff useful to a lot of people, including the CGI crowd}
-
-\begin{description}
-\item[MimeWriter.py]
---- Generic MIME writer
-
-\item[multifile.py]
---- make each part of a multipart message ``feel'' like
-
-\item[smtplib.py]
---- Simple Mail Transfer Protocol (SMTP) client code.
-\end{description}
-
-
-\section{Miscellaneous useful utilities}
-
-Some of these are very old and/or not very robust; marked with ``hmm''.
-
-\begin{description}
-\item[ConfigParser.py]
---- Parse a file of sectioned configuration parameters
-
-\item[cmp.py]
---- Efficiently compare files
-
-\item[cmpcache.py]
---- Efficiently compare files (uses statcache)
-
-\item[dircache.py]
---- like os.listdir, but caches results
-
-\item[dircmp.py]
---- class to build directory diff tools on
-
-\item[getpass.py]
---- Utilities to get a password and/or the current user name.
-
-\item[linecache.py]
---- Cache lines from files (used by pdb)
-
-\item[pipes.py]
---- Conversion pipeline templates (hmm)
-
-\item[statcache.py]
---- Maintain a cache of file stats
-
-\item[colorsys.py]
---- Conversion between RGB and other color systems
-
-\item[dbhash.py]
---- (g)dbm-like wrapper for bsdhash.hashopen
-
-\item[mhlib.py]
---- MH interface
-
-\item[pty.py]
---- Pseudo terminal utilities
-
-\item[tty.py]
---- Terminal utilities
-
-\item[cmd.py]
---- build line-oriented command interpreters (used by pdb)
-
-\item[bdb.py]
---- A generic Python debugger base class (used by pdb)
-
-\item[wdb.py]
---- A primitive windowing debugger based on STDWIN.
-
-\item[ihooks.py]
---- Import hook support (for rexec)
-\end{description}
-
-
-\section{Parsing Python}
-
-(One could argue that these should all be documented together with the
-parser module.)
-
-\begin{description}
-\item[tokenize.py]
---- regular expression that recognizes Python tokens; also
-contains helper code for colorizing Python source code.
-
-\item[pyclbr.py]
---- Parse a Python file and retrieve classes and methods
-\end{description}
-
-
-\section{Platform specific modules}
-
-\begin{description}
-\item[ntpath.py]
---- equivalent of posixpath on 32-bit Windows
-
-\item[dospath.py]
---- equivalent of posixpath on MS-DOS
-\end{description}
-
-
-\section{Code objects and files, debugger etc.}
-
-\begin{description}
-\item[compileall.py]
---- force "compilation" of all .py files in a directory
-
-\item[py_compile.py]
---- "compile" a .py file to a .pyc file
-
-\item[repr.py]
---- Redo the `...` (representation) but with limits on most
-sizes (used by pdb)
-\end{description}
-
-
-\section{Multimedia}
-
-\begin{description}
-\item[audiodev.py]
---- Plays audio files
-
-\item[sunau.py]
---- parse Sun and NeXT audio files
-
-\item[sunaudio.py]
---- interpret sun audio headers
-
-\item[toaiff.py]
---- Convert "arbitrary" sound files to AIFF files
-
-\item[sndhdr.py]
---- recognizing sound files
-
-\item[wave.py]
---- parse WAVE files
-
-\item[whatsound.py]
---- recognizing sound files
-\end{description}
-
-
-\section{Oddities}
-
-These modules are probably also obsolete, or just not very useful.
-
-\begin{description}
-\item[dump.py]
---- Print python code that reconstructs a variable
-
-\item[find.py]
---- find files matching pattern in directory tree
-
-\item[fpformat.py]
---- General floating point formatting functions ---
-interesting demonstration of how to do this without using the \C{}
-library
-
-\item[grep.py]
---- grep
-
-\item[mutex.py]
---- Mutual exclusion --- for use with module sched
-
-\item[packmail.py]
---- create a self-unpacking \UNIX{} shell archive
-
-\item[poly.py]
---- Polynomials
-
-\item[sched.py]
---- event scheduler class
-
-\item[shutil.py]
---- utility functions usable in a shell-like program
-
-\item[util.py]
---- useful functions that don't fit elsewhere
-
-\item[zmod.py]
---- Compute properties of mathematical "fields"
-
-\item[tzparse.py]
---- Parse a timezone specification (unfinished)
-\end{description}
-
-
-\section{Obsolete}
-
-These modules are not on the standard module search path;
-\indexiii{module}{search}{path}
-but are available in the directory \file{lib-old/} installed under
-\file{\textrm{\$prefix}/lib/python1.5/}. To use any of these
-modules, add that directory to \code{sys.path}, possibly using
-\envvar{PYTHONPATH}.
-
-\begin{description}
-\item[newdir.py]
---- New dir() function (the standard dir() is now just as good)
-
-\item[addpack.py]
---- standard support for "packages"
-
-\item[fmt.py]
---- text formatting abstractions (too slow)
-
-\item[Para.py]
---- helper for fmt.py
-
-\item[lockfile.py]
---- wrapper around FCNTL file locking (use
-fcntl.lockf/flock intead)
-
-\item[tb.py]
---- Print tracebacks, with a dump of local variables (use
-pdb.pm() or traceback.py instead)
-
-\item[codehack.py]
---- extract function name or line number from a function
-code object (these are now accessible as attributes: co.co_name,
-func.func_name, co.co_firstlineno)
-\end{description}
-
-The following modules were documented in previous versions of this
-manual, but are now considered obsolete:
-
-\begin{description}
-\item[ni]
---- Import modules in ``packages.''
-
-\item[rand]
---- Old interface to the random number generator.
-
-\item[soundex]
---- Algorithm for collapsing names which sound similar to a shared
-key. (This is an extension module.)
-\end{description}
-
-
-\section{Extension modules}
-
-\begin{description}
-\item[bsddbmodule.c]
---- Interface to the Berkeley DB interface (yet another
-dbm clone).
-
-\item[cursesmodule.c]
---- Curses interface.
-
-\item[dlmodule.c]
---- A highly experimental and dangerous device for calling
-arbitrary C functions in arbitrary shared libraries.
-
-\item[newmodule.c]
---- Tommy Burnette's `new' module (creates new empty objects of
-certain kinds) --- dangerous.
-
-\item[nismodule.c]
---- NIS (a.k.a. Sun's Yellow Pages) interface.
-
-\item[timingmodule.c]
---- Measure time intervals to high resolution (obsolete --- use
-time.clock() instead).
-
-\item[stdwinmodule.c]
---- Interface to STDWIN (an old, unsupported
-platform-independent GUI package). Obsolete; use Tkinter for a
-platform-independent GUI instead.
-
-The following are SGI specific:
-
-\item[clmodule.c]
---- Interface to the SGI compression library.
-
-\item[svmodule.c]
---- Interface to the ``simple video'' board on SGI Indigo
-(obsolete hardware).
-
-The following is Windows specific:
-
-\item[msvcrtmodule.c]
-(in directory \file{PC/}) --- define a number of Windows
-specific goodies like \code{khbit()}, \code{getch()} and
-\code{setmode()}. (Windows 95 and NT only.)
-\end{description}
diff --git a/Doc/libunix.tex b/Doc/libunix.tex
deleted file mode 100644
index c836515..0000000
--- a/Doc/libunix.tex
+++ /dev/null
@@ -1,58 +0,0 @@
-\chapter{Unix Specific Services}
-\label{unix}
-
-The modules described in this chapter provide interfaces to features
-that are unique to the \UNIX{} operating system, or in some cases to
-some or many variants of it. Here's an overview:
-
-\begin{description}
-
-\item[posix]
---- The most common \POSIX{} system calls (normally used via module
-\module{os}).
-
-\item[posixpath]
---- Common \POSIX{} pathname manipulations (normally used via \code{os.path}).
-
-\item[pwd]
---- The password database (\function{getpwnam()} and friends).
-
-\item[grp]
---- The group database (\function{getgrnam()} and friends).
-
-\item[crypt]
---- The \cfunction{crypt()} function used to check \UNIX{} passwords.
-
-\item[dbm]
---- The standard ``database'' interface, based on \code{ndbm}.
-
-\item[gdbm]
---- GNU's reinterpretation of dbm.
-
-\item[termios]
---- \POSIX{} style tty control.
-
-\item[TERMIOS]
---- The symbolic constants required to use the \module{termios} module.
-
-\item[fcntl]
---- The \function{fcntl()} and \function{ioctl()} system calls.
-
-\item[posixfile]
---- A file-like object with support for locking.
-
-\item[resource]
---- An interface to provide resource usage information on the current
-process.
-
-\item[syslog]
---- An interface to the \UNIX{} \code{syslog} library routines.
-
-\item[stat]
---- Constants and functions for interpreting the results of
-\function{os.stat()}, \function{os.lstat()} and \function{os.fstat()}.
-
-\item[commands]
---- Wrapper functions for \function{os.popen()}.
-
-\end{description}
diff --git a/Doc/liburllib.tex b/Doc/liburllib.tex
deleted file mode 100644
index 8995798..0000000
--- a/Doc/liburllib.tex
+++ /dev/null
@@ -1,132 +0,0 @@
-\section{Standard Module \module{urllib}}
-\label{module-urllib}
-\stmodindex{urllib}
-\index{WWW}
-\index{World-Wide Web}
-\index{URL}
-
-
-This module provides a high-level interface for fetching data across
-the World-Wide Web. In particular, the \function{urlopen()} function
-is similar to the built-in function \function{open()}, but accepts
-Universal Resource Locators (URLs) instead of filenames. Some
-restrictions apply --- it can only open URLs for reading, and no seek
-operations are available.
-
-It defines the following public functions:
-
-\begin{funcdesc}{urlopen}{url}
-Open a network object denoted by a URL for reading. If the URL does
-not have a scheme identifier, or if it has \file{file:} as its scheme
-identifier, this opens a local file; otherwise it opens a socket to a
-server somewhere on the network. If the connection cannot be made, or
-if the server returns an error code, the \exception{IOError} exception
-is raised. If all went well, a file-like object is returned. This
-supports the following methods: \method{read()}, \method{readline()},
-\method{readlines()}, \method{fileno()}, \method{close()} and
-\method{info()}.
-Except for the last one, these methods have the same interface as for
-file objects --- see section \ref{bltin-file-objects} in this
-manual. (It is not a built-in file object, however, so it can't be
-used at those few places where a true built-in file object is
-required.)
-
-The \method{info()} method returns an instance of the class
-\class{mimetools.Message} containing the headers received from the
-server, if the protocol uses such headers (currently the only
-supported protocol that uses this is HTTP). See the description of
-the \module{mimetools}\refstmodindex{mimetools} module.
-\end{funcdesc}
-
-\begin{funcdesc}{urlretrieve}{url}
-Copy a network object denoted by a URL to a local file, if necessary.
-If the URL points to a local file, or a valid cached copy of the
-object exists, the object is not copied. Return a tuple
-\code{(\var{filename}, \var{headers})} where \var{filename} is the
-local file name under which the object can be found, and \var{headers}
-is either \code{None} (for a local object) or whatever the
-\method{info()} method of the object returned by \function{urlopen()}
-returned (for a remote object, possibly cached). Exceptions are the
-same as for \function{urlopen()}.
-\end{funcdesc}
-
-\begin{funcdesc}{urlcleanup}{}
-Clear the cache that may have been built up by previous calls to
-\function{urlretrieve()}.
-\end{funcdesc}
-
-\begin{funcdesc}{quote}{string\optional{, addsafe}}
-Replace special characters in \var{string} using the \samp{\%xx} escape.
-Letters, digits, and the characters \character{_,.-} are never quoted.
-The optional \var{addsafe} parameter specifies additional characters
-that should not be quoted --- its default value is \code{'/'}.
-
-Example: \code{quote('/\~connolly/')} yields \code{'/\%7econnolly/'}.
-\end{funcdesc}
-
-\begin{funcdesc}{quote_plus}{string\optional{, addsafe}}
-Like \function{quote()}, but also replaces spaces by plus signs, as
-required for quoting HTML form values.
-\end{funcdesc}
-
-\begin{funcdesc}{unquote}{string}
-Replace \samp{\%xx} escapes by their single-character equivalent.
-
-Example: \code{unquote('/\%7Econnolly/')} yields \code{'/\~connolly/'}.
-\end{funcdesc}
-
-\begin{funcdesc}{unquote_plus}{string}
-Like \function{unquote()}, but also replaces plus signs by spaces, as
-required for unquoting HTML form values.
-\end{funcdesc}
-
-Restrictions:
-
-\begin{itemize}
-
-\item
-Currently, only the following protocols are supported: HTTP, (versions
-0.9 and 1.0), Gopher (but not Gopher-+), FTP, and local files.
-\indexii{HTTP}{protocol}
-\indexii{Gopher}{protocol}
-\indexii{FTP}{protocol}
-
-\item
-The caching feature of \function{urlretrieve()} has been disabled
-until I find the time to hack proper processing of Expiration time
-headers.
-
-\item
-There should be a function to query whether a particular URL is in
-the cache.
-
-\item
-For backward compatibility, if a URL appears to point to a local file
-but the file can't be opened, the URL is re-interpreted using the FTP
-protocol. This can sometimes cause confusing error messages.
-
-\item
-The \function{urlopen()} and \function{urlretrieve()} functions can
-cause arbitrarily long delays while waiting for a network connection
-to be set up. This means that it is difficult to build an interactive
-web client using these functions without using threads.
-
-\item
-The data returned by \function{urlopen()} or \function{urlretrieve()}
-is the raw data returned by the server. This may be binary data
-(e.g. an image), plain text or (for example) HTML. The HTTP protocol
-provides type information in the reply header, which can be inspected
-by looking at the \code{content-type} header. For the Gopher protocol,
-type information is encoded in the URL; there is currently no easy way
-to extract it. If the returned data is HTML, you can use the module
-\module{htmllib}\refstmodindex{htmllib} to parse it.
-\index{HTML}
-\indexii{HTTP}{protocol}
-\indexii{Gopher}{protocol}
-
-\item
-Although the \module{urllib} module contains (undocumented) routines
-to parse and unparse URL strings, the recommended interface for URL
-manipulation is in module \module{urlparse}\refstmodindex{urlparse}.
-
-\end{itemize}
diff --git a/Doc/liburlparse.tex b/Doc/liburlparse.tex
deleted file mode 100644
index 3d98688..0000000
--- a/Doc/liburlparse.tex
+++ /dev/null
@@ -1,84 +0,0 @@
-\section{Standard Module \module{urlparse}}
-\label{module-urlparse}
-\stmodindex{urlparse}
-\index{WWW}
-\index{World-Wide Web}
-\index{URL}
-\indexii{URL}{parsing}
-\indexii{relative}{URL}
-
-
-This module defines a standard interface to break URL strings up in
-components (addessing scheme, network location, path etc.), to combine
-the components back into a URL string, and to convert a ``relative
-URL'' to an absolute URL given a ``base URL''.
-
-The module has been designed to match the Internet RFC on Relative
-Uniform Resource Locators (and discovered a bug in an earlier
-draft!). Refer to \rfc{1808} for details on relative
-URLs and \rfc{1738} for information on basic URL syntax.
-
-It defines the following functions:
-
-\begin{funcdesc}{urlparse}{urlstring\optional{, default_scheme\optional{, allow_fragments}}}
-Parse a URL into 6 components, returning a 6-tuple: (addressing
-scheme, network location, path, parameters, query, fragment
-identifier). This corresponds to the general structure of a URL:
-\code{\var{scheme}://\var{netloc}/\var{path};\var{parameters}?\var{query}\#\var{fragment}}.
-Each tuple item is a string, possibly empty.
-The components are not broken up in smaller parts (e.g. the network
-location is a single string), and \% escapes are not expanded.
-The delimiters as shown above are not part of the tuple items,
-except for a leading slash in the \var{path} component, which is
-retained if present.
-
-Example:
-
-\begin{verbatim}
-urlparse('http://www.cwi.nl:80/%7Eguido/Python.html')
-\end{verbatim}
-%
-yields the tuple
-
-\begin{verbatim}
-('http', 'www.cwi.nl:80', '/%7Eguido/Python.html', '', '', '')
-\end{verbatim}
-%
-If the \var{default_scheme} argument is specified, it gives the
-default addressing scheme, to be used only if the URL string does not
-specify one. The default value for this argument is the empty string.
-
-If the \var{allow_fragments} argument is zero, fragment identifiers
-are not allowed, even if the URL's addressing scheme normally does
-support them. The default value for this argument is \code{1}.
-\end{funcdesc}
-
-\begin{funcdesc}{urlunparse}{tuple}
-Construct a URL string from a tuple as returned by \code{urlparse()}.
-This may result in a slightly different, but equivalent URL, if the
-URL that was parsed originally had redundant delimiters, e.g. a ? with
-an empty query (the draft states that these are equivalent).
-\end{funcdesc}
-
-\begin{funcdesc}{urljoin}{base, url\optional{, allow_fragments}}
-Construct a full (``absolute'') URL by combining a ``base URL''
-(\var{base}) with a ``relative URL'' (\var{url}). Informally, this
-uses components of the base URL, in particular the addressing scheme,
-the network location and (part of) the path, to provide missing
-components in the relative URL.
-
-Example:
-
-\begin{verbatim}
-urljoin('http://www.cwi.nl/%7Eguido/Python.html', 'FAQ.html')
-\end{verbatim}
-%
-yields the string
-
-\begin{verbatim}
-'http://www.cwi.nl/%7Eguido/FAQ.html'
-\end{verbatim}
-%
-The \var{allow_fragments} argument has the same meaning as for
-\code{urlparse()}.
-\end{funcdesc}
diff --git a/Doc/libuser.tex b/Doc/libuser.tex
deleted file mode 100644
index e545972..0000000
--- a/Doc/libuser.tex
+++ /dev/null
@@ -1,66 +0,0 @@
-\section{Standard Module \module{user}}
-\label{module-user}
-\stmodindex{user}
-\indexii{.pythonrc.py}{file}
-\indexiii{user}{configuration}{file}
-
-As a policy, Python doesn't run user-specified code on startup of
-Python programs. (Only interactive sessions execute the script
-specified in the \envvar{PYTHONSTARTUP} environment variable if it
-exists).
-
-However, some programs or sites may find it convenient to allow users
-to have a standard customization file, which gets run when a program
-requests it. This module implements such a mechanism. A program
-that wishes to use the mechanism must execute the statement
-
-\begin{verbatim}
-import user
-\end{verbatim}
-
-The \module{user} module looks for a file \file{.pythonrc.py} in the user's
-home directory and if it can be opened, exececutes it (using
-\function{execfile()}\bifuncindex{execfile}) in its own (i.e. the
-module \module{user}'s) global namespace. Errors during this phase
-are not caught; that's up to the program that imports the
-\module{user} module, if it wishes. The home directory is assumed to
-be named by the \envvar{HOME} environment variable; if this is not set,
-the current directory is used.
-
-The user's \file{.pythonrc.py} could conceivably test for
-\code{sys.version} if it wishes to do different things depending on
-the Python version.
-
-A warning to users: be very conservative in what you place in your
-\file{.pythonrc.py} file. Since you don't know which programs will
-use it, changing the behavior of standard modules or functions is
-generally not a good idea.
-
-A suggestion for programmers who wish to use this mechanism: a simple
-way to let users specify options for your package is to have them
-define variables in their \file{.pythonrc.py} file that you test in
-your module. For example, a module \module{spam} that has a verbosity
-level can look for a variable \code{user.spam_verbose}, as follows:
-
-\begin{verbatim}
-import user
-try:
- verbose = user.spam_verbose # user's verbosity preference
-except AttributeError:
- verbose = 0 # default verbosity
-\end{verbatim}
-
-Programs with extensive customization needs are better off reading a
-program-specific customization file.
-
-Programs with security or privacy concerns should \emph{not} import
-this module; a user can easily break into a a program by placing
-arbitrary code in the \file{.pythonrc.py} file.
-
-Modules for general use should \emph{not} import this module; it may
-interfere with the operation of the importing program.
-
-\begin{seealso}
-\seemodule{site}{site-wide customization mechanism}
-\refstmodindex{site}
-\end{seealso}
diff --git a/Doc/libuserdict.tex b/Doc/libuserdict.tex
deleted file mode 100644
index 3bde716..0000000
--- a/Doc/libuserdict.tex
+++ /dev/null
@@ -1,49 +0,0 @@
-\section{Standard Module \module{UserDict}}
-\stmodindex{UserDict}
-\label{module-UserDict}
-
-This module defines a class that acts as a wrapper around
-dictionary objects. It is a useful base class for
-your own dictionary-like classes, which can inherit from
-them and override existing methods or add new ones. In this way one
-can add new behaviours to dictionaries.
-
-The \module{UserDict} module defines the \class{UserDict} class:
-
-\begin{classdesc}{UserDict}{}
-Return a class instance that simulates a dictionary. The instance's
-contents are kept in a regular dictionary, which is accessible via the
-\member{data} attribute of \class{UserDict} instances.
-\end{classdesc}
-
-\begin{memberdesc}{data}
-A real dictionary used to store the contents of the \class{UserDict}
-class.
-\end{memberdesc}
-
-
-\section{Standard Module \module{UserList}}
-\stmodindex{UserList}
-\label{module-UserList}
-
-This module defines a class that acts as a wrapper around
-list objects. It is a useful base class for
-your own list-like classes, which can inherit from
-them and override existing methods or add new ones. In this way one
-can add new behaviours to lists.
-
-The \module{UserList} module defines the \class{UserList} class:
-
-\begin{classdesc}{UserList}{\optional{list}}
-Return a class instance that simulates a list. The instance's
-contents are kept in a regular list, which is accessible via the
-\member{data} attribute of \class{UserList} instances. The instance's
-contents are initially set to a copy of \var{list}, defaulting to the
-empty list \code{[]}. \var{list} can be either a regular Python list,
-or an instance of \class{UserList} (or a subclass).
-\end{classdesc}
-
-\begin{memberdesc}{data}
-A real Python list object used to store the contents of the
-\class{UserList} class.
-\end{memberdesc}
diff --git a/Doc/libuu.tex b/Doc/libuu.tex
deleted file mode 100644
index 5c9e06c..0000000
--- a/Doc/libuu.tex
+++ /dev/null
@@ -1,35 +0,0 @@
-\section{Standard Module \module{uu}}
-\label{module-uu}
-\stmodindex{uu}
-
-This module encodes and decodes files in uuencode format, allowing
-arbitrary binary data to be transferred over ascii-only connections.
-Wherever a file argument is expected, the methods accept a file-like
-object. For backwards compatibility, a string containing a pathname
-is also accepted, and the corresponding file will be opened for
-reading and writing; the pathname \code{'-'} is understood to mean the
-standard input or output. However, this interface is deprecated; it's
-better for the caller to open the file itself, and be sure that, when
-required, the mode is \code{'rb'} or \code{'wb'} on Windows or DOS.
-
-This code was contributed by Lance Ellinghouse, and modified by Jack
-Jansen.
-\index{Jansen, Jack}
-\index{Ellinghouse, Lance}
-
-The \module{uu} module defines the following functions:
-
-\begin{funcdesc}{encode}{in_file, out_file\optional{, name\optional{, mode}}}
-Uuencode file \var{in_file} into file \var{out_file}. The uuencoded
-file will have the header specifying \var{name} and \var{mode} as the
-defaults for the results of decoding the file. The default defaults
-are taken from \var{in_file}, or \code{'-'} and \code{0666}
-respectively.
-\end{funcdesc}
-
-\begin{funcdesc}{decode}{in_file\optional{, out_file\optional{, mode}}}
-This call decodes uuencoded file \var{in_file} placing the result on
-file \var{out_file}. If \var{out_file} is a pathname the \var{mode} is
-also set. Defaults for \var{out_file} and \var{mode} are taken from
-the uuencode header.
-\end{funcdesc}
diff --git a/Doc/libwhichdb.tex b/Doc/libwhichdb.tex
deleted file mode 100644
index 2caace2..0000000
--- a/Doc/libwhichdb.tex
+++ /dev/null
@@ -1,16 +0,0 @@
-\section{Standard Module \module{whichdb}}
-\label{module-whichdb}
-\stmodindex{whichdb}
-
-The single function in this module attempts to guess which of the
-several simple database modules available--dbm, gdbm, or
-dbhash--should be used to open a given file.
-
-\begin{funcdesc}{whichdb}{filename}
-Returns one of the following values: \code{None} if the file can't be
-opened because it's unreadable or doesn't exist; the empty string
-(\code{""}) if the file's format can't be guessed; or a string
-containing the required module name, such as \code{"dbm"} or
-\code{"gdbm"}.
-\end{funcdesc}
-
diff --git a/Doc/libwhrandom.tex b/Doc/libwhrandom.tex
deleted file mode 100644
index 0645b6f..0000000
--- a/Doc/libwhrandom.tex
+++ /dev/null
@@ -1,49 +0,0 @@
-\section{Standard Module \module{whrandom}}
-\label{module-whrandom}
-\stmodindex{whrandom}
-
-This module implements a Wichmann-Hill pseudo-random number generator
-class that is also named \code{whrandom}. Instances of the
-\code{whrandom} class have the following methods:
-
-\begin{funcdesc}{choice}{seq}
-Chooses a random element from the non-empty sequence \var{seq} and returns it.
-\end{funcdesc}
-
-\begin{funcdesc}{randint}{a, b}
-Returns a random integer \var{N} such that \code{\var{a}<=\var{N}<=\var{b}}.
-\end{funcdesc}
-
-\begin{funcdesc}{random}{}
-Returns the next random floating point number in the range [0.0 ... 1.0).
-\end{funcdesc}
-
-\begin{funcdesc}{seed}{x, y, z}
-Initializes the random number generator from the integers
-\var{x},
-\var{y}
-and
-\var{z}.
-When the module is first imported, the random number is initialized
-using values derived from the current time.
-\end{funcdesc}
-
-\begin{funcdesc}{uniform}{a, b}
-Returns a random real number \var{N} such that \code{\var{a}<=\var{N}<\var{b}}.
-\end{funcdesc}
-
-When imported, the \code{whrandom} module also creates an instance of
-the \code{whrandom} class, and makes the methods of that instance
-available at the module level. Therefore one can write either
-\code{N = whrandom.random()} or:
-\begin{verbatim}
-generator = whrandom.whrandom()
-N = generator.random()
-\end{verbatim}
-%
-\begin{seealso}
-\seemodule{random}{generators for various random distributions}
-\seetext{Wichmann, B. A. \& Hill, I. D., ``Algorithm AS 183:
-An efficient and portable pseudo-random number generator'',
-\emph{Applied Statistics} 31 (1982) 188-190}
-\end{seealso}
diff --git a/Doc/libwww.tex b/Doc/libwww.tex
deleted file mode 100644
index 5e698e4..0000000
--- a/Doc/libwww.tex
+++ /dev/null
@@ -1,99 +0,0 @@
-\chapter{Internet and WWW Services}
-\nodename{Internet and WWW}
-\label{www}
-\index{WWW}
-\index{Internet}
-\index{World-Wide Web}
-
-The modules described in this chapter provide various services to
-World-Wide Web (WWW) clients and/or services, and a few modules
-related to news and email. They are all implemented in Python. Some
-of these modules require the presence of the system-dependent module
-\code{sockets}\refbimodindex{socket}, which is currently only fully
-supported on \UNIX{} and Windows NT. Here is an overview:
-
-\begin{description}
-
-\item[cgi]
---- Common Gateway Interface, used to interpret forms in server-side
-scripts.
-
-\item[urllib]
---- Open an arbitrary object given by URL (requires sockets).
-
-\item[httplib]
---- HTTP protocol client (requires sockets).
-
-\item[ftplib]
---- FTP protocol client (requires sockets).
-
-\item[gopherlib]
---- Gopher protocol client (requires sockets).
-
-\item[poplib]
---- POP3 protocol client (requires sockets).
-
-\item[imaplib]
---- IMAP4 protocol client (requires sockets).
-
-\item[nntplib]
---- NNTP protocol client (requires sockets).
-
-\item[urlparse]
---- Parse a URL string into a tuple (addressing scheme identifier, network
-location, path, parameters, query string, fragment identifier).
-
-\item[sgmllib]
---- Only as much of an SGML parser as needed to parse HTML.
-
-\item[htmllib]
---- A parser for HTML documents.
-
-\item[xmllib]
---- A parser for XML documents.
-
-\item[formatter]
---- Generic output formatter and device interface.
-
-\item[rfc822]
---- Parse \rfc{822} style mail headers.
-
-\item[mimetools]
---- Tools for parsing MIME style message bodies.
-
-\item[binhex]
---- Encode and decode files in binhex4 format.
-
-\item[uu]
---- Encode and decode files in uuencode format.
-
-\item[binascii]
---- Tools for converting between binary and various ascii-encoded binary
-representation
-
-\item[xdrlib]
---- The External Data Representation Standard as described in \rfc{1014},
-written by Sun Microsystems, Inc. June 1987.
-
-\item[mailcap]
---- Mailcap file handling. See \rfc{1524}.
-
-\item[base64]
---- Encode/decode binary files using the MIME base64 encoding.
-
-\item[quopri]
---- Encode/decode binary files using the MIME quoted-printable encoding.
-
-\item[SocketServer]
---- A framework for network servers.
-
-\item[mailbox]
---- Read various mailbox formats.
-
-\item[mimify]
---- Mimification and unmimification of mail messages.
-
-\item[BaseHTTPServer]
---- Basic HTTP server (base class for SimpleHTTPServer and CGIHTTPServer).
-
-\end{description}
diff --git a/Doc/libxdrlib.tex b/Doc/libxdrlib.tex
deleted file mode 100644
index 56459f8..0000000
--- a/Doc/libxdrlib.tex
+++ /dev/null
@@ -1,232 +0,0 @@
-\section{Standard Module \module{xdrlib}}
-\label{module-xdrlib}
-\stmodindex{xdrlib}
-\index{XDR}
-\index{External Data Representation}
-
-
-
-The \module{xdrlib} module supports the External Data Representation
-Standard as described in \rfc{1014}, written by Sun Microsystems,
-Inc. June 1987. It supports most of the data types described in the
-RFC.
-
-The \module{xdrlib} module defines two classes, one for packing
-variables into XDR representation, and another for unpacking from XDR
-representation. There are also two exception classes.
-
-\begin{classdesc}{Packer}{}
-\class{Packer} is the class for packing data into XDR representation.
-The \class{Packer} class is instantiated with no arguments.
-\end{classdesc}
-
-\begin{classdesc}{Unpacker}{data}
-\code{Unpacker} is the complementary class which unpacks XDR data
-values from a string buffer. The input buffer is given as
-\var{data}.
-\end{classdesc}
-
-
-\subsection{Packer Objects}
-\label{xdr-packer-objects}
-
-\class{Packer} instances have the following methods:
-
-\begin{methoddesc}[Packer]{get_buffer}{}
-Returns the current pack buffer as a string.
-\end{methoddesc}
-
-\begin{methoddesc}[Packer]{reset}{}
-Resets the pack buffer to the empty string.
-\end{methoddesc}
-
-In general, you can pack any of the most common XDR data types by
-calling the appropriate \code{pack_\var{type}()} method. Each method
-takes a single argument, the value to pack. The following simple data
-type packing methods are supported: \method{pack_uint()},
-\method{pack_int()}, \method{pack_enum()}, \method{pack_bool()},
-\method{pack_uhyper()}, and \method{pack_hyper()}.
-
-\begin{methoddesc}[Packer]{pack_float}{value}
-Packs the single-precision floating point number \var{value}.
-\end{methoddesc}
-
-\begin{methoddesc}[Packer]{pack_double}{value}
-Packs the double-precision floating point number \var{value}.
-\end{methoddesc}
-
-The following methods support packing strings, bytes, and opaque data:
-
-\begin{methoddesc}[Packer]{pack_fstring}{n, s}
-Packs a fixed length string, \var{s}. \var{n} is the length of the
-string but it is \emph{not} packed into the data buffer. The string
-is padded with null bytes if necessary to guaranteed 4 byte alignment.
-\end{methoddesc}
-
-\begin{methoddesc}[Packer]{pack_fopaque}{n, data}
-Packs a fixed length opaque data stream, similarly to
-\method{pack_fstring()}.
-\end{methoddesc}
-
-\begin{methoddesc}[Packer]{pack_string}{s}
-Packs a variable length string, \var{s}. The length of the string is
-first packed as an unsigned integer, then the string data is packed
-with \method{pack_fstring()}.
-\end{methoddesc}
-
-\begin{methoddesc}[Packer]{pack_opaque}{data}
-Packs a variable length opaque data string, similarly to
-\method{pack_string()}.
-\end{methoddesc}
-
-\begin{methoddesc}[Packer]{pack_bytes}{bytes}
-Packs a variable length byte stream, similarly to \method{pack_string()}.
-\end{methoddesc}
-
-The following methods support packing arrays and lists:
-
-\begin{methoddesc}[Packer]{pack_list}{list, pack_item}
-Packs a \var{list} of homogeneous items. This method is useful for
-lists with an indeterminate size; i.e. the size is not available until
-the entire list has been walked. For each item in the list, an
-unsigned integer \code{1} is packed first, followed by the data value
-from the list. \var{pack_item} is the function that is called to pack
-the individual item. At the end of the list, an unsigned integer
-\code{0} is packed.
-\end{methoddesc}
-
-\begin{methoddesc}[Packer]{pack_farray}{n, array, pack_item}
-Packs a fixed length list (\var{array}) of homogeneous items. \var{n}
-is the length of the list; it is \emph{not} packed into the buffer,
-but a \exception{ValueError} exception is raised if
-\code{len(\var{array})} is not equal to \var{n}. As above,
-\var{pack_item} is the function used to pack each element.
-\end{methoddesc}
-
-\begin{methoddesc}[Packer]{pack_array}{list, pack_item}
-Packs a variable length \var{list} of homogeneous items. First, the
-length of the list is packed as an unsigned integer, then each element
-is packed as in \method{pack_farray()} above.
-\end{methoddesc}
-
-
-\subsection{Unpacker Objects}
-\label{xdr-unpacker-objects}
-
-The \class{Unpacker} class offers the following methods:
-
-\begin{methoddesc}[Unpacker]{reset}{data}
-Resets the string buffer with the given \var{data}.
-\end{methoddesc}
-
-\begin{methoddesc}[Unpacker]{get_position}{}
-Returns the current unpack position in the data buffer.
-\end{methoddesc}
-
-\begin{methoddesc}[Unpacker]{set_position}{position}
-Sets the data buffer unpack position to \var{position}. You should be
-careful about using \method{get_position()} and \method{set_position()}.
-\end{methoddesc}
-
-\begin{methoddesc}[Unpacker]{get_buffer}{}
-Returns the current unpack data buffer as a string.
-\end{methoddesc}
-
-\begin{methoddesc}[Unpacker]{done}{}
-Indicates unpack completion. Raises an \exception{Error} exception
-if all of the data has not been unpacked.
-\end{methoddesc}
-
-In addition, every data type that can be packed with a \class{Packer},
-can be unpacked with an \class{Unpacker}. Unpacking methods are of the
-form \code{unpack_\var{type}()}, and take no arguments. They return the
-unpacked object.
-
-\begin{methoddesc}[Unpacker]{unpack_float}{}
-Unpacks a single-precision floating point number.
-\end{methoddesc}
-
-\begin{methoddesc}[Unpacker]{unpack_double}{}
-Unpacks a double-precision floating point number, similarly to
-\method{unpack_float()}.
-\end{methoddesc}
-
-In addition, the following methods unpack strings, bytes, and opaque
-data:
-
-\begin{methoddesc}[Unpacker]{unpack_fstring}{n}
-Unpacks and returns a fixed length string. \var{n} is the number of
-characters expected. Padding with null bytes to guaranteed 4 byte
-alignment is assumed.
-\end{methoddesc}
-
-\begin{methoddesc}[Unpacker]{unpack_fopaque}{n}
-Unpacks and returns a fixed length opaque data stream, similarly to
-\method{unpack_fstring()}.
-\end{methoddesc}
-
-\begin{methoddesc}[Unpacker]{unpack_string}{}
-Unpacks and returns a variable length string. The length of the
-string is first unpacked as an unsigned integer, then the string data
-is unpacked with \method{unpack_fstring()}.
-\end{methoddesc}
-
-\begin{methoddesc}[Unpacker]{unpack_opaque}{}
-Unpacks and returns a variable length opaque data string, similarly to
-\method{unpack_string()}.
-\end{methoddesc}
-
-\begin{methoddesc}[Unpacker]{unpack_bytes}{}
-Unpacks and returns a variable length byte stream, similarly to
-\method{unpack_string()}.
-\end{methoddesc}
-
-The following methods support unpacking arrays and lists:
-
-\begin{methoddesc}[Unpacker]{unpack_list}{unpack_item}
-Unpacks and returns a list of homogeneous items. The list is unpacked
-one element at a time
-by first unpacking an unsigned integer flag. If the flag is \code{1},
-then the item is unpacked and appended to the list. A flag of
-\code{0} indicates the end of the list. \var{unpack_item} is the
-function that is called to unpack the items.
-\end{methoddesc}
-
-\begin{methoddesc}[Unpacker]{unpack_farray}{n, unpack_item}
-Unpacks and returns (as a list) a fixed length array of homogeneous
-items. \var{n} is number of list elements to expect in the buffer.
-As above, \var{unpack_item} is the function used to unpack each element.
-\end{methoddesc}
-
-\begin{methoddesc}[Unpacker]{unpack_array}{unpack_item}
-Unpacks and returns a variable length \var{list} of homogeneous items.
-First, the length of the list is unpacked as an unsigned integer, then
-each element is unpacked as in \method{unpack_farray()} above.
-\end{methoddesc}
-
-
-\subsection{Exceptions}
-\nodename{xdr-exceptions}
-
-Exceptions in this module are coded as class instances:
-
-\begin{excdesc}{Error}
-The base exception class. \exception{Error} has a single public data
-member \member{msg} containing the description of the error.
-\end{excdesc}
-
-\begin{excdesc}{ConversionError}
-Class derived from \exception{Error}. Contains no additional instance
-variables.
-\end{excdesc}
-
-Here is an example of how you would catch one of these exceptions:
-
-\begin{verbatim}
-import xdrlib
-p = xdrlib.Packer()
-try:
- p.pack_double(8.01)
-except xdrlib.ConversionError, instance:
- print 'packing the double failed:', instance.msg
-\end{verbatim}
diff --git a/Doc/libxmllib.tex b/Doc/libxmllib.tex
deleted file mode 100644
index 4306aca..0000000
--- a/Doc/libxmllib.tex
+++ /dev/null
@@ -1,223 +0,0 @@
-\section{Standard Module \module{xmllib}}
-% Author: Sjoerd Mullender
-\label{module-xmllib}
-\stmodindex{xmllib}
-\index{XML}
-
-This module defines a class \class{XMLParser} which serves as the basis
-for parsing text files formatted in XML (eXtended Markup Language).
-
-\begin{classdesc}{XMLParser}{}
-The \class{XMLParser} class must be instantiated without arguments.
-\end{classdesc}
-
-This class provides the following interface methods:
-
-\begin{methoddesc}{reset}{}
-Reset the instance. Loses all unprocessed data. This is called
-implicitly at the instantiation time.
-\end{methoddesc}
-
-\begin{methoddesc}{setnomoretags}{}
-Stop processing tags. Treat all following input as literal input
-(CDATA).
-\end{methoddesc}
-
-\begin{methoddesc}{setliteral}{}
-Enter literal mode (CDATA mode).
-\end{methoddesc}
-
-\begin{methoddesc}{feed}{data}
-Feed some text to the parser. It is processed insofar as it consists
-of complete elements; incomplete data is buffered until more data is
-fed or \method{close()} is called.
-\end{methoddesc}
-
-\begin{methoddesc}{close}{}
-Force processing of all buffered data as if it were followed by an
-end-of-file mark. This method may be redefined by a derived class to
-define additional processing at the end of the input, but the
-redefined version should always call \method{close()}.
-\end{methoddesc}
-
-\begin{methoddesc}{translate_references}{data}
-Translate all entity and character references in \var{data} and
-returns the translated string.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_xml}{encoding, standalone}
-This method is called when the \samp{<?xml ...?>} tag is processed.
-The arguments are the values of the encoding and standalone attributes
-in the tag. Both encoding and standalone are optional. The values
-passed to \method{handle_xml()} default to \code{None} and the string
-\code{'no'} respectively.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_doctype}{tag, data}
-This method is called when the \samp{<!DOCTYPE...>} tag is processed.
-The arguments are the name of the root element and the uninterpreted
-contents of the tag, starting after the white space after the name of
-the root element.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_starttag}{tag, method, attributes}
-This method is called to handle start tags for which a
-\method{start_\var{tag}()} method has been defined. The \var{tag}
-argument is the name of the tag, and the \var{method} argument is the
-bound method which should be used to support semantic interpretation
-of the start tag. The \var{attributes} argument is a dictionary of
-attributes, the key being the \var{name} and the value being the
-\var{value} of the attribute found inside the tag's \code{<>} brackets.
-Character and entity references in the \var{value} have
-been interpreted. For instance, for the tag
-\code{<A HREF="http://www.cwi.nl/">}, this method would be called as
-\code{handle_starttag('A', self.start_A, \{'HREF': 'http://www.cwi.nl/'\})}.
-The base implementation simply calls \var{method} with \var{attributes}
-as the only argument.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_endtag}{tag, method}
-This method is called to handle endtags for which an
-\method{end_\var{tag}()} method has been defined. The \var{tag}
-argument is the name of the tag, and the
-\var{method} argument is the bound method which should be used to
-support semantic interpretation of the end tag. If no
-\method{end_\var{tag}()} method is defined for the closing element, this
-handler is not called. The base implementation simply calls
-\var{method}.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_data}{data}
-This method is called to process arbitrary data. It is intended to be
-overridden by a derived class; the base class implementation does
-nothing.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_charref}{ref}
-This method is called to process a character reference of the form
-\samp{\&\#\var{ref};}. \var{ref} can either be a decimal number,
-or a hexadecimal number when preceded by an \character{x}.
-In the base implementation, \var{ref} must be a number in the
-range 0-255. It translates the character to \ASCII{} and calls the
-method \method{handle_data()} with the character as argument. If
-\var{ref} is invalid or out of range, the method
-\code{unknown_charref(\var{ref})} is called to handle the error. A
-subclass must override this method to provide support for character
-references outside of the \ASCII{} range.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_entityref}{ref}
-This method is called to process a general entity reference of the
-form \samp{\&\var{ref};} where \var{ref} is an general entity
-reference. It looks for \var{ref} in the instance (or class)
-variable \member{entitydefs} which should be a mapping from entity
-names to corresponding translations.
-If a translation is found, it calls the method \method{handle_data()}
-with the translation; otherwise, it calls the method
-\code{unknown_entityref(\var{ref})}. The default \member{entitydefs}
-defines translations for \code{\&amp;}, \code{\&apos}, \code{\&gt;},
-\code{\&lt;}, and \code{\&quot;}.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_comment}{comment}
-This method is called when a comment is encountered. The
-\var{comment} argument is a string containing the text between the
-\samp{<!--} and \samp{-->} delimiters, but not the delimiters
-themselves. For example, the comment \samp{<!--text-->} will
-cause this method to be called with the argument \code{'text'}. The
-default method does nothing.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_cdata}{data}
-This method is called when a CDATA element is encountered. The
-\var{data} argument is a string containing the text between the
-\samp{<![CDATA[} and \samp{]]>} delimiters, but not the delimiters
-themselves. For example, the entity \samp{<![CDATA[text]]>} will
-cause this method to be called with the argument \code{'text'}. The
-default method does nothing, and is intended to be overridden.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_proc}{name, data}
-This method is called when a processing instruction (PI) is
-encountered. The \var{name} is the PI target, and the \var{data}
-argument is a string containing the text between the PI target and the
-closing delimiter, but not the delimiter itself. For example, the
-instruction \samp{<?XML text?>} will cause this method to be called
-with the arguments \code{'XML'} and \code{'text'}. The default method
-does nothing. Note that if a document starts with \samp{<?xml
-...?>}, \method{handle_xml()} is called to handle it.
-\end{methoddesc}
-
-\begin{methoddesc}{handle_special}{data}
-This method is called when a declaration is encountered. The
-\var{data} argument is a string containing the text between the
-\samp{<!} and \samp{>} delimiters, but not the delimiters
-themselves. For example, the entity \samp{<!ENTITY text>} will
-cause this method to be called with the argument \code{'ENTITY text'}. The
-default method does nothing. Note that \samp{<!DOCTYPE ...>} is
-handled separately if it is located at the start of the document.
-\end{methoddesc}
-
-\begin{methoddesc}{syntax_error}{message}
-This method is called when a syntax error is encountered. The
-\var{message} is a description of what was wrong. The default method
-raises a \exception{RuntimeError} exception. If this method is
-overridden, it is permissable for it to return. This method is only
-called when the error can be recovered from. Unrecoverable errors
-raise a \exception{RuntimeError} without first calling
-\method{syntax_error()}.
-\end{methoddesc}
-
-\begin{methoddesc}{unknown_starttag}{tag, attributes}
-This method is called to process an unknown start tag. It is intended
-to be overridden by a derived class; the base class implementation
-does nothing.
-\end{methoddesc}
-
-\begin{methoddesc}{unknown_endtag}{tag}
-This method is called to process an unknown end tag. It is intended
-to be overridden by a derived class; the base class implementation
-does nothing.
-\end{methoddesc}
-
-\begin{methoddesc}{unknown_charref}{ref}
-This method is called to process unresolvable numeric character
-references. It is intended to be overridden by a derived class; the
-base class implementation does nothing.
-\end{methoddesc}
-
-\begin{methoddesc}{unknown_entityref}{ref}
-This method is called to process an unknown entity reference. It is
-intended to be overridden by a derived class; the base class
-implementation does nothing.
-\end{methoddesc}
-
-Apart from overriding or extending the methods listed above, derived
-classes may also define methods and variables of the following form to
-define processing of specific tags. Tag names in the input stream are
-case dependent; the \var{tag} occurring in method names must be in the
-correct case:
-
-\begin{methoddescni}{start_\var{tag}}{attributes}
-This method is called to process an opening tag \var{tag}. The
-\var{attributes} argument has the same meaning as described for
-\method{handle_starttag()} above. In fact, the base implementation of
-\method{handle_starttag()} calls this method.
-\end{methoddescni}
-
-\begin{methoddescni}{end_\var{tag}}{}
-This method is called to process a closing tag \var{tag}.
-\end{methoddescni}
-
-\begin{memberdescni}{\var{tag}_attributes}
-If a class or instance variable \member{\var{tag}_attributes} exists, it
-should be a list or a dictionary. If a list, the elements of the list
-are the valid attributes for the element \var{tag}; if a dictionary,
-the keys are the valid attributes for the element \var{tag}, and the
-values the default values of the attributes, or \code{None} if there
-is no default.
-In addition to the attributes that were present in the tag, the
-attribute dictionary that is passed to \method{handle_starttag()} and
-\method{unknown_starttag()} contains values for all attributes that
-have a default value.
-\end{memberdescni}
diff --git a/Doc/libzlib.tex b/Doc/libzlib.tex
deleted file mode 100644
index f38a21c..0000000
--- a/Doc/libzlib.tex
+++ /dev/null
@@ -1,114 +0,0 @@
-% XXX The module has been extended (by Jeremy) but this documentation
-% hasn't been updated yet
-
-\section{Built-in Module \module{zlib}}
-\label{module-zlib}
-\bimodindex{zlib}
-
-For applications that require data compression, the functions in this
-module allow compression and decompression, using the zlib library.
-The zlib library has its own home page at
-\url{http://www.cdrom.com/pub/infozip/zlib/}. Version 1.0.4 is the
-most recent version as of December, 1997; use a later version if one
-is available.
-
-The available exception and functions in this module are:
-
-\begin{excdesc}{error}
- Exception raised on compression and decompression errors.
-\end{excdesc}
-
-
-\begin{funcdesc}{adler32}{string\optional{, value}}
- Computes a Adler-32 checksum of \var{string}. (An Adler-32
- checksum is almost as reliable as a CRC32 but can be computed much
- more quickly.) If \var{value} is present, it is used as the
- starting value of the checksum; otherwise, a fixed default value is
- used. This allows computing a running checksum over the
- concatenation of several input strings. The algorithm is not
- cryptographically strong, and should not be used for
- authentication or digital signatures.
-\end{funcdesc}
-
-\begin{funcdesc}{compress}{string\optional{, level}}
-Compresses the data in \var{string}, returning a string contained
-compressed data. \var{level} is an integer from \code{1} to \code{9}
-controlling the level of compression; \code{1} is fastest and produces
-the least compression, \code{9} is slowest and produces the most. The
-default value is \code{6}. Raises the \exception{error}
-exception if any error occurs.
-\end{funcdesc}
-
-\begin{funcdesc}{compressobj}{\optional{level}}
- Returns a compression object, to be used for compressing data streams
- that won't fit into memory at once. \var{level} is an integer from
- \code{1} to \code{9} controlling the level of compression; \code{1} is
- fastest and produces the least compression, \code{9} is slowest and
- produces the most. The default value is \code{6}.
-\end{funcdesc}
-
-\begin{funcdesc}{crc32}{string\optional{, value}}
- Computes a CRC (Cyclic Redundancy Check)%
- \index{Cyclic Redundancy Check}
- \index{checksum!Cyclic Redundancy Check}
- checksum of \var{string}. If
- \var{value} is present, it is used as the starting value of the
- checksum; otherwise, a fixed default value is used. This allows
- computing a running checksum over the concatenation of several
- input strings. The algorithm is not cryptographically strong, and
- should not be used for authentication or digital signatures.
-\end{funcdesc}
-
-\begin{funcdesc}{decompress}{string}
-Decompresses the data in \var{string}, returning a string containing
-the uncompressed data. Raises the \exception{error} exception if any
-error occurs.
-\end{funcdesc}
-
-\begin{funcdesc}{decompressobj}{\optional{wbits}}
-Returns a compression object, to be used for decompressing data streams
-that won't fit into memory at once. The \var{wbits} parameter
-controls the size of the window buffer; usually this can be left
-alone.
-\end{funcdesc}
-
-Compression objects support the following methods:
-
-\begin{methoddesc}[Compress]{compress}{string}
-Compress \var{string}, returning a string containing compressed data
-for at least part of the data in \var{string}. This data should be
-concatenated to the output produced by any preceding calls to the
-\method{compress()} method. Some input may be kept in internal buffers
-for later processing.
-\end{methoddesc}
-
-\begin{methoddesc}[Compress]{flush}{}
-All pending input is processed, and an string containing the remaining
-compressed output is returned. After calling \method{flush()}, the
-\method{compress()} method cannot be called again; the only realistic
-action is to delete the object.
-\end{methoddesc}
-
-Decompression objects support the following methods:
-
-\begin{methoddesc}[Decompress]{decompress}{string}
-Decompress \var{string}, returning a string containing the
-uncompressed data corresponding to at least part of the data in
-\var{string}. This data should be concatenated to the output produced
-by any preceding calls to the
-\method{decompress()} method. Some of the input data may be preserved
-in internal buffers for later processing.
-\end{methoddesc}
-
-\begin{methoddesc}[Decompress]{flush}{}
-All pending input is processed, and a string containing the remaining
-uncompressed output is returned. After calling \method{flush()}, the
-\method{decompress()} method cannot be called again; the only realistic
-action is to delete the object.
-\end{methoddesc}
-
-\begin{seealso}
-\seemodule{gzip}{reading and writing \program{gzip}-format files}
-\end{seealso}
-
-