Merged revisions 77937 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k

................
  r77937 | benjamin.peterson | 2010-02-02 20:35:45 -0600 (Tue, 02 Feb 2010) | 75 lines

  Merged revisions 77484,77487,77561,77570,77593,77603,77608,77667,77702-77703,77739,77858,77887,77889 via svnmerge from
  svn+ssh://pythondev@svn.python.org/python/trunk

  ........
    r77484 | skip.montanaro | 2010-01-13 19:12:34 -0600 (Wed, 13 Jan 2010) | 4 lines

    Update PyEval_EvalFrame to PyEval_EvalFrameEx.  This looks to have been done
    partially before.  Also add a comment describing how this might have to work
    with different versions of the interpreter.
  ........
    r77487 | ezio.melotti | 2010-01-14 05:34:10 -0600 (Thu, 14 Jan 2010) | 1 line

    Fixed typo
  ........
    r77561 | georg.brandl | 2010-01-17 02:42:30 -0600 (Sun, 17 Jan 2010) | 1 line

    #7699: improve datetime docs: straightforward linking to strftime/strptime section, mark classmethods as such.
  ........
    r77570 | georg.brandl | 2010-01-17 06:14:42 -0600 (Sun, 17 Jan 2010) | 1 line

    Add note about usage of STRINGLIB_EMPTY.
  ........
    r77593 | georg.brandl | 2010-01-17 17:33:53 -0600 (Sun, 17 Jan 2010) | 1 line

    Fix internal reference.
  ........
    r77603 | benjamin.peterson | 2010-01-18 17:07:56 -0600 (Mon, 18 Jan 2010) | 8 lines

    data descriptors do not override the class dictionary if __get__ is not defined

    Adjust documentation and add a test to verify this behavior.

    See http://mail.python.org/pipermail/python-dev/2010-January/095637.html for
    discussion.
  ........
    r77608 | gregory.p.smith | 2010-01-19 02:19:03 -0600 (Tue, 19 Jan 2010) | 6 lines

    Do not compile stubs for the sha2 series hashes in the openssl hashlib
    module when the openssl version is too old to support them.  That
    leads both compiled code bloat and to unittests attempting to test
    implementations that don't exist for comparison purposes on such
    platforms.
  ........
    r77667 | mark.dickinson | 2010-01-21 12:32:27 -0600 (Thu, 21 Jan 2010) | 1 line

    Add two more test_strtod test values.
  ........
    r77702 | georg.brandl | 2010-01-23 02:43:31 -0600 (Sat, 23 Jan 2010) | 1 line

    #7762: fix refcount annotation of PyUnicode_Tailmatch().
  ........
    r77703 | georg.brandl | 2010-01-23 02:47:54 -0600 (Sat, 23 Jan 2010) | 1 line

    #7725: fix referencing issue.
  ........
    r77739 | benjamin.peterson | 2010-01-24 21:52:52 -0600 (Sun, 24 Jan 2010) | 1 line

    mention from_float() in error message
  ........
    r77858 | georg.brandl | 2010-01-30 11:57:48 -0600 (Sat, 30 Jan 2010) | 1 line

    #7802: fix invalid example (heh).
  ........
    r77887 | georg.brandl | 2010-01-31 12:51:49 -0600 (Sun, 31 Jan 2010) | 5 lines

    Fix-up ftplib documentation:
    move exception descriptions to toplevel, not inside a class
    remove attribution in "versionadded"
    spell and grammar check docstring of FTP_TLS
  ........
    r77889 | michael.foord | 2010-01-31 13:59:26 -0600 (Sun, 31 Jan 2010) | 1 line

    Minor modification to unittest documentation.
  ........
................
diff --git a/Doc/library/datetime.rst b/Doc/library/datetime.rst
index 68ae586..3789beb 100644
--- a/Doc/library/datetime.rst
+++ b/Doc/library/datetime.rst
@@ -36,7 +36,6 @@
 
 The :mod:`datetime` module exports the following constants:
 
-
 .. data:: MINYEAR
 
    The smallest year number allowed in a :class:`date` or :class:`datetime` object.
@@ -61,7 +60,6 @@
 Available Types
 ---------------
 
-
 .. class:: date
    :noindex:
 
@@ -131,7 +129,6 @@
 A :class:`timedelta` object represents a duration, the difference between two
 dates or times.
 
-
 .. class:: timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
 
    All arguments are optional and default to ``0``.  Arguments may be integers
