mirror of
https://github.com/python/cpython.git
synced 2024-11-24 10:24:35 +08:00
mass changes; fix titles; add examples; correct typos; clarifications;
unified style; etc.
This commit is contained in:
parent
7760cdea81
commit
470be14c8a
@ -21,8 +21,11 @@ Module \code{aifc} defines the following function:
|
||||
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
|
||||
'r' when the file must be opened for reading, or 'w' when the file
|
||||
must be opened for writing.
|
||||
\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
|
||||
\code{writeframesraw()} and \code{setnframes()}.
|
||||
\end{funcdesc}
|
||||
|
||||
Objects returned by \code{aifc.open()} when a file is opened for
|
||||
|
@ -1,13 +1,15 @@
|
||||
\section{Built-in Module \sectcode{al}}
|
||||
\bimodindex{al}
|
||||
|
||||
This module provides access to the audio facilities of the Indigo and
|
||||
4D/35 workstations, described in section 3A of the IRIX 4.0 man pages
|
||||
(and also available as an option in IRIX 3.3). You'll need to read
|
||||
those man pages to understand what these functions do!
|
||||
Some of the functions are not available in releases below 4.0.5.
|
||||
Again, see the manual to check whether a specific function is
|
||||
available on your platform.
|
||||
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 \file{<audio.h>} are defined
|
||||
in the standard module \code{AL}, see below.
|
||||
@ -20,145 +22,138 @@ interface can provide no protection against this kind of problems.
|
||||
(One example is specifying an excessive queue size --- there is no
|
||||
documented upper limit.)
|
||||
|
||||
Module \code{al} defines the following functions:
|
||||
The module defines the following functions:
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module al)}
|
||||
|
||||
\begin{funcdesc}{openport}{name\, direction\optional{\, config}}
|
||||
Equivalent to the C function ALopenport(). The name and direction
|
||||
arguments are strings. The optional config argument is an opaque
|
||||
configuration object as returned by \code{al.newconfig()}. The return
|
||||
value is an opaque port object; methods of port objects are described
|
||||
below.
|
||||
The name and direction arguments are strings. The optional config
|
||||
argument is a configuration object as returned by
|
||||
\code{al.newconfig()}. The return value is an \dfn{port object};
|
||||
methods of port objects are described below.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{newconfig}{}
|
||||
Equivalent to the C function ALnewconfig(). The return value is a new
|
||||
opaque configuration object; methods of configuration objects are
|
||||
described below.
|
||||
The return value is a new \dfn{configuration object}; methods of
|
||||
configuration objects are described below.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{queryparams}{device}
|
||||
Equivalent to the C function ALqueryparams(). The device argument is
|
||||
an integer. The return value is a list of integers containing the
|
||||
data returned by ALqueryparams().
|
||||
The device argument is an integer. The return value is a list of
|
||||
integers containing the data returned by ALqueryparams().
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getparams}{device\, list}
|
||||
Equivalent to the C function ALgetparams(). The device argument is an
|
||||
integer. The list argument is a list such as returned by
|
||||
\code{queryparams}; it is modified in place (!).
|
||||
The device argument is an integer. The list argument is a list such
|
||||
as returned by \code{queryparams}; it is modified in place (!).
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setparams}{device\, list}
|
||||
Equivalent to the C function ALsetparams(). The device argument is an
|
||||
integer.The list argument is a list such as returned by
|
||||
\code{al.queryparams}.
|
||||
The device argument is an integer. The list argument is a list such
|
||||
as returned by \code{al.queryparams}.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Configuration Objects}
|
||||
|
||||
Configuration objects (returned by \code{al.newconfig()} have the
|
||||
following methods:
|
||||
|
||||
\renewcommand{\indexsubitem}{(audio configuration object method)}
|
||||
|
||||
\begin{funcdesc}{getqueuesize}{}
|
||||
Return the queue size; equivalent to the C function ALgetqueuesize().
|
||||
Return the queue size.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setqueuesize}{size}
|
||||
Set the queue size; equivalent to the C function ALsetqueuesize().
|
||||
Set the queue size.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getwidth}{}
|
||||
Get the sample width; equivalent to the C function ALgetwidth().
|
||||
Get the sample width.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getwidth}{width}
|
||||
Set the sample width; equivalent to the C function ALsetwidth().
|
||||
\begin{funcdesc}{setwidth}{width}
|
||||
Set the sample width.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getchannels}{}
|
||||
Get the channel count; equivalent to the C function ALgetchannels().
|
||||
Get the channel count.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setchannels}{nchannels}
|
||||
Set the channel count; equivalent to the C function ALsetchannels().
|
||||
Set the channel count.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getsampfmt}{}
|
||||
Get the sample format; equivalent to the C function ALgetsampfmt().
|
||||
Get the sample format.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setsampfmt}{sampfmt}
|
||||
Set the sample format; equivalent to the C function ALsetsampfmt().
|
||||
Set the sample format.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getfloatmax}{}
|
||||
Get the maximum value for floating sample formats;
|
||||
equivalent to the C function ALgetfloatmax().
|
||||
Get the maximum value for floating sample formats.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setfloatmax}{floatmax}
|
||||
Set the maximum value for floating sample formats;
|
||||
equivalent to the C function ALsetfloatmax().
|
||||
Set the maximum value for floating sample formats.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Port Objects}
|
||||
|
||||
Port objects (returned by \code{al.openport()} have the following
|
||||
methods:
|
||||
|
||||
\renewcommand{\indexsubitem}{(audio port object method)}
|
||||
|
||||
\begin{funcdesc}{closeport}{}
|
||||
Close the port; equivalent to the C function ALcloseport().
|
||||
Close the port.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getfd}{}
|
||||
Return the file descriptor as an int; equivalent to the C function
|
||||
ALgetfd().
|
||||
Return the file descriptor as an int.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getfilled}{}
|
||||
Return the number of filled samples; equivalent to the C function
|
||||
ALgetfilled().
|
||||
Return the number of filled samples.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getfillable}{}
|
||||
Return the number of fillable samples; equivalent to the C function
|
||||
ALgetfillable().
|
||||
Return the number of fillable samples.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{readsamps}{nsamples}
|
||||
Read a number of samples from the queue, blocking if necessary;
|
||||
equivalent to the C function ALreadsamples. The data is returned 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.
|
||||
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{funcdesc}
|
||||
|
||||
\begin{funcdesc}{writesamps}{samples}
|
||||
Write samples into the queue, blocking if necessary; equivalent to the
|
||||
C function ALwritesamples. The samples are encoded as described for
|
||||
the \code{readsamps} return value.
|
||||
Write samples into the queue, blocking if necessary. The samples are
|
||||
encoded as described for the \code{readsamps} return value.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getfillpoint}{}
|
||||
Return the `fill point'; equivalent to the C function ALgetfillpoint().
|
||||
Return the `fill point'.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setfillpoint}{fillpoint}
|
||||
Set the `fill point'; equivalent to the C function ALsetfillpoint().
|
||||
Set the `fill point'.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getconfig}{}
|
||||
Return a configuration object containing the current configuration of
|
||||
the port; equivalent to the C function ALgetconfig().
|
||||
the port.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setconfig}{config}
|
||||
Set the configuration from the argument, a configuration object;
|
||||
equivalent to the C function ALsetconfig().
|
||||
Set the configuration from the argument, a configuration object.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getstatus}{list}
|
||||
Get status information on last error
|
||||
equivalent to C function ALgetstatus().
|
||||
Get status information on last error.
|
||||
\end{funcdesc}
|
||||
|
||||
\section{Standard Module \sectcode{AL}}
|
||||
|
@ -70,7 +70,7 @@ Initially, the timeout is set to 2 seconds by the Python interpreter.
|
||||
|
||||
\subsection{Capability Operations}
|
||||
|
||||
Capabilities are written in a convenient ASCII format, also used by the
|
||||
Capabilities are written in a convenient \ASCII{} format, also used by the
|
||||
Amoeba utilities
|
||||
{\it c2a}(U)
|
||||
and
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{array}}
|
||||
\section{Built-in Module \sectcode{array}}
|
||||
\bimodindex{array}
|
||||
\index{arrays}
|
||||
|
||||
@ -21,7 +21,7 @@ which is a single character. The following type codes are defined:
|
||||
|
||||
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{typecode} attribute.
|
||||
size can be accessed through the \var{itemsize} attribute.
|
||||
|
||||
The module defines the following function:
|
||||
|
||||
@ -59,7 +59,9 @@ on a machine with a different byte order.
|
||||
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, \code{EOFError} is raised, but the items that were
|
||||
available are still inserted into the array.
|
||||
available are still inserted into the array. \var{f} must be a real
|
||||
built-in file object; something else with a \code{read()} method won't
|
||||
do.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{fromlist}{list}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{audioop}}
|
||||
\section{Built-in Module \sectcode{audioop}}
|
||||
\bimodindex{audioop}
|
||||
|
||||
The \code{audioop} module contains some useful operations on sound fragments.
|
||||
@ -19,139 +19,139 @@ per sample, etc.
|
||||
\end{excdesc}
|
||||
|
||||
\begin{funcdesc}{add}{fragment1\, fragment2\, width}
|
||||
This function returns 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.
|
||||
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}
|
||||
This routine decodes an Intel/DVI ADPCM coded fragment to a linear
|
||||
fragment. See the description of \code{lin2adpcm} for details on ADPCM
|
||||
coding. The routine returns a tuple
|
||||
\code{(\var{sample}, \var{newstate})}
|
||||
where the sample has the width specified in \var{width}.
|
||||
Decode an Intel/DVI ADPCM coded fragment to a linear fragment. See
|
||||
the description of \code{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}
|
||||
This routine decodes an alternative 3-bit ADPCM code. See
|
||||
\code{lin2adpcm3} for details.
|
||||
Decode an alternative 3-bit ADPCM code. See \code{lin2adpcm3} for
|
||||
details.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{avg}{fragment\, width}
|
||||
This function returns the average over all samples in the fragment.
|
||||
Return the average over all samples in the fragment.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{avgpp}{fragment\, width}
|
||||
This function returns the average peak-peak value over all samples in
|
||||
the fragment. No filtering is done, so the usefulness of this routine
|
||||
is questionable.
|
||||
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}
|
||||
This function returns a fragment that is the original fragment with a
|
||||
bias added to each sample.
|
||||
Return a fragment that is the original fragment with a bias added to
|
||||
each sample.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{cross}{fragment\, width}
|
||||
This function returns the number of zero crossings in the fragment
|
||||
passed as an argument.
|
||||
Return the number of zero crossings in the fragment passed as an
|
||||
argument.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{findfactor}{fragment\, reference}
|
||||
This routine (which only accepts 2-byte sample fragments) calculates a
|
||||
factor \var{F} such that \code{rms(add(fragment, mul(reference, -F)))}
|
||||
is minimal, i.e.\ it calculates the factor with which you should
|
||||
multiply \var{reference} to make it match as well as possible to
|
||||
\var{fragment}. The fragments should be the same size.
|
||||
Return a factor \var{F} such that
|
||||
\code{rms(add(fragment, mul(reference, -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(fragment)}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{findfit}{fragment\, reference}
|
||||
This routine (which only accepts 2-byte sample fragments) tries to
|
||||
match \var{reference} as well as possible to a portion of
|
||||
\var{fragment} (which should be the longer fragment). It
|
||||
(conceptually) does this by taking slices out of \var{fragment}, using
|
||||
This routine (which only accepts 2-byte sample fragments)
|
||||
|
||||
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
|
||||
\code{findfactor} to compute the best match, and minimizing the
|
||||
result.
|
||||
It returns a tuple \code{(\var{offset}, \var{factor})} with \var{offset} 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} the floating-point factor as per \code{findfactor}.
|
||||
and \var{factor} is the (floating-point) factor as per
|
||||
\code{findfactor}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{findmax}{fragment\, length}
|
||||
This routine (which only accepts 2-byte sample fragments) searches
|
||||
\var{fragment} for a slice of length \var{length} samples (not bytes!)\
|
||||
with maximum energy, i.e.\ it returns \var{i} for which
|
||||
\code{rms(fragment[i*2:(i+length)*2])} is maximal.
|
||||
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(fragment)}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getsample}{fragment\, width\, index}
|
||||
This function returns the value of sample \var{index} from the
|
||||
fragment.
|
||||
Return the value of sample \var{index} from the fragment.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{lin2lin}{fragment\, width\, newwidth}
|
||||
This function converts samples between 1-, 2- and 4-byte formats.
|
||||
Convert samples between 1-, 2- and 4-byte formats.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{lin2adpcm}{fragment\, width\, state}
|
||||
This function converts 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.
|
||||
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.
|
||||
|
||||
\code{State} is a tuple containing the state of the coder. The coder
|
||||
\code{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 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.
|
||||
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
|
||||
not packed (due to laziness on the side of the author). Its use is
|
||||
discouraged.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{lin2ulaw}{fragment\, width}
|
||||
This function converts samples in the audio fragment to U-LAW encoding
|
||||
and returns 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.
|
||||
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}
|
||||
This function returns a tuple consisting of the minimum and maximum
|
||||
values of all samples in the sound fragment.
|
||||
Return a tuple consisting of the minimum and maximum values of all
|
||||
samples in the sound fragment.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{max}{fragment\, width}
|
||||
This function returns the maximum of the {\em absolute value} of all
|
||||
samples in a fragment.
|
||||
Return the maximum of the {\em absolute value} of all samples in a
|
||||
fragment.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{maxpp}{fragment\, width}
|
||||
This function returns the maximum peak-peak value in the sound fragment.
|
||||
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
|
||||
multiplied by the floating-point value \var{factor}. Overflow is
|
||||
silently ignored.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{reverse}{fragment\, width}
|
||||
This function reverses the samples in a fragment and returns the
|
||||
modified fragment.
|
||||
Reverse the samples in a fragment and returns the modified fragment.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{rms}{fragment\, width\, factor}
|
||||
Returns the root-mean-square of the fragment, i.e.
|
||||
\begin{funcdesc}{rms}{fragment\, width}
|
||||
Return the root-mean-square of the fragment, i.e.
|
||||
\iftexi
|
||||
the square root of the quotient of the sum of all squared sample value,
|
||||
divided by the sumber of samples.
|
||||
@ -166,22 +166,22 @@ This is a measure of the power in an audio signal.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{tomono}{fragment\, width\, lfactor\, rfactor}
|
||||
This function converts 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.
|
||||
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}
|
||||
This function generates 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}.
|
||||
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}
|
||||
This function converts sound fragments in ULAW encoding to linearly
|
||||
encoded sound fragments. ULAW encoding always uses 8 bits samples, so
|
||||
\var{width} refers only to the sample width of the output fragment here.
|
||||
Convert sound fragments in ULAW encoding to linearly encoded sound
|
||||
fragments. ULAW 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 \code{mul} or \code{max} make no
|
||||
@ -202,20 +202,20 @@ def mul_stereo(sample, width, lfactor, rfactor):
|
||||
|
||||
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 not only transmit the data but also the state. Note that
|
||||
you should send the \var{initial} state (the one you passed to
|
||||
\code{lin2adpcm}) along to the decoder, not the final state (as returned by
|
||||
the coder). If you want to use \code{struct} to store the state in
|
||||
the coder). If you want to use \code{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
|
||||
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 \code{find...} routines might look a bit funny at first sight.
|
||||
They are primarily meant for doing echo cancellation. A reasonably
|
||||
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:
|
||||
|
@ -1,6 +1,7 @@
|
||||
\section{Built-in Module \sectcode{__builtin__}}
|
||||
\bimodindex{__builtin__}
|
||||
|
||||
This module provides direct access to all `built-in' identifier of
|
||||
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}.
|
||||
function \code{open}. See the section on Built-in Functions in the
|
||||
previous chapter.
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{cgi}}
|
||||
\section{Standard Module \sectcode{cgi}}
|
||||
\stmodindex{cgi}
|
||||
\indexii{WWW}{server}
|
||||
\indexii{CGI}{protocol}
|
||||
@ -134,3 +134,85 @@ The module defines the following variable:
|
||||
The shell environment, exactly as received from the http server. See
|
||||
the CGI documentation for a description of the various fields.
|
||||
\end{datadesc}
|
||||
|
||||
\subsection{Example}
|
||||
|
||||
This example assumes that you have a WWW server up and running,
|
||||
e.g.\ NCSA's \code{httpd}.
|
||||
|
||||
Place the following file in a convenient spot in the WWW server's
|
||||
directory tree. E.g., if you place it in the subdirectory \file{test}
|
||||
of the root directory and call it \file{test.html}, its URL will be
|
||||
\file{http://\var{yourservername}/test/test.html}.
|
||||
|
||||
\begin{verbatim}
|
||||
<TITLE>Test Form Input</TITLE>
|
||||
<H1>Test Form Input</H1>
|
||||
<FORM METHOD="POST" ACTION="/cgi-bin/test.py">
|
||||
<INPUT NAME=Name> (Name)<br>
|
||||
<INPUT NAME=Address> (Address)<br>
|
||||
<INPUT TYPE=SUBMIT>
|
||||
</FORM>
|
||||
\end{verbatim}
|
||||
|
||||
Selecting this file's URL from a forms-capable browser such as Mosaic
|
||||
or Netscape will bring up a simple form with two text input fields and
|
||||
a ``submit'' button.
|
||||
|
||||
But wait. Before pressing ``submit'', a script that responds to the
|
||||
form must also be installed. The test file as shown assumes that the
|
||||
script is called \file{test.py} and lives in the server's
|
||||
\code{cgi-bin} directory. Here's the test script:
|
||||
|
||||
\begin{verbatim}
|
||||
#!/usr/local/bin/python
|
||||
|
||||
import cgi
|
||||
|
||||
print "Content-type: text/html"
|
||||
print # End of headers!
|
||||
print "<TITLE>Test Form Output</TITLE>"
|
||||
print "<H1>Test Form Output</H1>"
|
||||
|
||||
form = cgi.SvFormContentDict() # Load the form
|
||||
|
||||
name = addr = None # Default: no name and address
|
||||
|
||||
# Extract name and address from the form, if given
|
||||
|
||||
if form.has_key('Name'):
|
||||
name = form['Name']
|
||||
if form.has_key('Address'):
|
||||
addr = form['Address']
|
||||
|
||||
# Print an unnumbered list of the name and address, if present
|
||||
|
||||
print "<UL>"
|
||||
if name is not None:
|
||||
print "<LI>Name:", cgi.escape(name)
|
||||
if addr is not None:
|
||||
print "<LI>Address:", cgi.escape(addr)
|
||||
print "</UL>"
|
||||
\end{verbatim}
|
||||
|
||||
The script should be made executable (\samp{chmod +x \var{script}}).
|
||||
If the Python interpreter is not located at
|
||||
\file{/usr/local/bin/python} but somewhere else, the first line of the
|
||||
script should be modified accordingly.
|
||||
|
||||
Now that everything is installed correctly, we can try out the form.
|
||||
Bring up the test form in your WWW browser, fill in a name and address
|
||||
in the form, and press the ``submit'' button. The script should now
|
||||
run and its output is sent back to your browser. This should roughly
|
||||
look as follows:
|
||||
|
||||
\strong{Test Form Output}
|
||||
|
||||
\begin{itemize}
|
||||
\item Name: \var{the name you entered}
|
||||
\item Address: \var{the address you entered}
|
||||
\end{itemize}
|
||||
|
||||
If you didn't enter a name or address, the corresponding line will be
|
||||
missing (since the browser doesn't send empty form fields to the
|
||||
server).
|
||||
|
@ -1,5 +1,6 @@
|
||||
\section{Built-in module \sectcode{copy}}
|
||||
\section{Standard Module \sectcode{copy}}
|
||||
\stmodindex{copy}
|
||||
\renewcommand{\indexsubitem}{(copy function)}
|
||||
\ttindex{copy}
|
||||
\ttindex{deepcopy}
|
||||
|
||||
@ -14,7 +15,7 @@ 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.
|
||||
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
|
||||
@ -74,6 +75,7 @@ to control pickling: they can define methods called
|
||||
\code{__setstate__()}. See the description of module \code{pickle}
|
||||
for information on these methods.
|
||||
\stmodindex{pickle}
|
||||
\renewcommand{\indexsubitem}{(copy protocol)}
|
||||
\ttindex{__getinitargs__}
|
||||
\ttindex{__getstate__}
|
||||
\ttindex{__setstate__}
|
||||
|
@ -5,8 +5,13 @@ a cryptographic nature. They are available at the discretion of the
|
||||
installation.
|
||||
\index{cryptography}
|
||||
|
||||
%Hardcore cypherpunks will probably find the Python Cryptography Kit of
|
||||
%further interest; the package adds built-in modules for DES and IDEA
|
||||
%encryption, and provides a Python module for reading and decrypting PGP files.
|
||||
%\index{PGP}\indexii{DES}{cipher}\indexii{IDEA}{cipher}
|
||||
%\index{Python Cryptography Kit}
|
||||
Hardcore cypherpunks will probably find the Python Cryptography Kit of
|
||||
further interest; the package adds built-in modules for DES and IDEA
|
||||
encryption, and provides a Python module for reading and decrypting
|
||||
PGP files. The Python Cryptography Kit is not distributed with Python
|
||||
but available separately. See the URL
|
||||
\file{http://www.cs.mcgill.ca/\%7Efnord/crypt.html} for more information.
|
||||
\index{PGP}
|
||||
\indexii{DES}{cipher}
|
||||
\indexii{IDEA}{cipher}
|
||||
\index{Python Cryptography Kit}
|
||||
|
@ -24,7 +24,7 @@ inappropriate error.
|
||||
\begin{excdesc}{AttributeError}
|
||||
% xref to attribute reference?
|
||||
Raised when an attribute reference or assignment fails. (When an
|
||||
object does not support attributes references or attribute assignments
|
||||
object does not support attribute references or attribute assignments
|
||||
at all, \code{TypeError} is raised.)
|
||||
\end{excdesc}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
% Manual text by Jaap Vermeulen
|
||||
\section{Built-in module \sectcode{fcntl}}
|
||||
\section{Built-in Module \sectcode{fcntl}}
|
||||
\bimodindex{fcntl}
|
||||
\indexii{\UNIX{}}{file control}
|
||||
\indexii{\UNIX{}}{I/O control}
|
||||
|
@ -2,17 +2,18 @@
|
||||
\bimodindex{fl}
|
||||
|
||||
This module provides an interface to the FORMS Library by Mark
|
||||
Overmars, version 2.0b. For more info about FORMS, write to
|
||||
{\tt markov@cs.ruu.nl}.
|
||||
Overmars. 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 \code{FL} described below.
|
||||
dropping the initial \samp{fl_} from their name. Constants used by
|
||||
the library are defined in module \code{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
|
||||
button are methods of the Python object representing the form.
|
||||
form are methods of the Python object representing the form.
|
||||
Consequently, there are no Python equivalents for the C functions
|
||||
\code{fl_addto_form} and \code{fl_end_form}, and the equivalent of
|
||||
\code{fl_bgn_form} is called \code{fl.make_form}.
|
||||
@ -26,13 +27,13 @@ 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 avaiable, though, so you can mix
|
||||
interface to GL event handling is available, though, so you can mix
|
||||
FORMS with pure GL windows.
|
||||
|
||||
\strong{Please note:} importing \code{fl} implies a call to the GL function
|
||||
\code{foreground()} and to the FORMS routine \code{fl_init()}.
|
||||
|
||||
\subsection{Functions defined in module \sectcode{fl}}
|
||||
\subsection{Functions Defined in Module \sectcode{fl}}
|
||||
|
||||
Module \code{fl} defines the following functions. For more information
|
||||
about what they do, see the description of the equivalent C function
|
||||
@ -92,7 +93,7 @@ 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 inm which the user can select a file. It returns
|
||||
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}
|
||||
@ -130,7 +131,7 @@ See the description in the FORMS documentation of \code{fl_color},
|
||||
\code{fl_mapcolor} and \code{fl_getmcolor}.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Form object methods and data attributes}
|
||||
\subsection{Form Objects}
|
||||
|
||||
Form objects (returned by \code{fl.make_form()} above) have the
|
||||
following methods. Each method corresponds to a C function whose name
|
||||
@ -382,7 +383,7 @@ documentation:
|
||||
\lineiii{doublebuf}{int}{nonzero if double buffering on}
|
||||
\end{tableiii}
|
||||
|
||||
\subsection{FORMS object methods and data attributes}
|
||||
\subsection{FORMS Objects}
|
||||
|
||||
Besides methods specific to particular kinds of FORMS objects, all
|
||||
FORMS objects also have the following methods:
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{ftplib}}
|
||||
\section{Standard Module \sectcode{ftplib}}
|
||||
\stmodindex{ftplib}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module ftplib)}
|
||||
|
@ -92,8 +92,8 @@ exactly one argument.)
|
||||
\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{globals} dictionary is omitted it defaults to
|
||||
the \var{locals} dictionary. If both dictionaries are omitted, the
|
||||
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 \code{eval} is
|
||||
called. The return value is the result of the evaluated expression.
|
||||
Syntax errors are reported as exceptions. Example:
|
||||
@ -119,20 +119,21 @@ exactly one argument.)
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{execfile}{file\optional{\, globals\optional{\, locals}}}
|
||||
This function is similar to the \code{eval()} function or the
|
||||
This function is similar to the
|
||||
\code{exec} statement, but parses a file instead of a string. It is
|
||||
different from the \code{import} statement in that it does not use
|
||||
the module administration --- it reads the file unconditionally and
|
||||
does not create a new module.
|
||||
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{globals}
|
||||
dictionary is omitted it defaults to the \var{locals} dictionary.
|
||||
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 \code{execfile} is called. The return value is
|
||||
None.
|
||||
environment where \code{execfile()} is called. The return value is
|
||||
\code{None}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{filter}{function\, list}
|
||||
@ -173,8 +174,8 @@ removed.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{hex}{x}
|
||||
Convert a number to a hexadecimal string. The result is a valid
|
||||
Python expression.
|
||||
Convert an integer number (of any size) to a hexadecimal string.
|
||||
The result is a valid Python expression.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{id}{object}
|
||||
@ -194,7 +195,9 @@ removed.
|
||||
|
||||
\begin{funcdesc}{int}{x}
|
||||
Convert a number to a plain integer. The argument may be a plain or
|
||||
long integer or a floating point number.
|
||||
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.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{len}{s}
|
||||
@ -231,8 +234,8 @@ any kind of sequence; the result is always a list.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{oct}{x}
|
||||
Convert a number to an octal string. The result is a valid Python
|
||||
expression.
|
||||
Convert an integer number (of any size) to an octal string. The
|
||||
result is a valid Python expression.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{open}{filename\optional{\, mode\optional{\, bufsize}}}
|
||||
@ -290,7 +293,8 @@ there's no reliable way to determine whether this is the case.}
|
||||
the last element is the largest \code{\var{start} + \var{i} *
|
||||
\var{step}} less than \var{end}; if \var{step} is negative, the last
|
||||
element is the largest \code{\var{start} + \var{i} * \var{step}}
|
||||
greater than \var{end}. \var{step} must not be zero. Example:
|
||||
greater than \var{end}. \var{step} must not be zero (or else an
|
||||
exception is raised). Example:
|
||||
|
||||
\bcode\begin{verbatim}
|
||||
>>> range(10)
|
||||
@ -321,7 +325,7 @@ there's no reliable way to determine whether this is the case.}
|
||||
>>> s = raw_input('--> ')
|
||||
--> Monty Python's Flying Circus
|
||||
>>> s
|
||||
'Monty Python\'s Flying Circus'
|
||||
"Monty Python's Flying Circus"
|
||||
>>>
|
||||
\end{verbatim}\ecode
|
||||
\end{funcdesc}
|
||||
@ -337,17 +341,48 @@ 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. Note that if a module is
|
||||
syntactically correct but its initialization fails, the first
|
||||
\code{import} statement for it does not import the name, but does
|
||||
create a (partially initialized) module object; to reload the module
|
||||
you must first \code{import} it again (this will just make the
|
||||
partially initialized module object available) before you can
|
||||
\code{reload()} it.
|
||||
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 \code{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
|
||||
\code{import} it again (this will bind the name to the partially
|
||||
initialized module object) before you can \code{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 \code{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 \code{sys}, \code{__main__} and
|
||||
\code{__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 \code{from}
|
||||
{\ldots} \code{import} {\ldots}, calling \code{reload()} for the other
|
||||
module does not redefine the objects imported from it --- one way
|
||||
around this is to re-execute the \code{from} statement, another is to
|
||||
use \code{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}
|
||||
@ -385,23 +420,25 @@ always attempt to return a string that is acceptable to \code{eval()};
|
||||
its goal is to return a printable string.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{tuple}{object}
|
||||
\begin{funcdesc}{tuple}{sequence}
|
||||
Return a tuple whose items are the same and in the same order as
|
||||
\var{object}'s items. If \var{object} is alread a tuple, it
|
||||
\var{sequence}'s items. If \var{sequence} is alread 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}
|
||||
% XXXJH xref to buil-in objects here?
|
||||
Return the type of an \var{object}. The return value is a type
|
||||
object. There is not much you can do with type objects except compare
|
||||
them to other type objects; e.g., the following checks if a variable
|
||||
is a string:
|
||||
Return the type of an \var{object}. The return value is a type
|
||||
object. The standard module \code{types} defines names for all
|
||||
built-in types.
|
||||
\stmodindex{types}
|
||||
\obindex{type}
|
||||
For instance:
|
||||
|
||||
\bcode\begin{verbatim}
|
||||
>>> if type(x) == type(''): print 'It is a string'
|
||||
>>> import types
|
||||
>>> if type(x) == types.StringType: print "It's a string"
|
||||
\end{verbatim}\ecode
|
||||
\end{funcdesc}
|
||||
|
||||
@ -424,7 +461,7 @@ which yields the same values as the corresponding list, without
|
||||
actually storing them all simultaneously. The advantage of
|
||||
\code{xrange()} over \code{range()} is minimal (since \code{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. DOS) or when all
|
||||
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 \code{break}).
|
||||
\end{funcdesc}
|
||||
|
@ -5,7 +5,8 @@ This module helps scripts to parse the command line arguments in
|
||||
\code{sys.argv}.
|
||||
It uses the same conventions as the \UNIX{}
|
||||
\code{getopt()}
|
||||
function.
|
||||
function (including the special meanings of arguments of the form
|
||||
\samp{-} and \samp{--}).
|
||||
It defines the function
|
||||
\code{getopt.getopt(args, options)}
|
||||
and the exception
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{gopherlib}}
|
||||
\section{Standard Module \sectcode{gopherlib}}
|
||||
\stmodindex{gopherlib}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module gopherlib)}
|
||||
|
@ -13,7 +13,7 @@ following items from the group database (see \file{<grp.h>}), in order:
|
||||
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(s) they are in.)
|
||||
group they are in according to the password database.)
|
||||
An exception is raised if the entry asked for cannot be found.
|
||||
|
||||
It defines the following items:
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{htmllib}}
|
||||
\section{Standard Module \sectcode{htmllib}}
|
||||
\stmodindex{htmllib}
|
||||
\index{HTML}
|
||||
\index{hypertext}
|
||||
@ -27,12 +27,14 @@ The following is a summary of the interface defined by
|
||||
\item
|
||||
The interface to feed data to an instance is through the \code{feed()}
|
||||
method, which takes a string argument. This can be called with as
|
||||
little or as much text at a time as desired. When the data contains complete
|
||||
little or as much text at a time as desired;
|
||||
\code{p.feed(a); p.feed(b)} has the same effect as \code{p.feed(a+b)}.
|
||||
When the data contains complete
|
||||
HTML elements, these are processed immediately; incomplete elements
|
||||
are saved in a buffer. To force processing of all unprocessed data,
|
||||
call the \code{close()} method.
|
||||
|
||||
Example: to parse the entire contents of a file, do
|
||||
Example: to parse the entire contents of a file, do\\
|
||||
\code{parser.feed(open(file).read()); parser.close()}.
|
||||
|
||||
\item
|
||||
@ -142,7 +144,7 @@ sheets are:
|
||||
\index{style sheet}
|
||||
|
||||
\begin{datadesc}{NullStylesheet}
|
||||
A style sheet for use on a dumb output device such as an ASCII
|
||||
A style sheet for use on a dumb output device such as an \ASCII{}
|
||||
terminal.
|
||||
\end{datadesc}
|
||||
|
||||
@ -242,9 +244,9 @@ spaces.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{datadesc}{nospace}
|
||||
If this instance variable is true, empty words are ignored by
|
||||
\code{addword}. It is set to false after a non-empty word has been
|
||||
added.
|
||||
If this instance variable is true, empty words should be ignored by
|
||||
\code{addword}. It should be set to false after a non-empty word has
|
||||
been added.
|
||||
\end{datadesc}
|
||||
|
||||
\begin{funcdesc}{setjust}{justification}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{httplib}}
|
||||
\section{Standard Module \sectcode{httplib}}
|
||||
\stmodindex{httplib}
|
||||
\index{HTTP}
|
||||
|
||||
@ -15,7 +15,15 @@ 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{host:port}, else the default HTTP port (80) is used.
|
||||
If no host is passed, no connection is made, and the \code{connect}
|
||||
method should be used to connect to a server.
|
||||
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 \code{HTTP} instance has been connected to an HTTP server, it
|
||||
should be used as follows:
|
||||
@ -27,7 +35,7 @@ should be used as follows:
|
||||
\item[2.] Make zero or more calls to the \code{putheader()} method.
|
||||
|
||||
\item[3.] Call the \code{endheaders()} method (this can be omitted if
|
||||
step 4. makes no calls).
|
||||
step 4 makes no calls).
|
||||
|
||||
\item[4.] Optional calls to the \code{send()} method.
|
||||
|
||||
@ -93,3 +101,22 @@ Return a file object from which the data returned by the server can be
|
||||
read, using the \code{read()}, \code{readline()} or \code{readlines()}
|
||||
methods.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{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}
|
||||
|
@ -1,9 +1,9 @@
|
||||
\section{Built-in module \sectcode{imageop}}
|
||||
\section{Built-in Module \sectcode{imageop}}
|
||||
\bimodindex{imageop}
|
||||
|
||||
The \code{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
|
||||
stored in Python strings. This is the same format as used
|
||||
by \code{gl.lrectwrite} and the \code{imgfile} module.
|
||||
|
||||
The module defines the following variables and functions:
|
||||
@ -17,49 +17,48 @@ per pixel, etc.
|
||||
|
||||
|
||||
\begin{funcdesc}{crop}{image\, psize\, width\, height\, x0\, y0\, x1\, y1}
|
||||
This function takes the image in \var{image}, which should by
|
||||
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, and returns the selected part of that image. \var{x0},
|
||||
\var{y0}, \var{x1} and \var{y1} are like the \code{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.
|
||||
\var{psize} bytes. \var{x0}, \var{y0}, \var{x1} and \var{y1} are like
|
||||
the \code{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}
|
||||
This function returns an \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.
|
||||
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}
|
||||
This function runs 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.
|
||||
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}
|
||||
This function converts 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 \code{mono2grey}.
|
||||
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 \code{mono2grey}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{dither2mono}{image\, width\, height}
|
||||
This function also converts an 8-bit greyscale image to a 1-bit
|
||||
monochrome image but it uses a (simple-minded) dithering algorithm.
|
||||
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}
|
||||
This function converts 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.
|
||||
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}
|
||||
@ -74,7 +73,7 @@ dithering.
|
||||
|
||||
\begin{funcdesc}{dither2grey2}{image\, width\, height}
|
||||
Convert an 8-bit greyscale image to a 2-bit greyscale image with
|
||||
dithering. As for \code{dither2mono}, the dithering algorithm is
|
||||
dithering. As for \code{dither2mono}, the dithering algorithm is
|
||||
currently very simple.
|
||||
\end{funcdesc}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{imgfile}}
|
||||
\section{Built-in Module \sectcode{imgfile}}
|
||||
\bimodindex{imgfile}
|
||||
|
||||
The imgfile module allows python programs to access SGI imglib image
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{imp}}
|
||||
\section{Built-in Module \sectcode{imp}}
|
||||
\bimodindex{imp}
|
||||
\index{import}
|
||||
|
||||
@ -9,7 +9,7 @@ functions:
|
||||
\renewcommand{\indexsubitem}{(in module struct)}
|
||||
|
||||
\begin{funcdesc}{get_magic}{}
|
||||
Return the magic string used to recognize value byte-compiled code
|
||||
Return the magic string value used to recognize byte-compiled code
|
||||
files (``\code{.pyc} files'').
|
||||
\end{funcdesc}
|
||||
|
||||
@ -22,15 +22,15 @@ 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
|
||||
\code{PY_SOURCE}, \code{PY_COMPILED} or \code{C_EXTENSION}, defined
|
||||
below.
|
||||
below. (System-dependent values may also be returned.)
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{find_module}{name\, \optional{path}}
|
||||
Try to find the module \var{name} on the search path \var{path}. The
|
||||
default \var{path} is \code{sys.path}. 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
|
||||
corresponding to the file found, \var{pathname} is the pathname of the
|
||||
\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 \code{get_suffixes} describing the kind of file found.
|
||||
\end{funcdesc}
|
||||
@ -134,33 +134,27 @@ The following function emulates the default import statement:
|
||||
|
||||
\begin{verbatim}
|
||||
import imp
|
||||
from sys import modules
|
||||
import sys
|
||||
|
||||
def __import__(name, globals=None, locals=None, fromlist=None):
|
||||
# Fast path: let's see if it's already in sys.modules.
|
||||
# Two speed optimizations are worth mentioning:
|
||||
# - We use 'modules' instead of 'sys.modules'; this saves a
|
||||
# dictionary look-up per call.
|
||||
# - It's also faster to use a try-except statement than
|
||||
# to use modules.has_key(name) to check if it's there.
|
||||
try:
|
||||
return modules[name]
|
||||
except KeyError:
|
||||
pass
|
||||
# Fast path: see if the module has already been imported.
|
||||
if sys.modules.has_key(name):
|
||||
return sys.modules[name]
|
||||
|
||||
# See if it's a built-in module
|
||||
# If any of the following calls raises an exception,
|
||||
# there's a problem we con't handle -- let the caller handle it.
|
||||
|
||||
# See if it's a built-in module.
|
||||
m = imp.init_builtin(name)
|
||||
if m:
|
||||
return m
|
||||
|
||||
# See if it's a frozen module
|
||||
# See if it's a frozen module.
|
||||
m = imp.init_frozen(name)
|
||||
if m:
|
||||
return m
|
||||
|
||||
# Search the default path (i.e. sys.path).
|
||||
# If this raises an exception, the module is not found --
|
||||
# let the caller handle the exception.
|
||||
fp, pathname, (suffix, mode, type) = imp.find_module(name)
|
||||
|
||||
# See what we got.
|
||||
@ -170,7 +164,7 @@ def __import__(name, globals=None, locals=None, fromlist=None):
|
||||
if type == imp.PY_SOURCE:
|
||||
return imp.load_source(name, pathname, fp)
|
||||
if type == imp.PY_COMPILED:
|
||||
return imp.load_source(name, pathname, fp)
|
||||
return imp.load_compiled(name, pathname, fp)
|
||||
|
||||
# Shouldn't get here at all.
|
||||
raise ImportError, '%s: unknown module type (%d)' % (name, type)
|
||||
|
@ -4,9 +4,9 @@
|
||||
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 VAX, transport the file to a Mac, and read
|
||||
it back there). Details of the format not explained here; read the
|
||||
source if you're interested.%
|
||||
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.
|
||||
@ -14,6 +14,14 @@ 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
|
||||
\code{pickle} and \code{shelve}. The \code{marshal} module exists
|
||||
mainly to support reading and writing the ``pseudo-compiled'' code for
|
||||
Python modules of \samp{.pyc} files.
|
||||
\stmodindex{pickle}
|
||||
\stmodindex{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
|
||||
@ -23,7 +31,22 @@ 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 an infinite loop).
|
||||
(they will cause infinite loops).
|
||||
|
||||
{\bf Caveat:} On machines where C's \code{long int} type has more than
|
||||
32 bits (such as the DEC Alpha or the HP Precision Architecture), it
|
||||
is possible to create plain Python integers that are longer than 32
|
||||
bits. Since the current \code{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 \code{.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 \code{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.
|
||||
@ -31,6 +54,7 @@ operating on strings.
|
||||
The module defines these functions:
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module marshal)}
|
||||
|
||||
\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
|
||||
|
@ -1,61 +1,64 @@
|
||||
\section{Built-in module \sectcode{md5}}
|
||||
\section{Built-in Module \sectcode{md5}}
|
||||
\bimodindex{md5}
|
||||
|
||||
This module implements the interface to RSA's MD5 message digest
|
||||
algorithm (see also the file \file{md5.doc}). Its use is quite
|
||||
straightforward:\ use the function \code{new} to create an
|
||||
\dfn{md5}-object. You can now ``feed'' this object with arbitrary
|
||||
strings.
|
||||
algorithm (see also Internet RFC 1321). Its use is quite
|
||||
straightforward:\ use the \code{md5.new()} to create an md5 object.
|
||||
You can now feed this object with arbitrary strings using the
|
||||
\code{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 \code{digest()} method.
|
||||
|
||||
At any time you can ask for the ``final'' digest of the object. Internally,
|
||||
a temporary copy of the object is made and the digest is computed and
|
||||
returned. Because of the copy, the digest operation is not destructive
|
||||
for the object. Before a more exact description of the module's use, a small
|
||||
example will be helpful:
|
||||
to obtain the digest of the string \code{'abc'}, use \ldots
|
||||
For example, to obtain the digest of the string {\tt"Nobody inspects
|
||||
the spammish repetition"}:
|
||||
|
||||
\bcode\begin{verbatim}
|
||||
>>> import md5
|
||||
>>> m = md5.new()
|
||||
>>> m.update('abc')
|
||||
>>> m.update("Nobody inspects")
|
||||
>>> m.update(" the spammish repetition")
|
||||
>>> m.digest()
|
||||
'\220\001P\230<\322O\260\326\226?}(\341\177r'
|
||||
'\273d\234\203\335\036\245\311\331\336\311\241\215\360\377\351'
|
||||
\end{verbatim}\ecode
|
||||
|
||||
More condensed:
|
||||
|
||||
\bcode\begin{verbatim}
|
||||
>>> md5.new('abc').digest()
|
||||
'\220\001P\230<\322O\260\326\226?}(\341\177r'
|
||||
>>> 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}\ecode
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module md5)}
|
||||
|
||||
\begin{funcdesc}{new}{\optional{arg}}
|
||||
Create a new md5-object. If \var{arg} is present, an initial
|
||||
\code{update} method is called with \var{arg} as argument.
|
||||
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
|
||||
\code{new} function.
|
||||
\code{new()} function.
|
||||
\end{funcdesc}
|
||||
|
||||
An md5-object has the following methods:
|
||||
An md5 object has the following methods:
|
||||
|
||||
\renewcommand{\indexsubitem}{(md5 method)}
|
||||
\begin{funcdesc}{update}{arg}
|
||||
Update this md5-object with the string \var{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{funcdesc}
|
||||
|
||||
\begin{funcdesc}{digest}{}
|
||||
% XXX The following is not quite clear; what does MD5Final do?
|
||||
Return the \dfn{digest} of this md5-object. Internally, a copy is made
|
||||
and the \C-function \code{MD5Final} is called. Finally the digest is
|
||||
returned.
|
||||
Return the digest of the strings passed to the \code{update()}
|
||||
method so far. This is an 8-byte string which may contain
|
||||
non-\ASCII{} characters, including null bytes.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{copy}{}
|
||||
Return a separate copy of this md5-object. An \code{update} to this
|
||||
copy won't affect the original object.
|
||||
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{funcdesc}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{mimetools}}
|
||||
\section{Standard Module \sectcode{mimetools}}
|
||||
\stmodindex{mimetools}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module mimetools)}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{mpz}}
|
||||
\section{Built-in Module \sectcode{mpz}}
|
||||
\bimodindex{mpz}
|
||||
|
||||
This module implements the interface to part of the GNU MP library.
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{nntplib}}
|
||||
\section{Standard Module \sectcode{nntplib}}
|
||||
\stmodindex{nntplib}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module nntplib)}
|
||||
|
@ -26,9 +26,11 @@ In addition to whatever the correct OS dependent module exports, the
|
||||
following variables and functions are always exported by \code{os}:
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module os)}
|
||||
|
||||
\begin{datadesc}{name}
|
||||
The name of the OS dependent module imported, e.g. \code{'posix'} or
|
||||
\code{'mac'}.
|
||||
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}
|
||||
@ -49,29 +51,54 @@ e.g. \code{'..'} for POSIX or \code{'::'} for the Mac.
|
||||
\end{datadesc}
|
||||
|
||||
\begin{datadesc}{sep}
|
||||
The character used by the OS to separate pathname components, e.g.
|
||||
The character used by the OS to separate pathname components, e.g.\
|
||||
\code{'/'} for POSIX or \code{':'} for the Mac. Note that knowing this
|
||||
is not sufficient to be able to parse or concatenate pathnames---better
|
||||
use \code{os.path.split()} and \code{os.path.join()}---but it is
|
||||
occasionally useful.
|
||||
\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{os.exec*p*()} if the environment
|
||||
doesn't have a \code{'PATH'} key.
|
||||
\end{datadesc}
|
||||
|
||||
\begin{funcdesc}{execl}{path\, arg0\, arg1\, ...}
|
||||
This is equivalent to a call to \code{os.execv} with an \var{argv}
|
||||
of \code{[\var{arg0}, \var{arg1}, ...]}.
|
||||
This is equivalent to
|
||||
\code{os.execv(\var{path}, (\var{arg0}, \var{arg1}, ...))}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{execle}{path\, arg0\, arg1\, ...\, env}
|
||||
This is equivalent to a call to \code{os.execve} with an \var{argv}
|
||||
of \code{[\var{arg0}, \var{arg1}, ...]}.
|
||||
This is equivalent to
|
||||
\code{os.execve(\var{path}, (\var{arg0}, \var{arg1}, ...), \var{env})}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{execlp}{path\, arg0\, arg1\, ...}
|
||||
This is like \code{execl} 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']}.
|
||||
This is equivalent to
|
||||
\code{os.execvp(\var{path}, (\var{arg0}, \var{arg1}, ...))}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{execvp}{path\, arg0\, arg1\, ...}
|
||||
\code{execvp} is for \code{execv} what \code{execlp} is for \code{execl}.
|
||||
\begin{funcdesc}{execvp}{path\, args}
|
||||
This is like \code{os.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{os.environ['PATH']}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{execvpe}{path\, args\, env}
|
||||
This is a cross between \code{os.execve()} and \code{os.execvp()}.
|
||||
The directory list is obtained from \code{\var{env}['PATH']}.
|
||||
\end{funcdesc}
|
||||
|
||||
(The functions \code{os.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 \code{posix}, together with all
|
||||
other functions that \code{os} imports from the OS dependent module.)
|
||||
|
@ -91,7 +91,7 @@ Enter post-mortem debugging of the traceback found in
|
||||
\code{sys.last_traceback}.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Debugger Commands}
|
||||
\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
|
||||
@ -117,7 +117,7 @@ but the debugger's state is not changed.
|
||||
|
||||
\begin{description}
|
||||
|
||||
\item[{h(elp) [\var{command}]}]
|
||||
\item[h(elp) [\var{command}]]
|
||||
|
||||
Without argument, print the list of available commands.
|
||||
With a \var{command} as argument, print help about that command.
|
||||
@ -127,40 +127,40 @@ through that command instead. Since the \var{command} argument must be
|
||||
an identifier, ``\code{help exec}'' must be entered to get help on the
|
||||
``\code{!}'' command.
|
||||
|
||||
\item[{w(here)}]
|
||||
\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)}]
|
||||
\item[d(own)]
|
||||
|
||||
Move the current frame one level down in the stack trace
|
||||
(to an older frame).
|
||||
|
||||
\item[{u(p)}]
|
||||
\item[u(p)]
|
||||
|
||||
Move the current frame one level up in the stack trace
|
||||
(to a newer frame).
|
||||
|
||||
\item[{b(reak) [\var{lineno}\code{|}\var{function}]}]
|
||||
\item[b(reak) [\var{lineno}\code{|}\var{function}]]
|
||||
|
||||
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.
|
||||
|
||||
\item[{cl(ear) [\var{lineno}]}]
|
||||
\item[cl(ear) [\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)}]
|
||||
\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)}]
|
||||
\item[n(ext)]
|
||||
|
||||
Continue execution until the next line in the current function
|
||||
is reached or it returns. (The difference between \code{next} and
|
||||
@ -168,15 +168,15 @@ is reached or it returns. (The difference between \code{next} and
|
||||
\code{next} executes called functions at (nearly) full speed, only
|
||||
stopping at the next line in the current function.)
|
||||
|
||||
\item[{r(eturn)}]
|
||||
\item[r(eturn)]
|
||||
|
||||
Continue execution until the current function returns.
|
||||
|
||||
\item[{c(ont(inue))}]
|
||||
\item[c(ont(inue))]
|
||||
|
||||
Continue execution, only stop when a breakpoint is encountered.
|
||||
|
||||
\item[{l(ist) [\var{first} [, \var{last}]]}]
|
||||
\item[l(ist) [\var{first} [, \var{last}]]]
|
||||
|
||||
List source code for the current file. Without arguments, list 11
|
||||
lines around the current line or continue the previous listing. With
|
||||
@ -184,17 +184,17 @@ 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)}]
|
||||
\item[a(rgs)]
|
||||
|
||||
Print the argument list of the current function.
|
||||
|
||||
\item[{p \var{expression}}]
|
||||
\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[{[!] \var{statement}}]
|
||||
\item[[!] \var{statement}]
|
||||
|
||||
Execute the (one-line) \var{statement} in the context of
|
||||
the current stack frame.
|
||||
@ -207,9 +207,83 @@ command with a ``\code{global}'' command on the same line, e.g.:
|
||||
(Pdb)
|
||||
\end{verbatim}
|
||||
|
||||
\item[{q(uit)}]
|
||||
\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 sys.settrace(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}, \var{arg})
|
||||
|
||||
\begin{description}
|
||||
|
||||
\item[\var{frame}] is the current stack frame
|
||||
|
||||
\item[\var{event}] is a string: \code{'call'}, \code{'line'}, \code{'return'}
|
||||
or \code{'exception'}
|
||||
|
||||
\item[\var{arg}] is dependent on the event type
|
||||
|
||||
\end{description}
|
||||
|
||||
A trace function should return a new trace function or None.
|
||||
Class methods are accepted (and most useful!) as trace methods.
|
||||
|
||||
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.
|
||||
|
||||
Stack frame objects have the following read-only attributes:
|
||||
|
||||
\begin{description}
|
||||
\item[f_code] the code object being executed
|
||||
\item[f_lineno] the current line number (\code{-1} for \code{'call'} events)
|
||||
\item[f_back] the stack frame of the caller, or None
|
||||
\item[f_locals] dictionary containing local name bindings
|
||||
\item[f_globals] dictionary containing global name bindings
|
||||
\end{description}
|
||||
|
||||
Code objects have the following read-only attributes:
|
||||
|
||||
\begin{description}
|
||||
\item[co_code] the code string
|
||||
\item[co_names] the list of names used by the code
|
||||
\item[co_consts] the list of (literal) constants used by the code
|
||||
\item[co_filename] the filename from which the code was compiled
|
||||
\end{description}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{pickle}}
|
||||
\section{Standard Module \sectcode{pickle}}
|
||||
\stmodindex{pickle}
|
||||
\index{persistency}
|
||||
\indexii{persistent}{objects}
|
||||
@ -7,6 +7,8 @@
|
||||
\indexii{flattening}{objects}
|
||||
\indexii{pickling}{objects}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module pickle)}
|
||||
|
||||
The \code{pickle} module implements a basic but powerful algorithm for
|
||||
``pickling'' (a.k.a.\ serializing, marshalling or flattening) nearly
|
||||
arbitrary Python objects. This is a more primitive notion than
|
||||
@ -28,11 +30,11 @@ following correctly:
|
||||
|
||||
\begin{itemize}
|
||||
|
||||
\item recursive objects
|
||||
\item recursive objects (objects containing references to themselves)
|
||||
|
||||
\item pointer sharing
|
||||
\item object sharing (references to the same object in different places)
|
||||
|
||||
\item instances of user-defined classes
|
||||
\item user-defined classes and their instances
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@ -42,13 +44,13 @@ standards such as CORBA (which probably can't represent pointer
|
||||
sharing or recursive objects); however it means that non-Python
|
||||
programs may not be able to reconstruct pickled Python objects.
|
||||
|
||||
The \code{pickle} data format uses a printable ASCII representation.
|
||||
The \code{pickle} data format uses a printable \ASCII{} representation.
|
||||
This is slightly more voluminous than a binary representation.
|
||||
However, small integers actually take {\em less} space when
|
||||
represented as minimal-size decimal strings than when represented as
|
||||
32-bit binary numbers, and strings are only much longer if they
|
||||
contain many control characters or 8-bit characters. The big
|
||||
advantage of using printable ASCII (and of some other characteristics
|
||||
advantage of using printable \ASCII{} (and of some other characteristics
|
||||
of \code{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. (I could have gone a step further and used a
|
||||
@ -67,7 +69,7 @@ Trojan horses into a program.
|
||||
For the benefit of persistency modules written using \code{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
|
||||
arbitrary string of printable \ASCII{} characters. The resolution of
|
||||
such names is not defined by the \code{pickle} module --- the
|
||||
persistent object module will have to implement a method
|
||||
\code{persistent_load}. To write references to persistent objects,
|
||||
@ -78,6 +80,8 @@ 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.
|
||||
|
||||
\renewcommand{\indexsubitem}{(pickle protocol)}
|
||||
|
||||
Next, it must normally be possible to create class instances by
|
||||
calling the class without arguments. If this is undesirable, the
|
||||
class can define a method \code{__getinitargs__()}, which should
|
||||
@ -86,7 +90,7 @@ class constructor (\code{__init__()}).
|
||||
\ttindex{__getinitargs__}
|
||||
\ttindex{__init__}
|
||||
|
||||
Classes can further influence how they are pickled --- if the class
|
||||
Classes can further influence how their instances are pickled --- if the class
|
||||
defines the method \code{__getstate__()}, it is called and the return
|
||||
state is pickled as the contents for the instance, and if the class
|
||||
defines the method \code{__setstate__()}, it is called with the
|
||||
@ -113,6 +117,13 @@ 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 \code{__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.
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module pickle)}
|
||||
|
||||
The interface can be summarized as follows.
|
||||
|
||||
To pickle an object \code{x} onto a file \code{f}, open for writing:
|
||||
@ -122,6 +133,12 @@ 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}
|
||||
@ -129,11 +146,19 @@ u = pickle.Unpickler(f)
|
||||
x = u.load(x)
|
||||
\end{verbatim}
|
||||
|
||||
A shorthand is:
|
||||
|
||||
\begin{verbatim}
|
||||
x = pickle.load(f)
|
||||
\end{verbatim}
|
||||
|
||||
The \code{Pickler} class only calls the method \code{f.write} with a
|
||||
string argument. The \code{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 following types can be pickled:
|
||||
\begin{itemize}
|
||||
@ -146,25 +171,56 @@ The following types can be pickled:
|
||||
|
||||
\item tuples, lists and dictionaries containing only picklable objects
|
||||
|
||||
\item class instances whose \code{__dict__} or \code{__setstate__()}
|
||||
is picklable
|
||||
\item classes that are defined at the top level in a module
|
||||
|
||||
\item instances of such classes whose \code{__dict__} or
|
||||
\code{__setstate__()} is picklable
|
||||
|
||||
\end{itemize}
|
||||
|
||||
Attempts to pickle unpicklable objects will raise an exception; when
|
||||
this happens, an unspecified number of bytes may have been written to
|
||||
the file argument.
|
||||
Attempts to pickle unpicklable objects will raise the
|
||||
\code{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 \code{Pickler.dump()} or to
|
||||
\code{Unpickler.load()}, as long as there is a one-to-one
|
||||
correspondence between \code{Pickler} and \code{Unpickler} objects and
|
||||
between \code{dump} and \code{load} calls for any pair of
|
||||
corresponding \code{Pickler} and \code{Unpicklers}. {\em 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 \code{Pickler} instance, the
|
||||
object is not pickled again --- a reference to it is pickled and the
|
||||
\code{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.)
|
||||
It is possible to make multiple calls to the \code{dump()} method of
|
||||
the same \code{Pickler} instance. These must then be matched to the
|
||||
same number of calls to the \code{load()} instance of the
|
||||
corresponding \code{Unpickler} instance. If the same object is
|
||||
pickled by multiple \code{dump()} calls, the \code{load()} will all
|
||||
yield references to the same object. {\em 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 \code{Pickler} instance, the object is not
|
||||
pickled again --- a reference to it is pickled and the
|
||||
\code{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 \code{Pickler} and \code{Unpickler} classes, the
|
||||
module defines the following functions, and an exception:
|
||||
|
||||
\begin{funcdesc}{dump}{object\, file}
|
||||
Write a pickled representation of \var{obect} to the open file object
|
||||
\var{file}. This is equivalent to \code{Pickler(file).dump(object)}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{load}{file}
|
||||
Read a pickled object from the open file object \var{file}. This is
|
||||
equivalent to \code{Unpickler(file).load()}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{dumps}{object}
|
||||
Return the pickled representation of the object as a string, instead
|
||||
of writing it to a file.
|
||||
\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}
|
||||
|
@ -1,12 +1,20 @@
|
||||
\section{Built-in Module \sectcode{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).
|
||||
It is available in all Python versions except on the Macintosh;
|
||||
the MS-DOS version does not support certain functions.
|
||||
|
||||
\strong{Do not import this module directly.} Instead, import the
|
||||
module \code{os}, which provides a \emph{portable} version of this
|
||||
interface. On \UNIX{}, the \code{os} module provides a superset of
|
||||
the \code{posix} interface. On non-\UNIX{} operating systems the
|
||||
\code{posix} module is not available, but a subset is always available
|
||||
through the \code{os} interface. Once \code{os} is imported, there is
|
||||
\emph{no} performance penalty in using it instead of
|
||||
\code{posix}.
|
||||
\stmodindex{os}
|
||||
|
||||
The descriptions below are very terse; refer to the
|
||||
corresponding \UNIX{} manual entry for more information.
|
||||
|
||||
@ -20,13 +28,18 @@ Module \code{posix} defines the following data items:
|
||||
\begin{datadesc}{environ}
|
||||
A dictionary representing the string environment at the time
|
||||
the interpreter was started.
|
||||
(Modifying this dictionary does not affect the string environment of the
|
||||
interpreter.)
|
||||
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 \code{execv()}, \code{popen()} or \code{system()}; if you
|
||||
need to change the environment, pass \code{environ} to \code{execve()}
|
||||
or add variable assignments and export statements to the command
|
||||
string for \code{system()} or \code{popen()}.%
|
||||
\footnote{The problem with automatically passing on \code{environ} is
|
||||
that there is no portable way of changing the environment.}
|
||||
\end{datadesc}
|
||||
|
||||
\renewcommand{\indexsubitem}{(exception in module posix)}
|
||||
|
@ -7,12 +7,13 @@ 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
|
||||
inherits all the standard file object methods and adds the methods
|
||||
described below.
|
||||
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 \code{fcntl()} for file locking.
|
||||
|
||||
To instantiate a posixfile object, use the \code{open()} function in
|
||||
the posixfile module. The resulting object looks and feels the same as
|
||||
a standard file object.
|
||||
the posixfile module. The resulting object looks and feels roughly
|
||||
the same as a standard file object.
|
||||
|
||||
The posixfile module defines the following constants:
|
||||
|
||||
@ -32,10 +33,11 @@ offset is calculated from the end of the file
|
||||
The posixfile module defines the following functions:
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module posixfile)}
|
||||
\begin{funcdesc}{open}{filename\, mode}
|
||||
|
||||
\begin{funcdesc}{open}{filename\optional{\, mode\optional{\, bufsize}}}
|
||||
Create a new posixfile object with the given filename and mode. The
|
||||
filename and mode are interpreted the same way as the \code{open()}
|
||||
builtin function.
|
||||
\var{filename}, \var{mode} and \var{bufsize} arguments are
|
||||
interpreted the same way as by the \code{open()} builtin function.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{fileopen}{fileobject}
|
||||
@ -102,8 +104,8 @@ 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,}{(1)}
|
||||
{}&{\hskip0.5cm or \code{None} if there is no conflict.}&{}\\
|
||||
\lineiii{?}{return the first lock conflicting with the requested lock, or
|
||||
\code{None} if there is no conflict.}{(1)}
|
||||
\end{tableiii}
|
||||
|
||||
Note:
|
||||
|
@ -1,9 +1,14 @@
|
||||
\section{Standard Module \sectcode{posixpath}}
|
||||
|
||||
\stmodindex{posixpath}
|
||||
|
||||
This module implements some useful functions on POSIX pathnames.
|
||||
|
||||
\strong{Do not import this module directly.} Instead, import the
|
||||
module \code{os} and use \code{os.path}.
|
||||
\stmodindex{os}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module posixpath)}
|
||||
|
||||
\begin{funcdesc}{basename}{p}
|
||||
Return the base name of pathname
|
||||
\var{p}.
|
||||
@ -66,10 +71,12 @@ Always false if symbolic links are not supported.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{ismount}{p}
|
||||
Return true if \var{p} is a mount point. (This currently checks whether
|
||||
\code{\var{p}/..} is on a different device from \var{p} or whether
|
||||
\code{\var{p}/..} and \var{p} point to the same i-node on the same
|
||||
device --- is this test correct for all \UNIX{} and POSIX variants?)
|
||||
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\, q}
|
||||
@ -128,9 +135,10 @@ Calls the function \var{visit} with arguments
|
||||
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{posix.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
|
||||
\code{del} or slice assignment.)
|
||||
\code{posix.listdir(\var{dirname})}, so including \samp{.} and
|
||||
\samp{..}). 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 \code{del} or slice
|
||||
assignment.)
|
||||
\end{funcdesc}
|
||||
|
@ -2,7 +2,7 @@
|
||||
\stmodindex{profile}
|
||||
\stmodindex{pstats}
|
||||
|
||||
Copyright 1994, by InfoSeek Corporation, all rights reserved.
|
||||
Copyright \copyright\ 1994, by InfoSeek Corporation, all rights reserved.
|
||||
|
||||
Written by James Roskind%
|
||||
\footnote{
|
||||
@ -42,7 +42,7 @@ ways at times. Please send suggestions for improvements to:
|
||||
I'd appreciate the feedback.
|
||||
|
||||
|
||||
\section{Introduction}
|
||||
\section{Introduction to the profiler}
|
||||
|
||||
A \dfn{profiler} is a program that describes the run time performance
|
||||
of a program, providing a variety of statistics. This documentation
|
||||
@ -242,7 +242,7 @@ of algorithms to be directly compared to iterative implementations.
|
||||
|
||||
\section{Reference Manual}
|
||||
|
||||
\renewcommand{\indexsubitem}{}
|
||||
\renewcommand{\indexsubitem}{(profiler function)}
|
||||
|
||||
The primary entry point for the profiler is the global function
|
||||
\code{profile.run()}. It is typically used to create any profile
|
||||
@ -254,7 +254,7 @@ 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}{profile.run}{string\optional{\, filename}}
|
||||
\begin{funcdesc}{profile.run}{string\optional{\, filename\optional{\, ...}}}
|
||||
|
||||
This function takes a single argument that has can be passed to the
|
||||
\code{exec} statement, and an optional file name. In all cases this
|
||||
@ -336,12 +336,12 @@ need to be combined with data in an existing \code{Stats} object, the
|
||||
\end{funcdesc}
|
||||
|
||||
|
||||
\subsection{Methods Of The \sectcode{Stats} Class}
|
||||
\subsection{The \sectcode{Stats} Class}
|
||||
|
||||
\renewcommand{\indexsubitem}{(Stats method)}
|
||||
|
||||
\begin{funcdesc}{strip_dirs}{}
|
||||
This method for the code{Stats} class removes all leading path information
|
||||
This method for the \code{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
|
||||
@ -355,7 +355,7 @@ these two entries are accumulated into a single entry.
|
||||
|
||||
|
||||
\begin{funcdesc}{add}{filename\optional{\, ...}}
|
||||
This method of the code{Stats} class accumulates additional profiling
|
||||
This method of the \code{Stats} class accumulates additional profiling
|
||||
information into the current profiling object. Its arguments should
|
||||
refer to filenames created by the corresponding version of
|
||||
\code{profile.run()}. Statistics for identically named (re: file,
|
||||
@ -364,7 +364,7 @@ function statistics.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{sort_stats}{key\optional{\, ...}}
|
||||
This method modifies the code{Stats} object by sorting it according to the
|
||||
This method modifies the \code{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"}).
|
||||
|
||||
@ -412,7 +412,7 @@ additional arguments will be silently ignored.
|
||||
|
||||
|
||||
\begin{funcdesc}{reverse_order}{}
|
||||
This method for the code{Stats} class reverses the ordering of the basic
|
||||
This method for the \code{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
|
||||
@ -420,7 +420,7 @@ the sort key of choice.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{print_stats}{restriction\optional{\, ...}}
|
||||
This method for the code{Stats} class prints out a report as described
|
||||
This method for the \code{Stats} class prints out a report as described
|
||||
in the \code{profile.run()} definition.
|
||||
|
||||
The order of the printing is based on the last \code{sort_stats()}
|
||||
@ -454,7 +454,7 @@ and then proceed to only print the first 10\% of them.
|
||||
|
||||
|
||||
\begin{funcdesc}{print_callers}{restrictions\optional{\, ...}}
|
||||
This method for the code{Stats} class prints a list of all functions
|
||||
This method for the \code{Stats} class prints a list of all functions
|
||||
that called each function in the profiled database. The ordering is
|
||||
identical to that provided by \code{print_stats()}, and the definition
|
||||
of the restricting argument is also identical. For convenience, a
|
||||
@ -464,14 +464,14 @@ is the cumulative time spent in the function at the right.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{print_callees}{restrictions\optional{\, ...}}
|
||||
This method for the code{Stats} class prints a list of all function
|
||||
This method for the \code{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 \code{print_callers()} method.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{ignore}{}
|
||||
This method of the code{Stats} class is used to dispose of the value
|
||||
This method of the \code{Stats} class is used to dispose of the value
|
||||
returned by earlier methods. All standard methods in this class
|
||||
return the instance that is being processed, so that the commands can
|
||||
be strung together. For example:
|
||||
@ -481,7 +481,7 @@ pstats.Stats('foofile').strip_dirs().sort_stats('cum').print_stats().ignore()
|
||||
\end{verbatim}
|
||||
|
||||
would perform all the indicated functions, but it would not return
|
||||
the final reference to the code{Stats} instance.%
|
||||
the final reference to the \code{Stats} instance.%
|
||||
\footnote{
|
||||
This was once necessary, when Python would print any unused expression
|
||||
result that was not \code{None}. The method is still defined for
|
||||
@ -604,7 +604,7 @@ 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}
|
||||
\section{Extensions - Deriving Better Profilers}
|
||||
|
||||
The \code{Profile} class of module \code{profile} was written so that
|
||||
derived classes could be developed to extend the profiler. Rather
|
||||
|
@ -44,12 +44,13 @@ The module defines these functions, and an exception:
|
||||
\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
|
||||
\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 \code{i}-th
|
||||
element of the string gives the translation for the character with
|
||||
ASCII code \code{i}.
|
||||
\ASCII{} code \code{i}. This can be used to implement
|
||||
case-insensitive matching; see the \code{casefold} data item below.
|
||||
|
||||
The sequence
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{rfc822}}
|
||||
\section{Standard Module \sectcode{rfc822}}
|
||||
\stmodindex{rfc822}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module rfc822)}
|
||||
@ -60,12 +60,12 @@ 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 \code{m}'s first \code{From} header contains the string
|
||||
\code{'guido@cwi.nl (Guido van Rossum)'}, then
|
||||
Example: If \code{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{('Guido van Rossum', 'guido@cwi.nl')}.
|
||||
\code{('Jack Jansen', 'jack@cwi.nl')}.
|
||||
If the header contained
|
||||
\code{'Guido van Rossum <guido@cwi.nl>'} instead, it would yield the
|
||||
\code{'Jack Jansen <jack@cwi.nl>'} instead, it would yield the
|
||||
exact same result.
|
||||
\end{funcdesc}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{rgbimg}}
|
||||
\section{Built-in Module \sectcode{rgbimg}}
|
||||
\bimodindex{rgbimg}
|
||||
|
||||
The rgbimg module allows python programs to access SGI imglib image
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{rotor}}
|
||||
\section{Built-in Module \sectcode{rotor}}
|
||||
\bimodindex{rotor}
|
||||
|
||||
This module implements a rotor-based encryption algorithm, contributed by
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{select}}
|
||||
\section{Built-in Module \sectcode{select}}
|
||||
\bimodindex{select}
|
||||
|
||||
This module provides access to the function \code{select} available in
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{sgmllib}}
|
||||
\section{Standard Module \sectcode{sgmllib}}
|
||||
\stmodindex{sgmllib}
|
||||
\index{SGML}
|
||||
|
||||
@ -66,7 +66,7 @@ redefined version should always call \code{SGMLParser.close()}.
|
||||
\begin{funcdesc}{handle_charref}{ref}
|
||||
This method is called to process a character reference of the form
|
||||
``\code{\&\#\var{ref};}'' where \var{ref} is a decimal number in the
|
||||
range 0-255. It translates the character to ASCII and calls the
|
||||
range 0-255. It translates the character to \ASCII{} and calls the
|
||||
method \code{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 instead.
|
||||
|
@ -1,7 +1,8 @@
|
||||
\section{Built-in module \sectcode{shelve}}
|
||||
\section{Standard Module \sectcode{shelve}}
|
||||
\stmodindex{shelve}
|
||||
\stmodindex{pickle}
|
||||
\bimodindex{dbm}
|
||||
\bimodindex{gdbm}
|
||||
|
||||
A ``shelf'' is a persistent, dictionary-like object. The difference
|
||||
with ``dbm'' databases is that the values (not the keys!) in a shelf
|
||||
@ -48,8 +49,11 @@ 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 {\em concurrent} access to
|
||||
shelved objects. Two programs should not try to simultaneously access
|
||||
the same shelf.
|
||||
The \code{shelve} module does not support {\em 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}
|
||||
|
@ -20,7 +20,7 @@ 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 time.
|
||||
delayed for an arbitrary amount of time.
|
||||
|
||||
\item
|
||||
When a signal arrives during an I/O operation, it is possible that the
|
||||
@ -48,8 +48,10 @@ threads simultaneously is:\ always perform \code{signal()} operations
|
||||
in the main thread of execution. Any thread can perform an
|
||||
\code{alarm()}, \code{getsignal()}, or \code{pause()}; only the main
|
||||
thread can set a new signal handler, and the main thread will be the
|
||||
only one to receive signals. This means that signals can't be used as
|
||||
a means of interthread communication. Use locks instead.
|
||||
only one to receive signals (this is enforced by the Python 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}
|
||||
|
||||
@ -126,4 +128,9 @@ The signal module defines the following functions:
|
||||
When threads are enabled, this function can only be called from the
|
||||
main thread; attempting to call it from other threads will cause a
|
||||
\code{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}
|
||||
|
@ -37,8 +37,8 @@ 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 and asynchronous mode are not supported; see module
|
||||
\code{select} for a way to do non-blocking socket I/O.
|
||||
Non-blocking mode is supported through the \code{setblocking()}
|
||||
method.
|
||||
|
||||
The module \code{socket} exports the following constants and functions:
|
||||
|
||||
@ -95,7 +95,7 @@ is an IP address itself it is returned unchanged.
|
||||
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{socket.gethostbyname(socket.gethostname())} instead.
|
||||
\code{socket.gethostbyname(socket.gethostname())}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{gethostbyaddr}{ip_address}
|
||||
@ -133,7 +133,7 @@ standard input or output (e.g.\ a server started by the \UNIX{} inet
|
||||
daemon).
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Socket Object Methods}
|
||||
\subsection{Socket Objects}
|
||||
|
||||
\noindent
|
||||
Socket objects have the following methods. Except for
|
||||
@ -187,28 +187,30 @@ see above.)
|
||||
|
||||
\begin{funcdesc}{getsockopt}{level\, optname\optional{\, buflen}}
|
||||
Return the value of the given socket option (see the \UNIX{} man page
|
||||
{\it getsockopt}(2)). The needed symbolic constants are defined in
|
||||
the \code{socket} module (\code{SO_*} etc.). If the optional third
|
||||
argument is absent, an integer option is assumed and its integer value
|
||||
{\it getsockopt}(2)). The needed symbolic constants (\code{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's up to the caller to decode
|
||||
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
|
||||
\code{struct} for a way to decode C structures encoded as strings).
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{listen}{backlog}
|
||||
Listen for connections made to the socket.
|
||||
The argument specifies the maximum number of queued connections and
|
||||
should be at least 1; the maximum value is system-dependent.
|
||||
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{funcdesc}
|
||||
|
||||
\begin{funcdesc}{makefile}{mode}
|
||||
Return a \dfn{file object} associated with the socket.
|
||||
(File objects were described earlier under Built-in Types.)
|
||||
The file object references a \code{dup}ped version of the socket file
|
||||
descriptor, so the file object and socket object may be closed or
|
||||
garbage-collected independently.
|
||||
\begin{funcdesc}{makefile}{\optional{mode\optional{\, bufsize}}}
|
||||
Return a \dfn{file object} associated with the socket. (File objects
|
||||
were described earlier under Built-in Types.) The file object
|
||||
references a \code{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
|
||||
\code{open()} function.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{recv}{bufsize\optional{\, flags}}
|
||||
@ -219,23 +221,26 @@ for the meaning of the optional argument \var{flags}; it defaults to
|
||||
zero.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{recvfrom}{bufsize}
|
||||
\begin{funcdesc}{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.
|
||||
socket sending the data. The optional \var{flags} argument has the
|
||||
same meaning as for \code{recv()} above.
|
||||
(The format of \var{address} depends on the address family --- see above.)
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{send}{string}
|
||||
\begin{funcdesc}{send}{string\optional{\, flags}}
|
||||
Send data to the socket. The socket must be connected to a remote
|
||||
socket. Return the number of bytes sent.
|
||||
socket. The optional \var{flags} argument has the same meaning as for
|
||||
\code{recv()} above. Return the number of bytes sent.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{sendto}{string\, address}
|
||||
\begin{funcdesc}{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
|
||||
\code{address}. Return the number of bytes sent.
|
||||
\code{address}. The optional \var{flags} argument has the same
|
||||
meaning as for \code{recv()} above. Return the number of bytes sent.
|
||||
(The format of \var{address} depends on the address family --- see above.)
|
||||
\end{funcdesc}
|
||||
|
||||
|
@ -8,9 +8,10 @@ provide access to the functionality of the Standard Window System
|
||||
Interface, STDWIN [CWI report CR-R8817].
|
||||
It is available on systems to which STDWIN has been ported (which is
|
||||
most systems).
|
||||
It is only available if the \code{DISPLAY} environment variable is set
|
||||
or an explicit \samp{-display \var{displayname}} argument is passed to
|
||||
the interpreter.
|
||||
|
||||
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.
|
||||
@ -63,6 +64,7 @@ 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}
|
||||
@ -164,6 +166,7 @@ returned by this call exists.
|
||||
\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}{}
|
||||
@ -294,7 +297,7 @@ a blocking \code{select()} call.
|
||||
\ttindex{select}
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Window Object Methods}
|
||||
\subsection{Window Objects}
|
||||
|
||||
Window objects are created by \code{stdwin.open()}. They are closed
|
||||
by their \code{close()} method or when they are garbage-collected.
|
||||
@ -440,7 +443,7 @@ another window in this application became inactive).
|
||||
Discard the window object. It should not be used again.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Drawing Object Methods}
|
||||
\subsection{Drawing Objects}
|
||||
|
||||
Drawing objects are created exclusively by the window method
|
||||
\code{begindrawing()}.
|
||||
@ -560,6 +563,7 @@ 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}
|
||||
@ -582,7 +586,7 @@ Reset the clipping region to the entire window.
|
||||
Discard the drawing object. It should not be used again.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Menu Object Methods}
|
||||
\subsection{Menu Objects}
|
||||
|
||||
A menu object represents a menu.
|
||||
The menu is destroyed when the menu object is deleted.
|
||||
@ -617,11 +621,13 @@ for item
|
||||
Discard the menu object. It should not be used again.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Bitmap Object Methods}
|
||||
\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:
|
||||
|
||||
\renewcommand{\indexsubitem}{(bitmap method)}
|
||||
@ -644,7 +650,7 @@ Return the value of the bit indicated by \var{point}.
|
||||
Discard the bitmap object. It should not be used again.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Text-edit Object Methods}
|
||||
\subsection{Text-edit Objects}
|
||||
|
||||
A text-edit object represents a text-edit block.
|
||||
For semantics, see the STDWIN documentation for C programmers.
|
||||
|
@ -61,14 +61,25 @@ the standard syntax for a floating point literal in Python, optionally
|
||||
preceded by a sign (\samp{+} or \samp{-}).
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{atoi}{s}
|
||||
Convert a string to an integer. The string must consist of one or more
|
||||
digits, optionally preceded by a sign (\samp{+} or \samp{-}).
|
||||
\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: for a more
|
||||
flexible interpretation of numeric literals, use the built-in function
|
||||
\code{eval()}.
|
||||
\bifuncindex{eval}
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{atol}{s}
|
||||
Convert a string to a long integer. The string must consist of one
|
||||
or more digits, optionally preceded by a sign (\samp{+} or \samp{-}).
|
||||
\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 \code{atoi()}. A trailing \samp{l} or \samp{L} is not
|
||||
allowed.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{expandtabs}{s\, tabsize}
|
||||
@ -101,10 +112,11 @@ Like \code{rfind} but raise \code{ValueError} when the substring is
|
||||
not found.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{count}{s\, sub\optional{\, i}}
|
||||
\begin{funcdesc}{count}{s\, sub\optional{\, start}}
|
||||
Return the number of (non-overlapping) occurrences of substring
|
||||
\var{sub} in string \var{s} with index at least \var{i}.
|
||||
If \var{i} is omitted, it defaults to \code{0}.
|
||||
\var{sub} in string \var{s} with index at least \var{start}.
|
||||
If \var{start} is omitted, it defaults to \code{0}. If \var{start} is
|
||||
negative, \code{len(\var{s})} is added.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{lower}{s}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{struct}}
|
||||
\section{Built-in Module \sectcode{struct}}
|
||||
\bimodindex{struct}
|
||||
\indexii{C}{structures}
|
||||
|
||||
|
@ -4,7 +4,7 @@ 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).
|
||||
|
||||
\section{Built-in module \sectcode{sunaudiodev}}
|
||||
\section{Built-in Module \sectcode{sunaudiodev}}
|
||||
\bimodindex{sunaudiodev}
|
||||
|
||||
This module allows you to access the sun audio interface. The sun
|
||||
@ -30,7 +30,7 @@ or player open at the same time it is a good idea to open the device
|
||||
only for the activity needed. See the audio manpage for details.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Audio device object methods}
|
||||
\subsection{Audio Device Objects}
|
||||
|
||||
The audio device objects are returned by \code{open} define the
|
||||
following methods (except \code{control} objects which only provide
|
||||
@ -108,6 +108,5 @@ the constants are the same names as used in the C include file
|
||||
\file{<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. This is because that feature makes heavy use of signals, and
|
||||
these do not map too well onto Python.
|
||||
is no way to use the ``wait for something to happen'' feature the
|
||||
device provides.
|
||||
|
@ -6,11 +6,16 @@ interpreter and to functions that interact strongly with the interpreter.
|
||||
It is always available.
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module sys)}
|
||||
|
||||
\begin{datadesc}{argv}
|
||||
The list of command line arguments passed to a Python script.
|
||||
\code{sys.argv[0]} is the script name.
|
||||
\code{sys.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{sys.argv[0]} is set to the string
|
||||
\code{"-c"}.
|
||||
If no script name was passed to the Python interpreter,
|
||||
\code{sys.argv} is empty.
|
||||
\code{sys.argv} has zero length.
|
||||
\end{datadesc}
|
||||
|
||||
\begin{datadesc}{builtin_module_names}
|
||||
@ -28,9 +33,11 @@ It is always available.
|
||||
invoked. Their meaning is: \code{exc_type} gets the exception type of
|
||||
the exception being handled; \code{exc_value} gets the exception
|
||||
parameter (its \dfn{associated value} or the second argument to
|
||||
\code{raise}); \code{exc_traceback} gets a traceback object which
|
||||
\code{raise}); \code{exc_traceback} gets a traceback object (see the
|
||||
Reference Manual) which
|
||||
encapsulates the call stack at the point where the exception
|
||||
originally occurred.
|
||||
\obindex{traceback}
|
||||
\end{datadesc}
|
||||
|
||||
\begin{funcdesc}{exit}{n}
|
||||
@ -45,7 +52,7 @@ It is always available.
|
||||
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 (but not when a
|
||||
will be called when the interpreter exits in any way (except not when a
|
||||
fatal error occurs: in that case the interpreter's internal state
|
||||
cannot be trusted).
|
||||
\end{datadesc}
|
||||
@ -94,26 +101,23 @@ maximizing responsiveness as well as overhead.
|
||||
|
||||
\begin{funcdesc}{settrace}{tracefunc}
|
||||
Set the system's trace function, which allows you to implement a
|
||||
Python source code debugger in Python. The standard modules
|
||||
\code{pdb} and \code{wdb} are such debuggers; the difference is that
|
||||
\code{wdb} uses windows and needs STDWIN, while \code{pdb} has a
|
||||
line-oriented interface not unlike dbx. See the file \file{pdb.doc}
|
||||
in the Python library source directory for more documentation (both
|
||||
about \code{pdb} and \code{sys.trace}).
|
||||
Python source code debugger in Python. See section ``How It Works''
|
||||
in the chapter on the Python Debugger.
|
||||
\end{funcdesc}
|
||||
\ttindex{pdb}
|
||||
\ttindex{wdb}
|
||||
\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. The system's profile function
|
||||
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
|
||||
\code{sys.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}
|
||||
@ -127,7 +131,11 @@ maximizing responsiveness as well as overhead.
|
||||
own prompts and (almost all of) its error messages go to
|
||||
\code{sys.stderr}. \code{sys.stdout} and \code{sys.stderr} needn't
|
||||
be built-in file objects: any object is acceptable as long as it has
|
||||
a \code{write} method that takes a string argument.
|
||||
a \code{write} method that takes a string argument. (Changing these
|
||||
objects doesn't affect the standard I/O streams of processes
|
||||
executed by \code{popen()}, \code{system()} or the \code{exec*()}
|
||||
family of functions in the \code{os} module.)
|
||||
\stmodindex{os}
|
||||
\end{datadesc}
|
||||
|
||||
\begin{datadesc}{tracebacklimit}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{tempfile}}
|
||||
\section{Standard Module \sectcode{tempfile}}
|
||||
\stmodindex{tempfile}
|
||||
\indexii{temporary}{file name}
|
||||
\indexii{temporary}{file}
|
||||
|
@ -7,7 +7,7 @@
|
||||
% \section{} generates the section header,
|
||||
% \bimodindex{} or \stmodundex{} generates an index entry for this module
|
||||
|
||||
\section{Built-in module \sectcode{spam}} % If implemented in C
|
||||
\section{Built-in Module \sectcode{spam}} % If implemented in C
|
||||
\bimodindex[spam}
|
||||
|
||||
\section{Standard module \sectcode{spam}} % If implemented in Python
|
||||
@ -110,7 +110,7 @@ Example:
|
||||
% separate subsection. It is important to redefine ``indexsubitem''
|
||||
% for each subsection.
|
||||
|
||||
\subsection{Spam methods}
|
||||
\subsection{Spam Objects}
|
||||
|
||||
Spam objects (returned by \code{open()} above) have the following
|
||||
methods.
|
||||
|
@ -26,18 +26,22 @@ 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_thread}{}
|
||||
Exit the current thread silently. Other threads continue to run.
|
||||
\strong{Caveat:} code in pending \code{finally} clauses is not executed.
|
||||
\begin{funcdesc}{exit}{}
|
||||
This is a shorthand for \code{thread.exit_thread()}.
|
||||
\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.
|
||||
\begin{funcdesc}{exit_thread}{}
|
||||
Raise the \code{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.
|
||||
@ -82,18 +86,16 @@ thread, 0 if not.
|
||||
\item
|
||||
Threads interact strangely with interrupts: the
|
||||
\code{KeyboardInterrupt} exception will be received by an arbitrary
|
||||
thread.
|
||||
thread. (When the \code{signal} module is available, interrupts
|
||||
always go to the main thread.)
|
||||
|
||||
\item
|
||||
Calling \code{sys.exit(\var{status})} or executing
|
||||
\code{raise SystemExit, \var{status}} is almost equivalent to calling
|
||||
\code{thread.exit_prog(\var{status})}, except that the former ways of
|
||||
exiting the entire program do honor \code{finally} clauses in the
|
||||
current thread (but not in other threads).
|
||||
Calling \code{sys.exit()} or raising the \code{SystemExit} is
|
||||
equivalent to calling \code{thread.exit_thread()}.
|
||||
|
||||
\item
|
||||
Not all built-in functions that may block waiting for I/O allow other
|
||||
threads to run, although the most popular ones (\code{sleep},
|
||||
\code{read}, \code{select}) work as expected.
|
||||
threads to run. (The most popular ones (\code{sleep}, \code{read},
|
||||
\code{select}) work as expected.)
|
||||
|
||||
\end{itemize}
|
||||
|
@ -11,8 +11,7 @@ An explanation of some terminology and conventions is in order.
|
||||
\item
|
||||
The ``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 the first
|
||||
element of \code{gmtime(0)}.
|
||||
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
|
||||
@ -30,19 +29,20 @@ in this respect.
|
||||
\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 every 1/50th or
|
||||
1/100th of a second, and on the Mac, it ticks 60 times a second.
|
||||
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.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
Functions and data items are:
|
||||
The module defines the following functions and data items:
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module time)}
|
||||
|
||||
\begin{datadesc}{altzone}
|
||||
The offset of the local DST timezone, in seconds west of the 0th
|
||||
meridian, if one is defined. Only use this if \code{daylight} is
|
||||
nonzero.
|
||||
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}
|
||||
|
||||
|
||||
@ -56,8 +56,8 @@ the same name, there is no trailing newline.
|
||||
|
||||
\begin{funcdesc}{clock}{}
|
||||
Return the current CPU time as a floating point number expressed in
|
||||
seconds. The precision depends on that of the C function by the same
|
||||
name.
|
||||
seconds. The precision, and in fact the very definiton of the meaning
|
||||
of ``CPU time'', depends on that of the C function of the same name.
|
||||
\end{funcdesc}
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{traceback}}
|
||||
\section{Standard Module \sectcode{traceback}}
|
||||
\stmodindex{traceback}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module traceback)}
|
||||
|
@ -189,7 +189,7 @@ 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.
|
||||
\indexii{numeric}{conversions}
|
||||
\ttindex{math}
|
||||
\stmodindex{math}
|
||||
\indexii{\C{}}{language}
|
||||
|
||||
\item[(2)]
|
||||
@ -205,7 +205,7 @@ 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.}
|
||||
\subsubsection{Bit-string Operations on Integer Types}
|
||||
|
||||
Plain and long integer types support additional operations that make
|
||||
sense only for bit-strings. Negative numbers are treated as their 2's
|
||||
@ -287,7 +287,7 @@ Notes:
|
||||
|
||||
\end{description}
|
||||
|
||||
\subsubsection{More String Operations.}
|
||||
\subsubsection{More String Operations}
|
||||
|
||||
String objects have one unique built-in operation: the \code{\%}
|
||||
operator (modulo) with a string left argument interprets this string
|
||||
@ -307,7 +307,7 @@ 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{'\\0'} is the end of
|
||||
\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;
|
||||
@ -330,14 +330,15 @@ each format formats the corresponding entry from the mapping. E.g.
|
||||
Python has 002 quote types.
|
||||
>>>
|
||||
\end{verbatim}
|
||||
In this case no * specifiers may occur in a format.
|
||||
In this case no * specifiers may occur in a format (since they a
|
||||
require sequential parameter list).
|
||||
|
||||
Additional string operations are defined in standard module
|
||||
\code{string} and in built-in module \code{regex}.
|
||||
\index{string}
|
||||
\index{regex}
|
||||
|
||||
\subsubsection{Mutable Sequence Types.}
|
||||
\subsubsection{Mutable Sequence Types}
|
||||
|
||||
List objects support additional operations that allow in-place
|
||||
modification of the object.
|
||||
@ -399,7 +400,7 @@ Notes:
|
||||
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 an array in reverse order it is much faster
|
||||
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.
|
||||
@ -409,7 +410,7 @@ Notes:
|
||||
|
||||
A \dfn{mapping} object maps values of one type (the key type) to
|
||||
arbitrary objects. Mappings are mutable objects. There is currently
|
||||
only one mapping type, the \dfn{dictionary}. A dictionary's keys are
|
||||
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.
|
||||
@ -421,9 +422,9 @@ can be used interchangeably to index the same dictionary entry.
|
||||
\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\}}.
|
||||
\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):
|
||||
@ -453,9 +454,7 @@ 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, but at any
|
||||
moment the ordering of the \code{keys()}, \code{values()} and
|
||||
\code{items()} lists is the consistent with each other.
|
||||
\item[(2)] Keys and values are listed in random order.
|
||||
\end{description}
|
||||
|
||||
\subsection{Other Built-in Types}
|
||||
@ -463,7 +462,7 @@ moment the ordering of the \code{keys()}, \code{values()} and
|
||||
The interpreter supports several other kinds of objects.
|
||||
Most of these support only one or two operations.
|
||||
|
||||
\subsubsection{Modules.}
|
||||
\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
|
||||
@ -483,11 +482,11 @@ defines \code{\var{m}.a} to be \code{1}, but you can't write \code{\var{m}.__dic
|
||||
|
||||
Modules are written like this: \code{<module 'sys'>}.
|
||||
|
||||
\subsubsection{Classes and Class Instances.}
|
||||
\subsubsection{Classes and Class Instances}
|
||||
% XXXJH cross ref here
|
||||
(See the Python Reference Manual for these.)
|
||||
|
||||
\subsubsection{Functions.}
|
||||
\subsubsection{Functions}
|
||||
|
||||
Function objects are created by function definitions. The only
|
||||
operation on a function object is to call it:
|
||||
@ -504,7 +503,7 @@ The implementation adds two special read-only attributes:
|
||||
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.}
|
||||
\subsubsection{Methods}
|
||||
\obindex{method}
|
||||
|
||||
Methods are functions that are called using the attribute notation.
|
||||
@ -522,7 +521,7 @@ Calling \code{\var{m}(\var{arg-1}, \var{arg-2}, {\rm \ldots},
|
||||
|
||||
(See the Python Reference Manual for more info.)
|
||||
|
||||
\subsubsection{Code Objects.}
|
||||
\subsubsection{Code Objects}
|
||||
\obindex{code}
|
||||
|
||||
Code objects are used by the implementation to represent
|
||||
@ -543,7 +542,7 @@ source string) to the \code{exec} statement or the built-in
|
||||
|
||||
(See the Python Reference Manual for more info.)
|
||||
|
||||
\subsubsection{Type Objects.}
|
||||
\subsubsection{Type Objects}
|
||||
|
||||
Type objects represent the various object types. An object's type is
|
||||
% XXXJH xref here
|
||||
@ -552,7 +551,7 @@ operations on types.
|
||||
|
||||
Types are written like this: \code{<type 'int'>}.
|
||||
|
||||
\subsubsection{The Null Object.}
|
||||
\subsubsection{The 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
|
||||
@ -560,7 +559,7 @@ object, named \code{None} (a built-in name).
|
||||
|
||||
It is written as \code{None}.
|
||||
|
||||
\subsubsection{File Objects.}
|
||||
\subsubsection{File Objects}
|
||||
|
||||
File objects are implemented using \C{}'s \code{stdio} package and can be
|
||||
% XXXJH xref here
|
||||
@ -643,7 +642,7 @@ Write a list of strings to the file. There is no return value.
|
||||
does not add line separators.)
|
||||
\end{funcdesc}
|
||||
|
||||
\subsubsection{Internal Objects.}
|
||||
\subsubsection{Internal Objects}
|
||||
|
||||
(See the Python Reference Manual for these.)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{types}}
|
||||
\section{Standard Module \sectcode{types}}
|
||||
\stmodindex{types}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module types)}
|
||||
|
@ -1,7 +1,7 @@
|
||||
\section{Built-in module \sectcode{urllib}}
|
||||
\section{Standard Module \sectcode{urllib}}
|
||||
\stmodindex{urllib}
|
||||
\index{WWW}
|
||||
\indexii{World-Wide}{Web}
|
||||
\index{World-Wide Web}
|
||||
\index{URL}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module urllib)}
|
||||
@ -17,7 +17,7 @@ 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 \code{file:} as its scheme
|
||||
not have a scheme identifier, or if it has \samp{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 \code{IOError} exception is
|
||||
@ -26,7 +26,9 @@ supports the following methods: \code{read()}, \code{readline()},
|
||||
\code{readlines()}, \code{fileno()}, \code{close()} and \code{info()}.
|
||||
Except for the last one, these methods have the same interface as for
|
||||
file objects --- see the section on File Objects earlier in this
|
||||
manual.
|
||||
manual. (It's 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 \code{info()} method returns an instance of the class
|
||||
\code{rfc822.Message} containing the headers received from the server,
|
||||
|
@ -1,7 +1,7 @@
|
||||
\section{Built-in module \sectcode{urlparse}}
|
||||
\section{Standard Module \sectcode{urlparse}}
|
||||
\stmodindex{urlparse}
|
||||
\index{WWW}
|
||||
\indexii{World-Wide}{Web}
|
||||
\index{World-Wide Web}
|
||||
\index{URL}
|
||||
\indexii{URL}{parsing}
|
||||
\indexii{relative}{URL}
|
||||
@ -28,14 +28,14 @@ identifier). This corresponds to the general structure of a URL:
|
||||
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, {\em
|
||||
except} for a leading slash in the \var{path} component, which is
|
||||
kept if present.
|
||||
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:
|
||||
\code{urlparse('http://www.cwi.nl:80/\%7eguido/Python.html')}
|
||||
yields the tuple
|
||||
\code{('http', 'www.cwi.nl:80', '/\%e7guido/Python.html', '', '', '')}.
|
||||
\code{('http', 'www.cwi.nl:80', '/\%7eguido/Python.html', '', '', '')}.
|
||||
|
||||
If the \var{default_scheme} argument is specified, it gives the
|
||||
default addressing scheme, to be used only if the URL string does not
|
||||
|
@ -1,6 +1,7 @@
|
||||
\chapter{WORLD-WIDE WEB EXTENSIONS}
|
||||
\chapter{THE INTERNET AND THE WORLD-WIDE WEB}
|
||||
\index{WWW}
|
||||
\indexii{World-Wide}{Web}
|
||||
\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
|
||||
|
@ -21,8 +21,11 @@ Module \code{aifc} defines the following function:
|
||||
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
|
||||
'r' when the file must be opened for reading, or 'w' when the file
|
||||
must be opened for writing.
|
||||
\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
|
||||
\code{writeframesraw()} and \code{setnframes()}.
|
||||
\end{funcdesc}
|
||||
|
||||
Objects returned by \code{aifc.open()} when a file is opened for
|
||||
|
115
Doc/libal.tex
115
Doc/libal.tex
@ -1,13 +1,15 @@
|
||||
\section{Built-in Module \sectcode{al}}
|
||||
\bimodindex{al}
|
||||
|
||||
This module provides access to the audio facilities of the Indigo and
|
||||
4D/35 workstations, described in section 3A of the IRIX 4.0 man pages
|
||||
(and also available as an option in IRIX 3.3). You'll need to read
|
||||
those man pages to understand what these functions do!
|
||||
Some of the functions are not available in releases below 4.0.5.
|
||||
Again, see the manual to check whether a specific function is
|
||||
available on your platform.
|
||||
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 \file{<audio.h>} are defined
|
||||
in the standard module \code{AL}, see below.
|
||||
@ -20,145 +22,138 @@ interface can provide no protection against this kind of problems.
|
||||
(One example is specifying an excessive queue size --- there is no
|
||||
documented upper limit.)
|
||||
|
||||
Module \code{al} defines the following functions:
|
||||
The module defines the following functions:
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module al)}
|
||||
|
||||
\begin{funcdesc}{openport}{name\, direction\optional{\, config}}
|
||||
Equivalent to the C function ALopenport(). The name and direction
|
||||
arguments are strings. The optional config argument is an opaque
|
||||
configuration object as returned by \code{al.newconfig()}. The return
|
||||
value is an opaque port object; methods of port objects are described
|
||||
below.
|
||||
The name and direction arguments are strings. The optional config
|
||||
argument is a configuration object as returned by
|
||||
\code{al.newconfig()}. The return value is an \dfn{port object};
|
||||
methods of port objects are described below.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{newconfig}{}
|
||||
Equivalent to the C function ALnewconfig(). The return value is a new
|
||||
opaque configuration object; methods of configuration objects are
|
||||
described below.
|
||||
The return value is a new \dfn{configuration object}; methods of
|
||||
configuration objects are described below.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{queryparams}{device}
|
||||
Equivalent to the C function ALqueryparams(). The device argument is
|
||||
an integer. The return value is a list of integers containing the
|
||||
data returned by ALqueryparams().
|
||||
The device argument is an integer. The return value is a list of
|
||||
integers containing the data returned by ALqueryparams().
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getparams}{device\, list}
|
||||
Equivalent to the C function ALgetparams(). The device argument is an
|
||||
integer. The list argument is a list such as returned by
|
||||
\code{queryparams}; it is modified in place (!).
|
||||
The device argument is an integer. The list argument is a list such
|
||||
as returned by \code{queryparams}; it is modified in place (!).
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setparams}{device\, list}
|
||||
Equivalent to the C function ALsetparams(). The device argument is an
|
||||
integer.The list argument is a list such as returned by
|
||||
\code{al.queryparams}.
|
||||
The device argument is an integer. The list argument is a list such
|
||||
as returned by \code{al.queryparams}.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Configuration Objects}
|
||||
|
||||
Configuration objects (returned by \code{al.newconfig()} have the
|
||||
following methods:
|
||||
|
||||
\renewcommand{\indexsubitem}{(audio configuration object method)}
|
||||
|
||||
\begin{funcdesc}{getqueuesize}{}
|
||||
Return the queue size; equivalent to the C function ALgetqueuesize().
|
||||
Return the queue size.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setqueuesize}{size}
|
||||
Set the queue size; equivalent to the C function ALsetqueuesize().
|
||||
Set the queue size.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getwidth}{}
|
||||
Get the sample width; equivalent to the C function ALgetwidth().
|
||||
Get the sample width.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getwidth}{width}
|
||||
Set the sample width; equivalent to the C function ALsetwidth().
|
||||
\begin{funcdesc}{setwidth}{width}
|
||||
Set the sample width.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getchannels}{}
|
||||
Get the channel count; equivalent to the C function ALgetchannels().
|
||||
Get the channel count.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setchannels}{nchannels}
|
||||
Set the channel count; equivalent to the C function ALsetchannels().
|
||||
Set the channel count.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getsampfmt}{}
|
||||
Get the sample format; equivalent to the C function ALgetsampfmt().
|
||||
Get the sample format.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setsampfmt}{sampfmt}
|
||||
Set the sample format; equivalent to the C function ALsetsampfmt().
|
||||
Set the sample format.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getfloatmax}{}
|
||||
Get the maximum value for floating sample formats;
|
||||
equivalent to the C function ALgetfloatmax().
|
||||
Get the maximum value for floating sample formats.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setfloatmax}{floatmax}
|
||||
Set the maximum value for floating sample formats;
|
||||
equivalent to the C function ALsetfloatmax().
|
||||
Set the maximum value for floating sample formats.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Port Objects}
|
||||
|
||||
Port objects (returned by \code{al.openport()} have the following
|
||||
methods:
|
||||
|
||||
\renewcommand{\indexsubitem}{(audio port object method)}
|
||||
|
||||
\begin{funcdesc}{closeport}{}
|
||||
Close the port; equivalent to the C function ALcloseport().
|
||||
Close the port.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getfd}{}
|
||||
Return the file descriptor as an int; equivalent to the C function
|
||||
ALgetfd().
|
||||
Return the file descriptor as an int.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getfilled}{}
|
||||
Return the number of filled samples; equivalent to the C function
|
||||
ALgetfilled().
|
||||
Return the number of filled samples.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getfillable}{}
|
||||
Return the number of fillable samples; equivalent to the C function
|
||||
ALgetfillable().
|
||||
Return the number of fillable samples.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{readsamps}{nsamples}
|
||||
Read a number of samples from the queue, blocking if necessary;
|
||||
equivalent to the C function ALreadsamples. The data is returned 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.
|
||||
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{funcdesc}
|
||||
|
||||
\begin{funcdesc}{writesamps}{samples}
|
||||
Write samples into the queue, blocking if necessary; equivalent to the
|
||||
C function ALwritesamples. The samples are encoded as described for
|
||||
the \code{readsamps} return value.
|
||||
Write samples into the queue, blocking if necessary. The samples are
|
||||
encoded as described for the \code{readsamps} return value.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getfillpoint}{}
|
||||
Return the `fill point'; equivalent to the C function ALgetfillpoint().
|
||||
Return the `fill point'.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setfillpoint}{fillpoint}
|
||||
Set the `fill point'; equivalent to the C function ALsetfillpoint().
|
||||
Set the `fill point'.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getconfig}{}
|
||||
Return a configuration object containing the current configuration of
|
||||
the port; equivalent to the C function ALgetconfig().
|
||||
the port.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{setconfig}{config}
|
||||
Set the configuration from the argument, a configuration object;
|
||||
equivalent to the C function ALsetconfig().
|
||||
Set the configuration from the argument, a configuration object.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getstatus}{list}
|
||||
Get status information on last error
|
||||
equivalent to C function ALgetstatus().
|
||||
Get status information on last error.
|
||||
\end{funcdesc}
|
||||
|
||||
\section{Standard Module \sectcode{AL}}
|
||||
|
@ -70,7 +70,7 @@ Initially, the timeout is set to 2 seconds by the Python interpreter.
|
||||
|
||||
\subsection{Capability Operations}
|
||||
|
||||
Capabilities are written in a convenient ASCII format, also used by the
|
||||
Capabilities are written in a convenient \ASCII{} format, also used by the
|
||||
Amoeba utilities
|
||||
{\it c2a}(U)
|
||||
and
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{array}}
|
||||
\section{Built-in Module \sectcode{array}}
|
||||
\bimodindex{array}
|
||||
\index{arrays}
|
||||
|
||||
@ -21,7 +21,7 @@ which is a single character. The following type codes are defined:
|
||||
|
||||
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{typecode} attribute.
|
||||
size can be accessed through the \var{itemsize} attribute.
|
||||
|
||||
The module defines the following function:
|
||||
|
||||
@ -59,7 +59,9 @@ on a machine with a different byte order.
|
||||
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, \code{EOFError} is raised, but the items that were
|
||||
available are still inserted into the array.
|
||||
available are still inserted into the array. \var{f} must be a real
|
||||
built-in file object; something else with a \code{read()} method won't
|
||||
do.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{fromlist}{list}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{audioop}}
|
||||
\section{Built-in Module \sectcode{audioop}}
|
||||
\bimodindex{audioop}
|
||||
|
||||
The \code{audioop} module contains some useful operations on sound fragments.
|
||||
@ -19,139 +19,139 @@ per sample, etc.
|
||||
\end{excdesc}
|
||||
|
||||
\begin{funcdesc}{add}{fragment1\, fragment2\, width}
|
||||
This function returns 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.
|
||||
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}
|
||||
This routine decodes an Intel/DVI ADPCM coded fragment to a linear
|
||||
fragment. See the description of \code{lin2adpcm} for details on ADPCM
|
||||
coding. The routine returns a tuple
|
||||
\code{(\var{sample}, \var{newstate})}
|
||||
where the sample has the width specified in \var{width}.
|
||||
Decode an Intel/DVI ADPCM coded fragment to a linear fragment. See
|
||||
the description of \code{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}
|
||||
This routine decodes an alternative 3-bit ADPCM code. See
|
||||
\code{lin2adpcm3} for details.
|
||||
Decode an alternative 3-bit ADPCM code. See \code{lin2adpcm3} for
|
||||
details.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{avg}{fragment\, width}
|
||||
This function returns the average over all samples in the fragment.
|
||||
Return the average over all samples in the fragment.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{avgpp}{fragment\, width}
|
||||
This function returns the average peak-peak value over all samples in
|
||||
the fragment. No filtering is done, so the usefulness of this routine
|
||||
is questionable.
|
||||
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}
|
||||
This function returns a fragment that is the original fragment with a
|
||||
bias added to each sample.
|
||||
Return a fragment that is the original fragment with a bias added to
|
||||
each sample.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{cross}{fragment\, width}
|
||||
This function returns the number of zero crossings in the fragment
|
||||
passed as an argument.
|
||||
Return the number of zero crossings in the fragment passed as an
|
||||
argument.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{findfactor}{fragment\, reference}
|
||||
This routine (which only accepts 2-byte sample fragments) calculates a
|
||||
factor \var{F} such that \code{rms(add(fragment, mul(reference, -F)))}
|
||||
is minimal, i.e.\ it calculates the factor with which you should
|
||||
multiply \var{reference} to make it match as well as possible to
|
||||
\var{fragment}. The fragments should be the same size.
|
||||
Return a factor \var{F} such that
|
||||
\code{rms(add(fragment, mul(reference, -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(fragment)}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{findfit}{fragment\, reference}
|
||||
This routine (which only accepts 2-byte sample fragments) tries to
|
||||
match \var{reference} as well as possible to a portion of
|
||||
\var{fragment} (which should be the longer fragment). It
|
||||
(conceptually) does this by taking slices out of \var{fragment}, using
|
||||
This routine (which only accepts 2-byte sample fragments)
|
||||
|
||||
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
|
||||
\code{findfactor} to compute the best match, and minimizing the
|
||||
result.
|
||||
It returns a tuple \code{(\var{offset}, \var{factor})} with \var{offset} 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} the floating-point factor as per \code{findfactor}.
|
||||
and \var{factor} is the (floating-point) factor as per
|
||||
\code{findfactor}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{findmax}{fragment\, length}
|
||||
This routine (which only accepts 2-byte sample fragments) searches
|
||||
\var{fragment} for a slice of length \var{length} samples (not bytes!)\
|
||||
with maximum energy, i.e.\ it returns \var{i} for which
|
||||
\code{rms(fragment[i*2:(i+length)*2])} is maximal.
|
||||
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(fragment)}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{getsample}{fragment\, width\, index}
|
||||
This function returns the value of sample \var{index} from the
|
||||
fragment.
|
||||
Return the value of sample \var{index} from the fragment.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{lin2lin}{fragment\, width\, newwidth}
|
||||
This function converts samples between 1-, 2- and 4-byte formats.
|
||||
Convert samples between 1-, 2- and 4-byte formats.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{lin2adpcm}{fragment\, width\, state}
|
||||
This function converts 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.
|
||||
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.
|
||||
|
||||
\code{State} is a tuple containing the state of the coder. The coder
|
||||
\code{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 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.
|
||||
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
|
||||
not packed (due to laziness on the side of the author). Its use is
|
||||
discouraged.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{lin2ulaw}{fragment\, width}
|
||||
This function converts samples in the audio fragment to U-LAW encoding
|
||||
and returns 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.
|
||||
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}
|
||||
This function returns a tuple consisting of the minimum and maximum
|
||||
values of all samples in the sound fragment.
|
||||
Return a tuple consisting of the minimum and maximum values of all
|
||||
samples in the sound fragment.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{max}{fragment\, width}
|
||||
This function returns the maximum of the {\em absolute value} of all
|
||||
samples in a fragment.
|
||||
Return the maximum of the {\em absolute value} of all samples in a
|
||||
fragment.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{maxpp}{fragment\, width}
|
||||
This function returns the maximum peak-peak value in the sound fragment.
|
||||
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
|
||||
multiplied by the floating-point value \var{factor}. Overflow is
|
||||
silently ignored.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{reverse}{fragment\, width}
|
||||
This function reverses the samples in a fragment and returns the
|
||||
modified fragment.
|
||||
Reverse the samples in a fragment and returns the modified fragment.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{rms}{fragment\, width\, factor}
|
||||
Returns the root-mean-square of the fragment, i.e.
|
||||
\begin{funcdesc}{rms}{fragment\, width}
|
||||
Return the root-mean-square of the fragment, i.e.
|
||||
\iftexi
|
||||
the square root of the quotient of the sum of all squared sample value,
|
||||
divided by the sumber of samples.
|
||||
@ -166,22 +166,22 @@ This is a measure of the power in an audio signal.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{tomono}{fragment\, width\, lfactor\, rfactor}
|
||||
This function converts 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.
|
||||
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}
|
||||
This function generates 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}.
|
||||
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}
|
||||
This function converts sound fragments in ULAW encoding to linearly
|
||||
encoded sound fragments. ULAW encoding always uses 8 bits samples, so
|
||||
\var{width} refers only to the sample width of the output fragment here.
|
||||
Convert sound fragments in ULAW encoding to linearly encoded sound
|
||||
fragments. ULAW 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 \code{mul} or \code{max} make no
|
||||
@ -202,20 +202,20 @@ def mul_stereo(sample, width, lfactor, rfactor):
|
||||
|
||||
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 not only transmit the data but also the state. Note that
|
||||
you should send the \var{initial} state (the one you passed to
|
||||
\code{lin2adpcm}) along to the decoder, not the final state (as returned by
|
||||
the coder). If you want to use \code{struct} to store the state in
|
||||
the coder). If you want to use \code{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
|
||||
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 \code{find...} routines might look a bit funny at first sight.
|
||||
They are primarily meant for doing echo cancellation. A reasonably
|
||||
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:
|
||||
|
@ -1,6 +1,7 @@
|
||||
\section{Built-in Module \sectcode{__builtin__}}
|
||||
\bimodindex{__builtin__}
|
||||
|
||||
This module provides direct access to all `built-in' identifier of
|
||||
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}.
|
||||
function \code{open}. See the section on Built-in Functions in the
|
||||
previous chapter.
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{cgi}}
|
||||
\section{Standard Module \sectcode{cgi}}
|
||||
\stmodindex{cgi}
|
||||
\indexii{WWW}{server}
|
||||
\indexii{CGI}{protocol}
|
||||
@ -134,3 +134,85 @@ The module defines the following variable:
|
||||
The shell environment, exactly as received from the http server. See
|
||||
the CGI documentation for a description of the various fields.
|
||||
\end{datadesc}
|
||||
|
||||
\subsection{Example}
|
||||
|
||||
This example assumes that you have a WWW server up and running,
|
||||
e.g.\ NCSA's \code{httpd}.
|
||||
|
||||
Place the following file in a convenient spot in the WWW server's
|
||||
directory tree. E.g., if you place it in the subdirectory \file{test}
|
||||
of the root directory and call it \file{test.html}, its URL will be
|
||||
\file{http://\var{yourservername}/test/test.html}.
|
||||
|
||||
\begin{verbatim}
|
||||
<TITLE>Test Form Input</TITLE>
|
||||
<H1>Test Form Input</H1>
|
||||
<FORM METHOD="POST" ACTION="/cgi-bin/test.py">
|
||||
<INPUT NAME=Name> (Name)<br>
|
||||
<INPUT NAME=Address> (Address)<br>
|
||||
<INPUT TYPE=SUBMIT>
|
||||
</FORM>
|
||||
\end{verbatim}
|
||||
|
||||
Selecting this file's URL from a forms-capable browser such as Mosaic
|
||||
or Netscape will bring up a simple form with two text input fields and
|
||||
a ``submit'' button.
|
||||
|
||||
But wait. Before pressing ``submit'', a script that responds to the
|
||||
form must also be installed. The test file as shown assumes that the
|
||||
script is called \file{test.py} and lives in the server's
|
||||
\code{cgi-bin} directory. Here's the test script:
|
||||
|
||||
\begin{verbatim}
|
||||
#!/usr/local/bin/python
|
||||
|
||||
import cgi
|
||||
|
||||
print "Content-type: text/html"
|
||||
print # End of headers!
|
||||
print "<TITLE>Test Form Output</TITLE>"
|
||||
print "<H1>Test Form Output</H1>"
|
||||
|
||||
form = cgi.SvFormContentDict() # Load the form
|
||||
|
||||
name = addr = None # Default: no name and address
|
||||
|
||||
# Extract name and address from the form, if given
|
||||
|
||||
if form.has_key('Name'):
|
||||
name = form['Name']
|
||||
if form.has_key('Address'):
|
||||
addr = form['Address']
|
||||
|
||||
# Print an unnumbered list of the name and address, if present
|
||||
|
||||
print "<UL>"
|
||||
if name is not None:
|
||||
print "<LI>Name:", cgi.escape(name)
|
||||
if addr is not None:
|
||||
print "<LI>Address:", cgi.escape(addr)
|
||||
print "</UL>"
|
||||
\end{verbatim}
|
||||
|
||||
The script should be made executable (\samp{chmod +x \var{script}}).
|
||||
If the Python interpreter is not located at
|
||||
\file{/usr/local/bin/python} but somewhere else, the first line of the
|
||||
script should be modified accordingly.
|
||||
|
||||
Now that everything is installed correctly, we can try out the form.
|
||||
Bring up the test form in your WWW browser, fill in a name and address
|
||||
in the form, and press the ``submit'' button. The script should now
|
||||
run and its output is sent back to your browser. This should roughly
|
||||
look as follows:
|
||||
|
||||
\strong{Test Form Output}
|
||||
|
||||
\begin{itemize}
|
||||
\item Name: \var{the name you entered}
|
||||
\item Address: \var{the address you entered}
|
||||
\end{itemize}
|
||||
|
||||
If you didn't enter a name or address, the corresponding line will be
|
||||
missing (since the browser doesn't send empty form fields to the
|
||||
server).
|
||||
|
@ -1,5 +1,6 @@
|
||||
\section{Built-in module \sectcode{copy}}
|
||||
\section{Standard Module \sectcode{copy}}
|
||||
\stmodindex{copy}
|
||||
\renewcommand{\indexsubitem}{(copy function)}
|
||||
\ttindex{copy}
|
||||
\ttindex{deepcopy}
|
||||
|
||||
@ -14,7 +15,7 @@ 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.
|
||||
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
|
||||
@ -74,6 +75,7 @@ to control pickling: they can define methods called
|
||||
\code{__setstate__()}. See the description of module \code{pickle}
|
||||
for information on these methods.
|
||||
\stmodindex{pickle}
|
||||
\renewcommand{\indexsubitem}{(copy protocol)}
|
||||
\ttindex{__getinitargs__}
|
||||
\ttindex{__getstate__}
|
||||
\ttindex{__setstate__}
|
||||
|
@ -5,8 +5,13 @@ a cryptographic nature. They are available at the discretion of the
|
||||
installation.
|
||||
\index{cryptography}
|
||||
|
||||
%Hardcore cypherpunks will probably find the Python Cryptography Kit of
|
||||
%further interest; the package adds built-in modules for DES and IDEA
|
||||
%encryption, and provides a Python module for reading and decrypting PGP files.
|
||||
%\index{PGP}\indexii{DES}{cipher}\indexii{IDEA}{cipher}
|
||||
%\index{Python Cryptography Kit}
|
||||
Hardcore cypherpunks will probably find the Python Cryptography Kit of
|
||||
further interest; the package adds built-in modules for DES and IDEA
|
||||
encryption, and provides a Python module for reading and decrypting
|
||||
PGP files. The Python Cryptography Kit is not distributed with Python
|
||||
but available separately. See the URL
|
||||
\file{http://www.cs.mcgill.ca/\%7Efnord/crypt.html} for more information.
|
||||
\index{PGP}
|
||||
\indexii{DES}{cipher}
|
||||
\indexii{IDEA}{cipher}
|
||||
\index{Python Cryptography Kit}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{ctb}}
|
||||
\section{Built-in Module \sectcode{ctb}}
|
||||
\bimodindex{ctb}
|
||||
\renewcommand{\indexsubitem}{(in module ctb)}
|
||||
|
||||
@ -44,7 +44,7 @@ Alternatively, passing \code{None} will result in default buffer sizes.
|
||||
For all connection methods that take a \var{timeout} argument, a value
|
||||
of \code{-1} is indefinite, meaning that the command runs to completion.
|
||||
|
||||
\renewcommand{\indexsubitem}{(connection object method)}
|
||||
\renewcommand{\indexsubitem}{(connection object attribute)}
|
||||
|
||||
\begin{datadesc}{callback}
|
||||
If this member is set to a value other than \code{None} it should point
|
||||
@ -59,6 +59,8 @@ calls for the time being.
|
||||
\end{datadesc}
|
||||
|
||||
|
||||
\renewcommand{\indexsubitem}{(connection object method)}
|
||||
|
||||
\begin{funcdesc}{Open}{timeout}
|
||||
Open an outgoing connection, waiting at most \var{timeout} seconds for
|
||||
the connection to be established.
|
||||
|
@ -24,7 +24,7 @@ inappropriate error.
|
||||
\begin{excdesc}{AttributeError}
|
||||
% xref to attribute reference?
|
||||
Raised when an attribute reference or assignment fails. (When an
|
||||
object does not support attributes references or attribute assignments
|
||||
object does not support attribute references or attribute assignments
|
||||
at all, \code{TypeError} is raised.)
|
||||
\end{excdesc}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
% Manual text by Jaap Vermeulen
|
||||
\section{Built-in module \sectcode{fcntl}}
|
||||
\section{Built-in Module \sectcode{fcntl}}
|
||||
\bimodindex{fcntl}
|
||||
\indexii{\UNIX{}}{file control}
|
||||
\indexii{\UNIX{}}{I/O control}
|
||||
|
@ -2,17 +2,18 @@
|
||||
\bimodindex{fl}
|
||||
|
||||
This module provides an interface to the FORMS Library by Mark
|
||||
Overmars, version 2.0b. For more info about FORMS, write to
|
||||
{\tt markov@cs.ruu.nl}.
|
||||
Overmars. 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 \code{FL} described below.
|
||||
dropping the initial \samp{fl_} from their name. Constants used by
|
||||
the library are defined in module \code{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
|
||||
button are methods of the Python object representing the form.
|
||||
form are methods of the Python object representing the form.
|
||||
Consequently, there are no Python equivalents for the C functions
|
||||
\code{fl_addto_form} and \code{fl_end_form}, and the equivalent of
|
||||
\code{fl_bgn_form} is called \code{fl.make_form}.
|
||||
@ -26,13 +27,13 @@ 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 avaiable, though, so you can mix
|
||||
interface to GL event handling is available, though, so you can mix
|
||||
FORMS with pure GL windows.
|
||||
|
||||
\strong{Please note:} importing \code{fl} implies a call to the GL function
|
||||
\code{foreground()} and to the FORMS routine \code{fl_init()}.
|
||||
|
||||
\subsection{Functions defined in module \sectcode{fl}}
|
||||
\subsection{Functions Defined in Module \sectcode{fl}}
|
||||
|
||||
Module \code{fl} defines the following functions. For more information
|
||||
about what they do, see the description of the equivalent C function
|
||||
@ -92,7 +93,7 @@ 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 inm which the user can select a file. It returns
|
||||
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}
|
||||
@ -130,7 +131,7 @@ See the description in the FORMS documentation of \code{fl_color},
|
||||
\code{fl_mapcolor} and \code{fl_getmcolor}.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Form object methods and data attributes}
|
||||
\subsection{Form Objects}
|
||||
|
||||
Form objects (returned by \code{fl.make_form()} above) have the
|
||||
following methods. Each method corresponds to a C function whose name
|
||||
@ -382,7 +383,7 @@ documentation:
|
||||
\lineiii{doublebuf}{int}{nonzero if double buffering on}
|
||||
\end{tableiii}
|
||||
|
||||
\subsection{FORMS object methods and data attributes}
|
||||
\subsection{FORMS Objects}
|
||||
|
||||
Besides methods specific to particular kinds of FORMS objects, all
|
||||
FORMS objects also have the following methods:
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{ftplib}}
|
||||
\section{Standard Module \sectcode{ftplib}}
|
||||
\stmodindex{ftplib}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module ftplib)}
|
||||
|
107
Doc/libfuncs.tex
107
Doc/libfuncs.tex
@ -92,8 +92,8 @@ exactly one argument.)
|
||||
\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{globals} dictionary is omitted it defaults to
|
||||
the \var{locals} dictionary. If both dictionaries are omitted, the
|
||||
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 \code{eval} is
|
||||
called. The return value is the result of the evaluated expression.
|
||||
Syntax errors are reported as exceptions. Example:
|
||||
@ -119,20 +119,21 @@ exactly one argument.)
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{execfile}{file\optional{\, globals\optional{\, locals}}}
|
||||
This function is similar to the \code{eval()} function or the
|
||||
This function is similar to the
|
||||
\code{exec} statement, but parses a file instead of a string. It is
|
||||
different from the \code{import} statement in that it does not use
|
||||
the module administration --- it reads the file unconditionally and
|
||||
does not create a new module.
|
||||
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{globals}
|
||||
dictionary is omitted it defaults to the \var{locals} dictionary.
|
||||
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 \code{execfile} is called. The return value is
|
||||
None.
|
||||
environment where \code{execfile()} is called. The return value is
|
||||
\code{None}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{filter}{function\, list}
|
||||
@ -173,8 +174,8 @@ removed.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{hex}{x}
|
||||
Convert a number to a hexadecimal string. The result is a valid
|
||||
Python expression.
|
||||
Convert an integer number (of any size) to a hexadecimal string.
|
||||
The result is a valid Python expression.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{id}{object}
|
||||
@ -194,7 +195,9 @@ removed.
|
||||
|
||||
\begin{funcdesc}{int}{x}
|
||||
Convert a number to a plain integer. The argument may be a plain or
|
||||
long integer or a floating point number.
|
||||
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.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{len}{s}
|
||||
@ -231,8 +234,8 @@ any kind of sequence; the result is always a list.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{oct}{x}
|
||||
Convert a number to an octal string. The result is a valid Python
|
||||
expression.
|
||||
Convert an integer number (of any size) to an octal string. The
|
||||
result is a valid Python expression.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{open}{filename\optional{\, mode\optional{\, bufsize}}}
|
||||
@ -290,7 +293,8 @@ there's no reliable way to determine whether this is the case.}
|
||||
the last element is the largest \code{\var{start} + \var{i} *
|
||||
\var{step}} less than \var{end}; if \var{step} is negative, the last
|
||||
element is the largest \code{\var{start} + \var{i} * \var{step}}
|
||||
greater than \var{end}. \var{step} must not be zero. Example:
|
||||
greater than \var{end}. \var{step} must not be zero (or else an
|
||||
exception is raised). Example:
|
||||
|
||||
\bcode\begin{verbatim}
|
||||
>>> range(10)
|
||||
@ -321,7 +325,7 @@ there's no reliable way to determine whether this is the case.}
|
||||
>>> s = raw_input('--> ')
|
||||
--> Monty Python's Flying Circus
|
||||
>>> s
|
||||
'Monty Python\'s Flying Circus'
|
||||
"Monty Python's Flying Circus"
|
||||
>>>
|
||||
\end{verbatim}\ecode
|
||||
\end{funcdesc}
|
||||
@ -337,17 +341,48 @@ 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. Note that if a module is
|
||||
syntactically correct but its initialization fails, the first
|
||||
\code{import} statement for it does not import the name, but does
|
||||
create a (partially initialized) module object; to reload the module
|
||||
you must first \code{import} it again (this will just make the
|
||||
partially initialized module object available) before you can
|
||||
\code{reload()} it.
|
||||
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 \code{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
|
||||
\code{import} it again (this will bind the name to the partially
|
||||
initialized module object) before you can \code{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 \code{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 \code{sys}, \code{__main__} and
|
||||
\code{__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 \code{from}
|
||||
{\ldots} \code{import} {\ldots}, calling \code{reload()} for the other
|
||||
module does not redefine the objects imported from it --- one way
|
||||
around this is to re-execute the \code{from} statement, another is to
|
||||
use \code{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}
|
||||
@ -385,23 +420,25 @@ always attempt to return a string that is acceptable to \code{eval()};
|
||||
its goal is to return a printable string.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{tuple}{object}
|
||||
\begin{funcdesc}{tuple}{sequence}
|
||||
Return a tuple whose items are the same and in the same order as
|
||||
\var{object}'s items. If \var{object} is alread a tuple, it
|
||||
\var{sequence}'s items. If \var{sequence} is alread 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}
|
||||
% XXXJH xref to buil-in objects here?
|
||||
Return the type of an \var{object}. The return value is a type
|
||||
object. There is not much you can do with type objects except compare
|
||||
them to other type objects; e.g., the following checks if a variable
|
||||
is a string:
|
||||
Return the type of an \var{object}. The return value is a type
|
||||
object. The standard module \code{types} defines names for all
|
||||
built-in types.
|
||||
\stmodindex{types}
|
||||
\obindex{type}
|
||||
For instance:
|
||||
|
||||
\bcode\begin{verbatim}
|
||||
>>> if type(x) == type(''): print 'It is a string'
|
||||
>>> import types
|
||||
>>> if type(x) == types.StringType: print "It's a string"
|
||||
\end{verbatim}\ecode
|
||||
\end{funcdesc}
|
||||
|
||||
@ -424,7 +461,7 @@ which yields the same values as the corresponding list, without
|
||||
actually storing them all simultaneously. The advantage of
|
||||
\code{xrange()} over \code{range()} is minimal (since \code{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. DOS) or when all
|
||||
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 \code{break}).
|
||||
\end{funcdesc}
|
||||
|
@ -5,7 +5,8 @@ This module helps scripts to parse the command line arguments in
|
||||
\code{sys.argv}.
|
||||
It uses the same conventions as the \UNIX{}
|
||||
\code{getopt()}
|
||||
function.
|
||||
function (including the special meanings of arguments of the form
|
||||
\samp{-} and \samp{--}).
|
||||
It defines the function
|
||||
\code{getopt.getopt(args, options)}
|
||||
and the exception
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{gopherlib}}
|
||||
\section{Standard Module \sectcode{gopherlib}}
|
||||
\stmodindex{gopherlib}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module gopherlib)}
|
||||
|
@ -13,7 +13,7 @@ following items from the group database (see \file{<grp.h>}), in order:
|
||||
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(s) they are in.)
|
||||
group they are in according to the password database.)
|
||||
An exception is raised if the entry asked for cannot be found.
|
||||
|
||||
It defines the following items:
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{htmllib}}
|
||||
\section{Standard Module \sectcode{htmllib}}
|
||||
\stmodindex{htmllib}
|
||||
\index{HTML}
|
||||
\index{hypertext}
|
||||
@ -27,12 +27,14 @@ The following is a summary of the interface defined by
|
||||
\item
|
||||
The interface to feed data to an instance is through the \code{feed()}
|
||||
method, which takes a string argument. This can be called with as
|
||||
little or as much text at a time as desired. When the data contains complete
|
||||
little or as much text at a time as desired;
|
||||
\code{p.feed(a); p.feed(b)} has the same effect as \code{p.feed(a+b)}.
|
||||
When the data contains complete
|
||||
HTML elements, these are processed immediately; incomplete elements
|
||||
are saved in a buffer. To force processing of all unprocessed data,
|
||||
call the \code{close()} method.
|
||||
|
||||
Example: to parse the entire contents of a file, do
|
||||
Example: to parse the entire contents of a file, do\\
|
||||
\code{parser.feed(open(file).read()); parser.close()}.
|
||||
|
||||
\item
|
||||
@ -142,7 +144,7 @@ sheets are:
|
||||
\index{style sheet}
|
||||
|
||||
\begin{datadesc}{NullStylesheet}
|
||||
A style sheet for use on a dumb output device such as an ASCII
|
||||
A style sheet for use on a dumb output device such as an \ASCII{}
|
||||
terminal.
|
||||
\end{datadesc}
|
||||
|
||||
@ -242,9 +244,9 @@ spaces.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{datadesc}{nospace}
|
||||
If this instance variable is true, empty words are ignored by
|
||||
\code{addword}. It is set to false after a non-empty word has been
|
||||
added.
|
||||
If this instance variable is true, empty words should be ignored by
|
||||
\code{addword}. It should be set to false after a non-empty word has
|
||||
been added.
|
||||
\end{datadesc}
|
||||
|
||||
\begin{funcdesc}{setjust}{justification}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{httplib}}
|
||||
\section{Standard Module \sectcode{httplib}}
|
||||
\stmodindex{httplib}
|
||||
\index{HTTP}
|
||||
|
||||
@ -15,7 +15,15 @@ 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{host:port}, else the default HTTP port (80) is used.
|
||||
If no host is passed, no connection is made, and the \code{connect}
|
||||
method should be used to connect to a server.
|
||||
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 \code{HTTP} instance has been connected to an HTTP server, it
|
||||
should be used as follows:
|
||||
@ -27,7 +35,7 @@ should be used as follows:
|
||||
\item[2.] Make zero or more calls to the \code{putheader()} method.
|
||||
|
||||
\item[3.] Call the \code{endheaders()} method (this can be omitted if
|
||||
step 4. makes no calls).
|
||||
step 4 makes no calls).
|
||||
|
||||
\item[4.] Optional calls to the \code{send()} method.
|
||||
|
||||
@ -93,3 +101,22 @@ Return a file object from which the data returned by the server can be
|
||||
read, using the \code{read()}, \code{readline()} or \code{readlines()}
|
||||
methods.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{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}
|
||||
|
@ -1,9 +1,9 @@
|
||||
\section{Built-in module \sectcode{imageop}}
|
||||
\section{Built-in Module \sectcode{imageop}}
|
||||
\bimodindex{imageop}
|
||||
|
||||
The \code{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
|
||||
stored in Python strings. This is the same format as used
|
||||
by \code{gl.lrectwrite} and the \code{imgfile} module.
|
||||
|
||||
The module defines the following variables and functions:
|
||||
@ -17,49 +17,48 @@ per pixel, etc.
|
||||
|
||||
|
||||
\begin{funcdesc}{crop}{image\, psize\, width\, height\, x0\, y0\, x1\, y1}
|
||||
This function takes the image in \var{image}, which should by
|
||||
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, and returns the selected part of that image. \var{x0},
|
||||
\var{y0}, \var{x1} and \var{y1} are like the \code{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.
|
||||
\var{psize} bytes. \var{x0}, \var{y0}, \var{x1} and \var{y1} are like
|
||||
the \code{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}
|
||||
This function returns an \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.
|
||||
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}
|
||||
This function runs 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.
|
||||
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}
|
||||
This function converts 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 \code{mono2grey}.
|
||||
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 \code{mono2grey}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{dither2mono}{image\, width\, height}
|
||||
This function also converts an 8-bit greyscale image to a 1-bit
|
||||
monochrome image but it uses a (simple-minded) dithering algorithm.
|
||||
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}
|
||||
This function converts 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.
|
||||
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}
|
||||
@ -74,7 +73,7 @@ dithering.
|
||||
|
||||
\begin{funcdesc}{dither2grey2}{image\, width\, height}
|
||||
Convert an 8-bit greyscale image to a 2-bit greyscale image with
|
||||
dithering. As for \code{dither2mono}, the dithering algorithm is
|
||||
dithering. As for \code{dither2mono}, the dithering algorithm is
|
||||
currently very simple.
|
||||
\end{funcdesc}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{imgfile}}
|
||||
\section{Built-in Module \sectcode{imgfile}}
|
||||
\bimodindex{imgfile}
|
||||
|
||||
The imgfile module allows python programs to access SGI imglib image
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{imp}}
|
||||
\section{Built-in Module \sectcode{imp}}
|
||||
\bimodindex{imp}
|
||||
\index{import}
|
||||
|
||||
@ -9,7 +9,7 @@ functions:
|
||||
\renewcommand{\indexsubitem}{(in module struct)}
|
||||
|
||||
\begin{funcdesc}{get_magic}{}
|
||||
Return the magic string used to recognize value byte-compiled code
|
||||
Return the magic string value used to recognize byte-compiled code
|
||||
files (``\code{.pyc} files'').
|
||||
\end{funcdesc}
|
||||
|
||||
@ -22,15 +22,15 @@ 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
|
||||
\code{PY_SOURCE}, \code{PY_COMPILED} or \code{C_EXTENSION}, defined
|
||||
below.
|
||||
below. (System-dependent values may also be returned.)
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{find_module}{name\, \optional{path}}
|
||||
Try to find the module \var{name} on the search path \var{path}. The
|
||||
default \var{path} is \code{sys.path}. 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
|
||||
corresponding to the file found, \var{pathname} is the pathname of the
|
||||
\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 \code{get_suffixes} describing the kind of file found.
|
||||
\end{funcdesc}
|
||||
@ -134,33 +134,27 @@ The following function emulates the default import statement:
|
||||
|
||||
\begin{verbatim}
|
||||
import imp
|
||||
from sys import modules
|
||||
import sys
|
||||
|
||||
def __import__(name, globals=None, locals=None, fromlist=None):
|
||||
# Fast path: let's see if it's already in sys.modules.
|
||||
# Two speed optimizations are worth mentioning:
|
||||
# - We use 'modules' instead of 'sys.modules'; this saves a
|
||||
# dictionary look-up per call.
|
||||
# - It's also faster to use a try-except statement than
|
||||
# to use modules.has_key(name) to check if it's there.
|
||||
try:
|
||||
return modules[name]
|
||||
except KeyError:
|
||||
pass
|
||||
# Fast path: see if the module has already been imported.
|
||||
if sys.modules.has_key(name):
|
||||
return sys.modules[name]
|
||||
|
||||
# See if it's a built-in module
|
||||
# If any of the following calls raises an exception,
|
||||
# there's a problem we con't handle -- let the caller handle it.
|
||||
|
||||
# See if it's a built-in module.
|
||||
m = imp.init_builtin(name)
|
||||
if m:
|
||||
return m
|
||||
|
||||
# See if it's a frozen module
|
||||
# See if it's a frozen module.
|
||||
m = imp.init_frozen(name)
|
||||
if m:
|
||||
return m
|
||||
|
||||
# Search the default path (i.e. sys.path).
|
||||
# If this raises an exception, the module is not found --
|
||||
# let the caller handle the exception.
|
||||
fp, pathname, (suffix, mode, type) = imp.find_module(name)
|
||||
|
||||
# See what we got.
|
||||
@ -170,7 +164,7 @@ def __import__(name, globals=None, locals=None, fromlist=None):
|
||||
if type == imp.PY_SOURCE:
|
||||
return imp.load_source(name, pathname, fp)
|
||||
if type == imp.PY_COMPILED:
|
||||
return imp.load_source(name, pathname, fp)
|
||||
return imp.load_compiled(name, pathname, fp)
|
||||
|
||||
# Shouldn't get here at all.
|
||||
raise ImportError, '%s: unknown module type (%d)' % (name, type)
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
The modules in this chapter are available on the Apple Macintosh only.
|
||||
|
||||
\section{Built-in module \sectcode{mac}}
|
||||
\section{Built-in Module \sectcode{mac}}
|
||||
|
||||
\bimodindex{mac}
|
||||
This module provides a subset of the operating system dependent
|
||||
@ -22,7 +22,7 @@ The following functions are available in this module:
|
||||
\code{unlink},
|
||||
as well as the exception \code{error}.
|
||||
|
||||
\section{Standard module \sectcode{macpath}}
|
||||
\section{Standard Module \sectcode{macpath}}
|
||||
|
||||
\stmodindex{macpath}
|
||||
This module provides a subset of the pathname manipulation functions
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{macconsole}}
|
||||
\section{Built-in Module \sectcode{macconsole}}
|
||||
\bimodindex{macconsole}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module macconsole)}
|
||||
@ -62,7 +62,7 @@ If set non-zero, the window will wait for user action before closing.
|
||||
|
||||
\subsection{console window object}
|
||||
|
||||
\renewcommand{\indexsubitem}{(console window method)}
|
||||
\renewcommand{\indexsubitem}{(console window attribute)}
|
||||
|
||||
\begin{datadesc}{file}
|
||||
The file object corresponding to this console window. If the file is
|
||||
@ -70,6 +70,8 @@ buffered, you should call \code{file.flush()} between \code{write()}
|
||||
and \code{read()} calls.
|
||||
\end{datadesc}
|
||||
|
||||
\renewcommand{\indexsubitem}{(console window method)}
|
||||
|
||||
\begin{funcdesc}{setmode}{mode}
|
||||
Set the input mode of the console to \var{C_ECHO}, etc.
|
||||
\end{funcdesc}
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
\section{Built-in module \sectcode{macdnr}}
|
||||
\section{Built-in Module \sectcode{macdnr}}
|
||||
\bimodindex{macdnr}
|
||||
|
||||
This module provides an interface to the Macintosh Domain Name
|
||||
@ -75,6 +75,8 @@ Wait for the query to complete.
|
||||
Return 1 if the query is complete.
|
||||
\end{funcdesc}
|
||||
|
||||
\renewcommand{\indexsubitem}{(dnr result object attribute)}
|
||||
|
||||
\begin{datadesc}{rtnCode}
|
||||
The error code returned by the query.
|
||||
\end{datadesc}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{macfs}}
|
||||
\section{Built-in Module \sectcode{macfs}}
|
||||
\bimodindex{macfs}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module macfs)}
|
||||
@ -18,11 +18,14 @@ Create an FSSpec object for the specified file.
|
||||
|
||||
\begin{funcdesc}{RawFSSpec}{data}
|
||||
Create an FSSpec object given the raw data for the C structure for the
|
||||
FSSpec.
|
||||
FSSpec as a string. This is mainly useful if you have obtained an
|
||||
FSSpec structure over a network.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{RawAlias}{data}
|
||||
Create an Alias object given the raw data for the alias.
|
||||
Create an Alias object given the raw data for the C structure for the
|
||||
alias as a string. This is mainly useful if you have obtained an
|
||||
FSSpec structure over a network.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{ResolveAliasFile}{file}
|
||||
@ -56,12 +59,13 @@ dialog. Return an FSSpec object and a success-indicator.
|
||||
|
||||
\subsection{FSSpec objects}
|
||||
|
||||
\renewcommand{\indexsubitem}{(FSSpec object method)}
|
||||
\renewcommand{\indexsubitem}{(FSSpec object attribute)}
|
||||
\begin{datadesc}{data}
|
||||
The raw data from the FSSpec object, suitable for passing
|
||||
to other applications, for instance.
|
||||
\end{datadesc}
|
||||
|
||||
\renewcommand{\indexsubitem}{(FSSpec object method)}
|
||||
\begin{funcdesc}{as_pathname}{}
|
||||
Return the full pathname of the file described by the FSSpec object.
|
||||
\end{funcdesc}
|
||||
@ -91,12 +95,13 @@ Set the 4-char creator and type of the file.
|
||||
|
||||
\subsection{alias objects}
|
||||
|
||||
\renewcommand{\indexsubitem}{(alias object method)}
|
||||
\renewcommand{\indexsubitem}{(alias object attribute)}
|
||||
\begin{datadesc}{data}
|
||||
The raw data for the Alias record, suitable for storing in a resource
|
||||
or transmitting to other programs.
|
||||
\end{datadesc}
|
||||
|
||||
\renewcommand{\indexsubitem}{(alias object method)}
|
||||
\begin{funcdesc}{Resolve}{\optional{file}}
|
||||
Resolve the alias. If the alias was created as a relative alias you
|
||||
should pass the file relative to which it is. Return the FSSpec for
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{macspeech}}
|
||||
\section{Built-in Module \sectcode{macspeech}}
|
||||
\bimodindex{macspeech}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module macspeech)}
|
||||
|
@ -1,5 +1,6 @@
|
||||
\section{Built-in module \sectcode{mactcp}}
|
||||
\section{Built-in Module \sectcode{mactcp}}
|
||||
\bimodindex{mactcp}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module mactcp)}
|
||||
|
||||
This module provides an interface to the Macintosh TCP/IP driver
|
||||
@ -37,8 +38,9 @@ on this port). \var{port} is the UDP port number you want to receive
|
||||
datagrams on, a value of zero will make MacTCP select a free port.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{TCP stream objects}
|
||||
\renewcommand{\indexsubitem}{(TCP stream method)}
|
||||
\subsection{TCP Stream Objects}
|
||||
|
||||
\renewcommand{\indexsubitem}{(TCP stream attribute)}
|
||||
|
||||
\begin{datadesc}{asr}
|
||||
When set to a value different than \code{None} this should point to a
|
||||
@ -50,6 +52,8 @@ is a Python addition to the MacTCP semantics.
|
||||
It is safe to do further calls from the \code{asr}.
|
||||
\end{datadesc}
|
||||
|
||||
\renewcommand{\indexsubitem}{(TCP stream method)}
|
||||
|
||||
\begin{funcdesc}{PassiveOpen}{port}
|
||||
Wait for an incoming connection on TCP port \var{port} (zero makes the
|
||||
system pick a free port). The call returns immediately, and you should
|
||||
@ -104,15 +108,17 @@ Forcibly close both sides of a connection, ignoring outstanding data.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{Status}{}
|
||||
Return a TCP status object for this stream.
|
||||
Return a TCP status object for this stream giving the current status
|
||||
(see below).
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{TCP status objects}
|
||||
\subsection{TCP Status Objects}
|
||||
This object has no methods, only some members holding information on
|
||||
the connection. A complete description of all fields in this objects
|
||||
can be found in the Apple documentation. The most interesting ones are:
|
||||
|
||||
\renewcommand{\indexsubitem}{(TCP status method)}
|
||||
\renewcommand{\indexsubitem}{(TCP status attribute)}
|
||||
|
||||
\begin{datadesc}{localHost}
|
||||
\dataline{localPort}
|
||||
\dataline{remoteHost}
|
||||
@ -137,11 +143,11 @@ without blocking).
|
||||
|
||||
|
||||
|
||||
\subsection{UDP stream objects}
|
||||
\subsection{UDP Stream Objects}
|
||||
Note that, unlike the name suggests, there is nothing stream-like
|
||||
about UDP.
|
||||
|
||||
\renewcommand{\indexsubitem}{(UDP stream method)}
|
||||
\renewcommand{\indexsubitem}{(UDP stream attribute)}
|
||||
|
||||
\begin{datadesc}{asr}
|
||||
The asynchronous service routine to be called on events such as
|
||||
@ -153,9 +159,11 @@ single argument, the event code.
|
||||
A read-only member giving the port number of this UDP stream.
|
||||
\end{datadesc}
|
||||
|
||||
\renewcommand{\indexsubitem}{(UDP stream method)}
|
||||
|
||||
\begin{funcdesc}{Read}{timeout}
|
||||
Read a datagram, waiting at most \var{timeout} seconds ($-1$ is
|
||||
indefinite). Return the data.
|
||||
infinite). Return the data.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{Write}{host\, port\, buf}
|
||||
|
@ -4,9 +4,9 @@
|
||||
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 VAX, transport the file to a Mac, and read
|
||||
it back there). Details of the format not explained here; read the
|
||||
source if you're interested.%
|
||||
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.
|
||||
@ -14,6 +14,14 @@ 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
|
||||
\code{pickle} and \code{shelve}. The \code{marshal} module exists
|
||||
mainly to support reading and writing the ``pseudo-compiled'' code for
|
||||
Python modules of \samp{.pyc} files.
|
||||
\stmodindex{pickle}
|
||||
\stmodindex{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
|
||||
@ -23,7 +31,22 @@ 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 an infinite loop).
|
||||
(they will cause infinite loops).
|
||||
|
||||
{\bf Caveat:} On machines where C's \code{long int} type has more than
|
||||
32 bits (such as the DEC Alpha or the HP Precision Architecture), it
|
||||
is possible to create plain Python integers that are longer than 32
|
||||
bits. Since the current \code{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 \code{.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 \code{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.
|
||||
@ -31,6 +54,7 @@ operating on strings.
|
||||
The module defines these functions:
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module marshal)}
|
||||
|
||||
\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
|
||||
|
@ -1,61 +1,64 @@
|
||||
\section{Built-in module \sectcode{md5}}
|
||||
\section{Built-in Module \sectcode{md5}}
|
||||
\bimodindex{md5}
|
||||
|
||||
This module implements the interface to RSA's MD5 message digest
|
||||
algorithm (see also the file \file{md5.doc}). Its use is quite
|
||||
straightforward:\ use the function \code{new} to create an
|
||||
\dfn{md5}-object. You can now ``feed'' this object with arbitrary
|
||||
strings.
|
||||
algorithm (see also Internet RFC 1321). Its use is quite
|
||||
straightforward:\ use the \code{md5.new()} to create an md5 object.
|
||||
You can now feed this object with arbitrary strings using the
|
||||
\code{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 \code{digest()} method.
|
||||
|
||||
At any time you can ask for the ``final'' digest of the object. Internally,
|
||||
a temporary copy of the object is made and the digest is computed and
|
||||
returned. Because of the copy, the digest operation is not destructive
|
||||
for the object. Before a more exact description of the module's use, a small
|
||||
example will be helpful:
|
||||
to obtain the digest of the string \code{'abc'}, use \ldots
|
||||
For example, to obtain the digest of the string {\tt"Nobody inspects
|
||||
the spammish repetition"}:
|
||||
|
||||
\bcode\begin{verbatim}
|
||||
>>> import md5
|
||||
>>> m = md5.new()
|
||||
>>> m.update('abc')
|
||||
>>> m.update("Nobody inspects")
|
||||
>>> m.update(" the spammish repetition")
|
||||
>>> m.digest()
|
||||
'\220\001P\230<\322O\260\326\226?}(\341\177r'
|
||||
'\273d\234\203\335\036\245\311\331\336\311\241\215\360\377\351'
|
||||
\end{verbatim}\ecode
|
||||
|
||||
More condensed:
|
||||
|
||||
\bcode\begin{verbatim}
|
||||
>>> md5.new('abc').digest()
|
||||
'\220\001P\230<\322O\260\326\226?}(\341\177r'
|
||||
>>> 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}\ecode
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module md5)}
|
||||
|
||||
\begin{funcdesc}{new}{\optional{arg}}
|
||||
Create a new md5-object. If \var{arg} is present, an initial
|
||||
\code{update} method is called with \var{arg} as argument.
|
||||
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
|
||||
\code{new} function.
|
||||
\code{new()} function.
|
||||
\end{funcdesc}
|
||||
|
||||
An md5-object has the following methods:
|
||||
An md5 object has the following methods:
|
||||
|
||||
\renewcommand{\indexsubitem}{(md5 method)}
|
||||
\begin{funcdesc}{update}{arg}
|
||||
Update this md5-object with the string \var{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{funcdesc}
|
||||
|
||||
\begin{funcdesc}{digest}{}
|
||||
% XXX The following is not quite clear; what does MD5Final do?
|
||||
Return the \dfn{digest} of this md5-object. Internally, a copy is made
|
||||
and the \C-function \code{MD5Final} is called. Finally the digest is
|
||||
returned.
|
||||
Return the digest of the strings passed to the \code{update()}
|
||||
method so far. This is an 8-byte string which may contain
|
||||
non-\ASCII{} characters, including null bytes.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{copy}{}
|
||||
Return a separate copy of this md5-object. An \code{update} to this
|
||||
copy won't affect the original object.
|
||||
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{funcdesc}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{mimetools}}
|
||||
\section{Standard Module \sectcode{mimetools}}
|
||||
\stmodindex{mimetools}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module mimetools)}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{mpz}}
|
||||
\section{Built-in Module \sectcode{mpz}}
|
||||
\bimodindex{mpz}
|
||||
|
||||
This module implements the interface to part of the GNU MP library.
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{nntplib}}
|
||||
\section{Standard Module \sectcode{nntplib}}
|
||||
\stmodindex{nntplib}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module nntplib)}
|
||||
|
@ -26,9 +26,11 @@ In addition to whatever the correct OS dependent module exports, the
|
||||
following variables and functions are always exported by \code{os}:
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module os)}
|
||||
|
||||
\begin{datadesc}{name}
|
||||
The name of the OS dependent module imported, e.g. \code{'posix'} or
|
||||
\code{'mac'}.
|
||||
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}
|
||||
@ -49,29 +51,54 @@ e.g. \code{'..'} for POSIX or \code{'::'} for the Mac.
|
||||
\end{datadesc}
|
||||
|
||||
\begin{datadesc}{sep}
|
||||
The character used by the OS to separate pathname components, e.g.
|
||||
The character used by the OS to separate pathname components, e.g.\
|
||||
\code{'/'} for POSIX or \code{':'} for the Mac. Note that knowing this
|
||||
is not sufficient to be able to parse or concatenate pathnames---better
|
||||
use \code{os.path.split()} and \code{os.path.join()}---but it is
|
||||
occasionally useful.
|
||||
\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{os.exec*p*()} if the environment
|
||||
doesn't have a \code{'PATH'} key.
|
||||
\end{datadesc}
|
||||
|
||||
\begin{funcdesc}{execl}{path\, arg0\, arg1\, ...}
|
||||
This is equivalent to a call to \code{os.execv} with an \var{argv}
|
||||
of \code{[\var{arg0}, \var{arg1}, ...]}.
|
||||
This is equivalent to
|
||||
\code{os.execv(\var{path}, (\var{arg0}, \var{arg1}, ...))}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{execle}{path\, arg0\, arg1\, ...\, env}
|
||||
This is equivalent to a call to \code{os.execve} with an \var{argv}
|
||||
of \code{[\var{arg0}, \var{arg1}, ...]}.
|
||||
This is equivalent to
|
||||
\code{os.execve(\var{path}, (\var{arg0}, \var{arg1}, ...), \var{env})}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{execlp}{path\, arg0\, arg1\, ...}
|
||||
This is like \code{execl} 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']}.
|
||||
This is equivalent to
|
||||
\code{os.execvp(\var{path}, (\var{arg0}, \var{arg1}, ...))}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{execvp}{path\, arg0\, arg1\, ...}
|
||||
\code{execvp} is for \code{execv} what \code{execlp} is for \code{execl}.
|
||||
\begin{funcdesc}{execvp}{path\, args}
|
||||
This is like \code{os.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{os.environ['PATH']}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{execvpe}{path\, args\, env}
|
||||
This is a cross between \code{os.execve()} and \code{os.execvp()}.
|
||||
The directory list is obtained from \code{\var{env}['PATH']}.
|
||||
\end{funcdesc}
|
||||
|
||||
(The functions \code{os.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 \code{posix}, together with all
|
||||
other functions that \code{os} imports from the OS dependent module.)
|
||||
|
106
Doc/libpdb.tex
106
Doc/libpdb.tex
@ -91,7 +91,7 @@ Enter post-mortem debugging of the traceback found in
|
||||
\code{sys.last_traceback}.
|
||||
\end{funcdesc}
|
||||
|
||||
\subsection{Debugger Commands}
|
||||
\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
|
||||
@ -117,7 +117,7 @@ but the debugger's state is not changed.
|
||||
|
||||
\begin{description}
|
||||
|
||||
\item[{h(elp) [\var{command}]}]
|
||||
\item[h(elp) [\var{command}]]
|
||||
|
||||
Without argument, print the list of available commands.
|
||||
With a \var{command} as argument, print help about that command.
|
||||
@ -127,40 +127,40 @@ through that command instead. Since the \var{command} argument must be
|
||||
an identifier, ``\code{help exec}'' must be entered to get help on the
|
||||
``\code{!}'' command.
|
||||
|
||||
\item[{w(here)}]
|
||||
\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)}]
|
||||
\item[d(own)]
|
||||
|
||||
Move the current frame one level down in the stack trace
|
||||
(to an older frame).
|
||||
|
||||
\item[{u(p)}]
|
||||
\item[u(p)]
|
||||
|
||||
Move the current frame one level up in the stack trace
|
||||
(to a newer frame).
|
||||
|
||||
\item[{b(reak) [\var{lineno}\code{|}\var{function}]}]
|
||||
\item[b(reak) [\var{lineno}\code{|}\var{function}]]
|
||||
|
||||
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.
|
||||
|
||||
\item[{cl(ear) [\var{lineno}]}]
|
||||
\item[cl(ear) [\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)}]
|
||||
\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)}]
|
||||
\item[n(ext)]
|
||||
|
||||
Continue execution until the next line in the current function
|
||||
is reached or it returns. (The difference between \code{next} and
|
||||
@ -168,15 +168,15 @@ is reached or it returns. (The difference between \code{next} and
|
||||
\code{next} executes called functions at (nearly) full speed, only
|
||||
stopping at the next line in the current function.)
|
||||
|
||||
\item[{r(eturn)}]
|
||||
\item[r(eturn)]
|
||||
|
||||
Continue execution until the current function returns.
|
||||
|
||||
\item[{c(ont(inue))}]
|
||||
\item[c(ont(inue))]
|
||||
|
||||
Continue execution, only stop when a breakpoint is encountered.
|
||||
|
||||
\item[{l(ist) [\var{first} [, \var{last}]]}]
|
||||
\item[l(ist) [\var{first} [, \var{last}]]]
|
||||
|
||||
List source code for the current file. Without arguments, list 11
|
||||
lines around the current line or continue the previous listing. With
|
||||
@ -184,17 +184,17 @@ 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)}]
|
||||
\item[a(rgs)]
|
||||
|
||||
Print the argument list of the current function.
|
||||
|
||||
\item[{p \var{expression}}]
|
||||
\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[{[!] \var{statement}}]
|
||||
\item[[!] \var{statement}]
|
||||
|
||||
Execute the (one-line) \var{statement} in the context of
|
||||
the current stack frame.
|
||||
@ -207,9 +207,83 @@ command with a ``\code{global}'' command on the same line, e.g.:
|
||||
(Pdb)
|
||||
\end{verbatim}
|
||||
|
||||
\item[{q(uit)}]
|
||||
\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 sys.settrace(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}, \var{arg})
|
||||
|
||||
\begin{description}
|
||||
|
||||
\item[\var{frame}] is the current stack frame
|
||||
|
||||
\item[\var{event}] is a string: \code{'call'}, \code{'line'}, \code{'return'}
|
||||
or \code{'exception'}
|
||||
|
||||
\item[\var{arg}] is dependent on the event type
|
||||
|
||||
\end{description}
|
||||
|
||||
A trace function should return a new trace function or None.
|
||||
Class methods are accepted (and most useful!) as trace methods.
|
||||
|
||||
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.
|
||||
|
||||
Stack frame objects have the following read-only attributes:
|
||||
|
||||
\begin{description}
|
||||
\item[f_code] the code object being executed
|
||||
\item[f_lineno] the current line number (\code{-1} for \code{'call'} events)
|
||||
\item[f_back] the stack frame of the caller, or None
|
||||
\item[f_locals] dictionary containing local name bindings
|
||||
\item[f_globals] dictionary containing global name bindings
|
||||
\end{description}
|
||||
|
||||
Code objects have the following read-only attributes:
|
||||
|
||||
\begin{description}
|
||||
\item[co_code] the code string
|
||||
\item[co_names] the list of names used by the code
|
||||
\item[co_consts] the list of (literal) constants used by the code
|
||||
\item[co_filename] the filename from which the code was compiled
|
||||
\end{description}
|
||||
|
@ -1,4 +1,4 @@
|
||||
\section{Built-in module \sectcode{pickle}}
|
||||
\section{Standard Module \sectcode{pickle}}
|
||||
\stmodindex{pickle}
|
||||
\index{persistency}
|
||||
\indexii{persistent}{objects}
|
||||
@ -7,6 +7,8 @@
|
||||
\indexii{flattening}{objects}
|
||||
\indexii{pickling}{objects}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module pickle)}
|
||||
|
||||
The \code{pickle} module implements a basic but powerful algorithm for
|
||||
``pickling'' (a.k.a.\ serializing, marshalling or flattening) nearly
|
||||
arbitrary Python objects. This is a more primitive notion than
|
||||
@ -28,11 +30,11 @@ following correctly:
|
||||
|
||||
\begin{itemize}
|
||||
|
||||
\item recursive objects
|
||||
\item recursive objects (objects containing references to themselves)
|
||||
|
||||
\item pointer sharing
|
||||
\item object sharing (references to the same object in different places)
|
||||
|
||||
\item instances of user-defined classes
|
||||
\item user-defined classes and their instances
|
||||
|
||||
\end{itemize}
|
||||
|
||||
@ -42,13 +44,13 @@ standards such as CORBA (which probably can't represent pointer
|
||||
sharing or recursive objects); however it means that non-Python
|
||||
programs may not be able to reconstruct pickled Python objects.
|
||||
|
||||
The \code{pickle} data format uses a printable ASCII representation.
|
||||
The \code{pickle} data format uses a printable \ASCII{} representation.
|
||||
This is slightly more voluminous than a binary representation.
|
||||
However, small integers actually take {\em less} space when
|
||||
represented as minimal-size decimal strings than when represented as
|
||||
32-bit binary numbers, and strings are only much longer if they
|
||||
contain many control characters or 8-bit characters. The big
|
||||
advantage of using printable ASCII (and of some other characteristics
|
||||
advantage of using printable \ASCII{} (and of some other characteristics
|
||||
of \code{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. (I could have gone a step further and used a
|
||||
@ -67,7 +69,7 @@ Trojan horses into a program.
|
||||
For the benefit of persistency modules written using \code{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
|
||||
arbitrary string of printable \ASCII{} characters. The resolution of
|
||||
such names is not defined by the \code{pickle} module --- the
|
||||
persistent object module will have to implement a method
|
||||
\code{persistent_load}. To write references to persistent objects,
|
||||
@ -78,6 +80,8 @@ 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.
|
||||
|
||||
\renewcommand{\indexsubitem}{(pickle protocol)}
|
||||
|
||||
Next, it must normally be possible to create class instances by
|
||||
calling the class without arguments. If this is undesirable, the
|
||||
class can define a method \code{__getinitargs__()}, which should
|
||||
@ -86,7 +90,7 @@ class constructor (\code{__init__()}).
|
||||
\ttindex{__getinitargs__}
|
||||
\ttindex{__init__}
|
||||
|
||||
Classes can further influence how they are pickled --- if the class
|
||||
Classes can further influence how their instances are pickled --- if the class
|
||||
defines the method \code{__getstate__()}, it is called and the return
|
||||
state is pickled as the contents for the instance, and if the class
|
||||
defines the method \code{__setstate__()}, it is called with the
|
||||
@ -113,6 +117,13 @@ 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 \code{__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.
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module pickle)}
|
||||
|
||||
The interface can be summarized as follows.
|
||||
|
||||
To pickle an object \code{x} onto a file \code{f}, open for writing:
|
||||
@ -122,6 +133,12 @@ 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}
|
||||
@ -129,11 +146,19 @@ u = pickle.Unpickler(f)
|
||||
x = u.load(x)
|
||||
\end{verbatim}
|
||||
|
||||
A shorthand is:
|
||||
|
||||
\begin{verbatim}
|
||||
x = pickle.load(f)
|
||||
\end{verbatim}
|
||||
|
||||
The \code{Pickler} class only calls the method \code{f.write} with a
|
||||
string argument. The \code{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 following types can be pickled:
|
||||
\begin{itemize}
|
||||
@ -146,25 +171,56 @@ The following types can be pickled:
|
||||
|
||||
\item tuples, lists and dictionaries containing only picklable objects
|
||||
|
||||
\item class instances whose \code{__dict__} or \code{__setstate__()}
|
||||
is picklable
|
||||
\item classes that are defined at the top level in a module
|
||||
|
||||
\item instances of such classes whose \code{__dict__} or
|
||||
\code{__setstate__()} is picklable
|
||||
|
||||
\end{itemize}
|
||||
|
||||
Attempts to pickle unpicklable objects will raise an exception; when
|
||||
this happens, an unspecified number of bytes may have been written to
|
||||
the file argument.
|
||||
Attempts to pickle unpicklable objects will raise the
|
||||
\code{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 \code{Pickler.dump()} or to
|
||||
\code{Unpickler.load()}, as long as there is a one-to-one
|
||||
correspondence between \code{Pickler} and \code{Unpickler} objects and
|
||||
between \code{dump} and \code{load} calls for any pair of
|
||||
corresponding \code{Pickler} and \code{Unpicklers}. {\em 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 \code{Pickler} instance, the
|
||||
object is not pickled again --- a reference to it is pickled and the
|
||||
\code{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.)
|
||||
It is possible to make multiple calls to the \code{dump()} method of
|
||||
the same \code{Pickler} instance. These must then be matched to the
|
||||
same number of calls to the \code{load()} instance of the
|
||||
corresponding \code{Unpickler} instance. If the same object is
|
||||
pickled by multiple \code{dump()} calls, the \code{load()} will all
|
||||
yield references to the same object. {\em 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 \code{Pickler} instance, the object is not
|
||||
pickled again --- a reference to it is pickled and the
|
||||
\code{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 \code{Pickler} and \code{Unpickler} classes, the
|
||||
module defines the following functions, and an exception:
|
||||
|
||||
\begin{funcdesc}{dump}{object\, file}
|
||||
Write a pickled representation of \var{obect} to the open file object
|
||||
\var{file}. This is equivalent to \code{Pickler(file).dump(object)}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{load}{file}
|
||||
Read a pickled object from the open file object \var{file}. This is
|
||||
equivalent to \code{Unpickler(file).load()}.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{dumps}{object}
|
||||
Return the pickled representation of the object as a string, instead
|
||||
of writing it to a file.
|
||||
\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}
|
||||
|
@ -1,12 +1,20 @@
|
||||
\section{Built-in Module \sectcode{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).
|
||||
It is available in all Python versions except on the Macintosh;
|
||||
the MS-DOS version does not support certain functions.
|
||||
|
||||
\strong{Do not import this module directly.} Instead, import the
|
||||
module \code{os}, which provides a \emph{portable} version of this
|
||||
interface. On \UNIX{}, the \code{os} module provides a superset of
|
||||
the \code{posix} interface. On non-\UNIX{} operating systems the
|
||||
\code{posix} module is not available, but a subset is always available
|
||||
through the \code{os} interface. Once \code{os} is imported, there is
|
||||
\emph{no} performance penalty in using it instead of
|
||||
\code{posix}.
|
||||
\stmodindex{os}
|
||||
|
||||
The descriptions below are very terse; refer to the
|
||||
corresponding \UNIX{} manual entry for more information.
|
||||
|
||||
@ -20,13 +28,18 @@ Module \code{posix} defines the following data items:
|
||||
\begin{datadesc}{environ}
|
||||
A dictionary representing the string environment at the time
|
||||
the interpreter was started.
|
||||
(Modifying this dictionary does not affect the string environment of the
|
||||
interpreter.)
|
||||
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 \code{execv()}, \code{popen()} or \code{system()}; if you
|
||||
need to change the environment, pass \code{environ} to \code{execve()}
|
||||
or add variable assignments and export statements to the command
|
||||
string for \code{system()} or \code{popen()}.%
|
||||
\footnote{The problem with automatically passing on \code{environ} is
|
||||
that there is no portable way of changing the environment.}
|
||||
\end{datadesc}
|
||||
|
||||
\renewcommand{\indexsubitem}{(exception in module posix)}
|
||||
|
@ -7,12 +7,13 @@ 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
|
||||
inherits all the standard file object methods and adds the methods
|
||||
described below.
|
||||
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 \code{fcntl()} for file locking.
|
||||
|
||||
To instantiate a posixfile object, use the \code{open()} function in
|
||||
the posixfile module. The resulting object looks and feels the same as
|
||||
a standard file object.
|
||||
the posixfile module. The resulting object looks and feels roughly
|
||||
the same as a standard file object.
|
||||
|
||||
The posixfile module defines the following constants:
|
||||
|
||||
@ -32,10 +33,11 @@ offset is calculated from the end of the file
|
||||
The posixfile module defines the following functions:
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module posixfile)}
|
||||
\begin{funcdesc}{open}{filename\, mode}
|
||||
|
||||
\begin{funcdesc}{open}{filename\optional{\, mode\optional{\, bufsize}}}
|
||||
Create a new posixfile object with the given filename and mode. The
|
||||
filename and mode are interpreted the same way as the \code{open()}
|
||||
builtin function.
|
||||
\var{filename}, \var{mode} and \var{bufsize} arguments are
|
||||
interpreted the same way as by the \code{open()} builtin function.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{fileopen}{fileobject}
|
||||
@ -102,8 +104,8 @@ 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,}{(1)}
|
||||
{}&{\hskip0.5cm or \code{None} if there is no conflict.}&{}\\
|
||||
\lineiii{?}{return the first lock conflicting with the requested lock, or
|
||||
\code{None} if there is no conflict.}{(1)}
|
||||
\end{tableiii}
|
||||
|
||||
Note:
|
||||
|
@ -1,9 +1,14 @@
|
||||
\section{Standard Module \sectcode{posixpath}}
|
||||
|
||||
\stmodindex{posixpath}
|
||||
|
||||
This module implements some useful functions on POSIX pathnames.
|
||||
|
||||
\strong{Do not import this module directly.} Instead, import the
|
||||
module \code{os} and use \code{os.path}.
|
||||
\stmodindex{os}
|
||||
|
||||
\renewcommand{\indexsubitem}{(in module posixpath)}
|
||||
|
||||
\begin{funcdesc}{basename}{p}
|
||||
Return the base name of pathname
|
||||
\var{p}.
|
||||
@ -66,10 +71,12 @@ Always false if symbolic links are not supported.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{ismount}{p}
|
||||
Return true if \var{p} is a mount point. (This currently checks whether
|
||||
\code{\var{p}/..} is on a different device from \var{p} or whether
|
||||
\code{\var{p}/..} and \var{p} point to the same i-node on the same
|
||||
device --- is this test correct for all \UNIX{} and POSIX variants?)
|
||||
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\, q}
|
||||
@ -128,9 +135,10 @@ Calls the function \var{visit} with arguments
|
||||
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{posix.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
|
||||
\code{del} or slice assignment.)
|
||||
\code{posix.listdir(\var{dirname})}, so including \samp{.} and
|
||||
\samp{..}). 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 \code{del} or slice
|
||||
assignment.)
|
||||
\end{funcdesc}
|
||||
|
@ -2,7 +2,7 @@
|
||||
\stmodindex{profile}
|
||||
\stmodindex{pstats}
|
||||
|
||||
Copyright 1994, by InfoSeek Corporation, all rights reserved.
|
||||
Copyright \copyright\ 1994, by InfoSeek Corporation, all rights reserved.
|
||||
|
||||
Written by James Roskind%
|
||||
\footnote{
|
||||
@ -42,7 +42,7 @@ ways at times. Please send suggestions for improvements to:
|
||||
I'd appreciate the feedback.
|
||||
|
||||
|
||||
\section{Introduction}
|
||||
\section{Introduction to the profiler}
|
||||
|
||||
A \dfn{profiler} is a program that describes the run time performance
|
||||
of a program, providing a variety of statistics. This documentation
|
||||
@ -242,7 +242,7 @@ of algorithms to be directly compared to iterative implementations.
|
||||
|
||||
\section{Reference Manual}
|
||||
|
||||
\renewcommand{\indexsubitem}{}
|
||||
\renewcommand{\indexsubitem}{(profiler function)}
|
||||
|
||||
The primary entry point for the profiler is the global function
|
||||
\code{profile.run()}. It is typically used to create any profile
|
||||
@ -254,7 +254,7 @@ 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}{profile.run}{string\optional{\, filename}}
|
||||
\begin{funcdesc}{profile.run}{string\optional{\, filename\optional{\, ...}}}
|
||||
|
||||
This function takes a single argument that has can be passed to the
|
||||
\code{exec} statement, and an optional file name. In all cases this
|
||||
@ -336,12 +336,12 @@ need to be combined with data in an existing \code{Stats} object, the
|
||||
\end{funcdesc}
|
||||
|
||||
|
||||
\subsection{Methods Of The \sectcode{Stats} Class}
|
||||
\subsection{The \sectcode{Stats} Class}
|
||||
|
||||
\renewcommand{\indexsubitem}{(Stats method)}
|
||||
|
||||
\begin{funcdesc}{strip_dirs}{}
|
||||
This method for the code{Stats} class removes all leading path information
|
||||
This method for the \code{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
|
||||
@ -355,7 +355,7 @@ these two entries are accumulated into a single entry.
|
||||
|
||||
|
||||
\begin{funcdesc}{add}{filename\optional{\, ...}}
|
||||
This method of the code{Stats} class accumulates additional profiling
|
||||
This method of the \code{Stats} class accumulates additional profiling
|
||||
information into the current profiling object. Its arguments should
|
||||
refer to filenames created by the corresponding version of
|
||||
\code{profile.run()}. Statistics for identically named (re: file,
|
||||
@ -364,7 +364,7 @@ function statistics.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{sort_stats}{key\optional{\, ...}}
|
||||
This method modifies the code{Stats} object by sorting it according to the
|
||||
This method modifies the \code{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"}).
|
||||
|
||||
@ -412,7 +412,7 @@ additional arguments will be silently ignored.
|
||||
|
||||
|
||||
\begin{funcdesc}{reverse_order}{}
|
||||
This method for the code{Stats} class reverses the ordering of the basic
|
||||
This method for the \code{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
|
||||
@ -420,7 +420,7 @@ the sort key of choice.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{print_stats}{restriction\optional{\, ...}}
|
||||
This method for the code{Stats} class prints out a report as described
|
||||
This method for the \code{Stats} class prints out a report as described
|
||||
in the \code{profile.run()} definition.
|
||||
|
||||
The order of the printing is based on the last \code{sort_stats()}
|
||||
@ -454,7 +454,7 @@ and then proceed to only print the first 10\% of them.
|
||||
|
||||
|
||||
\begin{funcdesc}{print_callers}{restrictions\optional{\, ...}}
|
||||
This method for the code{Stats} class prints a list of all functions
|
||||
This method for the \code{Stats} class prints a list of all functions
|
||||
that called each function in the profiled database. The ordering is
|
||||
identical to that provided by \code{print_stats()}, and the definition
|
||||
of the restricting argument is also identical. For convenience, a
|
||||
@ -464,14 +464,14 @@ is the cumulative time spent in the function at the right.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{print_callees}{restrictions\optional{\, ...}}
|
||||
This method for the code{Stats} class prints a list of all function
|
||||
This method for the \code{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 \code{print_callers()} method.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{ignore}{}
|
||||
This method of the code{Stats} class is used to dispose of the value
|
||||
This method of the \code{Stats} class is used to dispose of the value
|
||||
returned by earlier methods. All standard methods in this class
|
||||
return the instance that is being processed, so that the commands can
|
||||
be strung together. For example:
|
||||
@ -481,7 +481,7 @@ pstats.Stats('foofile').strip_dirs().sort_stats('cum').print_stats().ignore()
|
||||
\end{verbatim}
|
||||
|
||||
would perform all the indicated functions, but it would not return
|
||||
the final reference to the code{Stats} instance.%
|
||||
the final reference to the \code{Stats} instance.%
|
||||
\footnote{
|
||||
This was once necessary, when Python would print any unused expression
|
||||
result that was not \code{None}. The method is still defined for
|
||||
@ -604,7 +604,7 @@ 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}
|
||||
\section{Extensions - Deriving Better Profilers}
|
||||
|
||||
The \code{Profile} class of module \code{profile} was written so that
|
||||
derived classes could be developed to extend the profiler. Rather
|
||||
|
@ -44,12 +44,13 @@ The module defines these functions, and an exception:
|
||||
\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
|
||||
\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 \code{i}-th
|
||||
element of the string gives the translation for the character with
|
||||
ASCII code \code{i}.
|
||||
\ASCII{} code \code{i}. This can be used to implement
|
||||
case-insensitive matching; see the \code{casefold} data item below.
|
||||
|
||||
The sequence
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user