]> granicus.if.org Git - python/commitdiff
Merged revisions 74613,74615,74619-74620,74622 via svnmerge from
authorGeorg Brandl <georg@python.org>
Tue, 1 Sep 2009 08:13:16 +0000 (08:13 +0000)
committerGeorg Brandl <georg@python.org>
Tue, 1 Sep 2009 08:13:16 +0000 (08:13 +0000)
svn+ssh://svn.python.org/python/branches/py3k

................
  r74613 | georg.brandl | 2009-09-01 09:34:27 +0200 (Di, 01 Sep 2009) | 1 line

  #6814: remove traces of xrange().
................
  r74615 | georg.brandl | 2009-09-01 09:42:40 +0200 (Di, 01 Sep 2009) | 9 lines

  Recorded merge of revisions 74614 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r74614 | georg.brandl | 2009-09-01 09:40:54 +0200 (Di, 01 Sep 2009) | 1 line

    #6813: better documentation for numberless string formats.
  ........
................
  r74619 | georg.brandl | 2009-09-01 10:02:03 +0200 (Di, 01 Sep 2009) | 1 line

  #6754: remove old struct member nb_inplace_divide.
................
  r74620 | georg.brandl | 2009-09-01 10:03:26 +0200 (Di, 01 Sep 2009) | 1 line

  #6732: fix return value of module init function in example.
................
  r74622 | georg.brandl | 2009-09-01 10:11:14 +0200 (Di, 01 Sep 2009) | 73 lines

  Merged revisions 74542,74544-74548,74550,74554-74555,74578,74588,74590,74603,74616-74618,74621 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r74542 | georg.brandl | 2009-08-23 23:28:56 +0200 (So, 23 Aug 2009) | 1 line

    Restore alphabetic order.
  ........
    r74544 | georg.brandl | 2009-08-24 19:12:30 +0200 (Mo, 24 Aug 2009) | 1 line

    #6775: fix python.org URLs in README.
  ........
    r74545 | georg.brandl | 2009-08-24 19:14:29 +0200 (Mo, 24 Aug 2009) | 1 line

    #6772: mention utf-8 as utf8 alias.
  ........
    r74546 | georg.brandl | 2009-08-24 19:20:40 +0200 (Mo, 24 Aug 2009) | 1 line

    #6725: spell "namespace" consistently.
  ........
    r74547 | georg.brandl | 2009-08-24 19:22:05 +0200 (Mo, 24 Aug 2009) | 1 line

    #6718: fix example.
  ........
    r74548 | georg.brandl | 2009-08-24 19:24:27 +0200 (Mo, 24 Aug 2009) | 1 line

    #6677: mention "deleting" as an alias for removing files.
  ........
    r74550 | georg.brandl | 2009-08-24 19:48:40 +0200 (Mo, 24 Aug 2009) | 1 line

    #6677: note that rmdir only removes empty directories.
  ........
    r74554 | georg.brandl | 2009-08-27 20:59:02 +0200 (Do, 27 Aug 2009) | 1 line

    Typo fix.
  ........
    r74555 | georg.brandl | 2009-08-27 21:02:43 +0200 (Do, 27 Aug 2009) | 1 line

    #6787: reference fix.
  ........
    r74578 | tarek.ziade | 2009-08-29 15:33:21 +0200 (Sa, 29 Aug 2009) | 1 line

    fixed #6801: symmetric_difference_update also accepts pipe
  ........
    r74588 | georg.brandl | 2009-08-30 10:35:01 +0200 (So, 30 Aug 2009) | 1 line

    #6803: fix old name.
  ........
    r74590 | georg.brandl | 2009-08-30 13:51:53 +0200 (So, 30 Aug 2009) | 1 line

    #6801: fix copy-paste oversight.
  ........
    r74603 | georg.brandl | 2009-08-31 08:38:29 +0200 (Mo, 31 Aug 2009) | 1 line

    other -> others where multiple arguments are accepted.
  ........
    r74616 | georg.brandl | 2009-09-01 09:46:26 +0200 (Di, 01 Sep 2009) | 1 line

    #6808: clarification.
  ........
    r74617 | georg.brandl | 2009-09-01 09:53:37 +0200 (Di, 01 Sep 2009) | 1 line

    #6765: hint that log(x, base) is not very sophisticated.
  ........
    r74618 | georg.brandl | 2009-09-01 10:00:47 +0200 (Di, 01 Sep 2009) | 1 line

    #6810: add a link to the section about frame objects instead of just a description where to find it.
  ........
    r74621 | georg.brandl | 2009-09-01 10:06:03 +0200 (Di, 01 Sep 2009) | 1 line

    #6638: fix wrong parameter name and markup a class.
  ........
