# 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: 2018-10-13 17:48+0200\n" "Last-Translator: Julien Palard \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" "X-Generator: Poedit 1.8.11\n" #: whatsnew/3.6.rst:3 #, fuzzy msgid "What's New In Python 3.6" msgstr "Nouveautés de Python 3.0" #: whatsnew/3.6.rst:0 msgid "Editors" msgstr "" #: whatsnew/3.6.rst:5 msgid "Elvis Pranskevichus , Yury Selivanov " msgstr "" #: whatsnew/3.6.rst:47 msgid "" "This article explains the new features in Python 3.6, compared to 3.5. " "Python 3.6 was released on December 23, 2016.  See the `changelog `_ for a full list of changes." msgstr "" #: whatsnew/3.6.rst:54 msgid ":pep:`494` - Python 3.6 Release Schedule" msgstr "" #: whatsnew/3.6.rst:58 msgid "Summary -- Release highlights" msgstr "Résumé – Points forts de la publication" #: whatsnew/3.6.rst:60 msgid "New syntax features:" msgstr "" #: whatsnew/3.6.rst:62 msgid ":ref:`PEP 498 `, formatted string literals." msgstr "" #: whatsnew/3.6.rst:64 msgid ":ref:`PEP 515 `, underscores in numeric literals." msgstr "" #: whatsnew/3.6.rst:66 msgid ":ref:`PEP 526 `, syntax for variable annotations." msgstr "" #: whatsnew/3.6.rst:68 msgid ":ref:`PEP 525 `, asynchronous generators." msgstr "" #: whatsnew/3.6.rst:70 msgid ":ref:`PEP 530 `: asynchronous comprehensions." msgstr "" #: whatsnew/3.6.rst:73 msgid "New library modules:" msgstr "" #: whatsnew/3.6.rst:75 msgid "" ":mod:`secrets`: :ref:`PEP 506 -- Adding A Secrets Module To The Standard " "Library `." msgstr "" #: whatsnew/3.6.rst:78 msgid "CPython implementation improvements:" msgstr "" #: whatsnew/3.6.rst:80 msgid "" "The :ref:`dict ` type has been reimplemented to use a :ref:" "`more compact representation ` based on `a proposal " "by Raymond Hettinger `_ and similar to the `PyPy dict implementation`_. " "This resulted in dictionaries using 20% to 25% less memory when compared to " "Python 3.5." msgstr "" #: whatsnew/3.6.rst:87 msgid "" "Customization of class creation has been simplified with the :ref:`new " "protocol `." msgstr "" #: whatsnew/3.6.rst:90 msgid "" "The class attribute definition order is :ref:`now preserved `." msgstr "" #: whatsnew/3.6.rst:93 msgid "" "The order of elements in ``**kwargs`` now :ref:`corresponds to the order " "` in which keyword arguments were passed to the function." msgstr "" #: whatsnew/3.6.rst:97 msgid "" "DTrace and SystemTap :ref:`probing support ` has been " "added." msgstr "" #: whatsnew/3.6.rst:100 msgid "" "The new :ref:`PYTHONMALLOC ` environment variable " "can now be used to debug the interpreter memory allocation and access errors." msgstr "" #: whatsnew/3.6.rst:105 msgid "Significant improvements in the standard library:" msgstr "" #: whatsnew/3.6.rst:107 msgid "" "The :mod:`asyncio` module has received new features, significant usability " "and performance improvements, and a fair amount of bug fixes. Starting with " "Python 3.6 the ``asyncio`` module is no longer provisional and its API is " "considered stable." msgstr "" #: whatsnew/3.6.rst:112 msgid "" "A new :ref:`file system path protocol ` has been " "implemented to support :term:`path-like objects `. All " "standard library functions operating on paths have been updated to work with " "the new protocol." msgstr "" #: whatsnew/3.6.rst:117 msgid "" "The :mod:`datetime` module has gained support for :ref:`Local Time " "Disambiguation `." msgstr "" #: whatsnew/3.6.rst:120 msgid "" "The :mod:`typing` module received a number of :ref:`improvements `." msgstr "" #: whatsnew/3.6.rst:123 msgid "" "The :mod:`tracemalloc` module has been significantly reworked and is now " "used to provide better output for :exc:`ResourceWarning` as well as provide " "better diagnostics for memory allocation errors. See the :ref:`PYTHONMALLOC " "section ` for more information." msgstr "" #: whatsnew/3.6.rst:130 msgid "Security improvements:" msgstr "" #: whatsnew/3.6.rst:132 msgid "" "The new :mod:`secrets` module has been added to simplify the generation of " "cryptographically strong pseudo-random numbers suitable for managing secrets " "such as account authentication, tokens, and similar." msgstr "" #: whatsnew/3.6.rst:1283 msgid "" "On Linux, :func:`os.urandom` now blocks until the system urandom entropy " "pool is initialized to increase the security. See the :pep:`524` for the " "rationale." msgstr "" #: whatsnew/3.6.rst:140 msgid "The :mod:`hashlib` and :mod:`ssl` modules now support OpenSSL 1.1.0." msgstr "" #: whatsnew/3.6.rst:142 msgid "" "The default settings and feature set of the :mod:`ssl` module have been " "improved." msgstr "" #: whatsnew/3.6.rst:145 msgid "" "The :mod:`hashlib` module received support for the BLAKE2, SHA-3 and SHAKE " "hash algorithms and the :func:`~hashlib.scrypt` key derivation function." msgstr "" #: whatsnew/3.6.rst:149 msgid "Windows improvements:" msgstr "" #: whatsnew/3.6.rst:151 msgid "" ":ref:`PEP 528 ` and :ref:`PEP 529 `, " "Windows filesystem and console encoding changed to UTF-8." msgstr "" #: whatsnew/3.6.rst:154 msgid "" "The ``py.exe`` launcher, when used interactively, no longer prefers Python 2 " "over Python 3 when the user doesn't specify a version (via command line " "arguments or a config file). Handling of shebang lines remains unchanged - " "\"python\" refers to Python 2 in that case." msgstr "" #: whatsnew/3.6.rst:159 msgid "" "``python.exe`` and ``pythonw.exe`` have been marked as long-path aware, " "which means that the 260 character path limit may no longer apply. See :ref:" "`removing the MAX_PATH limitation ` for details." msgstr "" #: whatsnew/3.6.rst:163 msgid "" "A ``._pth`` file can be added to force isolated mode and fully specify all " "search paths to avoid registry and environment lookup. See :ref:`the " "documentation ` for more information." msgstr "" #: whatsnew/3.6.rst:167 msgid "" "A ``python36.zip`` file now works as a landmark to infer :envvar:" "`PYTHONHOME`. See :ref:`the documentation ` for " "more information." msgstr "" #: whatsnew/3.6.rst:176 msgid "New Features" msgstr "Nouvelles fonctionnalités" #: whatsnew/3.6.rst:181 msgid "PEP 498: Formatted string literals" msgstr "" #: whatsnew/3.6.rst:183 msgid "" ":pep:`498` introduces a new kind of string literals: *f-strings*, or :ref:" "`formatted string literals `." msgstr "" #: whatsnew/3.6.rst:186 msgid "" "Formatted string literals are prefixed with ``'f'`` and are similar to the " "format strings accepted by :meth:`str.format`. They contain replacement " "fields surrounded by curly braces. The replacement fields are expressions, " "which are evaluated at run time, and then formatted using the :func:`format` " "protocol::" msgstr "" #: whatsnew/3.6.rst:204 msgid ":pep:`498` -- Literal String Interpolation." msgstr "" #: whatsnew/3.6.rst:204 msgid "PEP written and implemented by Eric V. Smith." msgstr "" #: whatsnew/3.6.rst:206 msgid ":ref:`Feature documentation `." msgstr "" #: whatsnew/3.6.rst:212 msgid "PEP 526: Syntax for variable annotations" msgstr "" #: whatsnew/3.6.rst:214 msgid "" ":pep:`484` introduced the standard for type annotations of function " "parameters, a.k.a. type hints. This PEP adds syntax to Python for annotating " "the types of variables including class variables and instance variables::" msgstr "" #: whatsnew/3.6.rst:225 msgid "" "Just as for function annotations, the Python interpreter does not attach any " "particular meaning to variable annotations and only stores them in the " "``__annotations__`` attribute of a class or module." msgstr "" #: whatsnew/3.6.rst:229 msgid "" "In contrast to variable declarations in statically typed languages, the goal " "of annotation syntax is to provide an easy way to specify structured type " "metadata for third party tools and libraries via the abstract syntax tree " "and the ``__annotations__`` attribute." msgstr "" #: whatsnew/3.6.rst:238 #, fuzzy msgid ":pep:`526` -- Syntax for variable annotations." msgstr ":pep:`526` -- Syntaxe pour les annotations de variables" #: whatsnew/3.6.rst:237 msgid "" "PEP written by Ryan Gonzalez, Philip House, Ivan Levkivskyi, Lisa Roach, and " "Guido van Rossum. Implemented by Ivan Levkivskyi." msgstr "" #: whatsnew/3.6.rst:240 msgid "" "Tools that use or will use the new syntax: `mypy `_, `pytype `_, PyCharm, etc." msgstr "" #: whatsnew/3.6.rst:248 msgid "PEP 515: Underscores in Numeric Literals" msgstr "" #: whatsnew/3.6.rst:250 msgid "" ":pep:`515` adds the ability to use underscores in numeric literals for " "improved readability. For example::" msgstr "" #: whatsnew/3.6.rst:258 msgid "" "Single underscores are allowed between digits and after any base specifier. " "Leading, trailing, or multiple underscores in a row are not allowed." msgstr "" #: whatsnew/3.6.rst:262 msgid "" "The :ref:`string formatting ` language also now has support for " "the ``'_'`` option to signal the use of an underscore for a thousands " "separator for floating point presentation types and for integer presentation " "type ``'d'``. For integer presentation types ``'b'``, ``'o'``, ``'x'``, and " "``'X'``, underscores will be inserted every 4 digits::" msgstr "" #: whatsnew/3.6.rst:276 msgid ":pep:`515` -- Underscores in Numeric Literals" msgstr "" #: whatsnew/3.6.rst:277 msgid "PEP written by Georg Brandl and Serhiy Storchaka." msgstr "" #: whatsnew/3.6.rst:283 msgid "PEP 525: Asynchronous Generators" msgstr "" #: whatsnew/3.6.rst:285 msgid "" ":pep:`492` introduced support for native coroutines and ``async`` / " "``await`` syntax to Python 3.5. A notable limitation of the Python 3.5 " "implementation is that it was not possible to use ``await`` and ``yield`` in " "the same function body. In Python 3.6 this restriction has been lifted, " "making it possible to define *asynchronous generators*::" msgstr "" #: whatsnew/3.6.rst:297 msgid "The new syntax allows for faster and more concise code." msgstr "" #: whatsnew/3.6.rst:301 #, fuzzy msgid ":pep:`525` -- Asynchronous Generators" msgstr ":pep:`525` : Générateurs asynchrones" #: whatsnew/3.6.rst:323 msgid "PEP written and implemented by Yury Selivanov." msgstr "" #: whatsnew/3.6.rst:308 msgid "PEP 530: Asynchronous Comprehensions" msgstr "" #: whatsnew/3.6.rst:310 msgid "" ":pep:`530` adds support for using ``async for`` in list, set, dict " "comprehensions and generator expressions::" msgstr "" #: whatsnew/3.6.rst:315 msgid "" "Additionally, ``await`` expressions are supported in all kinds of " "comprehensions::" msgstr "" #: whatsnew/3.6.rst:322 msgid ":pep:`530` -- Asynchronous Comprehensions" msgstr "" #: whatsnew/3.6.rst:329 msgid "PEP 487: Simpler customization of class creation" msgstr "" #: whatsnew/3.6.rst:331 msgid "" "It is now possible to customize subclass creation without using a metaclass. " "The new ``__init_subclass__`` classmethod will be called on the base class " "whenever a new subclass is created::" msgstr "" #: whatsnew/3.6.rst:348 msgid "" "In order to allow zero-argument :func:`super` calls to work correctly from :" "meth:`~object.__init_subclass__` implementations, custom metaclasses must " "ensure that the new ``__classcell__`` namespace entry is propagated to " "``type.__new__`` (as described in :ref:`class-object-creation`)." msgstr "" #: whatsnew/3.6.rst:394 msgid ":pep:`487` -- Simpler customization of class creation" msgstr "" #: whatsnew/3.6.rst:394 msgid "PEP written and implemented by Martin Teichmann." msgstr "" #: whatsnew/3.6.rst:358 msgid ":ref:`Feature documentation `" msgstr "" #: whatsnew/3.6.rst:364 msgid "PEP 487: Descriptor Protocol Enhancements" msgstr "" #: whatsnew/3.6.rst:366 msgid "" ":pep:`487` extends the descriptor protocol to include the new optional :meth:" "`~object.__set_name__` method. Whenever a new class is defined, the new " "method will be called on all descriptors included in the definition, " "providing them with a reference to the class being defined and the name " "given to the descriptor within the class namespace. In other words, " "instances of descriptors can now know the attribute name of the descriptor " "in the owner class::" msgstr "" #: whatsnew/3.6.rst:396 msgid ":ref:`Feature documentation `" msgstr "" #: whatsnew/3.6.rst:402 msgid "PEP 519: Adding a file system path protocol" msgstr "" #: whatsnew/3.6.rst:404 msgid "" "File system paths have historically been represented as :class:`str` or :" "class:`bytes` objects. This has led to people who write code which operate " "on file system paths to assume that such objects are only one of those two " "types (an :class:`int` representing a file descriptor does not count as that " "is not a file path). Unfortunately that assumption prevents alternative " "object representations of file system paths like :mod:`pathlib` from working " "with pre-existing code, including Python's standard library." msgstr "" #: whatsnew/3.6.rst:413 msgid "" "To fix this situation, a new interface represented by :class:`os.PathLike` " "has been defined. By implementing the :meth:`~os.PathLike.__fspath__` " "method, an object signals that it represents a path. An object can then " "provide a low-level representation of a file system path as a :class:`str` " "or :class:`bytes` object. This means an object is considered :term:`path-" "like ` if it implements :class:`os.PathLike` or is a :" "class:`str` or :class:`bytes` object which represents a file system path. " "Code can use :func:`os.fspath`, :func:`os.fsdecode`, or :func:`os.fsencode` " "to explicitly get a :class:`str` and/or :class:`bytes` representation of a " "path-like object." msgstr "" #: whatsnew/3.6.rst:426 msgid "" "The built-in :func:`open` function has been updated to accept :class:`os." "PathLike` objects, as have all relevant functions in the :mod:`os` and :mod:" "`os.path` modules, and most other functions and classes in the standard " "library. The :class:`os.DirEntry` class and relevant classes in :mod:" "`pathlib` have also been updated to implement :class:`os.PathLike`." msgstr "" #: whatsnew/3.6.rst:433 msgid "" "The hope is that updating the fundamental functions for operating on file " "system paths will lead to third-party code to implicitly support all :term:" "`path-like objects ` without any code changes, or at least " "very minimal ones (e.g. calling :func:`os.fspath` at the beginning of code " "before operating on a path-like object)." msgstr "" #: whatsnew/3.6.rst:440 msgid "" "Here are some examples of how the new interface allows for :class:`pathlib." "Path` to be used more easily and transparently with pre-existing code::" msgstr "" #: whatsnew/3.6.rst:457 msgid "" "(Implemented by Brett Cannon, Ethan Furman, Dusty Phillips, and Jelle " "Zijlstra.)" msgstr "" #: whatsnew/3.6.rst:461 msgid ":pep:`519` -- Adding a file system path protocol" msgstr "" #: whatsnew/3.6.rst:462 msgid "PEP written by Brett Cannon and Koos Zevenhoven." msgstr "" #: whatsnew/3.6.rst:468 msgid "PEP 495: Local Time Disambiguation" msgstr "" #: whatsnew/3.6.rst:470 msgid "" "In most world locations, there have been and will be times when local clocks " "are moved back. In those times, intervals are introduced in which local " "clocks show the same time twice in the same day. In these situations, the " "information displayed on a local clock (or stored in a Python datetime " "instance) is insufficient to identify a particular moment in time." msgstr "" #: whatsnew/3.6.rst:476 msgid "" ":pep:`495` adds the new *fold* attribute to instances of :class:`datetime." "datetime` and :class:`datetime.time` classes to differentiate between two " "moments in time for which local times are the same::" msgstr "" #: whatsnew/3.6.rst:491 msgid "" "The values of the :attr:`fold ` attribute have the " "value ``0`` for all instances except those that represent the second " "(chronologically) moment in time in an ambiguous case." msgstr "" #: whatsnew/3.6.rst:498 msgid ":pep:`495` -- Local Time Disambiguation" msgstr "" #: whatsnew/3.6.rst:498 msgid "" "PEP written by Alexander Belopolsky and Tim Peters, implementation by " "Alexander Belopolsky." msgstr "" #: whatsnew/3.6.rst:505 msgid "PEP 529: Change Windows filesystem encoding to UTF-8" msgstr "" #: whatsnew/3.6.rst:507 msgid "" "Representing filesystem paths is best performed with str (Unicode) rather " "than bytes. However, there are some situations where using bytes is " "sufficient and correct." msgstr "" #: whatsnew/3.6.rst:511 msgid "" "Prior to Python 3.6, data loss could result when using bytes paths on " "Windows. With this change, using bytes to represent paths is now supported " "on Windows, provided those bytes are encoded with the encoding returned by :" "func:`sys.getfilesystemencoding()`, which now defaults to ``'utf-8'``." msgstr "" #: whatsnew/3.6.rst:516 msgid "" "Applications that do not use str to represent paths should use :func:`os." "fsencode()` and :func:`os.fsdecode()` to ensure their bytes are correctly " "encoded. To revert to the previous behaviour, set :envvar:" "`PYTHONLEGACYWINDOWSFSENCODING` or call :func:`sys." "_enablelegacywindowsfsencoding`." msgstr "" #: whatsnew/3.6.rst:522 msgid "" "See :pep:`529` for more information and discussion of code modifications " "that may be required." msgstr "" #: whatsnew/3.6.rst:529 msgid "PEP 528: Change Windows console encoding to UTF-8" msgstr "" #: whatsnew/3.6.rst:531 msgid "" "The default console on Windows will now accept all Unicode characters and " "provide correctly read str objects to Python code. ``sys.stdin``, ``sys." "stdout`` and ``sys.stderr`` now default to utf-8 encoding." msgstr "" #: whatsnew/3.6.rst:535 msgid "" "This change only applies when using an interactive console, and not when " "redirecting files or pipes. To revert to the previous behaviour for " "interactive console use, set :envvar:`PYTHONLEGACYWINDOWSSTDIO`." msgstr "" #: whatsnew/3.6.rst:541 msgid ":pep:`528` -- Change Windows console encoding to UTF-8" msgstr "" #: whatsnew/3.6.rst:542 msgid "PEP written and implemented by Steve Dower." msgstr "" #: whatsnew/3.6.rst:548 msgid "PEP 520: Preserving Class Attribute Definition Order" msgstr "" #: whatsnew/3.6.rst:550 msgid "" "Attributes in a class definition body have a natural ordering: the same " "order in which the names appear in the source. This order is now preserved " "in the new class's :attr:`~object.__dict__` attribute." msgstr "" #: whatsnew/3.6.rst:554 msgid "" "Also, the effective default class *execution* namespace (returned from :ref:" "`type.__prepare__() `) is now an insertion-order-preserving mapping." msgstr "" #: whatsnew/3.6.rst:560 msgid ":pep:`520` -- Preserving Class Attribute Definition Order" msgstr "" #: whatsnew/3.6.rst:575 msgid "PEP written and implemented by Eric Snow." msgstr "" #: whatsnew/3.6.rst:567 msgid "PEP 468: Preserving Keyword Argument Order" msgstr "" #: whatsnew/3.6.rst:569 msgid "" "``**kwargs`` in a function signature is now guaranteed to be an insertion-" "order-preserving mapping." msgstr "" #: whatsnew/3.6.rst:574 msgid ":pep:`468` -- Preserving Keyword Argument Order" msgstr "" #: whatsnew/3.6.rst:581 msgid "New :ref:`dict ` implementation" msgstr "" #: whatsnew/3.6.rst:583 msgid "" "The :ref:`dict ` type now uses a \"compact\" representation " "based on `a proposal by Raymond Hettinger `_ which was `first implemented by PyPy " "`_. The memory usage of the new :func:`dict` is between 20% and 25% " "smaller compared to Python 3.5." msgstr "" #: whatsnew/3.6.rst:591 msgid "" "The order-preserving aspect of this new implementation is considered an " "implementation detail and should not be relied upon (this may change in the " "future, but it is desired to have this new dict implementation in the " "language for a few releases before changing the language spec to mandate " "order-preserving semantics for all current and future Python " "implementations; this also helps preserve backwards-compatibility with older " "versions of the language where random iteration order is still in effect, e." "g. Python 3.5)." msgstr "" #: whatsnew/3.6.rst:600 msgid "" "(Contributed by INADA Naoki in :issue:`27350`. Idea `originally suggested by " "Raymond Hettinger `_.)" msgstr "" #: whatsnew/3.6.rst:608 msgid "PEP 523: Adding a frame evaluation API to CPython" msgstr "" #: whatsnew/3.6.rst:610 msgid "" "While Python provides extensive support to customize how code executes, one " "place it has not done so is in the evaluation of frame objects. If you " "wanted some way to intercept frame evaluation in Python there really wasn't " "any way without directly manipulating function pointers for defined " "functions." msgstr "" #: whatsnew/3.6.rst:616 msgid "" ":pep:`523` changes this by providing an API to make frame evaluation " "pluggable at the C level. This will allow for tools such as debuggers and " "JITs to intercept frame evaluation before the execution of Python code " "begins. This enables the use of alternative evaluation implementations for " "Python code, tracking frame evaluation, etc." msgstr "" #: whatsnew/3.6.rst:623 msgid "" "This API is not part of the limited C API and is marked as private to signal " "that usage of this API is expected to be limited and only applicable to very " "select, low-level use-cases. Semantics of the API will change with Python as " "necessary." msgstr "" #: whatsnew/3.6.rst:630 msgid ":pep:`523` -- Adding a frame evaluation API to CPython" msgstr "" #: whatsnew/3.6.rst:631 msgid "PEP written by Brett Cannon and Dino Viehland." msgstr "" #: whatsnew/3.6.rst:637 msgid "PYTHONMALLOC environment variable" msgstr "" #: whatsnew/3.6.rst:639 msgid "" "The new :envvar:`PYTHONMALLOC` environment variable allows setting the " "Python memory allocators and installing debug hooks." msgstr "" #: whatsnew/3.6.rst:642 msgid "" "It is now possible to install debug hooks on Python memory allocators on " "Python compiled in release mode using ``PYTHONMALLOC=debug``. Effects of " "debug hooks:" msgstr "" #: whatsnew/3.6.rst:645 msgid "Newly allocated memory is filled with the byte ``0xCB``" msgstr "" #: whatsnew/3.6.rst:646 msgid "Freed memory is filled with the byte ``0xDB``" msgstr "" #: whatsnew/3.6.rst:647 msgid "" "Detect violations of the Python memory allocator API. For example, :c:func:" "`PyObject_Free` called on a memory block allocated by :c:func:`PyMem_Malloc`." msgstr "" #: whatsnew/3.6.rst:650 msgid "Detect writes before the start of a buffer (buffer underflows)" msgstr "" #: whatsnew/3.6.rst:651 msgid "Detect writes after the end of a buffer (buffer overflows)" msgstr "" #: whatsnew/3.6.rst:652 msgid "" "Check that the :term:`GIL ` is held when allocator " "functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :" "c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called." msgstr "" #: whatsnew/3.6.rst:656 msgid "Checking if the GIL is held is also a new feature of Python 3.6." msgstr "" #: whatsnew/3.6.rst:658 msgid "" "See the :c:func:`PyMem_SetupDebugHooks` function for debug hooks on Python " "memory allocators." msgstr "" "Reportez-vous à la fonction :c:func:`PyMem_SetupDebugHooks` pour ce qui " "concerne les fonctions de débogage de l'allocateur mémoire de Python." #: whatsnew/3.6.rst:661 msgid "" "It is now also possible to force the usage of the :c:func:`malloc` allocator " "of the C library for all Python memory allocations using " "``PYTHONMALLOC=malloc``. This is helpful when using external memory " "debuggers like Valgrind on a Python compiled in release mode." msgstr "" #: whatsnew/3.6.rst:666 msgid "" "On error, the debug hooks on Python memory allocators now use the :mod:" "`tracemalloc` module to get the traceback where a memory block was allocated." msgstr "" #: whatsnew/3.6.rst:670 msgid "" "Example of fatal error on buffer overflow using ``python3.6 -X " "tracemalloc=5`` (store 5 frames in traces)::" msgstr "" #: whatsnew/3.6.rst:707 msgid "(Contributed by Victor Stinner in :issue:`26516` and :issue:`26564`.)" msgstr "" #: whatsnew/3.6.rst:713 msgid "DTrace and SystemTap probing support" msgstr "" #: whatsnew/3.6.rst:715 msgid "" "Python can now be built ``--with-dtrace`` which enables static markers for " "the following events in the interpreter:" msgstr "" #: whatsnew/3.6.rst:718 msgid "function call/return" msgstr "" #: whatsnew/3.6.rst:720 msgid "garbage collection started/finished" msgstr "" #: whatsnew/3.6.rst:722 msgid "line of code executed." msgstr "" #: whatsnew/3.6.rst:724 msgid "" "This can be used to instrument running interpreters in production, without " "the need to recompile specific :ref:`debug builds ` or " "providing application-specific profiling/debugging code." msgstr "" #: whatsnew/3.6.rst:728 msgid "More details in :ref:`instrumentation`." msgstr "" #: whatsnew/3.6.rst:730 msgid "" "The current implementation is tested on Linux and macOS. Additional markers " "may be added in the future." msgstr "" #: whatsnew/3.6.rst:733 msgid "" "(Contributed by Łukasz Langa in :issue:`21590`, based on patches by Jesús " "Cea Avión, David Malcolm, and Nikhil Benesch.)" msgstr "" #: whatsnew/3.6.rst:738 msgid "Other Language Changes" msgstr "" #: whatsnew/3.6.rst:740 msgid "Some smaller changes made to the core Python language are:" msgstr "" #: whatsnew/3.6.rst:742 msgid "" "A ``global`` or ``nonlocal`` statement must now textually appear before the " "first use of the affected name in the same scope. Previously this was a :exc:" "`SyntaxWarning`." msgstr "" #: whatsnew/3.6.rst:746 msgid "" "It is now possible to set a :ref:`special method ` to ``None`` " "to indicate that the corresponding operation is not available. For example, " "if a class sets :meth:`__iter__` to ``None``, the class is not iterable. " "(Contributed by Andrew Barnert and Ivan Levkivskyi in :issue:`25958`.)" msgstr "" #: whatsnew/3.6.rst:752 msgid "" "Long sequences of repeated traceback lines are now abbreviated as " "``\"[Previous line repeated {count} more times]\"`` (see :ref:`whatsnew36-" "traceback` for an example). (Contributed by Emanuel Barry in :issue:`26823`.)" msgstr "" #: whatsnew/3.6.rst:757 msgid "" "Import now raises the new exception :exc:`ModuleNotFoundError` (subclass of :" "exc:`ImportError`) when it cannot find a module. Code that currently checks " "for ImportError (in try-except) will still work. (Contributed by Eric Snow " "in :issue:`15767`.)" msgstr "" #: whatsnew/3.6.rst:762 msgid "" "Class methods relying on zero-argument ``super()`` will now work correctly " "when called from metaclass methods during class creation. (Contributed by " "Martin Teichmann in :issue:`23722`.)" msgstr "" #: whatsnew/3.6.rst:768 msgid "New Modules" msgstr "" #: whatsnew/3.6.rst:773 msgid "secrets" msgstr "" #: whatsnew/3.6.rst:775 msgid "" "The main purpose of the new :mod:`secrets` module is to provide an obvious " "way to reliably generate cryptographically strong pseudo-random values " "suitable for managing secrets, such as account authentication, tokens, and " "similar." msgstr "" #: whatsnew/3.6.rst:781 msgid "" "Note that the pseudo-random generators in the :mod:`random` module should " "*NOT* be used for security purposes. Use :mod:`secrets` on Python 3.6+ and :" "func:`os.urandom()` on Python 3.5 and earlier." msgstr "" #: whatsnew/3.6.rst:787 msgid ":pep:`506` -- Adding A Secrets Module To The Standard Library" msgstr "" #: whatsnew/3.6.rst:788 msgid "PEP written and implemented by Steven D'Aprano." msgstr "" #: whatsnew/3.6.rst:792 msgid "Improved Modules" msgstr "" #: whatsnew/3.6.rst:795 msgid "array" msgstr "*array*" #: whatsnew/3.6.rst:797 msgid "" "Exhausted iterators of :class:`array.array` will now stay exhausted even if " "the iterated array is extended. This is consistent with the behavior of " "other mutable sequences." msgstr "" #: whatsnew/3.6.rst:801 msgid "Contributed by Serhiy Storchaka in :issue:`26492`." msgstr "" #: whatsnew/3.6.rst:804 msgid "ast" msgstr "ast" #: whatsnew/3.6.rst:806 msgid "" "The new :class:`ast.Constant` AST node has been added. It can be used by " "external AST optimizers for the purposes of constant folding." msgstr "" #: whatsnew/3.6.rst:809 msgid "Contributed by Victor Stinner in :issue:`26146`." msgstr "" #: whatsnew/3.6.rst:813 msgid "asyncio" msgstr "asyncio" #: whatsnew/3.6.rst:815 msgid "" "Starting with Python 3.6 the ``asyncio`` module is no longer provisional and " "its API is considered stable." msgstr "" #: whatsnew/3.6.rst:818 msgid "" "Notable changes in the :mod:`asyncio` module since Python 3.5.0 (all " "backported to 3.5.x due to the provisional status):" msgstr "" #: whatsnew/3.6.rst:821 msgid "" "The :func:`~asyncio.get_event_loop` function has been changed to always " "return the currently running loop when called from coroutines and callbacks. " "(Contributed by Yury Selivanov in :issue:`28613`.)" msgstr "" #: whatsnew/3.6.rst:826 msgid "" "The :func:`~asyncio.ensure_future` function and all functions that use it, " "such as :meth:`loop.run_until_complete() `, " "now accept all kinds of :term:`awaitable objects `. (Contributed " "by Yury Selivanov.)" msgstr "" #: whatsnew/3.6.rst:831 msgid "" "New :func:`~asyncio.run_coroutine_threadsafe` function to submit coroutines " "to event loops from other threads. (Contributed by Vincent Michel.)" msgstr "" #: whatsnew/3.6.rst:835 msgid "" "New :meth:`Transport.is_closing() ` method " "to check if the transport is closing or closed. (Contributed by Yury " "Selivanov.)" msgstr "" #: whatsnew/3.6.rst:839 msgid "" "The :meth:`loop.create_server() ` method can now " "accept a list of hosts. (Contributed by Yann Sionneau.)" msgstr "" #: whatsnew/3.6.rst:843 msgid "" "New :meth:`loop.create_future() ` method to " "create Future objects. This allows alternative event loop implementations, " "such as `uvloop `_, to provide a " "faster :class:`asyncio.Future` implementation. (Contributed by Yury " "Selivanov in :issue:`27041`.)" msgstr "" #: whatsnew/3.6.rst:850 msgid "" "New :meth:`loop.get_exception_handler() ` method to get the current exception handler. " "(Contributed by Yury Selivanov in :issue:`27040`.)" msgstr "" #: whatsnew/3.6.rst:854 msgid "" "New :meth:`StreamReader.readuntil() ` method " "to read data from the stream until a separator bytes sequence appears. " "(Contributed by Mark Korenberg.)" msgstr "" #: whatsnew/3.6.rst:859 msgid "" "The performance of :meth:`StreamReader.readexactly() ` has been improved. (Contributed by Mark Korenberg in :issue:" "`28370`.)" msgstr "" #: whatsnew/3.6.rst:863 msgid "" "The :meth:`loop.getaddrinfo() ` method is " "optimized to avoid calling the system ``getaddrinfo`` function if the " "address is already resolved. (Contributed by A. Jesse Jiryu Davis.)" msgstr "" #: whatsnew/3.6.rst:868 msgid "" "The :meth:`loop.stop() ` method has been changed to stop " "the loop immediately after the current iteration. Any new callbacks " "scheduled as a result of the last iteration will be discarded. (Contributed " "by Guido van Rossum in :issue:`25593`.)" msgstr "" #: whatsnew/3.6.rst:874 msgid "" ":meth:`Future.set_exception ` will now " "raise :exc:`TypeError` when passed an instance of the :exc:`StopIteration` " "exception. (Contributed by Chris Angelico in :issue:`26221`.)" msgstr "" #: whatsnew/3.6.rst:879 msgid "" "New :meth:`loop.connect_accepted_socket() ` method to be used by servers that accept " "connections outside of asyncio, but that use asyncio to handle them. " "(Contributed by Jim Fulton in :issue:`27392`.)" msgstr "" #: whatsnew/3.6.rst:884 msgid "" "``TCP_NODELAY`` flag is now set for all TCP transports by default. " "(Contributed by Yury Selivanov in :issue:`27456`.)" msgstr "" #: whatsnew/3.6.rst:887 msgid "" "New :meth:`loop.shutdown_asyncgens() ` to " "properly close pending asynchronous generators before closing the loop. " "(Contributed by Yury Selivanov in :issue:`28003`.)" msgstr "" #: whatsnew/3.6.rst:892 msgid "" ":class:`Future ` and :class:`Task ` classes " "now have an optimized C implementation which makes asyncio code up to 30% " "faster. (Contributed by Yury Selivanov and INADA Naoki in :issue:`26081` " "and :issue:`28544`.)" msgstr "" #: whatsnew/3.6.rst:900 msgid "binascii" msgstr "binascii" #: whatsnew/3.6.rst:902 msgid "" "The :func:`~binascii.b2a_base64` function now accepts an optional *newline* " "keyword argument to control whether the newline character is appended to the " "return value. (Contributed by Victor Stinner in :issue:`25357`.)" msgstr "" #: whatsnew/3.6.rst:909 msgid "cmath" msgstr "cmath" #: whatsnew/3.6.rst:911 msgid "" "The new :const:`cmath.tau` (*τ*) constant has been added. (Contributed by " "Lisa Roach in :issue:`12345`, see :pep:`628` for details.)" msgstr "" #: whatsnew/3.6.rst:914 msgid "" "New constants: :const:`cmath.inf` and :const:`cmath.nan` to match :const:" "`math.inf` and :const:`math.nan`, and also :const:`cmath.infj` and :const:" "`cmath.nanj` to match the format used by complex repr. (Contributed by Mark " "Dickinson in :issue:`23229`.)" msgstr "" #: whatsnew/3.6.rst:921 msgid "collections" msgstr "" #: whatsnew/3.6.rst:923 msgid "" "The new :class:`~collections.abc.Collection` abstract base class has been " "added to represent sized iterable container classes. (Contributed by Ivan " "Levkivskyi, docs by Neil Girdhar in :issue:`27598`.)" msgstr "" #: whatsnew/3.6.rst:927 msgid "" "The new :class:`~collections.abc.Reversible` abstract base class represents " "iterable classes that also provide the :meth:`__reversed__` method. " "(Contributed by Ivan Levkivskyi in :issue:`25987`.)" msgstr "" #: whatsnew/3.6.rst:931 msgid "" "The new :class:`~collections.abc.AsyncGenerator` abstract base class " "represents asynchronous generators. (Contributed by Yury Selivanov in :issue:" "`28720`.)" msgstr "" #: whatsnew/3.6.rst:935 msgid "" "The :func:`~collections.namedtuple` function now accepts an optional keyword " "argument *module*, which, when specified, is used for the ``__module__`` " "attribute of the returned named tuple class. (Contributed by Raymond " "Hettinger in :issue:`17941`.)" msgstr "" #: whatsnew/3.6.rst:2281 msgid "" "The *verbose* and *rename* arguments for :func:`~collections.namedtuple` are " "now keyword-only. (Contributed by Raymond Hettinger in :issue:`25628`.)" msgstr "" #: whatsnew/3.6.rst:944 msgid "" "Recursive :class:`collections.deque` instances can now be pickled. " "(Contributed by Serhiy Storchaka in :issue:`26482`.)" msgstr "" #: whatsnew/3.6.rst:949 msgid "concurrent.futures" msgstr "concurrent.futures" #: whatsnew/3.6.rst:951 msgid "" "The :class:`ThreadPoolExecutor ` " "class constructor now accepts an optional *thread_name_prefix* argument to " "make it possible to customize the names of the threads created by the pool. " "(Contributed by Gregory P. Smith in :issue:`27664`.)" msgstr "" #: whatsnew/3.6.rst:959 msgid "contextlib" msgstr "contextlib" #: whatsnew/3.6.rst:961 msgid "" "The :class:`contextlib.AbstractContextManager` class has been added to " "provide an abstract base class for context managers. It provides a sensible " "default implementation for ``__enter__()`` which returns ``self`` and leaves " "``__exit__()`` an abstract method. A matching class has been added to the :" "mod:`typing` module as :class:`typing.ContextManager`. (Contributed by Brett " "Cannon in :issue:`25609`.)" msgstr "" #: whatsnew/3.6.rst:971 msgid "datetime" msgstr "datetime" #: whatsnew/3.6.rst:973 msgid "" "The :class:`~datetime.datetime` and :class:`~datetime.time` classes have the " "new :attr:`~time.fold` attribute used to disambiguate local time when " "necessary. Many functions in the :mod:`datetime` have been updated to " "support local time disambiguation. See :ref:`Local Time Disambiguation " "` section for more information. (Contributed by Alexander " "Belopolsky in :issue:`24773`.)" msgstr "" #: whatsnew/3.6.rst:981 msgid "" "The :meth:`datetime.strftime() ` and :meth:`date." "strftime() ` methods now support ISO 8601 date " "directives ``%G``, ``%u`` and ``%V``. (Contributed by Ashley Anderson in :" "issue:`12006`.)" msgstr "" #: whatsnew/3.6.rst:986 msgid "" "The :func:`datetime.isoformat() ` function now " "accepts an optional *timespec* argument that specifies the number of " "additional components of the time value to include. (Contributed by " "Alessandro Cucci and Alexander Belopolsky in :issue:`19475`.)" msgstr "" #: whatsnew/3.6.rst:991 msgid "" "The :meth:`datetime.combine() ` now accepts an " "optional *tzinfo* argument. (Contributed by Alexander Belopolsky in :issue:" "`27661`.)" msgstr "" #: whatsnew/3.6.rst:997 msgid "decimal" msgstr "" #: whatsnew/3.6.rst:999 msgid "" "New :meth:`Decimal.as_integer_ratio() ` " "method that returns a pair ``(n, d)`` of integers that represent the given :" "class:`~decimal.Decimal` instance as a fraction, in lowest terms and with a " "positive denominator::" msgstr "" #: whatsnew/3.6.rst:1007 msgid "(Contributed by Stefan Krah amd Mark Dickinson in :issue:`25928`.)" msgstr "" #: whatsnew/3.6.rst:1986 msgid "distutils" msgstr "distutils" #: whatsnew/3.6.rst:1014 msgid "" "The ``default_format`` attribute has been removed from :class:`distutils." "command.sdist.sdist` and the ``formats`` attribute defaults to " "``['gztar']``. Although not anticipated, any code relying on the presence of " "``default_format`` may need to be adapted. See :issue:`27819` for more " "details." msgstr "" #: whatsnew/3.6.rst:1022 msgid "email" msgstr "email" #: whatsnew/3.6.rst:1024 msgid "" "The new email API, enabled via the *policy* keyword to various constructors, " "is no longer provisional. The :mod:`email` documentation has been " "reorganized and rewritten to focus on the new API, while retaining the old " "documentation for the legacy API. (Contributed by R. David Murray in :issue:" "`24277`.)" msgstr "" #: whatsnew/3.6.rst:1029 msgid "" "The :mod:`email.mime` classes now all accept an optional *policy* keyword. " "(Contributed by Berker Peksag in :issue:`27331`.)" msgstr "" #: whatsnew/3.6.rst:1032 msgid "" "The :class:`~email.generator.DecodedGenerator` now supports the *policy* " "keyword." msgstr "" #: whatsnew/3.6.rst:1035 msgid "" "There is a new :mod:`~email.policy` attribute, :attr:`~email.policy.Policy." "message_factory`, that controls what class is used by default when the " "parser creates new message objects. For the :attr:`email.policy.compat32` " "policy this is :class:`~email.message.Message`, for the new policies it is :" "class:`~email.message.EmailMessage`. (Contributed by R. David Murray in :" "issue:`20476`.)" msgstr "" #: whatsnew/3.6.rst:1044 msgid "encodings" msgstr "" #: whatsnew/3.6.rst:1046 msgid "" "On Windows, added the ``'oem'`` encoding to use ``CP_OEMCP``, and the " "``'ansi'`` alias for the existing ``'mbcs'`` encoding, which uses the " "``CP_ACP`` code page. (Contributed by Steve Dower in :issue:`27959`.)" msgstr "" #: whatsnew/3.6.rst:1052 msgid "enum" msgstr "enum" #: whatsnew/3.6.rst:1054 msgid "" "Two new enumeration base classes have been added to the :mod:`enum` module: :" "class:`~enum.Flag` and :class:`~enum.IntFlags`. Both are used to define " "constants that can be combined using the bitwise operators. (Contributed by " "Ethan Furman in :issue:`23591`.)" msgstr "" #: whatsnew/3.6.rst:1059 msgid "" "Many standard library modules have been updated to use the :class:`~enum." "IntFlags` class for their constants." msgstr "" #: whatsnew/3.6.rst:1062 msgid "" "The new :class:`enum.auto` value can be used to assign values to enum " "members automatically::" msgstr "" #: whatsnew/3.6.rst:1076 msgid "faulthandler" msgstr "" #: whatsnew/3.6.rst:1078 msgid "" "On Windows, the :mod:`faulthandler` module now installs a handler for " "Windows exceptions: see :func:`faulthandler.enable`. (Contributed by Victor " "Stinner in :issue:`23848`.)" msgstr "" #: whatsnew/3.6.rst:1084 msgid "fileinput" msgstr "" #: whatsnew/3.6.rst:1086 msgid "" ":func:`~fileinput.hook_encoded` now supports the *errors* argument. " "(Contributed by Joseph Hackman in :issue:`25788`.)" msgstr "" #: whatsnew/3.6.rst:1091 msgid "hashlib" msgstr "" #: whatsnew/3.6.rst:1093 msgid "" ":mod:`hashlib` supports OpenSSL 1.1.0. The minimum recommend version is " "1.0.2. (Contributed by Christian Heimes in :issue:`26470`.)" msgstr "" #: whatsnew/3.6.rst:1096 msgid "" "BLAKE2 hash functions were added to the module. :func:`~hashlib.blake2b` " "and :func:`~hashlib.blake2s` are always available and support the full " "feature set of BLAKE2. (Contributed by Christian Heimes in :issue:`26798` " "based on code by Dmitry Chestnykh and Samuel Neves. Documentation written by " "Dmitry Chestnykh.)" msgstr "" #: whatsnew/3.6.rst:1102 msgid "" "The SHA-3 hash functions :func:`~hashlib.sha3_224`, :func:`~hashlib." "sha3_256`, :func:`~hashlib.sha3_384`, :func:`~hashlib.sha3_512`, and SHAKE " "hash functions :func:`~hashlib.shake_128` and :func:`~hashlib.shake_256` " "were added. (Contributed by Christian Heimes in :issue:`16113`. Keccak Code " "Package by Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche, " "and Ronny Van Keer.)" msgstr "" #: whatsnew/3.6.rst:1109 msgid "" "The password-based key derivation function :func:`~hashlib.scrypt` is now " "available with OpenSSL 1.1.0 and newer. (Contributed by Christian Heimes in :" "issue:`27928`.)" msgstr "" #: whatsnew/3.6.rst:1114 msgid "http.client" msgstr "" #: whatsnew/3.6.rst:1116 msgid "" ":meth:`HTTPConnection.request() ` and :" "meth:`~http.client.HTTPConnection.endheaders` both now support chunked " "encoding request bodies. (Contributed by Demian Brecht and Rolf Krahl in :" "issue:`12319`.)" msgstr "" #: whatsnew/3.6.rst:1123 msgid "idlelib and IDLE" msgstr "" #: whatsnew/3.6.rst:1125 msgid "" "The idlelib package is being modernized and refactored to make IDLE look and " "work better and to make the code easier to understand, test, and improve. " "Part of making IDLE look better, especially on Linux and Mac, is using ttk " "widgets, mostly in the dialogs. As a result, IDLE no longer runs with tcl/" "tk 8.4. It now requires tcl/tk 8.5 or 8.6. We recommend running the latest " "release of either." msgstr "" #: whatsnew/3.6.rst:1132 msgid "" "'Modernizing' includes renaming and consolidation of idlelib modules. The " "renaming of files with partial uppercase names is similar to the renaming " "of, for instance, Tkinter and TkFont to tkinter and tkinter.font in 3.0. As " "a result, imports of idlelib files that worked in 3.5 will usually not work " "in 3.6. At least a module name change will be needed (see idlelib/README." "txt), sometimes more. (Name changes contributed by Al Swiegart and Terry " "Reedy in :issue:`24225`. Most idlelib patches since have been and will be " "part of the process.)" msgstr "" #: whatsnew/3.6.rst:1141 msgid "" "In compensation, the eventual result with be that some idlelib classes will " "be easier to use, with better APIs and docstrings explaining them. " "Additional useful information will be added to idlelib when available." msgstr "" #: whatsnew/3.6.rst:1145 msgid "New in 3.6.2:" msgstr "" #: whatsnew/3.6.rst:1147 msgid "" "Multiple fixes for autocompletion. (Contributed by Louie Lu in :issue:" "`15786`.)" msgstr "" #: whatsnew/3.6.rst:1149 msgid "New in 3.6.3:" msgstr "" #: whatsnew/3.6.rst:1151 msgid "" "Module Browser (on the File menu, formerly called Class Browser), now " "displays nested functions and classes in addition to top-level functions and " "classes. (Contributed by Guilherme Polo, Cheryl Sabella, and Terry Jan Reedy " "in :issue:`1612262`.)" msgstr "" #: whatsnew/3.6.rst:1157 msgid "" "The IDLE features formerly implemented as extensions have been reimplemented " "as normal features. Their settings have been moved from the Extensions tab " "to other dialog tabs. (Contributed by Charles Wohlganger and Terry Jan Reedy " "in :issue:`27099`.)" msgstr "" #: whatsnew/3.6.rst:1162 msgid "" "The Settings dialog (Options, Configure IDLE) has been partly rewritten to " "improve both appearance and function. (Contributed by Cheryl Sabella and " "Terry Jan Reedy in multiple issues.)" msgstr "" #: whatsnew/3.6.rst:1166 msgid "New in 3.6.4:" msgstr "" #: whatsnew/3.6.rst:1168 msgid "" "The font sample now includes a selection of non-Latin characters so that " "users can better see the effect of selecting a particular font. (Contributed " "by Terry Jan Reedy in :issue:`13802`.) The sample can be edited to include " "other characters. (Contributed by Serhiy Storchaka in :issue:`31860`.)" msgstr "" #: whatsnew/3.6.rst:1174 msgid "New in 3.6.6:" msgstr "" #: whatsnew/3.6.rst:1176 msgid "" "Editor code context option revised. Box displays all context lines up to " "maxlines. Clicking on a context line jumps the editor to that line. " "Context colors for custom themes is added to Highlights tab of Settings " "dialog. (Contributed by Cheryl Sabella and Terry Jan Reedy in :issue:" "`33642`, :issue:`33768`, and :issue:`33679`.)" msgstr "" #: whatsnew/3.6.rst:1182 msgid "" "On Windows, a new API call tells Windows that tk scales for DPI. On Windows " "8.1+ or 10, with DPI compatibility properties of the Python binary " "unchanged, and a monitor resolution greater than 96 DPI, this should make " "text and lines sharper. It should otherwise have no effect. (Contributed by " "Terry Jan Reedy in :issue:`33656`.)" msgstr "" #: whatsnew/3.6.rst:1188 msgid "New in 3.6.7:" msgstr "" #: whatsnew/3.6.rst:1190 msgid "" "Output over N lines (50 by default) is squeezed down to a button. N can be " "changed in the PyShell section of the General page of the Settings dialog. " "Fewer, but possibly extra long, lines can be squeezed by right clicking on " "the output. Squeezed output can be expanded in place by double-clicking the " "button or into the clipboard or a separate window by right-clicking the " "button. (Contributed by Tal Einat in :issue:`1529353`.)" msgstr "" #: whatsnew/3.6.rst:2003 msgid "importlib" msgstr "importlib" #: whatsnew/3.6.rst:1201 msgid "" "Import now raises the new exception :exc:`ModuleNotFoundError` (subclass of :" "exc:`ImportError`) when it cannot find a module. Code that current checks " "for ``ImportError`` (in try-except) will still work. (Contributed by Eric " "Snow in :issue:`15767`.)" msgstr "" #: whatsnew/3.6.rst:1206 msgid "" ":class:`importlib.util.LazyLoader` now calls :meth:`~importlib.abc.Loader." "create_module` on the wrapped loader, removing the restriction that :class:" "`importlib.machinery.BuiltinImporter` and :class:`importlib.machinery." "ExtensionFileLoader` couldn't be used with :class:`importlib.util." "LazyLoader`." msgstr "" #: whatsnew/3.6.rst:1212 msgid "" ":func:`importlib.util.cache_from_source`, :func:`importlib.util." "source_from_cache`, and :func:`importlib.util.spec_from_file_location` now " "accept a :term:`path-like object`." msgstr "" #: whatsnew/3.6.rst:1219 msgid "inspect" msgstr "" #: whatsnew/3.6.rst:1221 msgid "" "The :func:`inspect.signature() ` function now reports the " "implicit ``.0`` parameters generated by the compiler for comprehension and " "generator expression scopes as if they were positional-only parameters " "called ``implicit0``. (Contributed by Jelle Zijlstra in :issue:`19611`.)" msgstr "" #: whatsnew/3.6.rst:1226 msgid "" "To reduce code churn when upgrading from Python 2.7 and the legacy :func:" "`inspect.getargspec` API, the previously documented deprecation of :func:" "`inspect.getfullargspec` has been reversed. While this function is " "convenient for single/source Python 2/3 code bases, the richer :func:" "`inspect.signature` interface remains the recommended approach for new code. " "(Contributed by Nick Coghlan in :issue:`27172`)" msgstr "" #: whatsnew/3.6.rst:1235 msgid "json" msgstr "" #: whatsnew/3.6.rst:1237 msgid "" ":func:`json.load` and :func:`json.loads` now support binary input. Encoded " "JSON should be represented using either UTF-8, UTF-16, or UTF-32. " "(Contributed by Serhiy Storchaka in :issue:`17909`.)" msgstr "" #: whatsnew/3.6.rst:1243 msgid "logging" msgstr "" #: whatsnew/3.6.rst:1245 msgid "" "The new :meth:`WatchedFileHandler.reopenIfNeeded() ` method has been added to add the ability " "to check if the log file needs to be reopened. (Contributed by Marian Horban " "in :issue:`24884`.)" msgstr "" #: whatsnew/3.6.rst:1252 msgid "math" msgstr "" #: whatsnew/3.6.rst:1254 msgid "" "The tau (*τ*) constant has been added to the :mod:`math` and :mod:`cmath` " "modules. (Contributed by Lisa Roach in :issue:`12345`, see :pep:`628` for " "details.)" msgstr "" #: whatsnew/3.6.rst:1260 msgid "multiprocessing" msgstr "multiprocessing" #: whatsnew/3.6.rst:1262 msgid "" ":ref:`Proxy Objects ` returned by :func:" "`multiprocessing.Manager` can now be nested. (Contributed by Davin Potts in :" "issue:`6766`.)" msgstr "" #: whatsnew/3.6.rst:2017 msgid "os" msgstr "" #: whatsnew/3.6.rst:1270 msgid "" "See the summary of :ref:`PEP 519 ` for details on how " "the :mod:`os` and :mod:`os.path` modules now support :term:`path-like " "objects `." msgstr "" #: whatsnew/3.6.rst:1274 msgid ":func:`~os.scandir` now supports :class:`bytes` paths on Windows." msgstr "" #: whatsnew/3.6.rst:1276 msgid "" "A new :meth:`~os.scandir.close` method allows explicitly closing a :func:" "`~os.scandir` iterator. The :func:`~os.scandir` iterator now supports the :" "term:`context manager` protocol. If a :func:`scandir` iterator is neither " "exhausted nor explicitly closed a :exc:`ResourceWarning` will be emitted in " "its destructor. (Contributed by Serhiy Storchaka in :issue:`25994`.)" msgstr "" #: whatsnew/3.6.rst:1286 msgid "" "The Linux ``getrandom()`` syscall (get random bytes) is now exposed as the " "new :func:`os.getrandom` function. (Contributed by Victor Stinner, part of " "the :pep:`524`)" msgstr "" #: whatsnew/3.6.rst:1292 msgid "pathlib" msgstr "pathlib" #: whatsnew/3.6.rst:1294 msgid "" ":mod:`pathlib` now supports :term:`path-like objects `. " "(Contributed by Brett Cannon in :issue:`27186`.)" msgstr "" #: whatsnew/3.6.rst:1297 msgid "See the summary of :ref:`PEP 519 ` for details." msgstr "" #: whatsnew/3.6.rst:1301 msgid "pdb" msgstr "" #: whatsnew/3.6.rst:1303 msgid "" "The :class:`~pdb.Pdb` class constructor has a new optional *readrc* argument " "to control whether ``.pdbrc`` files should be read." msgstr "" #: whatsnew/3.6.rst:1308 msgid "pickle" msgstr "" #: whatsnew/3.6.rst:1310 msgid "" "Objects that need ``__new__`` called with keyword arguments can now be " "pickled using :ref:`pickle protocols ` older than protocol " "version 4. Protocol version 4 already supports this case. (Contributed by " "Serhiy Storchaka in :issue:`24164`.)" msgstr "" #: whatsnew/3.6.rst:1317 msgid "pickletools" msgstr "" #: whatsnew/3.6.rst:1319 msgid "" ":func:`pickletools.dis()` now outputs the implicit memo index for the " "``MEMOIZE`` opcode. (Contributed by Serhiy Storchaka in :issue:`25382`.)" msgstr "" #: whatsnew/3.6.rst:1325 msgid "pydoc" msgstr "" #: whatsnew/3.6.rst:1327 msgid "" "The :mod:`pydoc` module has learned to respect the ``MANPAGER`` environment " "variable. (Contributed by Matthias Klose in :issue:`8637`.)" msgstr "" #: whatsnew/3.6.rst:1331 msgid "" ":func:`help` and :mod:`pydoc` can now list named tuple fields in the order " "they were defined rather than alphabetically. (Contributed by Raymond " "Hettinger in :issue:`24879`.)" msgstr "" #: whatsnew/3.6.rst:1337 msgid "random" msgstr "" #: whatsnew/3.6.rst:1339 msgid "" "The new :func:`~random.choices` function returns a list of elements of " "specified size from the given population with optional weights. (Contributed " "by Raymond Hettinger in :issue:`18844`.)" msgstr "" #: whatsnew/3.6.rst:2025 msgid "re" msgstr "" #: whatsnew/3.6.rst:1347 msgid "" "Added support of modifier spans in regular expressions. Examples: ``'(?i:" "p)ython'`` matches ``'python'`` and ``'Python'``, but not ``'PYTHON'``; ``'(?" "i)g(?-i:v)r'`` matches ``'GvR'`` and ``'gvr'``, but not ``'GVR'``. " "(Contributed by Serhiy Storchaka in :issue:`433028`.)" msgstr "" #: whatsnew/3.6.rst:1352 msgid "" "Match object groups can be accessed by ``__getitem__``, which is equivalent " "to ``group()``. So ``mo['name']`` is now equivalent to ``mo." "group('name')``. (Contributed by Eric Smith in :issue:`24454`.)" msgstr "" #: whatsnew/3.6.rst:1356 msgid "" ":class:`~re.Match` objects now support :meth:`index-like objects ` as group indices. (Contributed by Jeroen Demeyer and Xiang Zhang " "in :issue:`27177`.)" msgstr "" #: whatsnew/3.6.rst:1363 msgid "readline" msgstr "" #: whatsnew/3.6.rst:1365 msgid "" "Added :func:`~readline.set_auto_history` to enable or disable automatic " "addition of input to the history list. (Contributed by Tyler Crompton in :" "issue:`26870`.)" msgstr "" #: whatsnew/3.6.rst:1371 msgid "rlcompleter" msgstr "" #: whatsnew/3.6.rst:1373 msgid "" "Private and special attribute names now are omitted unless the prefix starts " "with underscores. A space or a colon is added after some completed " "keywords. (Contributed by Serhiy Storchaka in :issue:`25011` and :issue:" "`25209`.)" msgstr "" #: whatsnew/3.6.rst:1379 msgid "shlex" msgstr "" #: whatsnew/3.6.rst:1381 msgid "" "The :class:`~shlex.shlex` has much :ref:`improved shell compatibility " "` through the new *punctuation_chars* argument " "to control which characters are treated as punctuation. (Contributed by " "Vinay Sajip in :issue:`1521950`.)" msgstr "" #: whatsnew/3.6.rst:1389 msgid "site" msgstr "" #: whatsnew/3.6.rst:1391 msgid "" "When specifying paths to add to :attr:`sys.path` in a ``.pth`` file, you may " "now specify file paths on top of directories (e.g. zip files). (Contributed " "by Wolfgang Langner in :issue:`26587`)." msgstr "" #: whatsnew/3.6.rst:1397 msgid "sqlite3" msgstr "" #: whatsnew/3.6.rst:1399 msgid "" ":attr:`sqlite3.Cursor.lastrowid` now supports the ``REPLACE`` statement. " "(Contributed by Alex LordThorsen in :issue:`16864`.)" msgstr "" #: whatsnew/3.6.rst:1404 msgid "socket" msgstr "" #: whatsnew/3.6.rst:1406 msgid "" "The :func:`~socket.socket.ioctl` function now supports the :data:`~socket." "SIO_LOOPBACK_FAST_PATH` control code. (Contributed by Daniel Stokes in :" "issue:`26536`.)" msgstr "" #: whatsnew/3.6.rst:1410 msgid "" "The :meth:`~socket.socket.getsockopt` constants ``SO_DOMAIN``, " "``SO_PROTOCOL``, ``SO_PEERSEC``, and ``SO_PASSSEC`` are now supported. " "(Contributed by Christian Heimes in :issue:`26907`.)" msgstr "" #: whatsnew/3.6.rst:1414 msgid "" "The :meth:`~socket.socket.setsockopt` now supports the ``setsockopt(level, " "optname, None, optlen: int)`` form. (Contributed by Christian Heimes in :" "issue:`27744`.)" msgstr "" #: whatsnew/3.6.rst:1418 msgid "" "The socket module now supports the address family :data:`~socket.AF_ALG` to " "interface with Linux Kernel crypto API. ``ALG_*``, ``SOL_ALG`` and :meth:" "`~socket.socket.sendmsg_afalg` were added. (Contributed by Christian Heimes " "in :issue:`27744` with support from Victor Stinner.)" msgstr "" #: whatsnew/3.6.rst:1424 msgid "" "New Linux constants ``TCP_USER_TIMEOUT`` and ``TCP_CONGESTION`` were added. " "(Contributed by Omar Sandoval, :issue:`26273`)." msgstr "" #: whatsnew/3.6.rst:1429 msgid "socketserver" msgstr "" #: whatsnew/3.6.rst:1431 msgid "" "Servers based on the :mod:`socketserver` module, including those defined in :" "mod:`http.server`, :mod:`xmlrpc.server` and :mod:`wsgiref.simple_server`, " "now support the :term:`context manager` protocol. (Contributed by Aviv " "Palivoda in :issue:`26404`.)" msgstr "" #: whatsnew/3.6.rst:1437 msgid "" "The :attr:`~socketserver.StreamRequestHandler.wfile` attribute of :class:" "`~socketserver.StreamRequestHandler` classes now implements the :class:`io." "BufferedIOBase` writable interface. In particular, calling :meth:`~io." "BufferedIOBase.write` is now guaranteed to send the data in full. " "(Contributed by Martin Panter in :issue:`26721`.)" msgstr "" #: whatsnew/3.6.rst:2033 msgid "ssl" msgstr "" #: whatsnew/3.6.rst:1447 msgid "" ":mod:`ssl` supports OpenSSL 1.1.0. The minimum recommend version is 1.0.2. " "(Contributed by Christian Heimes in :issue:`26470`.)" msgstr "" #: whatsnew/3.6.rst:1450 msgid "" "3DES has been removed from the default cipher suites and ChaCha20 Poly1305 " "cipher suites have been added. (Contributed by Christian Heimes in :issue:" "`27850` and :issue:`27766`.)" msgstr "" #: whatsnew/3.6.rst:1454 msgid "" ":class:`~ssl.SSLContext` has better default configuration for options and " "ciphers. (Contributed by Christian Heimes in :issue:`28043`.)" msgstr "" #: whatsnew/3.6.rst:1458 msgid "" "SSL session can be copied from one client-side connection to another with " "the new :class:`~ssl.SSLSession` class. TLS session resumption can speed up " "the initial handshake, reduce latency and improve performance (Contributed " "by Christian Heimes in :issue:`19500` based on a draft by Alex Warhawk.)" msgstr "" #: whatsnew/3.6.rst:1464 msgid "" "The new :meth:`~ssl.SSLContext.get_ciphers` method can be used to get a list " "of enabled ciphers in order of cipher priority." msgstr "" #: whatsnew/3.6.rst:1467 msgid "" "All constants and flags have been converted to :class:`~enum.IntEnum` and :" "class:`~enum.IntFlags`. (Contributed by Christian Heimes in :issue:`28025`.)" msgstr "" #: whatsnew/3.6.rst:1471 msgid "" "Server and client-side specific TLS protocols for :class:`~ssl.SSLContext` " "were added. (Contributed by Christian Heimes in :issue:`28085`.)" msgstr "" #: whatsnew/3.6.rst:1477 msgid "statistics" msgstr "" #: whatsnew/3.6.rst:1479 msgid "" "A new :func:`~statistics.harmonic_mean` function has been added. " "(Contributed by Steven D'Aprano in :issue:`27181`.)" msgstr "" #: whatsnew/3.6.rst:1484 msgid "struct" msgstr "struct" #: whatsnew/3.6.rst:1486 msgid "" ":mod:`struct` now supports IEEE 754 half-precision floats via the ``'e'`` " "format specifier. (Contributed by Eli Stevens, Mark Dickinson in :issue:" "`11734`.)" msgstr "" #: whatsnew/3.6.rst:1492 msgid "subprocess" msgstr "subprocess" #: whatsnew/3.6.rst:1494 msgid "" ":class:`subprocess.Popen` destructor now emits a :exc:`ResourceWarning` " "warning if the child process is still running. Use the context manager " "protocol (``with proc: ...``) or explicitly call the :meth:`~subprocess." "Popen.wait` method to read the exit status of the child process. " "(Contributed by Victor Stinner in :issue:`26741`.)" msgstr "" #: whatsnew/3.6.rst:1500 msgid "" "The :class:`subprocess.Popen` constructor and all functions that pass " "arguments through to it now accept *encoding* and *errors* arguments. " "Specifying either of these will enable text mode for the *stdin*, *stdout* " "and *stderr* streams. (Contributed by Steve Dower in :issue:`6135`.)" msgstr "" #: whatsnew/3.6.rst:1507 msgid "sys" msgstr "sys" #: whatsnew/3.6.rst:1509 msgid "" "The new :func:`~sys.getfilesystemencodeerrors` function returns the name of " "the error mode used to convert between Unicode filenames and bytes " "filenames. (Contributed by Steve Dower in :issue:`27781`.)" msgstr "" #: whatsnew/3.6.rst:1513 msgid "" "On Windows the return value of the :func:`~sys.getwindowsversion` function " "now includes the *platform_version* field which contains the accurate major " "version, minor version and build number of the current operating system, " "rather than the version that is being emulated for the process (Contributed " "by Steve Dower in :issue:`27932`.)" msgstr "" #: whatsnew/3.6.rst:1521 msgid "telnetlib" msgstr "" #: whatsnew/3.6.rst:1523 msgid "" ":class:`~telnetlib.Telnet` is now a context manager (contributed by Stéphane " "Wirtel in :issue:`25485`)." msgstr "" #: whatsnew/3.6.rst:1528 msgid "time" msgstr "time" #: whatsnew/3.6.rst:1530 #, fuzzy msgid "" "The :class:`~time.struct_time` attributes :attr:`tm_gmtoff` and :attr:" "`tm_zone` are now available on all platforms." msgstr "" "Les attributs :class:`struct_time` :attr:`tm_gmtoff` et :attr:`tm_zone` sont " "maintenant disponibles sur toutes les plateformes." #: whatsnew/3.6.rst:1535 msgid "timeit" msgstr "timeit" #: whatsnew/3.6.rst:1537 msgid "" "The new :meth:`Timer.autorange() ` convenience " "method has been added to call :meth:`Timer.timeit() ` " "repeatedly so that the total run time is greater or equal to 200 " "milliseconds. (Contributed by Steven D'Aprano in :issue:`6422`.)" msgstr "" #: whatsnew/3.6.rst:1542 msgid "" ":mod:`timeit` now warns when there is substantial (4x) variance between best " "and worst times. (Contributed by Serhiy Storchaka in :issue:`23552`.)" msgstr "" #: whatsnew/3.6.rst:2050 msgid "tkinter" msgstr "tkinter" #: whatsnew/3.6.rst:1550 msgid "" "Added methods :meth:`~tkinter.Variable.trace_add`, :meth:`~tkinter.Variable." "trace_remove` and :meth:`~tkinter.Variable.trace_info` in the :class:" "`tkinter.Variable` class. They replace old methods :meth:`~tkinter.Variable." "trace_variable`, :meth:`~tkinter.Variable.trace`, :meth:`~tkinter.Variable." "trace_vdelete` and :meth:`~tkinter.Variable.trace_vinfo` that use obsolete " "Tcl commands and might not work in future versions of Tcl. (Contributed by " "Serhiy Storchaka in :issue:`22115`)." msgstr "" #: whatsnew/3.6.rst:1563 msgid "traceback" msgstr "traceback" #: whatsnew/3.6.rst:1565 msgid "" "Both the traceback module and the interpreter's builtin exception display " "now abbreviate long sequences of repeated lines in tracebacks as shown in " "the following example::" msgstr "" #: whatsnew/3.6.rst:1580 msgid "(Contributed by Emanuel Barry in :issue:`26823`.)" msgstr "" #: whatsnew/3.6.rst:1584 msgid "tracemalloc" msgstr "tracemalloc" #: whatsnew/3.6.rst:1586 msgid "" "The :mod:`tracemalloc` module now supports tracing memory allocations in " "multiple different address spaces." msgstr "" #: whatsnew/3.6.rst:1589 msgid "" "The new :class:`~tracemalloc.DomainFilter` filter class has been added to " "filter block traces by their address space (domain)." msgstr "" #: whatsnew/3.6.rst:1592 #, fuzzy msgid "(Contributed by Victor Stinner in :issue:`26588`.)" msgstr "(Contribution par Victor Stinner; :issue:`12049`.)" #: whatsnew/3.6.rst:1598 msgid "typing" msgstr "" #: whatsnew/3.6.rst:1600 msgid "" "Since the :mod:`typing` module is :term:`provisional `, all " "changes introduced in Python 3.6 have also been backported to Python 3.5.x." msgstr "" #: whatsnew/3.6.rst:1604 msgid "" "The :mod:`typing` module has a much improved support for generic type " "aliases. For example ``Dict[str, Tuple[S, T]]`` is now a valid type " "annotation. (Contributed by Guido van Rossum in `Github #195 `_.)" msgstr "" #: whatsnew/3.6.rst:1610 msgid "" "The :class:`typing.ContextManager` class has been added for representing :" "class:`contextlib.AbstractContextManager`. (Contributed by Brett Cannon in :" "issue:`25609`.)" msgstr "" #: whatsnew/3.6.rst:1614 msgid "" "The :class:`typing.Collection` class has been added for representing :class:" "`collections.abc.Collection`. (Contributed by Ivan Levkivskyi in :issue:" "`27598`.)" msgstr "" #: whatsnew/3.6.rst:1618 msgid "" "The :const:`typing.ClassVar` type construct has been added to mark class " "variables. As introduced in :pep:`526`, a variable annotation wrapped in " "ClassVar indicates that a given attribute is intended to be used as a class " "variable and should not be set on instances of that class. (Contributed by " "Ivan Levkivskyi in `Github #280 `_.)" msgstr "" #: whatsnew/3.6.rst:1625 msgid "" "A new :const:`~typing.TYPE_CHECKING` constant that is assumed to be ``True`` " "by the static type checkers, but is ``False`` at runtime. (Contributed by " "Guido van Rossum in `Github #230 `_.)" msgstr "" #: whatsnew/3.6.rst:1630 msgid "" "A new :func:`~typing.NewType` helper function has been added to create " "lightweight distinct types for annotations::" msgstr "" #: whatsnew/3.6.rst:1638 msgid "" "The static type checker will treat the new type as if it were a subclass of " "the original type. (Contributed by Ivan Levkivskyi in `Github #189 `_.)" msgstr "" #: whatsnew/3.6.rst:1644 msgid "unicodedata" msgstr "unicodedata" #: whatsnew/3.6.rst:1646 msgid "" "The :mod:`unicodedata` module now uses data from `Unicode 9.0.0 `_. (Contributed by Benjamin Peterson.)" msgstr "" #: whatsnew/3.6.rst:1652 msgid "unittest.mock" msgstr "unittest.mock" #: whatsnew/3.6.rst:1654 msgid "The :class:`~unittest.mock.Mock` class has the following improvements:" msgstr "" #: whatsnew/3.6.rst:1656 msgid "" "Two new methods, :meth:`Mock.assert_called() ` and :meth:`Mock.assert_called_once() ` to check if the mock object was called. (Contributed by " "Amit Saha in :issue:`26323`.)" msgstr "" #: whatsnew/3.6.rst:1662 msgid "" "The :meth:`Mock.reset_mock() ` method now has " "two optional keyword only arguments: *return_value* and *side_effect*. " "(Contributed by Kushal Das in :issue:`21271`.)" msgstr "" #: whatsnew/3.6.rst:1669 msgid "urllib.request" msgstr "" #: whatsnew/3.6.rst:1671 msgid "" "If a HTTP request has a file or iterable body (other than a bytes object) " "but no ``Content-Length`` header, rather than throwing an error, :class:" "`~urllib.request.AbstractHTTPHandler` now falls back to use chunked transfer " "encoding. (Contributed by Demian Brecht and Rolf Krahl in :issue:`12319`.)" msgstr "" #: whatsnew/3.6.rst:1679 msgid "urllib.robotparser" msgstr "" #: whatsnew/3.6.rst:1681 msgid "" ":class:`~urllib.robotparser.RobotFileParser` now supports the ``Crawl-" "delay`` and ``Request-rate`` extensions. (Contributed by Nikolay Bogoychev " "in :issue:`16099`.)" msgstr "" #: whatsnew/3.6.rst:2058 msgid "venv" msgstr "venv" #: whatsnew/3.6.rst:1689 msgid "" ":mod:`venv` accepts a new parameter ``--prompt``. This parameter provides an " "alternative prefix for the virtual environment. (Proposed by Łukasz " "Balcerzak and ported to 3.6 by Stéphane Wirtel in :issue:`22829`.)" msgstr "" #: whatsnew/3.6.rst:1695 msgid "warnings" msgstr "" #: whatsnew/3.6.rst:1697 msgid "" "A new optional *source* parameter has been added to the :func:`warnings." "warn_explicit` function: the destroyed object which emitted a :exc:" "`ResourceWarning`. A *source* attribute has also been added to :class:" "`warnings.WarningMessage` (contributed by Victor Stinner in :issue:`26568` " "and :issue:`26567`)." msgstr "" #: whatsnew/3.6.rst:1703 msgid "" "When a :exc:`ResourceWarning` warning is logged, the :mod:`tracemalloc` " "module is now used to try to retrieve the traceback where the destroyed " "object was allocated." msgstr "" #: whatsnew/3.6.rst:1706 msgid "Example with the script ``example.py``::" msgstr "" #: whatsnew/3.6.rst:1716 msgid "Output of the command ``python3.6 -Wd -X tracemalloc=5 example.py``::" msgstr "" #: whatsnew/3.6.rst:1726 msgid "" "The \"Object allocated at\" traceback is new and is only displayed if :mod:" "`tracemalloc` is tracing Python memory allocations and if the :mod:" "`warnings` module was already imported." msgstr "" #: whatsnew/3.6.rst:1732 msgid "winreg" msgstr "" #: whatsnew/3.6.rst:1734 msgid "" "Added the 64-bit integer type :data:`REG_QWORD `. " "(Contributed by Clement Rouault in :issue:`23026`.)" msgstr "" #: whatsnew/3.6.rst:1739 msgid "winsound" msgstr "" #: whatsnew/3.6.rst:1741 msgid "" "Allowed keyword arguments to be passed to :func:`Beep `, :" "func:`MessageBeep `, and :func:`PlaySound ` (:issue:`27982`)." msgstr "" #: whatsnew/3.6.rst:1747 msgid "xmlrpc.client" msgstr "" #: whatsnew/3.6.rst:1749 msgid "" "The :mod:`xmlrpc.client` module now supports unmarshalling additional data " "types used by the Apache XML-RPC implementation for numerics and ``None``. " "(Contributed by Serhiy Storchaka in :issue:`26885`.)" msgstr "" #: whatsnew/3.6.rst:1756 msgid "zipfile" msgstr "zipfile" #: whatsnew/3.6.rst:1758 msgid "" "A new :meth:`ZipInfo.from_file() ` class method " "allows making a :class:`~zipfile.ZipInfo` instance from a filesystem file. A " "new :meth:`ZipInfo.is_dir() ` method can be used to " "check if the :class:`~zipfile.ZipInfo` instance represents a directory. " "(Contributed by Thomas Kluyver in :issue:`26039`.)" msgstr "" #: whatsnew/3.6.rst:1764 msgid "" "The :meth:`ZipFile.open() ` method can now be used to " "write data into a ZIP file, as well as for extracting data. (Contributed by " "Thomas Kluyver in :issue:`26039`.)" msgstr "" #: whatsnew/3.6.rst:1770 msgid "zlib" msgstr "zlib" #: whatsnew/3.6.rst:1772 msgid "" "The :func:`~zlib.compress` and :func:`~zlib.decompress` functions now accept " "keyword arguments. (Contributed by Aviv Palivoda in :issue:`26243` and Xiang " "Zhang in :issue:`16764` respectively.)" msgstr "" #: whatsnew/3.6.rst:1779 #, fuzzy msgid "Optimizations" msgstr "Optimisation" #: whatsnew/3.6.rst:1781 msgid "" "The Python interpreter now uses a 16-bit wordcode instead of bytecode which " "made a number of opcode optimizations possible. (Contributed by Demur Rumed " "with input and reviews from Serhiy Storchaka and Victor Stinner in :issue:" "`26647` and :issue:`28050`.)" msgstr "" #: whatsnew/3.6.rst:1786 msgid "" "The :class:`asyncio.Future` class now has an optimized C implementation. " "(Contributed by Yury Selivanov and INADA Naoki in :issue:`26081`.)" msgstr "" #: whatsnew/3.6.rst:1789 msgid "" "The :class:`asyncio.Task` class now has an optimized C implementation. " "(Contributed by Yury Selivanov in :issue:`28544`.)" msgstr "" #: whatsnew/3.6.rst:1792 msgid "" "Various implementation improvements in the :mod:`typing` module (such as " "caching of generic types) allow up to 30 times performance improvements and " "reduced memory footprint." msgstr "" #: whatsnew/3.6.rst:1796 msgid "" "The ASCII decoder is now up to 60 times as fast for error handlers " "``surrogateescape``, ``ignore`` and ``replace`` (Contributed by Victor " "Stinner in :issue:`24870`)." msgstr "" #: whatsnew/3.6.rst:1800 msgid "" "The ASCII and the Latin1 encoders are now up to 3 times as fast for the " "error handler ``surrogateescape`` (Contributed by Victor Stinner in :issue:" "`25227`)." msgstr "" #: whatsnew/3.6.rst:1804 msgid "" "The UTF-8 encoder is now up to 75 times as fast for error handlers " "``ignore``, ``replace``, ``surrogateescape``, ``surrogatepass`` (Contributed " "by Victor Stinner in :issue:`25267`)." msgstr "" #: whatsnew/3.6.rst:1808 msgid "" "The UTF-8 decoder is now up to 15 times as fast for error handlers " "``ignore``, ``replace`` and ``surrogateescape`` (Contributed by Victor " "Stinner in :issue:`25301`)." msgstr "" #: whatsnew/3.6.rst:1812 msgid "" "``bytes % args`` is now up to 2 times faster. (Contributed by Victor Stinner " "in :issue:`25349`)." msgstr "" #: whatsnew/3.6.rst:1815 msgid "" "``bytearray % args`` is now between 2.5 and 5 times faster. (Contributed by " "Victor Stinner in :issue:`25399`)." msgstr "" #: whatsnew/3.6.rst:1818 msgid "" "Optimize :meth:`bytes.fromhex` and :meth:`bytearray.fromhex`: they are now " "between 2x and 3.5x faster. (Contributed by Victor Stinner in :issue:" "`25401`)." msgstr "" #: whatsnew/3.6.rst:1821 msgid "" "Optimize ``bytes.replace(b'', b'.')`` and ``bytearray.replace(b'', b'.')``: " "up to 80% faster. (Contributed by Josh Snider in :issue:`26574`)." msgstr "" #: whatsnew/3.6.rst:1824 msgid "" "Allocator functions of the :c:func:`PyMem_Malloc` domain (:c:data:" "`PYMEM_DOMAIN_MEM`) now use the :ref:`pymalloc memory allocator ` " "instead of :c:func:`malloc` function of the C library. The pymalloc " "allocator is optimized for objects smaller or equal to 512 bytes with a " "short lifetime, and use :c:func:`malloc` for larger memory blocks. " "(Contributed by Victor Stinner in :issue:`26249`)." msgstr "" #: whatsnew/3.6.rst:1831 msgid "" ":func:`pickle.load` and :func:`pickle.loads` are now up to 10% faster when " "deserializing many small objects (Contributed by Victor Stinner in :issue:" "`27056`)." msgstr "" #: whatsnew/3.6.rst:1835 msgid "" "Passing :term:`keyword arguments ` to a function has an " "overhead in comparison with passing :term:`positional arguments `. Now in extension functions implemented with using Argument " "Clinic this overhead is significantly decreased. (Contributed by Serhiy " "Storchaka in :issue:`27574`)." msgstr "" #: whatsnew/3.6.rst:1841 msgid "" "Optimized :func:`~glob.glob` and :func:`~glob.iglob` functions in the :mod:" "`glob` module; they are now about 3--6 times faster. (Contributed by Serhiy " "Storchaka in :issue:`25596`)." msgstr "" #: whatsnew/3.6.rst:1845 msgid "" "Optimized globbing in :mod:`pathlib` by using :func:`os.scandir`; it is now " "about 1.5--4 times faster. (Contributed by Serhiy Storchaka in :issue:" "`26032`)." msgstr "" #: whatsnew/3.6.rst:1849 msgid "" ":class:`xml.etree.ElementTree` parsing, iteration and deepcopy performance " "has been significantly improved. (Contributed by Serhiy Storchaka in :issue:" "`25638`, :issue:`25873`, and :issue:`25869`.)" msgstr "" #: whatsnew/3.6.rst:1854 msgid "" "Creation of :class:`fractions.Fraction` instances from floats and decimals " "is now 2 to 3 times faster. (Contributed by Serhiy Storchaka in :issue:" "`25971`.)" msgstr "" #: whatsnew/3.6.rst:1860 msgid "Build and C API Changes" msgstr "" #: whatsnew/3.6.rst:1862 msgid "" "Python now requires some C99 support in the toolchain to build. Most " "notably, Python now uses standard integer types and macros in place of " "custom macros like ``PY_LONG_LONG``. For more information, see :pep:`7` and :" "issue:`17884`." msgstr "" #: whatsnew/3.6.rst:1867 msgid "" "Cross-compiling CPython with the Android NDK and the Android API level set " "to 21 (Android 5.0 Lollipop) or greater runs successfully. While Android is " "not yet a supported platform, the Python test suite runs on the Android " "emulator with only about 16 tests failures. See the Android meta-issue :" "issue:`26865`." msgstr "" #: whatsnew/3.6.rst:1872 msgid "" "The ``--enable-optimizations`` configure flag has been added. Turning it on " "will activate expensive optimizations like PGO. (Original patch by " "Alecsandru Patrascu of Intel in :issue:`26359`.)" msgstr "" #: whatsnew/3.6.rst:1876 msgid "" "The :term:`GIL ` must now be held when allocator " "functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :" "c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called." msgstr "" #: whatsnew/3.6.rst:1880 msgid "" "New :c:func:`Py_FinalizeEx` API which indicates if flushing buffered data " "failed. (Contributed by Martin Panter in :issue:`5319`.)" msgstr "" #: whatsnew/3.6.rst:1884 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` now supports :ref:`positional-only " "parameters `. Positional-only parameters are " "defined by empty names. (Contributed by Serhiy Storchaka in :issue:`26282`)." msgstr "" #: whatsnew/3.6.rst:1889 msgid "" "``PyTraceback_Print`` method now abbreviates long sequences of repeated " "lines as ``\"[Previous line repeated {count} more times]\"``. (Contributed " "by Emanuel Barry in :issue:`26823`.)" msgstr "" #: whatsnew/3.6.rst:1893 msgid "" "The new :c:func:`PyErr_SetImportErrorSubclass` function allows for " "specifying a subclass of :exc:`ImportError` to raise. (Contributed by Eric " "Snow in :issue:`15767`.)" msgstr "" #: whatsnew/3.6.rst:1897 msgid "" "The new :c:func:`PyErr_ResourceWarning` function can be used to generate a :" "exc:`ResourceWarning` providing the source of the resource allocation. " "(Contributed by Victor Stinner in :issue:`26567`.)" msgstr "" #: whatsnew/3.6.rst:1901 msgid "" "The new :c:func:`PyOS_FSPath` function returns the file system " "representation of a :term:`path-like object`. (Contributed by Brett Cannon " "in :issue:`27186`.)" msgstr "" #: whatsnew/3.6.rst:1905 msgid "" "The :c:func:`PyUnicode_FSConverter` and :c:func:`PyUnicode_FSDecoder` " "functions will now accept :term:`path-like objects `." msgstr "" #: whatsnew/3.6.rst:1910 msgid "Other Improvements" msgstr "Autres Améliorations" #: whatsnew/3.6.rst:1912 msgid "" "When :option:`--version` (short form: :option:`-V`) is supplied twice, " "Python prints :data:`sys.version` for detailed information." msgstr "" #: whatsnew/3.6.rst:1923 msgid "Deprecated" msgstr "" #: whatsnew/3.6.rst:1926 msgid "New Keywords" msgstr "Nouveaux mot-clefs" #: whatsnew/3.6.rst:1928 msgid "" "``async`` and ``await`` are not recommended to be used as variable, class, " "function or module names. Introduced by :pep:`492` in Python 3.5, they will " "become proper keywords in Python 3.7. Starting in Python 3.6, the use of " "``async`` or ``await`` as names will generate a :exc:`DeprecationWarning`." msgstr "" #: whatsnew/3.6.rst:1935 msgid "Deprecated Python behavior" msgstr "" #: whatsnew/3.6.rst:1937 msgid "" "Raising the :exc:`StopIteration` exception inside a generator will now " "generate a :exc:`DeprecationWarning`, and will trigger a :exc:`RuntimeError` " "in Python 3.7. See :ref:`whatsnew-pep-479` for details." msgstr "" #: whatsnew/3.6.rst:1941 msgid "" "The :meth:`__aiter__` method is now expected to return an asynchronous " "iterator directly instead of returning an awaitable as previously. Doing the " "former will trigger a :exc:`DeprecationWarning`. Backward compatibility " "will be removed in Python 3.7. (Contributed by Yury Selivanov in :issue:" "`27243`.)" msgstr "" #: whatsnew/3.6.rst:1947 msgid "" "A backslash-character pair that is not a valid escape sequence now generates " "a :exc:`DeprecationWarning`. Although this will eventually become a :exc:" "`SyntaxError`, that will not be for several Python releases. (Contributed by " "Emanuel Barry in :issue:`27364`.)" msgstr "" #: whatsnew/3.6.rst:1952 msgid "" "When performing a relative import, falling back on ``__name__`` and " "``__path__`` from the calling module when ``__spec__`` or ``__package__`` " "are not defined now raises an :exc:`ImportWarning`. (Contributed by Rose " "Ames in :issue:`25791`.)" msgstr "" #: whatsnew/3.6.rst:1959 msgid "Deprecated Python modules, functions and methods" msgstr "" #: whatsnew/3.6.rst:1962 msgid "asynchat" msgstr "asynchat" #: whatsnew/3.6.rst:1964 msgid "" "The :mod:`asynchat` has been deprecated in favor of :mod:`asyncio`. " "(Contributed by Mariatta in :issue:`25002`.)" msgstr "" #: whatsnew/3.6.rst:1969 msgid "asyncore" msgstr "asyncore" #: whatsnew/3.6.rst:1971 msgid "" "The :mod:`asyncore` has been deprecated in favor of :mod:`asyncio`. " "(Contributed by Mariatta in :issue:`25002`.)" msgstr "" #: whatsnew/3.6.rst:1976 msgid "dbm" msgstr "dbm" #: whatsnew/3.6.rst:1978 msgid "" "Unlike other :mod:`dbm` implementations, the :mod:`dbm.dumb` module creates " "databases with the ``'rw'`` mode and allows modifying the database opened " "with the ``'r'`` mode. This behavior is now deprecated and will be removed " "in 3.8. (Contributed by Serhiy Storchaka in :issue:`21708`.)" msgstr "" #: whatsnew/3.6.rst:1988 msgid "" "The undocumented ``extra_path`` argument to the :class:`~distutils." "Distribution` constructor is now considered deprecated and will raise a " "warning if set. Support for this parameter will be removed in a future " "Python release. See :issue:`27919` for details." msgstr "" #: whatsnew/3.6.rst:1995 msgid "grp" msgstr "" #: whatsnew/3.6.rst:1997 msgid "" "The support of non-integer arguments in :func:`~grp.getgrgid` has been " "deprecated. (Contributed by Serhiy Storchaka in :issue:`26129`.)" msgstr "" #: whatsnew/3.6.rst:2005 msgid "" "The :meth:`importlib.machinery.SourceFileLoader.load_module` and :meth:" "`importlib.machinery.SourcelessFileLoader.load_module` methods are now " "deprecated. They were the only remaining implementations of :meth:`importlib." "abc.Loader.load_module` in :mod:`importlib` that had not been deprecated in " "previous versions of Python in favour of :meth:`importlib.abc.Loader." "exec_module`." msgstr "" #: whatsnew/3.6.rst:2012 msgid "" "The :class:`importlib.machinery.WindowsRegistryFinder` class is now " "deprecated. As of 3.6.0, it is still added to :attr:`sys.meta_path` by " "default (on Windows), but this may change in future releases." msgstr "" #: whatsnew/3.6.rst:2019 msgid "" "Undocumented support of general :term:`bytes-like objects ` as paths in :mod:`os` functions, :func:`compile` and similar " "functions is now deprecated. (Contributed by Serhiy Storchaka in :issue:" "`25791` and :issue:`26754`.)" msgstr "" #: whatsnew/3.6.rst:2027 msgid "" "Support for inline flags ``(?letters)`` in the middle of the regular " "expression has been deprecated and will be removed in a future Python " "version. Flags at the start of a regular expression are still allowed. " "(Contributed by Serhiy Storchaka in :issue:`22493`.)" msgstr "" #: whatsnew/3.6.rst:2035 msgid "" "OpenSSL 0.9.8, 1.0.0 and 1.0.1 are deprecated and no longer supported. In " "the future the :mod:`ssl` module will require at least OpenSSL 1.0.2 or " "1.1.0." msgstr "" #: whatsnew/3.6.rst:2039 msgid "" "SSL-related arguments like ``certfile``, ``keyfile`` and ``check_hostname`` " "in :mod:`ftplib`, :mod:`http.client`, :mod:`imaplib`, :mod:`poplib`, and :" "mod:`smtplib` have been deprecated in favor of ``context``. (Contributed by " "Christian Heimes in :issue:`28022`.)" msgstr "" #: whatsnew/3.6.rst:2044 msgid "" "A couple of protocols and functions of the :mod:`ssl` module are now " "deprecated. Some features will no longer be available in future versions of " "OpenSSL. Other features are deprecated in favor of a different API. " "(Contributed by Christian Heimes in :issue:`28022` and :issue:`26470`.)" msgstr "" #: whatsnew/3.6.rst:2052 msgid "" "The :mod:`tkinter.tix` module is now deprecated. :mod:`tkinter` users " "should use :mod:`tkinter.ttk` instead." msgstr "" #: whatsnew/3.6.rst:2060 msgid "" "The ``pyvenv`` script has been deprecated in favour of ``python3 -m venv``. " "This prevents confusion as to what Python interpreter ``pyvenv`` is " "connected to and thus what Python interpreter will be used by the virtual " "environment. (Contributed by Brett Cannon in :issue:`25154`.)" msgstr "" #: whatsnew/3.6.rst:2067 msgid "Deprecated functions and types of the C API" msgstr "" #: whatsnew/3.6.rst:2069 msgid "" "Undocumented functions :c:func:`PyUnicode_AsEncodedObject`, :c:func:" "`PyUnicode_AsDecodedObject`, :c:func:`PyUnicode_AsEncodedUnicode` and :c:" "func:`PyUnicode_AsDecodedUnicode` are deprecated now. Use the :ref:`generic " "codec based API ` instead." msgstr "" #: whatsnew/3.6.rst:2076 msgid "Deprecated Build Options" msgstr "" #: whatsnew/3.6.rst:2078 msgid "" "The ``--with-system-ffi`` configure flag is now on by default on non-macOS " "UNIX platforms. It may be disabled by using ``--without-system-ffi``, but " "using the flag is deprecated and will not be accepted in Python 3.7. macOS " "is unaffected by this change. Note that many OS distributors already use " "the ``--with-system-ffi`` flag when building their system Python." msgstr "" #: whatsnew/3.6.rst:2086 msgid "Removed" msgstr "" #: whatsnew/3.6.rst:2089 msgid "API and Feature Removals" msgstr "" #: whatsnew/3.6.rst:2091 msgid "" "Unknown escapes consisting of ``'\\'`` and an ASCII letter in regular " "expressions will now cause an error. In replacement templates for :func:`re." "sub` they are still allowed, but deprecated. The :const:`re.LOCALE` flag can " "now only be used with binary patterns." msgstr "" #: whatsnew/3.6.rst:2096 msgid "" "``inspect.getmoduleinfo()`` was removed (was deprecated since CPython 3.3). :" "func:`inspect.getmodulename` should be used for obtaining the module name " "for a given path. (Contributed by Yury Selivanov in :issue:`13248`.)" msgstr "" #: whatsnew/3.6.rst:2101 msgid "" "``traceback.Ignore`` class and ``traceback.usage``, ``traceback.modname``, " "``traceback.fullmodname``, ``traceback.find_lines_from_code``, ``traceback." "find_lines``, ``traceback.find_strings``, ``traceback." "find_executable_lines`` methods were removed from the :mod:`traceback` " "module. They were undocumented methods deprecated since Python 3.2 and " "equivalent functionality is available from private methods." msgstr "" #: whatsnew/3.6.rst:2108 msgid "" "The ``tk_menuBar()`` and ``tk_bindForTraversal()`` dummy methods in :mod:" "`tkinter` widget classes were removed (corresponding Tk commands were " "obsolete since Tk 4.0)." msgstr "" #: whatsnew/3.6.rst:2112 msgid "" "The :meth:`~zipfile.ZipFile.open` method of the :class:`zipfile.ZipFile` " "class no longer supports the ``'U'`` mode (was deprecated since Python 3.4). " "Use :class:`io.TextIOWrapper` for reading compressed text files in :term:" "`universal newlines` mode." msgstr "" #: whatsnew/3.6.rst:2117 msgid "" "The undocumented ``IN``, ``CDROM``, ``DLFCN``, ``TYPES``, ``CDIO``, and " "``STROPTS`` modules have been removed. They had been available in the " "platform specific ``Lib/plat-*/`` directories, but were chronically out of " "date, inconsistently available across platforms, and unmaintained. The " "script that created these modules is still available in the source " "distribution at `Tools/scripts/h2py.py `_." msgstr "" #: whatsnew/3.6.rst:2125 msgid "The deprecated ``asynchat.fifo`` class has been removed." msgstr "" #: whatsnew/3.6.rst:2129 #, fuzzy msgid "Porting to Python 3.6" msgstr "Portage vers Python 2.6" #: whatsnew/3.6.rst:2131 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" #: whatsnew/3.6.rst:2135 msgid "Changes in 'python' Command Behavior" msgstr "" #: whatsnew/3.6.rst:2137 msgid "" "The output of a special Python build with defined ``COUNT_ALLOCS``, " "``SHOW_ALLOC_COUNT`` or ``SHOW_TRACK_COUNT`` macros is now off by default. " "It can be re-enabled using the ``-X showalloccount`` option. It now outputs " "to ``stderr`` instead of ``stdout``. (Contributed by Serhiy Storchaka in :" "issue:`23034`.)" msgstr "" #: whatsnew/3.6.rst:2145 msgid "Changes in the Python API" msgstr "" #: whatsnew/3.6.rst:2147 msgid "" ":func:`open() ` will no longer allow combining the ``'U'`` mode flag " "with ``'+'``. (Contributed by Jeff Balogh and John O'Connor in :issue:" "`2091`.)" msgstr "" #: whatsnew/3.6.rst:2151 msgid "" ":mod:`sqlite3` no longer implicitly commits an open transaction before DDL " "statements." msgstr "" #: whatsnew/3.6.rst:2154 msgid "" "On Linux, :func:`os.urandom` now blocks until the system urandom entropy " "pool is initialized to increase the security." msgstr "" #: whatsnew/3.6.rst:2157 msgid "" "When :meth:`importlib.abc.Loader.exec_module` is defined, :meth:`importlib." "abc.Loader.create_module` must also be defined." msgstr "" #: whatsnew/3.6.rst:2160 msgid "" ":c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg** " "argument is not set. Previously only ``NULL`` was returned." msgstr "" #: whatsnew/3.6.rst:2163 msgid "" "The format of the ``co_lnotab`` attribute of code objects changed to support " "a negative line number delta. By default, Python does not emit bytecode with " "a negative line number delta. Functions using ``frame.f_lineno``, " "``PyFrame_GetLineNumber()`` or ``PyCode_Addr2Line()`` are not affected. " "Functions directly decoding ``co_lnotab`` should be updated to use a signed " "8-bit integer type for the line number delta, but this is only required to " "support applications using a negative line number delta. See ``Objects/" "lnotab_notes.txt`` for the ``co_lnotab`` format and how to decode it, and " "see the :pep:`511` for the rationale." msgstr "" #: whatsnew/3.6.rst:2173 msgid "" "The functions in the :mod:`compileall` module now return booleans instead of " "``1`` or ``0`` to represent success or failure, respectively. Thanks to " "booleans being a subclass of integers, this should only be an issue if you " "were doing identity checks for ``1`` or ``0``. See :issue:`25768`." msgstr "" #: whatsnew/3.6.rst:2178 msgid "" "Reading the :attr:`~urllib.parse.SplitResult.port` attribute of :func:" "`urllib.parse.urlsplit` and :func:`~urllib.parse.urlparse` results now " "raises :exc:`ValueError` for out-of-range values, rather than returning :" "const:`None`. See :issue:`20059`." msgstr "" #: whatsnew/3.6.rst:2183 msgid "" "The :mod:`imp` module now raises a :exc:`DeprecationWarning` instead of :exc:" "`PendingDeprecationWarning`." msgstr "" #: whatsnew/3.6.rst:2186 msgid "" "The following modules have had missing APIs added to their :attr:`__all__` " "attributes to match the documented APIs: :mod:`calendar`, :mod:`cgi`, :mod:" "`csv`, :mod:`~xml.etree.ElementTree`, :mod:`enum`, :mod:`fileinput`, :mod:" "`ftplib`, :mod:`logging`, :mod:`mailbox`, :mod:`mimetypes`, :mod:" "`optparse`, :mod:`plistlib`, :mod:`smtpd`, :mod:`subprocess`, :mod:" "`tarfile`, :mod:`threading` and :mod:`wave`. This means they will export " "new symbols when ``import *`` is used. (Contributed by Joel Taddei and Jacek " "Kołodziej in :issue:`23883`.)" msgstr "" #: whatsnew/3.6.rst:2197 msgid "" "When performing a relative import, if ``__package__`` does not compare equal " "to ``__spec__.parent`` then :exc:`ImportWarning` is raised. (Contributed by " "Brett Cannon in :issue:`25791`.)" msgstr "" #: whatsnew/3.6.rst:2201 msgid "" "When a relative import is performed and no parent package is known, then :" "exc:`ImportError` will be raised. Previously, :exc:`SystemError` could be " "raised. (Contributed by Brett Cannon in :issue:`18018`.)" msgstr "" #: whatsnew/3.6.rst:2205 msgid "" "Servers based on the :mod:`socketserver` module, including those defined in :" "mod:`http.server`, :mod:`xmlrpc.server` and :mod:`wsgiref.simple_server`, " "now only catch exceptions derived from :exc:`Exception`. Therefore if a " "request handler raises an exception like :exc:`SystemExit` or :exc:" "`KeyboardInterrupt`, :meth:`~socketserver.BaseServer.handle_error` is no " "longer called, and the exception will stop a single-threaded server. " "(Contributed by Martin Panter in :issue:`23430`.)" msgstr "" #: whatsnew/3.6.rst:2214 msgid "" ":func:`spwd.getspnam` now raises a :exc:`PermissionError` instead of :exc:" "`KeyError` if the user doesn't have privileges." msgstr "" #: whatsnew/3.6.rst:2217 msgid "" "The :meth:`socket.socket.close` method now raises an exception if an error " "(e.g. ``EBADF``) was reported by the underlying system call. (Contributed by " "Martin Panter in :issue:`26685`.)" msgstr "" #: whatsnew/3.6.rst:2221 msgid "" "The *decode_data* argument for the :class:`smtpd.SMTPChannel` and :class:" "`smtpd.SMTPServer` constructors is now ``False`` by default. This means that " "the argument passed to :meth:`~smtpd.SMTPServer.process_message` is now a " "bytes object by default, and ``process_message()`` will be passed keyword " "arguments. Code that has already been updated in accordance with the " "deprecation warning generated by 3.5 will not be affected." msgstr "" #: whatsnew/3.6.rst:2229 msgid "" "All optional arguments of the :func:`~json.dump`, :func:`~json.dumps`, :func:" "`~json.load` and :func:`~json.loads` functions and :class:`~json." "JSONEncoder` and :class:`~json.JSONDecoder` class constructors in the :mod:" "`json` module are now :ref:`keyword-only `. " "(Contributed by Serhiy Storchaka in :issue:`18726`.)" msgstr "" #: whatsnew/3.6.rst:2236 msgid "" "Subclasses of :class:`type` which don't override ``type.__new__`` may no " "longer use the one-argument form to get the type of an object." msgstr "" "Les sous-classes de :class:`type` qui ne redéfinissent pas ``type.__new__`` " "ne devraient plus utiliser la forme à un argument pour récupérer le type " "d'un objet." #: whatsnew/3.6.rst:2239 msgid "" "As part of :pep:`487`, the handling of keyword arguments passed to :class:" "`type` (other than the metaclass hint, ``metaclass``) is now consistently " "delegated to :meth:`object.__init_subclass__`. This means that :meth:`type." "__new__` and :meth:`type.__init__` both now accept arbitrary keyword " "arguments, but :meth:`object.__init_subclass__` (which is called from :meth:" "`type.__new__`) will reject them by default. Custom metaclasses accepting " "additional keyword arguments will need to adjust their calls to :meth:`type." "__new__` (whether direct or via :class:`super`) accordingly." msgstr "" #: whatsnew/3.6.rst:2248 msgid "" "In :class:`distutils.command.sdist.sdist`, the ``default_format`` attribute " "has been removed and is no longer honored. Instead, the gzipped tarfile " "format is the default on all platforms and no platform-specific selection is " "made. In environments where distributions are built on Windows and zip " "distributions are required, configure the project with a ``setup.cfg`` file " "containing the following:" msgstr "" #: whatsnew/3.6.rst:2261 msgid "" "This behavior has also been backported to earlier Python versions by " "Setuptools 26.0.0." msgstr "" #: whatsnew/3.6.rst:2264 msgid "" "In the :mod:`urllib.request` module and the :meth:`http.client." "HTTPConnection.request` method, if no Content-Length header field has been " "specified and the request body is a file object, it is now sent with HTTP " "1.1 chunked encoding. If a file object has to be sent to a HTTP 1.0 server, " "the Content-Length value now has to be specified by the caller. (Contributed " "by Demian Brecht and Rolf Krahl with tweaks from Martin Panter in :issue:" "`12319`.)" msgstr "" #: whatsnew/3.6.rst:2273 msgid "" "The :class:`~csv.DictReader` now returns rows of type :class:`~collections." "OrderedDict`. (Contributed by Steve Holden in :issue:`27842`.)" msgstr "" #: whatsnew/3.6.rst:2277 msgid "" "The :const:`crypt.METHOD_CRYPT` will no longer be added to ``crypt.methods`` " "if unsupported by the platform. (Contributed by Victor Stinner in :issue:" "`25287`.)" msgstr "" #: whatsnew/3.6.rst:2285 msgid "" "On Linux, :func:`ctypes.util.find_library` now looks in ``LD_LIBRARY_PATH`` " "for shared libraries. (Contributed by Vinay Sajip in :issue:`9998`.)" msgstr "" #: whatsnew/3.6.rst:2289 msgid "" "The :class:`imaplib.IMAP4` class now handles flags containing the ``']'`` " "character in messages sent from the server to improve real-world " "compatibility. (Contributed by Lita Cho in :issue:`21815`.)" msgstr "" #: whatsnew/3.6.rst:2294 msgid "" "The :func:`mmap.write() ` function now returns the number of " "bytes written like other write methods. (Contributed by Jakub Stasiak in :" "issue:`26335`.)" msgstr "" #: whatsnew/3.6.rst:2298 msgid "" "The :func:`pkgutil.iter_modules` and :func:`pkgutil.walk_packages` functions " "now return :class:`~pkgutil.ModuleInfo` named tuples. (Contributed by " "Ramchandra Apte in :issue:`17211`.)" msgstr "" #: whatsnew/3.6.rst:2302 msgid "" ":func:`re.sub` now raises an error for invalid numerical group references in " "replacement templates even if the pattern is not found in the string. The " "error message for invalid group references now includes the group index and " "the position of the reference. (Contributed by SilentGhost, Serhiy Storchaka " "in :issue:`25953`.)" msgstr "" #: whatsnew/3.6.rst:2308 msgid "" ":class:`zipfile.ZipFile` will now raise :exc:`NotImplementedError` for " "unrecognized compression values. Previously a plain :exc:`RuntimeError` was " "raised. Additionally, calling :class:`~zipfile.ZipFile` methods on a closed " "ZipFile or calling the :meth:`~zipfile.ZipFile.write` method on a ZipFile " "created with mode ``'r'`` will raise a :exc:`ValueError`. Previously, a :exc:" "`RuntimeError` was raised in those scenarios." msgstr "" #: whatsnew/3.6.rst:2315 msgid "" "when custom metaclasses are combined with zero-argument :func:`super` or " "direct references from methods to the implicit ``__class__`` closure " "variable, the implicit ``__classcell__`` namespace entry must now be passed " "up to ``type.__new__`` for initialisation. Failing to do so will result in " "a :exc:`DeprecationWarning` in Python 3.6 and a :exc:`RuntimeError` in " "Python 3.8." msgstr "" #: whatsnew/3.6.rst:2322 msgid "" "With the introduction of :exc:`ModuleNotFoundError`, import system consumers " "may start expecting import system replacements to raise that more specific " "exception when appropriate, rather than the less-specific :exc:" "`ImportError`. To provide future compatibility with such consumers, " "implementors of alternative import systems that completely replace :func:" "`__import__` will need to update their implementations to raise the new " "subclass when a module can't be found at all. Implementors of compliant " "plugins to the default import system shouldn't need to make any changes, as " "the default import system will raise the new subclass when appropriate." msgstr "" #: whatsnew/3.6.rst:2334 msgid "Changes in the C API" msgstr "" #: whatsnew/3.6.rst:2336 msgid "" "The :c:func:`PyMem_Malloc` allocator family now uses the :ref:`pymalloc " "allocator ` rather than the system :c:func:`malloc`. Applications " "calling :c:func:`PyMem_Malloc` without holding the GIL can now crash. Set " "the :envvar:`PYTHONMALLOC` environment variable to ``debug`` to validate the " "usage of memory allocators in your application. See :issue:`26249`." msgstr "" #: whatsnew/3.6.rst:2342 msgid "" ":c:func:`Py_Exit` (and the main interpreter) now override the exit status " "with 120 if flushing buffered data failed. See :issue:`5319`." msgstr "" #: whatsnew/3.6.rst:2347 msgid "CPython bytecode changes" msgstr "" #: whatsnew/3.6.rst:2349 msgid "" "There have been several major changes to the :term:`bytecode` in Python 3.6." msgstr "" #: whatsnew/3.6.rst:2351 msgid "" "The Python interpreter now uses a 16-bit wordcode instead of bytecode. " "(Contributed by Demur Rumed with input and reviews from Serhiy Storchaka and " "Victor Stinner in :issue:`26647` and :issue:`28050`.)" msgstr "" #: whatsnew/3.6.rst:2355 msgid "" "The new :opcode:`FORMAT_VALUE` and :opcode:`BUILD_STRING` opcodes as part of " "the :ref:`formatted string literal ` implementation. " "(Contributed by Eric Smith in :issue:`25483` and Serhiy Storchaka in :issue:" "`27078`.)" msgstr "" #: whatsnew/3.6.rst:2360 msgid "" "The new :opcode:`BUILD_CONST_KEY_MAP` opcode to optimize the creation of " "dictionaries with constant keys. (Contributed by Serhiy Storchaka in :issue:" "`27140`.)" msgstr "" #: whatsnew/3.6.rst:2364 msgid "" "The function call opcodes have been heavily reworked for better performance " "and simpler implementation. The :opcode:`MAKE_FUNCTION`, :opcode:" "`CALL_FUNCTION`, :opcode:`CALL_FUNCTION_KW` and :opcode:" "`BUILD_MAP_UNPACK_WITH_CALL` opcodes have been modified, the new :opcode:" "`CALL_FUNCTION_EX` and :opcode:`BUILD_TUPLE_UNPACK_WITH_CALL` have been " "added, and ``CALL_FUNCTION_VAR``, ``CALL_FUNCTION_VAR_KW`` and " "``MAKE_CLOSURE`` opcodes have been removed. (Contributed by Demur Rumed in :" "issue:`27095`, and Serhiy Storchaka in :issue:`27213`, :issue:`28257`.)" msgstr "" #: whatsnew/3.6.rst:2375 msgid "" "The new :opcode:`SETUP_ANNOTATIONS` and :opcode:`STORE_ANNOTATION` opcodes " "have been added to support the new :term:`variable annotation` syntax. " "(Contributed by Ivan Levkivskyi in :issue:`27985`.)" msgstr "" #: whatsnew/3.6.rst:2381 msgid "Notable changes in Python 3.6.2" msgstr "" #: whatsnew/3.6.rst:2384 msgid "New ``make regen-all`` build target" msgstr "" #: whatsnew/3.6.rst:2386 msgid "" "To simplify cross-compilation, and to ensure that CPython can reliably be " "compiled without requiring an existing version of Python to already be " "available, the autotools-based build system no longer attempts to implicitly " "recompile generated files based on file modification times." msgstr "" #: whatsnew/3.6.rst:2391 msgid "" "Instead, a new ``make regen-all`` command has been added to force " "regeneration of these files when desired (e.g. after an initial version of " "Python has already been built based on the pregenerated versions)." msgstr "" #: whatsnew/3.6.rst:2395 msgid "" "More selective regeneration targets are also defined - see :source:`Makefile." "pre.in` for details." msgstr "" #: whatsnew/3.6.rst:2411 #, fuzzy msgid "(Contributed by Victor Stinner in :issue:`23404`.)" msgstr "(Contribution par Victor Stinner; :issue:`12049`.)" #: whatsnew/3.6.rst:2404 msgid "Removal of ``make touch`` build target" msgstr "" #: whatsnew/3.6.rst:2406 msgid "" "The ``make touch`` build target previously used to request implicit " "regeneration of generated files by updating their modification times has " "been removed." msgstr "" #: whatsnew/3.6.rst:2409 msgid "It has been replaced by the new ``make regen-all`` target." msgstr "" #: whatsnew/3.6.rst:2417 msgid "Notable changes in Python 3.6.4" msgstr "" #: whatsnew/3.6.rst:2419 msgid "" "The ``PyExc_RecursionErrorInst`` singleton that was part of the public API " "has been removed as its members being never cleared may cause a segfault " "during finalization of the interpreter. (Contributed by Xavier de Gaye in :" "issue:`22898` and :issue:`30697`.)" msgstr "" #: whatsnew/3.6.rst:2426 msgid "Notable changes in Python 3.6.5" msgstr "" #: whatsnew/3.6.rst:2428 msgid "" "The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE`` " "locale to the ``LC_NUMERIC`` locale in some cases. (Contributed by Victor " "Stinner in :issue:`31900`.)" msgstr "" #: whatsnew/3.6.rst:2433 msgid "Notable changes in Python 3.6.7" msgstr "" #: whatsnew/3.6.rst:2435 msgid "" "In 3.6.7 the :mod:`tokenize` module now implicitly emits a ``NEWLINE`` token " "when provided with input that does not have a trailing new line. This " "behavior now matches what the C tokenizer does internally. (Contributed by " "Ammar Askar in :issue:`33899`.)" msgstr "" #: whatsnew/3.6.rst:2441 msgid "Notable changes in Python 3.6.10" msgstr "" #: whatsnew/3.6.rst:2443 msgid "" "Due to significant security concerns, the *reuse_address* parameter of :meth:" "`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " "because of the behavior of the socket option ``SO_REUSEADDR`` in UDP. For " "more details, see the documentation for ``loop.create_datagram_endpoint()``. " "(Contributed by Kyle Stanley, Antoine Pitrou, and Yury Selivanov in :issue:" "`37228`.)" msgstr "" #: whatsnew/3.6.rst:2451 #, fuzzy msgid "Notable changes in Python 3.6.13" msgstr "Portage vers Python 2.6" #: whatsnew/3.6.rst:2453 msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " "parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." "parse.parse_qsl`. Due to security concerns, and to conform with newer W3C " "recommendations, this has been changed to allow only a single separator key, " "with ``&`` as the default. This change also affects :func:`cgi.parse` and :" "func:`cgi.parse_multipart` as they use the affected functions internally. " "For more details, please see their respective documentation. (Contributed by " "Adam Goldschmidt, Senthil Kumaran and Ken Jin in :issue:`42967`.)" msgstr ""