Kaydet (Commit) 792c076c authored tarafından Raymond Hettinger's avatar Raymond Hettinger

Entries for datetime, callable, and collections.Counter.

üst 5280275f
...@@ -547,7 +547,12 @@ Some smaller changes made to the core Python language are: ...@@ -547,7 +547,12 @@ Some smaller changes made to the core Python language are:
* The :func:`callable` builtin function from Py2.x was resurrected. It provides * 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 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`.) (See :issue:`10518`.)
...@@ -588,7 +593,12 @@ New, Improved, and Deprecated Modules ...@@ -588,7 +593,12 @@ New, Improved, and Deprecated Modules
pointing to the original callable function. This allows wrapped functions to pointing to the original callable function. This allows wrapped functions to
be introspected. It also copies :attr:`__annotations__` if defined. And now be introspected. It also copies :attr:`__annotations__` if defined. And now
it also gracefully skips over missing attributes such as :attr:`__doc__` which 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 (By Nick Coghlan and Terrence Cole; :issue:`9567`, :issue:`3445`, and
:issue:`8814`.) :issue:`8814`.)
...@@ -609,26 +619,42 @@ New, Improved, and Deprecated Modules ...@@ -609,26 +619,42 @@ New, Improved, and Deprecated Modules
(Contributed by Raymond Hettinger and incorporating design suggestions (Contributed by Raymond Hettinger and incorporating design suggestions
from Mark Dickinson.) from Mark Dickinson.)
.. XXX: Add a section describing new feature added to datetime module * 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})
* The :mod:`datetime` received several new features including >>> tally = Counter(dogs=5, cats=3)
>>> tally.subtract(dogs=2, cats=8) # regular subtraction
>>> tally
Counter({'dogs': 3, 'cats': -5})
- A new type, :class:`timezone` that implements :class:`tzinfo` (Contributed by Raymond Hettinger.)
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) * The :mod:`datetime` module has a new type :class:`~datetime.timezone` that
datetime.datetime(2010, 12, 8, 21, 4, 2, 923754, tzinfo=datetime.timezone.utc) 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.datetime.strptime("01/01/2000 12:00 +0000", "%m/%d/%Y %H:%M %z") >>> datetime.now(timezone.utc)
datetime.datetime(2000, 1, 1, 12, 0, tzinfo=datetime.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 Also, :class:`~datetime.timedelta` objects can now be multiplied by
divided by float and int objects. :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 * The :mod:`nntplib` module gets a revamped implementation with better bytes and
unicode semantics as well as more practical APIs. These improvements break unicode semantics as well as more practical APIs. These improvements break
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment