summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2009-01-01 15:46:10 (GMT)
committerGeorg Brandl <georg@python.org>2009-01-01 15:46:10 (GMT)
commit47fe9817f12caa13830dbb4a166b779389d69bc2 (patch)
treef8736de40a3478cc53e5250afc4ae45022c705f9 /Doc
parentb5fc36c86ea5c952b1c478fdd81939c4ef96aac1 (diff)
downloadcpython-47fe9817f12caa13830dbb4a166b779389d69bc2.zip
cpython-47fe9817f12caa13830dbb4a166b779389d69bc2.tar.gz
cpython-47fe9817f12caa13830dbb4a166b779389d69bc2.tar.bz2
Merged revisions 67952-67953,67955,67957-67958,67960-67961,67963,67965,67967,67970-67971,67973,67982,67988,67990,67995,68014,68016,68030,68057,68061,68112,68115-68118,68120-68121,68123-68128 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r67952 | georg.brandl | 2008-12-27 18:42:40 +0100 (Sat, 27 Dec 2008) | 2 lines #4752: actually use custom handler in example. ........ r67953 | georg.brandl | 2008-12-27 19:20:04 +0100 (Sat, 27 Dec 2008) | 3 lines Patch #4739 by David Laban: add symbols to pydoc help topics, so that ``help('@')`` works as expected. ........ r67955 | georg.brandl | 2008-12-27 19:27:53 +0100 (Sat, 27 Dec 2008) | 3 lines Follow-up to r67746 in order to restore backwards-compatibility for those who (monkey-)patch TextWrapper.wordsep_re with a custom RE. ........ r67957 | georg.brandl | 2008-12-27 19:49:19 +0100 (Sat, 27 Dec 2008) | 2 lines #4754: improve winsound documentation. ........ r67958 | georg.brandl | 2008-12-27 20:02:59 +0100 (Sat, 27 Dec 2008) | 2 lines #4682: 'b' is actually unsigned char. ........ r67960 | georg.brandl | 2008-12-27 20:04:44 +0100 (Sat, 27 Dec 2008) | 2 lines #4695: fix backslashery. ........ r67961 | georg.brandl | 2008-12-27 20:06:04 +0100 (Sat, 27 Dec 2008) | 2 lines Use :samp: role. ........ r67963 | georg.brandl | 2008-12-27 20:11:15 +0100 (Sat, 27 Dec 2008) | 2 lines #4671: document that pydoc imports modules. ........ r67965 | antoine.pitrou | 2008-12-27 21:34:52 +0100 (Sat, 27 Dec 2008) | 3 lines Issue #4677: add two list comprehension tests to pybench. ........ r67967 | benjamin.peterson | 2008-12-27 23:18:58 +0100 (Sat, 27 Dec 2008) | 1 line fix markup ........ r67970 | alexandre.vassalotti | 2008-12-28 02:52:58 +0100 (Sun, 28 Dec 2008) | 2 lines Fix name mangling of PyUnicode_ClearFreeList. ........ r67971 | alexandre.vassalotti | 2008-12-28 03:10:35 +0100 (Sun, 28 Dec 2008) | 2 lines Sort UCS-2/UCS-4 name mangling list. ........ r67973 | alexandre.vassalotti | 2008-12-28 03:58:22 +0100 (Sun, 28 Dec 2008) | 2 lines Document Py_VaBuildValue. ........ r67982 | benjamin.peterson | 2008-12-28 16:37:31 +0100 (Sun, 28 Dec 2008) | 1 line fix WORD_BIGEDIAN declaration in Universal builds; fixes #4060 and #4728 ........ r67988 | ronald.oussoren | 2008-12-28 20:40:56 +0100 (Sun, 28 Dec 2008) | 1 line Issue4064: architecture string for universal builds on OSX ........ r67990 | ronald.oussoren | 2008-12-28 20:50:40 +0100 (Sun, 28 Dec 2008) | 3 lines Update the fix for issue4064 to deal correctly with all three variants of universal builds that are presented by the configure script. ........ r67995 | benjamin.peterson | 2008-12-28 22:16:07 +0100 (Sun, 28 Dec 2008) | 1 line #4763 PyErr_ExceptionMatches won't blow up with NULL arguments ........ r68014 | benjamin.peterson | 2008-12-29 18:47:42 +0100 (Mon, 29 Dec 2008) | 1 line #4764 set IOError.filename when trying to open a directory on POSIX platforms ........ r68016 | benjamin.peterson | 2008-12-29 18:56:58 +0100 (Mon, 29 Dec 2008) | 1 line #4764 in io.open, set IOError.filename when trying to open a directory on POSIX platforms ........ r68030 | benjamin.peterson | 2008-12-29 22:38:14 +0100 (Mon, 29 Dec 2008) | 1 line fix French ........ r68057 | vinay.sajip | 2008-12-30 08:01:25 +0100 (Tue, 30 Dec 2008) | 1 line Minor documentation change relating to NullHandler. ........ r68061 | georg.brandl | 2008-12-30 11:15:49 +0100 (Tue, 30 Dec 2008) | 2 lines #4778: attributes can't be called. ........ r68112 | benjamin.peterson | 2009-01-01 00:48:39 +0100 (Thu, 01 Jan 2009) | 1 line #4795 inspect.isgeneratorfunction() should return False instead of None ........ r68115 | benjamin.peterson | 2009-01-01 05:04:41 +0100 (Thu, 01 Jan 2009) | 1 line simplfy code ........ r68116 | georg.brandl | 2009-01-01 12:46:51 +0100 (Thu, 01 Jan 2009) | 2 lines #4100: note that element children are not necessarily present on "start" events. ........ r68117 | georg.brandl | 2009-01-01 12:53:55 +0100 (Thu, 01 Jan 2009) | 2 lines #4156: make clear that "protocol" is to be replaced with the protocol name. ........ r68118 | georg.brandl | 2009-01-01 13:00:19 +0100 (Thu, 01 Jan 2009) | 2 lines #4185: clarify escape behavior of replacement strings. ........ r68120 | georg.brandl | 2009-01-01 13:15:31 +0100 (Thu, 01 Jan 2009) | 4 lines #4228: Pack negative values the same way as 2.4 in struct's L format. ........ r68121 | georg.brandl | 2009-01-01 13:43:33 +0100 (Thu, 01 Jan 2009) | 2 lines Point to types module in new module deprecation notice. ........ r68123 | georg.brandl | 2009-01-01 13:52:29 +0100 (Thu, 01 Jan 2009) | 2 lines #4784: ... on three counts ... ........ r68124 | georg.brandl | 2009-01-01 13:53:19 +0100 (Thu, 01 Jan 2009) | 2 lines #4782: Fix markup error that hid load() and loads(). ........ r68125 | georg.brandl | 2009-01-01 14:02:09 +0100 (Thu, 01 Jan 2009) | 2 lines #4776: add data_files and package_dir arguments. ........ r68126 | georg.brandl | 2009-01-01 14:05:13 +0100 (Thu, 01 Jan 2009) | 2 lines Handlers are in the `logging.handlers` module. ........ r68127 | georg.brandl | 2009-01-01 14:14:49 +0100 (Thu, 01 Jan 2009) | 2 lines #4767: Use correct submodules for all MIME classes. ........ r68128 | antoine.pitrou | 2009-01-01 15:11:22 +0100 (Thu, 01 Jan 2009) | 3 lines Issue #3680: Reference cycles created through a dict, set or deque iterator did not get collected. ........
Diffstat (limited to 'Doc')
-rw-r--r--Doc/c-api/arg.rst10
-rw-r--r--Doc/c-api/exceptions.rst9
-rw-r--r--Doc/distutils/apiref.rst29
-rw-r--r--Doc/howto/unicode.rst2
-rw-r--r--Doc/library/email.mime.rst15
-rw-r--r--Doc/library/json.rst4
-rw-r--r--Doc/library/logging.rst12
-rw-r--r--Doc/library/multiprocessing.rst6
-rw-r--r--Doc/library/new.rst4
-rw-r--r--Doc/library/pydoc.rst7
-rw-r--r--Doc/library/socketserver.rst2
-rw-r--r--Doc/library/urllib2.rst61
-rw-r--r--Doc/library/webbrowser.rst2
-rw-r--r--Doc/library/winsound.rst9
-rw-r--r--Doc/library/xml.etree.elementtree.rst10
15 files changed, 131 insertions, 51 deletions
diff --git a/Doc/c-api/arg.rst b/Doc/c-api/arg.rst
index 5dc28af..144a365 100644
--- a/Doc/c-api/arg.rst
+++ b/Doc/c-api/arg.rst
@@ -136,8 +136,9 @@ variable(s) whose address should be passed.
them. Instead, the implementation assumes that the string object uses the
encoding passed in as parameter.
-``b`` (integer) [char]
- Convert a Python integer to a tiny int, stored in a C :ctype:`char`.
+``b`` (integer) [unsigned char]
+ Convert a nonnegative Python integer to an unsigned tiny int, stored in a C
+ :ctype:`unsigned char`.
``B`` (integer) [unsigned char]
Convert a Python integer to a tiny int without overflow checking, stored in a C
@@ -533,3 +534,8 @@ and the following format units are left untouched.
If there is an error in the format string, the :exc:`SystemError` exception is
set and *NULL* returned.
+
+.. cfunction:: PyObject* Py_VaBuildValue(const char *format, va_list vargs)
+
+ Identical to :cfunc:`Py_BuildValue`, except that it accepts a va_list
+ rather than a variable number of arguments.
diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst
index 2998521..536b123 100644
--- a/Doc/c-api/exceptions.rst
+++ b/Doc/c-api/exceptions.rst
@@ -73,11 +73,10 @@ is a separate error indicator for each thread.
.. cfunction:: int PyErr_GivenExceptionMatches(PyObject *given, PyObject *exc)
- Return true if the *given* exception matches the exception in *exc*. If *exc*
- is a class object, this also returns true when *given* is an instance of a
- subclass. If *exc* is a tuple, all exceptions in the tuple (and recursively in
- subtuples) are searched for a match. If *given* is *NULL*, a memory access
- violation will occur.
+ Return true if the *given* exception matches the exception in *exc*. If
+ *exc* is a class object, this also returns true when *given* is an instance
+ of a subclass. If *exc* is a tuple, all exceptions in the tuple (and
+ recursively in subtuples) are searched for a match.
.. cfunction:: void PyErr_NormalizeException(PyObject**exc, PyObject**val, PyObject**tb)
diff --git a/Doc/distutils/apiref.rst b/Doc/distutils/apiref.rst
index a8f7461..4a0d354 100644
--- a/Doc/distutils/apiref.rst
+++ b/Doc/distutils/apiref.rst
@@ -88,9 +88,9 @@ setup script). Indirectly provides the :class:`distutils.dist.Distribution` and
| *options* | default options for the setup | a string |
| | script | |
+--------------------+--------------------------------+-------------------------------------------------------------+
- | *license* | The license for the package | |
+ | *license* | The license for the package | a string |
+--------------------+--------------------------------+-------------------------------------------------------------+
- | *keywords* | Descriptive meta-data. See | |
+ | *keywords* | Descriptive meta-data, see | |
| | :pep:`314` | |
+--------------------+--------------------------------+-------------------------------------------------------------+
| *platforms* | | |
@@ -98,6 +98,13 @@ setup script). Indirectly provides the :class:`distutils.dist.Distribution` and
| *cmdclass* | A mapping of command names to | a dictionary |
| | :class:`Command` subclasses | |
+--------------------+--------------------------------+-------------------------------------------------------------+
+ | *data_files* | A list of data files to | a list |
+ | | install | |
+ +--------------------+--------------------------------+-------------------------------------------------------------+
+ | *package_dir* | A mapping of package to | a dictionary |
+ | | directory names | |
+ +--------------------+--------------------------------+-------------------------------------------------------------+
+
.. function:: run_setup(script_name[, script_args=None, stop_after='run'])
@@ -1100,6 +1107,24 @@ other utility module.
For non-POSIX platforms, currently just returns ``sys.platform``.
+ For MacOS X systems the OS version reflects the minimal version on which
+ binaries will run (that is, the value of ``MACOSX_DEPLOYMENT_TARGET``
+ during the build of Python), not the OS version of the current system.
+
+ For universal binary builds on MacOS X the architecture value reflects
+ the univeral binary status instead of the architecture of the current
+ processor. For 32-bit universal binaries the architecture is ``fat``,
+ for 64-bit universal binaries the architecture is ``fat64``, and
+ for 4-way universal binaries the architecture is ``universal``.
+
+ Examples of returned values on MacOS X:
+
+ * ``macosx-10.3-ppc``
+
+ * ``macosx-10.3-fat``
+
+ * ``macosx-10.5-universal``
+
.. % XXX isn't this also provided by some other non-distutils module?
diff --git a/Doc/howto/unicode.rst b/Doc/howto/unicode.rst
index 561ce29..d5dec63 100644
--- a/Doc/howto/unicode.rst
+++ b/Doc/howto/unicode.rst
@@ -30,7 +30,7 @@ For a while people just wrote programs that didn't display accents. I remember
looking at Apple ][ BASIC programs, published in French-language publications in
the mid-1980s, that had lines like these::
- PRINT "FICHER EST COMPLETE."
+ PRINT "FICHIER EST COMPLETE."
PRINT "CARACTERE NON ACCEPTE."
Those messages should contain accents, and they just look wrong to someone who
diff --git a/Doc/library/email.mime.rst b/Doc/library/email.mime.rst
index 6f1b0ae..415a682 100644
--- a/Doc/library/email.mime.rst
+++ b/Doc/library/email.mime.rst
@@ -19,6 +19,7 @@ things easier.
Here are the classes:
+.. currentmodule:: email.mime.base
.. class:: MIMEBase(_maintype, _subtype, **_params)
@@ -39,6 +40,8 @@ Here are the classes:
:mailheader:`MIME-Version` header (always set to ``1.0``).
+.. currentmodule:: email.mime.nonmultipart
+
.. class:: MIMENonMultipart()
Module: :mod:`email.mime.nonmultipart`
@@ -52,6 +55,8 @@ Here are the classes:
.. versionadded:: 2.2.2
+.. currentmodule:: email.mime.multipart
+
.. class:: MIMEMultipart([subtype[, boundary[, _subparts[, _params]]]])
Module: :mod:`email.mime.multipart`
@@ -77,6 +82,8 @@ Here are the classes:
.. versionadded:: 2.2.2
+.. currentmodule:: email.mime.application
+
.. class:: MIMEApplication(_data[, _subtype[, _encoder[, **_params]]])
Module: :mod:`email.mime.application`
@@ -99,6 +106,8 @@ Here are the classes:
.. versionadded:: 2.5
+.. currentmodule:: email.mime.audio
+
.. class:: MIMEAudio(_audiodata[, _subtype[, _encoder[, **_params]]])
Module: :mod:`email.mime.audio`
@@ -122,6 +131,8 @@ Here are the classes:
*_params* are passed straight through to the base class constructor.
+.. currentmodule:: email.mime.image
+
.. class:: MIMEImage(_imagedata[, _subtype[, _encoder[, **_params]]])
Module: :mod:`email.mime.image`
@@ -145,6 +156,8 @@ Here are the classes:
*_params* are passed straight through to the :class:`MIMEBase` constructor.
+.. currentmodule:: email.mime.message
+
.. class:: MIMEMessage(_msg[, _subtype])
Module: :mod:`email.mime.message`
@@ -158,6 +171,8 @@ Here are the classes:
:mimetype:`rfc822`.
+.. currentmodule:: email.mime.text
+
.. class:: MIMEText(_text[, _subtype[, _charset]])
Module: :mod:`email.mime.text`
diff --git a/Doc/library/json.rst b/Doc/library/json.rst
index bff779b..cf6138e 100644
--- a/Doc/library/json.rst
+++ b/Doc/library/json.rst
@@ -166,7 +166,7 @@ Basic Usage
:func:`dump`.
-.. function load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, **kw]]]]]]])
+.. function:: load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, **kw]]]]]]])
Deserialize *fp* (a ``.read()``-supporting file-like object containing a JSON
document) to a Python object.
@@ -202,7 +202,7 @@ Basic Usage
class.
-.. function loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, **kw]]]]]]])
+.. function:: loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, **kw]]]]]]])
Deserialize *s* (a :class:`str` or :class:`unicode` instance containing a JSON
document) to a Python object.
diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst
index dac6aeb1..3e54422 100644
--- a/Doc/library/logging.rst
+++ b/Doc/library/logging.rst
@@ -553,10 +553,10 @@ provided:
#. :class:`HTTPHandler` instances send error messages to an HTTP server using
either ``GET`` or ``POST`` semantics.
-The :class:`StreamHandler` and :class:`FileHandler` classes are defined in the
-core logging package. The other handlers are defined in a sub- module,
-:mod:`logging.handlers`. (There is also another sub-module,
-:mod:`logging.config`, for configuration functionality.)
+The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler`
+classes are defined in the core logging package. The other handlers are
+defined in a sub- module, :mod:`logging.handlers`. (There is also another
+sub-module, :mod:`logging.config`, for configuration functionality.)
Logged messages are formatted for presentation through instances of the
:class:`Formatter` class. They are initialized with a format string suitable for
@@ -1544,6 +1544,8 @@ subclasses. However, the :meth:`__init__` method in subclasses needs to call
StreamHandler
^^^^^^^^^^^^^
+.. module:: logging.handlers
+
The :class:`StreamHandler` class, located in the core :mod:`logging` package,
sends logging output to streams such as *sys.stdout*, *sys.stderr* or any
file-like object (or, more precisely, any object which supports :meth:`write`
@@ -2050,6 +2052,8 @@ supports sending logging messages to a Web server, using either ``GET`` or
Formatter Objects
-----------------
+.. currentmodule:: logging
+
:class:`Formatter`\ s have the following attributes and methods. They are
responsible for converting a :class:`LogRecord` to (usually) a string which can
be interpreted by either a human or an external system. The base
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
index 8297e9f..6f4a3f1 100644
--- a/Doc/library/multiprocessing.rst
+++ b/Doc/library/multiprocessing.rst
@@ -358,7 +358,7 @@ The :mod:`multiprocessing` package mostly replicates the API of the
.. attribute:: daemon
- The process's daemon flag, a Boolean value. This must be called before
+ The process's daemon flag, a Boolean value. This must be set before
:meth:`start` is called.
The initial value is inherited from the creating process.
@@ -1810,9 +1810,9 @@ Address Formats
filesystem.
* An ``'AF_PIPE'`` address is a string of the form
- ``r'\\\\.\\pipe\\PipeName'``. To use :func:`Client` to connect to a named
+ :samp:`r'\\\\.\\pipe\\{PipeName}'`. To use :func:`Client` to connect to a named
pipe on a remote computer called ServerName* one should use an address of the
- form ``r'\\\\ServerName\\pipe\\PipeName'`` instead.
+ form :samp:`r'\\\\{ServerName}\\pipe\\{PipeName}'`` instead.
Note that any string beginning with two backslashes is assumed by default to be
an ``'AF_PIPE'`` address rather than an ``'AF_UNIX'`` address.
diff --git a/Doc/library/new.rst b/Doc/library/new.rst
index d8e455c..670d3d7 100644
--- a/Doc/library/new.rst
+++ b/Doc/library/new.rst
@@ -1,4 +1,3 @@
-
:mod:`new` --- Creation of runtime internal objects
===================================================
@@ -7,7 +6,8 @@
:deprecated:
.. deprecated:: 2.6
- The :mod:`new` module has been removed in Python 3.0.
+ The :mod:`new` module has been removed in Python 3.0. Use the :mod:`types`
+ module's classes instead.
.. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
diff --git a/Doc/library/pydoc.rst b/Doc/library/pydoc.rst
index 6d4986e..3784515 100644
--- a/Doc/library/pydoc.rst
+++ b/Doc/library/pydoc.rst
@@ -36,6 +36,13 @@ it contains the path separator for your operating system, such as a slash in
Unix), and refers to an existing Python source file, then documentation is
produced for that file.
+.. note::
+
+ In order to find objects and their documentation, :mod:`pydoc` imports the
+ module(s) to be documented. Therefore, any code on module level will be
+ executed on that occasion. Use an ``if __name__ == '__main__':`` guard to
+ only execute code when a file is invoked as a script and not just imported.
+
Specifying a :option:`-w` flag before the argument will cause HTML documentation
to be written out to a file in the current directory, instead of displaying text
on the console.
diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst
index 7f4daad..786632e 100644
--- a/Doc/library/socketserver.rst
+++ b/Doc/library/socketserver.rst
@@ -448,7 +448,7 @@ This is the server side::
if __name__ == "__main__":
HOST, PORT = "localhost", 9999
- server = SocketServer.UDPServer((HOST, PORT), BaseUDPRequestHandler)
+ server = SocketServer.UDPServer((HOST, PORT), MyUDPHandler)
server.serve_forever()
This is the client side::
diff --git a/Doc/library/urllib2.rst b/Doc/library/urllib2.rst
index 18f5af7..4c7c582 100644
--- a/Doc/library/urllib2.rst
+++ b/Doc/library/urllib2.rst
@@ -391,23 +391,23 @@ OpenerDirector Objects
.. method:: OpenerDirector.add_handler(handler)
- *handler* should be an instance of :class:`BaseHandler`. The following methods
- are searched, and added to the possible chains (note that HTTP errors are a
- special case).
+ *handler* should be an instance of :class:`BaseHandler`. The following
+ methods are searched, and added to the possible chains (note that HTTP errors
+ are a special case).
- * :meth:`protocol_open` --- signal that the handler knows how to open *protocol*
- URLs.
+ * :samp:`{protocol}_open` --- signal that the handler knows how to open
+ *protocol* URLs.
- * :meth:`http_error_type` --- signal that the handler knows how to handle HTTP
- errors with HTTP error code *type*.
+ * :samp:`http_error_{type}` --- signal that the handler knows how to handle
+ HTTP errors with HTTP error code *type*.
- * :meth:`protocol_error` --- signal that the handler knows how to handle errors
- from (non-\ ``http``) *protocol*.
+ * :samp:`{protocol}_error` --- signal that the handler knows how to handle
+ errors from (non-\ ``http``) *protocol*.
- * :meth:`protocol_request` --- signal that the handler knows how to pre-process
- *protocol* requests.
+ * :samp:`{protocol}_request` --- signal that the handler knows how to
+ pre-process *protocol* requests.
- * :meth:`protocol_response` --- signal that the handler knows how to
+ * :samp:`{protocol}_response` --- signal that the handler knows how to
post-process *protocol* responses.
@@ -441,24 +441,24 @@ OpenerDirector objects open URLs in three stages:
The order in which these methods are called within each stage is determined by
sorting the handler instances.
-#. Every handler with a method named like :meth:`protocol_request` has that
+#. Every handler with a method named like :samp:`{protocol}_request` has that
method called to pre-process the request.
-#. Handlers with a method named like :meth:`protocol_open` are called to handle
+#. Handlers with a method named like :samp:`{protocol}_open` are called to handle
the request. This stage ends when a handler either returns a non-\ :const:`None`
value (ie. a response), or raises an exception (usually :exc:`URLError`).
Exceptions are allowed to propagate.
In fact, the above algorithm is first tried for methods named
- :meth:`default_open`. If all such methods return :const:`None`, the algorithm
- is repeated for methods named like :meth:`protocol_open`. If all such methods
- return :const:`None`, the algorithm is repeated for methods named
- :meth:`unknown_open`.
+ :meth:`default_open`. If all such methods return :const:`None`, the
+ algorithm is repeated for methods named like :samp:`{protocol}_open`. If all
+ such methods return :const:`None`, the algorithm is repeated for methods
+ named :meth:`unknown_open`.
Note that the implementation of these methods may involve calls of the parent
:class:`OpenerDirector` instance's :meth:`.open` and :meth:`.error` methods.
-#. Every handler with a method named like :meth:`protocol_response` has that
+#. Every handler with a method named like :samp:`{protocol}_response` has that
method called to post-process the response.
@@ -514,8 +514,10 @@ The following members and methods should only be used by classes derived from
.. method:: BaseHandler.protocol_open(req)
:noindex:
+ ("protocol" is to be replaced by the protocol name.)
+
This method is *not* defined in :class:`BaseHandler`, but subclasses should
- define it if they want to handle URLs with the given protocol.
+ define it if they want to handle URLs with the given *protocol*.
This method, if defined, will be called by the parent :class:`OpenerDirector`.
Return values should be the same as for :meth:`default_open`.
@@ -563,8 +565,10 @@ The following members and methods should only be used by classes derived from
.. method:: BaseHandler.protocol_request(req)
:noindex:
+ ("protocol" is to be replaced by the protocol name.)
+
This method is *not* defined in :class:`BaseHandler`, but subclasses should
- define it if they want to pre-process requests of the given protocol.
+ define it if they want to pre-process requests of the given *protocol*.
This method, if defined, will be called by the parent :class:`OpenerDirector`.
*req* will be a :class:`Request` object. The return value should be a
@@ -574,8 +578,10 @@ The following members and methods should only be used by classes derived from
.. method:: BaseHandler.protocol_response(req, response)
:noindex:
+ ("protocol" is to be replaced by the protocol name.)
+
This method is *not* defined in :class:`BaseHandler`, but subclasses should
- define it if they want to post-process responses of the given protocol.
+ define it if they want to post-process responses of the given *protocol*.
This method, if defined, will be called by the parent :class:`OpenerDirector`.
*req* will be a :class:`Request` object. *response* will be an object
@@ -660,7 +666,9 @@ ProxyHandler Objects
.. method:: ProxyHandler.protocol_open(request)
:noindex:
- The :class:`ProxyHandler` will have a method :meth:`protocol_open` for every
+ ("protocol" is to be replaced by the protocol name.)
+
+ The :class:`ProxyHandler` will have a method :samp:`{protocol}_open` for every
*protocol* which has a proxy in the *proxies* dictionary given in the
constructor. The method will modify requests to go through the proxy, by
calling ``request.set_proxy()``, and call the next handler in the chain to
@@ -865,9 +873,10 @@ HTTPErrorProcessor Objects
For 200 error codes, the response object is returned immediately.
For non-200 error codes, this simply passes the job on to the
- :meth:`protocol_error_code` handler methods, via :meth:`OpenerDirector.error`.
- Eventually, :class:`urllib2.HTTPDefaultErrorHandler` will raise an
- :exc:`HTTPError` if no other handler handles the error.
+ :samp:`{protocol}_error_code` handler methods, via
+ :meth:`OpenerDirector.error`. Eventually,
+ :class:`urllib2.HTTPDefaultErrorHandler` will raise an :exc:`HTTPError` if no
+ other handler handles the error.
.. _urllib2-examples:
diff --git a/Doc/library/webbrowser.rst b/Doc/library/webbrowser.rst
index 13cd8c7..d340b8a 100644
--- a/Doc/library/webbrowser.rst
+++ b/Doc/library/webbrowser.rst
@@ -172,7 +172,7 @@ Here are some simple examples::
Browser Controller Objects
--------------------------
-Browser controllers provide two methods which parallel two of the module-level
+Browser controllers provide these methods which parallel two of the module-level
convenience functions:
diff --git a/Doc/library/winsound.rst b/Doc/library/winsound.rst
index f9709fe..b4a3391 100644
--- a/Doc/library/winsound.rst
+++ b/Doc/library/winsound.rst
@@ -30,8 +30,9 @@ provided by Windows platforms. It includes functions and several constants.
Call the underlying :cfunc:`PlaySound` function from the Platform API. The
*sound* parameter may be a filename, audio data as a string, or ``None``. Its
interpretation depends on the value of *flags*, which can be a bitwise ORed
- combination of the constants described below. If the system indicates an error,
- :exc:`RuntimeError` is raised.
+ combination of the constants described below. If the *sound* parameter is
+ ``None``, any currently playing waveform sound is stopped. If the system
+ indicates an error, :exc:`RuntimeError` is raised.
.. function:: MessageBeep([type=MB_OK])
@@ -108,6 +109,10 @@ provided by Windows platforms. It includes functions and several constants.
Stop playing all instances of the specified sound.
+ .. note::
+
+ This flag is not supported on modern Windows platforms.
+
.. data:: SND_ASYNC
diff --git a/Doc/library/xml.etree.elementtree.rst b/Doc/library/xml.etree.elementtree.rst
index cdc774e..b17d510 100644
--- a/Doc/library/xml.etree.elementtree.rst
+++ b/Doc/library/xml.etree.elementtree.rst
@@ -94,6 +94,16 @@ Functions
*events* is a list of events to report back. If omitted, only "end" events are
reported. Returns an :term:`iterator` providing ``(event, elem)`` pairs.
+ .. note::
+
+ :func:`iterparse` only guarantees that it has seen the ">"
+ character of a starting tag when it emits a "start" event, so the
+ attributes are defined, but the contents of the text and tail attributes
+ are undefined at that point. The same applies to the element children;
+ they may or may not be present.
+
+ If you need a fully populated element, look for "end" events instead.
+
.. function:: parse(source[, parser])