From cda63cc875f54b047018cad362aa23d5493b97f3 Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Thu, 7 May 1998 01:49:07 +0000 Subject: Relocating file to Doc/lib/ --- Doc/lib.tex | 234 ------------- Doc/libaifc.tex | 194 ----------- Doc/libal.tex | 175 ---------- Doc/liballos.tex | 36 -- Doc/libamoeba.tex | 128 ------- Doc/libanydbm.tex | 71 ---- Doc/libarray.tex | 161 --------- Doc/libaudioop.tex | 257 -------------- Doc/libbase64.tex | 45 --- Doc/libbasehttp.tex | 219 ------------ Doc/libbastion.tex | 48 --- Doc/libbinascii.tex | 79 ----- Doc/libbinhex.tex | 36 -- Doc/libbisect.tex | 55 --- Doc/libbltin.tex | 8 - Doc/libcalendar.tex | 45 --- Doc/libcd.tex | 300 ---------------- Doc/libcgi.tex | 461 ------------------------- Doc/libcmath.tex | 90 ----- Doc/libcode.tex | 31 -- Doc/libcommands.tex | 52 --- Doc/libcopy.tex | 82 ----- Doc/libcopyreg.tex | 27 -- Doc/libcrypt.tex | 22 -- Doc/libcrypto.tex | 34 -- Doc/libdbm.tex | 36 -- Doc/libdis.tex | 512 ---------------------------- Doc/liberrno.tex | 146 -------- Doc/libexcs.tex | 272 --------------- Doc/libfcntl.tex | 75 ---- Doc/libfileinput.tex | 124 ------- Doc/libfl.tex | 491 --------------------------- Doc/libfm.tex | 90 ----- Doc/libfnmatch.tex | 40 --- Doc/libformatter.tex | 323 ------------------ Doc/libframework.tex | 294 ---------------- Doc/libftplib.tex | 240 ------------- Doc/libfuncs.tex | 635 ---------------------------------- Doc/libgdbm.tex | 93 ----- Doc/libgetopt.tex | 80 ----- Doc/libgl.tex | 197 ----------- Doc/libglob.tex | 35 -- Doc/libgopherlib.tex | 31 -- Doc/libgrp.tex | 32 -- Doc/libgzip.tex | 47 --- Doc/libhtmllib.tex | 119 ------- Doc/libhttplib.tex | 129 ------- Doc/libimageop.tex | 85 ----- Doc/libimaplib.tex | 241 ------------- Doc/libimgfile.tex | 62 ---- Doc/libimghdr.tex | 52 --- Doc/libimp.tex | 241 ------------- Doc/libintro.tex | 48 --- Doc/libjpeg.tex | 57 ---- Doc/libkeyword.tex | 10 - Doc/liblocale.tex | 274 --------------- Doc/libmailbox.tex | 39 --- Doc/libmailcap.tex | 79 ----- Doc/libmain.tex | 6 - Doc/libmarshal.tex | 90 ----- Doc/libmath.tex | 122 ------- Doc/libmd5.tex | 64 ---- Doc/libmimetools.tex | 95 ------ Doc/libmimify.tex | 83 ----- Doc/libminiae.tex | 63 ---- Doc/libmisc.tex | 28 -- Doc/libmm.tex | 29 -- Doc/libmpz.tex | 89 ----- Doc/libni.tex | 60 ---- Doc/libnntplib.tex | 246 -------------- Doc/libobjs.tex | 24 -- Doc/liboperator.tex | 132 -------- Doc/libos.tex | 110 ------ Doc/libpanel.tex | 68 ---- Doc/libparser.tex | 724 --------------------------------------- Doc/libpdb.tex | 298 ---------------- Doc/libpickle.tex | 290 ---------------- Doc/libpopen2.tex | 71 ---- Doc/libpoplib.tex | 131 ------- Doc/libposix.tex | 509 ---------------------------- Doc/libposixfile.tex | 162 --------- Doc/libppath.tex | 145 -------- Doc/libpprint.tex | 172 ---------- Doc/libprofile.tex | 767 ----------------------------------------- Doc/libpwd.tex | 32 -- Doc/libpython.tex | 84 ----- Doc/libqueue.tex | 68 ---- Doc/libquopri.tex | 32 -- Doc/librand.tex | 28 -- Doc/librandom.tex | 86 ----- Doc/libre.tex | 634 ---------------------------------- Doc/libregex.tex | 366 -------------------- Doc/libregsub.tex | 70 ---- Doc/libresource.tex | 200 ----------- Doc/librestricted.tex | 79 ----- Doc/librexec.tex | 221 ------------ Doc/librfc822.tex | 165 --------- Doc/librgbimg.tex | 45 --- Doc/librotor.tex | 104 ------ Doc/libselect.tex | 46 --- Doc/libsgi.tex | 5 - Doc/libsgmllib.tex | 198 ----------- Doc/libshelve.tex | 61 ---- Doc/libsignal.tex | 142 -------- Doc/libsite.tex | 85 ----- Doc/libsocket.tex | 380 --------------------- Doc/libsocksvr.tex | 196 ----------- Doc/libsomeos.tex | 39 --- Doc/libsoundex.tex | 41 --- Doc/libstat.tex | 110 ------ Doc/libstdwin.tex | 920 -------------------------------------------------- Doc/libstring.tex | 242 ------------- Doc/libstrings.tex | 30 -- Doc/libstrio.tex | 42 --- Doc/libstruct.tex | 140 -------- Doc/libsun.tex | 6 - Doc/libsunaudio.tex | 108 ------ Doc/libsymbol.tex | 24 -- Doc/libsys.tex | 249 -------------- Doc/libsyslog.tex | 71 ---- Doc/libtempfile.tex | 49 --- Doc/libtemplate.tex | 140 -------- Doc/libtermios.tex | 109 ------ Doc/libthread.tex | 127 ------- Doc/libtime.tex | 189 ----------- Doc/libtoken.tex | 37 -- Doc/libtraceback.tex | 55 --- Doc/libtypes.tex | 863 ---------------------------------------------- Doc/libtypes2.tex | 127 ------- Doc/libundoc.tex | 312 ----------------- Doc/libunix.tex | 58 ---- Doc/liburllib.tex | 132 -------- Doc/liburlparse.tex | 84 ----- Doc/libuser.tex | 66 ---- Doc/libuserdict.tex | 49 --- Doc/libuu.tex | 35 -- Doc/libwhichdb.tex | 16 - Doc/libwhrandom.tex | 49 --- Doc/libwww.tex | 99 ------ Doc/libxdrlib.tex | 232 ------------- Doc/libxmllib.tex | 223 ------------ Doc/libzlib.tex | 114 ------- 142 files changed, 21211 deletions(-) delete mode 100644 Doc/lib.tex delete mode 100644 Doc/libaifc.tex delete mode 100644 Doc/libal.tex delete mode 100644 Doc/liballos.tex delete mode 100644 Doc/libamoeba.tex delete mode 100644 Doc/libanydbm.tex delete mode 100644 Doc/libarray.tex delete mode 100644 Doc/libaudioop.tex delete mode 100644 Doc/libbase64.tex delete mode 100644 Doc/libbasehttp.tex delete mode 100644 Doc/libbastion.tex delete mode 100644 Doc/libbinascii.tex delete mode 100644 Doc/libbinhex.tex delete mode 100644 Doc/libbisect.tex delete mode 100644 Doc/libbltin.tex delete mode 100644 Doc/libcalendar.tex delete mode 100644 Doc/libcd.tex delete mode 100644 Doc/libcgi.tex delete mode 100644 Doc/libcmath.tex delete mode 100644 Doc/libcode.tex delete mode 100644 Doc/libcommands.tex delete mode 100644 Doc/libcopy.tex delete mode 100644 Doc/libcopyreg.tex delete mode 100644 Doc/libcrypt.tex delete mode 100644 Doc/libcrypto.tex delete mode 100644 Doc/libdbm.tex delete mode 100644 Doc/libdis.tex delete mode 100644 Doc/liberrno.tex delete mode 100644 Doc/libexcs.tex delete mode 100644 Doc/libfcntl.tex delete mode 100644 Doc/libfileinput.tex delete mode 100644 Doc/libfl.tex delete mode 100644 Doc/libfm.tex delete mode 100644 Doc/libfnmatch.tex delete mode 100644 Doc/libformatter.tex delete mode 100644 Doc/libframework.tex delete mode 100644 Doc/libftplib.tex delete mode 100644 Doc/libfuncs.tex delete mode 100644 Doc/libgdbm.tex delete mode 100644 Doc/libgetopt.tex delete mode 100644 Doc/libgl.tex delete mode 100644 Doc/libglob.tex delete mode 100644 Doc/libgopherlib.tex delete mode 100644 Doc/libgrp.tex delete mode 100644 Doc/libgzip.tex delete mode 100644 Doc/libhtmllib.tex delete mode 100644 Doc/libhttplib.tex delete mode 100644 Doc/libimageop.tex delete mode 100644 Doc/libimaplib.tex delete mode 100644 Doc/libimgfile.tex delete mode 100644 Doc/libimghdr.tex delete mode 100644 Doc/libimp.tex delete mode 100644 Doc/libintro.tex delete mode 100644 Doc/libjpeg.tex delete mode 100644 Doc/libkeyword.tex delete mode 100644 Doc/liblocale.tex delete mode 100644 Doc/libmailbox.tex delete mode 100644 Doc/libmailcap.tex delete mode 100644 Doc/libmain.tex delete mode 100644 Doc/libmarshal.tex delete mode 100644 Doc/libmath.tex delete mode 100644 Doc/libmd5.tex delete mode 100644 Doc/libmimetools.tex delete mode 100644 Doc/libmimify.tex delete mode 100644 Doc/libminiae.tex delete mode 100644 Doc/libmisc.tex delete mode 100644 Doc/libmm.tex delete mode 100644 Doc/libmpz.tex delete mode 100644 Doc/libni.tex delete mode 100644 Doc/libnntplib.tex delete mode 100644 Doc/libobjs.tex delete mode 100644 Doc/liboperator.tex delete mode 100644 Doc/libos.tex delete mode 100644 Doc/libpanel.tex delete mode 100644 Doc/libparser.tex delete mode 100644 Doc/libpdb.tex delete mode 100644 Doc/libpickle.tex delete mode 100644 Doc/libpopen2.tex delete mode 100644 Doc/libpoplib.tex delete mode 100644 Doc/libposix.tex delete mode 100644 Doc/libposixfile.tex delete mode 100644 Doc/libppath.tex delete mode 100644 Doc/libpprint.tex delete mode 100644 Doc/libprofile.tex delete mode 100644 Doc/libpwd.tex delete mode 100644 Doc/libpython.tex delete mode 100644 Doc/libqueue.tex delete mode 100644 Doc/libquopri.tex delete mode 100644 Doc/librand.tex delete mode 100644 Doc/librandom.tex delete mode 100644 Doc/libre.tex delete mode 100644 Doc/libregex.tex delete mode 100644 Doc/libregsub.tex delete mode 100644 Doc/libresource.tex delete mode 100644 Doc/librestricted.tex delete mode 100644 Doc/librexec.tex delete mode 100644 Doc/librfc822.tex delete mode 100644 Doc/librgbimg.tex delete mode 100644 Doc/librotor.tex delete mode 100644 Doc/libselect.tex delete mode 100644 Doc/libsgi.tex delete mode 100644 Doc/libsgmllib.tex delete mode 100644 Doc/libshelve.tex delete mode 100644 Doc/libsignal.tex delete mode 100644 Doc/libsite.tex delete mode 100644 Doc/libsocket.tex delete mode 100644 Doc/libsocksvr.tex delete mode 100644 Doc/libsomeos.tex delete mode 100644 Doc/libsoundex.tex delete mode 100644 Doc/libstat.tex delete mode 100644 Doc/libstdwin.tex delete mode 100644 Doc/libstring.tex delete mode 100644 Doc/libstrings.tex delete mode 100644 Doc/libstrio.tex delete mode 100644 Doc/libstruct.tex delete mode 100644 Doc/libsun.tex delete mode 100644 Doc/libsunaudio.tex delete mode 100644 Doc/libsymbol.tex delete mode 100644 Doc/libsys.tex delete mode 100644 Doc/libsyslog.tex delete mode 100644 Doc/libtempfile.tex delete mode 100644 Doc/libtemplate.tex delete mode 100644 Doc/libtermios.tex delete mode 100644 Doc/libthread.tex delete mode 100644 Doc/libtime.tex delete mode 100644 Doc/libtoken.tex delete mode 100644 Doc/libtraceback.tex delete mode 100644 Doc/libtypes.tex delete mode 100644 Doc/libtypes2.tex delete mode 100644 Doc/libundoc.tex delete mode 100644 Doc/libunix.tex delete mode 100644 Doc/liburllib.tex delete mode 100644 Doc/liburlparse.tex delete mode 100644 Doc/libuser.tex delete mode 100644 Doc/libuserdict.tex delete mode 100644 Doc/libuu.tex delete mode 100644 Doc/libwhichdb.tex delete mode 100644 Doc/libwhrandom.tex delete mode 100644 Doc/libwww.tex delete mode 100644 Doc/libxdrlib.tex delete mode 100644 Doc/libxmllib.tex delete mode 100644 Doc/libzlib.tex 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{} 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{} 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{} 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. , with an -% example based on the PyModules FAQ entry by Aaron Watters -% . - -\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 . - -\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{
} or \code{} 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 "CGI script output" -print "

This is my first CGI script

" -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 "

Error

" - 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{}. -\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
"
-    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
"} 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{""}; 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{} and
-\code{}.  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}='.'} 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{} 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{''}
-  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{}
-and
-\file{}.
-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{}), 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{

} -... \code{

}, the class should define the \code{start_\var{tag}()} -method; if a tag requires no closing tag, like \code{

}, 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{

} 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{} 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 ;
-% converted by Fred L. Drake, Jr. .
-%
-% 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{ = ''}}}
-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()')
-> (0)?()
-(Pdb) continue
-> (1)?()
-(Pdb) continue
-NameError: 'spam'
-> (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 "", 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. 
-
-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
-% , with some re-organization by Fred L.
-% Drake, Jr. .
-
-\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{}) 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.		
-
-\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)
-[,
- '',
- '/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{}.  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)
-"[, '', '/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{}), 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{'

title

'}, it will match the -entire string, and not just \code{'

'}. -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{'

'}. -% -\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[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}). -% -\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} will use the substring matched by the group -named \samp{name}, as defined by the \regexp{(?P...)} syntax. -\samp{\e g} 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\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([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 '} 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{}, 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{}. 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{} -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} - - -- cgit v0.12