Add several items and placeholders

This commit is contained in:
Andrew M. Kuchling 2009-03-30 22:30:20 +00:00
parent b585255f02
commit 71d5c28d97
1 changed files with 91 additions and 43 deletions

View File

@ -6,7 +6,8 @@
:Release: |release| :Release: |release|
:Date: |today| :Date: |today|
.. Fix accents on Kristjan Valur Jonsson, Fuerstenau. .. Fix accents on Kristjan Valur Jonsson, Fuerstenau, Tarek Ziade.
.. OrderedDict
.. $Id$ .. $Id$
Rules for maintenance: Rules for maintenance:
@ -57,10 +58,18 @@ No release schedule has been decided yet for 2.7.
.. ======================================================================== .. ========================================================================
.. Large, PEP-level features and changes should be described here. .. Large, PEP-level features and changes should be described here.
.. Should there be a new section here for 3k migration?
.. Or perhaps a more general section describing module changes/deprecation?
.. ======================================================================== .. ========================================================================
PEP 372: Adding an ordered dictionary to collections
=============================
XXX write this
Several modules will now use :class:`OrderedDict` by default. The
:mod:`ConfigParser` module uses :class:`OrderedDict` for the list
of sections and the options within a section.
The :method:`namedtuple._asdict` method returns an :class:`OrderedDict`
as well.
Other Language Changes Other Language Changes
@ -86,30 +95,6 @@ Some smaller changes made to the core Python language are:
(Contributed by Fredrik Johansson and Victor Stinner; :issue:`3439`.) (Contributed by Fredrik Johansson and Victor Stinner; :issue:`3439`.)
* Integers are now stored internally either in base 2**15 or in base
2**30, the base being determined at build time. Previously, they
were always stored in base 2**15. Using base 2**30 gives
significant performance improvements on 64-bit machines, but
benchmark results on 32-bit machines have been mixed. Therefore,
the default is to use base 2**30 on 64-bit machines and base 2**15
on 32-bit machines; on Unix, there's a new configure option
--enable-big-digits that can be used to override this default.
Apart from the performance improvements this change should be
invisible to end users, with one exception: for testing and
debugging purposes there's a new structseq ``sys.long_info`` that
provides information about the internal format, giving the number of
bits per digit and the size in bytes of the C type used to store
each digit::
>>> import sys
>>> sys.long_info
sys.long_info(bits_per_digit=30, sizeof_digit=4)
(Contributed by Mark Dickinson; :issue:`4258`.)
.. ====================================================================== .. ======================================================================
@ -129,18 +114,44 @@ A few performance enhancements have been added:
(Suggested by Martin von Loewis and implemented by Antoine Pitrou; (Suggested by Martin von Loewis and implemented by Antoine Pitrou;
:issue:`4074`.) :issue:`4074`.)
* The garbage collector tries to avoid tracking simple containers which * The garbage collector tries to avoid tracking simple containers
can't be part of a cycle. As of now, this is true for tuples and dicts which can't be part of a cycle. In Python 2.7, this is now true for
containing atomic types (such as ints, strings, etc.). Transitively, a dict tuples and dicts containing atomic types (such as ints, strings,
containing tuples of atomic types won't be tracked either. This helps bring etc.). Transitively, a dict containing tuples of atomic types won't
down the individual cost of each garbage collection, since it decreases the be tracked either. This helps reduce the cost of each
number of objects to be considered and traversed by the collector. garbage collection by decreasing the number of objects to be
considered and traversed by the collector.
To help diagnosing this optimization, a new function in the :mod:`gc`
module, :func:`is_tracked`, returns True if a given instance is tracked
by the garbage collector, False otherwise.
(Contributed by Antoine Pitrou; :issue:`4688`.) (Contributed by Antoine Pitrou; :issue:`4688`.)
* Integers are now stored internally either in base 2**15 or in base
2**30, the base being determined at build time. Previously, they
were always stored in base 2**15. Using base 2**30 gives
significant performance improvements on 64-bit machines, but
benchmark results on 32-bit machines have been mixed. Therefore,
the default is to use base 2**30 on 64-bit machines and base 2**15
on 32-bit machines; on Unix, there's a new configure option
:option:`--enable-big-digits` that can be used to override this default.
Apart from the performance improvements this change should be
invisible to end users, with one exception: for testing and
debugging purposes there's a new structseq ``sys.long_info`` that
provides information about the internal format, giving the number of
bits per digit and the size in bytes of the C type used to store
each digit::
>>> import sys
>>> sys.long_info
sys.long_info(bits_per_digit=30, sizeof_digit=4)
(Contributed by Mark Dickinson; :issue:`4258`.)
* The division algorithm for long integers has been made faster
by tightening the inner loop, doing shifts instead of multiplications,
and fixing an unnecessary extra iteration.
Various benchmarks show speedups of between 50% and 150% for long
integer divisions and modulo operations.
(Contributed by Mark Dickinson; :issue:`5512`.)
.. ====================================================================== .. ======================================================================
@ -153,14 +164,11 @@ changes, sorted alphabetically by module name. Consult the
:file:`Misc/NEWS` file in the source tree for a more complete list of :file:`Misc/NEWS` file in the source tree for a more complete list of
changes, or look through the Subversion logs for all the details. changes, or look through the Subversion logs for all the details.
* In Distutils, distutils.sdist.add_defaults now uses package_dir and data_files * It is no longer mandatory to store clear-text passwords in the
to feed MANIFEST.
* It is not mandatory anymore to store clear text passwords in the
:file:`.pypirc` file when registering and uploading packages to PyPI. As long :file:`.pypirc` file when registering and uploading packages to PyPI. As long
as the username is present in that file, the :mod:`distutils` package will as the username is present in that file, the :mod:`distutils` package will
prompt for the password if not present. (Added by tarek, with the initial prompt for the password if not present. (Added by Tarek Ziade,
contribution of Nathan Van Gheem; :issue:`4394`.) with the initial contribution by Nathan Van Gheem; :issue:`4394`.)
* The :mod:`bz2` module's :class:`BZ2File` now supports the context * The :mod:`bz2` module's :class:`BZ2File` now supports the context
management protocol, so you can write ``with bz2.BZ2File(...) as f: ...``. management protocol, so you can write ``with bz2.BZ2File(...) as f: ...``.
@ -200,6 +208,13 @@ changes, or look through the Subversion logs for all the details.
Contributed by Raymond Hettinger; :issue:`1696199`. Contributed by Raymond Hettinger; :issue:`1696199`.
* In Distutils, :func:`distutils.sdist.add_defaults` now uses
*package_dir* and *data_files* to feed MANIFEST.
* A new function in the :mod:`gc` module, :func:`is_tracked`, returns
True if a given instance is tracked by the garbage collector, False
otherwise. (Contributed by Antoine Pitrou; :issue:`4688`.)
* The :mod:`gzip` module's :class:`GzipFile` now supports the context * The :mod:`gzip` module's :class:`GzipFile` now supports the context
management protocol, so you can write ``with gzip.GzipFile(...) as f: ...``. management protocol, so you can write ``with gzip.GzipFile(...) as f: ...``.
(Contributed by Hagen Fuerstenau; :issue:`3860`.) (Contributed by Hagen Fuerstenau; :issue:`3860`.)
@ -208,6 +223,17 @@ changes, or look through the Subversion logs for all the details.
an invalid file descriptor. (Implemented by Benjamin Peterson; an invalid file descriptor. (Implemented by Benjamin Peterson;
:issue:`4991`.) :issue:`4991`.)
* The :class:`itertools`
* The :mod:`json` module was upgraded to version 2.0.9 of the
simplejson package, which includes a C extension that makes
encoding and decoding faster.
(Contributed by Bob Ippolito; :issue:`4136`.)
To support the new :class:`OrderedDict` type, :func:`json.load`
now has an optional *object_pairs_hook* parameter that will be called
with any object literal that decodes to a list of pairs.
(Contributed by Raymond Hettinger; :issue:`5381`.)
* The :mod:`pydoc` module now has help for the various symbols that Python * The :mod:`pydoc` module now has help for the various symbols that Python
uses. You can now do ``help('<<')`` or ``help('@')``, for example. uses. You can now do ``help('<<')`` or ``help('@')``, for example.
(Contributed by David Laban; :issue:`4739`.) (Contributed by David Laban; :issue:`4739`.)
@ -229,6 +255,13 @@ changes, or look through the Subversion logs for all the details.
(Contributed by Gregory P. Smith.) (Contributed by Gregory P. Smith.)
* The :mod:`unittest` module was enhanced in several ways.
Test cases can raise the :exc:`SkipTest` exception to skip a test.
(:issue:`1034053`.)
It will now use 'x' for expected failures
and 'u' for unexpected successes when run in its verbose mode.
(Contributed by Benjamin Peterson.)
* The :func:`is_zipfile` function in the :mod:`zipfile` module will now * The :func:`is_zipfile` function in the :mod:`zipfile` module will now
accept a file object, in addition to the path names accepted in earlier accept a file object, in addition to the path names accepted in earlier
versions. (Contributed by Gabriel Genellina; :issue:`4756`.) versions. (Contributed by Gabriel Genellina; :issue:`4756`.)
@ -236,6 +269,11 @@ changes, or look through the Subversion logs for all the details.
.. ====================================================================== .. ======================================================================
.. whole new modules get described in subsections here .. whole new modules get described in subsections here
importlib: Importing Modules
------------------------------
XXX write this
ttk: Themed Widgets for Tk ttk: Themed Widgets for Tk
-------------------------- --------------------------
@ -294,6 +332,16 @@ Port-Specific Changes: Mac OS X
----------------------------------- -----------------------------------
Other Changes and Fixes
=======================
* The :file:`regrtest.py` script now takes a :option:`--randseed=`
switch that takes an integer that will be used as the random seed
for the :option:`-r` option that executes tests in random order.
The :option:`-r` option also now reports the seed that was used
(Added by Collin Winter.)
.. ====================================================================== .. ======================================================================
Porting to Python 2.7 Porting to Python 2.7