[Python-checkins] r87145 - python/branches/py3k/Doc/whatsnew/3.2.rst

raymond.hettinger python-checkins at python.org
Thu Dec 9 17:41:54 CET 2010


Author: raymond.hettinger
Date: Thu Dec  9 17:41:54 2010
New Revision: 87145

Log:
Entries for datetime, callable, and collections.Counter.


Modified:
   python/branches/py3k/Doc/whatsnew/3.2.rst

Modified: python/branches/py3k/Doc/whatsnew/3.2.rst
==============================================================================
--- python/branches/py3k/Doc/whatsnew/3.2.rst	(original)
+++ python/branches/py3k/Doc/whatsnew/3.2.rst	Thu Dec  9 17:41:54 2010
@@ -547,7 +547,12 @@
 
 * The :func:`callable` builtin function from Py2.x was resurrected.  It provides
   a concise, readable alternative to using an :term:`abstract base class` in an
-  expression like ``isinstance(x, collections.Callable)``.
+  expression like ``isinstance(x, collections.Callable)``:
+
+  >>> callable(max)
+  True
+  >>> callable(20)
+  False
 
   (See :issue:`10518`.)
 
@@ -588,7 +593,12 @@
   pointing to the original callable function.  This allows wrapped functions to
   be introspected.  It also copies :attr:`__annotations__` if defined.  And now
   it also gracefully skips over missing attributes such as :attr:`__doc__` which
-  might not be defined for the wrapped callable.
+  might not be defined for the wrapped callable:
+
+  >>> callable(max)
+  True
+  >>> callable(20)
+  False
 
   (By Nick Coghlan and Terrence Cole; :issue:`9567`, :issue:`3445`, and
   :issue:`8814`.)
@@ -609,26 +619,42 @@
   (Contributed by Raymond Hettinger and incorporating design suggestions
   from Mark Dickinson.)
 
-.. XXX: Add a section describing new feature added to datetime module
-
-   * The :mod:`datetime` received several new features including
-
-     - A new type, :class:`timezone` that implements :class:`tzinfo`
-       interface by returning fixed UTC offset and timezone name. This
-       makes it easier to create aware :class:datetime` objects::
-
-       >>> datetime.datetime.now(datetime.timezone.utc)
-       datetime.datetime(2010, 12, 8, 21, 4, 2, 923754, tzinfo=datetime.timezone.utc)
-
-       >>> datetime.datetime.strptime("01/01/2000 12:00 +0000", "%m/%d/%Y %H:%M %z")
-       datetime.datetime(2000, 1, 1, 12, 0, tzinfo=datetime.timezone.utc)
+* The :class:`collections.Counter` class now has two forms of in-place
+  subtraction, the existing *-=* operator for `saturating subtraction
+  <http://en.wikipedia.org/wiki/Saturation_arithmetic>`_ and the new
+  :meth:`~collections.Counter.subtract` method for regular subtraction.  The
+  former is suitable for `multisets <http://en.wikipedia.org/wiki/Multiset>`_
+  which only have positive counts, and the latter is more suitable for counters
+  that allow negative counts:
+
+  >>> tally = Counter(dogs=5, cat=3)
+  >>> tally -= Counter(dogs=2, cats=8)    # saturating subtraction
+  >>> tally
+  Counter({'dogs': 3})
+
+  >>> tally = Counter(dogs=5, cats=3)
+  >>> tally.subtract(dogs=2, cats=8)      # regular subtraction
+  >>> tally
+  Counter({'dogs': 3, 'cats': -5})
+
+  (Contributed by Raymond Hettinger.)
+
+* The :mod:`datetime` module has a new type :class:`~datetime.timezone` that
+  implements the :class:`~datetime.tzinfo` interface by returning a fixed UTC
+  offset and timezone name. This makes it easier to create timezone aware
+  datetime objects:
+
+  >>> datetime.now(timezone.utc)
+  datetime.datetime(2010, 12, 8, 21, 4, 2, 923754, tzinfo=datetime.timezone.utc)
 
-      (See :issue:`5094` and :issue:`6641`.)
+  >>> datetime.strptime("01/01/2000 12:00 +0000", "%m/%d/%Y %H:%M %z")
+  datetime.datetime(2000, 1, 1, 12, 0, tzinfo=datetime.timezone.utc)
 
-     - :class: timedelta objects can now be multiplied by float and
-       divided by float and int objects.
+  Also, :class:`~datetime.timedelta` objects can now be multiplied by
+  :class:`float` and divided by :class:`float` and :class:`int` objects.
 
-       (See :issue:`1289118`.)
+  (Contributed by Alexander Belopolsky in :issue:`1289118`, :issue:`5094` and
+  :issue:`6641`.)
 
 * The :mod:`nntplib` module gets a revamped implementation with better bytes and
   unicode semantics as well as more practical APIs.  These improvements break


More information about the Python-checkins mailing list