]> granicus.if.org Git - python/commitdiff
Merged revisions 83561,83563,83565-83566,83569,83571,83574-83575,83580,83584,83599...
authorGeorg Brandl <georg@python.org>
Wed, 6 Oct 2010 08:35:38 +0000 (08:35 +0000)
committerGeorg Brandl <georg@python.org>
Wed, 6 Oct 2010 08:35:38 +0000 (08:35 +0000)
svn+ssh://svn.python.org/python/branches/py3k

........
  r83561 | georg.brandl | 2010-08-02 22:17:50 +0200 (Mo, 02 Aug 2010) | 1 line

  #4280: remove outdated "versionchecker" tool.
........
  r83563 | georg.brandl | 2010-08-02 22:21:21 +0200 (Mo, 02 Aug 2010) | 1 line

  #9037: add example how to raise custom exceptions from C code.
........
  r83565 | georg.brandl | 2010-08-02 22:27:20 +0200 (Mo, 02 Aug 2010) | 1 line

  #9111: document that do_help() looks at docstrings.
........
  r83566 | georg.brandl | 2010-08-02 22:30:57 +0200 (Mo, 02 Aug 2010) | 1 line

  #9019: remove false (in 3k) claim about Headers updates.
........
  r83569 | georg.brandl | 2010-08-02 22:39:35 +0200 (Mo, 02 Aug 2010) | 1 line

  #7797: be explicit about bytes-oriented interface of base64 functions.
........
  r83571 | georg.brandl | 2010-08-02 22:44:34 +0200 (Mo, 02 Aug 2010) | 1 line

  Clarify that abs() is not a namespace.
........
  r83574 | georg.brandl | 2010-08-02 22:47:56 +0200 (Mo, 02 Aug 2010) | 1 line

  #6867: epoll.register() returns None.
........
  r83575 | georg.brandl | 2010-08-02 22:52:10 +0200 (Mo, 02 Aug 2010) | 1 line

  #9238: zipfile does handle archive comments.
........
  r83580 | georg.brandl | 2010-08-02 23:02:36 +0200 (Mo, 02 Aug 2010) | 1 line

  #8119: fix copy-paste error.
........
  r83584 | georg.brandl | 2010-08-02 23:07:14 +0200 (Mo, 02 Aug 2010) | 1 line

  #9457: fix documentation links for 3.2.
........
  r83599 | georg.brandl | 2010-08-02 23:51:18 +0200 (Mo, 02 Aug 2010) | 1 line

  #9061: warn that single quotes are never escaped.
........
  r83612 | georg.brandl | 2010-08-03 00:59:44 +0200 (Di, 03 Aug 2010) | 1 line

  Fix unicode literal.
........
  r83659 | georg.brandl | 2010-08-03 14:06:29 +0200 (Di, 03 Aug 2010) | 1 line

  Terminology fix: exceptions are raised, except in generator.throw().
........
  r83977 | georg.brandl | 2010-08-13 17:10:49 +0200 (Fr, 13 Aug 2010) | 1 line

  Fix copy-paste error.
........
  r84015 | georg.brandl | 2010-08-14 17:44:34 +0200 (Sa, 14 Aug 2010) | 1 line

  Add some maintainers.
........
  r84016 | georg.brandl | 2010-08-14 17:46:15 +0200 (Sa, 14 Aug 2010) | 1 line

  Wording fix.
........
  r84017 | georg.brandl | 2010-08-14 17:46:59 +0200 (Sa, 14 Aug 2010) | 1 line

  Typo fix.
........
  r84018 | georg.brandl | 2010-08-14 17:48:49 +0200 (Sa, 14 Aug 2010) | 1 line

  Typo fix.
........
  r84020 | georg.brandl | 2010-08-14 17:57:20 +0200 (Sa, 14 Aug 2010) | 1 line

  Fix format.
........
  r84141 | georg.brandl | 2010-08-17 16:11:59 +0200 (Di, 17 Aug 2010) | 1 line

  Markup nits.
........

32 files changed:
Doc/c-api/init.rst
Doc/c-api/unicode.rst
Doc/extending/extending.rst
Doc/faq/library.rst
Doc/library/base64.rst
Doc/library/bdb.rst
Doc/library/cgi.rst
Doc/library/cmd.rst
Doc/library/doctest.rst
Doc/library/email.errors.rst
Doc/library/html.parser.rst
Doc/library/linecache.rst
Doc/library/mmap.rst
Doc/library/parser.rst
Doc/library/pyexpat.rst
Doc/library/smtplib.rst
Doc/library/string.rst
Doc/library/sys.rst
Doc/library/urllib.parse.rst
Doc/library/wsgiref.rst
Doc/library/xml.sax.reader.rst
Doc/library/zipfile.rst
Doc/tutorial/classes.rst
Doc/whatsnew/2.4.rst
Modules/selectmodule.c
README
Tools/scripts/win_add2path.py
Tools/versioncheck/README [deleted file]
Tools/versioncheck/_checkversion.py [deleted file]
Tools/versioncheck/checkversions.py [deleted file]
Tools/versioncheck/pyversioncheck.py [deleted file]
configure.in

index c694abd90a33cb65d48fba90ac3d9b1269866070..ae5d028da714446cef3189fc9fa1842bb6173c58 100644 (file)
@@ -959,7 +959,7 @@ Python-level trace functions in previous versions.
 .. cvar:: int PyTrace_C_EXCEPTION
 
    The value for the *what* parameter to :ctype:`Py_tracefunc` functions when a C
