Add a new section on the development plan; add an item

This commit is contained in:
Andrew M. Kuchling 2010-05-07 01:45:14 +00:00
parent 328e3775df
commit 02f7b990e1
1 changed files with 64 additions and 15 deletions

View File

@ -8,9 +8,7 @@
.. Fix accents on Kristjan Valur Jonsson, Fuerstenau .. Fix accents on Kristjan Valur Jonsson, Fuerstenau
.. Big jobs: pep 391 .. Big jobs: pep 391, PyCapsule
.. Initial section: development plans for 2.x in future
.. Initial section: changes in deprecation warning behaviour
.. hyperlink all the methods & functions. .. hyperlink all the methods & functions.
@ -62,17 +60,42 @@ This article explains the new features in Python 2.7. The final
release of 2.7 is currently scheduled for July 2010; the detailed release of 2.7 is currently scheduled for July 2010; the detailed
schedule is described in :pep:`373`. schedule is described in :pep:`373`.
Python 2.7 is planned to be the last major release in the 2.x series.
Though more major releases have not been absolutely ruled out, the
Python maintainers are planning to focus more on Python 3.x. Despite
that, it's likely that the 2.7 release will have a longer period of
maintenance compared to earlier 2.x versions.
.. Compare with previous release in 2 - 3 sentences here. .. Compare with previous release in 2 - 3 sentences here.
add hyperlink when the documentation becomes available online. add hyperlink when the documentation becomes available online.
.. _whatsnew27-python31: .. _whatsnew27-python31:
The Future for Python 2.x
=========================
Python 2.7 is intended to be the last major release in the 2.x series.
Though more major releases have not been absolutely ruled out, the
Python maintainers are planning to focus their efforts on Python 3.x.
This means that 2.7 will remain in place for a long time, running
production systems that have not been ported to Python 3.x.
Two consequences of the long-term significance of 2.7 are:
* It's very likely the 2.7 release will have a longer period of
maintenance compared to earlier 2.x versions. Python 2.7 will
continue to be maintained while the transition to 3.x is in
progress, and that transition will itself be lengthy. Most 2.x
versions are maintained for about 4 years, from the first to the
last bugfix release; patchlevel releases for Python 2.7 will
probably be made for at least 6 years.
* Because 2.7 will be running production applications, a policy
decision was made to silence warnings only of interest to developers
by default. Silencing :exc:`DeprecationWarning` and its descendants
prevents users from seeing warnings triggered by an application.
(Carried out in :issue:`7319`.)
You can re-enable display of :exc:`DeprecationWarning` messages by
running Python with the :option:`-Wdefault` (short form:
:option:`-Wd`) switch, or you can add
``warnings.simplefilter('default')`` to your code.
Python 3.1 Features Python 3.1 Features
======================= =======================
@ -181,11 +204,6 @@ A secondary dictionary maps keys to their corresponding list node, so
deletion doesn't have to traverse the entire linked list and therefore deletion doesn't have to traverse the entire linked list and therefore
remains O(1). remains O(1).
.. XXX check O(1)-ness with Raymond
.. Also check if the 'somenamedtuple' in the collection module should
.. be replaced/removed in order to use
.. :meth:`~collections.namedtuple._asdict()` (see below)
The standard library now supports use of ordered dictionaries in several The standard library now supports use of ordered dictionaries in several
modules. modules.
@ -364,10 +382,17 @@ if one is installed.
XXX describe an example. XXX describe an example.
Two smaller enhancements to the logging module are: Three smaller enhancements to the :mod:`logging` module, all
implemented by Vinay Sajip, are:
.. rev79293 .. rev79293
* The :class:`~logging.handlers.SysLogHandler` class now supports
syslogging over TCP. The constructor has a *socktype* parameter
giving the type of socket to use, either :const:`socket.SOCK_DGRAM`
for UDP or :const:`socket.SOCK_STREAM` for TCP. The default
protocol remains UDP.
* :class:`Logger` instances gained a :meth:`getChild` method that retrieves a * :class:`Logger` instances gained a :meth:`getChild` method that retrieves a
descendant logger using a relative path. For example, descendant logger using a relative path. For example,
once you retrieve a logger by doing ``log = getLogger('app')``, once you retrieve a logger by doing ``log = getLogger('app')``,
@ -950,6 +975,30 @@ changes, or look through the Subversion logs for all the details.
length as the read-only :attr:`~collections.deque.maxlen` attribute. length as the read-only :attr:`~collections.deque.maxlen` attribute.
(Both features added by Raymond Hettinger.) (Both features added by Raymond Hettinger.)
* Constructors for the parsing classes in the :mod:`ConfigParser` module now
take a *allow_no_value* parameter, defaulting to false; if true,
options without values will be allowed. For example::
>>> import ConfigParser, StringIO
>>> sample_config = """
... [mysqld]
... user = mysql
... pid-file = /var/run/mysqld/mysqld.pid
... skip-bdb
... """
>>> config = ConfigParser.RawConfigParser(allow_no_value=True)
>>> config.readfp(StringIO.StringIO(sample_config))
>>> config.get('mysqld', 'user')
'mysql'
>>> print config.get('mysqld', 'skip-bdb')
None
>>> print config.get('mysqld', 'unknown')
Traceback (most recent call last):
...
ConfigParser.NoOptionError: No option 'unknown' in section: 'mysqld'
(Contributed by Mats Kindahl; :issue:`7005`.)
* Deprecated function: :func:`contextlib.nested`, which allows * Deprecated function: :func:`contextlib.nested`, which allows
handling more than one context manager with a single :keyword:`with` handling more than one context manager with a single :keyword:`with`
statement, has been deprecated, because :keyword:`with` supports statement, has been deprecated, because :keyword:`with` supports