@@ -168,8 +165,8 @@
       >>> (d.days, d.seconds, d.microseconds)
       (-1, 86399, 999999)
 
-Class attributes are:
 
+Class attributes are:
 
 .. attribute:: timedelta.min
 
@@ -314,16 +311,16 @@
 
    If an argument outside those ranges is given, :exc:`ValueError` is raised.
 
+
 Other constructors, all class methods:
 
-
-.. method:: date.today()
+.. classmethod:: date.today()
 
    Return the current local date.  This is equivalent to
    ``date.fromtimestamp(time.time())``.
 
 
-.. method:: date.fromtimestamp(timestamp)
+.. classmethod:: date.fromtimestamp(timestamp)
 
    Return the local date corresponding to the POSIX timestamp, such as is returned
    by :func:`time.time`.  This may raise :exc:`ValueError`, if the timestamp is out
@@ -333,15 +330,15 @@
    timestamp, leap seconds are ignored by :meth:`fromtimestamp`.
 
 
-.. method:: date.fromordinal(ordinal)
+.. classmethod:: date.fromordinal(ordinal)
 
    Return the date corresponding to the proleptic Gregorian ordinal, where January
    1 of year 1 has ordinal 1.  :exc:`ValueError` is raised unless ``1 <= ordinal <=
    date.max.toordinal()``. For any date *d*, ``date.fromordinal(d.toordinal()) ==
    d``.
 
-Class attributes:
 
+Class attributes:
 
 .. attribute:: date.min
 
@@ -358,8 +355,8 @@
    The smallest possible difference between non-equal date objects,
    ``timedelta(days=1)``.
 
-Instance attributes (read-only):
 
+Instance attributes (read-only):
 
 .. attribute:: date.year
 
@@ -375,6 +372,7 @@
 
    Between 1 and the number of days in the given month of the given year.
 
+
 Supported operations:
 
 +-------------------------------+----------------------------------------------+
@@ -427,7 +425,6 @@
 
 Instance methods:
 
-
 .. method:: date.replace(year, month, day)
 
    Return a date with the same value, except for those members given new values by
@@ -507,7 +504,8 @@
 
    Return a string representing the date, controlled by an explicit format string.
    Format codes referring to hours, minutes or seconds will see 0 values. See
-   section :ref:`strftime-behavior`.
+   section :ref:`strftime-strptime-behavior`.
+
 
 Example of counting days to an event::
 
@@ -574,7 +572,6 @@
 
 Constructor:
 
-
 .. class:: datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
 
    The year, month and day arguments are required.  *tzinfo* may be ``None``, or an
@@ -593,15 +590,14 @@
 
 Other constructors, all class methods:
 
-
-.. method:: datetime.today()
+.. classmethod:: datetime.today()
 
    Return the current local datetime, with :attr:`tzinfo` ``None``. This is
    equivalent to ``datetime.fromtimestamp(time.time())``. See also :meth:`now`,
    :meth:`fromtimestamp`.
 
 
-.. method:: datetime.now(tz=None)
+.. classmethod:: datetime.now(tz=None)
 
    Return the current local date and time.  If optional argument *tz* is ``None``
    or not specified, this is like :meth:`today`, but, if possible, supplies more
@@ -615,14 +611,14 @@
    See also :meth:`today`, :meth:`utcnow`.
 
 
-.. method:: datetime.utcnow()
+.. classmethod:: datetime.utcnow()
 
    Return the current UTC date and time, with :attr:`tzinfo` ``None``. This is like
    :meth:`now`, but returns the current UTC date and time, as a naive
    :class:`datetime` object. See also :meth:`now`.
 
 
-.. method:: datetime.fromtimestamp(timestamp, tz=None)
+.. classmethod:: datetime.fromtimestamp(timestamp, tz=None)
 
    Return the local date and time corresponding to the POSIX timestamp, such as is
    returned by :func:`time.time`. If optional argument *tz* is ``None`` or not
@@ -643,7 +639,7 @@
    identical :class:`datetime` objects. See also :meth:`utcfromtimestamp`.
 
 
-.. method:: datetime.utcfromtimestamp(timestamp)
+.. classmethod:: datetime.utcfromtimestamp(timestamp)
 
    Return the UTC :class:`datetime` corresponding to the POSIX timestamp, with
    :attr:`tzinfo` ``None``. This may raise :exc:`ValueError`, if the timestamp is
@@ -652,7 +648,7 @@
    :meth:`fromtimestamp`.
 
 
