# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2021, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , 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 \n" "Language-Team: LANGUAGE \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 `." 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 ` " "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 `. " "(Contributed by Joshua Cannon in :issue:`35498`)" msgstr "" #: whatsnew/3.10.rst:756 msgid "" "Added negative indexing support to :attr:`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 `_ 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 `_ 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 ` 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 `_ 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 ` 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 ` to get the :ref:`Python Path " "Configuration. `. (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 `. 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 ""