summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
Diffstat (limited to 'Doc')
-rw-r--r--Doc/README2
-rw-r--r--Doc/api/newtypes.tex2
-rw-r--r--Doc/howto/functional.rst4
-rw-r--r--Doc/lib/libbsddb.tex2
-rw-r--r--Doc/lib/libbz2.tex8
-rwxr-xr-xDoc/lib/libctypes.tex4
-rw-r--r--Doc/lib/libfuncs.tex74
-rw-r--r--Doc/lib/liblogging.tex6
-rw-r--r--Doc/lib/libmmap.tex5
-rw-r--r--Doc/lib/libsimplexmlrpc.tex2
-rw-r--r--Doc/lib/libsocket.tex25
-rw-r--r--Doc/lib/libsqlite3.tex8
-rw-r--r--Doc/lib/libstdtypes.tex9
-rw-r--r--Doc/lib/libtarfile.tex7
-rw-r--r--Doc/lib/libtest.tex24
-rw-r--r--Doc/lib/liburlparse.tex4
-rw-r--r--Doc/mac/toolbox.tex2
-rw-r--r--Doc/whatsnew/whatsnew25.tex24
18 files changed, 138 insertions, 74 deletions
diff --git a/Doc/README b/Doc/README
index 484fce6..a426ba2 100644
--- a/Doc/README
+++ b/Doc/README
@@ -229,7 +229,7 @@ The Python source is copyrighted, but you can freely use and copy it
as long as you don't change or remove the copyright notice:
----------------------------------------------------------------------
-Copyright (c) 2000-2006 Python Software Foundation.
+Copyright (c) 2000-2007 Python Software Foundation.
All rights reserved.
Copyright (c) 2000 BeOpen.com.
diff --git a/Doc/api/newtypes.tex b/Doc/api/newtypes.tex
index 43d2f88..e5c5aac 100644
--- a/Doc/api/newtypes.tex
+++ b/Doc/api/newtypes.tex
@@ -103,8 +103,6 @@ defining new object types.
the value for the \var{methods} argument]{2.3}
\end{cfuncdesc}
-DL_IMPORT
-
\begin{cvardesc}{PyObject}{_Py_NoneStruct}
Object which is visible in Python as \code{None}. This should only
be accessed using the \code{Py_None} macro, which evaluates to a
diff --git a/Doc/howto/functional.rst b/Doc/howto/functional.rst
index 2e5a6a9..124dd01 100644
--- a/Doc/howto/functional.rst
+++ b/Doc/howto/functional.rst
@@ -1398,10 +1398,10 @@ Python documentation
'''''''''''''''''''''''''''
http://docs.python.org/lib/module-itertools.html:
-Documentation ``for the itertools`` module.
+Documentation for the ``itertools`` module.
http://docs.python.org/lib/module-operator.html:
-Documentation ``for the operator`` module.
+Documentation for the ``operator`` module.
http://www.python.org/dev/peps/pep-0289/:
PEP 289: "Generator Expressions"
diff --git a/Doc/lib/libbsddb.tex b/Doc/lib/libbsddb.tex
index 85ea824..e9d7e21 100644
--- a/Doc/lib/libbsddb.tex
+++ b/Doc/lib/libbsddb.tex
@@ -16,7 +16,7 @@ serialize them somehow, typically using \function{marshal.dumps()} or
\function{pickle.dumps()}.
The \module{bsddb} module requires a Berkeley DB library version from
-3.3 thru 4.4.
+3.3 thru 4.5.
\begin{seealso}
\seeurl{http://pybsddb.sourceforge.net/}
diff --git a/Doc/lib/libbz2.tex b/Doc/lib/libbz2.tex
index 11801fe..36bc0d2 100644
--- a/Doc/lib/libbz2.tex
+++ b/Doc/lib/libbz2.tex
@@ -81,10 +81,10 @@ is an approximate bound on the total number of bytes in the lines returned.
\begin{methoddesc}[BZ2File]{seek}{offset\optional{, whence}}
Move to new file position. Argument \var{offset} is a byte count. Optional
-argument \var{whence} defaults to \code{0} (offset from start of file,
-offset should be \code{>= 0}); other values are \code{1} (move relative to
-current position, positive or negative), and \code{2} (move relative to end
-of file, usually negative, although many platforms allow seeking beyond
+argument \var{whence} defaults to \code{os.SEEK_SET} or \code{0} (offset from start of file;
+offset should be \code{>= 0}); other values are \code{os.SEEK_CUR} or \code{1} (move relative to
+current position; offset can be positive or negative), and \code{os.SEEK_END} or \code{2} (move relative to end
+of file; offset is usually negative, although many platforms allow seeking beyond
the end of a file).
Note that seeking of bz2 files is emulated, and depending on the parameters
diff --git a/Doc/lib/libctypes.tex b/Doc/lib/libctypes.tex
index c0e2310..2f880f2 100755
--- a/Doc/lib/libctypes.tex
+++ b/Doc/lib/libctypes.tex
@@ -2085,10 +2085,10 @@ classmethod, normally it returns \code{obj} if that is an instance of
the type. Some types accept other objects as well.
\end{methoddesc}
-\begin{methoddesc}{in_dll}{name, library}
+\begin{methoddesc}{in_dll}{library, name}
This method returns a ctypes type instance exported by a shared
library. \var{name} is the name of the symbol that exports the data,
-\code{library} is the loaded shared library.
+\var{library} is the loaded shared library.
\end{methoddesc}
Common instance variables of ctypes data types:
diff --git a/Doc/lib/libfuncs.tex b/Doc/lib/libfuncs.tex
index 7e0b88d..02cca83 100644
--- a/Doc/lib/libfuncs.tex
+++ b/Doc/lib/libfuncs.tex
@@ -237,11 +237,11 @@ class C:
\code{del \var{x}.\var{foobar}}.
\end{funcdesc}
-\begin{funcdesc}{dict}{\optional{mapping-or-sequence}}
+\begin{funcdesc}{dict}{\optional{arg}}
Return a new dictionary initialized from an optional positional
argument or from a set of keyword arguments.
If no arguments are given, return a new empty dictionary.
- If the positional argument is a mapping object, return a dictionary
+ If the positional argument \var{arg} is a mapping object, return a dictionary
mapping the same keys to the same values as does the mapping object.
Otherwise the positional argument must be a sequence, a container that
supports iteration, or an iterator object. The elements of the argument
@@ -448,18 +448,18 @@ class C:
\versionadded{2.2}
\end{funcdesc}
-\begin{funcdesc}{filter}{function, list}
- Construct a list from those elements of \var{list} for which
- \var{function} returns true. \var{list} may be either a sequence, a
- container which supports iteration, or an iterator, If \var{list}
+\begin{funcdesc}{filter}{function, iterable}
+ Construct a list from those elements of \var{iterable} for which
+ \var{function} returns true. \var{iterable} may be either a sequence, a
+ container which supports iteration, or an iterator, If \var{iterable}
is a string or a tuple, the result
also has that type; otherwise it is always a list. If \var{function} is
\code{None}, the identity function is assumed, that is, all elements of
- \var{list} that are false are removed.
+ \var{iterable} that are false are removed.
- Note that \code{filter(function, \var{list})} is equivalent to
- \code{[item for item in \var{list} if function(item)]} if function is
- not \code{None} and \code{[item for item in \var{list} if item]} if
+ Note that \code{filter(function, \var{iterable})} is equivalent to
+ \code{[item for item in \var{iterable} if function(item)]} if function is
+ not \code{None} and \code{[item for item in \var{iterable} if item]} if
function is \code{None}.
\end{funcdesc}
@@ -608,12 +608,12 @@ class C:
may be a sequence (string, tuple or list) or a mapping (dictionary).
\end{funcdesc}
-\begin{funcdesc}{list}{\optional{sequence}}
+\begin{funcdesc}{list}{\optional{iterable}}
Return a list whose items are the same and in the same order as
- \var{sequence}'s items. \var{sequence} may be either a sequence, a
+ \var{iterable}'s items. \var{iterable} may be either a sequence, a
container that supports iteration, or an iterator object. If
- \var{sequence} is already a list, a copy is made and returned,
- similar to \code{\var{sequence}[:]}. For instance,
+ \var{iterable} is already a list, a copy is made and returned,
+ similar to \code{\var{iterable}[:]}. For instance,
\code{list('abc')} returns \code{['a', 'b', 'c']} and \code{list(
(1, 2, 3) )} returns \code{[1, 2, 3]}. If no argument is given,
returns a new empty list, \code{[]}.
@@ -639,22 +639,22 @@ class C:
are given, returns \code{0L}.
\end{funcdesc}
-\begin{funcdesc}{map}{function, list, ...}
- Apply \var{function} to every item of \var{list} and return a list
- of the results. If additional \var{list} arguments are passed,
+\begin{funcdesc}{map}{function, iterable, ...}
+ Apply \var{function} to every item of \var{iterable} and return a list
+ of the results. If additional \var{iterable} arguments are passed,
\var{function} must take that many arguments and is applied to the
- items of all lists in parallel; if a list is shorter than another it
+ items from all iterables in parallel. If one iterable is shorter than another it
is assumed to be extended with \code{None} items. If \var{function}
is \code{None}, the identity function is assumed; if there are
- multiple list arguments, \function{map()} returns a list consisting
- of tuples containing the corresponding items from all lists (a kind
- of transpose operation). The \var{list} arguments may be any kind
- of sequence; the result is always a list.
+ multiple arguments, \function{map()} returns a list consisting
+ of tuples containing the corresponding items from all iterables (a kind
+ of transpose operation). The \var{iterable} arguments may be a sequence
+ or any iterable object; the result is always a list.
\end{funcdesc}
-\begin{funcdesc}{max}{s\optional{, args...}\optional{key}}
- With a single argument \var{s}, return the largest item of a
- non-empty sequence (such as a string, tuple or list). With more
+\begin{funcdesc}{max}{iterable\optional{, args...}\optional{key}}
+ With a single argument \var{iterable}, return the largest item of a
+ non-empty iterable (such as a string, tuple or list). With more
than one argument, return the largest of the arguments.
The optional \var{key} argument specifies a one-argument ordering
@@ -664,16 +664,16 @@ class C:
\versionchanged[Added support for the optional \var{key} argument]{2.5}
\end{funcdesc}
-\begin{funcdesc}{min}{s\optional{, args...}\optional{key}}
- With a single argument \var{s}, return the smallest item of a
- non-empty sequence (such as a string, tuple or list). With more
+\begin{funcdesc}{min}{iterable\optional{, args...}\optional{key}}
+ With a single argument \var{iterable}, return the smallest item of a
+ non-empty iterable (such as a string, tuple or list). With more
than one argument, return the smallest of the arguments.
The optional \var{key} argument specifies a one-argument ordering
function like that used for \method{list.sort()}. The \var{key}
argument, if supplied, must be in keyword form (for example,
\samp{min(a,b,c,key=func)}).
- \versionchanged[Added support for the optional \var{key} argument]{2.5}
+ \versionchanged[Added support for the optional \var{key} argument]{2.5}
\end{funcdesc}
\begin{funcdesc}{object}{}
@@ -1073,11 +1073,11 @@ class C:
string, \code{''}.
\end{funcdesc}
-\begin{funcdesc}{sum}{sequence\optional{, start}}
- Sums \var{start} and the items of a \var{sequence}, from left to
- right, and returns the total. \var{start} defaults to \code{0}.
- The \var{sequence}'s items are normally numbers, and are not allowed
- to be strings. The fast, correct way to concatenate sequence of
+\begin{funcdesc}{sum}{iterable\optional{, start}}
+ Sums \var{start} and the items of an \var{iterable} from left to
+ right and returns the total. \var{start} defaults to \code{0}.
+ The \var{iterable}'s items are normally numbers, and are not allowed
+ to be strings. The fast, correct way to concatenate a sequence of
strings is by calling \code{''.join(\var{sequence})}.
\versionadded{2.3}
\end{funcdesc}
@@ -1105,11 +1105,11 @@ class C(B):
\versionadded{2.2}
\end{funcdesc}
-\begin{funcdesc}{tuple}{\optional{sequence}}
+\begin{funcdesc}{tuple}{\optional{iterable}}
Return a tuple whose items are the same and in the same order as
- \var{sequence}'s items. \var{sequence} may be a sequence, a
+ \var{iterable}'s items. \var{iterable} may be a sequence, a
container that supports iteration, or an iterator object.
- If \var{sequence} is already a tuple, it
+ If \var{iterable} is already a tuple, it
is returned unchanged. For instance, \code{tuple('abc')} returns
\code{('a', 'b', 'c')} and \code{tuple([1, 2, 3])} returns
\code{(1, 2, 3)}. If no argument is given, returns a new empty
diff --git a/Doc/lib/liblogging.tex b/Doc/lib/liblogging.tex
index e01fe0b..b97854d 100644
--- a/Doc/lib/liblogging.tex
+++ b/Doc/lib/liblogging.tex
@@ -516,8 +516,10 @@ Removes the specified handler \var{hdlr} from this logger.
\end{methoddesc}
\begin{methoddesc}{findCaller}{}
-Finds the caller's source filename and line number. Returns the filename
-and line number as a 2-element tuple.
+Finds the caller's source filename and line number. Returns the filename,
+line number and function name as a 3-element tuple.
+\versionchanged[The function name was added. In earlier versions, the
+filename and line number were returned as a 2-element tuple.]{2.5}
\end{methoddesc}
\begin{methoddesc}{handle}{record}
diff --git a/Doc/lib/libmmap.tex b/Doc/lib/libmmap.tex
index 3dca40f..3763d4f 100644
--- a/Doc/lib/libmmap.tex
+++ b/Doc/lib/libmmap.tex
@@ -140,8 +140,9 @@ Memory-mapped file objects support the following methods:
\begin{methoddesc}{seek}{pos\optional{, whence}}
Set the file's current position. \var{whence} argument is optional
- and defaults to \code{0} (absolute file positioning); other values
- are \code{1} (seek relative to the current position) and \code{2}
+ and defaults to \code{os.SEEK_SET} or \code{0} (absolute file
+ positioning); other values are \code{os.SEEK_CUR} or \code{1} (seek
+ relative to the current position) and \code{os.SEEK_END} or \code{2}
(seek relative to the file's end).
\end{methoddesc}
diff --git a/Doc/lib/libsimplexmlrpc.tex b/Doc/lib/libsimplexmlrpc.tex
index 7a97861..6b45855 100644
--- a/Doc/lib/libsimplexmlrpc.tex
+++ b/Doc/lib/libsimplexmlrpc.tex
@@ -15,7 +15,7 @@ CGI environment, using \class{CGIXMLRPCRequestHandler}.
\begin{classdesc}{SimpleXMLRPCServer}{addr\optional{,
requestHandler\optional{,
- logRequests\optional{allow_none\optional{, encoding}}}}}
+ logRequests\optional{, allow_none\optional{, encoding}}}}}
Create a new server instance. This class
provides methods for registration of functions that can be called by
diff --git a/Doc/lib/libsocket.tex b/Doc/lib/libsocket.tex
index f510fd4..f20c56c 100644
--- a/Doc/lib/libsocket.tex
+++ b/Doc/lib/libsocket.tex
@@ -569,11 +569,32 @@ at once is specified by \var{bufsize}. See the \UNIX{} manual page
Receive data from the socket. The return value is a pair
\code{(\var{string}, \var{address})} where \var{string} is a string
representing the data received and \var{address} is the address of the
-socket sending the data. The optional \var{flags} argument has the
-same meaning as for \method{recv()} above.
+socket sending the data. See the \UNIX{} manual page
+\manpage{recv}{2} for the meaning of the optional argument
+\var{flags}; it defaults to zero.
(The format of \var{address} depends on the address family --- see above.)
\end{methoddesc}
+\begin{methoddesc}[socket]{recvfrom_into}{buffer\optional{, nbytes\optional{, flags}}}
+Receive data from the socket, writing it into \var{buffer} instead of
+creating a new string. The return value is a pair
+\code{(\var{nbytes}, \var{address})} where \var{nbytes} is the number
+of bytes received and \var{address} is the address of the socket
+sending the data. See the \UNIX{} manual page
+\manpage{recv}{2} for the meaning of the optional argument
+\var{flags}; it defaults to zero. (The format of \var{address}
+depends on the address family --- see above.)
+\end{methoddesc}
+
+\begin{methoddesc}[socket]{recv_into}{buffer\optional{, nbytes\optional{, flags}}}
+Receive up to \var{nbytes} bytes from the socket,
+storing the data into a buffer rather than creating a new string.
+If \var{nbytes} is not specified (or 0),
+receive up to the size available in the given buffer.
+See the \UNIX{} manual page \manpage{recv}{2} for the meaning of the
+optional argument \var{flags}; it defaults to zero.
+\end{methoddesc}
+
\begin{methoddesc}[socket]{send}{string\optional{, flags}}
Send data to the socket. The socket must be connected to a remote
socket. The optional \var{flags} argument has the same meaning as for
diff --git a/Doc/lib/libsqlite3.tex b/Doc/lib/libsqlite3.tex
index 82416fa..aeb60c1 100644
--- a/Doc/lib/libsqlite3.tex
+++ b/Doc/lib/libsqlite3.tex
@@ -187,12 +187,12 @@ int, long, float, str (UTF-8 encoded), unicode or buffer.
\end{funcdesc}
\begin{funcdesc}{complete_statement}{sql}
-Returns \constant{True} if the string \var{sql} one or more complete SQL
-statements terminated by semicolons. It does not verify if the SQL is
-syntactically correct, only if there are no unclosed string literals and if the
+Returns \constant{True} if the string \var{sql} contains one or more complete SQL
+statements terminated by semicolons. It does not verify that the SQL is
+syntactically correct, only that there are no unclosed string literals and the
statement is terminated by a semicolon.
-This can be used to build a shell for SQLite, like in the following example:
+This can be used to build a shell for SQLite, as in the following example:
\verbatiminput{sqlite3/complete_statement.py}
\end{funcdesc}
diff --git a/Doc/lib/libstdtypes.tex b/Doc/lib/libstdtypes.tex
index b433bc4..8a527f6 100644
--- a/Doc/lib/libstdtypes.tex
+++ b/Doc/lib/libstdtypes.tex
@@ -1660,9 +1660,12 @@ flush the read-ahead buffer.
\begin{methoddesc}[file]{seek}{offset\optional{, whence}}
Set the file's current position, like \code{stdio}'s \cfunction{fseek()}.
- The \var{whence} argument is optional and defaults to \code{0}
- (absolute file positioning); other values are \code{1} (seek
- relative to the current position) and \code{2} (seek relative to the
+ The \var{whence} argument is optional and defaults to
+ \code{os.SEEK_SET} or \code{0}
+ (absolute file positioning); other values are \code{os.SEEK_CUR} or \code{1}
+ (seek
+ relative to the current position) and \code{os.SEEK_END} or \code{2}
+ (seek relative to the
file's end). There is no return value. Note that if the file is
opened for appending (mode \code{'a'} or \code{'a+'}), any
\method{seek()} operations will be undone at the next write. If the
diff --git a/Doc/lib/libtarfile.tex b/Doc/lib/libtarfile.tex
index ca6e65a..5f277da 100644
--- a/Doc/lib/libtarfile.tex
+++ b/Doc/lib/libtarfile.tex
@@ -124,6 +124,11 @@ Some facts and figures:
only if \member{TarFile.errorlevel}\code{ == 2}.
\end{excdesc}
+\begin{excdesc}{HeaderError}
+ Is raised by \method{frombuf()} if the buffer it gets is invalid.
+ \versionadded{2.6}
+\end{excdesc}
+
\begin{seealso}
\seemodule{zipfile}{Documentation of the \refmodule{zipfile}
standard module.}
@@ -332,6 +337,8 @@ the file's data itself.
\begin{methoddesc}{frombuf}{}
Create and return a \class{TarInfo} object from a string buffer.
+ \versionadded[Raises \exception{HeaderError} if the buffer is
+ invalid.]{2.6}
\end{methoddesc}
\begin{methoddesc}{tobuf}{posix}
diff --git a/Doc/lib/libtest.tex b/Doc/lib/libtest.tex
index 54a24b1..f89c707 100644
--- a/Doc/lib/libtest.tex
+++ b/Doc/lib/libtest.tex
@@ -263,6 +263,12 @@ If no match is found \var{filename} is returned.
This does not equal a failure since it could be the path to the file.
\end{funcdesc}
+\begin{funcdesc}{guard_warnings_filter}{}
+Returns a context manager that guards the \module{warnings} module's
+filter settings.
+\versionadded{2.6}
+\end{funcdesc}
+
\begin{funcdesc}{run_unittest}{*classes}
Execute \class{unittest.TestCase} subclasses passed to the function.
The function scans the classes for methods starting with the prefix
@@ -275,4 +281,22 @@ Execute the \class{unittest.TestSuite} instance \var{suite}.
The optional argument \var{testclass} accepts one of the test classes in the
suite so as to print out more detailed information on where the testing suite
originated from.
+
+The \module{test.test_support} module defines the following classes:
+
+\begin{classdesc}{EnvironmentVarGuard}{}
+Class used to temporarily set or unset environment variables. Instances can be
+used as a context manager.
+\versionadded{2.6}
+\end{classdesc}
+
+\begin{methoddesc}{set}{envvar, value}
+Temporarily set the environment variable \code{envvar} to the value of
+\code{value}.
+\end{methoddesc}
+
+\begin{methoddesc}{unset}{envvar}
+Temporarily unset the environment variable \code{envvar}.
+\end{methoddesc}
+
\end{funcdesc}
diff --git a/Doc/lib/liburlparse.tex b/Doc/lib/liburlparse.tex
index 8603605..0473aed 100644
--- a/Doc/lib/liburlparse.tex
+++ b/Doc/lib/liburlparse.tex
@@ -89,7 +89,7 @@ information on the result object.
\begin{funcdesc}{urlunparse}{parts}
Construct a URL from a tuple as returned by \code{urlparse()}.
-The \var{parts} argument be any six-item iterable.
+The \var{parts} argument can be any six-item iterable.
This may result in a slightly different, but equivalent URL, if the
URL that was parsed originally had unnecessary delimiters (for example,
a ? with an empty query; the RFC states that these are equivalent).
@@ -133,7 +133,7 @@ information on the result object.
\begin{funcdesc}{urlunsplit}{parts}
Combine the elements of a tuple as returned by \function{urlsplit()}
into a complete URL as a string.
-The \var{parts} argument be any five-item iterable.
+The \var{parts} argument can be any five-item iterable.
This may result in a slightly different, but equivalent URL, if the
URL that was parsed originally had unnecessary delimiters (for example,
a ? with an empty query; the RFC states that these are equivalent).
diff --git a/Doc/mac/toolbox.tex b/Doc/mac/toolbox.tex
index 9fbcb84..e7ce24f 100644
--- a/Doc/mac/toolbox.tex
+++ b/Doc/mac/toolbox.tex
@@ -65,7 +65,7 @@ only partially.
\modulesynopsis{Interface to the Component Manager.}
\section{\module{Carbon.CarbonEvt} --- Carbon Event Manager}
-\declaremodule{standard}{Carbon.CaronEvt}
+\declaremodule{standard}{Carbon.CarbonEvt}
\platform{Mac}
\modulesynopsis{Interface to the Carbon Event Manager.}
diff --git a/Doc/whatsnew/whatsnew25.tex b/Doc/whatsnew/whatsnew25.tex
index fb68acc..fce3927 100644
--- a/Doc/whatsnew/whatsnew25.tex
+++ b/Doc/whatsnew/whatsnew25.tex
@@ -5,7 +5,7 @@
% Fix XXX comments
\title{What's New in Python 2.5}
-\release{1.0}
+\release{1.01}
\author{A.M. Kuchling}
\authoraddress{\email{amk@amk.ca}}
@@ -556,13 +556,14 @@ generators:
where the generator's execution is paused.
\item \method{close()} raises a new \exception{GeneratorExit}
- exception inside the generator to terminate the iteration.
- On receiving this
- exception, the generator's code must either raise
- \exception{GeneratorExit} or \exception{StopIteration}; catching the
- exception and doing anything else is illegal and will trigger
- a \exception{RuntimeError}. \method{close()} will also be called by
- Python's garbage collector when the generator is garbage-collected.
+ exception inside the generator to terminate the iteration. On
+ receiving this exception, the generator's code must either raise
+ \exception{GeneratorExit} or \exception{StopIteration}. Catching
+ the \exception{GeneratorExit} exception and returning a value is
+ illegal and will trigger a \exception{RuntimeError}; if the function
+ raises some other exception, that exception is propagated to the
+ caller. \method{close()} will also be called by Python's garbage
+ collector when the generator is garbage-collected.
If you need to run cleanup code when a \exception{GeneratorExit} occurs,
I suggest using a \code{try: ... finally:} suite instead of
@@ -1663,6 +1664,13 @@ single number as \file{pystone.py} does.
\item The \module{pyexpat} module now uses version 2.0 of the Expat parser.
(Contributed by Trent Mick.)
+\item The \class{Queue} class provided by the \module{Queue} module
+gained two new methods. \method{join()} blocks until all items in
+the queue have been retrieved and all processing work on the items
+have been completed. Worker threads call the other new method,
+\method{task_done()}, to signal that processing for an item has been
+completed. (Contributed by Raymond Hettinger.)
+
\item The old \module{regex} and \module{regsub} modules, which have been
deprecated ever since Python 2.0, have finally been deleted.
Other deleted modules: \module{statcache}, \module{tzparse},