python-docs-fr/whatsnew/3.10.po

1756 lines
56 KiB
Plaintext

# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2001-2021, Python Software Foundation
# This file is distributed under the same license as the Python package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Python 3.10\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-03-18 17:40+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: whatsnew/3.10.rst:3
msgid "What's New In Python 3.10"
msgstr ""
#: whatsnew/3.10.rst:0
msgid "Release"
msgstr ""
#: whatsnew/3.10.rst:5
msgid "|release|"
msgstr ""
#: whatsnew/3.10.rst:0
msgid "Date"
msgstr ""
#: whatsnew/3.10.rst:6
msgid "|today|"
msgstr ""
#: whatsnew/3.10.rst:48
msgid "This article explains the new features in Python 3.10, compared to 3.9."
msgstr ""
#: whatsnew/3.10.rst:50
msgid "For full details, see the :ref:`changelog <changelog>`."
msgstr ""
#: whatsnew/3.10.rst:54
msgid ""
"Prerelease users should be aware that this document is currently in draft "
"form. It will be updated substantially as Python 3.10 moves towards release, "
"so it's worth checking back even after reading earlier versions."
msgstr ""
#: whatsnew/3.10.rst:60
msgid "Summary -- Release highlights"
msgstr ""
#: whatsnew/3.10.rst:1189
msgid "New Features"
msgstr ""
#: whatsnew/3.10.rst:76
msgid "Parenthesized context managers"
msgstr ""
#: whatsnew/3.10.rst:78
msgid ""
"Using enclosing parentheses for continuation across multiple lines in "
"context managers is now supported. This allows formatting a long collection "
"of context managers in multiple lines in a similar way as it was previously "
"possible with import statements. For instance, all these examples are now "
"valid:"
msgstr ""
#: whatsnew/3.10.rst:109
msgid ""
"it is also possible to use a trailing comma at the end of the enclosed group:"
msgstr ""
#: whatsnew/3.10.rst:121
msgid ""
"This new syntax uses the non LL(1) capacities of the new parser. Check :pep:"
"`617` for more details."
msgstr ""
#: whatsnew/3.10.rst:124
msgid ""
"(Contributed by Guido van Rossum, Pablo Galindo and Lysandros Nikolaou in :"
"issue:`12782` and :issue:`40334`.)"
msgstr ""
#: whatsnew/3.10.rst:129
msgid "Better error messages in the parser"
msgstr ""
#: whatsnew/3.10.rst:131
msgid ""
"When parsing code that contains unclosed parentheses or brackets the "
"interpreter now includes the location of the unclosed bracket of parentheses "
"instead of displaying *SyntaxError: unexpected EOF while parsing* or "
"pointing to some incorrect location. For instance, consider the following "
"code (notice the unclosed '{'):"
msgstr ""
#: whatsnew/3.10.rst:142
msgid ""
"previous versions of the interpreter reported confusing places as the "
"location of the syntax error:"
msgstr ""
#: whatsnew/3.10.rst:152
msgid "but in Python3.10 a more informative error is emitted:"
msgstr ""
#: whatsnew/3.10.rst:162
msgid ""
"In a similar way, errors involving unclosed string literals (single and "
"triple quoted) now point to the start of the string instead of reporting EOF/"
"EOL."
msgstr ""
#: whatsnew/3.10.rst:165
msgid ""
"These improvements are inspired by previous work in the PyPy interpreter."
msgstr ""
#: whatsnew/3.10.rst:167
msgid ""
"(Contributed by Pablo Galindo in :issue:`42864` and Batuhan Taskaya in :"
"issue:`40176`.)"
msgstr ""
#: whatsnew/3.10.rst:171
msgid "PEP 626: Precise line numbers for debugging and other tools"
msgstr ""
#: whatsnew/3.10.rst:173
msgid ""
"PEP 626 brings more precise and reliable line numbers for debugging, "
"profiling and coverage tools. Tracing events, with the correct line number, "
"are generated for all lines of code executed and only for lines of code that "
"are executed."
msgstr ""
#: whatsnew/3.10.rst:176
msgid ""
"The ``f_lineo`` attribute of frame objects will always contain the expected "
"line number."
msgstr ""
#: whatsnew/3.10.rst:180
msgid "PEP 634: Structural Pattern Matching"
msgstr ""
#: whatsnew/3.10.rst:182
msgid ""
"Structural pattern matching has been added in the form of a *match "
"statement* and *case statements* of patterns with associated actions. "
"Patterns consist of sequences, mappings, primitive data types as well as "
"class instances. Pattern matching enables programs to extract information "
"from complex data types, branch on the structure of data, and apply specific "
"actions based on different forms of data."
msgstr ""
#: whatsnew/3.10.rst:190
msgid "Syntax and operations"
msgstr ""
#: whatsnew/3.10.rst:192
msgid "The generic syntax of pattern matching is::"
msgstr ""
#: whatsnew/3.10.rst:204
msgid ""
"A match statement takes an expression and compares its value to successive "
"patterns given as one or more case blocks. Specifically, pattern matching "
"operates by:"
msgstr ""
#: whatsnew/3.10.rst:208
msgid "using data with type and shape (the ``subject``)"
msgstr ""
#: whatsnew/3.10.rst:209
msgid "evaluating the ``subject`` in the ``match`` statement"
msgstr ""
#: whatsnew/3.10.rst:210
msgid ""
"comparing the subject with each pattern in a ``case`` statement from top to "
"bottom until a match is confirmed."
msgstr ""
#: whatsnew/3.10.rst:212
msgid "executing the action associated with the pattern of the confirmed match"
msgstr ""
#: whatsnew/3.10.rst:214
msgid ""
"If an exact match is not confirmed, the last case, a wildcard ``_``, if "
"provided, will be used as the matching case. If an exact match is not "
"confirmed and a wildcard case does not exists, the entire match block is a "
"no-op."
msgstr ""
#: whatsnew/3.10.rst:220
msgid "Declarative approach"
msgstr ""
#: whatsnew/3.10.rst:222
msgid ""
"Readers may be aware of pattern matching through the simple example of "
"matching a subject (data object) to a literal (pattern) with the switch "
"statement found in C, Java or JavaScript (and many other languages). Often "
"the switch statement is used for comparison of an object/expression with "
"case statements containing literals."
msgstr ""
#: whatsnew/3.10.rst:228
msgid ""
"More powerful examples of pattern matching can be found in languages, such "
"as Scala and Elixir. With structural pattern matching, the approach is "
"\"declarative\" and explicitly states the conditions (the patterns) for data "
"to match."
msgstr ""
#: whatsnew/3.10.rst:232
msgid ""
"While an \"imperative\" series of instructions using nested \"if\" "
"statements could be used to accomplish something similar to structural "
"pattern matching, it is less clear than the \"declarative\" approach. "
"Instead the \"declarative\" approach states the conditions to meet for a "
"match and is more readable through its explicit patterns. While structural "
"pattern matching can be used in its simplest form comparing a variable to a "
"literal in a case statement, its true value for Python lies in its handling "
"of the subject's type and shape."
msgstr ""
#: whatsnew/3.10.rst:241
msgid "Simple pattern: match to a literal"
msgstr ""
#: whatsnew/3.10.rst:243
msgid ""
"Let's look at this example as pattern matching in its simplest form: a "
"value, the subject, being matched to several literals, the patterns. In the "
"example below, ``status`` is the subject of the match statement. The "
"patterns are each of the case statements, where literals represent request "
"status codes. The associated action to the case is executed after a match::"
msgstr ""
#: whatsnew/3.10.rst:260
msgid ""
"If the above function is passed a ``status`` of 418, \"I'm a teapot\" is "
"returned. If the above function is passed a ``status`` of 500, the case "
"statement with ``_`` will match as a wildcard, and \"Something's wrong with "
"the Internet\" is returned. Note the last block: the variable name, ``_``, "
"acts as a *wildcard* and insures the subject will always match. The use of "
"``_`` is optional."
msgstr ""
#: whatsnew/3.10.rst:267
msgid ""
"You can combine several literals in a single pattern using ``|`` (\"or\")::"
msgstr ""
#: whatsnew/3.10.rst:273
msgid "Behavior without the wildcard"
msgstr ""
#: whatsnew/3.10.rst:275
msgid ""
"If we modify the above example by removing the last case block, the example "
"becomes::"
msgstr ""
#: whatsnew/3.10.rst:287
msgid ""
"Without the use of ``_`` in a case statement, a match may not exist. If no "
"match exists, the behavior is a no-op. For example, if ``status`` of 500 is "
"passed, a no-op occurs."
msgstr ""
#: whatsnew/3.10.rst:292
msgid "Patterns with a literal and variable"
msgstr ""
#: whatsnew/3.10.rst:294
msgid ""
"Patterns can look like unpacking assignments, and a pattern may be used to "
"bind variables. In this example, a data point can be unpacked to its x-"
"coordinate and y-coordinate::"
msgstr ""
#: whatsnew/3.10.rst:311
msgid ""
"The first pattern has two literals, ``(0, 0)``, and may be thought of as an "
"extension of the literal pattern shown above. The next two patterns combine "
"a literal and a variable, and the variable *binds* a value from the subject "
"(``point``). The fourth pattern captures two values, which makes it "
"conceptually similar to the unpacking assignment ``(x, y) = point``."
msgstr ""
#: whatsnew/3.10.rst:318
msgid "Patterns and classes"
msgstr ""
#: whatsnew/3.10.rst:320
msgid ""
"If you are using classes to structure your data, you can use as a pattern "
"the class name followed by an argument list resembling a constructor. This "
"pattern has the ability to capture class attributes into variables::"
msgstr ""
#: whatsnew/3.10.rst:342
msgid "Patterns with positional parameters"
msgstr ""
#: whatsnew/3.10.rst:344
msgid ""
"You can use positional parameters with some builtin classes that provide an "
"ordering for their attributes (e.g. dataclasses). You can also define a "
"specific position for attributes in patterns by setting the "
"``__match_args__`` special attribute in your classes. If it's set to (\"x\", "
"\"y\"), the following patterns are all equivalent (and all bind the ``y`` "
"attribute to the ``var`` variable)::"
msgstr ""
#: whatsnew/3.10.rst:356
msgid "Nested patterns"
msgstr ""
#: whatsnew/3.10.rst:358
msgid ""
"Patterns can be arbitrarily nested. For example, if our data is a short "
"list of points, it could be matched like this::"
msgstr ""
#: whatsnew/3.10.rst:374
msgid "Complex patterns and the wildcard"
msgstr ""
#: whatsnew/3.10.rst:376
msgid ""
"To this point, the examples have used ``_`` alone in the last case "
"statement. A wildcard can be used in more complex patterns, such as "
"``('error', code, _)``. For example::"
msgstr ""
#: whatsnew/3.10.rst:386
msgid ""
"In the above case, ``test_variable`` will match for ('error', code, 100) and "
"('error', code, 800)."
msgstr ""
#: whatsnew/3.10.rst:390
msgid "Guard"
msgstr ""
#: whatsnew/3.10.rst:392
msgid ""
"We can add an ``if`` clause to a pattern, known as a \"guard\". If the "
"guard is false, ``match`` goes on to try the next case block. Note that "
"value capture happens before the guard is evaluated::"
msgstr ""
#: whatsnew/3.10.rst:403
msgid "Other Key Features"
msgstr ""
#: whatsnew/3.10.rst:405
msgid "Several other key features:"
msgstr ""
#: whatsnew/3.10.rst:407
msgid ""
"Like unpacking assignments, tuple and list patterns have exactly the same "
"meaning and actually match arbitrary sequences. Technically, the subject "
"must be an instance of ``collections.abc.Sequence``. Therefore, an important "
"exception is that patterns don't match iterators. Also, to prevent a common "
"mistake, sequence patterns don't match strings."
msgstr ""
#: whatsnew/3.10.rst:413
msgid ""
"Sequence patterns support wildcards: ``[x, y, *rest]`` and ``(x, y, *rest)`` "
"work similar to wildcards in unpacking assignments. The name after ``*`` "
"may also be ``_``, so ``(x, y, *_)`` matches a sequence of at least two "
"items without binding the remaining items."
msgstr ""
#: whatsnew/3.10.rst:418
msgid ""
"Mapping patterns: ``{\"bandwidth\": b, \"latency\": l}`` captures the ``"
"\"bandwidth\"`` and ``\"latency\"`` values from a dict. Unlike sequence "
"patterns, extra keys are ignored. A wildcard ``**rest`` is also supported. "
"(But ``**_`` would be redundant, so it not allowed.)"
msgstr ""
#: whatsnew/3.10.rst:423
msgid "Subpatterns may be captured using the ``as`` keyword::"
msgstr ""
#: whatsnew/3.10.rst:427
msgid ""
"This binds x1, y1, x2, y2 like you would expect without the ``as`` clause, "
"and p2 to the entire second item of the subject."
msgstr ""
#: whatsnew/3.10.rst:430
msgid ""
"Most literals are compared by equality. However, the singletons ``True``, "
"``False`` and ``None`` are compared by identity."
msgstr ""
#: whatsnew/3.10.rst:433
msgid ""
"Named constants may be used in patterns. These named constants must be "
"dotted names to prevent the constant from being interpreted as a capture "
"variable::"
msgstr ""
#: whatsnew/3.10.rst:451
msgid ""
"For the full specification see :pep:`634`. Motivation and rationale are in :"
"pep:`635`, and a longer tutorial is in :pep:`636`."
msgstr ""
#: whatsnew/3.10.rst:456
msgid "New Features Related to Type Annotations"
msgstr ""
#: whatsnew/3.10.rst:458
msgid ""
"This section covers major changes affecting :pep:`484` type annotations and "
"the :mod:`typing` module."
msgstr ""
#: whatsnew/3.10.rst:463
msgid "PEP 563: Postponed Evaluation of Annotations Becomes Default"
msgstr ""
#: whatsnew/3.10.rst:465
msgid ""
"In Python 3.7, postponed evaluation of annotations was added, to be enabled "
"with a ``from __future__ import annotations`` directive. In 3.10 this "
"became the default behavior, even without that future directive. With this "
"being default, all annotations stored in :attr:`__annotations__` will be "
"strings. If needed, annotations can be resolved at runtime using :func:"
"`typing.get_type_hints`. See :pep:`563` for a full description. Also, the :"
"func:`inspect.signature` will try to resolve types from now on, and when it "
"fails it will fall back to showing the string annotations. (Contributed by "
"Batuhan Taskaya in :issue:`38605`.)"
msgstr ""
#: whatsnew/3.10.rst:479
msgid "PEP 604: New Type Union Operator"
msgstr ""
#: whatsnew/3.10.rst:481
msgid ""
"A new type union operator was introduced which enables the syntax ``X | Y``. "
"This provides a cleaner way of expressing 'either type X or type Y' instead "
"of using :data:`typing.Union`, especially in type hints (annotations)."
msgstr ""
#: whatsnew/3.10.rst:485
msgid ""
"In previous versions of Python, to apply a type hint for functions accepting "
"arguments of multiple types, :data:`typing.Union` was used::"
msgstr ""
#: whatsnew/3.10.rst:492
msgid "Type hints can now be written in a more succinct manner::"
msgstr ""
#: whatsnew/3.10.rst:498
msgid ""
"This new syntax is also accepted as the second argument to :func:"
"`isinstance` and :func:`issubclass`::"
msgstr ""
#: whatsnew/3.10.rst:504
msgid "See :ref:`types-union` and :pep:`604` for more details."
msgstr ""
#: whatsnew/3.10.rst:506
msgid "(Contributed by Maggie Moss and Philippe Prados in :issue:`41428`.)"
msgstr ""
#: whatsnew/3.10.rst:510
msgid "PEP 612: Parameter Specification Variables"
msgstr ""
#: whatsnew/3.10.rst:512
msgid ""
"Two new options to improve the information provided to static type checkers "
"for :pep:`484`\\ 's ``Callable`` have been added to the :mod:`typing` module."
msgstr ""
#: whatsnew/3.10.rst:515
msgid ""
"The first is the parameter specification variable. They are used to forward "
"the parameter types of one callable to another callable -- a pattern "
"commonly found in higher order functions and decorators. Examples of usage "
"can be found in :class:`typing.ParamSpec`. Previously, there was no easy way "
"to type annotate dependency of parameter types in such a precise manner."
msgstr ""
#: whatsnew/3.10.rst:521
msgid ""
"The second option is the new ``Concatenate`` operator. It's used in "
"conjunction with parameter specification variables to type annotate a higher "
"order callable which adds or removes parameters of another callable. "
"Examples of usage can be found in :class:`typing.Concatenate`."
msgstr ""
#: whatsnew/3.10.rst:526
msgid ""
"See :class:`typing.Callable`, :class:`typing.ParamSpec`, :class:`typing."
"Concatenate` and :pep:`612` for more details."
msgstr ""
#: whatsnew/3.10.rst:529
msgid "(Contributed by Ken Jin in :issue:`41559`.)"
msgstr ""
#: whatsnew/3.10.rst:533
msgid "PEP 613: TypeAlias Annotation"
msgstr ""
#: whatsnew/3.10.rst:535
msgid ""
":pep:`484` introduced the concept of type aliases, only requiring them to be "
"top-level unannotated assignments. This simplicity sometimes made it "
"difficult for type checkers to distinguish between type aliases and ordinary "
"assignments, especially when forward references or invalid types were "
"involved. Compare::"
msgstr ""
#: whatsnew/3.10.rst:543
msgid ""
"Now the :mod:`typing` module has a special annotation :data:`TypeAlias` to "
"declare type aliases more explicitly::"
msgstr ""
#: whatsnew/3.10.rst:549
msgid "See :pep:`613` for more details."
msgstr ""
#: whatsnew/3.10.rst:551
msgid "(Contributed by Mikhail Golubev in :issue:`41923`.)"
msgstr ""
#: whatsnew/3.10.rst:555
msgid "Other Language Changes"
msgstr ""
#: whatsnew/3.10.rst:557
msgid ""
"The :class:`int` type has a new method :meth:`int.bit_count`, returning the "
"number of ones in the binary expansion of a given integer, also known as the "
"population count. (Contributed by Niklas Fiekas in :issue:`29882`.)"
msgstr ""
#: whatsnew/3.10.rst:561
msgid ""
"The views returned by :meth:`dict.keys`, :meth:`dict.values` and :meth:`dict."
"items` now all have a ``mapping`` attribute that gives a :class:`types."
"MappingProxyType` object wrapping the original dictionary. (Contributed by "
"Dennis Sweeney in :issue:`40890`.)"
msgstr ""
#: whatsnew/3.10.rst:566
msgid ""
":pep:`618`: The :func:`zip` function now has an optional ``strict`` flag, "
"used to require that all the iterables have an equal length."
msgstr ""
#: whatsnew/3.10.rst:569
msgid ""
"Builtin and extension functions that take integer arguments no longer "
"accept :class:`~decimal.Decimal`\\ s, :class:`~fractions.Fraction`\\ s and "
"other objects that can be converted to integers only with a loss (e.g. that "
"have the :meth:`~object.__int__` method but do not have the :meth:`~object."
"__index__` method). (Contributed by Serhiy Storchaka in :issue:`37999`.)"
msgstr ""
#: whatsnew/3.10.rst:576
msgid ""
"If :func:`object.__ipow__` returns :const:`NotImplemented`, the operator "
"will correctly fall back to :func:`object.__pow__` and :func:`object."
"__rpow__` as expected. (Contributed by Alex Shkop in :issue:`38302`.)"
msgstr ""
#: whatsnew/3.10.rst:580
msgid ""
"Assignment expressions can now be used unparenthesized within set literals "
"and set comprehensions, as well as in sequence indexes (but not slices)."
msgstr ""
#: whatsnew/3.10.rst:583
msgid ""
"Functions have a new ``__builtins__`` attribute which is used to look for "
"builtin symbols when a function is executed, instead of looking into "
"``__globals__['__builtins__']``. The attribute is initialized from "
"``__globals__[\"__builtins__\"]`` if it exists, else from the current "
"builtins. (Contributed by Mark Shannon in :issue:`42990`.)"
msgstr ""
#: whatsnew/3.10.rst:591
msgid "New Modules"
msgstr ""
#: whatsnew/3.10.rst:593
msgid "None yet."
msgstr ""
#: whatsnew/3.10.rst:597
msgid "Improved Modules"
msgstr ""
#: whatsnew/3.10.rst:600
msgid "argparse"
msgstr ""
#: whatsnew/3.10.rst:602
msgid ""
"Misleading phrase \"optional arguments\" was replaced with \"options\" in "
"argparse help. Some tests might require adaptation if they rely on exact "
"output match. (Contributed by Raymond Hettinger in :issue:`9694`.)"
msgstr ""
#: whatsnew/3.10.rst:606
msgid "base64"
msgstr ""
#: whatsnew/3.10.rst:608
msgid ""
"Add :func:`base64.b32hexencode` and :func:`base64.b32hexdecode` to support "
"the Base32 Encoding with Extended Hex Alphabet."
msgstr ""
#: whatsnew/3.10.rst:612
msgid "codecs"
msgstr ""
#: whatsnew/3.10.rst:614
msgid ""
"Add a :func:`codecs.unregister` function to unregister a codec search "
"function. (Contributed by Hai Shi in :issue:`41842`.)"
msgstr ""
#: whatsnew/3.10.rst:618
msgid "collections.abc"
msgstr ""
#: whatsnew/3.10.rst:620
msgid ""
"The ``__args__`` of the :ref:`parameterized generic <types-genericalias>` "
"for :class:`collections.abc.Callable` are now consistent with :data:`typing."
"Callable`. :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. Note that a :exc:`TypeError` may be raised "
"for invalid forms of parameterizing :class:`collections.abc.Callable` which "
"may have passed silently in Python 3.9. (Contributed by Ken Jin in :issue:"
"`42195`.)"
msgstr ""
#: whatsnew/3.10.rst:633
msgid "contextlib"
msgstr ""
#: whatsnew/3.10.rst:635
msgid ""
"Add a :func:`contextlib.aclosing` context manager to safely close async "
"generators and objects representing asynchronously released resources. "
"(Contributed by Joongi Kim and John Belmonte in :issue:`41229`.)"
msgstr ""
#: whatsnew/3.10.rst:639
msgid ""
"Add asynchronous context manager support to :func:`contextlib.nullcontext`. "
"(Contributed by Tom Gringauz in :issue:`41543`.)"
msgstr ""
#: whatsnew/3.10.rst:643
msgid "curses"
msgstr ""
#: whatsnew/3.10.rst:645
msgid ""
"The extended color functions added in ncurses 6.1 will be used transparently "
"by :func:`curses.color_content`, :func:`curses.init_color`, :func:`curses."
"init_pair`, and :func:`curses.pair_content`. A new function, :func:`curses."
"has_extended_color_support`, indicates whether extended color support is "
"provided by the underlying ncurses library. (Contributed by Jeffrey "
"Kintscher and Hans Petter Jansson in :issue:`36982`.)"
msgstr ""
#: whatsnew/3.10.rst:652
msgid ""
"The ``BUTTON5_*`` constants are now exposed in the :mod:`curses` module if "
"they are provided by the underlying curses library. (Contributed by Zackery "
"Spytz in :issue:`39273`.)"
msgstr ""
#: whatsnew/3.10.rst:659
msgid "distutils"
msgstr ""
#: whatsnew/3.10.rst:661
msgid ""
"The entire ``distutils`` package is deprecated, to be removed in Python "
"3.12. Its functionality for specifying package builds has already been "
"completely replaced by third-party packages ``setuptools`` and "
"``packaging``, and most other commonly used APIs are available elsewhere in "
"the standard library (such as :mod:`platform`, :mod:`shutil`, :mod:"
"`subprocess` or :mod:`sysconfig`). There are no plans to migrate any other "
"functionality from ``distutils``, and applications that are using other "
"functions should plan to make private copies of the code. Refer to :pep:"
"`632` for discussion."
msgstr ""
#: whatsnew/3.10.rst:671
msgid ""
"The ``bdist_wininst`` command deprecated in Python 3.8 has been removed. The "
"``bdist_wheel`` command is now recommended to distribute binary packages on "
"Windows. (Contributed by Victor Stinner in :issue:`42802`.)"
msgstr ""
#: whatsnew/3.10.rst:677
msgid "doctest"
msgstr ""
#: whatsnew/3.10.rst:717 whatsnew/3.10.rst:792
msgid ""
"When a module does not define ``__loader__``, fall back to ``__spec__."
"loader``. (Contributed by Brett Cannon in :issue:`42133`.)"
msgstr ""
#: whatsnew/3.10.rst:683
msgid "encodings"
msgstr ""
#: whatsnew/3.10.rst:685
msgid ""
":func:`encodings.normalize_encoding` now ignores non-ASCII characters. "
"(Contributed by Hai Shi in :issue:`39337`.)"
msgstr ""
#: whatsnew/3.10.rst:689
msgid "gc"
msgstr ""
#: whatsnew/3.10.rst:691
msgid ""
"Added audit hooks for :func:`gc.get_objects`, :func:`gc.get_referrers` and :"
"func:`gc.get_referents`. (Contributed by Pablo Galindo in :issue:`43439`.)"
msgstr ""
#: whatsnew/3.10.rst:695
msgid "glob"
msgstr ""
#: whatsnew/3.10.rst:697
msgid ""
"Added the *root_dir* and *dir_fd* parameters in :func:`~glob.glob` and :func:"
"`~glob.iglob` which allow to specify the root directory for searching. "
"(Contributed by Serhiy Storchaka in :issue:`38144`.)"
msgstr ""
#: whatsnew/3.10.rst:702
msgid "importlib.metadata"
msgstr ""
#: whatsnew/3.10.rst:704
msgid "Feature parity with ``importlib_metadata`` 3.7."
msgstr ""
#: whatsnew/3.10.rst:706
msgid ""
":func:`importlib.metadata.entry_points` now provides a nicer experience for "
"selecting entry points by group and name through a new :class:`importlib."
"metadata.EntryPoints` class."
msgstr ""
#: whatsnew/3.10.rst:710
msgid ""
"Added :func:`importlib.metadata.packages_distributions` for resolving top-"
"level Python modules and packages to their :class:`importlib.metadata."
"Distribution`."
msgstr ""
#: whatsnew/3.10.rst:715
msgid "inspect"
msgstr ""
#: whatsnew/3.10.rst:720
msgid ""
"Added *globalns* and *localns* parameters in :func:`~inspect.signature` and :"
"meth:`inspect.Signature.from_callable` to retrieve the annotations in given "
"local and global namespaces. (Contributed by Batuhan Taskaya in :issue:"
"`41960`.)"
msgstr ""
#: whatsnew/3.10.rst:726
msgid "linecache"
msgstr ""
#: whatsnew/3.10.rst:732
msgid "os"
msgstr ""
#: whatsnew/3.10.rst:734
msgid ""
"Added :func:`os.cpu_count()` support for VxWorks RTOS. (Contributed by "
"Peixing Xin in :issue:`41440`.)"
msgstr ""
#: whatsnew/3.10.rst:737
msgid ""
"Added a new function :func:`os.eventfd` and related helpers to wrap the "
"``eventfd2`` syscall on Linux. (Contributed by Christian Heimes in :issue:"
"`41001`.)"
msgstr ""
#: whatsnew/3.10.rst:741
msgid ""
"Added :func:`os.splice()` that allows to move data between two file "
"descriptors without copying between kernel address space and user address "
"space, where one of the file descriptors must refer to a pipe. (Contributed "
"by Pablo Galindo in :issue:`41625`.)"
msgstr ""
#: whatsnew/3.10.rst:746
msgid ""
"Added :data:`~os.O_EVTONLY`, :data:`~os.O_FSYNC`, :data:`~os.O_SYMLINK` and :"
"data:`~os.O_NOFOLLOW_ANY` for macOS. (Contributed by Dong-hee Na in :issue:"
"`43106`.)"
msgstr ""
#: whatsnew/3.10.rst:751
msgid "pathlib"
msgstr ""
#: whatsnew/3.10.rst:753
msgid ""
"Added slice support to :attr:`PurePath.parents <pathlib.PurePath.parents>`. "
"(Contributed by Joshua Cannon in :issue:`35498`)"
msgstr ""
#: whatsnew/3.10.rst:756
msgid ""
"Added negative indexing support to :attr:`PurePath.parents <pathlib.PurePath."
"parents>`. (Contributed by Yaroslav Pankovych in :issue:`21041`)"
msgstr ""
#: whatsnew/3.10.rst:761
msgid "platform"
msgstr ""
#: whatsnew/3.10.rst:763
msgid ""
"Added :func:`platform.freedesktop_os_release()` to retrieve operation system "
"identification from `freedesktop.org os-release <https://www.freedesktop.org/"
"software/systemd/man/os-release.html>`_ standard file. (Contributed by "
"Christian Heimes in :issue:`28468`)"
msgstr ""
#: whatsnew/3.10.rst:769
msgid "py_compile"
msgstr ""
#: whatsnew/3.10.rst:771
msgid ""
"Added ``--quiet`` option to command-line interface of :mod:`py_compile`. "
"(Contributed by Gregory Schevchenko in :issue:`38731`.)"
msgstr ""
#: whatsnew/3.10.rst:775
msgid "pyclbr"
msgstr ""
#: whatsnew/3.10.rst:777
msgid ""
"Added an ``end_lineno`` attribute to the ``Function`` and ``Class`` objects "
"in the tree returned by :func:`pyclbr.readline` and :func:`pyclbr."
"readline_ex`. It matches the existing (start) ``lineno``. (Contributed by "
"Aviral Srivastava in :issue:`38307`.)"
msgstr ""
#: whatsnew/3.10.rst:783
msgid "shelve"
msgstr ""
#: whatsnew/3.10.rst:785
msgid ""
"The :mod:`shelve` module now uses :data:`pickle.DEFAULT_PROTOCOL` by default "
"instead of :mod:`pickle` protocol ``3`` when creating shelves. (Contributed "
"by Zackery Spytz in :issue:`34204`.)"
msgstr ""
#: whatsnew/3.10.rst:790
msgid "site"
msgstr ""
#: whatsnew/3.10.rst:796
msgid "socket"
msgstr ""
#: whatsnew/3.10.rst:798
msgid ""
"The exception :exc:`socket.timeout` is now an alias of :exc:`TimeoutError`. "
"(Contributed by Christian Heimes in :issue:`42413`.)"
msgstr ""
#: whatsnew/3.10.rst:802
msgid "sys"
msgstr ""
#: whatsnew/3.10.rst:804
msgid ""
"Add :data:`sys.orig_argv` attribute: the list of the original command line "
"arguments passed to the Python executable. (Contributed by Victor Stinner "
"in :issue:`23427`.)"
msgstr ""
#: whatsnew/3.10.rst:808
msgid ""
"Add :data:`sys.stdlib_module_names`, containing the list of the standard "
"library module names. (Contributed by Victor Stinner in :issue:`42955`.)"
msgstr ""
#: whatsnew/3.10.rst:813
msgid "_thread"
msgstr ""
#: whatsnew/3.10.rst:815
msgid ""
":func:`_thread.interrupt_main` now takes an optional signal number to "
"simulate (the default is still :data:`signal.SIGINT`). (Contributed by "
"Antoine Pitrou in :issue:`43356`.)"
msgstr ""
#: whatsnew/3.10.rst:820
msgid "threading"
msgstr ""
#: whatsnew/3.10.rst:822
msgid ""
"Added :func:`threading.gettrace` and :func:`threading.getprofile` to "
"retrieve the functions set by :func:`threading.settrace` and :func:"
"`threading.setprofile` respectively. (Contributed by Mario Corchero in :"
"issue:`42251`.)"
msgstr ""
#: whatsnew/3.10.rst:827
msgid ""
"Add :data:`threading.__excepthook__` to allow retrieving the original value "
"of :func:`threading.excepthook` in case it is set to a broken or a different "
"value. (Contributed by Mario Corchero in :issue:`42308`.)"
msgstr ""
#: whatsnew/3.10.rst:833
msgid "traceback"
msgstr ""
#: whatsnew/3.10.rst:835
msgid ""
"The :func:`~traceback.format_exception`, :func:`~traceback."
"format_exception_only`, and :func:`~traceback.print_exception` functions can "
"now take an exception object as a positional-only argument. (Contributed by "
"Zackery Spytz and Matthias Bussonnier in :issue:`26389`.)"
msgstr ""
#: whatsnew/3.10.rst:842
msgid "types"
msgstr ""
#: whatsnew/3.10.rst:844
msgid ""
"Reintroduced the :data:`types.EllipsisType`, :data:`types.NoneType` and :"
"data:`types.NotImplementedType` classes, providing a new set of types "
"readily interpretable by type checkers. (Contributed by Bas van Beek in :"
"issue:`41810`.)"
msgstr ""
#: whatsnew/3.10.rst:850
msgid "typing"
msgstr ""
#: whatsnew/3.10.rst:852
msgid "For major changes, see `New Features Related to Type Annotations`_."
msgstr ""
#: whatsnew/3.10.rst:854
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.10.rst:857
msgid "``Literal`` now de-duplicates parameters."
msgstr ""
#: whatsnew/3.10.rst:858
msgid ""
"Equality comparisons between ``Literal`` objects are now order independent."
msgstr ""
#: whatsnew/3.10.rst:859
msgid ""
"``Literal`` comparisons now respects 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.10.rst:863
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.10.rst:875
msgid "(Contributed by Yurii Karabas in :issue:`42345`.)"
msgstr ""
#: whatsnew/3.10.rst:878
msgid "unittest"
msgstr ""
#: whatsnew/3.10.rst:880
msgid ""
"Add new method :meth:`~unittest.TestCase.assertNoLogs` to complement the "
"existing :meth:`~unittest.TestCase.assertLogs`. (Contributed by Kit Yan Choi "
"in :issue:`39385`.)"
msgstr ""
#: whatsnew/3.10.rst:885
msgid "urllib.parse"
msgstr ""
#: whatsnew/3.10.rst:887
msgid ""
"Python versions earlier than Python 3.10 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 ""
#: whatsnew/3.10.rst:898
msgid "xml"
msgstr ""
#: whatsnew/3.10.rst:900
msgid ""
"Add a :class:`~xml.sax.handler.LexicalHandler` class to the :mod:`xml.sax."
"handler` module. (Contributed by Jonathan Gossage and Zackery Spytz in :"
"issue:`35018`.)"
msgstr ""
#: whatsnew/3.10.rst:905
msgid "zipimport"
msgstr ""
#: whatsnew/3.10.rst:906
msgid ""
"Add methods related to :pep:`451`: :meth:`~zipimport.zipimporter."
"find_spec`, :meth:`zipimport.zipimporter.create_module`, and :meth:"
"`zipimport.zipimporter.exec_module`. (Contributed by Brett Cannon in :issue:"
"`42131`."
msgstr ""
#: whatsnew/3.10.rst:913
msgid "Optimizations"
msgstr ""
#: whatsnew/3.10.rst:915
msgid ""
"Constructors :func:`str`, :func:`bytes` and :func:`bytearray` are now faster "
"(around 30--40% for small objects). (Contributed by Serhiy Storchaka in :"
"issue:`41334`.)"
msgstr ""
#: whatsnew/3.10.rst:919
msgid ""
"The :mod:`runpy` module now imports fewer modules. The ``python3 -m module-"
"name`` command startup time is 1.3x faster in average. (Contributed by "
"Victor Stinner in :issue:`41006`.)"
msgstr ""
#: whatsnew/3.10.rst:924
msgid ""
"The ``LOAD_ATTR`` instruction now uses new \"per opcode cache\" mechanism. "
"It is about 36% faster now for regular attributes and 44% faster for slots. "
"(Contributed by Pablo Galindo and Yury Selivanov in :issue:`42093` and Guido "
"van Rossum in :issue:`42927`, based on ideas implemented originally in PyPy "
"and MicroPython.)"
msgstr ""
#: whatsnew/3.10.rst:930
msgid ""
"When building Python with ``--enable-optimizations`` now ``-fno-semantic-"
"interposition`` is added to both the compile and link line. This speeds "
"builds of the Python interpreter created with ``--enable-shared`` with "
"``gcc`` by up to 30%. See `this article <https://developers.redhat.com/"
"blog/2020/06/25/red-hat-enterprise-linux-8-2-brings-faster-python-3-8-run-"
"speeds/>`_ for more details. (Contributed by Victor Stinner and Pablo "
"Galindo in :issue:`38980`.)"
msgstr ""
#: whatsnew/3.10.rst:939
msgid ""
"Function parameters and their annotations are no longer computed at runtime, "
"but rather at compilation time. They are stored as a tuple of strings at "
"the bytecode level. It is now around 2 times faster to create a function "
"with parameter annotations. (Contributed by Yurii Karabas and Inada Naoki "
"in :issue:`42202`)"
msgstr ""
#: whatsnew/3.10.rst:945
msgid ""
"Substring search functions such as ``str1 in str2`` and ``str2.find(str1)`` "
"now sometimes use Crochemore & Perrin's \"Two-Way\" string searching "
"algorithm to avoid quadratic behavior on long strings. (Contributed by "
"Dennis Sweeney in :issue:`41972`)"
msgstr ""
#: whatsnew/3.10.rst:1304
msgid "Deprecated"
msgstr ""
#: whatsnew/3.10.rst:953
msgid ""
"Starting in this release, there will be a concerted effort to begin cleaning "
"up old import semantics that were kept for Python 2.7 compatibility. "
"Specifically, :meth:`~importlib.abc.PathEntryFinder.find_loader`/:meth:"
"`~importlib.abc.Finder.find_module` (superseded by :meth:`~importlib.abc."
"Finder.find_spec`), :meth:`~importlib.abc.Loader.load_module` (superseded "
"by :meth:`~importlib.abc.Loader.exec_module`), :meth:`~importlib.abc.Loader."
"module_repr` (which the import system takes care of for you), the "
"``__package__`` attribute (superseded by ``__spec__.parent``), the "
"``__loader__`` attribute (superseded by ``__spec__.loader``), and the "
"``__cached__`` attribute (superseded by ``__spec__.cached``) will slowly be "
"removed (as well as other classes and methods in :mod:`importlib`). :exc:"
"`ImportWarning` and/or :exc:`DeprecationWarning` will be raised as "
"appropriate to help identify code which needs updating during this "
"transition."
msgstr ""
#: whatsnew/3.10.rst:970
msgid ""
"The entire ``distutils`` namespace is deprecated, to be removed in Python "
"3.12. Refer to the :ref:`module changes <distutils-deprecated>` section for "
"more information."
msgstr ""
#: whatsnew/3.10.rst:974
msgid ""
"Non-integer arguments to :func:`random.randrange` are deprecated. The :exc:"
"`ValueError` is deprecated in favor of a :exc:`TypeError`. (Contributed by "
"Serhiy Storchaka and Raymond Hettinger in :issue:`37319`.)"
msgstr ""
#: whatsnew/3.10.rst:978
msgid ""
"The various ``load_module()`` methods of :mod:`importlib` have been "
"documented as deprecated since Python 3.6, but will now also trigger a :exc:"
"`DeprecationWarning`. Use :meth:`~importlib.abc.Loader.exec_module` instead. "
"(Contributed by Brett Cannon in :issue:`26131`.)"
msgstr ""
#: whatsnew/3.10.rst:984
msgid ""
":meth:`zimport.zipimporter.load_module` has been deprecated in preference "
"for :meth:`~zipimport.zipimporter.exec_module`. (Contributed by Brett Cannon "
"in :issue:`26131`.)"
msgstr ""
#: whatsnew/3.10.rst:988
msgid ""
"The use of :meth:`~importlib.abc.Loader.load_module` by the import system "
"now triggers an :exc:`ImportWarning` as :meth:`~importlib.abc.Loader."
"exec_module` is preferred. (Contributed by Brett Cannon in :issue:`26131`.)"
msgstr ""
#: whatsnew/3.10.rst:993
msgid ""
"``sqlite3.OptimizedUnicode`` has been undocumented and obsolete since Python "
"3.3, when it was made an alias to :class:`str`. It is now deprecated, "
"scheduled for removal in Python 3.12. (Contributed by Erlend E. Aasland in :"
"issue:`42264`.)"
msgstr ""
#: whatsnew/3.10.rst:998
msgid ""
"The undocumented built-in function ``sqlite3.enable_shared_cache`` is now "
"deprecated, scheduled for removal in Python 3.12. Its use is strongly "
"discouraged by the SQLite3 documentation. See `the SQLite3 docs <https://"
"sqlite.org/c3ref/enable_shared_cache.html>`_ for more details. If shared "
"cache must be used, open the database in URI mode using the ``cache=shared`` "
"query parameter. (Contributed by Erlend E. Aasland in :issue:`24464`.)"
msgstr ""
#: whatsnew/3.10.rst:1312
msgid "Removed"
msgstr ""
#: whatsnew/3.10.rst:1010
msgid ""
"Removed special methods ``__int__``, ``__float__``, ``__floordiv__``, "
"``__mod__``, ``__divmod__``, ``__rfloordiv__``, ``__rmod__`` and "
"``__rdivmod__`` of the :class:`complex` class. They always raised a :exc:"
"`TypeError`. (Contributed by Serhiy Storchaka in :issue:`41974`.)"
msgstr ""
#: whatsnew/3.10.rst:1016
msgid ""
"The ``ParserBase.error()`` method from the private and undocumented "
"``_markupbase`` module has been removed. :class:`html.parser.HTMLParser` is "
"the only subclass of ``ParserBase`` and its ``error()`` implementation has "
"already been removed in Python 3.5. (Contributed by Berker Peksag in :issue:"
"`31844`.)"
msgstr ""
#: whatsnew/3.10.rst:1022
msgid ""
"Removed the ``unicodedata.ucnhash_CAPI`` attribute which was an internal "
"PyCapsule object. The related private ``_PyUnicode_Name_CAPI`` structure was "
"moved to the internal C API. (Contributed by Victor Stinner in :issue:"
"`42157`.)"
msgstr ""
#: whatsnew/3.10.rst:1027
msgid ""
"Removed the ``parser`` module, which was deprecated in 3.9 due to the switch "
"to the new PEG parser, as well as all the C source and header files that "
"were only being used by the old parser, including ``node.h``, ``parser.h``, "
"``graminit.h`` and ``grammar.h``."
msgstr ""
#: whatsnew/3.10.rst:1032
msgid ""
"Removed the Public C API functions :c:func:"
"`PyParser_SimpleParseStringFlags`, :c:func:"
"`PyParser_SimpleParseStringFlagsFilename`, :c:func:"
"`PyParser_SimpleParseFileFlags` and :c:func:`PyNode_Compile` that were "
"deprecated in 3.9 due to the switch to the new PEG parser."
msgstr ""
#: whatsnew/3.10.rst:1037
msgid ""
"Removed the ``formatter`` module, which was deprecated in Python 3.4. It is "
"somewhat obsolete, little used, and not tested. It was originally scheduled "
"to be removed in Python 3.6, but such removals were delayed until after "
"Python 2.7 EOL. Existing users should copy whatever classes they use into "
"their code. (Contributed by Dong-hee Na and Terry J. Reedy in :issue:"
"`42299`.)"
msgstr ""
#: whatsnew/3.10.rst:1044
msgid ""
"Removed the :c:func:`PyModule_GetWarningsModule` function that was useless "
"now due to the _warnings module was converted to a builtin module in 2.6. "
"(Contributed by Hai Shi in :issue:`42599`.)"
msgstr ""
#: whatsnew/3.10.rst:1048
msgid ""
"Remove deprecated aliases to :ref:`collections-abstract-base-classes` from "
"the :mod:`collections` module. (Contributed by Victor Stinner in :issue:"
"`37324`.)"
msgstr ""
#: whatsnew/3.10.rst:1052
msgid ""
"The ``loop`` parameter has been removed from most of :mod:`asyncio`\\ 's :"
"doc:`high-level API <../library/asyncio-api-index>` following deprecation in "
"Python 3.8. The motivation behind this change is multifold:"
msgstr ""
#: whatsnew/3.10.rst:1056
msgid "This simplifies the high-level API."
msgstr ""
#: whatsnew/3.10.rst:1057
msgid ""
"The functions in the high-level API have been implicitly getting the current "
"thread's running event loop since Python 3.7. There isn't a need to pass "
"the event loop to the API in most normal use cases."
msgstr ""
#: whatsnew/3.10.rst:1060
msgid ""
"Event loop passing is error-prone especially when dealing with loops running "
"in different threads."
msgstr ""
#: whatsnew/3.10.rst:1063
msgid ""
"Note that the low-level API will still accept ``loop``. See `Changes in the "
"Python API`_ for examples of how to replace existing code."
msgstr ""
#: whatsnew/3.10.rst:1125
msgid ""
"(Contributed by Yurii Karabas, Andrew Svetlov, Yury Selivanov and Kyle "
"Stanley in :issue:`42392`.)"
msgstr ""
#: whatsnew/3.10.rst:1247
msgid "Porting to Python 3.10"
msgstr ""
#: whatsnew/3.10.rst:1073
msgid ""
"This section lists previously described changes and other bugfixes that may "
"require changes to your code."
msgstr ""
#: whatsnew/3.10.rst:1078
msgid "Changes in the Python API"
msgstr ""
#: whatsnew/3.10.rst:1080
msgid ""
"The *etype* parameters of the :func:`~traceback.format_exception`, :func:"
"`~traceback.format_exception_only`, and :func:`~traceback.print_exception` "
"functions in the :mod:`traceback` module have been renamed to *exc*. "
"(Contributed by Zackery Spytz and Matthias Bussonnier in :issue:`26389`.)"
msgstr ""
#: whatsnew/3.10.rst:1086
msgid ""
":mod:`atexit`: At Python exit, if a callback registered with :func:`atexit."
"register` fails, its exception is now logged. Previously, only some "
"exceptions were logged, and the last exception was always silently ignored. "
"(Contributed by Victor Stinner in :issue:`42639`.)"
msgstr ""
#: whatsnew/3.10.rst:1092
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)``. Code which "
"accesses the arguments via :func:`typing.get_args` or ``__args__`` need to "
"account for this change. Furthermore, :exc:`TypeError` may be raised for "
"invalid forms of parameterizing :class:`collections.abc.Callable` which may "
"have passed silently in Python 3.9. (Contributed by Ken Jin in :issue:"
"`42195`.)"
msgstr ""
#: whatsnew/3.10.rst:1102
msgid ""
":meth:`socket.htons` and :meth:`socket.ntohs` now raise :exc:`OverflowError` "
"instead of :exc:`DeprecationWarning` if the given parameter will not fit in "
"a 16-bit unsigned integer. (Contributed by Erlend E. Aasland in :issue:"
"`42393`.)"
msgstr ""
#: whatsnew/3.10.rst:1107
msgid ""
"The ``loop`` parameter has been removed from most of :mod:`asyncio`\\ 's :"
"doc:`high-level API <../library/asyncio-api-index>` following deprecation in "
"Python 3.8."
msgstr ""
#: whatsnew/3.10.rst:1111
msgid "A coroutine that currently look like this::"
msgstr ""
#: whatsnew/3.10.rst:1116
msgid "Should be replaced with this::"
msgstr ""
#: whatsnew/3.10.rst:1121
msgid ""
"If ``foo()`` was specifically designed *not* to run in the current thread's "
"running event loop (e.g. running in another thread's event loop), consider "
"using :func:`asyncio.run_coroutine_threadsafe` instead."
msgstr ""
#: whatsnew/3.10.rst:1128
msgid ""
"The :data:`types.FunctionType` constructor now inherits the current builtins "
"if the *globals* dictionary has no ``\"__builtins__\"`` key, rather than "
"using ``{\"None\": None}`` as builtins: same behavior as :func:`eval` and :"
"func:`exec` functions. Defining a function with ``def function(...): ...`` "
"in Python is not affected, globals cannot be overriden with this syntax: it "
"also inherits the current builtins. (Contributed by Victor Stinner in :issue:"
"`42990`.)"
msgstr ""
#: whatsnew/3.10.rst:1137
msgid "CPython bytecode changes"
msgstr ""
#: whatsnew/3.10.rst:1139
msgid ""
"The ``MAKE_FUNCTION`` instruction accepts tuple of strings as annotations "
"instead of dictionary. (Contributed by Yurii Karabas and Inada Naoki in :"
"issue:`42202`)"
msgstr ""
#: whatsnew/3.10.rst:1144
msgid "Build Changes"
msgstr ""
#: whatsnew/3.10.rst:1146
msgid ""
"The C99 functions :c:func:`snprintf` and :c:func:`vsnprintf` are now "
"required to build Python. (Contributed by Victor Stinner in :issue:`36020`.)"
msgstr ""
#: whatsnew/3.10.rst:1150
msgid ""
":mod:`sqlite3` requires SQLite 3.7.15 or higher. (Contributed by Sergey "
"Fedoseev and Erlend E. Aasland :issue:`40744` and :issue:`40810`.)"
msgstr ""
#: whatsnew/3.10.rst:1153
msgid ""
"The :mod:`atexit` module must now always be built as a built-in module. "
"(Contributed by Victor Stinner in :issue:`42639`.)"
msgstr ""
#: whatsnew/3.10.rst:1156
msgid ""
"Added ``--disable-test-modules`` option to the ``configure`` script: don't "
"build nor install test modules. (Contributed by Xavier de Gaye, Thomas "
"Petazzoni and Peixing Xin in :issue:`27640`.)"
msgstr ""
#: whatsnew/3.10.rst:1160
msgid ""
"Add ``--with-wheel-pkg-dir=PATH`` option to the ``./configure`` script. If "
"specified, the :mod:`ensurepip` module looks for ``setuptools`` and ``pip`` "
"wheel packages in this directory: if both are present, these wheel packages "
"are used instead of ensurepip bundled wheel packages."
msgstr ""
#: whatsnew/3.10.rst:1165
msgid ""
"Some Linux distribution packaging policies recommend against bundling "
"dependencies. For example, Fedora installs wheel packages in the ``/usr/"
"share/python-wheels/`` directory and don't install the ``ensurepip."
"_bundled`` package."
msgstr ""
#: whatsnew/3.10.rst:1170
msgid "(Contributed by Victor Stinner in :issue:`42856`.)"
msgstr ""
#: whatsnew/3.10.rst:1172
msgid ""
"Add a new configure ``--without-static-libpython`` option to not build the "
"``libpythonMAJOR.MINOR.a`` static library and not install the ``python.o`` "
"object file."
msgstr ""
#: whatsnew/3.10.rst:1176
msgid "(Contributed by Victor Stinner in :issue:`43103`.)"
msgstr ""
#: whatsnew/3.10.rst:1178
msgid ""
"The ``configure`` script now uses the ``pkg-config`` utility, if available, "
"to detect the location of Tcl/Tk headers and libraries. As before, those "
"locations can be explicitly specified with the ``--with-tcltk-includes`` and "
"``--with-tcltk-libs`` configuration options. (Contributed by Manolis "
"Stamatogiannakis in :issue:`42603`.)"
msgstr ""
#: whatsnew/3.10.rst:1186
msgid "C API Changes"
msgstr ""
#: whatsnew/3.10.rst:1191
msgid ""
"The result of :c:func:`PyNumber_Index` now always has exact type :class:"
"`int`. Previously, the result could have been an instance of a subclass of "
"``int``. (Contributed by Serhiy Storchaka in :issue:`40792`.)"
msgstr ""
#: whatsnew/3.10.rst:1195
msgid ""
"Add a new :c:member:`~PyConfig.orig_argv` member to the :c:type:`PyConfig` "
"structure: the list of the original command line arguments passed to the "
"Python executable. (Contributed by Victor Stinner in :issue:`23427`.)"
msgstr ""
#: whatsnew/3.10.rst:1200
msgid ""
"The :c:func:`PyDateTime_DATE_GET_TZINFO` and :c:func:"
"`PyDateTime_TIME_GET_TZINFO` macros have been added for accessing the "
"``tzinfo`` attributes of :class:`datetime.datetime` and :class:`datetime."
"time` objects. (Contributed by Zackery Spytz in :issue:`30155`.)"
msgstr ""
#: whatsnew/3.10.rst:1206
msgid ""
"Add a :c:func:`PyCodec_Unregister` function to unregister a codec search "
"function. (Contributed by Hai Shi in :issue:`41842`.)"
msgstr ""
#: whatsnew/3.10.rst:1210
msgid ""
"The :c:func:`PyIter_Send` function was added to allow sending value into "
"iterator without raising ``StopIteration`` exception. (Contributed by "
"Vladimir Matveev in :issue:`41756`.)"
msgstr ""
#: whatsnew/3.10.rst:1214
msgid ""
"Added :c:func:`PyUnicode_AsUTF8AndSize` to the limited C API. (Contributed "
"by Alex Gaynor in :issue:`41784`.)"
msgstr ""
#: whatsnew/3.10.rst:1217
msgid ""
"Added :c:func:`PyModule_AddObjectRef` function: similar to :c:func:"
"`PyModule_AddObject` but don't steal a reference to the value on success. "
"(Contributed by Victor Stinner in :issue:`1635741`.)"
msgstr ""
#: whatsnew/3.10.rst:1222
msgid ""
"Added :c:func:`Py_NewRef` and :c:func:`Py_XNewRef` functions to increment "
"the reference count of an object and return the object. (Contributed by "
"Victor Stinner in :issue:`42262`.)"
msgstr ""
#: whatsnew/3.10.rst:1226
msgid ""
"The :c:func:`PyType_FromSpecWithBases` and :c:func:"
"`PyType_FromModuleAndSpec` functions now accept a single class as the "
"*bases* argument. (Contributed by Serhiy Storchaka in :issue:`42423`.)"
msgstr ""
#: whatsnew/3.10.rst:1230
msgid ""
"The :c:func:`PyType_FromModuleAndSpec` function now accepts NULL ``tp_doc`` "
"slot. (Contributed by Hai Shi in :issue:`41832`.)"
msgstr ""
#: whatsnew/3.10.rst:1234
msgid ""
"The :c:func:`PyType_GetSlot` function can accept static types. (Contributed "
"by Hai Shi and Petr Viktorin in :issue:`41073`.)"
msgstr ""
#: whatsnew/3.10.rst:1237
msgid ""
"Add a new :c:func:`PySet_CheckExact` function to the C-API to check if an "
"object is an instance of :class:`set` but not an instance of a subtype. "
"(Contributed by Pablo Galindo in :issue:`43277`.)"
msgstr ""
#: whatsnew/3.10.rst:1241
msgid ""
"Added :c:func:`PyErr_SetInterruptEx` which allows passing a signal number to "
"simulate. (Contributed by Antoine Pitrou in :issue:`43356`.)"
msgstr ""
#: whatsnew/3.10.rst:1249
msgid ""
"The ``PY_SSIZE_T_CLEAN`` macro must now be defined to use :c:func:"
"`PyArg_ParseTuple` and :c:func:`Py_BuildValue` formats which use ``#``: "
"``es#``, ``et#``, ``s#``, ``u#``, ``y#``, ``z#``, ``U#`` and ``Z#``. See :"
"ref:`Parsing arguments and building values <arg-parsing>` and the :pep:"
"`353`. (Contributed by Victor Stinner in :issue:`40943`.)"
msgstr ""
#: whatsnew/3.10.rst:1256
msgid ""
"Since :c:func:`Py_REFCNT()` is changed to the inline static function, "
"``Py_REFCNT(obj) = new_refcnt`` must be replaced with ``Py_SET_REFCNT(obj, "
"new_refcnt)``: see :c:func:`Py_SET_REFCNT()` (available since Python 3.9). "
"For backward compatibility, this macro can be used::"
msgstr ""
#: whatsnew/3.10.rst:1265
msgid "(Contributed by Victor Stinner in :issue:`39573`.)"
msgstr ""
#: whatsnew/3.10.rst:1267
msgid ""
"Calling :c:func:`PyDict_GetItem` without :term:`GIL` held had been allowed "
"for historical reason. It is no longer allowed. (Contributed by Victor "
"Stinner in :issue:`40839`.)"
msgstr ""
#: whatsnew/3.10.rst:1271
msgid ""
"``PyUnicode_FromUnicode(NULL, size)`` and "
"``PyUnicode_FromStringAndSize(NULL, size)`` raise ``DeprecationWarning`` "
"now. Use :c:func:`PyUnicode_New` to allocate Unicode object without initial "
"data. (Contributed by Inada Naoki in :issue:`36346`.)"
msgstr ""
#: whatsnew/3.10.rst:1276
msgid ""
"The private ``_PyUnicode_Name_CAPI`` structure of the PyCapsule API "
"``unicodedata.ucnhash_CAPI`` has been moved to the internal C API. "
"(Contributed by Victor Stinner in :issue:`42157`.)"
msgstr ""
#: whatsnew/3.10.rst:1280
msgid ""
":c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:"
"func:`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome` and :c:func:"
"`Py_GetProgramName` functions now return ``NULL`` if called before :c:func:"
"`Py_Initialize` (before Python is initialized). Use the new :ref:`Python "
"Initialization Configuration API <init-config>` to get the :ref:`Python Path "
"Configuration. <init-path-config>`. (Contributed by Victor Stinner in :"
"issue:`42260`.)"
msgstr ""
#: whatsnew/3.10.rst:1288
msgid ""
":c:func:`PyList_SET_ITEM`, :c:func:`PyTuple_SET_ITEM` and :c:func:"
"`PyCell_SET` macros can no longer be used as l-value or r-value. For "
"example, ``x = PyList_SET_ITEM(a, b, c)`` and ``PyList_SET_ITEM(a, b, c) = "
"x`` now fail with a compiler error. It prevents bugs like ``if "
"(PyList_SET_ITEM (a, b, c) < 0) ...`` test. (Contributed by Zackery Spytz "
"and Victor Stinner in :issue:`30459`.)"
msgstr ""
#: whatsnew/3.10.rst:1295
msgid ""
"The non-limited API files ``odictobject.h``, ``parser_interface.h``, "
"``picklebufobject.h``, ``pyarena.h``, ``pyctype.h``, ``pydebug.h``, ``pyfpe."
"h``, and ``pytime.h`` have been moved to the ``Include/cpython`` directory. "
"These files must not be included directly, as they are already included in "
"``Python.h``: :ref:`Include Files <api-includes>`. If they have been "
"included directly, consider including ``Python.h`` instead. (Contributed by "
"Nicholas Sim in :issue:`35134`)"
msgstr ""
#: whatsnew/3.10.rst:1306
msgid ""
"The ``PyUnicode_InternImmortal()`` function is now deprecated and will be "
"removed in Python 3.12: use :c:func:`PyUnicode_InternInPlace` instead. "
"(Contributed by Victor Stinner in :issue:`41692`.)"
msgstr ""
#: whatsnew/3.10.rst:1314
msgid ""
"``PyObject_AsCharBuffer()``, ``PyObject_AsReadBuffer()``, "
"``PyObject_CheckReadBuffer()``, and ``PyObject_AsWriteBuffer()`` are "
"removed. Please migrate to new buffer protocol; :c:func:`PyObject_GetBuffer` "
"and :c:func:`PyBuffer_Release`. (Contributed by Inada Naoki in :issue:"
"`41103`.)"
msgstr ""
#: whatsnew/3.10.rst:1319
msgid ""
"Removed ``Py_UNICODE_str*`` functions manipulating ``Py_UNICODE*`` strings. "
"(Contributed by Inada Naoki in :issue:`41123`.)"
msgstr ""
#: whatsnew/3.10.rst:1322
msgid ""
"``Py_UNICODE_strlen``: use :c:func:`PyUnicode_GetLength` or :c:macro:"
"`PyUnicode_GET_LENGTH`"
msgstr ""
#: whatsnew/3.10.rst:1324
msgid ""
"``Py_UNICODE_strcat``: use :c:func:`PyUnicode_CopyCharacters` or :c:func:"
"`PyUnicode_FromFormat`"
msgstr ""
#: whatsnew/3.10.rst:1326
msgid ""
"``Py_UNICODE_strcpy``, ``Py_UNICODE_strncpy``: use :c:func:"
"`PyUnicode_CopyCharacters` or :c:func:`PyUnicode_Substring`"
msgstr ""
#: whatsnew/3.10.rst:1328
msgid "``Py_UNICODE_strcmp``: use :c:func:`PyUnicode_Compare`"
msgstr ""
#: whatsnew/3.10.rst:1329
msgid "``Py_UNICODE_strncmp``: use :c:func:`PyUnicode_Tailmatch`"
msgstr ""
#: whatsnew/3.10.rst:1330
msgid ""
"``Py_UNICODE_strchr``, ``Py_UNICODE_strrchr``: use :c:func:"
"`PyUnicode_FindChar`"
msgstr ""
#: whatsnew/3.10.rst:1333
msgid ""
"Removed ``PyUnicode_GetMax()``. Please migrate to new (:pep:`393`) APIs. "
"(Contributed by Inada Naoki in :issue:`41103`.)"
msgstr ""
#: whatsnew/3.10.rst:1336
msgid ""
"Removed ``PyLong_FromUnicode()``. Please migrate to :c:func:"
"`PyLong_FromUnicodeObject`. (Contributed by Inada Naoki in :issue:`41103`.)"
msgstr ""
#: whatsnew/3.10.rst:1339
msgid ""
"Removed ``PyUnicode_AsUnicodeCopy()``. Please use :c:func:"
"`PyUnicode_AsUCS4Copy` or :c:func:`PyUnicode_AsWideCharString` (Contributed "
"by Inada Naoki in :issue:`41103`.)"
msgstr ""
#: whatsnew/3.10.rst:1343
msgid ""
"Removed ``_Py_CheckRecursionLimit`` variable: it has been replaced by "
"``ceval.recursion_limit`` of the :c:type:`PyInterpreterState` structure. "
"(Contributed by Victor Stinner in :issue:`41834`.)"
msgstr ""
#: whatsnew/3.10.rst:1347
msgid ""
"Removed undocumented macros ``Py_ALLOW_RECURSION`` and "
"``Py_END_ALLOW_RECURSION`` and the ``recursion_critical`` field of the :c:"
"type:`PyInterpreterState` structure. (Contributed by Serhiy Storchaka in :"
"issue:`41936`.)"
msgstr ""
#: whatsnew/3.10.rst:1352
msgid ""
"Removed the undocumented ``PyOS_InitInterrupts()`` function. Initializing "
"Python already implicitly installs signal handlers: see :c:member:`PyConfig."
"install_signal_handlers`. (Contributed by Victor Stinner in :issue:`41713`.)"
msgstr ""
#: whatsnew/3.10.rst:1357
msgid ""
"Remove the ``PyAST_Validate()`` function. It is no longer possible to build "
"a AST object (``mod_ty`` type) with the public C API. The function was "
"already excluded from the limited C API (:pep:`384`). (Contributed by Victor "
"Stinner in :issue:`43244`.)"
msgstr ""