# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-01-15 22:33+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: whatsnew/3.4.rst:3 msgid "What's New In Python 3.4" msgstr "Nouveautés de Python 3.4" #: whatsnew/3.4.rst:0 msgid "Author" msgstr "Auteur" #: whatsnew/3.4.rst:5 msgid "R. David Murray (Editor)" msgstr "" #: whatsnew/3.4.rst:63 msgid "" "This article explains the new features in Python 3.4, compared to 3.3. " "Python 3.4 was released on March 16, 2014. For full details, see the " "`changelog `_." msgstr "" #: whatsnew/3.4.rst:70 msgid ":pep:`429` -- Python 3.4 Release Schedule" msgstr "" #: whatsnew/3.4.rst:75 msgid "Summary -- Release Highlights" msgstr "" #: whatsnew/3.4.rst:80 msgid "New syntax features:" msgstr "" #: whatsnew/3.4.rst:82 msgid "No new syntax features were added in Python 3.4." msgstr "" #: whatsnew/3.4.rst:84 msgid "Other new features:" msgstr "" #: whatsnew/3.4.rst:86 msgid ":ref:`pip should always be available ` (:pep:`453`)." msgstr "" #: whatsnew/3.4.rst:87 msgid "" ":ref:`Newly created file descriptors are non-inheritable ` " "(:pep:`446`)." msgstr "" #: whatsnew/3.4.rst:89 msgid "" "command line option for :ref:`isolated mode ` (:" "issue:`16499`)." msgstr "" #: whatsnew/3.4.rst:91 msgid "" ":ref:`improvements in the handling of codecs ` " "that are not text encodings (multiple issues)." msgstr "" #: whatsnew/3.4.rst:93 msgid "" ":ref:`A ModuleSpec Type ` for the Import System (:pep:" "`451`). (Affects importer authors.)" msgstr "" #: whatsnew/3.4.rst:95 msgid "" "The :mod:`marshal` format has been made :ref:`more compact and efficient " "` (:issue:`16475`)." msgstr "" #: whatsnew/3.4.rst:98 msgid "New library modules:" msgstr "" #: whatsnew/3.4.rst:100 msgid "" ":mod:`asyncio`: :ref:`New provisional API for asynchronous IO ` (:pep:`3156`)." msgstr "" #: whatsnew/3.4.rst:102 msgid "" ":mod:`ensurepip`: :ref:`Bootstrapping the pip installer ` (:pep:`453`)." msgstr "" #: whatsnew/3.4.rst:104 msgid "" ":mod:`enum`: :ref:`Support for enumeration types ` (:pep:" "`435`)." msgstr "" #: whatsnew/3.4.rst:106 msgid "" ":mod:`pathlib`: :ref:`Object-oriented filesystem paths ` (:" "pep:`428`)." msgstr "" #: whatsnew/3.4.rst:108 msgid "" ":mod:`selectors`: :ref:`High-level and efficient I/O multiplexing `, built upon the :mod:`select` module primitives (part of :pep:" "`3156`)." msgstr "" #: whatsnew/3.4.rst:111 msgid "" ":mod:`statistics`: A basic :ref:`numerically stable statistics library " "` (:pep:`450`)." msgstr "" #: whatsnew/3.4.rst:113 msgid "" ":mod:`tracemalloc`: :ref:`Trace Python memory allocations ` (:pep:`454`)." msgstr "" #: whatsnew/3.4.rst:116 msgid "Significantly improved library modules:" msgstr "" #: whatsnew/3.4.rst:118 msgid "" ":ref:`Single-dispatch generic functions ` in :mod:" "`functools` (:pep:`443`)." msgstr "" #: whatsnew/3.4.rst:120 msgid "" "New :mod:`pickle` :ref:`protocol 4 ` (:pep:`3154`)." msgstr "" #: whatsnew/3.4.rst:121 msgid "" ":mod:`multiprocessing` now has :ref:`an option to avoid using os.fork on " "Unix ` (:issue:`8713`)." msgstr "" #: whatsnew/3.4.rst:123 msgid "" ":mod:`email` has a new submodule, :mod:`~email.contentmanager`, and a new :" "mod:`~email.message.Message` subclass (:class:`~email.contentmanager." "EmailMessage`) that :ref:`simplify MIME handling " "` (:issue:`18891`)." msgstr "" #: whatsnew/3.4.rst:127 msgid "" "The :mod:`inspect` and :mod:`pydoc` modules are now capable of correct " "introspection of a much wider variety of callable objects, which improves " "the output of the Python :func:`help` system." msgstr "" #: whatsnew/3.4.rst:130 msgid "The :mod:`ipaddress` module API has been declared stable" msgstr "" #: whatsnew/3.4.rst:132 msgid "Security improvements:" msgstr "" #: whatsnew/3.4.rst:134 msgid "" ":ref:`Secure and interchangeable hash algorithm ` (:pep:" "`456`)." msgstr "" #: whatsnew/3.4.rst:136 msgid "" ":ref:`Make newly created file descriptors non-inheritable ` (:pep:`446`) to avoid leaking file descriptors to child processes." msgstr "" #: whatsnew/3.4.rst:138 msgid "" "New command line option for :ref:`isolated mode `, (:" "issue:`16499`)." msgstr "" #: whatsnew/3.4.rst:140 msgid "" ":mod:`multiprocessing` now has :ref:`an option to avoid using os.fork on " "Unix `. *spawn* and *forkserver* are more " "secure because they avoid sharing data with child processes." msgstr "" #: whatsnew/3.4.rst:143 msgid "" ":mod:`multiprocessing` child processes on Windows no longer inherit all of " "the parent's inheritable handles, only the necessary ones." msgstr "" #: whatsnew/3.4.rst:145 msgid "" "A new :func:`hashlib.pbkdf2_hmac` function provides the `PKCS#5 password-" "based key derivation function 2 `_." msgstr "" #: whatsnew/3.4.rst:148 msgid ":ref:`TLSv1.1 and TLSv1.2 support ` for :mod:`ssl`." msgstr "" #: whatsnew/3.4.rst:149 msgid "" ":ref:`Retrieving certificates from the Windows system cert store support " "` for :mod:`ssl`." msgstr "" #: whatsnew/3.4.rst:151 msgid "" ":ref:`Server-side SNI (Server Name Indication) support ` " "for :mod:`ssl`." msgstr "" #: whatsnew/3.4.rst:153 msgid "" "The :class:`ssl.SSLContext` class has a :ref:`lot of improvements " "`." msgstr "" #: whatsnew/3.4.rst:155 msgid "" "All modules in the standard library that support SSL now support server " "certificate verification, including hostname matching (:func:`ssl." "match_hostname`) and CRLs (Certificate Revocation lists, see :func:`ssl." "SSLContext.load_verify_locations`)." msgstr "" #: whatsnew/3.4.rst:160 msgid "CPython implementation improvements:" msgstr "" #: whatsnew/3.4.rst:162 msgid ":ref:`Safe object finalization ` (:pep:`442`)." msgstr "" #: whatsnew/3.4.rst:163 msgid "" "Leveraging :pep:`442`, in most cases :ref:`module globals are no longer set " "to None during finalization ` (:issue:`18214`)." msgstr "" #: whatsnew/3.4.rst:165 msgid ":ref:`Configurable memory allocators ` (:pep:`445`)." msgstr "" #: whatsnew/3.4.rst:166 msgid ":ref:`Argument Clinic ` (:pep:`436`)." msgstr "" #: whatsnew/3.4.rst:168 msgid "" "Please read on for a comprehensive list of user-facing changes, including " "many other smaller improvements, CPython optimizations, deprecations, and " "potential porting issues." msgstr "" #: whatsnew/3.4.rst:175 msgid "New Features" msgstr "Nouvelles fonctionnalités" #: whatsnew/3.4.rst:180 msgid "PEP 453: Explicit Bootstrapping of PIP in Python Installations" msgstr "" #: whatsnew/3.4.rst:183 msgid "Bootstrapping pip By Default" msgstr "" #: whatsnew/3.4.rst:185 msgid "" "The new :mod:`ensurepip` module (defined in :pep:`453`) provides a standard " "cross-platform mechanism to bootstrap the pip installer into Python " "installations and virtual environments. The version of ``pip`` included with " "Python 3.4.0 is ``pip`` 1.5.4, and future 3.4.x maintenance releases will " "update the bundled version to the latest version of ``pip`` that is " "available at the time of creating the release candidate." msgstr "" #: whatsnew/3.4.rst:192 msgid "" "By default, the commands ``pipX`` and ``pipX.Y`` will be installed on all " "platforms (where X.Y stands for the version of the Python installation), " "along with the ``pip`` Python package and its dependencies. On Windows and " "in virtual environments on all platforms, the unversioned ``pip`` command " "will also be installed. On other platforms, the system wide unversioned " "``pip`` command typically refers to the separately installed Python 2 " "version." msgstr "" #: whatsnew/3.4.rst:200 msgid "" "The ``pyvenv`` command line utility and the :mod:`venv` module make use of " "the :mod:`ensurepip` module to make ``pip`` readily available in virtual " "environments. When using the command line utility, ``pip`` is installed by " "default, while when using the :mod:`venv` module :ref:`venv-api` " "installation of ``pip`` must be requested explicitly." msgstr "" #: whatsnew/3.4.rst:206 msgid "" "For CPython :ref:`source builds on POSIX systems `, " "the ``make install`` and ``make altinstall`` commands bootstrap ``pip`` by " "default. This behaviour can be controlled through configure options, and " "overridden through Makefile options." msgstr "" #: whatsnew/3.4.rst:211 msgid "" "On Windows and Mac OS X, the CPython installers now default to installing " "``pip`` along with CPython itself (users may opt out of installing it during " "the installation process). Window users will need to opt in to the automatic " "``PATH`` modifications to have ``pip`` available from the command line by " "default, otherwise it can still be accessed through the Python launcher for " "Windows as ``py -m pip``." msgstr "" #: whatsnew/3.4.rst:218 msgid "" "As `discussed in the PEP`__, platform packagers may choose not to install " "these commands by default, as long as, when invoked, they provide clear and " "simple directions on how to install them on that platform (usually using the " "system package manager)." msgstr "" #: whatsnew/3.4.rst:227 msgid "" "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 - the ``--default-pip`` " "option is needed to also request the unversioned ``pip`` command. ``pyvenv`` " "and the Windows installer ensure that the unqualified ``pip`` command is " "made available in those environments, and ``pip`` can always be invoked via " "the ``-m`` switch rather than directly to avoid ambiguity on systems with " "multiple Python installations." msgstr "" #: whatsnew/3.4.rst:238 msgid "Documentation Changes" msgstr "" #: whatsnew/3.4.rst:240 msgid "" "As part of this change, the :ref:`installing-index` and :ref:`distributing-" "index` sections of the documentation have been completely redesigned as " "short getting started and FAQ documents. Most packaging documentation has " "now been moved out to the Python Packaging Authority maintained `Python " "Packaging User Guide `__ and the documentation " "of the individual projects." msgstr "" #: whatsnew/3.4.rst:248 msgid "" "However, as this migration is currently still incomplete, the legacy " "versions of those guides remaining available as :ref:`install-index` and :" "ref:`distutils-index`." msgstr "" #: whatsnew/3.4.rst:255 msgid ":pep:`453` -- Explicit bootstrapping of pip in Python installations" msgstr "" #: whatsnew/3.4.rst:255 msgid "" "PEP written by Donald Stufft and Nick Coghlan, implemented by Donald Stufft, " "Nick Coghlan, Martin von Löwis and Ned Deily." msgstr "" #: whatsnew/3.4.rst:262 msgid "PEP 446: Newly Created File Descriptors Are Non-Inheritable" msgstr "" #: whatsnew/3.4.rst:264 msgid "" ":pep:`446` makes newly created file descriptors :ref:`non-inheritable " "`. In general, this is the behavior an application will " "want: when launching a new process, having currently open files also open in " "the new process can lead to all sorts of hard to find bugs, and potentially " "to security issues." msgstr "" #: whatsnew/3.4.rst:270 msgid "" "However, there are occasions when inheritance is desired. To support these " "cases, the following new functions and methods are available:" msgstr "" #: whatsnew/3.4.rst:273 msgid ":func:`os.get_inheritable`, :func:`os.set_inheritable`" msgstr "" #: whatsnew/3.4.rst:274 msgid ":func:`os.get_handle_inheritable`, :func:`os.set_handle_inheritable`" msgstr "" #: whatsnew/3.4.rst:275 msgid "" ":meth:`socket.socket.get_inheritable`, :meth:`socket.socket.set_inheritable`" msgstr "" #: whatsnew/3.4.rst:279 msgid ":pep:`446` -- Make newly created file descriptors non-inheritable" msgstr "" #: whatsnew/3.4.rst:1812 msgid "PEP written and implemented by Victor Stinner." msgstr "" #: whatsnew/3.4.rst:286 msgid "Improvements to Codec Handling" msgstr "" #: whatsnew/3.4.rst:288 msgid "" "Since it was first introduced, the :mod:`codecs` module has always been " "intended to operate as a type-neutral dynamic encoding and decoding system. " "However, its close coupling with the Python text model, especially the type " "restricted convenience methods on the builtin :class:`str`, :class:`bytes` " "and :class:`bytearray` types, has historically obscured that fact." msgstr "" #: whatsnew/3.4.rst:295 msgid "" "As a key step in clarifying the situation, the :meth:`codecs.encode` and :" "meth:`codecs.decode` convenience functions are now properly documented in " "Python 2.7, 3.3 and 3.4. These functions have existed in the :mod:`codecs` " "module (and have been covered by the regression test suite) since Python " "2.4, but were previously only discoverable through runtime introspection." msgstr "" #: whatsnew/3.4.rst:301 msgid "" "Unlike the convenience methods on :class:`str`, :class:`bytes` and :class:" "`bytearray`, the :mod:`codecs` convenience functions support arbitrary " "codecs in both Python 2 and Python 3, rather than being limited to Unicode " "text encodings (in Python 3) or ``basestring`` <-> ``basestring`` " "conversions (in Python 2)." msgstr "" #: whatsnew/3.4.rst:307 msgid "" "In Python 3.4, the interpreter is able to identify the known non-text " "encodings provided in the standard library and direct users towards these " "general purpose convenience functions when appropriate::" msgstr "" #: whatsnew/3.4.rst:326 msgid "" "In a related change, whenever it is feasible without breaking backwards " "compatibility, exceptions raised during encoding and decoding operations are " "wrapped in a chained exception of the same type that mentions the name of " "the codec responsible for producing the error::" msgstr "" #: whatsnew/3.4.rst:359 msgid "" "Finally, as the examples above show, these improvements have permitted the " "restoration of the convenience aliases for the non-Unicode codecs that were " "themselves restored in Python 3.2. This means that encoding binary data to " "and from its hexadecimal representation (for example) can now be written as::" msgstr "" #: whatsnew/3.4.rst:371 msgid "" "The binary and text transforms provided in the standard library are detailed " "in :ref:`binary-transforms` and :ref:`text-transforms`." msgstr "" #: whatsnew/3.4.rst:374 msgid "" "(Contributed by Nick Coghlan in :issue:`7475`, :issue:`17827`, :issue:" "`17828` and :issue:`19619`.)" msgstr "" #: whatsnew/3.4.rst:381 msgid "PEP 451: A ModuleSpec Type for the Import System" msgstr "" #: whatsnew/3.4.rst:383 msgid "" ":pep:`451` provides an encapsulation of the information about a module that " "the import machinery will use to load it (that is, a module specification). " "This helps simplify both the import implementation and several import-" "related APIs. The change is also a stepping stone for `several future import-" "related improvements`__." msgstr "" #: whatsnew/3.4.rst:391 msgid "" "The public-facing changes from the PEP are entirely backward-compatible. " "Furthermore, they should be transparent to everyone but importer authors. " "Key finder and loader methods have been deprecated, but they will continue " "working. New importers should use the new methods described in the PEP. " "Existing importers should be updated to implement the new methods. See the :" "ref:`deprecated-3.4` section for a list of methods that should be replaced " "and their replacements." msgstr "" #: whatsnew/3.4.rst:401 msgid "Other Language Changes" msgstr "" #: whatsnew/3.4.rst:403 msgid "Some smaller changes made to the core Python language are:" msgstr "" #: whatsnew/3.4.rst:405 msgid "Unicode database updated to UCD version 6.3." msgstr "" #: whatsnew/3.4.rst:407 msgid "" ":func:`min` and :func:`max` now accept a *default* keyword-only argument " "that can be used to specify the value they return if the iterable they are " "evaluating has no elements. (Contributed by Julian Berman in :issue:" "`18111`.)" msgstr "" #: whatsnew/3.4.rst:412 msgid "Module objects are now :ref:`weakly referenceable `." msgstr "" #: whatsnew/3.4.rst:414 msgid "" "Module ``__file__`` attributes (and related values) should now always " "contain absolute paths by default, with the sole exception of ``__main__." "__file__`` when a script has been executed directly using a relative path. " "(Contributed by Brett Cannon in :issue:`18416`.)" msgstr "" #: whatsnew/3.4.rst:419 msgid "" "All the UTF-\\* codecs (except UTF-7) now reject surrogates during both " "encoding and decoding unless the ``surrogatepass`` error handler is used, " "with the exception of the UTF-16 decoder (which accepts valid surrogate " "pairs) and the UTF-16 encoder (which produces them while encoding non-BMP " "characters). (Contributed by Victor Stinner, Kang-Hao (Kenny) Lu and Serhiy " "Storchaka in :issue:`12892`.)" msgstr "" #: whatsnew/3.4.rst:426 msgid "" "New German EBCDIC :ref:`codec ` ``cp273``. (Contributed " "by Michael Bierenfeld and Andrew Kuchling in :issue:`1097797`.)" msgstr "" #: whatsnew/3.4.rst:429 msgid "" "New Ukrainian :ref:`codec ` ``cp1125``. (Contributed by " "Serhiy Storchaka in :issue:`19668`.)" msgstr "" #: whatsnew/3.4.rst:432 msgid "" ":class:`bytes`.join() and :class:`bytearray`.join() now accept arbitrary " "buffer objects as arguments. (Contributed by Antoine Pitrou in :issue:" "`15958`.)" msgstr "" #: whatsnew/3.4.rst:436 msgid "" "The :class:`int` constructor now accepts any object that has an " "``__index__`` method for its *base* argument. (Contributed by Mark " "Dickinson in :issue:`16772`.)" msgstr "" #: whatsnew/3.4.rst:440 msgid "" "Frame objects now have a :func:`~frame.clear` method that clears all " "references to local variables from the frame. (Contributed by Antoine " "Pitrou in :issue:`17934`.)" msgstr "" #: whatsnew/3.4.rst:444 msgid "" ":class:`memoryview` is now registered as a :class:`Sequence `, and supports the :func:`reversed` builtin. (Contributed by Nick " "Coghlan and Claudiu Popa in :issue:`18690` and :issue:`19078`.)" msgstr "" #: whatsnew/3.4.rst:448 msgid "" "Signatures reported by :func:`help` have been modified and improved in " "several cases as a result of the introduction of Argument Clinic and other " "changes to the :mod:`inspect` and :mod:`pydoc` modules." msgstr "" #: whatsnew/3.4.rst:452 msgid "" ":meth:`~object.__length_hint__` is now part of the formal language " "specification (see :pep:`424`). (Contributed by Armin Ronacher in :issue:" "`16148`.)" msgstr "" #: whatsnew/3.4.rst:458 msgid "New Modules" msgstr "" #: whatsnew/3.4.rst:464 msgid "asyncio" msgstr "asyncio" #: whatsnew/3.4.rst:466 msgid "" "The new :mod:`asyncio` module (defined in :pep:`3156`) provides a standard " "pluggable event loop model for Python, providing solid asynchronous IO " "support in the standard library, and making it easier for other event loop " "implementations to interoperate with the standard library and each other." msgstr "" #: whatsnew/3.4.rst:534 msgid "For Python 3.4, this module is considered a :term:`provisional API`." msgstr "" #: whatsnew/3.4.rst:475 msgid ":pep:`3156` -- Asynchronous IO Support Rebooted: the \"asyncio\" Module" msgstr "" #: whatsnew/3.4.rst:476 msgid "PEP written and implementation led by Guido van Rossum." msgstr "" #: whatsnew/3.4.rst:482 msgid "ensurepip" msgstr "ensurepip" #: whatsnew/3.4.rst:484 msgid "" "The new :mod:`ensurepip` module is the primary infrastructure for the :pep:" "`453` implementation. In the normal course of events end users will not " "need to interact with this module, but it can be used to manually bootstrap " "``pip`` if the automated bootstrapping into an installation or virtual " "environment was declined." msgstr "" #: whatsnew/3.4.rst:490 msgid "" ":mod:`ensurepip` includes a bundled copy of ``pip``, up-to-date as of the " "first release candidate of the release of CPython with which it ships (this " "applies to both maintenance releases and feature releases). ``ensurepip`` " "does not access the internet. If the installation has internet access, " "after ``ensurepip`` is run the bundled ``pip`` can be used to upgrade " "``pip`` to a more recent release than the bundled one. (Note that such an " "upgraded version of ``pip`` is considered to be a separately installed " "package and will not be removed if Python is uninstalled.)" msgstr "" #: whatsnew/3.4.rst:499 msgid "" "The module is named *ensure*\\ pip because if called when ``pip`` is already " "installed, it does nothing. It also has an ``--upgrade`` option that will " "cause it to install the bundled copy of ``pip`` if the existing installed " "version of ``pip`` is older than the bundled copy." msgstr "" #: whatsnew/3.4.rst:508 msgid "enum" msgstr "enum" #: whatsnew/3.4.rst:510 msgid "" "The new :mod:`enum` module (defined in :pep:`435`) provides a standard " "implementation of enumeration types, allowing other modules (such as :mod:" "`socket`) to provide more informative error messages and better debugging " "support by replacing opaque integer constants with backwards compatible " "enumeration values." msgstr "" #: whatsnew/3.4.rst:519 msgid ":pep:`435` -- Adding an Enum type to the Python standard library" msgstr "" #: whatsnew/3.4.rst:519 msgid "" "PEP written by Barry Warsaw, Eli Bendersky and Ethan Furman, implemented by " "Ethan Furman." msgstr "" #: whatsnew/3.4.rst:526 msgid "pathlib" msgstr "pathlib" #: whatsnew/3.4.rst:528 msgid "" "The new :mod:`pathlib` module offers classes representing filesystem paths " "with semantics appropriate for different operating systems. Path classes " "are divided between *pure paths*, which provide purely computational " "operations without I/O, and *concrete paths*, which inherit from pure paths " "but also provide I/O operations." msgstr "" #: whatsnew/3.4.rst:538 #, fuzzy msgid ":pep:`428` -- The pathlib module -- object-oriented filesystem paths" msgstr "" ":pep:`428` : Le module *pathlib* -- chemins de système de fichiers orientés " "objet." #: whatsnew/3.4.rst:1835 msgid "PEP written and implemented by Antoine Pitrou." msgstr "" #: whatsnew/3.4.rst:545 msgid "selectors" msgstr "" #: whatsnew/3.4.rst:547 msgid "" "The new :mod:`selectors` module (created as part of implementing :pep:" "`3156`) allows high-level and efficient I/O multiplexing, built upon the :" "mod:`select` module primitives." msgstr "" #: whatsnew/3.4.rst:555 msgid "statistics" msgstr "" #: whatsnew/3.4.rst:557 msgid "" "The new :mod:`statistics` module (defined in :pep:`450`) offers some core " "statistics functionality directly in the standard library. This module " "supports calculation of the mean, median, mode, variance and standard " "deviation of a data series." msgstr "" #: whatsnew/3.4.rst:564 msgid ":pep:`450` -- Adding A Statistics Module To The Standard Library" msgstr "" #: whatsnew/3.4.rst:565 msgid "PEP written and implemented by Steven D'Aprano" msgstr "" #: whatsnew/3.4.rst:571 msgid "tracemalloc" msgstr "tracemalloc" #: whatsnew/3.4.rst:573 msgid "" "The new :mod:`tracemalloc` module (defined in :pep:`454`) is a debug tool to " "trace memory blocks allocated by Python. It provides the following " "information:" msgstr "" #: whatsnew/3.4.rst:576 msgid "Trace where an object was allocated" msgstr "" #: whatsnew/3.4.rst:577 msgid "" "Statistics on allocated memory blocks per filename and per line number: " "total size, number and average size of allocated memory blocks" msgstr "" #: whatsnew/3.4.rst:579 msgid "Compute the differences between two snapshots to detect memory leaks" msgstr "" #: whatsnew/3.4.rst:583 msgid "" ":pep:`454` -- Add a new tracemalloc module to trace Python memory allocations" msgstr "" #: whatsnew/3.4.rst:584 msgid "PEP written and implemented by Victor Stinner" msgstr "" #: whatsnew/3.4.rst:589 msgid "Improved Modules" msgstr "" #: whatsnew/3.4.rst:593 msgid "abc" msgstr "" #: whatsnew/3.4.rst:595 msgid "" "New function :func:`abc.get_cache_token` can be used to know when to " "invalidate caches that are affected by changes in the object graph. " "(Contributed by Łukasz Langa in :issue:`16832`.)" msgstr "" #: whatsnew/3.4.rst:599 msgid "" "New class :class:`~abc.ABC` has :class:`~abc.ABCMeta` as its meta class. " "Using ``ABC`` as a base class has essentially the same effect as specifying " "``metaclass=abc.ABCMeta``, but is simpler to type and easier to read. " "(Contributed by Bruno Dupuis in :issue:`16049`.)" msgstr "" #: whatsnew/3.4.rst:606 msgid "aifc" msgstr "aifc" #: whatsnew/3.4.rst:608 msgid "" "The :meth:`~aifc.aifc.getparams` method now returns a namedtuple rather than " "a plain tuple. (Contributed by Claudiu Popa in :issue:`17818`.)" msgstr "" #: whatsnew/3.4.rst:611 msgid "" ":func:`aifc.open` now supports the context management protocol: when used in " "a :keyword:`with` block, the :meth:`~aifc.aifc.close` method of the returned " "object will be called automatically at the end of the block. (Contributed " "by Serhiy Storchacha in :issue:`16486`.)" msgstr "" #: whatsnew/3.4.rst:616 msgid "" "The :meth:`~aifc.aifc.writeframesraw` and :meth:`~aifc.aifc.writeframes` " "methods now accept any :term:`bytes-like object`. (Contributed by Serhiy " "Storchaka in :issue:`8311`.)" msgstr "" #: whatsnew/3.4.rst:622 msgid "argparse" msgstr "argparse" #: whatsnew/3.4.rst:624 msgid "" "The :class:`~argparse.FileType` class now accepts *encoding* and *errors* " "arguments, which are passed through to :func:`open`. (Contributed by Lucas " "Maystre in :issue:`11175`.)" msgstr "" #: whatsnew/3.4.rst:630 msgid "audioop" msgstr "audioop" #: whatsnew/3.4.rst:632 msgid "" ":mod:`audioop` now supports 24-bit samples. (Contributed by Serhiy " "Storchaka in :issue:`12866`.)" msgstr "" #: whatsnew/3.4.rst:635 msgid "" "New :func:`~audioop.byteswap` function converts big-endian samples to little-" "endian and vice versa. (Contributed by Serhiy Storchaka in :issue:`19641`.)" msgstr "" #: whatsnew/3.4.rst:639 msgid "" "All :mod:`audioop` functions now accept any :term:`bytes-like object`. " "Strings are not accepted: they didn't work before, now they raise an error " "right away. (Contributed by Serhiy Storchaka in :issue:`16685`.)" msgstr "" #: whatsnew/3.4.rst:645 msgid "base64" msgstr "base64" #: whatsnew/3.4.rst:647 msgid "" "The encoding and decoding functions in :mod:`base64` now accept any :term:" "`bytes-like object` in cases where it previously required a :class:`bytes` " "or :class:`bytearray` instance. (Contributed by Nick Coghlan in :issue:" "`17839`.)" msgstr "" #: whatsnew/3.4.rst:652 msgid "" "New functions :func:`~base64.a85encode`, :func:`~base64.a85decode`, :func:" "`~base64.b85encode`, and :func:`~base64.b85decode` provide the ability to " "encode and decode binary data from and to ``Ascii85`` and the git/mercurial " "``Base85`` formats, respectively. The ``a85`` functions have options that " "can be used to make them compatible with the variants of the ``Ascii85`` " "encoding, including the Adobe variant. (Contributed by Martin Morrison, the " "Mercurial project, Serhiy Storchaka, and Antoine Pitrou in :issue:`17618`.)" msgstr "" #: whatsnew/3.4.rst:662 msgid "collections" msgstr "" #: whatsnew/3.4.rst:664 msgid "" "The :meth:`.ChainMap.new_child` method now accepts an *m* argument " "specifying the child map to add to the chain. This allows an existing " "mapping and/or a custom mapping type to be used for the child. (Contributed " "by Vinay Sajip in :issue:`16613`.)" msgstr "" #: whatsnew/3.4.rst:671 msgid "colorsys" msgstr "colorsys" #: whatsnew/3.4.rst:673 msgid "" "The number of digits in the coefficients for the RGB --- YIQ conversions " "have been expanded so that they match the FCC NTSC versions. The change in " "results should be less than 1% and may better match results found elsewhere. " "(Contributed by Brian Landers and Serhiy Storchaka in :issue:`14323`.)" msgstr "" #: whatsnew/3.4.rst:680 msgid "contextlib" msgstr "contextlib" #: whatsnew/3.4.rst:682 msgid "" "The new :class:`contextlib.suppress` context manager helps to clarify the " "intent of code that deliberately suppresses exceptions from a single " "statement. (Contributed by Raymond Hettinger in :issue:`15806` and Zero " "Piraeus in :issue:`19266`.)" msgstr "" #: whatsnew/3.4.rst:687 msgid "" "The new :func:`contextlib.redirect_stdout` context manager makes it easier " "for utility scripts to handle inflexible APIs that write their output to :" "data:`sys.stdout` and don't provide any options to redirect it. Using the " "context manager, the :data:`sys.stdout` output can be redirected to any " "other stream or, in conjunction with :class:`io.StringIO`, to a string. The " "latter can be especially useful, for example, to capture output from a " "function that was written to implement a command line interface. It is " "recommended only for utility scripts because it affects the global state of :" "data:`sys.stdout`. (Contributed by Raymond Hettinger in :issue:`15805`.)" msgstr "" #: whatsnew/3.4.rst:698 msgid "" "The :mod:`contextlib` documentation has also been updated to include a :ref:" "`discussion ` of the differences " "between single use, reusable and reentrant context managers." msgstr "" #: whatsnew/3.4.rst:704 msgid "dbm" msgstr "dbm" #: whatsnew/3.4.rst:706 msgid "" ":func:`dbm.open` objects now support the context management protocol. When " "used in a :keyword:`with` statement, the ``close`` method of the database " "object will be called automatically at the end of the block. (Contributed " "by Claudiu Popa and Nick Coghlan in :issue:`19282`.)" msgstr "" #: whatsnew/3.4.rst:713 msgid "dis" msgstr "dis" #: whatsnew/3.4.rst:715 msgid "" "Functions :func:`~dis.show_code`, :func:`~dis.dis`, :func:`~dis.distb`, and :" "func:`~dis.disassemble` now accept a keyword-only *file* argument that " "controls where they write their output." msgstr "" #: whatsnew/3.4.rst:719 msgid "" "The :mod:`dis` module is now built around an :class:`~dis.Instruction` class " "that provides object oriented access to the details of each individual " "bytecode operation." msgstr "" #: whatsnew/3.4.rst:723 msgid "" "A new method, :func:`~dis.get_instructions`, provides an iterator that emits " "the Instruction stream for a given piece of Python code. Thus it is now " "possible to write a program that inspects and manipulates a bytecode object " "in ways different from those provided by the :mod:`~dis` module itself. For " "example::" msgstr "" #: whatsnew/3.4.rst:737 msgid "" "The various display tools in the :mod:`dis` module have been rewritten to " "use these new components." msgstr "" #: whatsnew/3.4.rst:740 msgid "" "In addition, a new application-friendly class :class:`~dis.Bytecode` " "provides an object-oriented API for inspecting bytecode in both in human-" "readable form and for iterating over instructions. The :class:`~dis." "Bytecode` constructor takes the same arguments that :func:`~dis." "get_instruction` does (plus an optional *current_offset*), and the resulting " "object can be iterated to produce :class:`~dis.Instruction` objects. But it " "also has a :mod:`~dis.Bytecode.dis` method, equivalent to calling :mod:`~dis." "dis` on the constructor argument, but returned as a multi-line string::" msgstr "" #: whatsnew/3.4.rst:762 msgid "" ":class:`~dis.Bytecode` also has a class method, :meth:`~dis.Bytecode." "from_traceback`, that provides the ability to manipulate a traceback (that " "is, ``print(Bytecode.from_traceback(tb).dis())`` is equivalent to " "``distb(tb)``)." msgstr "" #: whatsnew/3.4.rst:767 msgid "" "(Contributed by Nick Coghlan, Ryan Kelly and Thomas Kluyver in :issue:" "`11816` and Claudiu Popa in :issue:`17916`.)" msgstr "" #: whatsnew/3.4.rst:770 msgid "" "New function :func:`~dis.stack_effect` computes the effect on the Python " "stack of a given opcode and argument, information that is not otherwise " "available. (Contributed by Larry Hastings in :issue:`19722`.)" msgstr "" #: whatsnew/3.4.rst:776 msgid "doctest" msgstr "doctest" #: whatsnew/3.4.rst:778 msgid "" "A new :ref:`option flag `, :data:`~doctest.FAIL_FAST`, " "halts test running as soon as the first failure is detected. (Contributed " "by R. David Murray and Daniel Urban in :issue:`16522`.)" msgstr "" #: whatsnew/3.4.rst:782 msgid "" "The :mod:`doctest` command line interface now uses :mod:`argparse`, and has " "two new options, ``-o`` and ``-f``. ``-o`` allows :ref:`doctest options " "` to be specified on the command line, and ``-f`` is a " "shorthand for ``-o FAIL_FAST`` (to parallel the similar option supported by " "the :mod:`unittest` CLI). (Contributed by R. David Murray in :issue:" "`11390`.)" msgstr "" #: whatsnew/3.4.rst:788 msgid "" ":mod:`doctest` will now find doctests in extension module ``__doc__`` " "strings. (Contributed by Zachary Ware in :issue:`3158`.)" msgstr "" #: whatsnew/3.4.rst:793 msgid "email" msgstr "email" #: whatsnew/3.4.rst:795 msgid "" ":meth:`~email.message.Message.as_string` now accepts a *policy* argument to " "override the default policy of the message when generating a string " "representation of it. This means that ``as_string`` can now be used in more " "circumstances, instead of having to create and use a :mod:`~email.generator` " "in order to pass formatting parameters to its ``flatten`` method. " "(Contributed by R. David Murray in :issue:`18600`.)" msgstr "" #: whatsnew/3.4.rst:802 msgid "" "New method :meth:`~email.message.Message.as_bytes` added to produce a bytes " "representation of the message in a fashion similar to how ``as_string`` " "produces a string representation. It does not accept the *maxheaderlen* " "argument, but does accept the *unixfrom* and *policy* arguments. The :class:" "`~email.message.Message` :meth:`~email.message.Message.__bytes__` method " "calls it, meaning that ``bytes(mymsg)`` will now produce the intuitive " "result: a bytes object containing the fully formatted message. " "(Contributed by R. David Murray in :issue:`18600`.)" msgstr "" #: whatsnew/3.4.rst:811 msgid "" "The :meth:`.Message.set_param` message now accepts a *replace* keyword " "argument. When specified, the associated header will be updated without " "changing its location in the list of headers. For backward compatibility, " "the default is ``False``. (Contributed by R. David Murray in :issue:" "`18891`.)" msgstr "" #: whatsnew/3.4.rst:819 msgid "" "A pair of new subclasses of :class:`~email.message.Message` have been added " "(:class:`.EmailMessage` and :class:`.MIMEPart`), along with a new sub-" "module, :mod:`~email.contentmanager` and a new :mod:`~email.policy` " "attribute :attr:`~email.policy.EmailPolicy.content_manager`. All " "documentation is currently in the new module, which is being added as part " "of email's new :term:`provisional API`. These classes provide a number of " "new methods that make extracting content from and inserting content into " "email messages much easier. For details, see the :mod:`~email." "contentmanager` documentation and the :ref:`email-examples`. These API " "additions complete the bulk of the work that was planned as part of the " "email6 project. The currently provisional API is scheduled to become final " "in Python 3.5 (possibly with a few minor additions in the area of error " "handling). (Contributed by R. David Murray in :issue:`18891`.)" msgstr "" #: whatsnew/3.4.rst:835 msgid "filecmp" msgstr "filecmp" #: whatsnew/3.4.rst:837 msgid "" "A new :func:`~filecmp.clear_cache` function provides the ability to clear " "the :mod:`filecmp` comparison cache, which uses :func:`os.stat` information " "to determine if the file has changed since the last compare. This can be " "used, for example, if the file might have been changed and re-checked in " "less time than the resolution of a particular filesystem's file modification " "time field. (Contributed by Mark Levitt in :issue:`18149`.)" msgstr "" #: whatsnew/3.4.rst:844 msgid "" "New module attribute :data:`~filecmp.DEFAULT_IGNORES` provides the list of " "directories that are used as the default value for the *ignore* parameter of " "the :func:`~filecmp.dircmp` function. (Contributed by Eli Bendersky in :" "issue:`15442`.)" msgstr "" #: whatsnew/3.4.rst:851 msgid "functools" msgstr "" #: whatsnew/3.4.rst:853 msgid "" "The new :func:`~functools.partialmethod` descriptor brings partial argument " "application to descriptors, just as :func:`~functools.partial` provides for " "normal callables. The new descriptor also makes it easier to get arbitrary " "callables (including :func:`~functools.partial` instances) to behave like " "normal instance methods when included in a class definition. (Contributed by " "Alon Horev and Nick Coghlan in :issue:`4331`.)" msgstr "" #: whatsnew/3.4.rst:862 msgid "" "The new :func:`~functools.singledispatch` decorator brings support for " "single-dispatch generic functions to the Python standard library. Where " "object oriented programming focuses on grouping multiple operations on a " "common set of data into a class, a generic function focuses on grouping " "multiple implementations of an operation that allows it to work with " "*different* kinds of data." msgstr "" #: whatsnew/3.4.rst:871 msgid ":pep:`443` -- Single-dispatch generic functions" msgstr "" #: whatsnew/3.4.rst:872 msgid "PEP written and implemented by Łukasz Langa." msgstr "" #: whatsnew/3.4.rst:874 msgid "" ":func:`~functools.total_ordering` now supports a return value of :const:" "`NotImplemented` from the underlying comparison function. (Contributed by " "Katie Miller in :issue:`10042`.)" msgstr "" #: whatsnew/3.4.rst:878 msgid "" "A pure-python version of the :func:`~functools.partial` function is now in " "the stdlib; in CPython it is overridden by the C accelerated version, but it " "is available for other implementations to use. (Contributed by Brian Thorne " "in :issue:`12428`.)" msgstr "" #: whatsnew/3.4.rst:885 msgid "gc" msgstr "" #: whatsnew/3.4.rst:887 msgid "" "New function :func:`~gc.get_stats` returns a list of three per-generation " "dictionaries containing the collections statistics since interpreter " "startup. (Contributed by Antoine Pitrou in :issue:`16351`.)" msgstr "" #: whatsnew/3.4.rst:893 msgid "glob" msgstr "glob" #: whatsnew/3.4.rst:895 msgid "" "A new function :func:`~glob.escape` provides a way to escape special " "characters in a filename so that they do not become part of the globbing " "expansion but are instead matched literally. (Contributed by Serhiy " "Storchaka in :issue:`8402`.)" msgstr "" #: whatsnew/3.4.rst:901 msgid "hashlib" msgstr "" #: whatsnew/3.4.rst:903 msgid "" "A new :func:`hashlib.pbkdf2_hmac` function provides the `PKCS#5 password-" "based key derivation function 2 `_. " "(Contributed by Christian Heimes in :issue:`18582`.)" msgstr "" #: whatsnew/3.4.rst:908 msgid "" "The :attr:`~hashlib.hash.name` attribute of :mod:`hashlib` hash objects is " "now a formally supported interface. It has always existed in CPython's :mod:" "`hashlib` (although it did not return lower case names for all supported " "hashes), but it was not a public interface and so some other Python " "implementations have not previously supported it. (Contributed by Jason R. " "Coombs in :issue:`18532`.)" msgstr "" #: whatsnew/3.4.rst:917 msgid "hmac" msgstr "" #: whatsnew/3.4.rst:919 msgid "" ":mod:`hmac` now accepts ``bytearray`` as well as ``bytes`` for the *key* " "argument to the :func:`~hmac.new` function, and the *msg* parameter to both " "the :func:`~hmac.new` function and the :meth:`~hmac.HMAC.update` method now " "accepts any type supported by the :mod:`hashlib` module. (Contributed by " "Jonas Borgström in :issue:`18240`.)" msgstr "" #: whatsnew/3.4.rst:925 msgid "" "The *digestmod* argument to the :func:`hmac.new` function may now be any " "hash digest name recognized by :mod:`hashlib`. In addition, the current " "behavior in which the value of *digestmod* defaults to ``MD5`` is " "deprecated: in a future version of Python there will be no default value. " "(Contributed by Christian Heimes in :issue:`17276`.)" msgstr "" #: whatsnew/3.4.rst:931 msgid "" "With the addition of :attr:`~hmac.HMAC.block_size` and :attr:`~hmac.HMAC." "name` attributes (and the formal documentation of the :attr:`~hmac.HMAC." "digest_size` attribute), the :mod:`hmac` module now conforms fully to the :" "pep:`247` API. (Contributed by Christian Heimes in :issue:`18775`.)" msgstr "" #: whatsnew/3.4.rst:938 msgid "html" msgstr "" #: whatsnew/3.4.rst:940 msgid "" "New function :func:`~html.unescape` function converts HTML5 character " "references to the corresponding Unicode characters. (Contributed by Ezio " "Melotti in :issue:`2927`.)" msgstr "" #: whatsnew/3.4.rst:944 msgid "" ":class:`~html.parser.HTMLParser` accepts a new keyword argument " "*convert_charrefs* that, when ``True``, automatically converts all character " "references. For backward-compatibility, its value defaults to ``False``, " "but it will change to ``True`` in a future version of Python, so you are " "invited to set it explicitly and update your code to use this new feature. " "(Contributed by Ezio Melotti in :issue:`13633`.)" msgstr "" #: whatsnew/3.4.rst:951 msgid "" "The *strict* argument of :class:`~html.parser.HTMLParser` is now deprecated. " "(Contributed by Ezio Melotti in :issue:`15114`.)" msgstr "" #: whatsnew/3.4.rst:956 msgid "http" msgstr "" #: whatsnew/3.4.rst:958 msgid "" ":meth:`~http.server.BaseHTTPRequestHandler.send_error` now accepts an " "optional additional *explain* parameter which can be used to provide an " "extended error description, overriding the hardcoded default if there is " "one. This extended error description will be formatted using the :attr:" "`~http.server.HTTP.error_message_format` attribute and sent as the body of " "the error response. (Contributed by Karl Cow in :issue:`12921`.)" msgstr "" #: whatsnew/3.4.rst:965 msgid "" "The :mod:`http.server` :ref:`command line interface ` now " "has a ``-b/--bind`` option that causes the server to listen on a specific " "address. (Contributed by Malte Swart in :issue:`17764`.)" msgstr "" #: whatsnew/3.4.rst:971 msgid "idlelib and IDLE" msgstr "" #: whatsnew/3.4.rst:973 msgid "" "Since idlelib implements the IDLE shell and editor and is not intended for " "import by other programs, it gets improvements with every release. See :file:" "`Lib/idlelib/NEWS.txt` for a cumulative list of changes since 3.3.0, as well " "as changes made in future 3.4.x releases. This file is also available from " "the IDLE :menuselection:`Help --> About IDLE` dialog." msgstr "" #: whatsnew/3.4.rst:981 msgid "importlib" msgstr "importlib" #: whatsnew/3.4.rst:983 msgid "" "The :class:`~importlib.abc.InspectLoader` ABC defines a new method, :meth:" "`~importlib.abc.InspectLoader.source_to_code` that accepts source data and a " "path and returns a code object. The default implementation is equivalent to " "``compile(data, path, 'exec', dont_inherit=True)``. (Contributed by Eric " "Snow and Brett Cannon in :issue:`15627`.)" msgstr "" #: whatsnew/3.4.rst:989 msgid "" ":class:`~importlib.abc.InspectLoader` also now has a default implementation " "for the :meth:`~importlib.abc.InspectLoader.get_code` method. However, it " "will normally be desirable to override the default implementation for " "performance reasons. (Contributed by Brett Cannon in :issue:`18072`.)" msgstr "" #: whatsnew/3.4.rst:994 msgid "" "The :func:`~importlib.reload` function has been moved from :mod:`imp` to :" "mod:`importlib` as part of the :mod:`imp` module deprecation. (Contributed " "by Berker Peksag in :issue:`18193`.)" msgstr "" #: whatsnew/3.4.rst:998 msgid "" ":mod:`importlib.util` now has a :data:`~importlib.util.MAGIC_NUMBER` " "attribute providing access to the bytecode version number. This replaces " "the :func:`~imp.get_magic` function in the deprecated :mod:`imp` module. " "(Contributed by Brett Cannon in :issue:`18192`.)" msgstr "" #: whatsnew/3.4.rst:1003 msgid "" "New :mod:`importlib.util` functions :func:`~importlib.util." "cache_from_source` and :func:`~importlib.util.source_from_cache` replace the " "same-named functions in the deprecated :mod:`imp` module. (Contributed by " "Brett Cannon in :issue:`18194`.)" msgstr "" #: whatsnew/3.4.rst:1008 msgid "" "The :mod:`importlib` bootstrap :class:`.NamespaceLoader` now conforms to " "the :class:`.InspectLoader` ABC, which means that ``runpy`` and ``python -" "m`` can now be used with namespace packages. (Contributed by Brett Cannon " "in :issue:`18058`.)" msgstr "" #: whatsnew/3.4.rst:1013 msgid "" ":mod:`importlib.util` has a new function :func:`~importlib.util." "decode_source` that decodes source from bytes using universal newline " "processing. This is useful for implementing :meth:`.InspectLoader." "get_source` methods." msgstr "" #: whatsnew/3.4.rst:1017 msgid "" ":class:`importlib.machinery.ExtensionFileLoader` now has a :meth:`~importlib." "machinery.ExtensionFileLoader.get_filename` method. This was inadvertently " "omitted in the original implementation. (Contributed by Eric Snow in :issue:" "`19152`.)" msgstr "" #: whatsnew/3.4.rst:1024 msgid "inspect" msgstr "" #: whatsnew/3.4.rst:1026 msgid "" "The :mod:`inspect` module now offers a basic :ref:`command line interface " "` to quickly display source code and other information " "for modules, classes and functions. (Contributed by Claudiu Popa and Nick " "Coghlan in :issue:`18626`.)" msgstr "" #: whatsnew/3.4.rst:1031 msgid "" ":func:`~inspect.unwrap` makes it easy to unravel wrapper function chains " "created by :func:`functools.wraps` (and any other API that sets the " "``__wrapped__`` attribute on a wrapper function). (Contributed by Daniel " "Urban, Aaron Iles and Nick Coghlan in :issue:`13266`.)" msgstr "" #: whatsnew/3.4.rst:1036 msgid "" "As part of the implementation of the new :mod:`enum` module, the :mod:" "`inspect` module now has substantially better support for custom ``__dir__`` " "methods and dynamic class attributes provided through metaclasses. " "(Contributed by Ethan Furman in :issue:`18929` and :issue:`19030`.)" msgstr "" #: whatsnew/3.4.rst:1042 msgid "" ":func:`~inspect.getfullargspec` and :func:`~inspect.getargspec` now use the :" "func:`~inspect.signature` API. This allows them to support a much broader " "range of callables, including those with ``__signature__`` attributes, those " "with metadata provided by argument clinic, :func:`functools.partial` objects " "and more. Note that, unlike :func:`~inspect.signature`, these functions " "still ignore ``__wrapped__`` attributes, and report the already bound first " "argument for bound methods, so it is still necessary to update your code to " "use :func:`~inspect.signature` directly if those features are desired. " "(Contributed by Yury Selivanov in :issue:`17481`.)" msgstr "" #: whatsnew/3.4.rst:1053 msgid "" ":func:`~inspect.signature` now supports duck types of CPython functions, " "which adds support for functions compiled with Cython. (Contributed by " "Stefan Behnel and Yury Selivanov in :issue:`17159`.)" msgstr "" #: whatsnew/3.4.rst:1059 msgid "ipaddress" msgstr "" #: whatsnew/3.4.rst:1061 msgid "" ":mod:`ipaddress` was added to the standard library in Python 3.3 as a :term:" "`provisional API`. With the release of Python 3.4, this qualification has " "been removed: :mod:`ipaddress` is now considered a stable API, covered by " "the normal standard library requirements to maintain backwards compatibility." msgstr "" #: whatsnew/3.4.rst:1067 msgid "" "A new :attr:`~ipaddress.IPv4Address.is_global` property is ``True`` if an " "address is globally routeable. (Contributed by Peter Moody in :issue:" "`17400`.)" msgstr "" #: whatsnew/3.4.rst:1073 msgid "logging" msgstr "" #: whatsnew/3.4.rst:1075 msgid "" "The :class:`~logging.handlers.TimedRotatingFileHandler` has a new *atTime* " "parameter that can be used to specify the time of day when rollover should " "happen. (Contributed by Ronald Oussoren in :issue:`9556`.)" msgstr "" #: whatsnew/3.4.rst:1079 msgid "" ":class:`~logging.handlers.SocketHandler` and :class:`~logging.handlers." "DatagramHandler` now support Unix domain sockets (by setting *port* to " "``None``). (Contributed by Vinay Sajip in commit ce46195b56a9.)" msgstr "" #: whatsnew/3.4.rst:1084 msgid "" ":func:`~logging.config.fileConfig` now accepts a :class:`configparser." "RawConfigParser` subclass instance for the *fname* parameter. This " "facilitates using a configuration file when logging configuration is just a " "part of the overall application configuration, or where the application " "modifies the configuration before passing it to :func:`~logging.config." "fileConfig`. (Contributed by Vinay Sajip in :issue:`16110`.)" msgstr "" #: whatsnew/3.4.rst:1092 msgid "" "Logging configuration data received from a socket via the :func:`logging." "config.listen` function can now be validated before being processed by " "supplying a verification function as the argument to the new *verify* " "keyword argument. (Contributed by Vinay Sajip in :issue:`15452`.)" msgstr "" #: whatsnew/3.4.rst:1101 msgid "marshal" msgstr "" #: whatsnew/3.4.rst:1103 msgid "" "The default :mod:`marshal` version has been bumped to 3. The code " "implementing the new version restores the Python2 behavior of recording only " "one copy of interned strings and preserving the interning on " "deserialization, and extends this \"one copy\" ability to any object type " "(including handling recursive references). This reduces both the size of ``." "pyc`` files and the amount of memory a module occupies in memory when it is " "loaded from a ``.pyc`` (or ``.pyo``) file. (Contributed by Kristján Valur " "Jónsson in :issue:`16475`, with additional speedups by Antoine Pitrou in :" "issue:`19219`.)" msgstr "" #: whatsnew/3.4.rst:1114 msgid "mmap" msgstr "" #: whatsnew/3.4.rst:1116 msgid "" "mmap objects are now :ref:`weakly referenceable `. (Contributed " "by Valerie Lambert in :issue:`4885`.)" msgstr "" #: whatsnew/3.4.rst:1121 msgid "multiprocessing" msgstr "multiprocessing" #: whatsnew/3.4.rst:1125 msgid "" "On Unix two new :ref:`start methods `, " "``spawn`` and ``forkserver``, have been added for starting processes using :" "mod:`multiprocessing`. These make the mixing of processes with threads more " "robust, and the ``spawn`` method matches the semantics that multiprocessing " "has always used on Windows. New function :func:`~multiprocessing." "get_all_start_methods` reports all start methods available on the platform, :" "func:`~multiprocessing.get_start_method` reports the current start method, " "and :func:`~multiprocessing.set_start_method` sets the start method. " "(Contributed by Richard Oudkerk in :issue:`8713`.)" msgstr "" #: whatsnew/3.4.rst:1135 msgid "" ":mod:`multiprocessing` also now has the concept of a ``context``, which " "determines how child processes are created. New function :func:" "`~multiprocessing.get_context` returns a context that uses a specified start " "method. It has the same API as the :mod:`multiprocessing` module itself, so " "you can use it to create :class:`~multiprocessing.pool.Pool`\\ s and other " "objects that will operate within that context. This allows a framework and " "an application or different parts of the same application to use " "multiprocessing without interfering with each other. (Contributed by " "Richard Oudkerk in :issue:`18999`.)" msgstr "" #: whatsnew/3.4.rst:1145 msgid "" "Except when using the old *fork* start method, child processes no longer " "inherit unneeded handles/file descriptors from their parents (part of :issue:" "`8713`)." msgstr "" #: whatsnew/3.4.rst:1149 msgid "" ":mod:`multiprocessing` now relies on :mod:`runpy` (which implements the ``-" "m`` switch) to initialise ``__main__`` appropriately in child processes when " "using the ``spawn`` or ``forkserver`` start methods. This resolves some edge " "cases where combining multiprocessing, the ``-m`` command line switch, and " "explicit relative imports could cause obscure failures in child processes. " "(Contributed by Nick Coghlan in :issue:`19946`.)" msgstr "" #: whatsnew/3.4.rst:1158 msgid "operator" msgstr "" #: whatsnew/3.4.rst:1160 msgid "" "New function :func:`~operator.length_hint` provides an implementation of the " "specification for how the :meth:`~object.__length_hint__` special method " "should be used, as part of the :pep:`424` formal specification of this " "language feature. (Contributed by Armin Ronacher in :issue:`16148`.)" msgstr "" #: whatsnew/3.4.rst:1165 msgid "" "There is now a pure-python version of the :mod:`operator` module available " "for reference and for use by alternate implementations of Python. " "(Contributed by Zachary Ware in :issue:`16694`.)" msgstr "" #: whatsnew/3.4.rst:1171 msgid "os" msgstr "" #: whatsnew/3.4.rst:1173 msgid "" "There are new functions to get and set the :ref:`inheritable flag " "` of a file descriptor (:func:`os.get_inheritable`, :func:" "`os.set_inheritable`) or a Windows handle (:func:`os." "get_handle_inheritable`, :func:`os.set_handle_inheritable`)." msgstr "" #: whatsnew/3.4.rst:1178 msgid "" "New function :func:`~os.cpu_count` reports the number of CPUs available on " "the platform on which Python is running (or ``None`` if the count can't be " "determined). The :func:`multiprocessing.cpu_count` function is now " "implemented in terms of this function). (Contributed by Trent Nelson, " "Yogesh Chaudhari, Victor Stinner, and Charles-François Natali in :issue:" "`17914`.)" msgstr "" #: whatsnew/3.4.rst:1184 msgid "" ":func:`os.path.samestat` is now available on the Windows platform (and the :" "func:`os.path.samefile` implementation is now shared between Unix and " "Windows). (Contributed by Brian Curtin in :issue:`11939`.)" msgstr "" #: whatsnew/3.4.rst:1188 msgid "" ":func:`os.path.ismount` now recognizes volumes mounted below a drive root on " "Windows. (Contributed by Tim Golden in :issue:`9035`.)" msgstr "" #: whatsnew/3.4.rst:1191 msgid "" ":func:`os.open` supports two new flags on platforms that provide them, :data:" "`~os.O_PATH` (un-opened file descriptor), and :data:`~os.O_TMPFILE` (unnamed " "temporary file; as of 3.4.0 release available only on Linux systems with a " "kernel version of 3.11 or newer that have uapi headers). (Contributed by " "Christian Heimes in :issue:`18673` and Benjamin Peterson, respectively.)" msgstr "" #: whatsnew/3.4.rst:1199 msgid "pdb" msgstr "" #: whatsnew/3.4.rst:1201 msgid "" ":mod:`pdb` has been enhanced to handle generators, :keyword:`yield`, and " "``yield from`` in a more useful fashion. This is especially helpful when " "debugging :mod:`asyncio` based programs. (Contributed by Andrew Svetlov and " "Xavier de Gaye in :issue:`16596`.)" msgstr "" #: whatsnew/3.4.rst:1206 msgid "" "The ``print`` command has been removed from :mod:`pdb`, restoring access to " "the Python :func:`print` function from the pdb command line. Python2's " "``pdb`` did not have a ``print`` command; instead, entering ``print`` " "executed the ``print`` statement. In Python3 ``print`` was mistakenly made " "an alias for the pdb :pdbcmd:`p` command. ``p``, however, prints the " "``repr`` of its argument, not the ``str`` like the Python2 ``print`` command " "did. Worse, the Python3 ``pdb print`` command shadowed the Python3 " "``print`` function, making it inaccessible at the ``pdb`` prompt. " "(Contributed by Connor Osborn in :issue:`18764`.)" msgstr "" #: whatsnew/3.4.rst:1220 msgid "pickle" msgstr "" #: whatsnew/3.4.rst:1222 msgid "" ":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 strings and containers, and classes whose :meth:" "`__new__` method takes keyword-only arguments. It also provides some " "efficiency improvements." msgstr "" #: whatsnew/3.4.rst:1230 msgid ":pep:`3154` -- Pickle protocol 4" msgstr "" #: whatsnew/3.4.rst:1231 msgid "PEP written by Antoine Pitrou and implemented by Alexandre Vassalotti." msgstr "" #: whatsnew/3.4.rst:1235 msgid "plistlib" msgstr "" #: whatsnew/3.4.rst:1237 msgid "" ":mod:`plistlib` now has an API that is similar to the standard pattern for " "stdlib serialization protocols, with new :func:`~plistlib.load`, :func:" "`~plistlib.dump`, :func:`~plistlib.loads`, and :func:`~plistlib.dumps` " "functions. (The older API is now deprecated.) In addition to the already " "supported XML plist format (:data:`~plistlib.FMT_XML`), it also now supports " "the binary plist format (:data:`~plistlib.FMT_BINARY`). (Contributed by " "Ronald Oussoren and others in :issue:`14455`.)" msgstr "" #: whatsnew/3.4.rst:1247 msgid "poplib" msgstr "" #: whatsnew/3.4.rst:1249 msgid "" "Two new methods have been added to :mod:`poplib`: :meth:`~poplib.POP3.capa`, " "which returns the list of capabilities advertised by the POP server, and :" "meth:`~poplib.POP3.stls`, which switches a clear-text POP3 session into an " "encrypted POP3 session if the POP server supports it. (Contributed by " "Lorenzo Catucci in :issue:`4473`.)" msgstr "" #: whatsnew/3.4.rst:1257 msgid "pprint" msgstr "" #: whatsnew/3.4.rst:1259 msgid "" "The :mod:`pprint` module's :class:`~pprint.PrettyPrinter` class and its :" "func:`~pprint.pformat`, and :func:`~pprint.pprint` functions have a new " "option, *compact*, that controls how the output is formatted. Currently " "setting *compact* to ``True`` means that sequences will be printed with as " "many sequence elements as will fit within *width* on each (indented) line. " "(Contributed by Serhiy Storchaka in :issue:`19132`.)" msgstr "" #: whatsnew/3.4.rst:1266 msgid "" "Long strings are now wrapped using Python's normal line continuation " "syntax. (Contributed by Antoine Pitrou in :issue:`17150`.)" msgstr "" #: whatsnew/3.4.rst:1271 msgid "pty" msgstr "" #: whatsnew/3.4.rst:1273 msgid "" ":func:`pty.spawn` now returns the status value from :func:`os.waitpid` on " "the child process, instead of ``None``. (Contributed by Gregory P. Smith.)" msgstr "" #: whatsnew/3.4.rst:1278 msgid "pydoc" msgstr "" #: whatsnew/3.4.rst:1280 msgid "" "The :mod:`pydoc` module is now based directly on the :func:`inspect." "signature` introspection API, allowing it to provide signature information " "for a wider variety of callable objects. This change also means that " "``__wrapped__`` attributes are now taken into account when displaying help " "information. (Contributed by Larry Hastings in :issue:`19674`.)" msgstr "" #: whatsnew/3.4.rst:1286 msgid "" "The :mod:`pydoc` module no longer displays the ``self`` parameter for " "already bound methods. Instead, it aims to always display the exact current " "signature of the supplied callable. (Contributed by Larry Hastings in :" "issue:`20710`.)" msgstr "" #: whatsnew/3.4.rst:1291 msgid "" "In addition to the changes that have been made to :mod:`pydoc` directly, its " "handling of custom ``__dir__`` methods and various descriptor behaviours has " "also been improved substantially by the underlying changes in the :mod:" "`inspect` module." msgstr "" #: whatsnew/3.4.rst:1296 msgid "" "As the :func:`help` builtin is based on :mod:`pydoc`, the above changes also " "affect the behaviour of :func:`help`." msgstr "" #: whatsnew/3.4.rst:1301 msgid "re" msgstr "" #: whatsnew/3.4.rst:1303 msgid "" "New :func:`~re.fullmatch` function and :meth:`.regex.fullmatch` method " "anchor the pattern at both ends of the string to match. This provides a way " "to be explicit about the goal of the match, which avoids a class of subtle " "bugs where ``$`` characters get lost during code changes or the addition of " "alternatives to an existing regular expression. (Contributed by Matthew " "Barnett in :issue:`16203`.)" msgstr "" #: whatsnew/3.4.rst:1310 msgid "" "The repr of :ref:`regex objects ` now includes the pattern and " "the flags; the repr of :ref:`match objects ` now includes the " "start, end, and the part of the string that matched. (Contributed by Hugo " "Lopes Tavares and Serhiy Storchaka in :issue:`13592` and :issue:`17087`.)" msgstr "" #: whatsnew/3.4.rst:1318 msgid "resource" msgstr "" #: whatsnew/3.4.rst:1320 msgid "" "New :func:`~resource.prlimit` function, available on Linux platforms with a " "kernel version of 2.6.36 or later and glibc of 2.13 or later, provides the " "ability to query or set the resource limits for processes other than the one " "making the call. (Contributed by Christian Heimes in :issue:`16595`.)" msgstr "" #: whatsnew/3.4.rst:1325 msgid "" "On Linux kernel version 2.6.36 or later, there are also some new Linux " "specific constants: :attr:`~resource.RLIMIT_MSGQUEUE`, :attr:`~resource." "RLIMIT_NICE`, :attr:`~resource.RLIMIT_RTPRIO`, :attr:`~resource." "RLIMIT_RTTIME`, and :attr:`~resource.RLIMIT_SIGPENDING`. (Contributed by " "Christian Heimes in :issue:`19324`.)" msgstr "" #: whatsnew/3.4.rst:1331 msgid "" "On FreeBSD version 9 and later, there some new FreeBSD specific constants: :" "attr:`~resource.RLIMIT_SBSIZE`, :attr:`~resource.RLIMIT_SWAP`, and :attr:" "`~resource.RLIMIT_NPTS`. (Contributed by Claudiu Popa in :issue:`19343`.)" msgstr "" #: whatsnew/3.4.rst:1338 msgid "select" msgstr "" #: whatsnew/3.4.rst:1340 msgid "" ":class:`~select.epoll` objects now support the context management protocol. " "When used in a :keyword:`with` statement, the :meth:`~select.epoll.close` " "method will be called automatically at the end of the block. (Contributed " "by Serhiy Storchaka in :issue:`16488`.)" msgstr "" #: whatsnew/3.4.rst:1345 msgid "" ":class:`~select.devpoll` objects now have :meth:`~select.devpoll.fileno` " "and :meth:`~select.devpoll.close` methods, as well as a new attribute :attr:" "`~select.devpoll.closed`. (Contributed by Victor Stinner in :issue:`18794`.)" msgstr "" #: whatsnew/3.4.rst:1352 msgid "shelve" msgstr "" #: whatsnew/3.4.rst:1354 msgid "" ":class:`~shelve.Shelf` instances may now be used in :keyword:`with` " "statements, and will be automatically closed at the end of the :keyword:`!" "with` block. (Contributed by Filip Gruszczyński in :issue:`13896`.)" msgstr "" #: whatsnew/3.4.rst:1360 msgid "shutil" msgstr "" #: whatsnew/3.4.rst:1362 msgid "" ":func:`~shutil.copyfile` now raises a specific :exc:`~shutil.Error` " "subclass, :exc:`~shutil.SameFileError`, when the source and destination are " "the same file, which allows an application to take appropriate action on " "this specific error. (Contributed by Atsuo Ishimoto and Hynek Schlawack in :" "issue:`1492704`.)" msgstr "" #: whatsnew/3.4.rst:1370 msgid "smtpd" msgstr "smtpd" #: whatsnew/3.4.rst:1372 msgid "" "The :class:`~smtpd.SMTPServer` and :class:`~smtpd.SMTPChannel` classes now " "accept a *map* keyword argument which, if specified, is passed in to :class:" "`asynchat.async_chat` as its *map* argument. This allows an application to " "avoid affecting the global socket map. (Contributed by Vinay Sajip in :" "issue:`11959`.)" msgstr "" #: whatsnew/3.4.rst:1380 msgid "smtplib" msgstr "" #: whatsnew/3.4.rst:1382 msgid "" ":exc:`~smtplib.SMTPException` is now a subclass of :exc:`OSError`, which " "allows both socket level errors and SMTP protocol level errors to be caught " "in one try/except statement by code that only cares whether or not an error " "occurred. (Contributed by Ned Jackson Lovely in :issue:`2118`.)" msgstr "" #: whatsnew/3.4.rst:1389 msgid "socket" msgstr "" #: whatsnew/3.4.rst:1391 msgid "" "The socket module now supports the :data:`~socket.CAN_BCM` protocol on " "platforms that support it. (Contributed by Brian Thorne in :issue:`15359`.)" msgstr "" #: whatsnew/3.4.rst:1394 msgid "" "Socket objects have new methods to get or set their :ref:`inheritable flag " "`, :meth:`~socket.socket.get_inheritable` and :meth:`~socket." "socket.set_inheritable`." msgstr "" #: whatsnew/3.4.rst:1398 msgid "" "The ``socket.AF_*`` and ``socket.SOCK_*`` constants are now enumeration " "values using the new :mod:`enum` module. This allows meaningful names to be " "printed during debugging, instead of integer \"magic numbers\"." msgstr "" #: whatsnew/3.4.rst:1402 msgid "The :data:`~socket.AF_LINK` constant is now available on BSD and OSX." msgstr "" #: whatsnew/3.4.rst:1404 msgid "" ":func:`~socket.inet_pton` and :func:`~socket.inet_ntop` are now supported on " "Windows. (Contributed by Atsuo Ishimoto in :issue:`7171`.)" msgstr "" #: whatsnew/3.4.rst:1409 msgid "sqlite3" msgstr "" #: whatsnew/3.4.rst:1411 msgid "" "A new boolean parameter to the :func:`~sqlite3.connect` function, *uri*, can " "be used to indicate that the *database* parameter is a ``uri`` (see the " "`SQLite URI documentation `_). " "(Contributed by poq in :issue:`13773`.)" msgstr "" #: whatsnew/3.4.rst:1418 msgid "ssl" msgstr "" #: whatsnew/3.4.rst:1422 msgid "" ":data:`~ssl.PROTOCOL_TLSv1_1` and :data:`~ssl.PROTOCOL_TLSv1_2` (TLSv1.1 and " "TLSv1.2 support) have been added; support for these protocols is only " "available if Python is linked with OpenSSL 1.0.1 or later. (Contributed by " "Michele Orrù and Antoine Pitrou in :issue:`16692`.)" msgstr "" #: whatsnew/3.4.rst:1429 msgid "" "New function :func:`~ssl.create_default_context` provides a standard way to " "obtain an :class:`~ssl.SSLContext` whose settings are intended to be a " "reasonable balance between compatibility and security. These settings are " "more stringent than the defaults provided by the :class:`~ssl.SSLContext` " "constructor, and may be adjusted in the future, without prior deprecation, " "if best-practice security requirements change. The new recommended best " "practice for using stdlib libraries that support SSL is to use :func:`~ssl." "create_default_context` to obtain an :class:`~ssl.SSLContext` object, modify " "it if needed, and then pass it as the *context* argument of the appropriate " "stdlib API. (Contributed by Christian Heimes in :issue:`19689`.)" msgstr "" #: whatsnew/3.4.rst:1441 msgid "" ":class:`~ssl.SSLContext` method :meth:`~ssl.SSLContext." "load_verify_locations` accepts a new optional argument *cadata*, which can " "be used to provide PEM or DER encoded certificates directly via strings or " "bytes, respectively. (Contributed by Christian Heimes in :issue:`18138`.)" msgstr "" #: whatsnew/3.4.rst:1446 msgid "" "New function :func:`~ssl.get_default_verify_paths` returns a named tuple of " "the paths and environment variables that the :meth:`~ssl.SSLContext." "set_default_verify_paths` method uses to set OpenSSL's default ``cafile`` " "and ``capath``. This can be an aid in debugging default verification " "issues. (Contributed by Christian Heimes in :issue:`18143`.)" msgstr "" #: whatsnew/3.4.rst:1453 msgid "" ":class:`~ssl.SSLContext` has a new method, :meth:`~ssl.SSLContext." "cert_store_stats`, that reports the number of loaded ``X.509`` certs, " "``X.509 CA`` certs, and certificate revocation lists (``crl``\\ s), as well " "as a :meth:`~ssl.SSLContext.get_ca_certs` method that returns a list of the " "loaded ``CA`` certificates. (Contributed by Christian Heimes in :issue:" "`18147`.)" msgstr "" #: whatsnew/3.4.rst:1460 msgid "" "If OpenSSL 0.9.8 or later is available, :class:`~ssl.SSLContext` has a new " "attribute :attr:`~ssl.SSLContext.verify_flags` that can be used to control " "the certificate verification process by setting it to some combination of " "the new constants :data:`~ssl.VERIFY_DEFAULT`, :data:`~ssl." "VERIFY_CRL_CHECK_LEAF`, :data:`~ssl.VERIFY_CRL_CHECK_CHAIN`, or :data:`~ssl." "VERIFY_X509_STRICT`. OpenSSL does not do any CRL verification by default. " "(Contributed by Christien Heimes in :issue:`8813`.)" msgstr "" #: whatsnew/3.4.rst:1468 msgid "" "New :class:`~ssl.SSLContext` method :meth:`~ssl.SSLContext." "load_default_certs` loads a set of default \"certificate authority\" (CA) " "certificates from default locations, which vary according to the platform. " "It can be used to load both TLS web server authentication certificates " "(``purpose=``:data:`~ssl.Purpose.SERVER_AUTH`) for a client to use to verify " "a server, and certificates for a server to use in verifying client " "certificates (``purpose=``:data:`~ssl.Purpose.CLIENT_AUTH`). (Contributed " "by Christian Heimes in :issue:`19292`.)" msgstr "" #: whatsnew/3.4.rst:1479 msgid "" "Two new windows-only functions, :func:`~ssl.enum_certificates` and :func:" "`~ssl.enum_crls` provide the ability to retrieve certificates, certificate " "information, and CRLs from the Windows cert store. (Contributed by " "Christian Heimes in :issue:`17134`.)" msgstr "" #: whatsnew/3.4.rst:1486 msgid "" "Support for server-side SNI (Server Name Indication) using the new :meth:" "`ssl.SSLContext.set_servername_callback` method. (Contributed by Daniel " "Black in :issue:`8109`.)" msgstr "" #: whatsnew/3.4.rst:1490 msgid "" "The dictionary returned by :meth:`.SSLSocket.getpeercert` contains " "additional ``X509v3`` extension items: ``crlDistributionPoints``, " "``calIssuers``, and ``OCSP`` URIs. (Contributed by Christian Heimes in :" "issue:`18379`.)" msgstr "" #: whatsnew/3.4.rst:1496 msgid "stat" msgstr "stat" #: whatsnew/3.4.rst:1498 msgid "" "The :mod:`stat` module is now backed by a C implementation in :mod:`_stat`. " "A C implementation is required as most of the values aren't standardized and " "are platform-dependent. (Contributed by Christian Heimes in :issue:`11016`.)" msgstr "" #: whatsnew/3.4.rst:1502 msgid "" "The module supports new :mod:`~stat.ST_MODE` flags, :mod:`~stat.S_IFDOOR`, :" "attr:`~stat.S_IFPORT`, and :attr:`~stat.S_IFWHT`. (Contributed by Christian " "Hiemes in :issue:`11016`.)" msgstr "" #: whatsnew/3.4.rst:1508 msgid "struct" msgstr "struct" #: whatsnew/3.4.rst:1510 msgid "" "New function :mod:`~struct.iter_unpack` and a new :meth:`struct.Struct." "iter_unpack` method on compiled formats provide streamed unpacking of a " "buffer containing repeated instances of a given format of data. (Contributed " "by Antoine Pitrou in :issue:`17804`.)" msgstr "" #: whatsnew/3.4.rst:1517 msgid "subprocess" msgstr "subprocess" #: whatsnew/3.4.rst:1519 msgid "" ":func:`~subprocess.check_output` now accepts an *input* argument that can be " "used to provide the contents of ``stdin`` for the command that is run. " "(Contributed by Zack Weinberg in :issue:`16624`.)" msgstr "" #: whatsnew/3.4.rst:1523 msgid "" ":func:`~subprocess.getstatus` and :func:`~subprocess.getstatusoutput` now " "work on Windows. This change was actually inadvertently made in 3.3.4. " "(Contributed by Tim Golden in :issue:`10197`.)" msgstr "" #: whatsnew/3.4.rst:1529 msgid "sunau" msgstr "" #: whatsnew/3.4.rst:1531 msgid "" "The :meth:`~sunau.getparams` method now returns a namedtuple rather than a " "plain tuple. (Contributed by Claudiu Popa in :issue:`18901`.)" msgstr "" #: whatsnew/3.4.rst:1534 msgid "" ":meth:`sunau.open` now supports the context management protocol: when used " "in a :keyword:`with` block, the ``close`` method of the returned object will " "be called automatically at the end of the block. (Contributed by Serhiy " "Storchaka in :issue:`18878`.)" msgstr "" #: whatsnew/3.4.rst:1539 msgid "" ":meth:`.AU_write.setsampwidth` now supports 24 bit samples, thus adding " "support for writing 24 sample using the module. (Contributed by Serhiy " "Storchaka in :issue:`19261`.)" msgstr "" #: whatsnew/3.4.rst:1543 msgid "" "The :meth:`~sunau.AU_write.writeframesraw` and :meth:`~sunau.AU_write." "writeframes` methods now accept any :term:`bytes-like object`. (Contributed " "by Serhiy Storchaka in :issue:`8311`.)" msgstr "" #: whatsnew/3.4.rst:1549 msgid "sys" msgstr "sys" #: whatsnew/3.4.rst:1551 msgid "" "New function :func:`sys.getallocatedblocks` returns the current number of " "blocks allocated by the interpreter. (In CPython with the default ``--with-" "pymalloc`` setting, this is allocations made through the :c:func:" "`PyObject_Malloc` API.) This can be useful for tracking memory leaks, " "especially if automated via a test suite. (Contributed by Antoine Pitrou " "in :issue:`13390`.)" msgstr "" #: whatsnew/3.4.rst:1558 msgid "" "When the Python interpreter starts in :ref:`interactive mode `, it checks for an :data:`~sys.__interactivehook__` attribute " "on the :mod:`sys` module. If the attribute exists, its value is called with " "no arguments just before interactive mode is started. The check is made " "after the :envvar:`PYTHONSTARTUP` file is read, so it can be set there. " "The :mod:`site` module :ref:`sets it ` to a function " "that enables tab completion and history saving (in :file:`~/.python-" "history`) if the platform supports :mod:`readline`. If you do not want this " "(new) behavior, you can override it in :envvar:`PYTHONSTARTUP`, :mod:" "`sitecustomize`, or :mod:`usercustomize` by deleting this attribute from :" "mod:`sys` (or setting it to some other callable). (Contributed by Éric " "Araujo and Antoine Pitrou in :issue:`5845`.)" msgstr "" #: whatsnew/3.4.rst:1573 msgid "tarfile" msgstr "" #: whatsnew/3.4.rst:1575 msgid "" "The :mod:`tarfile` module now supports a simple :ref:`tarfile-commandline` " "when called as a script directly or via ``-m``. This can be used to create " "and extract tarfile archives. (Contributed by Berker Peksag in :issue:" "`13477`.)" msgstr "" #: whatsnew/3.4.rst:1581 msgid "textwrap" msgstr "textwrap" #: whatsnew/3.4.rst:1583 msgid "" "The :class:`~textwrap.TextWrapper` class has two new attributes/constructor " "arguments: :attr:`~textwrap.TextWrapper.max_lines`, which limits the number " "of lines in the output, and :attr:`~textwrap.TextWrapper.placeholder`, which " "is a string that will appear at the end of the output if it has been " "truncated because of *max_lines*. Building on these capabilities, a new " "convenience function :func:`~textwrap.shorten` collapses all of the " "whitespace in the input to single spaces and produces a single line of a " "given *width* that ends with the *placeholder* (by default, ``[...]``). " "(Contributed by Antoine Pitrou and Serhiy Storchaka in :issue:`18585` and :" "issue:`18725`.)" msgstr "" #: whatsnew/3.4.rst:1595 msgid "threading" msgstr "threading" #: whatsnew/3.4.rst:1597 msgid "" "The :class:`~threading.Thread` object representing the main thread can be " "obtained from the new :func:`~threading.main_thread` function. In normal " "conditions this will be the thread from which the Python interpreter was " "started. (Contributed by Andrew Svetlov in :issue:`18882`.)" msgstr "" #: whatsnew/3.4.rst:1604 msgid "traceback" msgstr "traceback" #: whatsnew/3.4.rst:1606 msgid "" "A new :func:`traceback.clear_frames` function takes a traceback object and " "clears the local variables in all of the frames it references, reducing the " "amount of memory consumed. (Contributed by Andrew Kuchling in :issue:" "`1565525`.)" msgstr "" #: whatsnew/3.4.rst:1613 msgid "types" msgstr "" #: whatsnew/3.4.rst:1615 msgid "" "A new :func:`~types.DynamicClassAttribute` descriptor provides a way to " "define an attribute that acts normally when looked up through an instance " "object, but which is routed to the *class* ``__getattr__`` when looked up " "through the class. This allows one to have properties active on a class, " "and have virtual attributes on the class with the same name (see :mod:`Enum` " "for an example). (Contributed by Ethan Furman in :issue:`19030`.)" msgstr "" #: whatsnew/3.4.rst:1624 msgid "urllib" msgstr "urllib" #: whatsnew/3.4.rst:1626 msgid "" ":mod:`urllib.request` now supports ``data:`` URLs via the :class:`~urllib." "request.DataHandler` class. (Contributed by Mathias Panzenböck in :issue:" "`16423`.)" msgstr "" #: whatsnew/3.4.rst:1630 msgid "" "The http method that will be used by a :class:`~urllib.request.Request` " "class can now be specified by setting a :class:`~urllib.request.Request." "method` class attribute on the subclass. (Contributed by Jason R Coombs in :" "issue:`18978`.)" msgstr "" #: whatsnew/3.4.rst:1635 msgid "" ":class:`~urllib.request.Request` objects are now reusable: if the :attr:" "`~urllib.request.Request.full_url` or :attr:`~urllib.request.Request.data` " "attributes are modified, all relevant internal properties are updated. This " "means, for example, that it is now possible to use the same :class:`~urllib." "request.Request` object in more than one :meth:`.OpenerDirector.open` call " "with different *data* arguments, or to modify a :class:`~urllib.request." "Request`\\ 's ``url`` rather than recomputing it from scratch. There is " "also a new :meth:`~urllib.request.Request.remove_header` method that can be " "used to remove headers from a :class:`~urllib.request.Request`. " "(Contributed by Alexey Kachayev in :issue:`16464`, Daniel Wozniak in :issue:" "`17485`, and Damien Brecht and Senthil Kumaran in :issue:`17272`.)" msgstr "" #: whatsnew/3.4.rst:1648 msgid "" ":class:`~urllib.error.HTTPError` objects now have a :attr:`~urllib.error." "HTTPError.headers` attribute that provides access to the HTTP response " "headers associated with the error. (Contributed by Berker Peksag in :issue:" "`15701`.)" msgstr "" #: whatsnew/3.4.rst:1655 msgid "unittest" msgstr "unittest" #: whatsnew/3.4.rst:1657 msgid "" "The :class:`~unittest.TestCase` class has a new method, :meth:`~unittest." "TestCase.subTest`, that produces a context manager whose :keyword:`with` " "block becomes a \"sub-test\". This context manager allows a test method to " "dynamically generate subtests by, say, calling the ``subTest`` context " "manager inside a loop. A single test method can thereby produce an " "indefinite number of separately identified and separately counted tests, all " "of which will run even if one or more of them fail. For example::" msgstr "" #: whatsnew/3.4.rst:1671 msgid "" "will result in six subtests, each identified in the unittest verbose output " "with a label consisting of the variable name ``i`` and a particular value " "for that variable (``i=0``, ``i=1``, etc). See :ref:`subtests` for the full " "version of this example. (Contributed by Antoine Pitrou in :issue:`16997`.)" msgstr "" #: whatsnew/3.4.rst:1676 msgid "" ":func:`unittest.main` now accepts an iterable of test names for " "*defaultTest*, where previously it only accepted a single test name as a " "string. (Contributed by Jyrki Pulliainen in :issue:`15132`.)" msgstr "" #: whatsnew/3.4.rst:1680 msgid "" "If :class:`~unittest.SkipTest` is raised during test discovery (that is, at " "the module level in the test file), it is now reported as a skip instead of " "an error. (Contributed by Zach Ware in :issue:`16935`.)" msgstr "" #: whatsnew/3.4.rst:1684 msgid "" ":meth:`~unittest.TestLoader.discover` now sorts the discovered files to " "provide consistent test ordering. (Contributed by Martin Melin and Jeff " "Ramnani in :issue:`16709`.)" msgstr "" #: whatsnew/3.4.rst:1688 msgid "" ":class:`~unittest.TestSuite` now drops references to tests as soon as the " "test has been run, if the test is successful. On Python interpreters that " "do garbage collection, this allows the tests to be garbage collected if " "nothing else is holding a reference to the test. It is possible to override " "this behavior by creating a :class:`~unittest.TestSuite` subclass that " "defines a custom ``_removeTestAtIndex`` method. (Contributed by Tom " "Wardill, Matt McClure, and Andrew Svetlov in :issue:`11798`.)" msgstr "" #: whatsnew/3.4.rst:1696 msgid "" "A new test assertion context-manager, :meth:`~unittest.TestCase.assertLogs`, " "will ensure that a given block of code emits a log message using the :mod:" "`logging` module. By default the message can come from any logger and have " "a priority of ``INFO`` or higher, but both the logger name and an " "alternative minimum logging level may be specified. The object returned by " "the context manager can be queried for the :class:`~logging.LogRecord`\\ s " "and/or formatted messages that were logged. (Contributed by Antoine Pitrou " "in :issue:`18937`.)" msgstr "" #: whatsnew/3.4.rst:1705 msgid "" "Test discovery now works with namespace packages (Contributed by Claudiu " "Popa in :issue:`17457`.)" msgstr "" #: whatsnew/3.4.rst:1708 msgid "" ":mod:`unittest.mock` objects now inspect their specification signatures when " "matching calls, which means an argument can now be matched by either " "position or name, instead of only by position. (Contributed by Antoine " "Pitrou in :issue:`17015`.)" msgstr "" #: whatsnew/3.4.rst:1713 msgid "" ":func:`~mock.mock_open` objects now have ``readline`` and ``readlines`` " "methods. (Contributed by Toshio Kuratomi in :issue:`17467`.)" msgstr "" #: whatsnew/3.4.rst:1718 msgid "venv" msgstr "venv" #: whatsnew/3.4.rst:1720 msgid "" ":mod:`venv` now includes activation scripts for the ``csh`` and ``fish`` " "shells. (Contributed by Andrew Svetlov in :issue:`15417`.)" msgstr "" #: whatsnew/3.4.rst:1723 msgid "" ":class:`~venv.EnvBuilder` and the :func:`~venv.create` convenience function " "take a new keyword argument *with_pip*, which defaults to ``False``, that " "controls whether or not :class:`~venv.EnvBuilder` ensures that ``pip`` is " "installed in the virtual environment. (Contributed by Nick Coghlan in :" "issue:`19552` as part of the :pep:`453` implementation.)" msgstr "" #: whatsnew/3.4.rst:1731 msgid "wave" msgstr "wave" #: whatsnew/3.4.rst:1733 msgid "" "The :meth:`~wave.getparams` method now returns a namedtuple rather than a " "plain tuple. (Contributed by Claudiu Popa in :issue:`17487`.)" msgstr "" #: whatsnew/3.4.rst:1736 msgid "" ":meth:`wave.open` now supports the context management protocol. " "(Contributed by Claudiu Popa in :issue:`17616`.)" msgstr "" #: whatsnew/3.4.rst:1739 msgid "" ":mod:`wave` can now :ref:`write output to unseekable files `. (Contributed by David Jones, Guilherme Polo, and Serhiy " "Storchaka in :issue:`5202`.)" msgstr "" #: whatsnew/3.4.rst:1743 msgid "" "The :meth:`~wave.Wave_write.writeframesraw` and :meth:`~wave.Wave_write." "writeframes` methods now accept any :term:`bytes-like object`. (Contributed " "by Serhiy Storchaka in :issue:`8311`.)" msgstr "" #: whatsnew/3.4.rst:1749 msgid "weakref" msgstr "weakref" #: whatsnew/3.4.rst:1751 msgid "" "New :class:`~weakref.WeakMethod` class simulates weak references to bound " "methods. (Contributed by Antoine Pitrou in :issue:`14631`.)" msgstr "" #: whatsnew/3.4.rst:1754 msgid "" "New :class:`~weakref.finalize` class makes it possible to register a " "callback to be invoked when an object is garbage collected, without needing " "to carefully manage the lifecycle of the weak reference itself. " "(Contributed by Richard Oudkerk in :issue:`15528`.)" msgstr "" #: whatsnew/3.4.rst:1759 msgid "" "The callback, if any, associated with a :class:`~weakref.ref` is now exposed " "via the :attr:`~weakref.ref.__callback__` attribute. (Contributed by Mark " "Dickinson in :issue:`17643`.)" msgstr "" #: whatsnew/3.4.rst:1765 msgid "xml.etree" msgstr "xml.etree" #: whatsnew/3.4.rst:1767 msgid "" "A new parser, :class:`~xml.etree.ElementTree.XMLPullParser`, allows a non-" "blocking applications to parse XML documents. An example can be seen at :" "ref:`elementtree-pull-parsing`. (Contributed by Antoine Pitrou in :issue:" "`17741`.)" msgstr "" #: whatsnew/3.4.rst:1772 msgid "" "The :mod:`xml.etree.ElementTree` :func:`~xml.etree.ElementTree.tostring` " "and :func:`~xml.etree.ElementTree.tostringlist` functions, and the :class:" "`~xml.etree.ElementTree.ElementTree` :meth:`~xml.etree.ElementTree." "ElementTree.write` method, now have a *short_empty_elements* :ref:`keyword-" "only parameter ` providing control over whether " "elements with no content are written in abbreviated (````) or " "expanded (````) form. (Contributed by Ariel Poliak and Serhiy " "Storchaka in :issue:`14377`.)" msgstr "" #: whatsnew/3.4.rst:1783 msgid "zipfile" msgstr "zipfile" #: whatsnew/3.4.rst:1785 msgid "" "The :meth:`~zipfile.PyZipFile.writepy` method of the :class:`~zipfile." "PyZipFile` class has a new *filterfunc* option that can be used to control " "which directories and files are added to the archive. For example, this " "could be used to exclude test files from the archive. (Contributed by " "Christian Tismer in :issue:`19274`.)" msgstr "" #: whatsnew/3.4.rst:1791 msgid "" "The *allowZip64* parameter to :class:`~zipfile.ZipFile` and :class:`~zipfile." "PyZipfile` is now ``True`` by default. (Contributed by William Mallard in :" "issue:`17201`.)" msgstr "" #: whatsnew/3.4.rst:1798 msgid "CPython Implementation Changes" msgstr "" #: whatsnew/3.4.rst:1804 msgid "PEP 445: Customization of CPython Memory Allocators" msgstr "" #: whatsnew/3.4.rst:1806 msgid "" ":pep:`445` adds new C level interfaces to customize memory allocation in the " "CPython interpreter." msgstr "" #: whatsnew/3.4.rst:1811 msgid ":pep:`445` -- Add new APIs to customize Python memory allocators" msgstr "" #: whatsnew/3.4.rst:1818 msgid "PEP 442: Safe Object Finalization" msgstr "" #: whatsnew/3.4.rst:1820 msgid "" ":pep:`442` removes the current limitations and quirks of object finalization " "in CPython. With it, objects with :meth:`__del__` methods, as well as " "generators with :keyword:`finally` clauses, can be finalized when they are " "part of a reference cycle." msgstr "" #: whatsnew/3.4.rst:1825 msgid "" "As part of this change, module globals are no longer forcibly set to :const:" "`None` during interpreter shutdown in most cases, instead relying on the " "normal operation of the cyclic garbage collector. This avoids a whole class " "of interpreter-shutdown-time errors, usually involving ``__del__`` methods, " "that have plagued Python since the cyclic GC was first introduced." msgstr "" #: whatsnew/3.4.rst:1834 msgid ":pep:`442` -- Safe object finalization" msgstr "" #: whatsnew/3.4.rst:1841 msgid "PEP 456: Secure and Interchangeable Hash Algorithm" msgstr "" #: whatsnew/3.4.rst:1843 msgid "" ":pep:`456` follows up on earlier security fix work done on Python's hash " "algorithm to address certain DOS attacks to which public facing APIs backed " "by dictionary lookups may be subject. (See :issue:`14621` for the start of " "the current round of improvements.) The PEP unifies CPython's hash code to " "make it easier for a packager to substitute a different hash algorithm, and " "switches Python's default implementation to a SipHash implementation on " "platforms that have a 64 bit data type. Any performance differences in " "comparison with the older FNV algorithm are trivial." msgstr "" #: whatsnew/3.4.rst:1852 msgid "" "The PEP adds additional fields to the :attr:`sys.hash_info` named tuple to " "describe the hash algorithm in use by the currently executing binary. " "Otherwise, the PEP does not alter any existing CPython APIs." msgstr "" #: whatsnew/3.4.rst:1860 msgid "PEP 436: Argument Clinic" msgstr "" #: whatsnew/3.4.rst:1862 msgid "" "\"Argument Clinic\" (:pep:`436`) is now part of the CPython build process " "and can be used to simplify the process of defining and maintaining accurate " "signatures for builtins and standard library extension modules implemented " "in C." msgstr "" #: whatsnew/3.4.rst:1867 msgid "" "Some standard library extension modules have been converted to use Argument " "Clinic in Python 3.4, and :mod:`pydoc` and :mod:`inspect` have been updated " "accordingly." msgstr "" #: whatsnew/3.4.rst:1871 msgid "" "It is expected that signature metadata for programmatic introspection will " "be added to additional callables implemented in C as part of Python 3.4 " "maintenance releases." msgstr "" #: whatsnew/3.4.rst:1876 msgid "" "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 and " "core development team in this case, as Argument Clinic will not be made " "available as a public API for third party use in Python 3.4." msgstr "" #: whatsnew/3.4.rst:1883 msgid ":pep:`436` -- The Argument Clinic DSL" msgstr "" #: whatsnew/3.4.rst:1884 msgid "PEP written and implemented by Larry Hastings." msgstr "" #: whatsnew/3.4.rst:1888 msgid "Other Build and C API Changes" msgstr "" #: whatsnew/3.4.rst:1890 msgid "" "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`.)" msgstr "" #: whatsnew/3.4.rst:1894 msgid "" "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. (Contributed " "by Bastien Montagne and Nick Coghlan in :issue:`16129`.)" msgstr "" #: whatsnew/3.4.rst:1899 msgid "" "Most Python C APIs that don't mutate string arguments are now correctly " "marked as accepting ``const char *`` rather than ``char *``. (Contributed " "by Serhiy Storchaka in :issue:`1772673`.)" msgstr "" #: whatsnew/3.4.rst:1903 msgid "" "A new shell version of ``python-config`` can be used even when a python " "interpreter is not available (for example, in cross compilation scenarios)." msgstr "" #: whatsnew/3.4.rst:1906 msgid "" ":c:func:`PyUnicode_FromFormat` now supports width and precision " "specifications for ``%s``, ``%A``, ``%U``, ``%V``, ``%S``, and ``%R``. " "(Contributed by Ysj Ray and Victor Stinner in :issue:`7330`.)" msgstr "" #: whatsnew/3.4.rst:1910 msgid "" "New function :c:func:`PyStructSequence_InitType2` supplements the existing :" "c:func:`PyStructSequence_InitType` function. The difference is that it " "returns ``0`` on success and ``-1`` on failure." msgstr "" #: whatsnew/3.4.rst:1914 msgid "" "The CPython source can now be compiled using the address sanity checking " "features of recent versions of GCC and clang: the false alarms in the small " "object allocator have been silenced. (Contributed by Dhiru Kholia in :issue:" "`18596`.)" msgstr "" #: whatsnew/3.4.rst:1919 msgid "" "The Windows build now uses `Address Space Layout Randomization `_ and `Data Execution " "Prevention `_. " "(Contributed by Christian Heimes in :issue:`16632`.)" msgstr "" #: whatsnew/3.4.rst:1924 msgid "" "New function :c:func:`PyObject_LengthHint` is the C API equivalent of :func:" "`operator.length_hint`. (Contributed by Armin Ronacher in :issue:`16148`.)" msgstr "" #: whatsnew/3.4.rst:1932 msgid "Other Improvements" msgstr "Autres Améliorations" #: whatsnew/3.4.rst:1936 msgid "" "The :ref:`python ` command has a new :ref:`option `, ``-I``, which causes it to run in \"isolated mode\", " "which means that :data:`sys.path` contains neither the script's directory " "nor the user's ``site-packages`` directory, and all :envvar:`PYTHON*` " "environment variables are ignored (it implies both ``-s`` and ``-E``). " "Other restrictions may also be applied in the future, with the goal being to " "isolate the execution of a script from the user's environment. This is " "appropriate, for example, when Python is used to run a system script. On " "most POSIX systems it can and should be used in the ``#!`` line of system " "scripts. (Contributed by Christian Heimes in :issue:`16499`.)" msgstr "" #: whatsnew/3.4.rst:1947 msgid "" "Tab-completion is now enabled by default in the interactive interpreter on " "systems that support :mod:`readline`. History is also enabled by default, " "and is written to (and read from) the file :file:`~/.python-history`. " "(Contributed by Antoine Pitrou and Éric Araujo in :issue:`5845`.)" msgstr "" #: whatsnew/3.4.rst:1952 msgid "" "Invoking the Python interpreter with ``--version`` now outputs the version " "to standard output instead of standard error (:issue:`18338`). Similar " "changes were made to :mod:`argparse` (:issue:`18920`) and other modules that " "have script-like invocation capabilities (:issue:`18922`)." msgstr "" #: whatsnew/3.4.rst:1957 msgid "" "The CPython Windows installer now adds ``.py`` to the :envvar:`PATHEXT` " "variable when extensions are registered, allowing users to run a python " "script at the windows command prompt by just typing its name without the ``." "py`` extension. (Contributed by Paul Moore in :issue:`18569`.)" msgstr "" #: whatsnew/3.4.rst:1962 msgid "" "A new ``make`` target `coverage-report `_ will build python, run " "the test suite, and generate an HTML coverage report for the C codebase " "using ``gcov`` and `lcov `_." msgstr "" #: whatsnew/3.4.rst:1968 msgid "" "The ``-R`` option to the :ref:`python regression test suite ` now " "also checks for memory allocation leaks, using :func:`sys." "getallocatedblocks()`. (Contributed by Antoine Pitrou in :issue:`13390`.)" msgstr "" #: whatsnew/3.4.rst:1973 msgid "``python -m`` now works with namespace packages." msgstr "" #: whatsnew/3.4.rst:1975 msgid "" "The :mod:`stat` module is now implemented in C, which means it gets the " "values for its constants from the C header files, instead of having the " "values hard-coded in the python module as was previously the case." msgstr "" #: whatsnew/3.4.rst:1979 msgid "" "Loading multiple python modules from a single OS module (``.so``, ``.dll``) " "now works correctly (previously it silently returned the first python module " "in the file). (Contributed by Václav Šmilauer in :issue:`16421`.)" msgstr "" #: whatsnew/3.4.rst:1983 msgid "" "A new opcode, :opcode:`LOAD_CLASSDEREF`, has been added to fix a bug in the " "loading of free variables in class bodies that could be triggered by certain " "uses of :ref:`__prepare__ `. (Contributed by Benjamin Peterson in :" "issue:`17853`.)" msgstr "" #: whatsnew/3.4.rst:1988 msgid "" "A number of MemoryError-related crashes were identified and fixed by Victor " "Stinner using his :pep:`445`-based ``pyfailmalloc`` tool (:issue:`18408`, :" "issue:`18520`)." msgstr "" #: whatsnew/3.4.rst:1992 msgid "" "The ``pyvenv`` command now accepts a ``--copies`` option to use copies " "rather than symlinks even on systems where symlinks are the default. " "(Contributed by Vinay Sajip in :issue:`18807`.)" msgstr "" #: whatsnew/3.4.rst:1996 msgid "" "The ``pyvenv`` command also accepts a ``--without-pip`` option to suppress " "the otherwise-automatic bootstrapping of pip into the virtual environment. " "(Contributed by Nick Coghlan in :issue:`19552` as part of the :pep:`453` " "implementation.)" msgstr "" #: whatsnew/3.4.rst:2001 msgid "" "The encoding name is now optional in the value set for the :envvar:" "`PYTHONIOENCODING` environment variable. This makes it possible to set just " "the error handler, without changing the default encoding. (Contributed by " "Serhiy Storchaka in :issue:`18818`.)" msgstr "" #: whatsnew/3.4.rst:2006 msgid "" "The :mod:`bz2`, :mod:`lzma`, and :mod:`gzip` module ``open`` functions now " "support ``x`` (exclusive creation) mode. (Contributed by Tim Heaney and " "Vajrasky Kok in :issue:`19201`, :issue:`19222`, and :issue:`19223`.)" msgstr "" #: whatsnew/3.4.rst:2012 msgid "Significant Optimizations" msgstr "" #: whatsnew/3.4.rst:2014 msgid "" "The UTF-32 decoder is now 3x to 4x faster. (Contributed by Serhiy Storchaka " "in :issue:`14625`.)" msgstr "" #: whatsnew/3.4.rst:2017 msgid "" "The cost of hash collisions for sets is now reduced. Each hash table probe " "now checks a series of consecutive, adjacent key/hash pairs before " "continuing to make random probes through the hash table. This exploits " "cache locality to make collision resolution less expensive. The collision " "resolution scheme can be described as a hybrid of linear probing and open " "addressing. The number of additional linear probes defaults to nine. This " "can be changed at compile-time by defining LINEAR_PROBES to be any value. " "Set LINEAR_PROBES=0 to turn-off linear probing entirely. (Contributed by " "Raymond Hettinger in :issue:`18771`.)" msgstr "" #: whatsnew/3.4.rst:2028 msgid "" "The interpreter starts about 30% faster. A couple of measures lead to the " "speedup. The interpreter loads fewer modules on startup, e.g. the :mod:" "`re`, :mod:`collections` and :mod:`locale` modules and their dependencies " "are no longer imported by default. The marshal module has been improved to " "load compiled Python code faster. (Contributed by Antoine Pitrou, Christian " "Heimes and Victor Stinner in :issue:`19219`, :issue:`19218`, :issue:" "`19209`, :issue:`19205` and :issue:`9548`.)" msgstr "" #: whatsnew/3.4.rst:2036 msgid "" ":class:`bz2.BZ2File` is now as fast or faster than the Python2 version for " "most cases. :class:`lzma.LZMAFile` has also been optimized. (Contributed " "by Serhiy Storchaka and Nadeem Vawda in :issue:`16034`.)" msgstr "" #: whatsnew/3.4.rst:2040 msgid "" ":func:`random.getrandbits` is 20%-40% faster for small integers (the most " "common use case). (Contributed by Serhiy Storchaka in :issue:`16674`.)" msgstr "" #: whatsnew/3.4.rst:2043 msgid "" "By taking advantage of the new storage format for strings, pickling of " "strings is now significantly faster. (Contributed by Victor Stinner and " "Antoine Pitrou in :issue:`15596`.)" msgstr "" #: whatsnew/3.4.rst:2047 msgid "" "A performance issue in :meth:`io.FileIO.readall` has been solved. This " "particularly affects Windows, and significantly speeds up the case of piping " "significant amounts of data through :mod:`subprocess`. (Contributed by " "Richard Oudkerk in :issue:`15758`.)" msgstr "" #: whatsnew/3.4.rst:2052 msgid "" ":func:`html.escape` is now 10x faster. (Contributed by Matt Bryant in :" "issue:`18020`.)" msgstr "" #: whatsnew/3.4.rst:2055 msgid "" "On Windows, the native ``VirtualAlloc`` is now used instead of the CRT " "``malloc`` in ``obmalloc``. Artificial benchmarks show about a 3% memory " "savings." msgstr "" #: whatsnew/3.4.rst:2059 msgid "" ":func:`os.urandom` now uses a lazily opened persistent file descriptor so as " "to avoid using many file descriptors when run in parallel from multiple " "threads. (Contributed by Antoine Pitrou in :issue:`18756`.)" msgstr "" #: whatsnew/3.4.rst:2067 msgid "Deprecated" msgstr "" #: whatsnew/3.4.rst:2069 msgid "" "This section covers various APIs and other features that have been " "deprecated in Python 3.4, and will be removed in Python 3.5 or later. In " "most (but not all) cases, using the deprecated APIs will produce a :exc:" "`DeprecationWarning` when the interpreter is run with deprecation warnings " "enabled (for example, by using ``-Wd``)." msgstr "" #: whatsnew/3.4.rst:2077 msgid "Deprecations in the Python API" msgstr "" #: whatsnew/3.4.rst:2079 msgid "" "As mentioned in :ref:`whatsnew-pep-451`, a number of :mod:`importlib` " "methods and functions are deprecated: :meth:`importlib.find_loader` is " "replaced by :func:`importlib.util.find_spec`; :meth:`importlib.machinery." "PathFinder.find_module` is replaced by :meth:`importlib.machinery.PathFinder." "find_spec`; :meth:`importlib.abc.MetaPathFinder.find_module` is replaced by :" "meth:`importlib.abc.MetaPathFinder.find_spec`; :meth:`importlib.abc." "PathEntryFinder.find_loader` and :meth:`~importlib.abc.PathEntryFinder." "find_module` are replaced by :meth:`importlib.abc.PathEntryFinder." "find_spec`; all of the ``xxxLoader`` ABC ``load_module`` methods (:meth:" "`importlib.abc.Loader.load_module`, :meth:`importlib.abc.InspectLoader." "load_module`, :meth:`importlib.abc.FileLoader.load_module`, :meth:`importlib." "abc.SourceLoader.load_module`) should no longer be implemented, instead " "loaders should implement an ``exec_module`` method (:meth:`importlib.abc." "Loader.exec_module`, :meth:`importlib.abc.InspectLoader.exec_module` :meth:" "`importlib.abc.SourceLoader.exec_module`) and let the import system take " "care of the rest; and :meth:`importlib.abc.Loader.module_repr`, :meth:" "`importlib.util.module_for_loader`, :meth:`importlib.util.set_loader`, and :" "meth:`importlib.util.set_package` are no longer needed because their " "functions are now handled automatically by the import system." msgstr "" #: whatsnew/3.4.rst:2104 msgid "" "The :mod:`imp` module is pending deprecation. To keep compatibility with " "Python 2/3 code bases, the module's removal is currently not scheduled." msgstr "" #: whatsnew/3.4.rst:2107 msgid "" "The :mod:`formatter` module is pending deprecation and is slated for removal " "in Python 3.6." msgstr "" #: whatsnew/3.4.rst:2110 msgid "" "``MD5`` as the default *digestmod* for the :func:`hmac.new` function is " "deprecated. Python 3.6 will require an explicit digest name or constructor " "as *digestmod* argument." msgstr "" #: whatsnew/3.4.rst:2114 msgid "" "The internal ``Netrc`` class in the :mod:`ftplib` module has been documented " "as deprecated in its docstring for quite some time. It now emits a :exc:" "`DeprecationWarning` and will be removed completely in Python 3.5." msgstr "" #: whatsnew/3.4.rst:2118 msgid "" "The undocumented *endtime* argument to :meth:`subprocess.Popen.wait` should " "not have been exposed and is hopefully not in use; it is deprecated and will " "mostly likely be removed in Python 3.5." msgstr "" #: whatsnew/3.4.rst:2122 msgid "" "The *strict* argument of :class:`~html.parser.HTMLParser` is deprecated." msgstr "" #: whatsnew/3.4.rst:2124 msgid "" "The :mod:`plistlib` :func:`~plistlib.readPlist`, :func:`~plistlib." "writePlist`, :func:`~plistlib.readPlistFromBytes`, and :func:`~plistlib." "writePlistToBytes` functions are deprecated in favor of the corresponding " "new functions :func:`~plistlib.load`, :func:`~plistlib.dump`, :func:" "`~plistlib.loads`, and :func:`~plistlib.dumps`. :func:`~plistlib.Data` is " "deprecated in favor of just using the :class:`bytes` constructor." msgstr "" #: whatsnew/3.4.rst:2131 msgid "" "The :mod:`sysconfig` key ``SO`` is deprecated, it has been replaced by " "``EXT_SUFFIX``." msgstr "" #: whatsnew/3.4.rst:2134 msgid "" "The ``U`` mode accepted by various ``open`` functions is deprecated. In " "Python3 it does not do anything useful, and should be replaced by " "appropriate uses of :class:`io.TextIOWrapper` (if needed) and its *newline* " "argument." msgstr "" #: whatsnew/3.4.rst:2139 msgid "" "The *parser* argument of :func:`xml.etree.ElementTree.iterparse` has been " "deprecated, as has the *html* argument of :func:`~xml.etree.ElementTree." "XMLParser`. To prepare for the removal of the latter, all arguments to " "``XMLParser`` should be passed by keyword." msgstr "" #: whatsnew/3.4.rst:2146 msgid "Deprecated Features" msgstr "Fonctionnalités obsolètes" #: whatsnew/3.4.rst:2148 msgid "" "Running :ref:`idle` with the ``-n`` flag (no subprocess) is deprecated. " "However, the feature will not be removed until :issue:`18823` is resolved." msgstr "" #: whatsnew/3.4.rst:2151 msgid "" "The site module adding a \"site-python\" directory to sys.path, if it " "exists, is deprecated (:issue:`19375`)." msgstr "" #: whatsnew/3.4.rst:2157 msgid "Removed" msgstr "" #: whatsnew/3.4.rst:2161 msgid "Operating Systems No Longer Supported" msgstr "" #: whatsnew/3.4.rst:2163 msgid "" "Support for the following operating systems has been removed from the source " "and build tools:" msgstr "" #: whatsnew/3.4.rst:2166 msgid "OS/2 (:issue:`16135`)." msgstr "" #: whatsnew/3.4.rst:2167 msgid "Windows 2000 (changeset e52df05b496a)." msgstr "" #: whatsnew/3.4.rst:2168 msgid "" "Windows systems where ``COMSPEC`` points to ``command.com`` (:issue:`14470`)." msgstr "" #: whatsnew/3.4.rst:2169 msgid "VMS (:issue:`16136`)." msgstr "" #: whatsnew/3.4.rst:2173 msgid "API and Feature Removals" msgstr "" #: whatsnew/3.4.rst:2175 msgid "" "The following obsolete and previously deprecated APIs and features have been " "removed:" msgstr "" #: whatsnew/3.4.rst:2178 msgid "" "The unmaintained ``Misc/TextMate`` and ``Misc/vim`` directories have been " "removed (see the `devguide `_ for suggestions " "on what to use instead)." msgstr "" #: whatsnew/3.4.rst:2182 msgid "" "The ``SO`` makefile macro is removed (it was replaced by the " "``SHLIB_SUFFIX`` and ``EXT_SUFFIX`` macros) (:issue:`16754`)." msgstr "" #: whatsnew/3.4.rst:2185 msgid "" "The ``PyThreadState.tick_counter`` field has been removed; its value has " "been meaningless since Python 3.2, when the \"new GIL\" was introduced (:" "issue:`19199`)." msgstr "" #: whatsnew/3.4.rst:2189 msgid "" "``PyLoader`` and ``PyPycLoader`` have been removed from :mod:`importlib`. " "(Contributed by Taras Lyapun in :issue:`15641`.)" msgstr "" #: whatsnew/3.4.rst:2192 msgid "" "The *strict* argument to :class:`~http.client.HTTPConnection` and :class:" "`~http.client.HTTPSConnection` has been removed. HTTP 0.9-style \"Simple " "Responses\" are no longer supported." msgstr "" #: whatsnew/3.4.rst:2196 msgid "" "The deprecated :mod:`urllib.request.Request` getter and setter methods " "``add_data``, ``has_data``, ``get_data``, ``get_type``, ``get_host``, " "``get_selector``, ``set_proxy``, ``get_origin_req_host``, and " "``is_unverifiable`` have been removed (use direct attribute access instead)." msgstr "" #: whatsnew/3.4.rst:2201 msgid "" "Support for loading the deprecated ``TYPE_INT64`` has been removed from :mod:" "`marshal`. (Contributed by Dan Riti in :issue:`15480`.)" msgstr "" #: whatsnew/3.4.rst:2204 msgid "" ":class:`inspect.Signature`: positional-only parameters are now required to " "have a valid name." msgstr "" #: whatsnew/3.4.rst:2207 msgid "" ":meth:`object.__format__` no longer accepts non-empty format strings, it now " "raises a :exc:`TypeError` instead. Using a non-empty string has been " "deprecated since Python 3.2. This change has been made to prevent a " "situation where previously working (but incorrect) code would start failing " "if an object gained a __format__ method, which means that your code may now " "raise a :exc:`TypeError` if you are using an ``'s'`` format code with " "objects that do not have a __format__ method that handles it. See :issue:" "`7994` for background." msgstr "" #: whatsnew/3.4.rst:2216 msgid "" ":meth:`difflib.SequenceMatcher.isbjunk` and :meth:`difflib.SequenceMatcher." "isbpopular` were deprecated in 3.2, and have now been removed: use ``x in sm." "bjunk`` and ``x in sm.bpopular``, where *sm* is a :class:`~difflib." "SequenceMatcher` object (:issue:`13248`)." msgstr "" #: whatsnew/3.4.rst:2224 msgid "Code Cleanups" msgstr "" #: whatsnew/3.4.rst:2226 msgid "" "The unused and undocumented internal ``Scanner`` class has been removed from " "the :mod:`pydoc` module." msgstr "" #: whatsnew/3.4.rst:2229 msgid "" "The private and effectively unused ``_gestalt`` module has been removed, " "along with the private :mod:`platform` functions ``_mac_ver_lookup``, " "``_mac_ver_gstalt``, and ``_bcd2str``, which would only have ever been " "called on badly broken OSX systems (see :issue:`18393`)." msgstr "" #: whatsnew/3.4.rst:2234 msgid "" "The hardcoded copies of certain :mod:`stat` constants that were included in " "the :mod:`tarfile` module namespace have been removed." msgstr "" #: whatsnew/3.4.rst:2240 msgid "Porting to Python 3.4" msgstr "Portage vers Python 3.4" #: whatsnew/3.4.rst:2242 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" #: whatsnew/3.4.rst:2247 msgid "Changes in 'python' Command Behavior" msgstr "" #: whatsnew/3.4.rst:2249 msgid "" "In a posix shell, setting the :envvar:`PATH` environment variable to an " "empty value is equivalent to not setting it at all. However, setting :" "envvar:`PYTHONPATH` to an empty value was *not* equivalent to not setting it " "at all: setting :envvar:`PYTHONPATH` to an empty value was equivalent to " "setting it to ``.``, which leads to confusion when reasoning by analogy to " "how :envvar:`PATH` works. The behavior now conforms to the posix convention " "for :envvar:`PATH`." msgstr "" #: whatsnew/3.4.rst:2257 msgid "" "The [X refs, Y blocks] output of a debug (``--with-pydebug``) build of the " "CPython interpreter is now off by default. It can be re-enabled using the " "``-X showrefcount`` option. (Contributed by Ezio Melotti in :issue:`17323`.)" msgstr "" #: whatsnew/3.4.rst:2261 msgid "" "The python command and most stdlib scripts (as well as :mod:`argparse`) now " "output ``--version`` information to ``stdout`` instead of ``stderr`` (for " "issue list see :ref:`other-improvements-3.4` above)." msgstr "" #: whatsnew/3.4.rst:2267 msgid "Changes in the Python API" msgstr "" #: whatsnew/3.4.rst:2269 msgid "" "The ABCs defined in :mod:`importlib.abc` now either raise the appropriate " "exception or return a default value instead of raising :exc:" "`NotImplementedError` blindly. This will only affect code calling :func:" "`super` and falling through all the way to the ABCs. For compatibility, " "catch both :exc:`NotImplementedError` or the appropriate exception as needed." msgstr "" #: whatsnew/3.4.rst:2275 msgid "" "The module type now initializes the :attr:`__package__` and :attr:" "`__loader__` attributes to ``None`` by default. To determine if these " "attributes were set in a backwards-compatible fashion, use e.g. " "``getattr(module, '__loader__', None) is not None``. (:issue:`17115`.)" msgstr "" #: whatsnew/3.4.rst:2280 msgid "" ":meth:`importlib.util.module_for_loader` now sets ``__loader__`` and " "``__package__`` unconditionally to properly support reloading. If this is " "not desired then you will need to set these attributes manually. You can " "use :func:`importlib.util.module_to_load` for module management." msgstr "" #: whatsnew/3.4.rst:2285 msgid "" "Import now resets relevant attributes (e.g. ``__name__``, ``__loader__``, " "``__package__``, ``__file__``, ``__cached__``) unconditionally when " "reloading. Note that this restores a pre-3.3 behavior in that it means a " "module is re-found when re-loaded (:issue:`19413`)." msgstr "" #: whatsnew/3.4.rst:2290 msgid "" "Frozen packages no longer set ``__path__`` to a list containing the package " "name, they now set it to an empty list. The previous behavior could cause " "the import system to do the wrong thing on submodule imports if there was " "also a directory with the same name as the frozen package. The correct way " "to determine if a module is a package or not is to use ``hasattr(module, " "'__path__')`` (:issue:`18065`)." msgstr "" #: whatsnew/3.4.rst:2297 msgid "" "Frozen modules no longer define a ``__file__`` attribute. It's semantically " "incorrect for frozen modules to set the attribute as they are not loaded " "from any explicit location. If you must know that a module comes from frozen " "code then you can see if the module's ``__spec__.location`` is set to " "``'frozen'``, check if the loader is a subclass of :class:`importlib." "machinery.FrozenImporter`, or if Python 2 compatibility is necessary you can " "use :func:`imp.is_frozen`." msgstr "" #: whatsnew/3.4.rst:2305 msgid "" ":func:`py_compile.compile` now raises :exc:`FileExistsError` if the file " "path it would write to is a symlink or a non-regular file. This is to act as " "a warning that import will overwrite those files with a regular file " "regardless of what type of file path they were originally." msgstr "" #: whatsnew/3.4.rst:2310 msgid "" ":meth:`importlib.abc.SourceLoader.get_source` no longer raises :exc:" "`ImportError` when the source code being loaded triggers a :exc:" "`SyntaxError` or :exc:`UnicodeDecodeError`. As :exc:`ImportError` is meant " "to be raised only when source code cannot be found but it should, it was " "felt to be over-reaching/overloading of that meaning when the source code is " "found but improperly structured. If you were catching ImportError before and " "wish to continue to ignore syntax or decoding issues, catch all three " "exceptions now." msgstr "" #: whatsnew/3.4.rst:2319 msgid "" ":func:`functools.update_wrapper` and :func:`functools.wraps` now correctly " "set the ``__wrapped__`` attribute to the function being wrapped, even if " "that function also had its ``__wrapped__`` attribute set. This means " "``__wrapped__`` attributes now correctly link a stack of decorated functions " "rather than every ``__wrapped__`` attribute in the chain referring to the " "innermost function. Introspection libraries that assumed the previous " "behaviour was intentional can use :func:`inspect.unwrap` to access the first " "function in the chain that has no ``__wrapped__`` attribute." msgstr "" #: whatsnew/3.4.rst:2329 msgid "" ":func:`inspect.getfullargspec` has been reimplemented on top of :func:" "`inspect.signature` and hence handles a much wider variety of callable " "objects than it did in the past. It is expected that additional builtin and " "extension module callables will gain signature metadata over the course of " "the Python 3.4 series. Code that assumes that :func:`inspect.getfullargspec` " "will fail on non-Python callables may need to be adjusted accordingly." msgstr "" #: whatsnew/3.4.rst:2337 msgid "" ":class:`importlib.machinery.PathFinder` now passes on the current working " "directory to objects in :data:`sys.path_hooks` for the empty string. This " "results in :data:`sys.path_importer_cache` never containing ``''``, thus " "iterating through :data:`sys.path_importer_cache` based on :data:`sys.path` " "will not find all keys. A module's ``__file__`` when imported in the current " "working directory will also now have an absolute path, including when using " "``-m`` with the interpreter (except for ``__main__.__file__`` when a script " "has been executed directly using a relative path) (Contributed by Brett " "Cannon in :issue:`18416`). is specified on the command-line) (:issue:" "`18416`)." msgstr "" #: whatsnew/3.4.rst:2348 msgid "" "The removal of the *strict* argument to :class:`~http.client.HTTPConnection` " "and :class:`~http.client.HTTPSConnection` changes the meaning of the " "remaining arguments if you are specifying them positionally rather than by " "keyword. If you've been paying attention to deprecation warnings your code " "should already be specifying any additional arguments via keywords." msgstr "" #: whatsnew/3.4.rst:2354 msgid "" "Strings between ``from __future__ import ...`` statements now *always* raise " "a :exc:`SyntaxError`. Previously if there was no leading docstring, an " "interstitial string would sometimes be ignored. This brings CPython into " "compliance with the language spec; Jython and PyPy already were. (:issue:" "`17434`)." msgstr "" #: whatsnew/3.4.rst:2360 msgid "" ":meth:`ssl.SSLSocket.getpeercert` and :meth:`ssl.SSLSocket.do_handshake` now " "raise an :exc:`OSError` with ``ENOTCONN`` when the ``SSLSocket`` is not " "connected, instead of the previous behavior of raising an :exc:" "`AttributeError`. In addition, :meth:`~ssl.SSLSocket.getpeercert` will " "raise a :exc:`ValueError` if the handshake has not yet been done." msgstr "" #: whatsnew/3.4.rst:2366 msgid "" ":func:`base64.b32decode` now raises a :exc:`binascii.Error` when the input " "string contains non-b32-alphabet characters, instead of a :exc:`TypeError`. " "This particular :exc:`TypeError` was missed when the other :exc:" "`TypeError`\\ s were converted. (Contributed by Serhiy Storchaka in :issue:" "`18011`.) Note: this change was also inadvertently applied in Python 3.3.3." msgstr "" #: whatsnew/3.4.rst:2373 msgid "" "The :attr:`~cgi.FieldStorage.file` attribute is now automatically closed " "when the creating :class:`cgi.FieldStorage` instance is garbage collected. " "If you were pulling the file object out separately from the :class:`cgi." "FieldStorage` instance and not keeping the instance alive, then you should " "either store the entire :class:`cgi.FieldStorage` instance or read the " "contents of the file before the :class:`cgi.FieldStorage` instance is " "garbage collected." msgstr "" #: whatsnew/3.4.rst:2380 msgid "" "Calling ``read`` or ``write`` on a closed SSL socket now raises an " "informative :exc:`ValueError` rather than the previous more mysterious :exc:" "`AttributeError` (:issue:`9177`)." msgstr "" #: whatsnew/3.4.rst:2384 msgid "" ":meth:`slice.indices` no longer produces an :exc:`OverflowError` for huge " "values. As a consequence of this fix, :meth:`slice.indices` now raises a :" "exc:`ValueError` if given a negative length; previously it returned nonsense " "values (:issue:`14794`)." msgstr "" #: whatsnew/3.4.rst:2389 msgid "" "The :class:`complex` constructor, unlike the :mod:`cmath` functions, was " "incorrectly accepting :class:`float` values if an object's ``__complex__`` " "special method returned one. This now raises a :exc:`TypeError`. (:issue:" "`16290`.)" msgstr "" #: whatsnew/3.4.rst:2394 msgid "" "The :class:`int` constructor in 3.2 and 3.3 erroneously accepts :class:" "`float` values for the *base* parameter. It is unlikely anyone was doing " "this, but if so, it will now raise a :exc:`TypeError` (:issue:`16772`)." msgstr "" #: whatsnew/3.4.rst:2398 msgid "" "Defaults for keyword-only arguments are now evaluated *after* defaults for " "regular keyword arguments, instead of before. Hopefully no one wrote any " "code that depends on the previous buggy behavior (:issue:`16967`)." msgstr "" #: whatsnew/3.4.rst:2402 msgid "" "Stale thread states are now cleared after :func:`~os.fork`. This may cause " "some system resources to be released that previously were incorrectly kept " "perpetually alive (for example, database connections kept in thread-local " "storage). (:issue:`17094`.)" msgstr "" #: whatsnew/3.4.rst:2407 msgid "" "Parameter names in ``__annotations__`` dicts are now mangled properly, " "similarly to ``__kwdefaults__``. (Contributed by Yury Selivanov in :issue:" "`20625`.)" msgstr "" #: whatsnew/3.4.rst:2411 msgid "" ":attr:`hashlib.hash.name` now always returns the identifier in lower case. " "Previously some builtin hashes had uppercase names, but now that it is a " "formal public interface the naming has been made consistent (:issue:`18532`)." msgstr "" #: whatsnew/3.4.rst:2415 msgid "" "Because :mod:`unittest.TestSuite` now drops references to tests after they " "are run, test harnesses that re-use a :class:`~unittest.TestSuite` to re-run " "a set of tests may fail. Test suites should not be re-used in this fashion " "since it means state is retained between test runs, breaking the test " "isolation that :mod:`unittest` is designed to provide. However, if the lack " "of isolation is considered acceptable, the old behavior can be restored by " "creating a :mod:`~unittest.TestSuite` subclass that defines a " "``_removeTestAtIndex`` method that does nothing (see :meth:`.TestSuite." "__iter__`) (:issue:`11798`)." msgstr "" #: whatsnew/3.4.rst:2425 msgid "" ":mod:`unittest` now uses :mod:`argparse` for command line parsing. There " "are certain invalid command forms that used to work that are no longer " "allowed; in theory this should not cause backward compatibility issues since " "the disallowed command forms didn't make any sense and are unlikely to be in " "use." msgstr "" #: whatsnew/3.4.rst:2430 msgid "" "The :func:`re.split`, :func:`re.findall`, and :func:`re.sub` functions, and " "the :meth:`~re.match.group` and :meth:`~re.match.groups` methods of " "``match`` objects now always return a *bytes* object when the string to be " "matched is a :term:`bytes-like object`. Previously the return type matched " "the input type, so if your code was depending on the return value being, " "say, a ``bytearray``, you will need to change your code." msgstr "" #: whatsnew/3.4.rst:2437 msgid "" ":mod:`audioop` functions now raise an error immediately if passed string " "input, instead of failing randomly later on (:issue:`16685`)." msgstr "" #: whatsnew/3.4.rst:2440 msgid "" "The new *convert_charrefs* argument to :class:`~html.parser.HTMLParser` " "currently defaults to ``False`` for backward compatibility, but will " "eventually be changed to default to ``True``. It is recommended that you " "add this keyword, with the appropriate value, to any :class:`~html.parser." "HTMLParser` calls in your code (:issue:`13633`)." msgstr "" #: whatsnew/3.4.rst:2446 msgid "" "Since the *digestmod* argument to the :func:`hmac.new` function will in the " "future have no default, all calls to :func:`hmac.new` should be changed to " "explicitly specify a *digestmod* (:issue:`17276`)." msgstr "" #: whatsnew/3.4.rst:2450 msgid "" "Calling :func:`sysconfig.get_config_var` with the ``SO`` key, or looking " "``SO`` up in the results of a call to :func:`sysconfig.get_config_vars` is " "deprecated. This key should be replaced by ``EXT_SUFFIX`` or " "``SHLIB_SUFFIX``, depending on the context (:issue:`19555`)." msgstr "" #: whatsnew/3.4.rst:2455 msgid "" "Any calls to ``open`` functions that specify ``U`` should be modified. ``U`` " "is ineffective in Python3 and will eventually raise an error if used. " "Depending on the function, the equivalent of its old Python2 behavior can be " "achieved using either a *newline* argument, or if necessary by wrapping the " "stream in :mod:`~io.TextIOWrapper` to use its *newline* argument (:issue:" "`15204`)." msgstr "" #: whatsnew/3.4.rst:2462 msgid "" "If you use ``pyvenv`` in a script and desire that pip *not* be installed, " "you must add ``--without-pip`` to your command invocation." msgstr "" #: whatsnew/3.4.rst:2466 msgid "" "The default behavior of :func:`json.dump` and :func:`json.dumps` when an " "indent is specified has changed: it no longer produces trailing spaces after " "the item separating commas at the ends of lines. This will matter only if " "you have tests that are doing white-space-sensitive comparisons of such " "output (:issue:`16333`)." msgstr "" #: whatsnew/3.4.rst:2472 msgid "" ":mod:`doctest` now looks for doctests in extension module ``__doc__`` " "strings, so if your doctest test discovery includes extension modules that " "have things that look like doctests in them you may see test failures you've " "never seen before when running your tests (:issue:`3158`)." msgstr "" #: whatsnew/3.4.rst:2477 msgid "" "The :mod:`collections.abc` module has been slightly refactored as part of " "the Python startup improvements. As a consequence of this, it is no longer " "the case that importing :mod:`collections` automatically imports :mod:" "`collections.abc`. If your program depended on the (undocumented) implicit " "import, you will need to add an explicit ``import collections.abc`` (:issue:" "`20784`)." msgstr "" #: whatsnew/3.4.rst:2486 msgid "Changes in the C API" msgstr "" #: whatsnew/3.4.rst:2488 msgid "" ":c:func:`PyEval_EvalFrameEx`, :c:func:`PyObject_Repr`, and :c:func:" "`PyObject_Str`, along with some other internal C APIs, now include a " "debugging assertion that ensures they are not used in situations where they " "may silently discard a currently active exception. In cases where discarding " "the active exception is expected and desired (for example, because it has " "already been saved locally with :c:func:`PyErr_Fetch` or is being " "deliberately replaced with a different exception), an explicit :c:func:" "`PyErr_Clear` call will be needed to avoid triggering the assertion when " "invoking these operations (directly or indirectly) and running against a " "version of Python that is compiled with assertions enabled." msgstr "" #: whatsnew/3.4.rst:2500 msgid "" ":c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg** " "argument is not set. Previously only ``NULL`` was returned with no exception " "set." msgstr "" #: whatsnew/3.4.rst:2504 msgid "" "The result of the :c:data:`PyOS_ReadlineFunctionPointer` callback must now " "be a string allocated by :c:func:`PyMem_RawMalloc` or :c:func:" "`PyMem_RawRealloc`, or ``NULL`` if an error occurred, instead of a string " "allocated by :c:func:`PyMem_Malloc` or :c:func:`PyMem_Realloc` (:issue:" "`16742`)" msgstr "" #: whatsnew/3.4.rst:2510 msgid "" ":c:func:`PyThread_set_key_value` now always set the value. In Python 3.3, " "the function did nothing if the key already exists (if the current value is " "a non-``NULL`` pointer)." msgstr "" #: whatsnew/3.4.rst:2514 msgid "" "The ``f_tstate`` (thread state) field of the :c:type:`PyFrameObject` " "structure has been removed to fix a bug: see :issue:`14432` for the " "rationale." msgstr "" #: whatsnew/3.4.rst:2519 msgid "Changed in 3.4.3" msgstr "" #: whatsnew/3.4.rst:2524 msgid "" "PEP 476: Enabling certificate verification by default for stdlib http clients" msgstr "" #: whatsnew/3.4.rst:2526 msgid "" ":mod:`http.client` and modules which use it, such as :mod:`urllib.request` " "and :mod:`xmlrpc.client`, will now verify that the server presents a " "certificate which is signed by a CA in the platform trust store and whose " "hostname matches the hostname being requested by default, significantly " "improving security for many applications." msgstr "" #: whatsnew/3.4.rst:2532 msgid "" "For applications which require the old previous behavior, they can pass an " "alternate context::" msgstr ""