................

20 files changed:
Doc/c-api/typeobj.rst
Doc/includes/mp_pool.py
Doc/includes/shoddy.c
Doc/library/_thread.rst
Doc/library/codecs.rst
Doc/library/ctypes.rst
Doc/library/math.rst
Doc/library/optparse.rst
Doc/library/os.rst
Doc/library/signal.rst
Doc/library/stdtypes.rst
Doc/library/string.rst
Doc/reference/datamodel.rst
Doc/tutorial/classes.rst
Doc/tutorial/inputoutput.rst
Misc/ACKS
Misc/NEWS
Objects/listsort.txt
Objects/rangeobject.c
Tools/pybench/README

index eba8d6951c277f83ac69fb50da0423154f89d403..2e2f9c4f0ebba0926eda4431d9eef0740e239932 100644 (file)
@@ -1052,7 +1052,6 @@ Number Object Structures
             binaryfunc nb_inplace_add;
             binaryfunc nb_inplace_subtract;
             binaryfunc nb_inplace_multiply;
-            binaryfunc nb_inplace_divide;
             binaryfunc nb_inplace_remainder;
             ternaryfunc nb_inplace_power;
             binaryfunc nb_inplace_lshift;
index 46eac5a8a90cbad792f86b74132a4584d70984ef..e360703bd1e78178015d2d97bc350ac849277903 100644 (file)
@@ -98,17 +98,17 @@ def test():
 
     t = time.time()
     A = list(map(pow3, range(N)))