-   function has thrown an exception.
+   function has raised an exception.
 
 
 .. cvar:: int PyTrace_C_RETURN
index 4db76712d4cf38f62ef7fd857d9f6957a18f0bf8..50cc3a3fa4cc086aaf08228178bc5dc5543f26ad 100644 (file)
@@ -653,7 +653,7 @@ These are the UTF-7 codec APIs:
    *s*.  Return *NULL* if an exception was raised by the codec.
 
 
-.. cfunction:: PyObject* PyUnicode_DecodeUTF8Stateful(const char *s, Py_ssize_t size, const char *errors, Py_ssize_t *consumed)
+.. cfunction:: PyObject* PyUnicode_DecodeUTF7Stateful(const char *s, Py_ssize_t size, const char *errors, Py_ssize_t *consumed)
 
    If *consumed* is *NULL*, behave like :cfunc:`PyUnicode_DecodeUTF7`.  If
    *consumed* is not *NULL*, trailing incomplete UTF-7 base-64 sections will not
index 497180a692a857d0f48397339570c4ff5b2091f0..af983b3e35b40de71f487b150f9cf47f866d52f4 100644 (file)
@@ -219,9 +219,28 @@ needed to ensure that it will not be discarded, causing :cdata:`SpamError` to
 become a dangling pointer. Should it become a dangling pointer, C code which
 raises the exception could cause a core dump or other unintended side effects.
 
-We discuss the use of PyMODINIT_FUNC as a function return type later in this
+We discuss the use of ``PyMODINIT_FUNC`` as a function return type later in this
 sample.
 
+The :exc:`spam.error` exception can be raised in your extension module using a
+call to :cfunc:`PyErr_SetString` as shown below::
+
+   static PyObject *
+   spam_system(PyObject *self, PyObject *args)
+   {
+       const char *command;
+       int sts;
+
+       if (!PyArg_ParseTuple(args, "s", &command))
+           return NULL;
+       sts = system(command);
+       if (sts < 0) {
+           PyErr_SetString(SpamError, "System command failed");
+           return NULL;
+       }
+       return PyLong_FromLong(sts);
+   }
+
 
 .. _backtoexample:
 
index aa698e4ab4f547bfb964b1111da7ade06924e389..2d35b112ba41ecee4cec2ae08f849af8400a8d19 100644 (file)
@@ -674,8 +674,8 @@ Yes. Here's a simple example that uses urllib.request::
                                 '/cgi-bin/some-cgi-script', data=qs)
    msg, hdrs = req.read(), req.info()
 
-Note that in general for percent-encoded POST operations, query strings must be
-quoted by using :func:`urllib.parse.urlencode`.  For example to send name="Guy Steele,
+Note that in general for percent-encoded POST operations, query strings must be
+quoted using :func:`urllib.parse.urlencode`.  For example to send name="Guy Steele,
 Jr."::
 
    >>> import urllib.parse
index 651f889f5b03bfaba581b7202bd2455d938c97a8..e282ea0ef55e8eb1ed72154a628839b7ec731ba7 100644 (file)
@@ -24,7 +24,7 @@ The modern interface provides:
 
 .. function:: b64encode(s, altchars=None)
 
-   Encode a string use Base64.
+   Encode a byte string use Base64.
 
    *s* is the string to encode.  Optional *altchars* must be a string of at least
    length 2 (additional characters are ignored) which specifies an alternative
@@ -32,54 +32,54 @@ The modern interface provides:
    generate URL or filesystem safe Base64 strings.  The default is ``None``, for
    which the standard Base64 alphabet is used.
 
-   The encoded string is returned.
+   The encoded byte string is returned.
 
 
 .. function:: b64decode(s, altchars=None)
 
-   Decode a Base64 encoded string.
+   Decode a Base64 encoded byte string.
 
    *s* is the string to decode.  Optional *altchars* must be a string of at least
    length 2 (additional characters are ignored) which specifies the alternative
    alphabet used instead of the ``+`` and ``/`` characters.
 
-   The decoded string is returned.  A :exc:`TypeError` is raised if *s* were
+   The decoded byte string is returned.  A :exc:`TypeError` is raised if *s* were
    incorrectly padded or if there are non-alphabet characters present in the
    string.
 
 
 .. function:: standard_b64encode(s)
 
-   Encode string *s* using the standard Base64 alphabet.
+   Encode byte string *s* using the standard Base64 alphabet.
 
 
 .. function:: standard_b64decode(s)
 
-   Decode string *s* using the standard Base64 alphabet.
+   Decode byte string *s* using the standard Base64 alphabet.
 
 
 .. function:: urlsafe_b64encode(s)
 
-   Encode string *s* using a URL-safe alphabet, which substitutes ``-`` instead of
+   Encode byte string *s* using a URL-safe alphabet, which substitutes ``-`` instead of
    ``+`` and ``_`` instead of ``/`` in the standard Base64 alphabet.  The result
    can still contain ``=``.
 
 
 .. function:: urlsafe_b64decode(s)
 
-   Decode string *s* using a URL-safe alphabet, which substitutes ``-`` instead of
+   Decode byte string *s* using a URL-safe alphabet, which substitutes ``-`` instead of
    ``+`` and ``_`` instead of ``/`` in the standard Base64 alphabet.
 
 
 .. function:: b32encode(s)
 
-   Encode a string using Base32.  *s* is the string to encode.  The encoded string
+   Encode a byte string using Base32.  *s* is the string to encode.  The encoded string
    is returned.
 
 
 .. function:: b32decode(s, casefold=False, map01=None)
 
-   Decode a Base32 encoded string.
+   Decode a Base32 encoded byte string.
 
    *s* is the string to decode.  Optional *casefold* is a flag specifying whether a
    lowercase alphabet is acceptable as input.  For security purposes, the default
@@ -92,27 +92,27 @@ The modern interface provides:
    digit 0 is always mapped to the letter O).  For security purposes the default is
    ``None``, so that 0 and 1 are not allowed in the input.
 
-   The decoded string is returned.  A :exc:`TypeError` is raised if *s* were
+   The decoded byte string is returned.  A :exc:`TypeError` is raised if *s* were
    incorrectly padded or if there are non-alphabet characters present in the
    string.
 
 
 .. function:: b16encode(s)
 
-   Encode a string using Base16.
+   Encode a byte string using Base16.
 
-   *s* is the string to encode.  The encoded string is returned.
+   *s* is the string to encode.  The encoded byte string is returned.
 
 
 .. function:: b16decode(s, casefold=False)
 
-   Decode a Base16 encoded string.
+   Decode a Base16 encoded byte string.
 
    *s* is the string to decode.  Optional *casefold* is a flag specifying whether a
    lowercase alphabet is acceptable as input.  For security purposes, the default
    is ``False``.
 
-   The decoded string is returned.  A :exc:`TypeError` is raised if *s* were
+   The decoded byte string is returned.  A :exc:`TypeError` is raised if *s* were
    incorrectly padded or if there are non-alphabet characters present in the
    string.
 
index 3d7e41b246ebf957dea3a13c54b057fccc7620de..d3c698127788a270e4f357f23e6c554206e2594d 100644 (file)
@@ -108,7 +108,7 @@ The :mod:`bdb` module also defines two classes:
       * ``"exception"``: An exception has occurred.
       * ``"c_call"``: A C function is about to be called.
       * ``"c_return"``: A C function has returned.
-      * ``"c_exception"``: A C function has thrown an exception.
+      * ``"c_exception"``: A C function has raised an exception.
 
       For the Python events, specialized functions (see below) are called.  For
       the C events, no action is taken.
index 1b112a6685a697a6b22f5c891dfe0a35aae9632e..734031dd097c15589af339d171a0ed001f1f68fa 100644 (file)
@@ -330,6 +330,10 @@ algorithms implemented in this module in other circumstances.
    :func:`~xml.sax.saxutils.quoteattr` function in the :mod:`xml.sax.saxutils`
    module instead.
 
+   If the value to be quoted might include single- or double-quote characters,
+   or both, consider using the :func:`quoteattr` function in the
+   :mod:`xml.sax.saxutils` module instead.
+
 
 .. _cgi-security:
 
index d27dbae482f9bcd85a31bb8efdf19533cd7660ed..d789270eb93b579ae9e7eb18ec9debc21eb98a5c 100644 (file)
@@ -76,11 +76,13 @@ A :class:`Cmd` instance has the following methods:
    are the beginning and ending indexes of the prefix text, which could be used to
    provide different completion depending upon which position the argument is in.
 
-   All subclasses of :class:`Cmd` inherit a predefined :meth:`do_help`. This
+   All subclasses of :class:`Cmd` inherit a predefined :meth:`do_help`.  This
    method, called with an argument ``'bar'``, invokes the corresponding method
-   :meth:`help_bar`.  With no argument, :meth:`do_help` lists all available help
-   topics (that is, all commands with corresponding :meth:`help_\*` methods), and
-   also lists any undocumented commands.
+   :meth:`help_bar`, and if that is not present, prints the docstring of
+   :meth:`do_bar`, if available.  With no argument, :meth:`do_help` lists all
+   available help topics (that is, all commands with corresponding
+   :meth:`help_\*` methods or commands that have docstrings), and also lists any
+   undocumented commands.
 
 
 .. method:: Cmd.onecmd(str)
index 2cf5fdcf91244fe96eb6241d2e978bdd90f99e1b..baf77aca3d4781ef5f9623a26ce1564e71103136 100644 (file)
@@ -1657,7 +1657,7 @@ There are two exceptions that may be raised by :class:`DebugRunner` instances:
 
 .. exception:: DocTestFailure(test, example, got)
 
-   An exception thrown by :class:`DocTestRunner` to signal that a doctest example's
+   An exception raised by :class:`DocTestRunner` to signal that a doctest example's
    actual output did not match its expected output. The constructor arguments are
    used to initialize the member variables of the same names.
 
@@ -1681,9 +1681,9 @@ There are two exceptions that may be raised by :class:`DebugRunner` instances:
 
 .. exception:: UnexpectedException(test, example, exc_info)
 
-   An exception thrown by :class:`DocTestRunner` to signal that a doctest example
-   raised an unexpected exception.  The constructor arguments are used to
-   initialize the member variables of the same names.
+   An exception raised by :class:`DocTestRunner` to signal that a doctest
+   example raised an unexpected exception.  The constructor arguments are used
+   to initialize the member variables of the same names.
 
 :exc:`UnexpectedException` defines the following member variables:
 
index 2bd3ae4b38db29f7ded6216d838c0d55146a9351..e907c51cd285e3c023e79f097d71396b94189a81 100644 (file)
@@ -17,7 +17,7 @@ The following exception classes are defined in the :mod:`email.errors` module:
 
 .. exception:: MessageParseError()
 
-   This is the base class for exceptions thrown by the :class:`~email.parser.Parser`
+   This is the base class for exceptions raised by the :class:`~email.parser.Parser`
    class.  It is derived from :exc:`MessageError`.
 
 
index c38cf2a9dfb61586683fbf23eaf35d7c5ed1559b..2bc655510b9c37386f08dcbfb33c3ae72c020284 100644 (file)
@@ -145,7 +145,7 @@ An exception is defined as well:
    Method called when an unrecognized SGML declaration is read by the parser.
    The *data* parameter will be the entire contents of the declaration inside
    the ``<!...>`` markup.  It is sometimes useful to be be overridden by a
-   derived class; the base class implementation throws an :exc:`HTMLParseError`.
+   derived class; the base class implementation raises an :exc:`HTMLParseError`.
 
 
 .. method:: HTMLParser.handle_pi(data)
index 146cb27598a3a19a5fdbac7c2879f11ca426e451..688e29730725290c91944fa6af6d8b6390be1f01 100644 (file)
@@ -16,7 +16,7 @@ The :mod:`linecache` module defines the following functions:
 
 .. function:: getline(filename, lineno, module_globals=None)
 
-   Get line *lineno* from file named *filename*. This function will never throw an
+   Get line *lineno* from file named *filename*. This function will never raise an
    exception --- it will return ``''`` on errors (the terminating newline character
    will be included for lines that are found).
 
index bb4a515c4aba862293634f78e0075a5feabdf6c2..5001d4f55ebe92b928be7229236454d28d7fc1e3 100644 (file)
@@ -165,7 +165,7 @@ To map anonymous memory, -1 should be passed as the fileno along with the length
 
       Copy the *count* bytes starting at offset *src* to the destination index
       *dest*.  If the mmap was created with :const:`ACCESS_READ`, then calls to
-      move will throw a :exc:`TypeError` exception.
+      move will raise a :exc:`TypeError` exception.
 
 
    .. method:: read(num)
@@ -191,7 +191,7 @@ To map anonymous memory, -1 should be passed as the fileno along with the length
 
       Resizes the map and the underlying file, if any. If the mmap was created
       with :const:`ACCESS_READ` or :const:`ACCESS_COPY`, resizing the map will
-      throw a :exc:`TypeError` exception.
+      raise a :exc:`TypeError` exception.
 
 
    .. method:: rfind(sub[, start[, end]])
@@ -226,7 +226,7 @@ To map anonymous memory, -1 should be passed as the fileno along with the length
       Write the bytes in *bytes* into memory at the current position of the
       file pointer; the file position is updated to point after the bytes that
       were written. If the mmap was created with :const:`ACCESS_READ`, then
-      writing to it will throw a :exc:`TypeError` exception.
+      writing to it will raise a :exc:`TypeError` exception.
 
 
    .. method:: write_byte(byte)
@@ -234,6 +234,4 @@ To map anonymous memory, -1 should be passed as the fileno along with the length
       Write the the integer *byte* into memory at the current
       position of the file pointer; the file position is advanced by ``1``. If
       the mmap was created with :const:`ACCESS_READ`, then writing to it will
-      throw a :exc:`TypeError` exception.
-
-
+      raise a :exc:`TypeError` exception.
index 5aad93815b6514021bf5cd1bf51866fad3c07224..b79e8d319a7693f5dd2262b04d3927f293cc6d85 100644 (file)
@@ -115,7 +115,7 @@ and ``'exec'`` forms.
    The :func:`expr` function parses the parameter *source* as if it were an input
    to ``compile(source, 'file.py', 'eval')``.  If the parse succeeds, an ST object
    is created to hold the internal parse tree representation, otherwise an
-   appropriate exception is thrown.
+   appropriate exception is raised.
 
 
 .. function:: suite(source)
@@ -123,7 +123,7 @@ and ``'exec'`` forms.
    The :func:`suite` function parses the parameter *source* as if it were an input
    to ``compile(source, 'file.py', 'exec')``.  If the parse succeeds, an ST object
    is created to hold the internal parse tree representation, otherwise an
-   appropriate exception is thrown.
+   appropriate exception is raised.
 
 
 .. function:: sequence2st(sequence)
@@ -133,9 +133,9 @@ and ``'exec'`` forms.
    to the Python grammar and all nodes are valid node types in the host version of
    Python, an ST object is created from the internal representation and returned
    to the called.  If there is a problem creating the internal representation, or
-   if the tree cannot be validated, a :exc:`ParserError` exception is thrown.  An
+   if the tree cannot be validated, a :exc:`ParserError` exception is raised.  An
    ST object created this way should not be assumed to compile correctly; normal
-   exceptions thrown by compilation may still be initiated when the ST object is
+   exceptions raised by compilation may still be initiated when the ST object is
    passed to :func:`compilest`.  This may indicate problems not related to syntax
    (such as a :exc:`MemoryError` exception), but may also be due to constructs such
    as the result of parsing ``del f(0)``, which escapes the Python parser but is
@@ -260,8 +260,8 @@ function for information about the exceptions it can raise.
 .. exception:: ParserError
 
    Exception raised when a failure occurs within the parser module.  This is
