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

raymond.hettinger python-checkins at python.org
Tue Dec 7 09:52:41 CET 2010


Author: raymond.hettinger
Date: Tue Dec  7 09:52:41 2010
New Revision: 87112

Log:
More cleanups and examples.

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	Tue Dec  7 09:52:41 2010
@@ -483,13 +483,12 @@
 
   (Added by Antoine Pitrou and Georg Brandl in :issue:`10093` and :issue:`477863`.)
 
-* :class:`range` objects now support *index* and *count* methods. This is
-  part of an effort to make more objects fully implement the :class:`collections.Sequence`
-  :term:`abstract base class`.  As a result, the language will have a more
-  uniform API.
-
-  In addition, :class:`range` objects now support slicing and negative indices.
-  This makes *range* more interoperable with lists.
+* :class:`range` objects now support *index* and *count* methods. This is part
+  of an effort to make more objects fully implement the
+  :class:`collections.Sequence` :term:`abstract base class`.  As a result, the
+  language will have a more uniform API.  In addition, :class:`range` objects
+  now support slicing and negative indices.  This makes *range* more
+  interoperable with lists.
 
   (Contributed by Daniel Stuzback in :issue:`9213` and by Alexander Belopolsky
   in :issue:`2690`.)
@@ -558,10 +557,10 @@
   (Contributed by Raymond Hettinger and incorporating design suggestions
   from Mark Dickinson.)
 
-* The :mod:`nntplib` module gets a revamped implementation with better
-  bytes / unicode semantics as well as more practical APIs.  These improvements
-  break compatibility with the nntplib version in Python 3.1, which was
-  partly dysfunctional in itself.
+* The :mod:`nntplib` module gets a revamped implementation with better bytes and
+  unicode semantics as well as more practical APIs.  These improvements break
+  compatibility with the nntplib version in Python 3.1, which was partly
+  dysfunctional in itself.
 
   (Contributed by Antoine Pitrou in :issue:`9360`)
 
@@ -610,21 +609,35 @@
 
 .. mention os.popen and subprocess.Popen auto-closing of fds
 
-* :class:`gzip.GzipFile` now implements the :class:`io.BufferedIOBase` ABC
-  (except for ``truncate()``), has a :meth:`~gzip.GzipFile.peek` method,
-  and supports unseekable as well as zero-padded file objects.
-
-  (Contributed by Antoine Pitrou, Nir Aides and Brian Curtin in :issue:`9962`,
-  :issue:`1675951`, :issue:`7471` and :issue:`2846`.)
+* :class:`gzip.GzipFile` now implements the :class:`io.BufferedIOBase`
+  :term:`abstract base class` (except for ``truncate()``).  It also has a
+  :meth:`~gzip.GzipFile.peek` method and supports unseekable as well as
+  zero-padded file objects.
 
   The :mod:`gzip` module also gains the :func:`~gzip.compress` and
   :func:`~gzip.decompress` functions for easier in-memory compression and
   decompression.
 
-  (Contributed by Anand B. Pillai in :issue:`3488`.)
+  Keep in mind that text needs to be encoded in to bytes before compressing
+  and decompressing:
+
+  >>> s = 'Three shall be the number thou shalt count, '
+  >>> s += 'and the number of the counting shall be three'
+  >>> b = s.encode()                        # convert to utf-8
+  >>> len(b)
+  89
+  >>> c = gzip.compress(b)
+  >>> len(c)
+  77
+  >>> gzip.decompress(c).decode()[:43]      # decompress and convert to text
+  'Three shall be the number thou shalt count, '
+
+  (Contributed by Anand B. Pillai in :issue:`3488`; and by Antoine Pitrou, Nir
+  Aides and Brian Curtin in :issue:`9962`, :issue:`1675951`, :issue:`7471` and
+  :issue:`2846`.)
 
 * The :mod:`os` module now has the :const:`ST_RDONLY` and :const:`ST_NOSUID`
-  constants, for use with the :func:`~os.statvfs` function.
+  constants for use with the :func:`~os.statvfs` function.
 
   (Patch by Adam Jackson; :issue:`7647`.)
 
@@ -707,8 +720,16 @@
   as recommended in public uses of HTTPS.
   (Added by Antoine Pitrou, :issue:`9003`.)
 
-* The command call, ``python -m unittest`` can now accept file paths instead
-  of module names for running specific tests (:issue:`10620`).
+* The command-line call, ``python -m unittest`` can now accept file paths
+  instead of module names for running specific tests (:issue:`10620`).  The new
+  test discovery can find tests within packages, locating any test importable
+  from the top level directory.  The top level directory can be specified with
+  the `-t` option, a pattern for matching files with ``-p``, and a directory to
+  start discovery with ``-s``::
+
+    $ python -m unittest discover -s my_proj_dir -p '_test.py'
+
+  (Contributed by Michael Foord.)
 
 * The :mod:`unittest` module has two new methods,
   :meth:`~unittest.TestCase.assertWarns` and
@@ -718,9 +739,24 @@
   >>> with self.assertWarns(DeprecationWarning):
   ...     legacy_function('XYZ')
 
-  In addition, the naming in the module has ungone a number of clean-ups.
-  For example, :meth:`assertRegex` is the new name for :meth:`assertRegexpMatches`
-  which was misnamed because the test uses :func:`re.search`, not :func:`re.match`.
+  Another new method, :meth:`~unittest.TestCase.assertCountEqual` is used to compare two iterables
+  to determine if their element counts are equal (are the same elements present
+  the same number of times::
+
+     def test_anagram(self):
+         self.assertCountEqual('algorithm', 'logarithm')
+
+  A principal feature of the unittest module is an effort to produce meaningful
+  diagnostics when a test fails.  When possible the failure is recorded along
+  with a diff of the output.  This is especially helpful for analyzing log files
+  of failed test runs. However, since diffs can sometime be voluminous, there is
+  a new :attr:`~unittest.TestCase.maxDiff` attribute which sets maximum length of
+  diffs.
+
+  In addition the naming in the module has ungone a number of clean-ups.  For
+  example, :meth:`~unittest.TestCase.assertRegex` is the new name for
+  :meth:`~unittest.TestCase.assertRegexpMatches` which was misnamed because the
+  test uses :func:`re.search`, not :func:`re.match`.
 
   To improve consistency, some of long-standing method aliases are being
   deprecated in favor of the preferred names:
@@ -771,7 +807,10 @@
 
 * The :mod:`tempfile` module has a new context manager,
   :class:`~tempfile.TemporaryDirectory` which provides easy deterministic
-  cleanup of temporary directories.
+  cleanup of temporary directories:
+
+  >>> with tempfile.TemporaryDirectory() as tmpdirname:
+  ...     print 'created temporary directory', tmpdirname
 
   (Contributed by Neil Schemenauer and Nick Coghlan; :issue:`5178`.)
 
@@ -807,14 +846,6 @@
 
   (Contributed by Ron Adam; :issue:`2001`.)
 
-.. XXX add something about pdb additions:
-
-   * new commands interact, (un)display, longlist, source, until lineno
-   * -c option that executes commands as if given in .pdbrc
-   * SIGINT handler to break a continued program
-
-.. XXX add optimize flags for py_compile/compileall (issue10553)
-
 * The new :mod:`sysconfig` module makes it straight-forward to discover
   installation paths and configuration variables which vary across platforms and
   installs.


More information about the Python-checkins mailing list