-    print('\tmap(pow3, xrange(%d)):\n\t\t%s seconds' % \
+    print('\tmap(pow3, range(%d)):\n\t\t%s seconds' % \
           (N, time.time() - t))
 
     t = time.time()
     B = pool.map(pow3, range(N))
-    print('\tpool.map(pow3, xrange(%d)):\n\t\t%s seconds' % \
+    print('\tpool.map(pow3, range(%d)):\n\t\t%s seconds' % \
           (N, time.time() - t))
 
     t = time.time()
     C = list(pool.imap(pow3, range(N), chunksize=N//8))
-    print('\tlist(pool.imap(pow3, xrange(%d), chunksize=%d)):\n\t\t%s' \
+    print('\tlist(pool.imap(pow3, range(%d), chunksize=%d)):\n\t\t%s' \
           ' seconds' % (N, N//8, time.time() - t))
 
     assert A == B == C, (len(A), len(B), len(C))
index bb7f05b107cdd1b37a0ec5d9776042e5417271f5..07a272124ceabaa877a7309058c8c69287fa1b6d 100644 (file)
@@ -95,4 +95,5 @@ PyInit_shoddy(void)
 
     Py_INCREF(&ShoddyType);
     PyModule_AddObject(m, "Shoddy", (PyObject *) &ShoddyType);
+    return m;
 }
index 95214d6515d4db367668d45848f95d0652ab931c..cb624078ca66dd05fb2fe4200d59a7bc5c5fb0d8 100644 (file)
@@ -147,7 +147,7 @@ In addition to these methods, lock objects can also be used via the
   module is available, interrupts always go to the main thread.)
 
 * Calling :func:`sys.exit` or raising the :exc:`SystemExit` exception is
-  equivalent to calling :func:`exit`.
+  equivalent to calling :func:`_thread.exit`.
 
 * Not all built-in functions that may block waiting for I/O allow other threads
   to run.  (The most popular ones (:func:`time.sleep`, :meth:`file.read`,
index b8a8ccc68eddb3420fa2c478c293f4eb92faa078..6e020633c495e26a9850f275707b2f79589fcefe 100644 (file)
@@ -891,7 +891,8 @@ or with dictionaries as mapping tables. The following table lists the codecs by
 name, together with a few common aliases, and the languages for which the
 encoding is likely used. Neither the list of aliases nor the list of languages
 is meant to be exhaustive. Notice that spelling alternatives that only differ in
-case or use a hyphen instead of an underscore are also valid aliases.
+case or use a hyphen instead of an underscore are also valid aliases; therefore,
+e.g. ``'utf-8'`` is a valid alias for the ``'utf_8'`` codec.
 
 Many of the character sets support the same languages. They vary in individual
 characters (e.g. whether the EURO SIGN is supported or not), and in the
index ded0df8c1bef90cf436097b63db9a15cf17f0585..ad5adee8aa1976f5fd7bebbbd0675efbce82ea97 100644 (file)
@@ -1592,7 +1592,7 @@ type and the argument types of the function.
    The returned function prototype creates functions that use the standard C
    calling convention.  The function will release the GIL during the call.  If
    *use_errno* is set to True, the ctypes private copy of the system
-   :data:`errno` variable is exchanged with the real :data:`errno` value bafore
+   :data:`errno` variable is exchanged with the real :data:`errno` value before
    and after the call; *use_last_error* does the same for the Windows error
    code.
 
index 488230ad122a1d4c2aa44df4c886faacf6e0cf77..566603d4c3f27aad2bec05d4d24c05255c7848b1 100644 (file)
@@ -150,8 +150,10 @@ Power and logarithmic functions
 
 .. function:: log(x[, base])
 
-   Return the logarithm of *x* to the given *base*. If the *base* is not specified,
-   return the natural logarithm of *x* (that is, the logarithm to base *e*).
+   With one argument, return the natural logarithm of *x* (to base *e*).
+
+   With two arguments, return the logarithm of *x* to the given *base*,
+   calculated as ``log(x)/log(base)``.
 
 
 .. function:: log1p(x)
@@ -162,7 +164,8 @@ Power and logarithmic functions
 
 .. function:: log10(x)
 
-   Return the base-10 logarithm of *x*.
+   Return the base-10 logarithm of *x*.  This is usually more accurate
+   than ``log(x, 10)``.
 
 
 .. function:: pow(x, y)
index 6320fa71c5ed8938aa44e8bc71489449805dc6d4..a62ad240bf761234c7d72d9496643140735bcec1 100644 (file)
@@ -1166,19 +1166,20 @@ where the input parameters are
    the list of arguments to process (default: ``sys.argv[1:]``)
 
 ``values``
-   object to store option arguments in (default: a new instance of optparse.Values)
+   object to store option arguments in (default: a new instance of
+   :class:`optparse.Values`)
 
 and the return values are
 
 ``options``
-   the same object that was passed in as ``options``, or the optparse.Values
+   the same object that was passed in as ``values``, or the optparse.Values
    instance created by :mod:`optparse`
 
 ``args``
    the leftover positional arguments after all options have been processed
 
 The most common usage is to supply neither keyword argument.  If you supply
-``options``, it will be modified with repeated ``setattr()`` calls (roughly one
+``values``, it will be modified with repeated ``setattr()`` calls (roughly one
 for every option argument stored to an option destination) and returned by
 :meth:`parse_args`.
 
index 206a15ca341abca49c476c63238c52ad512f9466..9bed1ce60c0285d4b09d82426e8cb366ebf103ef 100644 (file)
@@ -396,7 +396,7 @@ by file descriptors.
    Close all file descriptors from *fd_low* (inclusive) to *fd_high* (exclusive),
    ignoring errors. Availability: Unix, Windows. Equivalent to::
 
-      for fd in xrange(fd_low, fd_high):
+      for fd in range(fd_low, fd_high):
           try:
               os.close(fd)
           except OSError:
@@ -947,12 +947,12 @@ Files and Directories
 
 .. function:: remove(path)
 
-   Remove the file *path*.  If *path* is a directory, :exc:`OSError` is raised; see
-   :func:`rmdir` below to remove a directory.  This is identical to the
-   :func:`unlink` function documented below.  On Windows, attempting to remove a
-   file that is in use causes an exception to be raised; on Unix, the directory
-   entry is removed but the storage allocated to the file is not made available
-   until the original file is no longer in use. Availability: Unix,
+   Remove (delete) the file *path*.  If *path* is a directory, :exc:`OSError` is
+   raised; see :func:`rmdir` below to remove a directory.  This is identical to
+   the :func:`unlink` function documented below.  On Windows, attempting to
+   remove a file that is in use causes an exception to be raised; on Unix, the
+   directory entry is removed but the storage allocated to the file is not made
+   available until the original file is no longer in use. Availability: Unix,
    Windows.
 
 
@@ -997,7 +997,10 @@ Files and Directories
 
 .. function:: rmdir(path)
 
-   Remove the directory *path*. Availability: Unix, Windows.
+   Remove (delete) the directory *path*.  Only works when the directory is
+   empty, otherwise, :exc:`OSError` is raised.  In order to remove whole
+   directory trees, :func:`shutil.rmtree` can be used.  Availability: Unix,
+   Windows.
 
 
 .. function:: stat(path)
@@ -1099,9 +1102,9 @@ Files and Directories
 
 .. function:: unlink(path)
 
-   Remove the file *path*.  This is the same function as :func:`remove`; the
-   :func:`unlink` name is its traditional Unix name. Availability: Unix,
-   Windows.
+   Remove (delete) the file *path*.  This is the same function as
+   :func:`remove`; the :func:`unlink` name is its traditional Unix
+   name. Availability: Unix, Windows.
 
 
 .. function:: utime(path, times)
index 2db17c5caa4fc6ad959112a9e4678fc1ebb474c1..7319ac943ed8cd4c2ceb5f221afd5dc9db5f4b5b 100644 (file)
@@ -205,9 +205,9 @@ The :mod:`signal` module defines the following functions:
    exception to be raised.
 
    The *handler* is called with two arguments: the signal number and the current
-   stack frame (``None`` or a frame object; for a description of frame objects, see
-   the reference manual section on the standard type hierarchy or see the attribute
-   descriptions in the :mod:`inspect` module).
+   stack frame (``None`` or a frame object; for a description of frame objects,
+   see the :ref:`description in the type hierarchy <frame-objects>` or see the
+   attribute descriptions in the :mod:`inspect` module).
 
 
 .. _signal-example:
index 14ad15ed53d8339801a9d781252a6673b1bc93ae..f739f46b03a6ac54b515d4d5655f466c83b5354e 100644 (file)
@@ -1724,12 +1724,12 @@ The constructors for both classes work the same:
    .. method:: update(other, ...)
                set |= other | ...
 
-      Update the set, adding elements from *other*.
+      Update the set, adding elements from all others.
 
    .. method:: intersection_update(other, ...)
                set &= other & ...
 
-      Update the set, keeping only elements found in it and *other*.
+      Update the set, keeping only elements found in it and all others.
 
    .. method:: difference_update(other, ...)
                set -= other | ...
@@ -2478,9 +2478,9 @@ decimal arithmetic context. The specific types are not treated specially beyond
 their implementation of the context management protocol. See the
 :mod:`contextlib` module for some examples.
 
-Python's :term:`generator`\s and the ``contextlib.contextfactory`` :term:`decorator`
+Python's :term:`generator`\s and the ``contextlib.contextmanager`` :term:`decorator`
 provide a convenient way to implement these protocols.  If a generator function is
-decorated with the ``contextlib.contextfactory`` decorator, it will return a
+decorated with the ``contextlib.contextmanager`` decorator, it will return a
 context manager implementing the necessary :meth:`__enter__` and
 :meth:`__exit__` methods, rather than the iterator produced by an undecorated
 generator function.
index 95d27f1c9e715eb46c373b7e140949c25487f6db..6cb6cb6d9c3f52cb6ce9c5a3b848a5bdb3a1bc40 100644 (file)
@@ -194,7 +194,7 @@ literal text, it can be escaped by doubling: ``{{`` and ``}}``.
 The grammar for a replacement field is as follows:
 
    .. productionlist:: sf
-      replacement_field: "{" `field_name` ["!" `conversion`] [":" `format_spec`] "}"
+      replacement_field: "{" [`field_name`] ["!" `conversion`] [":" `format_spec`] "}"
       field_name: arg_name ("." `attribute_name` | "[" `element_index` "]")*
       arg_name: (`identifier` | `integer`)?
       attribute_name: `identifier`
@@ -202,7 +202,7 @@ The grammar for a replacement field is as follows:
       conversion: "r" | "s" | "a"
       format_spec: <described in the next section>
 
-In less formal terms, the replacement field starts with a *field_name* that specifies
+In less formal terms, the replacement field can start with a *field_name* that specifies
 the object whose value is to be formatted and inserted
 into the output instead of the replacement field.
 The *field_name* is optionally followed by a  *conversion* field, which is
@@ -223,7 +223,7 @@ Some simple format string examples::
 
    "First, thou shalt count to {0}" # References first positional argument
    "Bring me a {}"                  # Implicitly references the first positional argument
-   "From {} to {}"                  # Same as "From {0] to {1}"
+   "From {} to {}"                  # Same as "From {0} to {1}"
    "My quest is {name}"             # References keyword argument 'name'
    "Weight in tons {0.weight}"      # 'weight' attribute of first positional arg
    "Units destroyed: {players[0]}"  # First element of keyword argument 'players'.
@@ -243,6 +243,7 @@ Some examples::
 
    "Harold's a clever {0!s}"        # Calls str() on the argument first
    "Bring out the holy {name!r}"    # Calls repr() on the argument first
+   "More {!a}"                      # Calls ascii() on the argument first
 
 The *format_spec* field contains a specification of how the value should be
 presented, including such details as field width, alignment, padding, decimal
index 14e0b20329befed43294fae1f8043b3fcbaf0c86..ef2f38212ae85d74381bea8d2a7d0774374bab11 100644 (file)
@@ -864,6 +864,8 @@ Internal types
       If a code object represents a function, the first item in :attr:`co_consts` is
       the documentation string of the function, or ``None`` if undefined.
 
+   .. _frame-objects:
+
    Frame objects
       .. index:: object: frame
 
index 7ef41532a685f95023c75b78d546b6fa65639857..4e166d103137b0ab50a45188278d9bb00339402b 100644 (file)
@@ -51,8 +51,8 @@ need for two different argument passing mechanisms as in Pascal.
 
 .. _tut-scopes:
 
-Python Scopes and Name Spaces
-=============================
+Python Scopes and Namespaces
+============================
 
 Before introducing classes, I first have to tell you something about Python's
 scope rules.  Class definitions play some neat tricks with namespaces, and you
@@ -87,7 +87,7 @@ attributes is possible.  Module attributes are writable: you can write
 :keyword:`del` statement.  For example, ``del modname.the_answer`` will remove
 the attribute :attr:`the_answer` from the object named by ``modname``.
 
-Name spaces are created at different moments and have different lifetimes.  The
+Namespaces are created at different moments and have different lifetimes.  The
 namespace containing the built-in names is created when the Python interpreter
 starts up, and is never deleted.  The global namespace for a module is created
 when the module definition is read in; normally, module namespaces also last
@@ -381,9 +381,9 @@ data attribute, its class is searched.  If the name denotes a valid class
 attribute that is a function object, a method object is created by packing
 (pointers to) the instance object and the function object just found together in
 an abstract object: this is the method object.  When the method object is called
-with an argument list, it is unpacked again, a new argument list is constructed
-from the instance object and the original argument list, and the function object
-is called with this new argument list.
+with an argument list, a new argument list is constructed from the instance
+object and the argument list, and the function object is called with this new
+argument list.
 
 
 .. _tut-remarks:
index 549a92286d54d1f76d82144251425fbbe1670222..dbb56f61623ed7a65a646f435b7ca0bb2313bff9 100644 (file)
@@ -126,12 +126,12 @@ with zeros.  It understands about plus and minus signs::
 
 Basic usage of the :meth:`str.format` method looks like this::
 
-   >>> print('We are the {0} who say "{1}!"'.format('knights', 'Ni'))
+   >>> print('We are the {} who say "{}!"'.format('knights', 'Ni'))
    We are the knights who say "Ni!"
 
 The brackets and characters within them (called format fields) are replaced with
-the objects passed into the :meth:`~str.format` method.  The number in the
-brackets refers to the position of the object passed into the
+the objects passed into the :meth:`~str.format` method.  A number in the
+brackets can be used to refer to the position of the object passed into the
 :meth:`~str.format` method. ::
 
    >>> print('{0} and {1}'.format('spam', 'eggs'))
@@ -152,6 +152,15 @@ Positional and keyword arguments can be arbitrarily combined::
                                                           other='Georg'))
    The story of Bill, Manfred, and Georg.
 
+``'!a'`` (apply :func:`ascii`), ``'!s'`` (apply :func:`str`) and ``'!r'``
+(apply :func:`repr`) can be used to convert the value before it is formatted::
+
+   >>> import math
+   >>> print('The value of PI is approximately {}.'.format(math.pi))
+   The value of PI is approximately 3.14159265359.
+   >>> print('The value of PI is approximately {!r}.'.format(math.pi))
+   The value of PI is approximately 3.141592653589793.
+
 An optional ``':'`` and format specifier can follow the field name. This allows
 greater control over how the value is formatted.  The following example
 truncates Pi to three places after the decimal.
index 89124f4a02bbeb12e7291d89dee5ab99838f3da3..4f5a3e8e50d514b6a36b064d56a3d64695c77116 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -789,6 +789,7 @@ Mats Wichmann
 Truida Wiedijk
 Felix Wiemann
 Gerry Wiener
+Frank Wierzbicki
 Bryce "Zooko" Wilcox-O'Hearn
 John Williams
 Sue Williams
index 02ce31e1f05f188e6c130e2ab1299c797efbc96f..000f2c7c77bab19c2a6039f3a1de61f6feed3c80 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1462,6 +1462,9 @@ Build
 - Issue #4204: Fixed module build errors on FreeBSD 4.
 
 
+- Issue #6801 : symmetric_difference_update also accepts |.
+  Thanks to Carl Chenet. 
+
 C-API
 -----
 
index 31a5445c0e3d3b107890d7f12da8f913222962f7..47fec1d0a1cff689fa2044b87ac4edb8237e59ef 100644 (file)
@@ -606,7 +606,7 @@ from time import clock as now
 
 def fill(n):
     from random import random
-    return [random() for i in xrange(n)]
+    return [random() for i in range(n)]
 
 def mycmp(x, y):
     global ncmp
index 6d3e8b0c930a217403980ea9021fc449527b4f1b..88ca69834857da77d3c22ddc7a4fcb9fd5b87f80 100644 (file)
@@ -431,7 +431,7 @@ PyTypeObject PyRangeIter_Type = {
        rangeiter_new,                          /* tp_new */
 };
 
-/* Return number of items in range/xrange (lo, hi, step).  step > 0
+/* Return number of items in range (lo, hi, step).  step > 0
  * required.  Return a value < 0 if & only if the true value is too
  * large to fit in a signed long.
  */
index b015124719195e0f8e4a5fb49456fc0cfc65b46e..e33d0647006002b695cf05306d8528ae2b21a263 100644 (file)
@@ -260,10 +260,7 @@ class IntegerCounting(Test):
 
         # Run test rounds
        #
-        # NOTE: Use xrange() for all test loops unless you want to face
-       # a 20MB process !
-       #
-        for i in xrange(self.rounds):
+        for i in range(self.rounds):
 
             # Repeat the operations per round to raise the run-time
             # per operation significantly above the noise level of the
@@ -305,7 +302,7 @@ class IntegerCounting(Test):
         a = 1
 
         # Run test rounds (without actually doing any operation)
-        for i in xrange(self.rounds):
+        for i in range(self.rounds):
 
            # Skip the actual execution of the operations, since we
            # only want to measure the test's administration overhead.