-   generally produced for validation failures rather than the built in
-   :exc:`SyntaxError` thrown during normal parsing. The exception argument is
+   generally produced for validation failures rather than the built-in
+   :exc:`SyntaxError` raised during normal parsing. The exception argument is
    either a string describing the reason of the failure or a tuple containing a
    sequence causing the failure from a parse tree passed to :func:`sequence2st`
    and an explanatory string.  Calls to :func:`sequence2st` need to be able to
@@ -269,7 +269,7 @@ function for information about the exceptions it can raise.
    will only need to be aware of the simple string values.
 
 Note that the functions :func:`compilest`, :func:`expr`, and :func:`suite` may
-throw exceptions which are normally thrown by the parsing and compilation
+raise exceptions which are normally thrown by the parsing and compilation
 process.  These include the built in exceptions :exc:`MemoryError`,
 :exc:`OverflowError`, :exc:`SyntaxError`, and :exc:`SystemError`.  In these
 cases, these exceptions carry all the meaning normally associated with them.
index 6fe60ada80d9552a8b02850b770b2e6f862cddc1..30a98fcc4ac65c9439d0c3672abf09297925e396 100644 (file)
@@ -430,7 +430,7 @@ otherwise stated.
    Called if the XML document hasn't been declared as being a standalone document.
    This happens when there is an external subset or a reference to a parameter
    entity, but the XML declaration does not set standalone to ``yes`` in an XML
-   declaration.  If this handler returns ``0``, then the parser will throw an
+   declaration.  If this handler returns ``0``, then the parser will raise an
    :const:`XML_ERROR_NOT_STANDALONE` error.  If this handler is not set, no
    exception is raised by the parser for this condition.
 
@@ -447,7 +447,7 @@ otherwise stated.
    responsible for creating the sub-parser using
    ``ExternalEntityParserCreate(context)``, initializing it with the appropriate
    callbacks, and parsing the entity.  This handler should return an integer; if it
-   returns ``0``, the parser will throw an
+   returns ``0``, the parser will raise an
    :const:`XML_ERROR_EXTERNAL_ENTITY_HANDLING` error, otherwise parsing will
    continue.
 
index fe3e14e7151e5aaa654039c5dedd97baae3aca9f..9303c3edb5a5fe3d61d295e5660115c990a1f121 100644 (file)
@@ -285,9 +285,9 @@ An :class:`SMTP` instance has the following methods:
    and ESMTP options suppressed.
 
    This method will return normally if the mail is accepted for at least one
-   recipient. Otherwise it will throw an exception.  That is, if this method does
-   not throw an exception, then someone should get your mail. If this method does
-   not throw an exception, it returns a dictionary, with one entry for each
+   recipient. Otherwise it will raise an exception.  That is, if this method does
+   not raise an exception, then someone should get your mail. If this method does
+   not raise an exception, it returns a dictionary, with one entry for each
    recipient that was refused.  Each entry contains a tuple of the SMTP error code
    and the accompanying error message sent by the server.
 
index 46907aaa796927b2993531723dd0765e13058c6e..dd04e3293fa0e5785684d4b4e06745cf93d4a407 100644 (file)
@@ -163,7 +163,7 @@ implementation as the built-in :meth:`format` method.
       the format string (integers for positional arguments, and strings for
       named arguments), and a reference to the *args* and *kwargs* that was
       passed to vformat.  The set of unused args can be calculated from these
-      parameters.  :meth:`check_unused_args` is assumed to throw an exception if
+      parameters.  :meth:`check_unused_args` is assumed to raise an exception if
       the check fails.
 
    .. method:: format_field(value, format_spec)
index 5d40d5e763b1f4648d5e6d66c9e230e1cefa1aaa..b1044c8e690fa664ee14469fe36462cbc4b15874 100644 (file)
@@ -762,7 +762,7 @@ always available.
       A C function has returned. *arg* is ``None``.
 
    ``'c_exception'``
-      A C function has thrown an exception.  *arg* is ``None``.
+      A C function has raised an exception.  *arg* is ``None``.
 
    Note that as an exception is propagated down the chain of callers, an
    ``'exception'`` event is generated at each level.
index 37ddea0524567a8c9397bc9e045eaaf09a6d2305..3cf43769a87cce9e5934afa71dfd30972a662ab9 100644 (file)
@@ -48,11 +48,11 @@ The :mod:`urllib.parse` module defines the following functions:
       >>> o.geturl()
       'http://www.cwi.nl:80/%7Eguido/Python.html'
 
-   If the scheme value is not specified, urlparse following the syntax
-   specifications from RFC 1808, expects the netloc value to start with '//',
-   Otherwise, it is not possible to distinguish between net_loc and path
-   component and would classify the indistinguishable component as path as in
-   a relative url.
+   If the scheme value is not specified, urlparse expects the netloc value to
+   start with '//', following the syntax specifications from :rfc:`1808`.
+   Otherwise, it is not possible to distinguish between netloc and path
+   components, and would the indistinguishable component would be classified
+   as the path as in a relative URL.
 
        >>> from urlparse import urlparse
        >>> urlparse('//www.cwi.nl:80/%7Eguido/Python.html')