-.. method:: datetime.fromordinal(ordinal)
+.. classmethod:: datetime.fromordinal(ordinal)
 
    Return the :class:`datetime` corresponding to the proleptic Gregorian ordinal,
    where January 1 of year 1 has ordinal 1. :exc:`ValueError` is raised unless ``1
@@ -660,7 +656,7 @@
    microsecond of the result are all 0, and :attr:`tzinfo` is ``None``.
 
 
-.. method:: datetime.combine(date, time)
+.. classmethod:: datetime.combine(date, time)
 
    Return a new :class:`datetime` object whose date members are equal to the given
    :class:`date` object's, and whose time and :attr:`tzinfo` members are equal to
@@ -669,18 +665,18 @@
    object, its time and :attr:`tzinfo` members are ignored.
 
 
-.. method:: datetime.strptime(date_string, format)
+.. classmethod:: datetime.strptime(date_string, format)
 
    Return a :class:`datetime` corresponding to *date_string*, parsed according to
    *format*.  This is equivalent to ``datetime(*(time.strptime(date_string,
    format)[0:6]))``. :exc:`ValueError` is raised if the date_string and format
    can't be parsed by :func:`time.strptime` or if it returns a value which isn't a
-   time tuple.
+   time tuple. See section :ref:`strftime-strptime-behavior`.
+
 
 
 Class attributes:
 
-
 .. attribute:: datetime.min
 
    The earliest representable :class:`datetime`, ``datetime(MINYEAR, 1, 1,
@@ -698,8 +694,8 @@
    The smallest possible difference between non-equal :class:`datetime` objects,
    ``timedelta(microseconds=1)``.
 
-Instance attributes (read-only):
 
+Instance attributes (read-only):
 
 .. attribute:: datetime.year
 
@@ -741,6 +737,7 @@
    The object passed as the *tzinfo* argument to the :class:`datetime` constructor,
    or ``None`` if none was passed.
 
+
 Supported operations:
 
 +---------------------------------------+-------------------------------+
@@ -814,7 +811,6 @@
 
 Instance methods:
 
-
 .. method:: datetime.date()
 
    Return :class:`date` object with same year, month and day.
@@ -992,7 +988,8 @@
 .. method:: datetime.strftime(format)
 
    Return a string representing the date and time, controlled by an explicit format
-   string.  See section :ref:`strftime-behavior`.
+   string.  See section :ref:`strftime-strptime-behavior`.
+
 
 Examples of working with datetime objects:
 
@@ -1105,7 +1102,6 @@
 A time object represents a (local) time of day, independent of any particular
 day, and subject to adjustment via a :class:`tzinfo` object.
 
-
 .. class:: time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None)
 
    All arguments are optional.  *tzinfo* may be ``None``, or an instance of a
@@ -1139,8 +1135,8 @@
    ``timedelta(microseconds=1)``, although note that arithmetic on :class:`time`
    objects is not supported.
 
-Instance attributes (read-only):
 
+Instance attributes (read-only):
 
 .. attribute:: time.hour
 
@@ -1167,6 +1163,7 @@
    The object passed as the tzinfo argument to the :class:`time` constructor, or
    ``None`` if none was passed.
 
+
 Supported operations:
 
 * comparison of :class:`time` to :class:`time`, where *a* is considered less
@@ -1189,8 +1186,8 @@
   only if, after converting it to minutes and subtracting :meth:`utcoffset` (or
   ``0`` if that's ``None``), the result is non-zero.
 
-Instance methods:
 
+Instance methods:
 
 .. method:: time.replace([hour[, minute[, second[, microsecond[, tzinfo]]]]])
 
@@ -1216,7 +1213,7 @@
 .. method:: time.strftime(format)
 
    Return a string representing the time, controlled by an explicit format string.
-   See section :ref:`strftime-behavior`.
+   See section :ref:`strftime-strptime-behavior`.
 
 
 .. method:: time.utcoffset()
@@ -1241,6 +1238,7 @@
    ``self.tzinfo.tzname(None)``, or raises an exception if the latter doesn't
    return ``None`` or a string object.
 
+
 Example:
 
     >>> from datetime import time, tzinfo
@@ -1377,6 +1375,7 @@
 
    The default implementation of :meth:`tzname` raises :exc:`NotImplementedError`.
 
+
 These methods are called by a :class:`datetime` or :class:`time` object, in
 response to their methods of the same names.  A :class:`datetime` object passes
 itself as the argument, and a :class:`time` object passes ``None`` as the
@@ -1480,10 +1479,10 @@
 EST (fixed offset -5 hours), or only EDT (fixed offset -4 hours)).
 
 
