Python 3.14.0a7

This commit is contained in:
Hugo van Kemenade 2025-04-08 14:20:32 +03:00
parent 0f04f2456a
commit 29af6cee02
117 changed files with 1110 additions and 273 deletions

View file

@ -205,6 +205,6 @@ would typically correspond to a python function.
.. versionadded:: 3.13
.. deprecated:: next
.. deprecated:: 3.14
This function is :term:`soft deprecated`.

View file

@ -2632,7 +2632,7 @@ These are the fundamental ctypes data types:
Represents the C :c:expr:`PyObject *` datatype. Calling this without an
argument creates a ``NULL`` :c:expr:`PyObject *` pointer.
.. versionchanged:: next
.. versionchanged:: 3.14
:class:`!py_object` is now a :term:`generic type`.
The :mod:`!ctypes.wintypes` module provides quite some other Windows specific
@ -2846,7 +2846,7 @@ fields, or any other data types containing pointer type fields.
:class:`!CField` objects are created via :attr:`~Structure._fields_`;
do not instantiate the class directly.
.. versionadded:: next
.. versionadded:: 3.14
Previously, descriptors only had ``offset`` and ``size`` attributes
and a readable string representation; the :class:`!CField` class was not

View file

@ -97,7 +97,7 @@ functions: :func:`fnmatch`, :func:`fnmatchcase`, :func:`.filter`.
It is the same as ``[n for n in names if not fnmatch(n, pat)]``,
but implemented more efficiently.
.. versionadded:: next
.. versionadded:: 3.14
.. function:: translate(pat)

View file

@ -109,7 +109,7 @@
A :exc:`ValueError` will be raised if the sort has been started by
:meth:`~.static_order` or :meth:`~.get_ready`.
.. versionchanged:: next
.. versionchanged:: 3.14
``prepare()`` can now be called more than once as long as the sort has
not started. Previously this raised :exc:`ValueError`.

View file