index 803db26e1688410d571d8d5caf9231c5b57fa7f6..4ac8df7be0c9a08024f7e61553e654cf62b28563 100644 (file)
@@ -187,9 +187,7 @@ manipulation of WSGI response headers using a mapping-like interface.
 .. class:: Headers(headers)
 
    Create a mapping-like object wrapping *headers*, which must be a list of header
-   name/value tuples as described in :pep:`333`.  Any changes made to the new
-   :class:`Headers` object will directly update the *headers* list it was created
-   with.
+   name/value tuples as described in :pep:`333`.
 
    :class:`Headers` objects support typical mapping operations including
    :meth:`__getitem__`, :meth:`get`, :meth:`__setitem__`, :meth:`setdefault`,
index fb913896c05cc14a9dcccc8f602f590a2d67f797..6683da1aef2499b089eded4ecc9eab017029c146 100644 (file)
@@ -154,7 +154,7 @@ The :class:`XMLReader` interface supports the following methods:
    Allow an application to set the locale for errors and warnings.
 
    SAX parsers are not required to provide localization for errors and warnings; if
-   they cannot support the requested locale, however, they must throw a SAX
+   they cannot support the requested locale, however, they must raise a SAX
    exception.  Applications may request a locale change in the middle of a parse.
 
 
index f4148530d8534db13f975b4e15b050e9de393a75..7c4721d81a4888e75471330f14d8083b6558cac3 100644 (file)
@@ -12,10 +12,8 @@ advanced use of this module will require an understanding of the format, as
 defined in `PKZIP Application Note
 <http://www.pkware.com/documents/casestudies/APPNOTE.TXT>`_.
 
-This module does not currently handle multi-disk ZIP files, or ZIP files
-which have appended comments (although it correctly handles comments
-added to individual archive members---for which see the :ref:`zipinfo-objects`
-documentation). It can handle ZIP files that use the ZIP64 extensions
+This module does not currently handle multi-disk ZIP files.
+It can handle ZIP files that use the ZIP64 extensions
 (that is ZIP files that are more than 4 GByte in size).  It supports
 decryption of encrypted files in ZIP archives, but it currently cannot
 create an encrypted file.  Decryption is extremely slow as it is
@@ -64,7 +62,6 @@ The module defines the following items:
 
    Returns ``True`` if *filename* is a valid ZIP file based on its magic number,
    otherwise returns ``False``.  *filename* may be a file or file-like object too.
-   This module does not currently handle ZIP files which have appended comments.
 
    .. versionchanged:: 3.1
       Support for file and file-like objects.
index 4c0c85a0f9dd598dc0c57fcbd03bc36b5f55d330..a7749799eaa1a2ae65df26886ffaefefac5596f2 100644 (file)
@@ -65,7 +65,7 @@ Let's begin with some definitions.
 A *namespace* is a mapping from names to objects.  Most namespaces are currently
 implemented as Python dictionaries, but that's normally not noticeable in any
 way (except for performance), and it may change in the future.  Examples of
