diff --git a/Doc/c-api/type.rst b/Doc/c-api/type.rst index 9e2b9399a56..8dc040b8520 100644 --- a/Doc/c-api/type.rst +++ b/Doc/c-api/type.rst @@ -100,7 +100,7 @@ Type Objects .. c:function:: void* PyType_GetSlot(PyTypeObject *type, int slot) - Return the function pointer stored int the given slot. If the + Return the function pointer stored in the given slot. If the result is *NULL*, this indicates that either the slot is *NULL*, or that the function was called with invalid parameters. Callers will typically cast the result pointer into the appropriate diff --git a/Doc/library/venv.rst b/Doc/library/venv.rst index 461c9e170e4..d29a9574bf6 100644 --- a/Doc/library/venv.rst +++ b/Doc/library/venv.rst @@ -107,7 +107,8 @@ creation according to their needs, the :class:`EnvBuilder` class. upgraded in-place (defaults to ``False``). * ``with_pip`` -- a Boolean value which, if true, ensures pip is - installed in the virtual environment + installed in the virtual environment. This uses :mod:`ensurepip` with + the ``--default-pip`` option. .. versionchanged:: 3.4 Added the ``with_pip`` parameter diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst index 0be186381ab..91fb03a00c1 100644 --- a/Doc/whatsnew/3.4.rst +++ b/Doc/whatsnew/3.4.rst @@ -69,8 +69,9 @@ For full details, see the `changelog `_. .. note:: Prerelease users should be aware that this document is currently in - draft form. It will be updated substantially as Python 3.4 moves towards - release, so it's worth checking back even after reading earlier versions. + draft form. While it should be close to complete for the Python 3.4 + release candidates, adjustments and additions to the document may be made + up until the final release. .. seealso:: @@ -132,10 +133,9 @@ Significantly Improved Library Modules: a new :mod:`~email.message.Message` subclass (:class:`~email.contentmanager.EmailMessage`) that :ref:`simplify MIME handling ` (:issue:`18891`). -* :mod:`plistlib` has a cleaned up interface and support for binary - plist files (:issue:`14455`) * The :mod:`ipaddress` module API has been declared stable + CPython implementation improvements: * :ref:`Safe object finalization ` (:pep:`442`). @@ -163,9 +163,13 @@ PEP 453: Explicit Bootstrapping of PIP in Python Installations -------------------------------------------------------------- The new :mod:`ensurepip` module (defined in :pep:`453`) provides a standard -cross-platform mechanism to boostrap the pip installer into Python +cross-platform mechanism to bootstrap the pip installer into Python installations and virtual environments. +By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where +X.Y stands for the version of the Python installation), along with the +``pip`` Python package and its dependencies. + The :mod:`venv` module and the :command:`pyvenv` utility make use of this module to make ``pip`` readily available in virtual environments. When using the command line interface, ``pip`` is installed by default, while @@ -187,12 +191,13 @@ __ http://www.python.org/dev/peps/pep-0453/#recommendations-for-downstream-distr .. note:: - The implementation of PEP 453 is still a work in progress. Refer to - :issue:`19347` for the progress on additional steps: - - * Having the binary installers install ``pip`` by default - * Recommending the use of ``pip`` in the "Installing Python Module" - documentation. + To avoid conflicts between parallel Python 2 and Python 3 installations, + only the versioned ``pip3`` and ``pip3.4`` commands are bootstrapped by + default when ``ensurepip`` is invoked directly (including by the CPython + installers). ``pyvenv`` ensures that the unqualified ``pip`` command is + made available in virtual environments, and ``pip`` can always be + invoked via the ``-m`` switch rather than directly to avoid ambiguity on + systems with multiple Python installations. .. seealso:: @@ -257,6 +262,11 @@ general purpose convenience functions when appropriate:: File "", line 1, in LookupError: 'rot13' is not a text encoding; use codecs.encode() to handle arbitrary codecs + >>> open("foo.txt", encoding="hex") + Traceback (most recent call last): + File "", line 1, in + LookupError: 'hex' is not a text encoding; use codecs.open() to handle arbitrary codecs + In a related change, whenever it is feasible without breaking backwards compatibility, exceptions raised during encoding and decoding operations will be wrapped in a chained exception of the same type that mentions the @@ -308,6 +318,7 @@ in :ref:`binary-transforms` and :ref:`text-transforms`. (Contributed by Nick Coghlan in :issue:`7475`, , :issue:`17827`, :issue:`17828` and :issue:`19619`) + .. _whatsnew-pep-451: PEP 451: A ModuleSpec Type for the Import System @@ -959,8 +970,6 @@ command did. Worse, the Python3 ``pdb print`` command shadowed the Python3 pickle ------ -protocol 4 - :mod:`pickle` now supports (but does not use by default) a new pickle protocol, protocol 4. This new protocol addresses a number of issues that were present in previous protocols, such as the serialization of nested classes, very large @@ -973,6 +982,14 @@ keyword-only arguments. It also provides some efficiency improvements. PEP written by Antoine Pitrou and implemented by Alexandre Vassalotti. +plistlib +-------- + +:mod:`plistlib` now supports binary plist files, and offers the common +``load``/``loads``/``dump``/``dumps`` API pattern for serialization formats +(Contributed by Ronald Oussoren and others in :issue:`14455`). + + poplib ------ @@ -1354,6 +1371,9 @@ and can be used to simplify the process of defining and maintaining accurate signatures for builtins and standard library extension modules implemented in C. +Some standard library extension modules have been converted to use Argument +Clinic in Python 3.4, and :mod:`inspect` has been updated accordingly. + .. note:: The Argument Clinic PEP is not fully up to date with the state of the implementation. This has been deemed acceptable by the release manager @@ -1369,6 +1389,10 @@ implemented in C. Other Build and C API Changes ----------------------------- +* The new :c:func:`PyType_GetSlot` function has been added to the stable ABI, + allowing retrieval of function pointers from named type slots when using + the limited API. (Contributed by Martin von Löwis in :issue:`17162`) + * The new :c:func:`Py_SetStandardStreamEncoding` pre-initialization API allows applications embedding the CPython interpreter to reliably force a particular encoding and error handler for the standard streams