Python 3.15.0a8

This commit is contained in:
Hugo van Kemenade
2026-04-07 14:20:51 +03:00
parent cf59bf7647
commit 55ea59e7dc
172 changed files with 1755 additions and 482 deletions
+14 -14
View File
@@ -45,7 +45,7 @@ Dictionary objects
The first argument can be a :class:`dict`, a :class:`frozendict`, or a
mapping.
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -76,7 +76,7 @@ Dictionary objects
The first argument can be a :class:`dict` or a :class:`frozendict`.
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -90,7 +90,7 @@ Dictionary objects
.. versionadded:: 3.13
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -142,7 +142,7 @@ Dictionary objects
.. versionadded:: 3.13
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
See also the :c:func:`PyObject_GetItem` function.
@@ -166,7 +166,7 @@ Dictionary objects
Calling this API without an :term:`attached thread state` had been allowed for historical
reason. It is no longer allowed.
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -177,7 +177,7 @@ Dictionary objects
occurred. Return ``NULL`` **without** an exception set if the key
wasn't present.
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -195,7 +195,7 @@ Dictionary objects
Prefer using the :c:func:`PyDict_GetItemWithError` function with your own
:c:func:`PyUnicode_FromString` *key* instead.
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -207,7 +207,7 @@ Dictionary objects
.. versionadded:: 3.13
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -275,7 +275,7 @@ Dictionary objects
The first argument can be a :class:`dict` or a :class:`frozendict`.
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -285,7 +285,7 @@ Dictionary objects
The first argument can be a :class:`dict` or a :class:`frozendict`.
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -296,7 +296,7 @@ Dictionary objects
The first argument can be a :class:`dict` or a :class:`frozendict`.
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -309,7 +309,7 @@ Dictionary objects
The argument can be a :class:`dict` or a :class:`frozendict`.
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -317,7 +317,7 @@ Dictionary objects
Similar to :c:func:`PyDict_Size`, but without error checking.
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
@@ -391,7 +391,7 @@ Dictionary objects
:term:`strong reference <strong reference>` (for example, using
:c:func:`Py_NewRef`).
.. versionchanged:: next
.. versionchanged:: 3.15
Also accept :class:`frozendict`.
.. c:function:: int PyDict_Merge(PyObject *a, PyObject *b, int override)
+8 -8
View File
@@ -536,7 +536,7 @@ have been standardized in C11 (or previous standards).
Use the standard ``alignas`` specifier rather than this macro.
.. deprecated:: next
.. deprecated:: 3.15
The macro is :term:`soft deprecated`.
.. c:macro:: PY_FORMAT_SIZE_T
@@ -544,7 +544,7 @@ have been standardized in C11 (or previous standards).
The :c:func:`printf` formatting modifier for :c:type:`size_t`.
Use ``"z"`` directly instead.
.. deprecated:: next
.. deprecated:: 3.15
The macro is :term:`soft deprecated`.
.. c:macro:: Py_LL(number)
@@ -558,7 +558,7 @@ have been standardized in C11 (or previous standards).
Consider using the C99 standard suffixes ``LL`` and ``LLU`` directly.
.. deprecated:: next
.. deprecated:: 3.15
The macro is :term:`soft deprecated`.
.. c:macro:: PY_LONG_LONG
@@ -572,7 +572,7 @@ have been standardized in C11 (or previous standards).
respectively.
Historically, these types needed compiler-specific extensions.
.. deprecated:: next
.. deprecated:: 3.15
These macros are :term:`soft deprecated`.
.. c:macro:: PY_LLONG_MIN
@@ -587,7 +587,7 @@ have been standardized in C11 (or previous standards).
The required header, ``<limits.h>``,
:ref:`is included <capi-system-includes>` in ``Python.h``.
.. deprecated:: next
.. deprecated:: 3.15
These macros are :term:`soft deprecated`.
.. c:macro:: Py_MEMCPY(dest, src, n)
@@ -606,7 +606,7 @@ have been standardized in C11 (or previous standards).
The required header for the latter, ``<limits.h>``,
:ref:`is included <capi-system-includes>` in ``Python.h``.
.. deprecated:: next
.. deprecated:: 3.15
The macro is :term:`soft deprecated`.
.. c:macro:: Py_UNICODE_WIDE
@@ -614,7 +614,7 @@ have been standardized in C11 (or previous standards).
Defined if ``wchar_t`` can hold a Unicode character (UCS-4).
Use ``sizeof(wchar_t) >= 4`` instead
.. deprecated:: next
.. deprecated:: 3.15
The macro is :term:`soft deprecated`.
.. c:macro:: Py_VA_COPY
@@ -627,7 +627,7 @@ have been standardized in C11 (or previous standards).
.. versionchanged:: 3.6
This is now an alias to ``va_copy``.
.. deprecated:: next
.. deprecated:: 3.15
The macro is :term:`soft deprecated`.
+1 -1
View File
@@ -96,7 +96,7 @@ Contents of the Limited API are :ref:`listed below <limited-api-list>`.
.. seealso:: :pep:`803`
.. versionadded:: next
.. versionadded:: 3.15
.. _stable-abi:
+1 -1
View File
@@ -77,7 +77,7 @@ Notes:
as :c:expr:`_Float16` type, if the compiler supports the Annex H
of the C23 standard.
.. versionadded:: next
.. versionadded:: 3.15
(4)
Complex types (``F`` and ``D``) are available unconditionally,
+12 -12
View File
@@ -142,7 +142,7 @@ POST request.
standard Base64 alphabet, and return the encoded :class:`bytes`. The result
can still contain ``=`` if *padded* is true (default).
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *padded* parameter.
@@ -154,7 +154,7 @@ POST request.
``/`` in the standard Base64 alphabet, and return the decoded
:class:`bytes`.
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *padded* parameter.
Padding of input is no longer required by default.
@@ -175,7 +175,7 @@ POST request.
after at most every *wrapcol* characters.
If *wrapcol* is zero (default), do not add any newlines.
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *padded* and *wrapcol* parameters.
@@ -209,7 +209,7 @@ POST request.
incorrectly padded or if there are non-alphabet characters present in the
input.
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *ignorechars* and *padded* parameters.
@@ -220,7 +220,7 @@ POST request.
.. versionadded:: 3.10
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *padded* and *wrapcol* parameters.
@@ -236,7 +236,7 @@ POST request.
.. versionadded:: 3.10
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *ignorechars* and *padded* parameters.
@@ -249,7 +249,7 @@ POST request.
after at most every *wrapcol* characters.
If *wrapcol* is zero (default), do not add any newlines.
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *wrapcol* parameter.
@@ -269,7 +269,7 @@ POST request.
incorrectly padded or if there are non-alphabet characters present in the
input.
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *ignorechars* parameter.
@@ -351,7 +351,7 @@ Refer to the documentation of the individual functions for more information.
.. versionadded:: 3.4
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *wrapcol* parameter.
@@ -366,7 +366,7 @@ Refer to the documentation of the individual functions for more information.
.. versionadded:: 3.4
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *ignorechars* parameter.
@@ -388,7 +388,7 @@ Refer to the documentation of the individual functions for more information.
.. versionchanged:: 3.15
The *pad* parameter was added.
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *wrapcol* parameter.
@@ -403,7 +403,7 @@ Refer to the documentation of the individual functions for more information.
.. versionadded:: 3.13
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *ignorechars* parameter.
+13 -13
View File
@@ -233,7 +233,7 @@ The :mod:`!binascii` module defines the following functions:
Invalid base32 data will raise :exc:`binascii.Error`.
.. versionadded:: next
.. versionadded:: 3.15
.. function:: b2a_base32(data, /, *, padded=True, alphabet=BASE32_ALPHABET, wrapcol=0)
@@ -251,7 +251,7 @@ The :mod:`!binascii` module defines the following functions:
after at most every *wrapcol* characters.
If *wrapcol* is zero (default), do not insert any newlines.
.. versionadded:: next
.. versionadded:: 3.15
.. function:: a2b_qp(data, header=False)
@@ -341,7 +341,7 @@ The :mod:`!binascii` module defines the following functions:
liberal towards whitespace) is also accessible using the
:meth:`bytes.fromhex` class method.
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *ignorechars* parameter.
@@ -360,55 +360,55 @@ The :mod:`!binascii` module defines the following functions:
The Base 64 alphabet according to :rfc:`4648`.
.. versionadded:: next
.. versionadded:: 3.15
.. data:: URLSAFE_BASE64_ALPHABET
The "URL and filename safe" Base 64 alphabet according to :rfc:`4648`.
.. versionadded:: next
.. versionadded:: 3.15
.. data:: UU_ALPHABET
The uuencoding alphabet.
.. versionadded:: next
.. versionadded:: 3.15
.. data:: CRYPT_ALPHABET
The Base 64 alphabet used in the :manpage:`crypt(3)` routine and in the GEDCOM format.
.. versionadded:: next
.. versionadded:: 3.15
.. data:: BINHEX_ALPHABET
The Base 64 alphabet used in BinHex 4 (HQX) within the classic Mac OS.
.. versionadded:: next
.. versionadded:: 3.15
.. data:: BASE85_ALPHABET
The Base85 alphabet.
.. versionadded:: next
.. versionadded:: 3.15
.. data:: ASCII85_ALPHABET
The Ascii85 alphabet.
.. versionadded:: next
.. versionadded:: 3.15
.. data:: Z85_ALPHABET
The `Z85 <https://rfc.zeromq.org/spec/32/>`_ alphabet.
.. versionadded:: next
.. versionadded:: 3.15
.. data:: BASE32_ALPHABET
The Base 32 alphabet according to :rfc:`4648`.
.. versionadded:: next
.. versionadded:: 3.15
.. data:: BASE32HEX_ALPHABET
@@ -416,7 +416,7 @@ The :mod:`!binascii` module defines the following functions:
Data encoded with this alphabet maintains its sort order during bitwise
comparisons.
.. versionadded:: next
.. versionadded:: 3.15
.. seealso::
+1 -1
View File
@@ -1756,7 +1756,7 @@ as a default or fallback.
(or by) Python.
It is recommended to only use this function as a default or fallback,
.. deprecated:: next
.. deprecated:: 3.15
This function is :term:`soft deprecated`.
It is kept for use in cases where it works, but not expected to be
+1 -1
View File
@@ -55,7 +55,7 @@ The :mod:`!getpass` module provides two functions:
.. versionchanged:: 3.14
Added the *echo_char* parameter for keyboard feedback.
.. versionchanged:: next
.. versionchanged:: 3.15
When using non-empty *echo_char* on Unix, keyboard shortcuts (including
cursor movement and line editing) are now properly handled using the
terminal's control character configuration.
+2 -2
View File
@@ -358,7 +358,7 @@ Basic Usage
conversion length limitation <int_max_str_digits>` to help avoid denial
of service attacks.
.. versionchanged:: next
.. versionchanged:: 3.15
Added the optional *array_hook* parameter.
.. function:: loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, array_hook=None, **kw)
@@ -429,7 +429,7 @@ Encoders and Decoders
*array_hook* will be used instead of the :class:`list`. This feature can be
used to implement custom decoders.
.. versionchanged:: next
.. versionchanged:: 3.15
Added support for *array_hook*.
*parse_float* is an optional function that will be called with the string of
+1 -1
View File
@@ -220,7 +220,7 @@ PrettyPrinter Objects
.. versionchanged:: 3.11
No longer attempts to write to :data:`!sys.stdout` if it is ``None``.
.. versionchanged:: next
.. versionchanged:: 3.15
Added the *expand* parameter.
+1 -1
View File
@@ -89,7 +89,7 @@ The module defines the following:
The *flags* parameter. ``select.EPOLL_CLOEXEC`` is used by default now.
Use :func:`os.set_inheritable` to make the file descriptor inheritable.
.. versionchanged:: next
.. versionchanged:: 3.15
When CPython is built, this function may be disabled using
:option:`--disable-epoll`.
+1 -1
View File
@@ -3751,7 +3751,7 @@ arbitrary binary data.
The bytearray version of this method does *not* operate in place - it
always produces a new object, even if no changes were made.
.. versionchanged:: next
.. versionchanged:: 3.15
*count* is now supported as a keyword argument.
+2 -2
View File
@@ -158,7 +158,7 @@ The module defines three convenience functions and a public class:
.. versionadded:: 3.6
.. versionchanged:: next
.. versionchanged:: 3.15
The optional *target_time* parameter was added.
@@ -247,7 +247,7 @@ Where the following options are understood:
if :option:`--number` is 0, the code will run until it takes at
least this many seconds (default: 0.2)
.. versionadded:: next
.. versionadded:: 3.15
.. option:: -v, --verbose
+1 -1
View File
@@ -18,7 +18,7 @@ The module supports uncompressed PCM and IEEE floating-point WAV formats.
Support for ``WAVE_FORMAT_EXTENSIBLE`` headers was added, provided that the
extended format is ``KSDATAFORMAT_SUBTYPE_PCM``.
.. versionchanged:: next
.. versionchanged:: 3.15
Support for reading and writing ``WAVE_FORMAT_IEEE_FLOAT`` files was added.
+2 -2
View File
@@ -705,7 +705,7 @@ Functions
.. versionchanged:: 3.15
*attrib* can now be a :class:`frozendict`.
.. versionchanged:: next
.. versionchanged:: 3.15
*parent* and *tag* are now positional-only parameters.
@@ -896,7 +896,7 @@ Element Objects
.. versionchanged:: 3.15
*attrib* can now be a :class:`frozendict`.
.. versionchanged:: next
.. versionchanged:: 3.15
*tag* is now a positional-only parameter.
+1 -1
View File
@@ -472,7 +472,7 @@ General Options
:manpage:`epoll_create1 <epoll_create1(2)>` is available
but incompatible with Linux semantics.
.. versionadded:: next
.. versionadded:: 3.15
C compiler options
+2 -2
View File
@@ -24,10 +24,10 @@
#define PY_MINOR_VERSION 15
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
#define PY_RELEASE_SERIAL 7
#define PY_RELEASE_SERIAL 8
/* Version as a string */
#define PY_VERSION "3.15.0a7+"
#define PY_VERSION "3.15.0a8"
/*--end constants--*/
+1 -1
View File
@@ -1,4 +1,4 @@
# Autogenerated by Sphinx on Tue Mar 10 14:31:07 2026
# Autogenerated by Sphinx on Tue Apr 7 14:21:08 2026
# as part of the release process.
module_docs = {
+96 -51
View File
@@ -1,4 +1,4 @@
# Autogenerated by Sphinx on Tue Mar 10 14:31:07 2026
# Autogenerated by Sphinx on Tue Apr 7 14:21:08 2026
# as part of the release process.
topics = {
@@ -3972,7 +3972,7 @@ object.__format__(self, format_spec)
formatting to one of the built-in types, or use a similar
formatting option syntax.
See Format Specification Mini-Language for a description of the
See Format specification mini-language for a description of the
standard formatting syntax.
The return value must be a string object.
@@ -5769,7 +5769,7 @@ immutable arithmetic sequences of integers. For instance, iterating
Changed in version 3.11: Starred elements are now allowed in the
expression list.
''',
'formatstrings': r'''Format String Syntax
'formatstrings': r'''Format string syntax
********************
The "str.format()" method and the "Formatter" class share the same
@@ -5804,7 +5804,7 @@ preceded by an exclamation point "'!'", and a *format_spec*, which is
preceded by a colon "':'". These specify a non-default format for the
replacement value.
See also the Format Specification Mini-Language section.
See also the Format specification mini-language section.
The *field_name* itself begins with an *arg_name* that is either a
number or a keyword. If its a number, it refers to a positional
@@ -5872,12 +5872,12 @@ allows the formatting of a value to be dynamically specified.
See the Format examples section for some examples.
Format Specification Mini-Language
Format specification mini-language
==================================
Format specifications are used within replacement fields contained
within a format string to define how individual values are presented
(see Format String Syntax, f-strings, and t-strings). They can also be
(see Format string syntax, f-strings, and t-strings). They can also be
passed directly to the built-in "format()" function. Each formattable
type may define how the format specification is to be interpreted.
@@ -6284,8 +6284,8 @@ Expressing a percentage:
Using type-specific formatting:
>>> import datetime
>>> d = datetime.datetime(2010, 7, 4, 12, 15, 58)
>>> import datetime as dt
>>> d = dt.datetime(2010, 7, 4, 12, 15, 58)
>>> '{:%Y-%m-%d %H:%M:%S}'.format(d)
'2010-07-04 12:15:58'
@@ -6616,8 +6616,7 @@ identifier names.
Changed in version 3.12: "type" is now a soft keyword.
Changed in version 3.15.0a6 (unreleased): "lazy" is now a soft
keyword.
Changed in version 3.15: "lazy" is now a soft keyword.
Reserved classes of identifiers
@@ -6698,8 +6697,8 @@ start with a character in the “letter-like” set "xid_start", and the
remaining characters must be in the letter- and digit-like set
"xid_continue".
These sets based on the *XID_Start* and *XID_Continue* sets as defined
by the Unicode standard annex UAX-31. Pythons "xid_start"
These sets are based on the *XID_Start* and *XID_Continue* sets as
defined by the Unicode standard annex UAX-31. Pythons "xid_start"
additionally includes the underscore ("_"). Note that Python does not
necessarily conform to UAX-31.
@@ -6982,7 +6981,7 @@ first used, not at the import statement itself.
See **PEP 810** for the full specification of lazy imports.
Added in version 3.15.0a6 (unreleased).
Added in version 3.15.
Future statements
@@ -8282,19 +8281,6 @@ object.__length_hint__(self)
Added in version 3.4.
Note:
Slicing is done exclusively with the following three methods. A
call like
a[1:2] = b
is translated to
a[slice(1, 2, None)] = b
and so forth. Missing slice items are always filled in with "None".
object.__getitem__(self, subscript)
Called to implement *subscription*, that is, "self[subscript]". See
@@ -8316,6 +8302,20 @@ object.__getitem__(self, subscript)
"__getitem__()" should raise an "LookupError" or one of its
subclasses ("IndexError" for sequences; "KeyError" for mappings).
Note:
Slicing is handled by "__getitem__()", "__setitem__()", and
"__delitem__()". A call like
a[1:2] = b
is translated to
a[slice(1, 2, None)] = b
and so forth. Missing slice items are always filled in with
"None".
Note:
The sequence iteration protocol (used, for example, in "for"
@@ -8664,7 +8664,7 @@ object.__format__(self, format_spec)
formatting to one of the built-in types, or use a similar
formatting option syntax.
See Format Specification Mini-Language for a description of the
See Format specification mini-language for a description of the
standard formatting syntax.
The return value must be a string object.
@@ -9665,19 +9665,6 @@ object.__length_hint__(self)
Added in version 3.4.
Note:
Slicing is done exclusively with the following three methods. A
call like
a[1:2] = b
is translated to
a[slice(1, 2, None)] = b
and so forth. Missing slice items are always filled in with "None".
object.__getitem__(self, subscript)
Called to implement *subscription*, that is, "self[subscript]". See
@@ -9699,6 +9686,20 @@ object.__getitem__(self, subscript)
"__getitem__()" should raise an "LookupError" or one of its
subclasses ("IndexError" for sequences; "KeyError" for mappings).
Note:
Slicing is handled by "__getitem__()", "__setitem__()", and
"__delitem__()". A call like
a[1:2] = b
is translated to
a[slice(1, 2, None)] = b
and so forth. Missing slice items are always filled in with
"None".
Note:
The sequence iteration protocol (used, for example, in "for"
@@ -10021,14 +10022,27 @@ object.__buffer__(self, flags)
"inspect.BufferFlags" provides a convenient way to interpret the
flags. The method must return a "memoryview" object.
**Thread safety:** In *free-threaded* Python, implementations must
manage any internal export counter using atomic operations. The
method must be safe to call concurrently from multiple threads, and
the returned buffers underlying data must remain valid until the
corresponding "__release_buffer__()" call completes. See Thread
safety for memoryview objects for details.
object.__release_buffer__(self, buffer)
Called when a buffer is no longer needed. The *buffer* argument is
a "memoryview" object that was previously returned by
"__buffer__()". The method must release any resources associated
with the buffer. This method should return "None". Buffer objects
that do not need to perform any cleanup are not required to
implement this method.
with the buffer. This method should return "None".
**Thread safety:** In *free-threaded* Python, any export counter
decrement must use atomic operations. Resource cleanup must be
thread-safe, as the final release may race with concurrent releases
from other threads.
Buffer objects that do not need to perform any cleanup are not
required to implement this method.
Added in version 3.12.
@@ -10169,7 +10183,7 @@ the additional methods described below.
Strings also support two styles of string formatting, one providing a
large degree of flexibility and customization (see "str.format()",
Format String Syntax and Custom String Formatting) and the other based
Format string syntax and Custom string formatting) and the other based
on C "printf" style formatting that handles a narrower range of types
and is slightly harder to use correctly, but is often faster for the
cases it can handle (printf-style String Formatting).
@@ -10355,7 +10369,7 @@ str.format(*args, **kwargs)
>>> "{1} expects the {0} Inquisition!".format("Spanish", "Nobody")
'Nobody expects the Spanish Inquisition!'
See Format String Syntax for a description of the various
See Format string syntax for a description of the various
formatting options that can be specified in format strings.
Note:
@@ -10548,16 +10562,31 @@ str.isprintable()
>>> '\t'.isprintable(), '\n'.isprintable()
(False, False)
See also "isspace()".
str.isspace()
Return "True" if there are only whitespace characters in the string
and there is at least one character, "False" otherwise.
For example:
>>> ''.isspace()
False
>>> ' '.isspace()
True
>>> '\t\n'.isspace() # TAB and BREAK LINE
True
>>> '\u3000'.isspace() # IDEOGRAPHIC SPACE
True
A character is *whitespace* if in the Unicode character database
(see "unicodedata"), either its general category is "Zs"
(Separator, space), or its bidirectional class is one of "WS",
"B", or "S".
See also "isprintable()".
str.istitle()
Return "True" if the string is a titlecased string and there is at
@@ -10673,8 +10702,7 @@ static str.maketrans(from, to, remove='', /)
a third argument, it must be a string, whose characters will be
mapped to "None" in the result.
Changed in version 3.15.0a6 (unreleased): *dict* can now be a
"frozendict".
Changed in version 3.15: *dict* can now be a "frozendict".
str.partition(sep, /)
@@ -13041,11 +13069,28 @@ also "os.popen()", "os.fdopen()", and the "makefile()" method of
socket objects (and perhaps by other functions or methods provided by
extension modules).
File objects implement common methods, listed below, to simplify usage
in generic code. They are expected to be With Statement Context
Managers.
The objects "sys.stdin", "sys.stdout" and "sys.stderr" are initialized
to file objects corresponding to the interpreters standard input,
output and error streams; they are all open in text mode and therefore
follow the interface defined by the "io.TextIOBase" abstract class.
file.read(size=-1, /)
Retrieve up to *size* data from the file. As a convenience if
*size* is unspecified or -1 retrieve all data available.
file.write(data, /)
Store *data* to the file.
file.close()
Flush any buffers and close the underlying file.
Internal types
==============
@@ -13885,7 +13930,7 @@ class frozendict(iterable, /, **kwargs)
"frozendict" is not a "dict" subclass but inherits directly from
"object".
Added in version 3.15.0a6 (unreleased).
Added in version 3.15.
''',
'typesmethods': r'''Methods
*******
@@ -14116,7 +14161,7 @@ sequence.count(value, /)
Return the total number of occurrences of *value* in *sequence*.
sequence.index(value[, start[, stop])
sequence.index(value[, start[, stop]])
Return the index of the first occurrence of *value* in *sequence*.
@@ -14206,7 +14251,7 @@ Mutable sequence types also support the following methods:
sequence.append(value, /)
Append *value* to the end of the sequence This is equivalent to
Append *value* to the end of the sequence. This is equivalent to
writing "seq[len(seq):len(seq)] = [value]".
sequence.clear()
@@ -14559,7 +14604,7 @@ Mutable sequence types also support the following methods:
sequence.append(value, /)
Append *value* to the end of the sequence This is equivalent to
Append *value* to the end of the sequence. This is equivalent to
writing "seq[len(seq):len(seq)] = [value]".
sequence.clear()
File diff suppressed because it is too large Load Diff
@@ -1 +0,0 @@
Fix building without ``stropts.h`` or empty ``stropts.h``
@@ -1,3 +0,0 @@
Remove support for ancient ARM platforms (ARMv4L and ARMv5L OABI boards),
using mixed-endian representation
for doubles. Patch by Sergey B Kirpichev.
@@ -1 +0,0 @@
Add :option:`--disable-epoll` to ``configure``
@@ -1,4 +0,0 @@
When Python build is optimized with GCC using PGO, use
``-fprofile-update=atomic`` option to use atomic operations when updating
profile information. This option reduces the risk of gcov Data Files (.gcda)
corruption which can cause random GCC crashes. Patch by Victor Stinner.
@@ -1 +0,0 @@
Update to WASI SDK 32.
@@ -1,2 +0,0 @@
Fix building the jit stencils on Windows when the interpreter is built with
a different clang version. Patch by Chris Eibl.
@@ -1 +0,0 @@
The Apple/iOS build script has been moved to the Platforms directory.
@@ -1,2 +0,0 @@
The clean target for the Apple/iOS XCframework build script is now more
selective when targeting a single architecture.
@@ -1,2 +0,0 @@
The Android build script was modified to improve parity with other platform
build scripts.
@@ -1,3 +0,0 @@
The iOS XCframework build script now ensures libpython isn't included in
installed app content, and is more robust in identifying standard library
binary content that requires processing.
@@ -1 +0,0 @@
The Android testbed can now be built for 32-bit ARM and x86 targets.
@@ -1,2 +0,0 @@
Use GCC dialect alternatives for inline assembly in ``object.h`` so that the
Python headers compile correctly with ``-masm=intel``.
@@ -1 +0,0 @@
:c:func:`PyUnicodeWriter_WriteRepr` now supports ``NULL`` argument.
@@ -1,2 +0,0 @@
:c:func:`PyUnicodeWriter_WriteUCS4` now accepts a pointer to a constant buffer
of ``Py_UCS4``.
@@ -1,12 +0,0 @@
The following macros are :term:`soft deprecated`:
:c:macro:`Py_ALIGNED`,
:c:macro:`PY_FORMAT_SIZE_T`,
:c:macro:`Py_LL`, :c:macro:`Py_ULL`,
:c:macro:`PY_LONG_LONG`, :c:macro:`PY_LLONG_MIN`, :c:macro:`PY_LLONG_MAX`,
:c:macro:`PY_ULLONG_MAX`, :c:macro:`PY_INT32_T`, :c:macro:`PY_UINT32_T`,
:c:macro:`PY_INT64_T`, :c:macro:`PY_UINT64_T`, :c:macro:`PY_SIZE_MAX`,
:c:macro:`Py_UNICODE_SIZE`,
:c:macro:`Py_VA_COPY`.
The macro :c:macro:`Py_UNICODE_WIDE`, which was scheduled for removal, is
:term:`soft deprecated` instead.
@@ -1,3 +0,0 @@
The :c:data:`Py_mod_abi` slot is now mandatory for modules created from a
slots array (using :c:func:`PyModule_FromSlotsAndSpec` or the
:c:func:`PyModExport_* <PyModExport_modulename>` export hook).
@@ -1,2 +0,0 @@
Add support for module attributes in the :term:`REPL` auto-completion of
imports.
@@ -1,2 +0,0 @@
Fix an out of bounds read when a single NUL character is read from the standard input.
Patch by Shamil Abdulaev.
@@ -1,2 +0,0 @@
Set frame pointers in ``x86_64-unknown-linux-gnu`` JIT code, allowing
most native profilers and debuggers to unwind through them.
@@ -1,2 +0,0 @@
Fix a crash when calling :class:`SimpleNamespace.__replace__()
<types.SimpleNamespace>` on non-namespace instances. Patch by Bénédikt Tran.
@@ -1 +0,0 @@
Add tracking to the JIT optimizer to determine whether a reference is uniquely owned or shared
@@ -1 +0,0 @@
Optimize ``_ITER_CHECK_RANGE`` and ``_ITER_CHECK_LIST`` in the JIT
@@ -1 +0,0 @@
Add :mod:`math.integer` to :term:`REPL` auto-completion of imports.
@@ -1 +0,0 @@
Eliminate redundant refcounting for ``MATCH_CLASS`` in the JIT.
@@ -1 +0,0 @@
In free-threaded build, fix race condition when calling :meth:`!__sizeof__` on a :class:`list`
@@ -1,3 +0,0 @@
Make :meth:`bytearray.resize` thread-safe in the free-threaded build by
using a critical section and calling the lock-held variant of the resize
function.
@@ -1,2 +0,0 @@
Improve scaling of type attribute lookups in the :term:`free-threaded build` by
avoiding contention on the internal type lock.
@@ -1,2 +0,0 @@
Fix an unlikely crash in the parser when certain errors were erroneously not
propagated. Found by OSS Fuzz in :oss-fuzz:`491369109`.
@@ -1,2 +0,0 @@
Improve scaling of :func:`classmethod` and :func:`staticmethod` calls in
the free-threaded build by avoiding the descriptor ``__get__`` call.
@@ -1 +0,0 @@
Avoid a pathological case where repeated calls at a specific stack depth could be significantly slower.
@@ -1,2 +0,0 @@
Fix out-of-bounds access when invoking faulthandler on a CPython build
compiled without support for VLAs.
@@ -1 +0,0 @@
Fix GC tracking in ``structseq.__replace__()``.
@@ -1 +0,0 @@
Support tracing from function entrypoints in the JIT. Patch by Ken Jin.
@@ -1,3 +0,0 @@
:exc:`AttributeError`\ s and :exc:`KeyError`\ s raised in :meth:`!keys` or :meth:`!__getitem__`
during dictionary unpacking (``{**mymapping}`` or ``func(**mymapping)``) are
no longer masked by :exc:`TypeError`.
@@ -1 +0,0 @@
``python --help-xoptions`` is now sorted by ``-X`` option name.
@@ -1 +0,0 @@
``python --help-env`` sections are now sorted by environment variable name.
@@ -1,3 +0,0 @@
Fix free-threading scaling bottleneck in :func:`sys.intern` and
:c:func:`PyObject_SetAttr` by avoiding the interpreter-wide lock when the string
is already interned and immortalized.
@@ -1 +0,0 @@
Fixed ``sys.lazy_modules`` to include lazy modules without submodules. Patch by Bartosz Sławecki.
@@ -1 +0,0 @@
Fix :func:`repr` for lists and tuples containing ``NULL``\ s.
@@ -1,2 +0,0 @@
Fixed segmentation fault when called repr for BaseExceptionGroup with empty
or 1-size tuple args.
@@ -1 +0,0 @@
Improve multithreaded scaling of PyMutex in low-contention scenarios by reloading the lock's internal state, without slowing down high-contention scenarios.
@@ -1,2 +0,0 @@
Add Base32 support to :mod:`binascii` and improve the performance of the
Base32 converters in :mod:`base64`. Patch by James Seo.
@@ -1,2 +0,0 @@
Remove the ``GET_ITER_YIELD_FROM`` instruction, modifying ``SEND`` to pair
with ``GET_ITER`` when compiling ``yield from`` expressions.
@@ -1 +0,0 @@
Comparison of code objects now handles errors correctly.
@@ -1,2 +0,0 @@
Fixed a bug where :meth:`select.epoll.close`, :meth:`select.kqueue.close`,
and :meth:`select.devpoll.close` silently ignored errors.
@@ -1,3 +0,0 @@
Fix wrong type in ``_Py_atomic_load_uint16`` in the C11 atomics backend
(``pyatomic_std.h``), which used a 32-bit atomic load instead of 16-bit.
Found by Mohammed Zuhaib.
@@ -1,2 +0,0 @@
Fix potential Undefined Behavior in :c:func:`PyUnicodeWriter_WriteASCII` by
adding a zero-length check. Patch by Shamil Abdulaev.
@@ -1,3 +0,0 @@
:class:`memoryview` now supports the :c:expr:`float complex` and
:c:expr:`double complex` C types: formatting characters ``'F'`` and ``'D'``
respectively. Patch by Sergey B Kirpichev.
@@ -1 +0,0 @@
Fixed reference leaks in :mod:`socket` when audit hooks raise exceptions in :func:`socket.getaddrinfo` and :meth:`!socket.sendto`.
@@ -1 +0,0 @@
Fixed a memory leak in :exc:`SyntaxError` when re-initializing it.
@@ -1,3 +0,0 @@
Fix a bug which could cause constant values to be partially corrupted in
AArch64 JIT code. This issue is theoretical, and hasn't actually been
observed in unmodified Python interpreters.
@@ -1,3 +0,0 @@
Optimize float arithmetic in the JIT by mutating uniquely-referenced
operands in place, avoiding allocation of a new float object. Speeds up
the pyperformance ``nbody`` benchmark by ~19%.
@@ -1,5 +0,0 @@
Fixed multiple error handling issues in the :mod:`!_remote_debugging` module
including a double-free in code object caching, memory leaks on allocation
failure, missing exception checks in binary format varint decoding, reference
leaks on error paths in frame chain processing, and inconsistent thread status
error reporting across platforms. Patch by Pablo Galindo.
@@ -1,2 +0,0 @@
Ensure ``-X lazy_imports=none``` and ``PYTHON_LAZY_IMPORTS=none``` override
``__lazy_modules__``. Patch by Hugo van Kemenade.
@@ -1 +0,0 @@
Adds a null check to handle when the JIT optimizer runs out of space when dealing with contradictions in ``make_bottom``.
@@ -1 +0,0 @@
Set frame pointers in ``aarch64-unknown-linux-gnu`` JIT code, allowing most native profilers and debuggers to unwind through them. Patch by Diego Russo
@@ -1 +0,0 @@
Fix type slot assignment incase of multiple slots for same name in type object implementation. Patch by Kumar Aditya.
@@ -1,3 +0,0 @@
Optimize compact integer arithmetic in the JIT by mutating
uniquely-referenced operands in place, avoiding allocation of a new int
object. Speeds up the pyperformance ``spectral_norm`` benchmark by ~10%.
@@ -1,3 +0,0 @@
Fix a crash in :meth:`~object.__get__` for :c:expr:`METH_METHOD` descriptors
when an invalid (non-type) object is passed as the second argument.
Patch by Steven Sun.
@@ -1 +0,0 @@
Allow the *count* argument of :meth:`bytes.replace` to be a keyword.
@@ -1,3 +0,0 @@
Make :c:func:`PySet_Contains` attempt a lock-free lookup, similar to
:meth:`!set.__contains__`. This avoids acquiring the set object mutex in the
normal case.
@@ -1,3 +0,0 @@
Fix a bug that could cause applications with specific allocation patterns to
leak memory via Huge Pages if compiled with Huge Page support. Patch by
Pablo Galindo
@@ -1 +0,0 @@
Constant-fold ``_CONTAINS_OP_SET`` for :class:`frozenset`. Patch by Donghee Na.
@@ -1,2 +0,0 @@
Fix :func:`sys.set_lazy_imports_filter` so relative lazy imports pass the
resolved imported module name to the filter callback. Patch by Pablo Galindo.
@@ -1,4 +0,0 @@
Cache ``pickle.dumps`` and ``pickle.loads`` per interpreter in the XIData
framework, avoiding repeated module lookups on every cross-interpreter data
transfer. This speeds up :class:`~concurrent.futures.InterpreterPoolExecutor`
for mutable types (``list``, ``dict``) by 1.7x--3.3x.
@@ -1,3 +0,0 @@
Initialize ``_PyInterpreterFrame.visited`` when copying interpreter frames so
incremental GC does not read an uninitialized byte from generator and
frame-object copies.
@@ -1,3 +0,0 @@
Propagate result type and uniqueness information through
``_BINARY_OP_EXTEND`` in the tier 2 optimizer, enabling elimination of
downstream type guards and selection of inplace float operations.
@@ -1,2 +0,0 @@
Fix an unlikely crash when parsing an invalid type comments for function
parameters. Found by OSS Fuzz in :oss-fuzz:`492782951`.
@@ -1,2 +0,0 @@
Fix text wrapping and formatting of ``-X`` option descriptions in the
:manpage:`python(1)` man page by using proper roff markup.
@@ -1,2 +0,0 @@
Expand :mod:`argparse` documentation for ``type=bool`` with a demonstration
of the surprising behavior and pointers to common alternatives.
@@ -1,3 +0,0 @@
Make the target time of :meth:`timeit.Timer.autorange` configurable
and add ``--target-time`` option to the command-line interface of
:mod:`timeit`.
@@ -1 +0,0 @@
Add support for floating point audio wave files in :mod:`wave`.
@@ -1,2 +0,0 @@
Optional argument with :ref:`nargs` equals to ``argparse.REMAINDER`` now
consumes all remaining arguments including ``'--'``.
@@ -1,3 +0,0 @@
Add an *expand* keyword argument for :func:`pprint.pprint`,
:func:`pprint.pformat`, :func:`pprint.pp` by passing on all *kwargs* and
:class:`pprint.PrettyPrinter`. Contributed by Stefan Todoran and Semyon Moroz.
@@ -1 +0,0 @@
Add fancycompleter and enable it by default when using pyrepl. This gives colored tab completion.
@@ -1,2 +0,0 @@
The :mod:`netrc` security check is now run once per parse rather than once
per entry.
@@ -1,3 +0,0 @@
Improve :exc:`AttributeError` suggestions for classes with a custom
:meth:`~object.__dir__` method returning a list of unsortable values.
Patch by Bénédikt Tran.
@@ -1 +0,0 @@
:func:`traceback.format_exception_only` now colorizes exception notes.
@@ -1,4 +0,0 @@
:func:`getpass.getpass` with non-empty ``echo_char`` now handles keyboard shortcuts
including Ctrl+A/E (cursor movement), Ctrl+K/U (kill line), Ctrl+W (erase word),
and Ctrl+V (literal next) by reading the terminal's control character settings
and processing them appropriately in non-canonical mode. Patch by Sanyam Khurana.
@@ -1,2 +0,0 @@
Don't change :class:`tarfile.TarInfo` type from ``AREGTYPE`` to ``DIRTYPE`` when parsing
GNU long name or link headers.

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