-namespaces are: the set of built-in names (functions such as :func:`abs`, and
+namespaces are: the set of built-in names (containing functions such as :func:`abs`, and
 built-in exception names); the global names in a module; and the local names in
 a function invocation.  In a sense the set of attributes of an object also form
 a namespace.  The important thing to know about namespaces is that there is
index 27e412e4118306d6d6a186dbeb7f6e9f85776add..fadde50184ee05334cb9a7d8026cf7572272da0c 100644 (file)
@@ -1066,7 +1066,7 @@ complete list of changes, or look through the CVS logs for all the details.
   deprecated APIs and removes support for Python versions earlier than 2.3.  The
   3.0 version of the package uses a new incremental parser for MIME messages,
   available in the :mod:`email.FeedParser` module.  The new parser doesn't require
-  reading the entire message into memory, and doesn't throw exceptions if a
+  reading the entire message into memory, and doesn't raise exceptions if a
   message is malformed; instead it records any problems in the  :attr:`defect`
   attribute of the message.  (Developed by Anthony Baxter, Barry Warsaw, Thomas
   Wouters, and others.)
index ebfbb9cc495c3e911b69c5732c43c36d8a3cfac1..3da910cca31115d09f7c043981fcd52e1661410c 100644 (file)
@@ -915,10 +915,9 @@ pyepoll_register(pyEpoll_Object *self, PyObject *args, PyObject *kwds)
 }
 
 PyDoc_STRVAR(pyepoll_register_doc,
-"register(fd[, eventmask]) -> bool\n\
+"register(fd[, eventmask]) -> None\n\
 \n\
-Registers a new fd or modifies an already registered fd. register() returns\n\
-True if a new fd was registered or False if the event mask for fd was modified.\n\
+Registers a new fd or modifies an already registered fd.\n\
 fd is the target file descriptor of the operation.\n\
 events is a bit set composed of the various EPOLL constants; the default\n\
 is EPOLL_IN | EPOLL_OUT | EPOLL_PRI.\n\
diff --git a/README b/README
index c1b00cc3d1ed3658549517a0d94bda874e6c247f..e3746273f6f58a84354cbaebd12284128aa4882a 100644 (file)
--- a/README
+++ b/README
@@ -55,7 +55,7 @@ What's New
 We try to have a comprehensive overview of the changes in the "What's New in
 Python 3.1" document, found at
 
-    http://docs.python.org/dev/3.1/whatsnew/3.1.html
+    http://docs.python.org/3.1/whatsnew/3.1.html
 
 For a more detailed change log, read Misc/NEWS (though this file, too,
 is incomplete, and also doesn't list anything merged in from the 2.7
@@ -70,7 +70,7 @@ Documentation
 
 Documentation for Python 3.1 is online, updated twice a day:
 
-    http://docs.python.org/dev/3.1/
+    http://docs.python.org/3.1/
 
 All documentation is also available online at the Python web site
 (http://docs.python.org/, see below).  It is available online for
@@ -91,7 +91,7 @@ used, and backported versions of certain key Python 3.x features.
 A source-to-source translation tool, "2to3", can take care of the mundane task
 of converting large amounts of source code.  It is not a complete solution but
 is complemented by the deprecation warnings in 2.6.  See
-http://docs.python.org/dev/py3k/library/2to3.html for more information.
+http://docs.python.org/py3k/library/2to3.html for more information.
 
 
 Testing
index b024789dfd860b20d467cd27e625be7ab262ff8c..9259b441f763d66ff051c9384d1cdeb44b8e6885 100644 (file)
@@ -15,7 +15,7 @@ import winreg
 HKCU = winreg.HKEY_CURRENT_USER
 ENV = "Environment"
 PATH = "PATH"
-DEFAULT = u"%PATH%"
+DEFAULT = "%PATH%"
 
 def modify():
     pythonpath = os.path.dirname(os.path.normpath(sys.executable))
diff --git a/Tools/versioncheck/README b/Tools/versioncheck/README
deleted file mode 100644 (file)
index 1dd2eca..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-This is versioncheck 1.0, a first stab at automatic checking of versions of
-Python extension packages installed on your system.
-
-The basic idea is that each package contains a _checkversion.py
-somewhere, probably at the root level of the package. In addition, each
-package maintainer makes a file available on the net, through ftp or
-http, which contains the version number of the most recent distribution
-and some readable text explaining the differences with previous
-versions, where to download the package, etc.
-
-The checkversions.py script walks through the installed Python tree (or
-through a tree of choice), and runs each _checkversion.py script. These
-scripts retrieve the current-version file over the net, compares version
-numbers and tells the user about new versions of packages available.
-
-A boilerplate for the _checkversion.py file can be found here. Replace
-package name, version and the URL of the version-check file and put it in
-your distribution. In stead of a single URL you can also specify a list
-of URLs. Each of these will be checked in order until one is available,
-this is handy for distributions that live in multiple places. Put the
-primary distribution site (the most up-to-date site) before others.
-The script is read and executed with exec(), not imported, and the current
-directory is the checkversion directory, so be careful with globals,
-importing, etc.
-
-The version-check file consists of an rfc822-style header followed by
-plaintext. The only header field checked currently is
-'Current-Version:', which should contain te current version and is
-matched against the string contained in the _checkversion.py script.
-The rest of the file is human-readable text and presented to the user if
-there is a version mismatch. It should contain at the very least a URL
-of either the current distribution or a webpage describing it.
-
-Pycheckversion.py is the module that does the actual checking of versions.
-It should be fine where it is, it is imported by checkversion before anything
-else is done, but if imports fail you may want to move it to somewhere
-along sys.path.
-
-       Jack Jansen, CWI, 23-Dec-97.
-       <jack@cwi.nl>
-       
diff --git a/Tools/versioncheck/_checkversion.py b/Tools/versioncheck/_checkversion.py
deleted file mode 100644 (file)
index 7b3bb50..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-"""This file (which is sourced, not imported) checks the version of the
-"versioncheck" package. It is also an example of how to format your own
-_checkversion.py file"""
-
-import pyversioncheck
-
-_PACKAGE="versioncheck"
-_VERSION="1.0"
-_URL="http://www.cwi.nl/~jack/versioncheck/curversion.txt"
-
-try:
-    _myverbose=VERBOSE
-except NameError:
-    _myverbose=1
-
-pyversioncheck.versioncheck(_PACKAGE, _URL, _VERSION, verbose=_myverbose)
diff --git a/Tools/versioncheck/checkversions.py b/Tools/versioncheck/checkversions.py
deleted file mode 100644 (file)
index f110cac..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-"""Checkversions - recursively search a directory (default: sys.prefix)
-for _checkversion.py files, and run each of them. This will tell you of
-new versions available for any packages you have installed."""
-
-import os
-import getopt
-import sys
-import pyversioncheck
-
-CHECKNAME="_checkversion.py"
-
-VERBOSE=1
-
-USAGE="""Usage: checkversions [-v verboselevel] [dir ...]
-Recursively examine a tree (default: sys.prefix) and for each package
-with a _checkversion.py file compare the installed version against the current
-version.
-
-Values for verboselevel:
-0 - Minimal output, one line per package
-1 - Also print descriptions for outdated packages (default)
-2 - Print information on each URL checked
-3 - Check every URL for packages with multiple locations"""
-
-def check1dir(dummy, dir, files):
-    if CHECKNAME in files:
-        fullname = os.path.join(dir, CHECKNAME)
-        try:
-            exec(open(fullname).read())
-        except:
-            print('** Exception in', fullname)
-
-def walk1tree(tree):
-    os.walk(tree, check1dir, None)
-
-def main():
-    global VERBOSE
-    try:
-        options, arguments = getopt.getopt(sys.argv[1:], 'v:')
-    except getopt.error:
-        print(USAGE)
-        sys.exit(1)
-    for o, a in options:
-        if o == '-v':
-            VERBOSE = int(a)
-    if not arguments:
-        arguments = [sys.prefix]
-    for dir in arguments:
-        walk1tree(dir)
-
-if __name__ == '__main__':
-    main()
diff --git a/Tools/versioncheck/pyversioncheck.py b/Tools/versioncheck/pyversioncheck.py
deleted file mode 100644 (file)
index 250d49d..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-"""pyversioncheck - Module to help with checking versions"""
-import urllib.request
-import email
-import sys
-
-# Verbose options
-VERBOSE_SILENT=0        # Single-line reports per package
-VERBOSE_NORMAL=1        # Single-line reports per package, more info if outdated
-VERBOSE_EACHFILE=2      # Report on each URL checked
-VERBOSE_CHECKALL=3      # Check each URL for each package
-
-# Test directory
-## urllib bug: _TESTDIR="ftp://ftp.cwi.nl/pub/jack/python/versiontestdir/"
-_TESTDIR="http://www.cwi.nl/~jack/versiontestdir/"
-
-def versioncheck(package, url, version, verbose=0):
-    ok, newversion, fp = checkonly(package, url, version, verbose)
-    if verbose > VERBOSE_NORMAL:
-        return ok
-    if ok < 0:
-        print('%s: No correctly formatted current version file found'%(package))
-    elif ok == 1:
-        print('%s: up-to-date (version %s)'%(package, version))
-    else:
-        print('%s: version %s installed, version %s found:' % \
-                        (package, version, newversion))
-        if verbose > VERBOSE_SILENT:
-            while 1:
-                line = fp.readline()
-                if not line: break
-                sys.stdout.write('\t'+line)
-    return ok
-
-def checkonly(package, url, version, verbose=0):
-    if verbose >= VERBOSE_EACHFILE:
-        print('%s:'%package)
-    if isinstance(url, str):
-        ok, newversion, fp = _check1version(package, url, version, verbose)
-    else:
-        for u in url:
-            ok, newversion, fp = _check1version(package, u, version, verbose)
-            if ok >= 0 and verbose < VERBOSE_CHECKALL:
-                break
-    return ok, newversion, fp
-
-def _check1version(package, url, version, verbose=0):
-    if verbose >= VERBOSE_EACHFILE:
-        print('  Checking %s'%url)
-    try:
-        fp = urllib.request.urlopen(url)
-    except IOError as arg:
-        if verbose >= VERBOSE_EACHFILE:
-            print('    Cannot open:', arg)
-        return -1, None, None
-    msg = email.message_from_file(fp)
-    newversion = msg.get('current-version')
-    if not newversion:
-        if verbose >= VERBOSE_EACHFILE:
-            print('    No "Current-Version:" header in URL or URL not found')
-        return -1, None, None
-    version = version.lower().strip()
-    newversion = newversion.lower().strip()
-    if version == newversion:
-        if verbose >= VERBOSE_EACHFILE:
-            print('    Version identical (%s)'%newversion)
-        return 1, version, fp
-    else:
-        if verbose >= VERBOSE_EACHFILE:
-            print('    Versions different (installed: %s, new: %s)'% \
-                        (version, newversion))
-        return 0, newversion, fp
-
-
-def _test():
-    print('--- TEST VERBOSE=1')
-    print('--- Testing existing and identical version file')
-    versioncheck('VersionTestPackage', _TESTDIR+'Version10.txt', '1.0', verbose=1)
-    print('--- Testing existing package with new version')
-    versioncheck('VersionTestPackage', _TESTDIR+'Version11.txt', '1.0', verbose=1)
-    print('--- Testing package with non-existing version file')
-    versioncheck('VersionTestPackage', _TESTDIR+'nonexistent.txt', '1.0', verbose=1)
-    print('--- Test package with 2 locations, first non-existing second ok')
-    versfiles = [_TESTDIR+'nonexistent.txt', _TESTDIR+'Version10.txt']
-    versioncheck('VersionTestPackage', versfiles, '1.0', verbose=1)
-    print('--- TEST VERBOSE=2')
-    print('--- Testing existing and identical version file')
-    versioncheck('VersionTestPackage', _TESTDIR+'Version10.txt', '1.0', verbose=2)
-    print('--- Testing existing package with new version')
-    versioncheck('VersionTestPackage', _TESTDIR+'Version11.txt', '1.0', verbose=2)
-    print('--- Testing package with non-existing version file')
-    versioncheck('VersionTestPackage', _TESTDIR+'nonexistent.txt', '1.0', verbose=2)
-    print('--- Test package with 2 locations, first non-existing second ok')
-    versfiles = [_TESTDIR+'nonexistent.txt', _TESTDIR+'Version10.txt']
-    versioncheck('VersionTestPackage', versfiles, '1.0', verbose=2)
-
-if __name__ == '__main__':
-    _test()
index 0cd5514e1707b7a25fa5dc37646a47d0892a9b2d..6587bee5ba1089583e233236f9236ce3f772eae4 100644 (file)
@@ -2463,7 +2463,7 @@ then
 fi
 AC_MSG_RESULT($with_doc_strings)
 
-# Check for Python-specific malloc support
+# Check if eval loop should use timestamp counter profiling
 AC_MSG_CHECKING(for --with-tsc)
 AC_ARG_WITH(tsc,
 [  --with(out)-tsc         enable/disable timestamp counter profile], [