# 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: 2021-01-27 19:26+0100\n" "PO-Revision-Date: 2020-08-06 00:39+0200\n" "Last-Translator: \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 2.4\n" #: whatsnew/3.9.rst:3 msgid "What's New In Python 3.9" msgstr "Les nouveautés de Python 3.9" #: whatsnew/3.9.rst:0 msgid "Release" msgstr "Version" #: whatsnew/3.9.rst:5 msgid "|release|" msgstr "" #: whatsnew/3.9.rst:0 msgid "Date" msgstr "" #: whatsnew/3.9.rst:6 msgid "|today|" msgstr "|today|" #: whatsnew/3.9.rst:0 msgid "Editor" msgstr "" #: whatsnew/3.9.rst:7 msgid "Łukasz Langa" msgstr "" #: whatsnew/3.9.rst:47 msgid "" "This article explains the new features in Python 3.9, compared to 3.8. " "Python 3.9 was released on October 5th, 2020." msgstr "" #: whatsnew/3.9.rst:50 msgid "For full details, see the :ref:`changelog `." msgstr "Pour plus de détails, voir le :ref:`changelog `." #: whatsnew/3.9.rst:54 msgid ":pep:`596` - Python 3.9 Release Schedule" msgstr "" #: whatsnew/3.9.rst:58 msgid "Summary -- Release highlights" msgstr "Résumé – Points forts de la publication" #: whatsnew/3.9.rst:63 msgid "New syntax features:" msgstr "" #: whatsnew/3.9.rst:65 msgid ":pep:`584`, union operators added to ``dict``;" msgstr "" #: whatsnew/3.9.rst:66 msgid ":pep:`585`, type hinting generics in standard collections;" msgstr "" #: whatsnew/3.9.rst:67 msgid ":pep:`614`, relaxed grammar restrictions on decorators." msgstr "" #: whatsnew/3.9.rst:69 msgid "New built-in features:" msgstr "" #: whatsnew/3.9.rst:71 msgid ":pep:`616`, string methods to remove prefixes and suffixes." msgstr "" #: whatsnew/3.9.rst:73 msgid "New features in the standard library:" msgstr "" #: whatsnew/3.9.rst:75 msgid ":pep:`593`, flexible function and variable annotations;" msgstr "" #: whatsnew/3.9.rst:76 msgid "" ":func:`os.pidfd_open` added that allows process management without races and " "signals." msgstr "" #: whatsnew/3.9.rst:79 msgid "Interpreter improvements:" msgstr "" #: whatsnew/3.9.rst:81 msgid "" ":pep:`573`, fast access to module state from methods of C extension types;" msgstr "" #: whatsnew/3.9.rst:83 msgid ":pep:`617`, CPython now uses a new parser based on PEG;" msgstr "" #: whatsnew/3.9.rst:84 msgid "" "a number of Python builtins (range, tuple, set, frozenset, list, dict) are " "now sped up using :pep:`590` vectorcall;" msgstr "" #: whatsnew/3.9.rst:86 msgid "garbage collection does not block on resurrected objects;" msgstr "" #: whatsnew/3.9.rst:87 msgid "" "a number of Python modules (:mod:`_abc`, :mod:`audioop`, :mod:`_bz2`, :mod:" "`_codecs`, :mod:`_contextvars`, :mod:`_crypt`, :mod:`_functools`, :mod:" "`_json`, :mod:`_locale`, :mod:`math`, :mod:`operator`, :mod:`resource`, :mod:" "`time`, :mod:`_weakref`) now use multiphase initialization as defined by PEP " "489;" msgstr "" #: whatsnew/3.9.rst:92 msgid "" "a number of standard library modules (:mod:`audioop`, :mod:`ast`, :mod:" "`grp`, :mod:`_hashlib`, :mod:`pwd`, :mod:`_posixsubprocess`, :mod:`random`, :" "mod:`select`, :mod:`struct`, :mod:`termios`, :mod:`zlib`) are now using the " "stable ABI defined by PEP 384." msgstr "" #: whatsnew/3.9.rst:97 msgid "New library modules:" msgstr "" #: whatsnew/3.9.rst:99 msgid "" ":pep:`615`, the IANA Time Zone Database is now present in the standard " "library in the :mod:`zoneinfo` module;" msgstr "" #: whatsnew/3.9.rst:101 msgid "" "an implementation of a topological sort of a graph is now provided in the " "new :mod:`graphlib` module." msgstr "" #: whatsnew/3.9.rst:104 msgid "Release process changes:" msgstr "" #: whatsnew/3.9.rst:106 msgid ":pep:`602`, CPython adopts an annual release cycle." msgstr "" #: whatsnew/3.9.rst:110 msgid "You should check for DeprecationWarning in your code" msgstr "Vous devez vérifier la présence de DeprecationWarning dans votre code" #: whatsnew/3.9.rst:112 msgid "" "When Python 2.7 was still supported, a lot of functionality in Python 3 was " "kept for backward compatibility with Python 2.7. With the end of Python 2 " "support, these backward compatibility layers have been removed, or will be " "removed soon. Most of them emitted a :exc:`DeprecationWarning` warning for " "several years. For example, using ``collections.Mapping`` instead of " "``collections.abc.Mapping`` emits a :exc:`DeprecationWarning` since Python " "3.3, released in 2012." msgstr "" #: whatsnew/3.9.rst:120 msgid "" "Test your application with the :option:`-W` ``default`` command-line option " "to see :exc:`DeprecationWarning` and :exc:`PendingDeprecationWarning`, or " "even with :option:`-W` ``error`` to treat them as errors. :ref:`Warnings " "Filter ` can be used to ignore warnings from third-party " "code." msgstr "" "Testez votre application avec l'option de ligne de commande :option:`-W` " "``default`` pour voir les :exc:`DeprecationWarning` et les :exc:" "`PendingDeprecationWarning`, ou même avec :option:`-W` ``error`` pour les " "traiter comme des erreurs. :ref:`Le filtre des avertissements ` peut être utilisé pour ignorer les avertissements provenant de code " "de tierces parties." #: whatsnew/3.9.rst:125 msgid "" "Python 3.9 is the last version providing those Python 2 backward " "compatibility layers, to give more time to Python projects maintainers to " "organize the removal of the Python 2 support and add support for Python 3.9." msgstr "" #: whatsnew/3.9.rst:129 msgid "" "Aliases to :ref:`Abstract Base Classes ` " "in the :mod:`collections` module, like ``collections.Mapping`` alias to :" "class:`collections.abc.Mapping`, are kept for one last release for backward " "compatibility. They will be removed from Python 3.10." msgstr "" "Les alias vers :ref:`Abstract Base Classes ` dans le module :mod:`collections`, comme l'alias ``collections." "Mapping`` vers :class:`collections.abc.Mapping`, sont conservés pour une " "dernière version au titre de la rétrocompatibilité. Ils seront supprimés de " "Python 3.10." #: whatsnew/3.9.rst:134 msgid "" "More generally, try to run your tests in the :ref:`Python Development Mode " "` which helps to prepare your code to make it compatible with the " "next Python version." msgstr "" "Plus généralement, essayez d'exécuter vos tests dans le :ref:`Python " "Development Mode ` qui aide à préparer votre code pour le rendre " "compatible avec la prochaine version de Python." #: whatsnew/3.9.rst:138 msgid "" "Note: a number of pre-existing deprecations were removed in this version of " "Python as well. Consult the :ref:`removed-in-python-39` section." msgstr "" #: whatsnew/3.9.rst:1236 msgid "New Features" msgstr "Nouvelles fonctionnalités" #: whatsnew/3.9.rst:146 msgid "Dictionary Merge & Update Operators" msgstr "Opérateurs de fusion et de mise à jour de dictionnaires" #: whatsnew/3.9.rst:148 msgid "" "Merge (``|``) and update (``|=``) operators have been added to the built-in :" "class:`dict` class. Those complement the existing ``dict.update`` and " "``{**d1, **d2}`` methods of merging dictionaries." msgstr "" #: whatsnew/3.9.rst:281 msgid "Example::" msgstr "Exemple ::" #: whatsnew/3.9.rst:161 msgid "" "See :pep:`584` for a full description. (Contributed by Brandt Bucher in :" "issue:`36144`.)" msgstr "" #: whatsnew/3.9.rst:165 msgid "New String Methods to Remove Prefixes and Suffixes" msgstr "" #: whatsnew/3.9.rst:167 msgid "" ":meth:`str.removeprefix(prefix)` and :meth:`str." "removesuffix(suffix)` have been added to easily remove an " "unneeded prefix or a suffix from a string. Corresponding ``bytes``, " "``bytearray``, and ``collections.UserString`` methods have also been added. " "See :pep:`616` for a full description. (Contributed by Dennis Sweeney in :" "issue:`39939`.)" msgstr "" ":meth:`str.removeprefix(préfixe)` et :meth:`str." "removesuffix(suffixe)` ont été ajoutées pour supprimer " "facilement un préfixe ou un suffixe inutile d'une chaîne. Les méthodes " "correspondantes de ``bytes``, ``bytearray`` et ``collections.UserString`` " "ont également été ajoutées. Voir :pep:`616` pour une description complète " "(contribution de Dennis Sweeney dans :issue:`39939`)." #: whatsnew/3.9.rst:175 msgid "Type Hinting Generics in Standard Collections" msgstr "" #: whatsnew/3.9.rst:177 msgid "" "In type annotations you can now use built-in collection types such as " "``list`` and ``dict`` as generic types instead of importing the " "corresponding capitalized types (e.g. ``List`` or ``Dict``) from " "``typing``. Some other types in the standard library are also now generic, " "for example ``queue.Queue``." msgstr "" "Dans les annotations de type, vous pouvez maintenant utiliser les types de " "collection natifs tels que ``list`` et ``dict`` comme types génériques au " "lieu d'importer les types en majuscules correspondants (par exemple ``List`` " "ou ``Dict``) à partir de ``typing``. D'autres types de la bibliothèque " "standard sont maintenant génériques, par exemple ``queue.Queue``." #: whatsnew/3.9.rst:1125 msgid "Example:" msgstr "Exemple :" #: whatsnew/3.9.rst:191 msgid "" "See :pep:`585` for more details. (Contributed by Guido van Rossum, Ethan " "Smith, and Batuhan Taşkaya in :issue:`39481`.)" msgstr "" "Voir :pep:`585` pour plus de détails (contribution de Guido van Rossum, " "Ethan Smith et Batuhan Taşkaya dans :issue:`39481`)." #: whatsnew/3.9.rst:195 msgid "New Parser" msgstr "" #: whatsnew/3.9.rst:197 msgid "" "Python 3.9 uses a new parser, based on `PEG `_ instead of `LL(1) `_. The new parser's performance is roughly comparable to " "that of the old parser, but the PEG formalism is more flexible than LL(1) " "when it comes to designing new language features. We'll start using this " "flexibility in Python 3.10 and later." msgstr "" "Python 3.9 utilise un nouvel analyseur syntaxique, basé sur `PEG `_ au lieu de `LL(1) `_. Les performances du nouvel analyseur " "sont à peu près comparables à celles de l'ancien, mais le formalisme PEG est " "plus souple que LL(1) lorsqu'il s'agit de concevoir de nouvelles " "fonctionnalités du langage. Nous commencerons à utiliser cette flexibilité " "en Python 3.10 et supérieur." #: whatsnew/3.9.rst:205 msgid "" "The :mod:`ast` module uses the new parser and produces the same AST as the " "old parser." msgstr "" "Le module :mod:`ast` utilise le nouvel analyseur syntaxique et produit le " "même AST que l'ancien analyseur." #: whatsnew/3.9.rst:208 msgid "" "In Python 3.10, the old parser will be deleted and so will all functionality " "that depends on it (primarily the :mod:`parser` module, which has long been " "deprecated). In Python 3.9 *only*, you can switch back to the LL(1) parser " "using a command line switch (``-X oldparser``) or an environment variable " "(``PYTHONOLDPARSER=1``)." msgstr "" "En Python 3.10, l'ancien analyseur sera supprimé ainsi que toutes les " "fonctionnalités qui en dépendent (principalement le module :mod:`parser`, " "qui est obsolète depuis longtemps). En Python 3.9 *seulement*, vous pouvez " "revenir à l'analyseur LL(1) en utilisant une option en ligne de commande (``-" "X oldparser``) ou une variable d'environnement (``PYTHONOLDPARSER=1``)." #: whatsnew/3.9.rst:214 msgid "" "See :pep:`617` for more details. (Contributed by Guido van Rossum, Pablo " "Galindo and Lysandros Nikolaou in :issue:`40334`.)" msgstr "" "Voir :pep:`617` pour plus de détails (contribution de Guido van Rossum, " "Pablo Galindo et Lysandros Nikolaou dans :issue:`40334`)." #: whatsnew/3.9.rst:219 msgid "Other Language Changes" msgstr "" #: whatsnew/3.9.rst:221 msgid "" ":func:`__import__` now raises :exc:`ImportError` instead of :exc:" "`ValueError`, which used to occur when a relative import went past its top-" "level package. (Contributed by Ngalim Siregar in :issue:`37444`.)" msgstr "" #: whatsnew/3.9.rst:226 msgid "" "Python now gets the absolute path of the script filename specified on the " "command line (ex: ``python3 script.py``): the ``__file__`` attribute of the :" "mod:`__main__` module became an absolute path, rather than a relative path. " "These paths now remain valid after the current directory is changed by :func:" "`os.chdir`. As a side effect, the traceback also displays the absolute path " "for :mod:`__main__` module frames in this case. (Contributed by Victor " "Stinner in :issue:`20443`.)" msgstr "" #: whatsnew/3.9.rst:234 msgid "" "In the :ref:`Python Development Mode ` and in debug build, the " "*encoding* and *errors* arguments are now checked for string encoding and " "decoding operations. Examples: :func:`open`, :meth:`str.encode` and :meth:" "`bytes.decode`." msgstr "" #: whatsnew/3.9.rst:239 msgid "" "By default, for best performance, the *errors* argument is only checked at " "the first encoding/decoding error and the *encoding* argument is sometimes " "ignored for empty strings. (Contributed by Victor Stinner in :issue:`37388`.)" msgstr "" #: whatsnew/3.9.rst:244 msgid "" "``\"\".replace(\"\", s, n)`` now returns ``s`` instead of an empty string " "for all non-zero ``n``. It is now consistent with ``\"\".replace(\"\", " "s)``. There are similar changes for :class:`bytes` and :class:`bytearray` " "objects. (Contributed by Serhiy Storchaka in :issue:`28029`.)" msgstr "" #: whatsnew/3.9.rst:249 msgid "" "Any valid expression can now be used as a :term:`decorator`. Previously, " "the grammar was much more restrictive. See :pep:`614` for details. " "(Contributed by Brandt Bucher in :issue:`39702`.)" msgstr "" #: whatsnew/3.9.rst:253 msgid "" "Improved help for the :mod:`typing` module. Docstrings are now shown for all " "special forms and special generic aliases (like ``Union`` and ``List``). " "Using :func:`help` with generic alias like ``List[int]`` will show the help " "for the correspondent concrete type (``list`` in this case). (Contributed by " "Serhiy Storchaka in :issue:`40257`.)" msgstr "" #: whatsnew/3.9.rst:259 msgid "" "Parallel running of :meth:`~agen.aclose` / :meth:`~agen.asend` / :meth:" "`~agen.athrow` is now prohibited, and ``ag_running`` now reflects the actual " "running status of the async generator. (Contributed by Yury Selivanov in :" "issue:`30773`.)" msgstr "" #: whatsnew/3.9.rst:264 msgid "" "Unexpected errors in calling the ``__iter__`` method are no longer masked by " "``TypeError`` in the :keyword:`in` operator and functions :func:`~operator." "contains`, :func:`~operator.indexOf` and :func:`~operator.countOf` of the :" "mod:`operator` module. (Contributed by Serhiy Storchaka in :issue:`40824`.)" msgstr "" #: whatsnew/3.9.rst:272 msgid "New Modules" msgstr "" #: whatsnew/3.9.rst:275 msgid "zoneinfo" msgstr "" #: whatsnew/3.9.rst:277 msgid "" "The :mod:`zoneinfo` module brings support for the IANA time zone database to " "the standard library. It adds :class:`zoneinfo.ZoneInfo`, a concrete :class:" "`datetime.tzinfo` implementation backed by the system's time zone data." msgstr "" #: whatsnew/3.9.rst:301 msgid "" "As a fall-back source of data for platforms that don't ship the IANA " "database, the |tzdata|_ module was released as a first-party package -- " "distributed via PyPI and maintained by the CPython core team." msgstr "" #: whatsnew/3.9.rst:310 msgid "" ":pep:`615` -- Support for the IANA Time Zone Database in the Standard Library" msgstr "" #: whatsnew/3.9.rst:311 msgid "PEP written and implemented by Paul Ganssle" msgstr "" #: whatsnew/3.9.rst:315 msgid "graphlib" msgstr "" #: whatsnew/3.9.rst:317 msgid "" "A new module, :mod:`graphlib`, was added that contains the :class:`graphlib." "TopologicalSorter` class to offer functionality to perform topological " "sorting of graphs. (Contributed by Pablo Galindo, Tim Peters and Larry " "Hastings in :issue:`17005`.)" msgstr "" #: whatsnew/3.9.rst:324 msgid "Improved Modules" msgstr "" #: whatsnew/3.9.rst:327 msgid "ast" msgstr "ast" #: whatsnew/3.9.rst:329 msgid "" "Added the *indent* option to :func:`~ast.dump` which allows it to produce a " "multiline indented output. (Contributed by Serhiy Storchaka in :issue:" "`37995`.)" msgstr "" #: whatsnew/3.9.rst:333 msgid "" "Added :func:`ast.unparse` as a function in the :mod:`ast` module that can be " "used to unparse an :class:`ast.AST` object and produce a string with code " "that would produce an equivalent :class:`ast.AST` object when parsed. " "(Contributed by Pablo Galindo and Batuhan Taskaya in :issue:`38870`.)" msgstr "" #: whatsnew/3.9.rst:338 msgid "" "Added docstrings to AST nodes that contains the ASDL signature used to " "construct that node. (Contributed by Batuhan Taskaya in :issue:`39638`.)" msgstr "" #: whatsnew/3.9.rst:342 msgid "asyncio" msgstr "asyncio" #: whatsnew/3.9.rst:344 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.9.rst:351 msgid "" "Added a new :term:`coroutine` :meth:`~asyncio.loop." "shutdown_default_executor` that schedules a shutdown for the default " "executor that waits on the :class:`~concurrent.futures.ThreadPoolExecutor` " "to finish closing. Also, :func:`asyncio.run` has been updated to use the " "new :term:`coroutine`. (Contributed by Kyle Stanley in :issue:`34037`.)" msgstr "" #: whatsnew/3.9.rst:357 msgid "" "Added :class:`asyncio.PidfdChildWatcher`, a Linux-specific child watcher " "implementation that polls process file descriptors. (:issue:`38692`)" msgstr "" #: whatsnew/3.9.rst:360 msgid "" "Added a new :term:`coroutine` :func:`asyncio.to_thread`. It is mainly used " "for running IO-bound functions in a separate thread to avoid blocking the " "event loop, and essentially works as a high-level version of :meth:`~asyncio." "loop.run_in_executor` that can directly take keyword arguments. (Contributed " "by Kyle Stanley and Yury Selivanov in :issue:`32309`.)" msgstr "" #: whatsnew/3.9.rst:366 msgid "" "When cancelling the task due to a timeout, :meth:`asyncio.wait_for` will now " "wait until the cancellation is complete also in the case when *timeout* is " "<= 0, like it does with positive timeouts. (Contributed by Elvis " "Pranskevichus in :issue:`32751`.)" msgstr "" #: whatsnew/3.9.rst:371 msgid "" ":mod:`asyncio` now raises :exc:`TyperError` when calling incompatible " "methods with an :class:`ssl.SSLSocket` socket. (Contributed by Ido Michael " "in :issue:`37404`.)" msgstr "" #: whatsnew/3.9.rst:376 msgid "compileall" msgstr "compileall" #: whatsnew/3.9.rst:378 msgid "" "Added new possibility to use hardlinks for duplicated ``.pyc`` files: " "*hardlink_dupes* parameter and --hardlink-dupes command line option. " "(Contributed by Lumír 'Frenzy' Balhar in :issue:`40495`.)" msgstr "" #: whatsnew/3.9.rst:381 msgid "" "Added new options for path manipulation in resulting ``.pyc`` files: " "*stripdir*, *prependdir*, *limit_sl_dest* parameters and -s, -p, -e command " "line options. Added the possibility to specify the option for an " "optimization level multiple times. (Contributed by Lumír 'Frenzy' Balhar in :" "issue:`38112`.)" msgstr "" #: whatsnew/3.9.rst:386 msgid "concurrent.futures" msgstr "concurrent.futures" #: whatsnew/3.9.rst:388 msgid "" "Added a new *cancel_futures* parameter to :meth:`concurrent.futures.Executor." "shutdown` that cancels all pending futures which have not started running, " "instead of waiting for them to complete before shutting down the executor. " "(Contributed by Kyle Stanley in :issue:`39349`.)" msgstr "" #: whatsnew/3.9.rst:394 msgid "" "Removed daemon threads from :class:`~concurrent.futures.ThreadPoolExecutor` " "and :class:`~concurrent.futures.ProcessPoolExecutor`. This improves " "compatibility with subinterpreters and predictability in their shutdown " "processes. (Contributed by Kyle Stanley in :issue:`39812`.)" msgstr "" #: whatsnew/3.9.rst:399 msgid "" "Workers in :class:`~concurrent.futures.ProcessPoolExecutor` are now spawned " "on demand, only when there are no available idle workers to reuse. This " "optimizes startup overhead and reduces the amount of lost CPU time to idle " "workers. (Contributed by Kyle Stanley in :issue:`39207`.)" msgstr "" #: whatsnew/3.9.rst:405 msgid "curses" msgstr "curses" #: whatsnew/3.9.rst:407 msgid "" "Added :func:`curses.get_escdelay`, :func:`curses.set_escdelay`, :func:" "`curses.get_tabsize`, and :func:`curses.set_tabsize` functions. (Contributed " "by Anthony Sottile in :issue:`38312`.)" msgstr "" #: whatsnew/3.9.rst:412 msgid "datetime" msgstr "datetime" #: whatsnew/3.9.rst:413 msgid "" "The :meth:`~datetime.date.isocalendar()` of :class:`datetime.date` and :meth:" "`~datetime.datetime.isocalendar()` of :class:`datetime.datetime` methods now " "returns a :func:`~collections.namedtuple` instead of a :class:`tuple`. " "(Contributed by Dong-hee Na in :issue:`24416`.)" msgstr "" #: whatsnew/3.9.rst:419 msgid "distutils" msgstr "distutils" #: whatsnew/3.9.rst:421 msgid "" "The :command:`upload` command now creates SHA2-256 and Blake2b-256 hash " "digests. It skips MD5 on platforms that block MD5 digest. (Contributed by " "Christian Heimes in :issue:`40698`.)" msgstr "" #: whatsnew/3.9.rst:426 msgid "fcntl" msgstr "" #: whatsnew/3.9.rst:428 msgid "" "Added constants :data:`~fcntl.F_OFD_GETLK`, :data:`~fcntl.F_OFD_SETLK` and :" "data:`~fcntl.F_OFD_SETLKW`. (Contributed by Dong-hee Na in :issue:`38602`.)" msgstr "" #: whatsnew/3.9.rst:433 msgid "ftplib" msgstr "" #: whatsnew/3.9.rst:435 msgid "" ":class:`~ftplib.FTP` and :class:`~ftplib.FTP_TLS` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " "the creation of a non-blocking socket. (Contributed by Dong-hee Na in :issue:" "`39259`.)" msgstr "" #: whatsnew/3.9.rst:440 msgid "gc" msgstr "" #: whatsnew/3.9.rst:442 msgid "" "When the garbage collector makes a collection in which some objects " "resurrect (they are reachable from outside the isolated cycles after the " "finalizers have been executed), do not block the collection of all objects " "that are still unreachable. (Contributed by Pablo Galindo and Tim Peters in :" "issue:`38379`.)" msgstr "" #: whatsnew/3.9.rst:447 msgid "" "Added a new function :func:`gc.is_finalized` to check if an object has been " "finalized by the garbage collector. (Contributed by Pablo Galindo in :issue:" "`39322`.)" msgstr "" #: whatsnew/3.9.rst:452 msgid "hashlib" msgstr "" #: whatsnew/3.9.rst:454 msgid "" "The :mod:`hashlib` module can now use SHA3 hashes and SHAKE XOF from OpenSSL " "when available. (Contributed by Christian Heimes in :issue:`37630`.)" msgstr "" #: whatsnew/3.9.rst:458 msgid "" "Builtin hash modules can now be disabled with ``./configure --without-" "builtin-hashlib-hashes`` or selectively enabled with e.g. ``./configure --" "with-builtin-hashlib-hashes=sha3,blake2`` to force use of OpenSSL based " "implementation. (Contributed by Christian Heimes in :issue:`40479`)" msgstr "" #: whatsnew/3.9.rst:466 msgid "http" msgstr "" #: whatsnew/3.9.rst:468 msgid "" "HTTP status codes ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 " "TOO_EARLY`` are added to :class:`http.HTTPStatus`. (Contributed by Dong-hee " "Na in :issue:`39509` and Ross Rhodes in :issue:`39507`.)" msgstr "" #: whatsnew/3.9.rst:472 msgid "IDLE and idlelib" msgstr "" #: whatsnew/3.9.rst:474 msgid "" "Added option to toggle cursor blink off. (Contributed by Zackery Spytz in :" "issue:`4603`.)" msgstr "" #: whatsnew/3.9.rst:477 msgid "" "Escape key now closes IDLE completion windows. (Contributed by Johnny " "Najera in :issue:`38944`.)" msgstr "" #: whatsnew/3.9.rst:480 msgid "" "Added keywords to module name completion list. (Contributed by Terry J. " "Reedy in :issue:`37765`.)" msgstr "" #: whatsnew/3.9.rst:483 msgid "The changes above have been backported to 3.8 maintenance releases." msgstr "" #: whatsnew/3.9.rst:486 msgid "imaplib" msgstr "" #: whatsnew/3.9.rst:488 msgid "" ":class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an optional " "*timeout* parameter for their constructors. Also, the :meth:`~imaplib.IMAP4." "open` method now has an optional *timeout* parameter with this change. The " "overridden methods of :class:`~imaplib.IMAP4_SSL` and :class:`~imaplib." "IMAP4_stream` were applied to this change. (Contributed by Dong-hee Na in :" "issue:`38615`.)" msgstr "" #: whatsnew/3.9.rst:495 msgid "" ":meth:`imaplib.IMAP4.unselect` is added. :meth:`imaplib.IMAP4.unselect` " "frees server's resources associated with the selected mailbox and returns " "the server to the authenticated state. This command performs the same " "actions as :meth:`imaplib.IMAP4.close`, except that no messages are " "permanently removed from the currently selected mailbox. (Contributed by " "Dong-hee Na in :issue:`40375`.)" msgstr "" #: whatsnew/3.9.rst:503 msgid "importlib" msgstr "importlib" #: whatsnew/3.9.rst:505 msgid "" "To improve consistency with import statements, :func:`importlib.util." "resolve_name` now raises :exc:`ImportError` instead of :exc:`ValueError` for " "invalid relative import attempts. (Contributed by Ngalim Siregar in :issue:" "`37444`.)" msgstr "" #: whatsnew/3.9.rst:510 msgid "" "Import loaders which publish immutable module objects can now publish " "immutable packages in addition to individual modules. (Contributed by Dino " "Viehland in :issue:`39336`.)" msgstr "" #: whatsnew/3.9.rst:514 msgid "" "Added :func:`importlib.resources.files` function with support for " "subdirectories in package data, matching backport in ``importlib_resources`` " "version 1.5. (Contributed by Jason R. Coombs in :issue:`39791`.)" msgstr "" #: whatsnew/3.9.rst:519 msgid "" "Refreshed ``importlib.metadata`` from ``importlib_metadata`` version 1.6.1." msgstr "" #: whatsnew/3.9.rst:522 msgid "inspect" msgstr "" #: whatsnew/3.9.rst:524 msgid "" ":attr:`inspect.BoundArguments.arguments` is changed from ``OrderedDict`` to " "regular dict. (Contributed by Inada Naoki in :issue:`36350` and :issue:" "`39775`.)" msgstr "" #: whatsnew/3.9.rst:528 msgid "ipaddress" msgstr "" #: whatsnew/3.9.rst:530 msgid "" ":mod:`ipaddress` now supports IPv6 Scoped Addresses (IPv6 address with " "suffix ``%``)." msgstr "" #: whatsnew/3.9.rst:532 msgid "" "Scoped IPv6 addresses can be parsed using :class:`ipaddress.IPv6Address`. If " "present, scope zone ID is available through the :attr:`~ipaddress." "IPv6Address.scope_id` attribute. (Contributed by Oleksandr Pavliuk in :issue:" "`34788`.)" msgstr "" #: whatsnew/3.9.rst:537 msgid "math" msgstr "" #: whatsnew/3.9.rst:539 msgid "" "Expanded the :func:`math.gcd` function to handle multiple arguments. " "Formerly, it only supported two arguments. (Contributed by Serhiy Storchaka " "in :issue:`39648`.)" msgstr "" #: whatsnew/3.9.rst:543 msgid "" "Added :func:`math.lcm`: return the least common multiple of specified " "arguments. (Contributed by Mark Dickinson, Ananthakrishnan and Serhiy " "Storchaka in :issue:`39479` and :issue:`39648`.)" msgstr "" #: whatsnew/3.9.rst:547 msgid "" "Added :func:`math.nextafter`: return the next floating-point value after *x* " "towards *y*. (Contributed by Victor Stinner in :issue:`39288`.)" msgstr "" #: whatsnew/3.9.rst:551 msgid "" "Added :func:`math.ulp`: return the value of the least significant bit of a " "float. (Contributed by Victor Stinner in :issue:`39310`.)" msgstr "" #: whatsnew/3.9.rst:556 msgid "multiprocessing" msgstr "multiprocessing" #: whatsnew/3.9.rst:558 msgid "" "The :class:`multiprocessing.SimpleQueue` class has a new :meth:" "`~multiprocessing.SimpleQueue.close` method to explicitly close the queue. " "(Contributed by Victor Stinner in :issue:`30966`.)" msgstr "" #: whatsnew/3.9.rst:564 msgid "nntplib" msgstr "" #: whatsnew/3.9.rst:566 msgid "" ":class:`~nntplib.NNTP` and :class:`~nntplib.NNTP_SSL` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " "the creation of a non-blocking socket. (Contributed by Dong-hee Na in :issue:" "`39259`.)" msgstr "" #: whatsnew/3.9.rst:571 msgid "os" msgstr "" #: whatsnew/3.9.rst:573 msgid "" "Added :data:`~os.CLD_KILLED` and :data:`~os.CLD_STOPPED` for :attr:" "`si_code`. (Contributed by Dong-hee Na in :issue:`38493`.)" msgstr "" #: whatsnew/3.9.rst:576 msgid "" "Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) and :data:" "`os.P_PIDFD` (:issue:`38713`) for process management with file descriptors." msgstr "" #: whatsnew/3.9.rst:580 msgid "" "The :func:`os.unsetenv` function is now also available on Windows. " "(Contributed by Victor Stinner in :issue:`39413`.)" msgstr "" #: whatsnew/3.9.rst:583 msgid "" "The :func:`os.putenv` and :func:`os.unsetenv` functions are now always " "available. (Contributed by Victor Stinner in :issue:`39395`.)" msgstr "" #: whatsnew/3.9.rst:587 msgid "" "Added :func:`os.waitstatus_to_exitcode` function: convert a wait status to " "an exit code. (Contributed by Victor Stinner in :issue:`40094`.)" msgstr "" #: whatsnew/3.9.rst:592 msgid "pathlib" msgstr "pathlib" #: whatsnew/3.9.rst:594 msgid "" "Added :meth:`pathlib.Path.readlink()` which acts similarly to :func:`os." "readlink`. (Contributed by Girts Folkmanis in :issue:`30618`)" msgstr "" #: whatsnew/3.9.rst:599 msgid "pdb" msgstr "" #: whatsnew/3.9.rst:601 msgid "" "On Windows now :class:`~pdb.Pdb` supports ``~/.pdbrc``. (Contributed by Tim " "Hopper and Dan Lidral-Porter in :issue:`20523`.)" msgstr "" #: whatsnew/3.9.rst:605 msgid "poplib" msgstr "" #: whatsnew/3.9.rst:607 msgid "" ":class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " "the creation of a non-blocking socket. (Contributed by Dong-hee Na in :issue:" "`39259`.)" msgstr "" #: whatsnew/3.9.rst:612 msgid "pprint" msgstr "" #: whatsnew/3.9.rst:614 msgid "" ":mod:`pprint` can now pretty-print :class:`types.SimpleNamespace`. " "(Contributed by Carl Bordum Hansen in :issue:`37376`.)" msgstr "" #: whatsnew/3.9.rst:618 msgid "pydoc" msgstr "" #: whatsnew/3.9.rst:620 msgid "" "The documentation string is now shown not only for class, function, method " "etc, but for any object that has its own ``__doc__`` attribute. (Contributed " "by Serhiy Storchaka in :issue:`40257`.)" msgstr "" #: whatsnew/3.9.rst:625 msgid "random" msgstr "" #: whatsnew/3.9.rst:627 msgid "" "Added a new :attr:`random.Random.randbytes` method: generate random bytes. " "(Contributed by Victor Stinner in :issue:`40286`.)" msgstr "" #: whatsnew/3.9.rst:631 msgid "signal" msgstr "" #: whatsnew/3.9.rst:633 msgid "" "Exposed the Linux-specific :func:`signal.pidfd_send_signal` for sending to " "signals to a process using a file descriptor instead of a pid. (:issue:" "`38712`)" msgstr "" #: whatsnew/3.9.rst:637 msgid "smtplib" msgstr "" #: whatsnew/3.9.rst:639 msgid "" ":class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " "the creation of a non-blocking socket. (Contributed by Dong-hee Na in :issue:" "`39259`.)" msgstr "" #: whatsnew/3.9.rst:643 msgid "" ":class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter. " "(Contributed by Dong-hee Na in :issue:`39329`.)" msgstr "" #: whatsnew/3.9.rst:647 msgid "socket" msgstr "" #: whatsnew/3.9.rst:649 msgid "" "The :mod:`socket` module now exports the :data:`~socket." "CAN_RAW_JOIN_FILTERS` constant on Linux 4.1 and greater. (Contributed by " "Stefan Tatschner and Zackery Spytz in :issue:`25780`.)" msgstr "" #: whatsnew/3.9.rst:653 msgid "" "The socket module now supports the :data:`~socket.CAN_J1939` protocol on " "platforms that support it. (Contributed by Karl Ding in :issue:`40291`.)" msgstr "" #: whatsnew/3.9.rst:656 msgid "" "The socket module now has the :func:`socket.send_fds` and :func:`socket.recv." "fds` methods. (Contributed by Joannah Nanjekye, Shinya Okano and Victor " "Stinner in :issue:`28724`.)" msgstr "" #: whatsnew/3.9.rst:662 msgid "time" msgstr "time" #: whatsnew/3.9.rst:664 msgid "" "On AIX, :func:`~time.thread_time` is now implemented with " "``thread_cputime()`` which has nanosecond resolution, rather than " "``clock_gettime(CLOCK_THREAD_CPUTIME_ID)`` which has a resolution of 10 ms. " "(Contributed by Batuhan Taskaya in :issue:`40192`)" msgstr "" #: whatsnew/3.9.rst:670 msgid "sys" msgstr "sys" #: whatsnew/3.9.rst:672 msgid "" "Added a new :attr:`sys.platlibdir` attribute: name of the platform-specific " "library directory. It is used to build the path of standard library and the " "paths of installed extension modules. It is equal to ``\"lib\"`` on most " "platforms. On Fedora and SuSE, it is equal to ``\"lib64\"`` on 64-bit " "platforms. (Contributed by Jan Matějek, Matěj Cepl, Charalampos Stratakis " "and Victor Stinner in :issue:`1294959`.)" msgstr "" #: whatsnew/3.9.rst:678 msgid "" "Previously, :attr:`sys.stderr` was block-buffered when non-interactive. Now " "``stderr`` defaults to always being line-buffered. (Contributed by Jendrik " "Seipp in :issue:`13601`.)" msgstr "" #: whatsnew/3.9.rst:683 msgid "tracemalloc" msgstr "" #: whatsnew/3.9.rst:685 msgid "" "Added :func:`tracemalloc.reset_peak` to set the peak size of traced memory " "blocks to the current size, to measure the peak of specific pieces of code. " "(Contributed by Huon Wilson in :issue:`40630`.)" msgstr "" #: whatsnew/3.9.rst:1462 msgid "typing" msgstr "" #: whatsnew/3.9.rst:692 msgid "" ":pep:`593` introduced an :data:`typing.Annotated` type to decorate existing " "types with context-specific metadata and new ``include_extras`` parameter " "to :func:`typing.get_type_hints` to access the metadata at runtime. " "(Contributed by Till Varoquaux and Konstantin Kashin.)" msgstr "" #: whatsnew/3.9.rst:698 msgid "unicodedata" msgstr "unicodedata" #: whatsnew/3.9.rst:700 msgid "" "The Unicode database has been updated to version 13.0.0. (:issue:`39926`)." msgstr "" #: whatsnew/3.9.rst:703 msgid "venv" msgstr "venv" #: whatsnew/3.9.rst:705 msgid "" "The activation scripts provided by :mod:`venv` now all specify their prompt " "customization consistently by always using the value specified by " "``__VENV_PROMPT__``. Previously some scripts unconditionally used " "``__VENV_PROMPT__``, others only if it happened to be set (which was the " "default case), and one used ``__VENV_NAME__`` instead. (Contributed by Brett " "Cannon in :issue:`37663`.)" msgstr "" #: whatsnew/3.9.rst:713 msgid "xml" msgstr "" #: whatsnew/3.9.rst:715 msgid "" "White space characters within attributes are now preserved when serializing :" "mod:`xml.etree.ElementTree` to XML file. EOLNs are no longer normalized to " "\"\\n\". This is the result of discussion about how to interpret section " "2.11 of XML spec. (Contributed by Mefistotelis in :issue:`39011`.)" msgstr "" #: whatsnew/3.9.rst:723 msgid "Optimizations" msgstr "" #: whatsnew/3.9.rst:725 msgid "" "Optimized the idiom for assignment a temporary variable in comprehensions. " "Now ``for y in [expr]`` in comprehensions is as fast as a simple assignment " "``y = expr``. For example:" msgstr "" #: whatsnew/3.9.rst:729 msgid "sums = [s for s in [0] for x in data for s in [s + x]]" msgstr "" #: whatsnew/3.9.rst:731 msgid "" "Unlike the ``:=`` operator this idiom does not leak a variable to the outer " "scope." msgstr "" #: whatsnew/3.9.rst:734 msgid "(Contributed by Serhiy Storchaka in :issue:`32856`.)" msgstr "" #: whatsnew/3.9.rst:736 msgid "" "Optimized signal handling in multithreaded applications. If a thread " "different than the main thread gets a signal, the bytecode evaluation loop " "is no longer interrupted at each bytecode instruction to check for pending " "signals which cannot be handled. Only the main thread of the main " "interpreter can handle signals." msgstr "" #: whatsnew/3.9.rst:742 msgid "" "Previously, the bytecode evaluation loop was interrupted at each instruction " "until the main thread handles signals. (Contributed by Victor Stinner in :" "issue:`40010`.)" msgstr "" #: whatsnew/3.9.rst:746 msgid "" "Optimized the :mod:`subprocess` module on FreeBSD using ``closefrom()``. " "(Contributed by Ed Maste, Conrad Meyer, Kyle Evans, Kubilay Kocak and Victor " "Stinner in :issue:`38061`.)" msgstr "" #: whatsnew/3.9.rst:750 msgid "" ":c:func:`PyLong_FromDouble` is now up to 1.87x faster for values that fit " "into :c:type:`long`. (Contributed by Sergey Fedoseev in :issue:`37986`.)" msgstr "" #: whatsnew/3.9.rst:754 msgid "" "A number of Python builtins (:class:`range`, :class:`tuple`, :class:`set`, :" "class:`frozenset`, :class:`list`, :class:`dict`) are now sped up by using :" "pep:`590` vectorcall protocol. (Contributed by Dong-hee Na, Mark Shannon, " "Jeroen Demeyer and Petr Viktorin in :issue:`37207`.)" msgstr "" #: whatsnew/3.9.rst:759 msgid "" "Optimized :func:`~set.difference_update` for the case when the other set is " "much larger than the base set. (Suggested by Evgeny Kapun with code " "contributed by Michele Orrù in :issue:`8425`.)" msgstr "" #: whatsnew/3.9.rst:763 msgid "" "Python's small object allocator (``obmalloc.c``) now allows (no more than) " "one empty arena to remain available for immediate reuse, without returning " "it to the OS. This prevents thrashing in simple loops where an arena could " "be created and destroyed anew on each iteration. (Contributed by Tim Peters " "in :issue:`37257`.)" msgstr "" #: whatsnew/3.9.rst:769 msgid "" ":term:`floor division` of float operation now has a better performance. Also " "the message of :exc:`ZeroDivisionError` for this operation is updated. " "(Contributed by Dong-hee Na in :issue:`39434`.)" msgstr "" #: whatsnew/3.9.rst:773 msgid "" "Decoding short ASCII strings with UTF-8 and ascii codecs is now about 15% " "faster. (Contributed by Inada Naoki in :issue:`37348`.)" msgstr "" #: whatsnew/3.9.rst:776 msgid "" "Here's a summary of performance improvements from Python 3.4 through Python " "3.9:" msgstr "" #: whatsnew/3.9.rst:823 msgid "" "These results were generated from the variable access benchmark script at: " "``Tools/scripts/var_access_benchmark.py``. The benchmark script displays " "timings in nanoseconds. The benchmarks were measured on an `Intel® Core™ " "i7-4960HQ processor `_ running the macOS 64-bit builds found at `python.org `_." msgstr "" #: whatsnew/3.9.rst:833 msgid "Deprecated" msgstr "" #: whatsnew/3.9.rst:835 msgid "" "The distutils ``bdist_msi`` command is now deprecated, use ``bdist_wheel`` " "(wheel packages) instead. (Contributed by Hugo van Kemenade in :issue:" "`39586`.)" msgstr "" #: whatsnew/3.9.rst:839 msgid "" "Currently :func:`math.factorial` accepts :class:`float` instances with non-" "negative integer values (like ``5.0``). It raises a :exc:`ValueError` for " "non-integral and negative floats. It is now deprecated. In future Python " "versions it will raise a :exc:`TypeError` for all floats. (Contributed by " "Serhiy Storchaka in :issue:`37315`.)" msgstr "" #: whatsnew/3.9.rst:845 msgid "" "The :mod:`parser` and :mod:`symbol` modules are deprecated and will be " "removed in future versions of Python. For the majority of use cases, users " "can leverage the Abstract Syntax Tree (AST) generation and compilation " "stage, using the :mod:`ast` module." msgstr "" #: whatsnew/3.9.rst:850 msgid "" "The Public C API functions :c:func:`PyParser_SimpleParseStringFlags`, :c:" "func:`PyParser_SimpleParseStringFlagsFilename`, :c:func:" "`PyParser_SimpleParseFileFlags` and :c:func:`PyNode_Compile` are deprecated " "and will be removed in Python 3.10 together with the old parser." msgstr "" #: whatsnew/3.9.rst:855 msgid "" "Using :data:`NotImplemented` in a boolean context has been deprecated, as it " "is almost exclusively the result of incorrect rich comparator " "implementations. It will be made a :exc:`TypeError` in a future version of " "Python. (Contributed by Josh Rosenberg in :issue:`35712`.)" msgstr "" #: whatsnew/3.9.rst:861 msgid "" "The :mod:`random` module currently accepts any hashable type as a possible " "seed value. Unfortunately, some of those types are not guaranteed to have a " "deterministic hash value. After Python 3.9, the module will restrict its " "seeds to :const:`None`, :class:`int`, :class:`float`, :class:`str`, :class:" "`bytes`, and :class:`bytearray`." msgstr "" #: whatsnew/3.9.rst:867 msgid "" "Opening the :class:`~gzip.GzipFile` file for writing without specifying the " "*mode* argument is deprecated. In future Python versions it will always be " "opened for reading by default. Specify the *mode* argument for opening it " "for writing and silencing a warning. (Contributed by Serhiy Storchaka in :" "issue:`28286`.)" msgstr "" #: whatsnew/3.9.rst:873 msgid "" "Deprecated the ``split()`` method of :class:`_tkinter.TkappType` in favour " "of the ``splitlist()`` method which has more consistent and predicable " "behavior. (Contributed by Serhiy Storchaka in :issue:`38371`.)" msgstr "" #: whatsnew/3.9.rst:878 msgid "" "The explicit passing of coroutine objects to :func:`asyncio.wait` has been " "deprecated and will be removed in version 3.11. (Contributed by Yury " "Selivanov and Kyle Stanley in :issue:`34790`.)" msgstr "" #: whatsnew/3.9.rst:882 msgid "" "binhex4 and hexbin4 standards are now deprecated. The :mod:`binhex` module " "and the following :mod:`binascii` functions are now deprecated:" msgstr "" #: whatsnew/3.9.rst:885 msgid ":func:`~binascii.b2a_hqx`, :func:`~binascii.a2b_hqx`" msgstr "" #: whatsnew/3.9.rst:886 msgid ":func:`~binascii.rlecode_hqx`, :func:`~binascii.rledecode_hqx`" msgstr "" #: whatsnew/3.9.rst:888 msgid "(Contributed by Victor Stinner in :issue:`39353`.)" msgstr "" #: whatsnew/3.9.rst:890 msgid "" ":mod:`ast` classes ``slice``, ``Index`` and ``ExtSlice`` are considered " "deprecated and will be removed in future Python versions. ``value`` itself " "should be used instead of ``Index(value)``. ``Tuple(slices, Load())`` " "should be used instead of ``ExtSlice(slices)``. (Contributed by Serhiy " "Storchaka in :issue:`34822`.)" msgstr "" #: whatsnew/3.9.rst:896 msgid "" ":mod:`ast` classes ``Suite``, ``Param``, ``AugLoad`` and ``AugStore`` are " "considered deprecated and will be removed in future Python versions. They " "were not generated by the parser and not accepted by the code generator in " "Python 3. (Contributed by Batuhan Taskaya in :issue:`39639` and :issue:" "`39969` and Serhiy Storchaka in :issue:`39988`.)" msgstr "" #: whatsnew/3.9.rst:903 msgid "" "The :c:func:`PyEval_InitThreads` and :c:func:`PyEval_ThreadsInitialized` " "functions are now deprecated and will be removed in Python 3.11. Calling :c:" "func:`PyEval_InitThreads` now does nothing. The :term:`GIL` is initialized " "by :c:func:`Py_Initialize()` since Python 3.7. (Contributed by Victor " "Stinner in :issue:`39877`.)" msgstr "" #: whatsnew/3.9.rst:909 msgid "" "Passing ``None`` as the first argument to the :func:`shlex.split` function " "has been deprecated. (Contributed by Zackery Spytz in :issue:`33262`.)" msgstr "" #: whatsnew/3.9.rst:912 msgid "" ":func:`smtpd.MailmanProxy` is now deprecated as it is unusable without an " "external module, ``mailman``. (Contributed by Samuel Colvin in :issue:" "`35800`.)" msgstr "" #: whatsnew/3.9.rst:915 msgid "" "The :mod:`lib2to3` module now emits a :exc:`PendingDeprecationWarning`. " "Python 3.9 switched to a PEG parser (see :pep:`617`), and Python 3.10 may " "include new language syntax that is not parsable by lib2to3's LL(1) parser. " "The ``lib2to3`` module may be removed from the standard library in a future " "Python version. Consider third-party alternatives such as `LibCST`_ or " "`parso`_. (Contributed by Carl Meyer in :issue:`40360`.)" msgstr "" #: whatsnew/3.9.rst:923 msgid "" "The *random* parameter of :func:`random.shuffle` has been deprecated. " "(Contributed by Raymond Hettinger in :issue:`40465`)" msgstr "" #: whatsnew/3.9.rst:1376 msgid "Removed" msgstr "" #: whatsnew/3.9.rst:934 msgid "" "The erroneous version at :data:`unittest.mock.__version__` has been removed." msgstr "" #: whatsnew/3.9.rst:936 msgid "" ":class:`nntplib.NNTP`: ``xpath()`` and ``xgtitle()`` methods have been " "removed. These methods are deprecated since Python 3.3. Generally, these " "extensions are not supported or not enabled by NNTP server administrators. " "For ``xgtitle()``, please use :meth:`nntplib.NNTP.descriptions` or :meth:" "`nntplib.NNTP.description` instead. (Contributed by Dong-hee Na in :issue:" "`39366`.)" msgstr "" #: whatsnew/3.9.rst:943 msgid "" ":class:`array.array`: ``tostring()`` and ``fromstring()`` methods have been " "removed. They were aliases to ``tobytes()`` and ``frombytes()``, deprecated " "since Python 3.2. (Contributed by Victor Stinner in :issue:`38916`.)" msgstr "" #: whatsnew/3.9.rst:948 msgid "" "The undocumented ``sys.callstats()`` function has been removed. Since Python " "3.7, it was deprecated and always returned :const:`None`. It required a " "special build option ``CALL_PROFILE`` which was already removed in Python " "3.7. (Contributed by Victor Stinner in :issue:`37414`.)" msgstr "" #: whatsnew/3.9.rst:953 msgid "" "The ``sys.getcheckinterval()`` and ``sys.setcheckinterval()`` functions have " "been removed. They were deprecated since Python 3.2. Use :func:`sys." "getswitchinterval` and :func:`sys.setswitchinterval` instead. (Contributed " "by Victor Stinner in :issue:`37392`.)" msgstr "" #: whatsnew/3.9.rst:958 msgid "" "The C function ``PyImport_Cleanup()`` has been removed. It was documented " "as: \"Empty the module table. For internal use only.\" (Contributed by " "Victor Stinner in :issue:`36710`.)" msgstr "" #: whatsnew/3.9.rst:962 msgid "" "``_dummy_thread`` and ``dummy_threading`` modules have been removed. These " "modules were deprecated since Python 3.7 which requires threading support. " "(Contributed by Victor Stinner in :issue:`37312`.)" msgstr "" #: whatsnew/3.9.rst:966 msgid "" "``aifc.openfp()`` alias to ``aifc.open()``, ``sunau.openfp()`` alias to " "``sunau.open()``, and ``wave.openfp()`` alias to :func:`wave.open()` have " "been removed. They were deprecated since Python 3.7. (Contributed by Victor " "Stinner in :issue:`37320`.)" msgstr "" #: whatsnew/3.9.rst:971 msgid "" "The :meth:`~threading.Thread.isAlive()` method of :class:`threading.Thread` " "has been removed. It was deprecated since Python 3.8. Use :meth:`~threading." "Thread.is_alive()` instead. (Contributed by Dong-hee Na in :issue:`37804`.)" msgstr "" #: whatsnew/3.9.rst:976 msgid "" "Methods ``getchildren()`` and ``getiterator()`` of classes :class:`~xml." "etree.ElementTree.ElementTree` and :class:`~xml.etree.ElementTree.Element` " "in the :mod:`~xml.etree.ElementTree` module have been removed. They were " "deprecated in Python 3.2. Use ``iter(x)`` or ``list(x)`` instead of ``x." "getchildren()`` and ``x.iter()`` or ``list(x.iter())`` instead of ``x." "getiterator()``. (Contributed by Serhiy Storchaka in :issue:`36543`.)" msgstr "" #: whatsnew/3.9.rst:984 msgid "" "The old :mod:`plistlib` API has been removed, it was deprecated since Python " "3.4. Use the :func:`~plistlib.load`, :func:`~plistlib.loads`, :func:" "`~plistlib.dump`, and :func:`~plistlib.dumps` functions. Additionally, the " "*use_builtin_types* parameter was removed, standard :class:`bytes` objects " "are always used instead. (Contributed by Jon Janzen in :issue:`36409`.)" msgstr "" #: whatsnew/3.9.rst:990 msgid "" "The C function ``PyGen_NeedsFinalizing`` has been removed. It was not " "documented, tested, or used anywhere within CPython after the implementation " "of :pep:`442`. Patch by Joannah Nanjekye. (Contributed by Joannah Nanjekye " "in :issue:`15088`)" msgstr "" #: whatsnew/3.9.rst:995 msgid "" "``base64.encodestring()`` and ``base64.decodestring()``, aliases deprecated " "since Python 3.1, have been removed: use :func:`base64.encodebytes` and :" "func:`base64.decodebytes` instead. (Contributed by Victor Stinner in :issue:" "`39351`.)" msgstr "" #: whatsnew/3.9.rst:1000 msgid "" "``fractions.gcd()`` function has been removed, it was deprecated since " "Python 3.5 (:issue:`22486`): use :func:`math.gcd` instead. (Contributed by " "Victor Stinner in :issue:`39350`.)" msgstr "" #: whatsnew/3.9.rst:1004 msgid "" "The *buffering* parameter of :class:`bz2.BZ2File` has been removed. Since " "Python 3.0, it was ignored and using it emitted a :exc:`DeprecationWarning`. " "Pass an open file object to control how the file is opened. (Contributed by " "Victor Stinner in :issue:`39357`.)" msgstr "" #: whatsnew/3.9.rst:1009 msgid "" "The *encoding* parameter of :func:`json.loads` has been removed. As of " "Python 3.1, it was deprecated and ignored; using it has emitted a :exc:" "`DeprecationWarning` since Python 3.8. (Contributed by Inada Naoki in :issue:" "`39377`)" msgstr "" #: whatsnew/3.9.rst:1014 msgid "" "``with (await asyncio.lock):`` and ``with (yield from asyncio.lock):`` " "statements are not longer supported, use ``async with lock`` instead. The " "same is correct for ``asyncio.Condition`` and ``asyncio.Semaphore``. " "(Contributed by Andrew Svetlov in :issue:`34793`.)" msgstr "" #: whatsnew/3.9.rst:1019 msgid "" "The :func:`sys.getcounts` function, the ``-X showalloccount`` command line " "option and the ``show_alloc_count`` field of the C structure :c:type:" "`PyConfig` have been removed. They required a special Python build by " "defining ``COUNT_ALLOCS`` macro. (Contributed by Victor Stinner in :issue:" "`39489`.)" msgstr "" #: whatsnew/3.9.rst:1025 msgid "" "The ``_field_types`` attribute of the :class:`typing.NamedTuple` class has " "been removed. It was deprecated since Python 3.8. Use the " "``__annotations__`` attribute instead. (Contributed by Serhiy Storchaka in :" "issue:`40182`.)" msgstr "" #: whatsnew/3.9.rst:1030 msgid "" "The :meth:`symtable.SymbolTable.has_exec` method has been removed. It was " "deprecated since 2006, and only returning ``False`` when it's called. " "(Contributed by Batuhan Taskaya in :issue:`40208`)" msgstr "" #: whatsnew/3.9.rst:1034 msgid "" "The :meth:`asyncio.Task.current_task` and :meth:`asyncio.Task.all_tasks` " "have been removed. They were deprecated since Python 3.7 and you can use :" "func:`asyncio.current_task` and :func:`asyncio.all_tasks` instead. " "(Contributed by Rémi Lapeyre in :issue:`40967`)" msgstr "" #: whatsnew/3.9.rst:1039 msgid "" "The ``unescape()`` method in the :class:`html.parser.HTMLParser` class has " "been removed (it was deprecated since Python 3.4). :func:`html.unescape` " "should be used for converting character references to the corresponding " "unicode characters." msgstr "" #: whatsnew/3.9.rst:1298 msgid "Porting to Python 3.9" msgstr "" #: whatsnew/3.9.rst:1048 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." msgstr "" #: whatsnew/3.9.rst:1053 msgid "Changes in the Python API" msgstr "" #: whatsnew/3.9.rst:1055 msgid "" ":func:`__import__` and :func:`importlib.util.resolve_name` now raise :exc:" "`ImportError` where it previously raised :exc:`ValueError`. Callers catching " "the specific exception type and supporting both Python 3.9 and earlier " "versions will need to catch both using ``except (ImportError, ValueError):``." msgstr "" #: whatsnew/3.9.rst:1060 msgid "" "The :mod:`venv` activation scripts no longer special-case when " "``__VENV_PROMPT__`` is set to ``\"\"``." msgstr "" #: whatsnew/3.9.rst:1063 msgid "" "The :meth:`select.epoll.unregister` method no longer ignores the :data:" "`~errno.EBADF` error. (Contributed by Victor Stinner in :issue:`39239`.)" msgstr "" #: whatsnew/3.9.rst:1067 msgid "" "The *compresslevel* parameter of :class:`bz2.BZ2File` became keyword-only, " "since the *buffering* parameter has been removed. (Contributed by Victor " "Stinner in :issue:`39357`.)" msgstr "" #: whatsnew/3.9.rst:1071 msgid "" "Simplified AST for subscription. Simple indices will be represented by their " "value, extended slices will be represented as tuples. ``Index(value)`` will " "return a ``value`` itself, ``ExtSlice(slices)`` will return ``Tuple(slices, " "Load())``. (Contributed by Serhiy Storchaka in :issue:`34822`.)" msgstr "" #: whatsnew/3.9.rst:1077 msgid "" "The :mod:`importlib` module now ignores the :envvar:`PYTHONCASEOK` " "environment variable when the :option:`-E` or :option:`-I` command line " "options are being used." msgstr "" #: whatsnew/3.9.rst:1081 msgid "" "The *encoding* parameter has been added to the classes :class:`ftplib.FTP` " "and :class:`ftplib.FTP_TLS` as a keyword-only parameter, and the default " "encoding is changed from Latin-1 to UTF-8 to follow :rfc:`2640`." msgstr "" #: whatsnew/3.9.rst:1085 msgid "" ":meth:`asyncio.loop.shutdown_default_executor` has been added to :class:" "`~asyncio.AbstractEventLoop`, meaning alternative event loops that inherit " "from it should have this method defined. (Contributed by Kyle Stanley in :" "issue:`34037`.)" msgstr "" #: whatsnew/3.9.rst:1090 msgid "" "The constant values of future flags in the :mod:`__future__` module is " "updated in order to prevent collision with compiler flags. Previously " "``PyCF_ALLOW_TOP_LEVEL_AWAIT`` was clashing with ``CO_FUTURE_DIVISION``. " "(Contributed by Batuhan Taskaya in :issue:`39562`)" msgstr "" #: whatsnew/3.9.rst:1095 msgid "" "``array('u')`` now uses ``wchar_t`` as C type instead of ``Py_UNICODE``. " "This change doesn't affect to its behavior because ``Py_UNICODE`` is alias " "of ``wchar_t`` since Python 3.3. (Contributed by Inada Naoki in :issue:" "`34538`.)" msgstr "" #: whatsnew/3.9.rst:1100 msgid "" "The :func:`logging.getLogger` API now returns the root logger when passed " "the name ``'root'``, whereas previously it returned a non-root logger named " "``'root'``. This could affect cases where user code explicitly wants a non-" "root logger named ``'root'``, or instantiates a logger using ``logging." "getLogger(__name__)`` in some top-level module called ``'root.py'``. " "(Contributed by Vinay Sajip in :issue:`37742`.)" msgstr "" #: whatsnew/3.9.rst:1107 msgid "" "Division handling of :class:`~pathlib.PurePath` now returns " "``NotImplemented`` instead of raising a :exc:`TypeError` when passed " "something other than an instance of ``str`` or :class:`~pathlib.PurePath`. " "This allows creating compatible classes that don't inherit from those " "mentioned types. (Contributed by Roger Aiudi in :issue:`34775`)." msgstr "" #: whatsnew/3.9.rst:1115 msgid "Changes in the C API" msgstr "" #: whatsnew/3.9.rst:1117 msgid "" "Instances of heap-allocated types (such as those created with :c:func:" "`PyType_FromSpec` and similar APIs) hold a reference to their type object " "since Python 3.8. As indicated in the \"Changes in the C API\" of Python " "3.8, for the vast majority of cases, there should be no side effect but for " "types that have a custom :c:member:`~PyTypeObject.tp_traverse` function, " "ensure that all custom ``tp_traverse`` functions of heap-allocated types " "visit the object's type." msgstr "" #: whatsnew/3.9.rst:1138 msgid "" "If your traverse function delegates to ``tp_traverse`` of its base class (or " "another type), ensure that ``Py_TYPE(self)`` is visited only once. Note that " "only heap types are expected to visit the type in ``tp_traverse``." msgstr "" #: whatsnew/3.9.rst:1142 msgid "For example, if your ``tp_traverse`` function includes:" msgstr "" #: whatsnew/3.9.rst:1148 msgid "then add:" msgstr "" #: whatsnew/3.9.rst:1161 msgid "(See :issue:`35810` and :issue:`40217` for more information.)" msgstr "" #: whatsnew/3.9.rst:1163 msgid "" "The functions ``PyEval_CallObject``, ``PyEval_CallFunction``, " "``PyEval_CallMethod`` and ``PyEval_CallObjectWithKeywords`` are deprecated. " "Use :c:func:`PyObject_Call` and its variants instead. (See more details in :" "issue:`29548`.)" msgstr "" #: whatsnew/3.9.rst:1169 msgid "CPython bytecode changes" msgstr "" #: whatsnew/3.9.rst:1171 msgid "" "The :opcode:`LOAD_ASSERTION_ERROR` opcode was added for handling the :" "keyword:`assert` statement. Previously, the assert statement would not work " "correctly if the :exc:`AssertionError` exception was being shadowed. " "(Contributed by Zackery Spytz in :issue:`34880`.)" msgstr "" #: whatsnew/3.9.rst:1176 msgid "" "The :opcode:`COMPARE_OP` opcode was split into four distinct instructions:" msgstr "" #: whatsnew/3.9.rst:1178 msgid "``COMPARE_OP`` for rich comparisons" msgstr "" #: whatsnew/3.9.rst:1179 msgid "``IS_OP`` for 'is' and 'is not' tests" msgstr "" #: whatsnew/3.9.rst:1180 msgid "``CONTAINS_OP`` for 'in' and 'not in' tests" msgstr "" #: whatsnew/3.9.rst:1181 msgid "" "``JUMP_IF_NOT_EXC_MATCH`` for checking exceptions in 'try-except' statements." msgstr "" #: whatsnew/3.9.rst:1184 msgid "(Contributed by Mark Shannon in :issue:`39156`.)" msgstr "" #: whatsnew/3.9.rst:1188 msgid "Build Changes" msgstr "" #: whatsnew/3.9.rst:1190 msgid "" "Added ``--with-platlibdir`` option to the ``configure`` script: name of the " "platform-specific library directory, stored in the new :attr:`sys." "platlibdir` attribute. See :attr:`sys.platlibdir` attribute for more " "information. (Contributed by Jan Matějek, Matěj Cepl, Charalampos Stratakis " "and Victor Stinner in :issue:`1294959`.)" msgstr "" #: whatsnew/3.9.rst:1196 msgid "" "The ``COUNT_ALLOCS`` special build macro has been removed. (Contributed by " "Victor Stinner in :issue:`39489`.)" msgstr "" #: whatsnew/3.9.rst:1199 msgid "" "On non-Windows platforms, the :c:func:`setenv` and :c:func:`unsetenv` " "functions are now required to build Python. (Contributed by Victor Stinner " "in :issue:`39395`.)" msgstr "" #: whatsnew/3.9.rst:1203 msgid "" "On non-Windows platforms, creating ``bdist_wininst`` installers is now " "officially unsupported. (See :issue:`10945` for more details.)" msgstr "" #: whatsnew/3.9.rst:1206 msgid "" "When building Python on macOS from source, ``_tkinter`` now links with non-" "system Tcl and Tk frameworks if they are installed in ``/Library/" "Frameworks``, as had been the case on older releases of macOS. If a macOS " "SDK is explicitly configured, by using ``--enable-universalsdk=`` or ``-" "isysroot``, only the SDK itself is searched. The default behavior can still " "be overridden with ``--with-tcltk-includes`` and ``--with-tcltk-libs``. " "(Contributed by Ned Deily in :issue:`34956`.)" msgstr "" #: whatsnew/3.9.rst:1215 msgid "" "Python can now be built for Windows 10 ARM64. (Contributed by Steve Dower " "in :issue:`33125`.)" msgstr "" #: whatsnew/3.9.rst:1218 msgid "" "Some individual tests are now skipped when ``--pgo`` is used. The tests in " "question increased the PGO task time significantly and likely didn't help " "improve optimization of the final executable. This speeds up the task by a " "factor of about 15x. Running the full unit test suite is slow. This change " "may result in a slightly less optimized build since not as many code " "branches will be executed. If you are willing to wait for the much slower " "build, the old behavior can be restored using ``./configure [..] " "PROFILE_TASK=\"-m test --pgo-extended\"``. We make no guarantees as to " "which PGO task set produces a faster build. Users who care should run their " "own relevant benchmarks as results can depend on the environment, workload, " "and compiler tool chain. (See :issue:`36044` and :issue:`37707` for more " "details.)" msgstr "" #: whatsnew/3.9.rst:1233 msgid "C API Changes" msgstr "" #: whatsnew/3.9.rst:1238 msgid "" ":pep:`573`: Added :c:func:`PyType_FromModuleAndSpec` to associate a module " "with a class; :c:func:`PyType_GetModule` and :c:func:`PyType_GetModuleState` " "to retrieve the module and its state; and :c:data:`PyCMethod` and :c:data:" "`METH_METHOD` to allow a method to access the class it was defined in. " "(Contributed by Marcel Plch and Petr Viktorin in :issue:`38787`.)" msgstr "" #: whatsnew/3.9.rst:1245 msgid "" "Added :c:func:`PyFrame_GetCode` function: get a frame code. Added :c:func:" "`PyFrame_GetBack` function: get the frame next outer frame. (Contributed by " "Victor Stinner in :issue:`40421`.)" msgstr "" #: whatsnew/3.9.rst:1249 msgid "" "Added :c:func:`PyFrame_GetLineNumber` to the limited C API. (Contributed by " "Victor Stinner in :issue:`40421`.)" msgstr "" #: whatsnew/3.9.rst:1252 msgid "" "Added :c:func:`PyThreadState_GetInterpreter` and :c:func:" "`PyInterpreterState_Get` functions to get the interpreter. Added :c:func:" "`PyThreadState_GetFrame` function to get the current frame of a Python " "thread state. Added :c:func:`PyThreadState_GetID` function: get the unique " "identifier of a Python thread state. (Contributed by Victor Stinner in :" "issue:`39947`.)" msgstr "" #: whatsnew/3.9.rst:1260 msgid "" "Added a new public :c:func:`PyObject_CallNoArgs` function to the C API, " "which calls a callable Python object without any arguments. It is the most " "efficient way to call a callable Python object without any argument. " "(Contributed by Victor Stinner in :issue:`37194`.)" msgstr "" #: whatsnew/3.9.rst:1387 msgid "Changes in the limited C API (if ``Py_LIMITED_API`` macro is defined):" msgstr "" #: whatsnew/3.9.rst:1267 msgid "" "Provide :c:func:`Py_EnterRecursiveCall` and :c:func:`Py_LeaveRecursiveCall` " "as regular functions for the limited API. Previously, there were defined as " "macros, but these macros didn't compile with the limited C API which cannot " "access ``PyThreadState.recursion_depth`` field (the structure is opaque in " "the limited C API)." msgstr "" #: whatsnew/3.9.rst:1273 msgid "" "``PyObject_INIT()`` and ``PyObject_INIT_VAR()`` become regular \"opaque\" " "function to hide implementation details." msgstr "" #: whatsnew/3.9.rst:1414 msgid "(Contributed by Victor Stinner in :issue:`38644` and :issue:`39542`.)" msgstr "" #: whatsnew/3.9.rst:1278 msgid "" "The :c:func:`PyModule_AddType` function is added to help adding a type to a " "module. (Contributed by Dong-hee Na in :issue:`40024`.)" msgstr "" #: whatsnew/3.9.rst:1282 msgid "" "Added the functions :c:func:`PyObject_GC_IsTracked` and :c:func:" "`PyObject_GC_IsFinalized` to the public API to allow to query if Python " "objects are being currently tracked or have been already finalized by the " "garbage collector respectively. (Contributed by Pablo Galindo Salgado in :" "issue:`40241`.)" msgstr "" #: whatsnew/3.9.rst:1288 msgid "" "Added :c:func:`_PyObject_FunctionStr` to get a user-friendly string " "representation of a function-like object. (Patch by Jeroen Demeyer in :issue:" "`37645`.)" msgstr "" #: whatsnew/3.9.rst:1292 msgid "" "Added :c:func:`PyObject_CallOneArg` for calling an object with one " "positional argument (Patch by Jeroen Demeyer in :issue:`37483`.)" msgstr "" #: whatsnew/3.9.rst:1300 msgid "" "``PyInterpreterState.eval_frame`` (:pep:`523`) now requires a new mandatory " "*tstate* parameter (``PyThreadState*``). (Contributed by Victor Stinner in :" "issue:`38500`.)" msgstr "" #: whatsnew/3.9.rst:1304 msgid "" "Extension modules: :c:member:`~PyModuleDef.m_traverse`, :c:member:" "`~PyModuleDef.m_clear` and :c:member:`~PyModuleDef.m_free` functions of :c:" "type:`PyModuleDef` are no longer called if the module state was requested " "but is not allocated yet. This is the case immediately after the module is " "created and before the module is executed (:c:data:`Py_mod_exec` function). " "More precisely, these functions are not called if :c:member:`~PyModuleDef." "m_size` is greater than 0 and the module state (as returned by :c:func:" "`PyModule_GetState`) is ``NULL``." msgstr "" #: whatsnew/3.9.rst:1313 msgid "" "Extension modules without module state (``m_size <= 0``) are not affected." msgstr "" #: whatsnew/3.9.rst:1315 msgid "" "If :c:func:`Py_AddPendingCall` is called in a subinterpreter, the function " "is now scheduled to be called from the subinterpreter, rather than being " "called from the main interpreter. Each subinterpreter now has its own list " "of scheduled calls. (Contributed by Victor Stinner in :issue:`39984`.)" msgstr "" #: whatsnew/3.9.rst:1321 msgid "" "The Windows registry is no longer used to initialize :data:`sys.path` when " "the ``-E`` option is used (if :c:member:`PyConfig.use_environment` is set to " "``0``). This is significant when embedding Python on Windows. (Contributed " "by Zackery Spytz in :issue:`8901`.)" msgstr "" #: whatsnew/3.9.rst:1326 msgid "" "The global variable :c:data:`PyStructSequence_UnnamedField` is now a " "constant and refers to a constant string. (Contributed by Serhiy Storchaka " "in :issue:`38650`.)" msgstr "" #: whatsnew/3.9.rst:1330 msgid "" "The :c:type:`PyGC_Head` structure is now opaque. It is only defined in the " "internal C API (``pycore_gc.h``). (Contributed by Victor Stinner in :issue:" "`40241`.)" msgstr "" #: whatsnew/3.9.rst:1334 msgid "" "The ``Py_UNICODE_COPY``, ``Py_UNICODE_FILL``, ``PyUnicode_WSTR_LENGTH``, :c:" "func:`PyUnicode_FromUnicode`, :c:func:`PyUnicode_AsUnicode`, " "``_PyUnicode_AsUnicode``, and :c:func:`PyUnicode_AsUnicodeAndSize` are " "marked as deprecated in C. They have been deprecated by :pep:`393` since " "Python 3.3. (Contributed by Inada Naoki in :issue:`36346`.)" msgstr "" #: whatsnew/3.9.rst:1341 msgid "" "The :c:func:`Py_FatalError` function is replaced with a macro which logs " "automatically the name of the current function, unless the " "``Py_LIMITED_API`` macro is defined. (Contributed by Victor Stinner in :" "issue:`39882`.)" msgstr "" #: whatsnew/3.9.rst:1346 msgid "" "The vectorcall protocol now requires that the caller passes only strings as " "keyword names. (See :issue:`37540` for more information.)" msgstr "" #: whatsnew/3.9.rst:1349 msgid "" "Implementation details of a number of macros and functions are now hidden:" msgstr "" #: whatsnew/3.9.rst:1351 msgid ":c:func:`PyObject_IS_GC` macro was converted to a function." msgstr "" #: whatsnew/3.9.rst:1353 msgid "" "The :c:func:`PyObject_NEW` macro becomes an alias to the :c:func:" "`PyObject_New` macro, and the :c:func:`PyObject_NEW_VAR` macro becomes an " "alias to the :c:func:`PyObject_NewVar` macro. They no longer access directly " "the :c:member:`PyTypeObject.tp_basicsize` member." msgstr "" #: whatsnew/3.9.rst:1358 msgid "" ":c:func:`PyType_HasFeature` now always calls :c:func:`PyType_GetFlags`. " "Previously, it accessed directly the :c:member:`PyTypeObject.tp_flags` " "member when the limited C API was not used." msgstr "" #: whatsnew/3.9.rst:1362 msgid "" ":c:func:`PyObject_GET_WEAKREFS_LISTPTR` macro was converted to a function: " "the macro accessed directly the :c:member:`PyTypeObject.tp_weaklistoffset` " "member." msgstr "" #: whatsnew/3.9.rst:1366 msgid "" ":c:func:`PyObject_CheckBuffer` macro was converted to a function: the macro " "accessed directly the :c:member:`PyTypeObject.tp_as_buffer` member." msgstr "" #: whatsnew/3.9.rst:1369 msgid "" ":c:func:`PyIndex_Check` is now always declared as an opaque function to hide " "implementation details: removed the ``PyIndex_Check()`` macro. The macro " "accessed directly the :c:member:`PyTypeObject.tp_as_number` member." msgstr "" #: whatsnew/3.9.rst:1373 msgid "(See :issue:`40170` for more details.)" msgstr "" #: whatsnew/3.9.rst:1378 msgid "" "Excluded ``PyFPE_START_PROTECT()`` and ``PyFPE_END_PROTECT()`` macros of " "``pyfpe.h`` from the limited C API. (Contributed by Victor Stinner in :issue:" "`38835`.)" msgstr "" #: whatsnew/3.9.rst:1382 msgid "" "The ``tp_print`` slot of :ref:`PyTypeObject ` has been " "removed. It was used for printing objects to files in Python 2.7 and before. " "Since Python 3.0, it has been ignored and unused. (Contributed by Jeroen " "Demeyer in :issue:`36974`.)" msgstr "" #: whatsnew/3.9.rst:1389 msgid "Excluded the following functions from the limited C API:" msgstr "" #: whatsnew/3.9.rst:1391 msgid "" "``PyThreadState_DeleteCurrent()`` (Contributed by Joannah Nanjekye in :issue:" "`37878`.)" msgstr "" #: whatsnew/3.9.rst:1393 msgid "``_Py_CheckRecursionLimit``" msgstr "" #: whatsnew/3.9.rst:1394 msgid "``_Py_NewReference()``" msgstr "" #: whatsnew/3.9.rst:1395 msgid "``_Py_ForgetReference()``" msgstr "" #: whatsnew/3.9.rst:1396 msgid "``_PyTraceMalloc_NewReference()``" msgstr "" #: whatsnew/3.9.rst:1397 msgid "``_Py_GetRefTotal()``" msgstr "" #: whatsnew/3.9.rst:1398 msgid "The trashcan mechanism which never worked in the limited C API." msgstr "" #: whatsnew/3.9.rst:1399 msgid "``PyTrash_UNWIND_LEVEL``" msgstr "" #: whatsnew/3.9.rst:1400 msgid "``Py_TRASHCAN_BEGIN_CONDITION``" msgstr "" #: whatsnew/3.9.rst:1401 msgid "``Py_TRASHCAN_BEGIN``" msgstr "" #: whatsnew/3.9.rst:1402 msgid "``Py_TRASHCAN_END``" msgstr "" #: whatsnew/3.9.rst:1403 msgid "``Py_TRASHCAN_SAFE_BEGIN``" msgstr "" #: whatsnew/3.9.rst:1404 msgid "``Py_TRASHCAN_SAFE_END``" msgstr "" #: whatsnew/3.9.rst:1406 msgid "Moved following functions and definitions to the internal C API:" msgstr "" #: whatsnew/3.9.rst:1408 msgid "``_PyDebug_PrintTotalRefs()``" msgstr "" #: whatsnew/3.9.rst:1409 msgid "``_Py_PrintReferences()``" msgstr "" #: whatsnew/3.9.rst:1410 msgid "``_Py_PrintReferenceAddresses()``" msgstr "" #: whatsnew/3.9.rst:1411 msgid "``_Py_tracemalloc_config``" msgstr "" #: whatsnew/3.9.rst:1412 msgid "``_Py_AddToAllObjects()`` (specific to ``Py_TRACE_REFS`` build)" msgstr "" #: whatsnew/3.9.rst:1416 msgid "" "Removed ``_PyRuntime.getframe`` hook and removed ``_PyThreadState_GetFrame`` " "macro which was an alias to ``_PyRuntime.getframe``. They were only exposed " "by the internal C API. Removed also ``PyThreadFrameGetter`` type. " "(Contributed by Victor Stinner in :issue:`39946`.)" msgstr "" #: whatsnew/3.9.rst:1421 msgid "" "Removed the following functions from the C API. Call :c:func:`PyGC_Collect` " "explicitly to clear all free lists. (Contributed by Inada Naoki and Victor " "Stinner in :issue:`37340`, :issue:`38896` and :issue:`40428`.)" msgstr "" #: whatsnew/3.9.rst:1426 msgid "``PyAsyncGen_ClearFreeLists()``" msgstr "" #: whatsnew/3.9.rst:1427 msgid "``PyContext_ClearFreeList()``" msgstr "" #: whatsnew/3.9.rst:1428 msgid "``PyDict_ClearFreeList()``" msgstr "" #: whatsnew/3.9.rst:1429 msgid "``PyFloat_ClearFreeList()``" msgstr "" #: whatsnew/3.9.rst:1430 msgid "``PyFrame_ClearFreeList()``" msgstr "" #: whatsnew/3.9.rst:1431 msgid "``PyList_ClearFreeList()``" msgstr "" #: whatsnew/3.9.rst:1432 msgid "" "``PyMethod_ClearFreeList()`` and ``PyCFunction_ClearFreeList()``: the free " "lists of bound method objects have been removed." msgstr "" #: whatsnew/3.9.rst:1434 msgid "" "``PySet_ClearFreeList()``: the set free list has been removed in Python 3.4." msgstr "" #: whatsnew/3.9.rst:1436 msgid "``PyTuple_ClearFreeList()``" msgstr "" #: whatsnew/3.9.rst:1437 msgid "" "``PyUnicode_ClearFreeList()``: the Unicode free list has been removed in " "Python 3.3." msgstr "" #: whatsnew/3.9.rst:1440 msgid "" "Removed ``_PyUnicode_ClearStaticStrings()`` function. (Contributed by Victor " "Stinner in :issue:`39465`.)" msgstr "" #: whatsnew/3.9.rst:1443 msgid "" "Removed ``Py_UNICODE_MATCH``. It has been deprecated by :pep:`393`, and " "broken since Python 3.3. The :c:func:`PyUnicode_Tailmatch` function can be " "used instead. (Contributed by Inada Naoki in :issue:`36346`.)" msgstr "" #: whatsnew/3.9.rst:1448 msgid "" "Cleaned header files of interfaces defined but with no implementation. The " "public API symbols being removed are: " "``_PyBytes_InsertThousandsGroupingLocale``, " "``_PyBytes_InsertThousandsGrouping``, ``_Py_InitializeFromArgs``, " "``_Py_InitializeFromWideArgs``, ``_PyFloat_Repr``, ``_PyFloat_Digits``, " "``_PyFloat_DigitsInit``, ``PyFrame_ExtendStack``, ``_PyAIterWrapper_Type``, " "``PyNullImporter_Type``, ``PyCmpWrapper_Type``, ``PySortWrapper_Type``, " "``PyNoArgsFunction``. (Contributed by Pablo Galindo Salgado in :issue:" "`39372`.)" msgstr "" #: whatsnew/3.9.rst:1459 msgid "Notable changes in Python 3.9.1" msgstr "" #: whatsnew/3.9.rst:1464 msgid "" "The behavior of :class:`typing.Literal` was changed to conform with :pep:" "`586` and to match the behavior of static type checkers specified in the PEP." msgstr "" #: whatsnew/3.9.rst:1467 msgid "``Literal`` now de-duplicates parameters." msgstr "" #: whatsnew/3.9.rst:1468 msgid "" "Equality comparisons between ``Literal`` objects are now order independent." msgstr "" #: whatsnew/3.9.rst:1469 msgid "" "``Literal`` comparisons now respect types. For example, ``Literal[0] == " "Literal[False]`` previously evaluated to ``True``. It is now ``False``. To " "support this change, the internally used type cache now supports " "differentiating types." msgstr "" #: whatsnew/3.9.rst:1473 msgid "" "``Literal`` objects will now raise a :exc:`TypeError` exception during " "equality comparisons if one of their parameters are not :term:`immutable`. " "Note that declaring ``Literal`` with mutable parameters will not throw an " "error::" msgstr "" #: whatsnew/3.9.rst:1485 msgid "(Contributed by Yurii Karabas in :issue:`42345`.)" msgstr "" #: whatsnew/3.9.rst:1488 msgid "macOS 11.0 (Big Sur) and Apple Silicon Mac support" msgstr "" #: whatsnew/3.9.rst:1490 msgid "" "As of 3.9.1, Python now fully supports building and running on macOS 11.0 " "(Big Sur) and on Apple Silicon Macs (based on the ``ARM64`` architecture). A " "new universal build variant, ``universal2``, is now available to natively " "support both ``ARM64`` and ``Intel 64`` in one set of executables. Binaries " "can also now be built on current versions of macOS to be deployed on a range " "of older macOS versions (tested to 10.9) while making some newer OS " "functions and options conditionally available based on the operating system " "version in use at runtime (\"weaklinking\")." msgstr "" #: whatsnew/3.9.rst:1499 msgid "(Contributed by Ronald Oussoren and Lawrence D'Anna in :issue:`41100`.)" msgstr "" #: whatsnew/3.9.rst:1502 msgid "Notable changes in Python 3.9.2" msgstr "" #: whatsnew/3.9.rst:1505 msgid "collections.abc" msgstr "" #: whatsnew/3.9.rst:1507 msgid "" ":class:`collections.abc.Callable` generic now flattens type parameters, " "similar to what :data:`typing.Callable` currently does. This means that " "``collections.abc.Callable[[int, str], str]`` will have ``__args__`` of " "``(int, str, str)``; previously this was ``([int, str], str)``. To allow " "this change, :class:`types.GenericAlias` can now be subclassed, and a " "subclass will be returned when subscripting the :class:`collections.abc." "Callable` type. Code which accesses the arguments via :func:`typing." "get_args` or ``__args__`` need to account for this change. A :exc:" "`DeprecationWarning` may be emitted for invalid forms of parameterizing :" "class:`collections.abc.Callable` which may have passed silently in Python " "3.9.1. This :exc:`DeprecationWarning` will become a :exc:`TypeError` in " "Python 3.10. (Contributed by Ken Jin in :issue:`42195`.)" msgstr "" #~ msgid "" #~ "This article explains the new features in Python 3.9, compared to 3.8." #~ msgstr "" #~ "Cet article explique les nouvelles fonctionnalités de Python 3.9 par " #~ "rapport à la version 3.8." #~ msgid "" #~ "Prerelease users should be aware that this document is currently in draft " #~ "form. It will be updated substantially as Python 3.9 moves towards " #~ "release, so it's worth checking back even after reading earlier versions." #~ msgstr "" #~ "Les utilisateurs de la prépublication doivent savoir que ce document est " #~ "actuellement à l'état de brouillon. Il sera mis à jour de manière " #~ "substantielle au fur et à mesure que Python 3.9 se rapprochera de sa " #~ "version finale, il est donc utile de le consulter même après avoir lu les " #~ "versions précédentes." #~ msgid "" #~ "When Python 2.7 was still supported, many functions were kept for " #~ "backward compatibility with Python 2.7. With the end of Python 2.7 " #~ "support, these backward compatibility layers have been removed, or will " #~ "be removed soon. Most of them emitted a :exc:`DeprecationWarning` warning " #~ "for several years. For example, using ``collections.Mapping`` instead of " #~ "``collections.abc.Mapping`` emits a :exc:`DeprecationWarning` since " #~ "Python 3.3, released in 2012." #~ msgstr "" #~ "Lorsque Python 2.7 était encore supporté, de nombreuses fonctions ont été " #~ "conservées pour assurer la rétrocompatibilité avec Python 2.7. Avec la " #~ "fin du support de Python 2.7, ces couches de rétrocompatibilité ont été " #~ "supprimées, ou le seront bientôt. La plupart d'entre elles ont émis un " #~ "avertissement :exc:`DeprecationWarning` pendant plusieurs années. Par " #~ "exemple, l'utilisation de ``collections.Mapping`` au lieu de " #~ "``collections.abc.Mapping`` émet un :exc:`DeprecationWarning` depuis " #~ "Python 3.3, sorti en 2012." #~ msgid "" #~ "It has been decided to keep a few backward compatibility layers for one " #~ "last release, to give more time to Python projects maintainers to " #~ "organize the removal of the Python 2 support and add support for Python " #~ "3.9." #~ msgstr "" #~ "Il a été décidé de conserver quelques couches de compatibilité ascendante " #~ "pour une dernière version, afin de donner plus de temps aux responsables " #~ "des projets Python pour organiser la suppression du support de Python 2 " #~ "et ajouter le support de Python 3.9." #~ msgid "" #~ "Merge (``|``) and update (``|=``) operators have been added to the built-" #~ "in :class:`dict` class. See :pep:`584` for a full description. " #~ "(Contributed by Brandt Bucher in :issue:`36144`.)" #~ msgstr "" #~ "Les opérateurs de fusion (``|``) et de mise à jour (``|=``) ont été " #~ "ajoutés à la classe native :class:`dict`. Voir :pep:`584` pour une " #~ "description complète (contribution de Brandt Bucher dans :issue:`36144`)." #~ msgid "PEP 616: New removeprefix() and removesuffix() string methods" #~ msgstr "" #~ "PEP 616 : nouvelles méthodes de chaînes de caractères `removeprefix()` et " #~ "`removesuffix()`" #~ msgid "PEP 585: Builtin Generic Types" #~ msgstr "PEP 585 : Types génériques natifs" #~ msgid "PEP 617: New Parser" #~ msgstr "PEP 617 : Nouvel analyseur syntaxique"