@ -78,7 +78,7 @@ handler. Code to create and run the server looks like this::
By default, it is set to ``["http/1.1"]``, meaning the server supports HTTP/1.1.
.. versionadded:: next
.. versionadded:: 3.14
.. class:: ThreadingHTTPSServer(server_address, RequestHandlerClass,\
bind_and_activate=True, *, certfile, keyfile=None,\
@ -88,7 +88,7 @@ handler. Code to create and run the server looks like this::
requests by inheriting from :class:`~socketserver.ThreadingMixIn`. This is
analogous to :class:`ThreadingHTTPServer` only using :class:`HTTPSServer`.
.. versionadded:: next
.. versionadded:: 3.14
The :class:`HTTPServer`, :class:`ThreadingHTTPServer`, :class:`HTTPSServer` and
@ -588,7 +588,7 @@ The following options are accepted:
python -m http.server --tls-cert fullchain.pem
.. versionadded:: next
.. versionadded:: 3.14
.. option:: --tls-key
@ -596,7 +596,7 @@ The following options are accepted:
This option requires ``--tls-cert`` to be specified.
.. versionadded:: next
.. versionadded:: 3.14
.. option:: --tls-password-file
@ -609,7 +609,7 @@ The following options are accepted:
This option requires `--tls-cert`` to be specified.
.. versionadded:: next
.. versionadded:: 3.14
.. _http.server-security:

View file

@ -1425,7 +1425,7 @@ object -- see :ref:`multiprocessing-managers`.
Return a boolean indicating whether this object is locked right now.
.. versionadded:: next
.. versionadded:: 3.14
.. class:: RLock()
@ -1492,7 +1492,7 @@ object -- see :ref:`multiprocessing-managers`.
Return a boolean indicating whether this object is locked right now.
.. versionadded:: next
.. versionadded:: 3.14
.. class:: Semaphore([value])

View file

@ -1854,7 +1854,7 @@ always available. Unless explicitly noted otherwise, all variables are read-only
local and remote interpreters must be the same exact version.
.. availability:: Unix, Windows.
.. versionadded:: next
.. versionadded:: 3.14
.. function:: _enablelegacywindowsfsencoding()

View file

@ -1468,7 +1468,7 @@ The :mod:`test.support.os_helper` module provides support for os tests.
Temporarily unset one or more environment variables.
.. versionchanged:: next
.. versionchanged:: 3.14
More than one environment variable can be unset.

View file

@ -713,7 +713,7 @@ call release as many times the lock has been acquired can lead to deadlock.
Return a boolean indicating whether this object is locked right now.
.. versionadded:: next
.. versionadded:: 3.14
.. _condition-objects:
@ -812,7 +812,7 @@ item to the buffer only needs to wake up one consumer thread.
Return a boolean indicating whether this object is locked right now.
.. versionadded:: next
.. versionadded:: 3.14
.. method:: wait(timeout=None)

View file

@ -385,7 +385,7 @@ The following options are accepted:
Generate *num* fresh UUIDs.
.. versionadded:: next
.. versionadded:: 3.14
.. _uuid-example:

View file

@ -232,7 +232,7 @@ Additional information on exceptions can be found in section :ref:`exceptions`,
and information on using the :keyword:`raise` statement to generate exceptions
may be found in section :ref:`raise`.
.. versionchanged:: next
.. versionchanged:: 3.14
Support for optionally dropping grouping parentheses when using multiple exception types. See :pep:`758`.
.. _except:
@ -463,7 +463,7 @@ always be the last one executed. The following function returns 'finally'.
Prior to Python 3.8, a :keyword:`continue` statement was illegal in the
:keyword:`!finally` clause due to a problem with the implementation.
.. versionchanged:: next
.. versionchanged:: 3.14
The compiler emits a :exc:`SyntaxWarning` when a :keyword:`return`,
:keyword:`break` or :keyword:`continue` appears in a :keyword:`!finally`
block (see :pep:`765`).

View file

@ -612,7 +612,7 @@ Miscellaneous options
if is not supported on the current system. See also
:envvar:`PYTHON_DISABLE_REMOTE_DEBUG` and :pep:`768`.
.. versionadded:: next
.. versionadded:: 3.14
* :samp:`-X cpu_count={n}` overrides :func:`os.cpu_count`,
:func:`os.process_cpu_count`, and :func:`multiprocessing.cpu_count`.
@ -1180,7 +1180,7 @@ conflict.
See also the :option:`-X disable_remote_debug` command-line option.
.. versionadded:: next
.. versionadded:: 3.14
.. envvar:: PYTHON_CPU_COUNT

View file

@ -669,7 +669,7 @@ also be used to improve performance.
and the functionality to receive code to be executed.
.. versionadded:: next
.. versionadded:: 3.14
.. _debug-build:

View file

@ -21,10 +21,10 @@
#define PY_MINOR_VERSION 14
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 6
#define PY_RELEASE_SERIAL 7
/* Version as a string */
#define PY_VERSION "3.14.0a6+"
#define PY_VERSION "3.14.0a7"
/*--end constants--*/

View file

@ -1,4 +1,4 @@
# Autogenerated by Sphinx on Wed Mar 19 18:40:00 2025
# Autogenerated by Sphinx on Tue Apr 8 14:20:44 2025
# as part of the release process.
topics = {
@ -1784,6 +1784,10 @@ Additional information on exceptions can be found in section
Exceptions, and information on using the "raise" statement to generate
exceptions may be found in section The raise statement.
Changed in version 3.14.0a6 (unreleased): Support for optionally
dropping grouping parentheses when using multiple exception types. See
**PEP 758**.
"except" clause
---------------
@ -1797,10 +1801,12 @@ expression-less "except" clause, if present, must be last; it matches
any exception.
For an "except" clause with an expression, the expression must
evaluate to an exception type or a tuple of exception types. The
raised exception matches an "except" clause whose expression evaluates
to the class or a *non-virtual base class* of the exception object, or
to a tuple that contains such a class.
evaluate to an exception type or a tuple of exception types.
Parentheses can be dropped if multiple exception types are provided
and the "as" clause is not used. The raised exception matches an
"except" clause whose expression evaluates to the class or a *non-
virtual base class* of the exception object, or to a tuple that
contains such a class.
If no "except" clause matches the exception, the search for an
exception handler continues in the surrounding code and on the
@ -2697,7 +2703,7 @@ section The standard type hierarchy):
parameter_list_no_posonly: defparameter ("," defparameter)* ["," [parameter_list_starargs]]
| parameter_list_starargs
parameter_list_starargs: "*" [star_parameter] ("," defparameter)* ["," [parameter_star_kwargs]]
"*" ("," defparameter)+ ["," [parameter_star_kwargs]]
| "*" ("," defparameter)+ ["," [parameter_star_kwargs]]
| parameter_star_kwargs
parameter_star_kwargs: "**" parameter [","]
parameter: identifier [":" expression]
@ -5279,11 +5285,11 @@ The general form of a *standard format specifier* is:
align: "<" | ">" | "=" | "^"
sign: "+" | "-" | " "
width_and_precision: [width_with_grouping][precision_with_grouping]
width_with_grouping: [width][grouping_option]
precision_with_grouping: "." [precision]grouping_option
width_with_grouping: [width][grouping]
precision_with_grouping: "." [precision][grouping]
width: digit+
grouping_option: "_" | ","
precision: digit+
grouping: "," | "_"
type: "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g"
| "G" | "n" | "o" | "s" | "x" | "X" | "%"
@ -5327,13 +5333,13 @@ the following:
+-----------+------------------------------------------------------------+
| Option | Meaning |
|===========|============================================================|
| "'+'" | indicates that a sign should be used for both positive as |
| "'+'" | Indicates that a sign should be used for both positive as |
| | well as negative numbers. |
+-----------+------------------------------------------------------------+
| "'-'" | indicates that a sign should be used only for negative |
| "'-'" | Indicates that a sign should be used only for negative |
| | numbers (this is the default behavior). |
+-----------+------------------------------------------------------------+
| space | indicates that a leading space should be used on positive |
| space | Indicates that a leading space should be used on positive |
| | numbers, and a minus sign on negative numbers. |
+-----------+------------------------------------------------------------+
@ -5356,26 +5362,10 @@ point character appears in the result of these conversions only if a
digit follows it. In addition, for "'g'" and "'G'" conversions,
trailing zeros are not removed from the result.
The "','" option signals the use of a comma for a thousands separator
for floating-point presentation types and for integer presentation
type "'d'". For other presentation types, this option is an error. For
a locale aware separator, use the "'n'" integer presentation type
instead.
Changed in version 3.1: Added the "','" option (see also **PEP 378**).
The "'_'" option signals the use of an underscore for a thousands
separator for floating-point presentation types and for integer
presentation type "'d'". For integer presentation types "'b'", "'o'",
"'x'", and "'X'", underscores will be inserted every 4 digits. For
other presentation types, specifying this option is an error.
Changed in version 3.6: Added the "'_'" option (see also **PEP 515**).
*width* is a decimal integer defining the minimum total field width,
including any prefixes, separators, and other formatting characters.
If not specified, then the field width will be determined by the
content.
The *width* is a decimal integer defining the minimum total field
width, including any prefixes, separators, and other formatting
characters. If not specified, then the field width will be determined
by the content.
When no explicit alignment is given, preceding the *width* field by a
zero ("'0'") character enables sign-aware zero-padding for numeric
@ -5393,11 +5383,33 @@ maximum field size - in other words, how many characters will be used
from the field content. The *precision* is not allowed for integer
presentation types.
The "'_'" or "','" option after *precision* means the use of an
underscore or a comma for a thousands separator of the fractional part
for floating-point presentation types.
The *grouping* option after *width* and *precision* fields specifies a
digit group separator for the integral and fractional parts of a
number respectively. It can be one of the following:
Changed in version 3.14: Support thousands separators for the
+-----------+------------------------------------------------------------+
| Option | Meaning |
|===========|============================================================|
| "','" | Inserts a comma every 3 digits for integer presentation |
| | type "'d'" and floating-point presentation types, |
| | excluding "'n'". For other presentation types, this option |
| | is not supported. |
+-----------+------------------------------------------------------------+
| "'_'" | Inserts an underscore every 3 digits for integer |
| | presentation type "'d'" and floating-point presentation |
| | types, excluding "'n'". For integer presentation types |
| | "'b'", "'o'", "'x'", and "'X'", underscores are inserted |
| | every 4 digits. For other presentation types, this option |
| | is not supported. |
+-----------+------------------------------------------------------------+
For a locale aware separator, use the "'n'" presentation type instead.
Changed in version 3.1: Added the "','" option (see also **PEP 378**).
Changed in version 3.6: Added the "'_'" option (see also **PEP 515**).
Changed in version 3.14: Support the *grouping* option for the
fractional part.
Finally, the *type* determines how the data should be presented.
@ -5436,8 +5448,8 @@ The available integer presentation types are:
| | as well. |
+-----------+------------------------------------------------------------+
| "'n'" | Number. This is the same as "'d'", except that it uses the |
| | current locale setting to insert the appropriate number |
| | separator characters. |
| | current locale setting to insert the appropriate digit |
| | group separators. |
+-----------+------------------------------------------------------------+
| None | The same as "'d'". |
+-----------+------------------------------------------------------------+
@ -5508,8 +5520,8 @@ The available presentation types for "float" and "Decimal" values are:
| | and NaN are uppercased, too. |
+-----------+------------------------------------------------------------+
| "'n'" | Number. This is the same as "'g'", except that it uses the |
| | current locale setting to insert the appropriate number |
| | separator characters. |
| | current locale setting to insert the appropriate digit |
| | group separators for the integral part of a number. |
+-----------+------------------------------------------------------------+
| "'%'" | Percentage. Multiplies the number by 100 and displays in |
| | fixed ("'f'") format, followed by a percent sign. |
@ -5632,18 +5644,22 @@ Replacing "%x" and "%o" and converting the value to different bases:
>>> "int: {0:d}; hex: {0:#x}; oct: {0:#o}; bin: {0:#b}".format(42)
'int: 42; hex: 0x2a; oct: 0o52; bin: 0b101010'
Using the comma or the underscore as a thousands separator:
Using the comma or the underscore as a digit group separator:
>>> '{:,}'.format(1234567890)
'1,234,567,890'
>>> '{:_}'.format(1234567890)
'1_234_567_890'
>>> '{:_b}'.format(1234567890)
'100_1001_1001_0110_0000_0010_1101_0010'
>>> '{:_x}'.format(1234567890)
'4996_02d2'
>>> '{:_}'.format(123456789.123456789)
'123_456_789.12345679'
>>> '{:._}'.format(123456789.123456789)
'123456789.123_456_79'
>>> '{:_._}'.format(123456789.123456789)
'123_456_789.123_456_79'
>>> '{:.,}'.format(123456789.123456789)
'123456789.123,456,79'
>>> '{:,._}'.format(123456789.123456789)
'123,456,789.123_456_79'
Expressing a percentage:
@ -5703,7 +5719,7 @@ section The standard type hierarchy):
parameter_list_no_posonly: defparameter ("," defparameter)* ["," [parameter_list_starargs]]
| parameter_list_starargs
parameter_list_starargs: "*" [star_parameter] ("," defparameter)* ["," [parameter_star_kwargs]]
"*" ("," defparameter)+ ["," [parameter_star_kwargs]]
| "*" ("," defparameter)+ ["," [parameter_star_kwargs]]
| parameter_star_kwargs
parameter_star_kwargs: "**" parameter [","]
parameter: identifier [":" expression]
@ -10084,6 +10100,10 @@ Additional information on exceptions can be found in section
Exceptions, and information on using the "raise" statement to generate
exceptions may be found in section The raise statement.
Changed in version 3.14.0a6 (unreleased): Support for optionally
dropping grouping parentheses when using multiple exception types. See
**PEP 758**.
"except" clause
===============
@ -10097,10 +10117,12 @@ expression-less "except" clause, if present, must be last; it matches
any exception.
For an "except" clause with an expression, the expression must
evaluate to an exception type or a tuple of exception types. The
raised exception matches an "except" clause whose expression evaluates
to the class or a *non-virtual base class* of the exception object, or
to a tuple that contains such a class.
evaluate to an exception type or a tuple of exception types.
Parentheses can be dropped if multiple exception types are provided
and the "as" clause is not used. The raised exception matches an
"except" clause whose expression evaluates to the class or a *non-
virtual base class* of the exception object, or to a tuple that
contains such a class.
If no "except" clause matches the exception, the search for an
exception handler continues in the surrounding code and on the
@ -11782,7 +11804,7 @@ class dict(iterable, **kwargs)
to be a mutable object such as an empty list. To get distinct
values, use a dict comprehension instead.
get(key, default=None)
get(key, default=None, /)
Return the value for *key* if *key* is in the dictionary, else
*default*. If *default* is not given, it defaults to "None", so
@ -11823,7 +11845,7 @@ class dict(iterable, **kwargs)
Added in version 3.8.
setdefault(key, default=None)
setdefault(key, default=None, /)
If *key* is in the dictionary, return its value. If not, insert
*key* with a value of *default* and return *default*. *default*

1010
Misc/NEWS.d/3.14.0a7.rst Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,2 +0,0 @@
Fix potential ``KeyError`` when handling object sections during JIT building
process.

View file

@ -1,2 +0,0 @@
Update the vendored HACL* library to fix build issues with older clang
compilers.

View file

@ -1,2 +0,0 @@
Add optimizing flag ``WITH_COMPUTED_GOTOS`` to Windows builds for when
using a compiler that supports it (currently clang-cl). Patch by Chris Eibl.

View file

@ -1,2 +0,0 @@
clang-cl on Windows needs option ``/EHa`` to support SEH (structured
exception handling) correctly. Fix by Chris Eibl.

View file

@ -1 +0,0 @@
Fix mimalloc library builds for 32-bit ARM targets.

View file

@ -1,2 +0,0 @@
The DTrace build now properly passes the ``CC`` and ``CFLAGS`` variables
to the ``dtrace`` command when utilizing SystemTap on Linux.

View file

@ -1,2 +0,0 @@
The PyTupleObject now caches the computed hash value in the new field
ob_hash.

View file

@ -1 +0,0 @@
Update PyUnstable_GC_VisitObjects to traverse perm gen.

View file

@ -1 +0,0 @@
Improve performance of :class:`range` by using a freelist.

View file

@ -1 +0,0 @@
Improve performance of builtin methods by using a freelist.

View file

@ -1,2 +0,0 @@
Disallow ``__classdict__`` as the name of a type parameter. Using this
name would previously crash the interpreter in some circumstances.

View file

@ -1 +0,0 @@
Fix return codes inside :exc:`SystemExit` not getting returned by the REPL.

View file

@ -1 +0,0 @@
Implement PEP 765: Disallow return/break/continue that exit a finally block.

View file

@ -1,2 +0,0 @@
Add support for built-in implementation of HMAC (:rfc:`2104`) based on
HACL*. Patch by Bénédikt Tran.

View file

@ -1 +0,0 @@
Fix an issue with thread identifiers being sign-extended on some platforms.

View file

@ -1 +0,0 @@
Fixing multiprocessing Resource Tracker process leaking, usually observed when running Python as PID 1.

View file

@ -1,4 +0,0 @@
Optimize ``LOAD_FAST`` and its superinstruction form to reduce reference
counting overhead. These instructions are replaced with faster variants that
load borrowed references onto the operand stack when we can prove that the
reference in the frame outlives the reference loaded onto the stack.

View file

@ -1 +0,0 @@
Do not crash on negative ``column`` and ``end_column`` in :mod:`ast` locations.

View file

@ -1,3 +0,0 @@
Annotations at the class and module level that are conditionally defined are
now only reflected in ``__annotations__`` if the block they are in is
executed. Patch by Jelle Zijlstra.

View file

@ -1,2 +0,0 @@
Fix error message when formatting bytes using the ``'i'`` flag.
Patch by Maxim Ageev.

View file

@ -1 +0,0 @@
Optimize the AArch64 code generation for the JIT. Patch by Diego Russo

View file

@ -1 +0,0 @@
Optimize the AArch64 code generation for the JIT. Patch by Diego Russo

View file

@ -1,4 +0,0 @@
Add fast path for small and medium-size integers in
:c:func:`PyLong_FromInt32`, :c:func:`PyLong_FromUInt32`,
:c:func:`PyLong_FromInt64` and
:c:func:`PyLong_FromUInt64`. Patch by Chris Eibl.

View file

@ -1 +0,0 @@
Optimize comparison of two constants in JIT builds

View file

@ -1 +0,0 @@
Fix signature of ``anext_awaitable.close`` objects. Patch by Bénédikt Tran.

View file

@ -1 +0,0 @@
Fix :func:`anext` failing on sync :meth:`~object.__anext__` raising an exception.

View file

@ -1 +0,0 @@
Fix missing NULL check in ``_PyMem_FreeDelayed`` in :term:`free-threaded <free threading>` build.

View file

@ -1 +0,0 @@
Compiler emits optimized code for builtin any/all/tuple calls over a generator expression.

View file

@ -1,2 +0,0 @@
Improve the experimental JIT's ability to remove type checks for certain
subscripting operations.

View file

@ -1,3 +0,0 @@
Usage of a name in a function-scope annotation no longer triggers creation
of a cell for that variable. This fixes a regression in earlier alphas of
Python 3.14.

View file

@ -1,2 +0,0 @@
Add support for optionally dropping grouping parentheses when using multiple
exception types as per :pep:`758`. Patch by Pablo Galindo

View file

@ -1 +0,0 @@
Allow JIT to omit str guard in truthiness test when str type is known.

View file

@ -1,4 +0,0 @@
Implement :pep:`768` (Safe external debugger interface for CPython). Add a
new :func:`sys.remote_exec` function to the :mod:`sys` module. This function
schedules the execution of a Python file in a separate process. Patch by
Pablo Galindo, Matt Wozniski and Ivona Stojanovic.

View file

@ -1,2 +0,0 @@
Fix a crash when using an unbound method :term:`descriptor` object in a
function where a bound method descriptor was used.

View file

@ -1 +0,0 @@
Fix crash when calling :meth:`!list.append` as an unbound method.

View file

@ -1,2 +0,0 @@
Allow the JIT to remove an extra ``_TO_BOOL_BOOL`` instruction after
``_CONTAINS_OP_SET`` by setting the return type to bool.

View file

@ -1,2 +0,0 @@
Mention :class:`asyncio.Future` and :class:`asyncio.Task` in generic classes
list.

View file

@ -1 +0,0 @@
Added aliases for Thai Language using Microsoft Code Pages.

View file

@ -1 +0,0 @@
Add support for AI_NUMERICSERV in getaddrinfo emulation

View file

@ -1,2 +0,0 @@
Add :func:`fnmatch.filterfalse` for excluding names matching a pattern.
Patch by Bénédikt Tran.

View file

@ -1 +0,0 @@
Add the optional backend of ``sys.monitoring`` to :mod:`bdb` and use it for :mod:`pdb`.

View file

@ -1,3 +0,0 @@
:mod:`xml.etree.ElementTree`: Fix a crash in :meth:`Element.remove
<xml.etree.ElementTree.Element.remove>` when the element is
concurrently mutated. Patch by Bénédikt Tran.

View file

@ -1,2 +0,0 @@
Deprecate :meth:`!pathlib.PurePath.as_uri`; use :meth:`pathlib.Path.as_uri`
instead.

View file

@ -1,4 +0,0 @@
When headers are added to :class:`email.message.Message` objects, either through
:meth:`email.message.Message.__setitem__` or :meth:`email.message.Message.add_header`,
the field name is now validated according to :rfc:`RFC 5322, Section 2.2 <5322#section-2.2>`
and a :exc:`ValueError` is raised if the field name contains any invalid characters.

View file

@ -1,5 +0,0 @@
:mod:`xml.etree.ElementTree`: Fix a crash in :meth:`Element.find <xml.etree.ElementTree.Element.find>`,
:meth:`Element.findtext <xml.etree.ElementTree.Element.findtext>` and
:meth:`Element.findall <xml.etree.ElementTree.Element.findall>` when the tag
to find implements an :meth:`~object.__eq__` method mutating the element
being queried. Patch by Bénédikt Tran.

View file

@ -1,2 +0,0 @@
Fix ``test.test_sysconfig.test_sysconfigdata_json`` when running outside
the build directory (eg. after installing).

View file

@ -1,3 +0,0 @@
The class of :class:`~ctypes.Structure`/:class:`~ctypes.Union` field
descriptors is now available as :class:`~ctypes.CField`, and has new
attributes to aid debugging and introspection.

View file

@ -1,3 +0,0 @@
Fix reading duplicated entries in :mod:`zipfile` by name.
Reading duplicated entries (except the last one) by ``ZipInfo``
now emits a warning instead of raising an exception.

View file

@ -1,3 +0,0 @@
:class:`annotationlib.ForwardRef` objects no longer cache their value when
they are successfully evaluated. Successive calls to
:meth:`annotationlib.ForwardRef.evaluate` may return different values.

View file

@ -1,3 +0,0 @@
The implementations of equality and hashing for :class:`annotationlib.ForwardRef`
now use all attributes on the object. Two :class:`!ForwardRef` objects
are equal only if all attributes are equal.

View file

@ -1,5 +0,0 @@
The :mod:`http.server` module now includes built-in support for HTTPS
servers exposed by :class:`http.server.HTTPSServer`. This functionality
is exposed by the command-line interface (``python -m http.server``) through
the ``--tls-cert``, ``--tls-key`` and ``--tls-password-file`` options.
Patch by Semyon Moroz.

View file

@ -1 +0,0 @@
Fix :func:`ast.unparse` when :class:`ast.Interactive` contains multiple statements.

View file

@ -1,2 +0,0 @@
Improve import time of :mod:`locale` using lazy import ``re``. Patch by
Semyon Moroz.

View file

@ -1,2 +0,0 @@
``$_asynctask`` is added as a :mod:`pdb` convenience variable to
access the current asyncio task if applicable.

View file

@ -1 +0,0 @@
Fix :mod:`readline` in :term:`free-threaded <free threading>` build.

View file

@ -1 +0,0 @@
Allow to generate multiple UUIDs at once via :option:`python -m uuid --count <uuid --count>`.

View file

@ -1,3 +0,0 @@
Allow :meth:`graphlib.TopologicalSorter.prepare` to be called more than once
as long as sorting has not started.
Patch by Daniel Pope.

View file

@ -1,2 +0,0 @@
When creating a :mod:`datetime` object with an out of range date a more informative
error is raised.

View file

@ -1 +0,0 @@
Fix incorrect argument passing in :func:`warnings.warn_explicit`.

View file

@ -1,2 +0,0 @@
:func:`platform.libc_ver` can now detect and report the version of ``musl``
on Alpine Linux.

View file

@ -1 +0,0 @@
Fix sendfile fallback implementation to drain data after writing to transport in :mod:`asyncio`.

View file

@ -1 +0,0 @@
Register ``cseuckr`` as an encoding alias for ``euc_kr``.

View file

@ -1 +0,0 @@
Disable ``CALL`` event in :mod:`bdb` in ``monitoring`` backend when we don't need any new events on the code object to get a better performance.

View file

@ -1,3 +0,0 @@
Fix issue where :func:`urllib.request.url2pathname` raised :exc:`OSError`
when given a Windows URI containing a colon character not following a drive
letter, such as before an NTFS alternate data stream.

View file

@ -1,3 +0,0 @@
Deprecate the :mod:`!nturl2path` module. Call
:func:`urllib.request.url2pathname` and :func:`~urllib.request.pathname2url`
instead.

View file

@ -1 +0,0 @@
Fix :exc:`ResourceWarning` when constructing a :class:`gzip.GzipFile` in write mode with a broken file object.

View file

@ -1 +0,0 @@
10-20% performance improvement of :func:`random.randint`.

View file

@ -1 +0,0 @@
Fix a resource leak when constructing a :class:`gzip.GzipFile` with a filename fails, for example when passing an invalid ``compresslevel``.

View file

@ -1 +0,0 @@
Support frozen modules for :func:`linecache.getline`.

View file

@ -1 +0,0 @@
:mod:`socket`: Fix code parsing AF_BLUETOOTH socket addresses.

View file

@ -1,5 +0,0 @@
Improved performance of :func:`textwrap.dedent` by an average of ~2.4x,
(with improvements of up to 4x for large inputs),
and fixed a bug where blank lines with whitespace characters other than space
or horizontal tab were not normalised to the newline.
Patch by Adam Turner, Marius Juston, and Pieter Eendebak.

View file

@ -1,2 +0,0 @@
Improved performance of :func:`textwrap.dedent` by an average of ~1.3x.
Patch by Adam Turner.

View file

@ -1,2 +0,0 @@
Improve the import time of the :mod:`ast` module by extracting the
:func:`~ast.unparse` function to a helper module.

View file

@ -1,2 +0,0 @@
Fix several thread-safety issues in :mod:`ctypes` on the :term:`free
threaded <free threading>` build.

View file

@ -1,5 +0,0 @@
Add :meth:`threading.RLock.locked`,
:meth:`multiprocessing.Lock.locked`,
:meth:`multiprocessing.RLock.locked`,
and allow :meth:`multiprocessing.managers.SyncManager.Lock` and
:meth:`multiprocessing.managers.SyncManager.RLock` to proxy ``locked()`` call.

View file

@ -1,3 +0,0 @@
:mod:`xml.etree.ElementTree`: update the error message when an element to
remove via :meth:`Element.remove <xml.etree.ElementTree.Element.remove>` is
not found. Patch by Bénédikt Tran.

View file

@ -1,2 +0,0 @@
Fix crash when deallocating :class:`contextvars.ContextVar` with weird
unahashable string names.

View file

@ -1 +0,0 @@
Display thread name in :mod:`faulthandler`. Patch by Victor Stinner.

View file

@ -1,2 +0,0 @@
Improve import times by up to 27x for the :mod:`string` module.
Patch by Adam Turner.

View file

@ -1,2 +0,0 @@
Fix possible use of :mod:`socket` address structures with uninitialized
members. Now all structure members are initialized with zeroes by default.

View file

@ -1,5 +0,0 @@
Add the :attr:`zipfile.ZipFile.data_offset` attribute, which stores the
offset to the beginning of ZIP data in a file when available. When the
:class:`zipfile.ZipFile` is opened in either mode ``'w'`` or ``'x'`` and the
underlying file does not support ``tell()``, the value will be ``None``
instead.

View file

@ -1,2 +0,0 @@
The :class:`ctypes.py_object` type now supports subscription, making it a
:term:`generic type`.

View file

@ -1 +0,0 @@
Do not shadow user arguments in generated :meth:`!__new__` by decorator :class:`warnings.deprecated`. Patch by Xuehai Pan.

View file

@ -1,2 +0,0 @@
Introduce new ``_PYTHON_SUBPROCESS_USE_POSIX_SPAWN`` environment variable knob in
:mod:`subprocess` to control the use of :func:`os.posix_spawn`.

Some files were not shown because too many files have changed in this diff Show more