Make whatsnew PEP markup conform to previous whatsnew docs.
Also some other consistency tweaks.
diff --git a/Doc/whatsnew/3.3.rst b/Doc/whatsnew/3.3.rst
index 2c32d53..1943a06 100644
--- a/Doc/whatsnew/3.3.rst
+++ b/Doc/whatsnew/3.3.rst
@@ -46,7 +46,12 @@
when researching a change.
This article explains the new features in Python 3.3, compared to 3.2.
-Python 3.3 was released on September 29, 2012.
+Python 3.3 was released on September 29, 2012. For full details,
+see the :source:`Misc/NEWS` file.
+
+.. seealso::
+
+ :pep:`398` - Python 3.2 Release Schedule
Summary -- Release highlights
@@ -79,6 +84,12 @@
* More compact :ref:`unicode strings <pep-393>`.
* More compact :ref:`attribute dictionaries <pep-412>`.
+Significantly Improved Library Modules:
+
+* C Accelerator for the :ref:`decimal <new-decimal>` module.
+* Better unicode handling in the :ref:`email <new-email>` module
+ (:term:`provisional <provisional package>`).
+
Security improvements:
* Hash randomization is switched on by default.
@@ -91,9 +102,6 @@
PEP 405: Virtual Environments
=============================
-:pep:`405` - Python Virtual Environments
- PEP written by Carl Meyer, implemented by Carl Meyer and Vinay Sajip.
-
Virtual environments help create separate Python setups while sharing a
system-wide base install, for ease of maintenance. Virtual environments
have their own set of private site packages (i.e. locally-installed
@@ -104,10 +112,17 @@
This PEP adds the :mod:`venv` module for programmatic access, and the
:ref:`pyvenv <scripts-pyvenv>` script for command-line access and
-administration. The Python interpreter becomes aware of a ``pvenv.cfg``
+administration. The Python interpreter checks for a ``pvenv.cfg``,
file whose existence signals the base of a virtual environment's directory
tree.
+(Implemented by Carl Meyer and Vinay Sajip.)
+
+.. seealso::
+
+ :pep:`405` - Python Virtual Environments
+ PEP written by Carl Meyer
+
PEP 420: Namespace Packages
===========================
@@ -117,14 +132,19 @@
various third party approaches to namespace packages, as described in
:pep:`420`)
+.. seealso::
+
+ :pep:`420` - Namespace packages
+ PEP written by Eric V. Smith; implementation by Eric V. Smith
+ and Barry Warsaw
+
.. _pep-3118-update:
PEP 3118: New memoryview implementation and buffer protocol documentation
=========================================================================
-:issue:`10181` - memoryview bug fixes and features.
- Written by Stefan Krah.
+The implementation of :pep:`3118` has been significantly improved.
The new memoryview implementation comprehensively fixes all ownership and
lifetime issues of dynamically allocated fields in the Py_buffer struct
@@ -181,6 +201,13 @@
* For further changes see `Build and C API Changes`_ and `Porting C code`_ .
+(Contributed by Stefan Krah in :issue:`10181`)
+
+.. seealso::
+
+ :pep:`3118` - Revising the Buffer Protocol
+
+
.. _pep-393:
PEP 393: Flexible String Representation
@@ -255,15 +282,18 @@
bit better than Python 2.7, on a Django benchmark (see the PEP for
details).
+.. seealso::
+
+ :pep:`393` - Flexible String Representation
+ PEP written by Martin von Löwis; implementation by Torsten Becker
+ and Martin von Löwis.
+
.. _pep-3151:
PEP 3151: Reworking the OS and IO exception hierarchy
=====================================================
-:pep:`3151` - Reworking the OS and IO exception hierarchy
- PEP written and implemented by Antoine Pitrou.
-
The hierarchy of exceptions raised by operating system errors is now both
simplified and finer-grained.
@@ -325,15 +355,17 @@
except PermissionError:
print("You are not allowed to read document.txt")
+.. seealso::
+
+ :pep:`3151` - Reworking the OS and IO Exception Hierarchy
+ PEP written and implemented by Antoine Pitrou
+
.. _pep-380:
PEP 380: Syntax for Delegating to a Subgenerator
================================================
-:pep:`380` - Syntax for Delegating to a Subgenerator
- PEP written by Greg Ewing.
-
PEP 380 adds the ``yield from`` expression, allowing a generator to delegate
part of its operations to another generator. This allows a section of code
containing 'yield' to be factored out and placed in another generator.
@@ -389,17 +421,17 @@
multiple subgenerators as easily as a single large function can be split into
multiple subfunctions.
-(Implementation by Greg Ewing, integrated into 3.3 by Renaud Blanch, Ryan
-Kelly and Nick Coghlan, documentation by Zbigniew Jędrzejewski-Szmek and
-Nick Coghlan)
+.. seealso::
+
+ :pep:`380` - Syntax for Delegating to a Subgenerator
+ PEP written by Greg Ewing; implementation by Greg Ewing, integrated into
+ 3.3 by Renaud Blanch, Ryan Kelly and Nick Coghlan, documentation by
+ Zbigniew Jędrzejewski-Szmek and Nick Coghlan)
PEP 409: Suppressing exception context
======================================
-:pep:`409` - Suppressing exception context
- PEP written by Ethan Furman, implemented by Ethan Furman and Nick Coghlan.
-
PEP 409 introduces new syntax that allows the display of the chained
exception context to be disabled. This allows cleaner error messages in
applications that convert between exception types::
@@ -454,13 +486,16 @@
...
KeyError('x',)
+.. seealso::
+
+ :pep:`409` - Suppressing exception context
+ PEP written by Ethan Furman; implemented by Ethan Furman and Nick
+ Coghlan.
+
PEP 414: Explicit Unicode literals
======================================
-:pep:`414` - Explicit Unicode literals
- PEP written by Armin Ronacher.
-
To ease the transition from Python 2 for Unicode aware Python applications
that make heavy use of Unicode literals, Python 3.3 once again supports the
"``u``" prefix for string literals. This prefix has no semantic significance
@@ -469,13 +504,15 @@
the more significant semantic changes (such as the stricter default
separation of binary and text data).
+.. seealso::
+
+ :pep:`414` - Explicit Unicode literals
+ PEP written by Armin Ronacher.
+
PEP 3155: Qualified name for classes and functions
==================================================
-:pep:`3155` - Qualified name for classes and functions
- PEP written and implemented by Antoine Pitrou.
-
Functions and class objects have a new ``__qualname__`` attribute representing
the "path" from the module top-level to their definition. For global functions
and classes, this is the same as ``__name__``. For other functions and classes,
@@ -528,28 +565,31 @@
>>> str(C.D.meth)
'<function C.D.meth at 0x7f46b9fe31e0>'
+.. seealso::
+
+ :pep:`3155` - Qualified name for classes and functions
+ PEP written and implemented by Antoine Pitrou.
+
.. _pep-412:
PEP 412: Key-Sharing Dictionary
===============================
-:pep:`412` - Key-Sharing Dictionary
- PEP written and implemented by Mark Shannon.
-
Dictionaries used for the storage of objects' attributes are now able to
share part of their internal storage between each other (namely, the part
which stores the keys and their respective hashes). This reduces the memory
consumption of programs creating many instances of non-builtin types.
+.. seealso::
+
+ :pep:`412` - Key-Sharing Dictionary
+ PEP written and implemented by Mark Shannon.
+
PEP 362: Function Signature Object
==================================
-:pep:`362`: - Function Signature Object
- PEP written by Brett Cannon, Yury Selivanov, Larry Hastings, Jiwon Seo.
- Implemented by Yury Selivanov.
-
A new function :func:`inspect.signature` makes introspection of python
callables easy and straightforward. A broad range of callables is supported:
python functions, decorated or not, classes, and :func:`functools.partial`
@@ -559,13 +599,16 @@
which considerably simplifies writing decorators and any code that validates
or amends calling signatures or arguments.
+.. seealso::
+
+ :pep:`362`: - Function Signature Object
+ PEP written by Brett Cannon, Yury Selivanov, Larry Hastings, Jiwon Seo;
+ implemented by Yury Selivanov.
+
PEP 421: Adding sys.implementation
==================================
-:pep:`421` - Adding sys.implementation
- PEP written and implemented by Eric Snow.
-
A new attribute on the :mod:`sys` module exposes details specific to the
implementation of the currently running interpreter. The initial set of
attributes on :attr:`sys.implementation` are ``name``, ``version``,
@@ -594,6 +637,11 @@
are writable. This means that you can add, remove, and modify the namespace
through normal attribute access.
+.. seealso::
+
+ :pep:`421` - Adding sys.implementation
+ PEP written and implemented by Eric Snow.
+
.. _importlib:
@@ -604,8 +652,6 @@
:issue:`14605` - Make import machinery explicit
:issue:`14646` - Require loaders set __loader__ and __package__
-(Written by Brett Cannon)
-
The :func:`__import__` function is now powered by :func:`importlib.__import__`.
This work leads to the completion of "phase 2" of :pep:`302`. There are
multiple benefits to this change. First, it has allowed for more of the
@@ -657,8 +703,9 @@
Visible Changes
---------------
-[For potential required changes to code, see the `Porting Python code`_
-section]
+
+For potential required changes to code, see the `Porting Python code`_
+section.
Beyond the expanse of what :mod:`importlib` now exposes, there are other
visible changes to import. The biggest is that :attr:`sys.meta_path` and
@@ -686,6 +733,8 @@
consideration when updating code for Python 3.3, and thus should be read about
in the `Porting Python code`_ section of this document.
+(Implementation by Brett Cannon)
+
Other Language Changes
======================
@@ -702,7 +751,6 @@
* Equality comparisons on :func:`range` objects now return a result reflecting
the equality of the underlying sequences generated by those range objects.
-
(:issue:`13201`)
* The ``count()``, ``find()``, ``rfind()``, ``index()`` and ``rindex()``
@@ -712,19 +760,21 @@
(Contributed by Petri Lehtinen in :issue:`12170`)
* New methods have been added to :class:`list` and :class:`bytearray`:
- ``copy()`` and ``clear()``.
-
- (:issue:`10516`)
+ ``copy()`` and ``clear()``. (:issue:`10516`)
* Raw bytes literals can now be written ``rb"..."`` as well as ``br"..."``.
+
(Contributed by Antoine Pitrou in :issue:`13748`.)
* :meth:`dict.setdefault` now does only one lookup for the given key, making
it atomic when used with built-in types.
+
(Contributed by Filip Gruszczyński in :issue:`13521`.)
+* The error messages produced when a function call does not match the function
+ signature have been significantly improved.
-.. XXX mention new error messages for passing wrong number of arguments to functions
+ (Contributed by Benjamin Peterson.)
A Finer-Grained Import Lock
@@ -741,7 +791,7 @@
the exposure of incompletely initialized modules), while eliminating the
aforementioned annoyances.
-(contributed by Antoine Pitrou in :issue:`9260`.)
+(Contributed by Antoine Pitrou in :issue:`9260`.)
Builtin functions and types
@@ -764,6 +814,7 @@
documentation sections for the individual builtin sequence types
(:issue:`4966`)
+
New Modules
===========
@@ -978,6 +1029,9 @@
called without arguments to convert datetime instance to the system
timezone.
+
+.. _new-decimal:
+
decimal
-------
@@ -1075,6 +1129,8 @@
is deprecated.
+.. _new-email:
+
email
-----