-.. _strftime-behavior:
+.. _strftime-strptime-behavior:
 
-:meth:`strftime` Behavior
--------------------------
+:meth:`strftime` and :meth:`strptime` Behavior
+----------------------------------------------
 
 :class:`date`, :class:`datetime`, and :class:`time` objects all support a
 ``strftime(format)`` method, to create a string representing the time under the
@@ -1491,9 +1490,14 @@
 acts like the :mod:`time` module's ``time.strftime(fmt, d.timetuple())``
 although not all objects support a :meth:`timetuple` method.
 
+Conversely, the :meth:`datetime.strptime` class method creates a
+:class:`datetime` object from a string representing a date and time and a
+corresponding format string. ``datetime.strptime(date_string, format)`` is
+equivalent to ``datetime(*(time.strptime(date_string, format)[0:6]))``.
+
 For :class:`time` objects, the format codes for year, month, and day should not
 be used, as time objects have no such values.  If they're used anyway, ``1900``
-is substituted for the year, and ``0`` for the month and day.
+is substituted for the year, and ``1`` for the month and day.
 
 For :class:`date` objects, the format codes for hours, minutes, seconds, and
 microseconds should not be used, as :class:`date` objects have no such
@@ -1615,14 +1619,14 @@
 Notes:
 
 (1)
-   When used with the :func:`strptime` function, the ``%f`` directive
+   When used with the :meth:`strptime` method, the ``%f`` directive
    accepts from one to six digits and zero pads on the right.  ``%f`` is
    an extension to the set of format characters in the C standard (but
    implemented separately in datetime objects, and therefore always
    available).
 
 (2)
-   When used with the :func:`strptime` function, the ``%p`` directive only affects
+   When used with the :meth:`strptime` method, the ``%p`` directive only affects
    the output hour field if the ``%I`` directive is used to parse the hour.
 
 (3)
@@ -1630,11 +1634,11 @@
    accounts for leap seconds and the (very rare) double leap seconds.
    The :mod:`time` module may produce and does accept leap seconds since
    it is based on the Posix standard, but the :mod:`datetime` module
-   does not accept leap seconds in :func:`strptime` input nor will it
+   does not accept leap seconds in :meth:`strptime` input nor will it
    produce them in :func:`strftime` output.
 
 (4)
-   When used with the :func:`strptime` function, ``%U`` and ``%W`` are only used in
+   When used with the :meth:`strptime` method, ``%U`` and ``%W`` are only used in
    calculations when the day of the week and the year are specified.
 
 (5)
diff --git a/Doc/library/profile.rst b/Doc/library/profile.rst
index d676671..5888b95 100644
--- a/Doc/library/profile.rst
+++ b/Doc/library/profile.rst
@@ -108,7 +108,7 @@
 
    cProfile.py [-o output_file] [-s sort_order]
 
-:option:`-s` only applies to standard output (:option:`-o` is not supplied).
+``-s`` only applies to standard output (``-o`` is not supplied).
 Look in the :class:`Stats` documentation for valid sort values.
 
 When you wish to review the profile, you should use the methods in the
diff --git a/Doc/library/unittest.rst b/Doc/library/unittest.rst
index a637e07..d1a71e3 100644
--- a/Doc/library/unittest.rst
+++ b/Doc/library/unittest.rst
@@ -731,9 +731,9 @@
 
    .. method:: assertSameElements(expected, actual, msg=None)
 
-      Test that sequence *expected* contains the same elements as *actual*.
-      When they don't an error message listing the differences between the
-      sequences will be generated.
+      Test that sequence *expected* contains the same elements as *actual*,
+      regardless of their order. When they don't, an error message listing
+      the differences between the sequences will be generated.
 
       If specified *msg* will be used as the error message on failure.
 
diff --git a/Doc/library/xmlrpc.client.rst b/Doc/library/xmlrpc.client.rst
index 1bcc423..d25cbaf 100644
--- a/Doc/library/xmlrpc.client.rst
+++ b/Doc/library/xmlrpc.client.rst
@@ -383,8 +383,8 @@
 
    import xmlrpc.client
 
-   # create a ServerProxy with an invalid URI
-   proxy = xmlrpc.client.ServerProxy("http://invalidaddress/")
+   # create a ServerProxy with an URI that doesn't respond to XMLRPC requests
+   proxy = xmlrpc.client.ServerProxy("http://google.com/")
 
    try:
        proxy.some_method()