#define PY_MINOR_VERSION 13
#define PY_MICRO_VERSION 0
#define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_ALPHA
-#define PY_RELEASE_SERIAL 2
+#define PY_RELEASE_SERIAL 3
/* Version as a string */
-#define PY_VERSION "3.13.0a2+"
+#define PY_VERSION "3.13.0a3"
/*--end constants--*/
/* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2.
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Wed Nov 22 11:44:32 2023
+# Autogenerated by Sphinx on Wed Jan 17 13:09:41 2024
# as part of the release process.
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'*instance* of the\n'
' owner class.\n'
'\n'
- 'The attribute "__objclass__" is interpreted by the '
- '"inspect" module as\n'
- 'specifying the class where this object was defined '
+ 'Instances of descriptors may also have the '
+ '"__objclass__" attribute\n'
+ 'present:\n'
+ '\n'
+ 'object.__objclass__\n'
+ '\n'
+ ' The attribute "__objclass__" is interpreted by the '
+ '"inspect" module\n'
+ ' as specifying the class where this object was defined '
'(setting this\n'
- 'appropriately can assist in runtime introspection of '
+ ' appropriately can assist in runtime introspection of '
'dynamic class\n'
- 'attributes). For callables, it may indicate that an '
+ ' attributes). For callables, it may indicate that an '
'instance of the\n'
- 'given type (or a subclass) is expected or required as '
+ ' given type (or a subclass) is expected or required as '
'the first\n'
- 'positional argument (for example, CPython sets this '
+ ' positional argument (for example, CPython sets this '
'attribute for\n'
- 'unbound methods that are implemented in C).\n'
+ ' unbound methods that are implemented in C).\n'
'\n'
'\n'
'Invoking Descriptors\n'
'attribute references, which most objects do. This '
'object is then\n'
'asked to produce the attribute whose name is the '
- 'identifier. This\n'
- 'production can be customized by overriding the '
- '"__getattr__()" method.\n'
- 'If this attribute is not available, the exception '
- '"AttributeError" is\n'
- 'raised. Otherwise, the type and value of the object '
- 'produced is\n'
- 'determined by the object. Multiple evaluations of '
- 'the same attribute\n'
- 'reference may yield different objects.\n',
+ 'identifier. The type\n'
+ 'and value produced is determined by the object. '
+ 'Multiple evaluations\n'
+ 'of the same attribute reference may yield different '
+ 'objects.\n'
+ '\n'
+ 'This production can be customized by overriding the\n'
+ '"__getattribute__()" method or the "__getattr__()" '
+ 'method. The\n'
+ '"__getattribute__()" method is called first and '
+ 'either returns a value\n'
+ 'or raises "AttributeError" if the attribute is not '
+ 'available.\n'
+ '\n'
+ 'If an "AttributeError" is raised and the object has '
+ 'a "__getattr__()"\n'
+ 'method, that method is called as a fallback.\n',
'augassign': 'Augmented assignment statements\n'
'*******************************\n'
'\n'
'standard\n'
'Python grammar. Triple-quoted strings are supported. Raw '
'strings and\n'
- 'byte strings are supported. Formatted string literals are not\n'
- 'supported.\n'
+ 'byte strings are supported. f-strings are not supported.\n'
'\n'
'The forms "signed_number \'+\' NUMBER" and "signed_number \'-\' '
'NUMBER"\n'
' **PEP 526** - Syntax for Variable Annotations\n'
' Ability to type hint variable declarations, including '
'class\n'
- ' variables and instance variables\n'
+ ' variables and instance variables.\n'
'\n'
' **PEP 563** - Postponed Evaluation of Annotations\n'
' Support for forward references within annotations by '
' annotations in a string form at runtime instead of eager\n'
' evaluation.\n'
'\n'
+ ' **PEP 318** - Decorators for Functions and Methods\n'
+ ' Function and method decorators were introduced. Class '
+ 'decorators\n'
+ ' were introduced in **PEP 3129**.\n'
+ '\n'
'\n'
'Class definitions\n'
'=================\n'
'denial-of-service caused\n'
' by carefully chosen inputs that exploit the worst '
'case\n'
- ' performance of a dict insertion, O(n^2) complexity. '
- 'See\n'
+ ' performance of a dict insertion, *O*(*n*^2) '
+ 'complexity. See\n'
' http://ocert.org/advisories/ocert-2011-003.html for\n'
' details.Changing hash values affects the iteration '
'order of sets.\n'
'whose\n'
' global namespace contains all the (global and local) names '
'found in\n'
- ' the current scope.\n'
+ ' the current scope. Use "exit()" or "quit()" to exit the '
+ 'interpreter\n'
+ ' and return to the debugger.\n'
+ '\n'
+ ' Note:\n'
+ '\n'
+ ' Because interact creates a new global namespace with the '
+ 'current\n'
+ ' global and local namespace for execution, assignment to '
+ 'variables\n'
+ ' will not affect the original namespaces. However, '
+ 'modification to\n'
+ ' the mutable objects will be reflected in the original '
+ 'namespaces.\n'
'\n'
' New in version 3.2.\n'
'\n'
+ ' New in version 3.13: "exit()" and "quit()" can be used to '
+ 'exit\n'
+ ' "interact" command.\n'
+ '\n'
+ ' Changed in version 3.13: "interact" directs its output to '
+ 'the\n'
+ ' debugger’s output channel rather than "sys.stderr".\n'
+ '\n'
'alias [name [command]]\n'
'\n'
' Create an alias called *name* that executes *command*. The\n'
' index_string ::= <any source character except "]"> '
'+\n'
' conversion ::= "r" | "s" | "a"\n'
- ' format_spec ::= <described in the next section>\n'
+ ' format_spec ::= format-spec:format_spec\n'
'\n'
'In less formal terms, the replacement field can start with '
'a\n'
'contained\n'
'within a format string to define how individual values are '
'presented\n'
- '(see Format String Syntax and Formatted string literals). '
- 'They can\n'
- 'also be passed directly to the built-in "format()" '
- 'function. Each\n'
- 'formattable type may define how the format specification is '
- 'to be\n'
+ '(see Format String Syntax and f-strings). They can also be '
+ 'passed\n'
+ 'directly to the built-in "format()" function. Each '
+ 'formattable type\n'
+ 'may define how the format specification is to be '
'interpreted.\n'
'\n'
'Most built-in types implement the following options for '
' **PEP 526** - Syntax for Variable Annotations\n'
' Ability to type hint variable declarations, including '
'class\n'
- ' variables and instance variables\n'
+ ' variables and instance variables.\n'
'\n'
' **PEP 563** - Postponed Evaluation of Annotations\n'
' Support for forward references within annotations by '
'preserving\n'
' annotations in a string form at runtime instead of eager\n'
- ' evaluation.\n',
+ ' evaluation.\n'
+ '\n'
+ ' **PEP 318** - Decorators for Functions and Methods\n'
+ ' Function and method decorators were introduced. Class '
+ 'decorators\n'
+ ' were introduced in **PEP 3129**.\n',
'global': 'The "global" statement\n'
'**********************\n'
'\n'
'\n'
'A traceback object is normally created automatically when an '
'exception\n'
- 'is raised and attached to it as the "__traceback__" attribute, '
- 'which\n'
- 'is writable. You can create an exception and set your own traceback '
- 'in\n'
- 'one step using the "with_traceback()" exception method (which '
- 'returns\n'
- 'the same exception instance, with its traceback set to its '
- 'argument),\n'
- 'like so:\n'
+ 'is raised and attached to it as the "__traceback__" attribute. You '
+ 'can\n'
+ 'create an exception and set your own traceback in one step using '
+ 'the\n'
+ '"with_traceback()" exception method (which returns the same '
+ 'exception\n'
+ 'instance, with its traceback set to its argument), like so:\n'
'\n'
' raise Exception("foo occurred").with_traceback(tracebackobj)\n'
'\n'
' ...\n'
' Traceback (most recent call last):\n'
' File "<stdin>", line 2, in <module>\n'
+ ' print(1 / 0)\n'
+ ' ~~^~~\n'
' ZeroDivisionError: division by zero\n'
'\n'
' The above exception was the direct cause of the following '
'\n'
' Traceback (most recent call last):\n'
' File "<stdin>", line 4, in <module>\n'
+ ' raise RuntimeError("Something bad happened") from exc\n'
' RuntimeError: Something bad happened\n'
'\n'
'A similar mechanism works implicitly if a new exception is raised '
' ...\n'
' Traceback (most recent call last):\n'
' File "<stdin>", line 2, in <module>\n'
+ ' print(1 / 0)\n'
+ ' ~~^~~\n'
' ZeroDivisionError: division by zero\n'
'\n'
' During handling of the above exception, another exception '
'\n'
' Traceback (most recent call last):\n'
' File "<stdin>", line 4, in <module>\n'
+ ' raise RuntimeError("Something bad happened")\n'
' RuntimeError: Something bad happened\n'
'\n'
'Exception chaining can be explicitly suppressed by specifying '
'\n'
' Called to implement evaluation of "self[key]". For '
'*sequence*\n'
- ' types, the accepted keys should be integers and slice '
- 'objects.\n'
- ' Note that the special interpretation of negative '
- 'indexes (if the\n'
- ' class wishes to emulate a *sequence* type) is up to '
- 'the\n'
- ' "__getitem__()" method. If *key* is of an inappropriate '
- 'type,\n'
- ' "TypeError" may be raised; if of a value outside the '
- 'set of indexes\n'
- ' for the sequence (after any special interpretation of '
- 'negative\n'
- ' values), "IndexError" should be raised. For *mapping* '
- 'types, if\n'
- ' *key* is missing (not in the container), "KeyError" '
- 'should be\n'
- ' raised.\n'
+ ' types, the accepted keys should be integers. '
+ 'Optionally, they may\n'
+ ' support "slice" objects as well. Negative index '
+ 'support is also\n'
+ ' optional. If *key* is of an inappropriate type, '
+ '"TypeError" may be\n'
+ ' raised; if *key* is a value outside the set of indexes '
+ 'for the\n'
+ ' sequence (after any special interpretation of negative '
+ 'values),\n'
+ ' "IndexError" should be raised. For *mapping* types, if '
+ '*key* is\n'
+ ' missing (not in the container), "KeyError" should be '
+ 'raised.\n'
'\n'
' Note:\n'
'\n'
' intended to provide protection against a '
'denial-of-service caused\n'
' by carefully chosen inputs that exploit the worst case\n'
- ' performance of a dict insertion, O(n^2) complexity. '
- 'See\n'
+ ' performance of a dict insertion, *O*(*n*^2) '
+ 'complexity. See\n'
' http://ocert.org/advisories/ocert-2011-003.html for\n'
' details.Changing hash values affects the iteration '
'order of sets.\n'
'of the\n'
' owner class.\n'
'\n'
- 'The attribute "__objclass__" is interpreted by the "inspect" '
- 'module as\n'
- 'specifying the class where this object was defined (setting '
- 'this\n'
- 'appropriately can assist in runtime introspection of dynamic '
- 'class\n'
- 'attributes). For callables, it may indicate that an instance '
- 'of the\n'
- 'given type (or a subclass) is expected or required as the '
+ 'Instances of descriptors may also have the "__objclass__" '
+ 'attribute\n'
+ 'present:\n'
+ '\n'
+ 'object.__objclass__\n'
+ '\n'
+ ' The attribute "__objclass__" is interpreted by the '
+ '"inspect" module\n'
+ ' as specifying the class where this object was defined '
+ '(setting this\n'
+ ' appropriately can assist in runtime introspection of '
+ 'dynamic class\n'
+ ' attributes). For callables, it may indicate that an '
+ 'instance of the\n'
+ ' given type (or a subclass) is expected or required as the '
'first\n'
- 'positional argument (for example, CPython sets this '
+ ' positional argument (for example, CPython sets this '
'attribute for\n'
- 'unbound methods that are implemented in C).\n'
+ ' unbound methods that are implemented in C).\n'
'\n'
'\n'
'Invoking Descriptors\n'
'\n'
' Keyword arguments which are given to a new class are '
'passed to the\n'
- ' parent’s class "__init_subclass__". For compatibility '
+ ' parent class’s "__init_subclass__". For compatibility '
'with other\n'
' classes using "__init_subclass__", one should take out '
'the needed\n'
'\n'
' Called to implement evaluation of "self[key]". For '
'*sequence*\n'
- ' types, the accepted keys should be integers and slice '
- 'objects.\n'
- ' Note that the special interpretation of negative indexes '
- '(if the\n'
- ' class wishes to emulate a *sequence* type) is up to the\n'
- ' "__getitem__()" method. If *key* is of an inappropriate '
- 'type,\n'
- ' "TypeError" may be raised; if of a value outside the set '
- 'of indexes\n'
- ' for the sequence (after any special interpretation of '
- 'negative\n'
- ' values), "IndexError" should be raised. For *mapping* '
- 'types, if\n'
- ' *key* is missing (not in the container), "KeyError" '
- 'should be\n'
- ' raised.\n'
+ ' types, the accepted keys should be integers. Optionally, '
+ 'they may\n'
+ ' support "slice" objects as well. Negative index support '
+ 'is also\n'
+ ' optional. If *key* is of an inappropriate type, '
+ '"TypeError" may be\n'
+ ' raised; if *key* is a value outside the set of indexes '
+ 'for the\n'
+ ' sequence (after any special interpretation of negative '
+ 'values),\n'
+ ' "IndexError" should be raised. For *mapping* types, if '
+ '*key* is\n'
+ ' missing (not in the container), "KeyError" should be '
+ 'raised.\n'
'\n'
' Note:\n'
'\n'
'\n'
'A string literal with "\'f\'" or "\'F\'" in its prefix is a '
'*formatted\n'
- 'string literal*; see Formatted string literals. The "\'f\'" may '
- 'be\n'
- 'combined with "\'r\'", but not with "\'b\'" or "\'u\'", therefore '
- 'raw\n'
- 'formatted strings are possible, but formatted bytes literals are '
- 'not.\n'
+ 'string literal*; see f-strings. The "\'f\'" may be combined with '
+ '"\'r\'",\n'
+ 'but not with "\'b\'" or "\'u\'", therefore raw formatted strings '
+ 'are\n'
+ 'possible, but formatted bytes literals are not.\n'
'\n'
'In triple-quoted literals, unescaped newlines and quotes are '
'allowed\n'
'function’s\n'
'formal parameter list.\n'
'\n'
- 'Special attributes:\n'
'\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| Attribute | Meaning '
- '| |\n'
- '|===========================|=================================|=============|\n'
- '| "__doc__" | The function’s documentation | '
- 'Writable |\n'
- '| | string, or "None" if '
- '| |\n'
- '| | unavailable; not inherited by '
- '| |\n'
- '| | subclasses. '
- '| |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| "__name__" | The function’s name. | '
- 'Writable |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| "__qualname__" | The function’s *qualified | '
- 'Writable |\n'
- '| | name*. New in version 3.3. '
- '| |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| "__module__" | The name of the module the | '
- 'Writable |\n'
- '| | function was defined in, or '
- '| |\n'
- '| | "None" if unavailable. '
- '| |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| "__defaults__" | A tuple containing default | '
- 'Writable |\n'
- '| | argument values for those '
- '| |\n'
- '| | arguments that have defaults, '
- '| |\n'
- '| | or "None" if no arguments have '
- '| |\n'
- '| | a default value. '
- '| |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| "__code__" | The code object representing | '
- 'Writable |\n'
- '| | the compiled function body. '
- '| |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| "__globals__" | A reference to the dictionary | '
- 'Read-only |\n'
- '| | that holds the function’s '
- '| |\n'
- '| | global variables — the global '
- '| |\n'
- '| | namespace of the module in '
- '| |\n'
- '| | which the function was defined. '
- '| |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| "__dict__" | The namespace supporting | '
- 'Writable |\n'
- '| | arbitrary function attributes. '
- '| |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| "__closure__" | "None" or a tuple of cells that | '
- 'Read-only |\n'
- '| | contain bindings for the '
- '| |\n'
- '| | function’s free variables. See '
- '| |\n'
- '| | below for information on the '
- '| |\n'
- '| | "cell_contents" attribute. '
- '| |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| "__annotations__" | A dict containing annotations | '
- 'Writable |\n'
- '| | of parameters. The keys of the '
- '| |\n'
- '| | dict are the parameter names, '
- '| |\n'
- '| | and "\'return\'" for the return '
- '| |\n'
- '| | annotation, if provided. For '
- '| |\n'
- '| | more information on working '
- '| |\n'
- '| | with this attribute, see '
- '| |\n'
- '| | Annotations Best Practices. '
- '| |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| "__kwdefaults__" | A dict containing defaults for | '
- 'Writable |\n'
- '| | keyword-only parameters. '
- '| |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '| "__type_params__" | A tuple containing the type | '
- 'Writable |\n'
- '| | parameters of a generic '
- '| |\n'
- '| | function. '
- '| |\n'
- '+---------------------------+---------------------------------+-------------+\n'
- '\n'
- 'Most of the attributes labelled “Writable” check the type of the\n'
- 'assigned value.\n'
+ 'Special read-only attributes\n'
+ '~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n'
+ '\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| Attribute | '
+ 'Meaning |\n'
+ '|====================================================|====================================================|\n'
+ '| function.__globals__ | A reference '
+ 'to the "dictionary" that holds the |\n'
+ '| | function’s '
+ 'global variables – the global namespace |\n'
+ '| | of the '
+ 'module in which the function was defined. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| function.__closure__ | "None" or a '
+ '"tuple" of cells that contain bindings |\n'
+ '| | for the '
+ 'function’s free variables. A cell object |\n'
+ '| | has the '
+ 'attribute "cell_contents". This can be |\n'
+ '| | used to get '
+ 'the value of the cell, as well as set |\n'
+ '| | the '
+ 'value. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '\n'
+ '\n'
+ 'Special writable attributes\n'
+ '~~~~~~~~~~~~~~~~~~~~~~~~~~~\n'
+ '\n'
+ 'Most of these attributes check the type of the assigned value:\n'
+ '\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| Attribute | '
+ 'Meaning |\n'
+ '|====================================================|====================================================|\n'
+ '| function.__doc__ | The '
+ 'function’s documentation string, or "None" if |\n'
+ '| | unavailable. '
+ 'Not inherited by subclasses. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| function.__name__ | The '
+ 'function’s name. See also: "__name__ |\n'
+ '| | '
+ 'attributes". |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| function.__qualname__ | The '
+ 'function’s *qualified name*. See also: |\n'
+ '| | '
+ '"__qualname__ attributes". New in version 3.3. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| function.__module__ | The name of '
+ 'the module the function was defined |\n'
+ '| | in, or '
+ '"None" if unavailable. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| function.__defaults__ | A "tuple" '
+ 'containing default *parameter* values |\n'
+ '| | for those '
+ 'parameters that have defaults, or "None" |\n'
+ '| | if no '
+ 'parameters have a default value. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| function.__code__ | The code '
+ 'object representing the compiled function |\n'
+ '| | '
+ 'body. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| function.__dict__ | The '
+ 'namespace supporting arbitrary function |\n'
+ '| | attributes. '
+ 'See also: "__dict__ attributes". |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| function.__annotations__ | A '
+ '"dictionary" containing annotations of |\n'
+ '| | '
+ '*parameters*. The keys of the dictionary are the |\n'
+ '| | parameter '
+ 'names, and "\'return\'" for the return |\n'
+ '| | annotation, '
+ 'if provided. See also: Annotations |\n'
+ '| | Best '
+ 'Practices. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| function.__kwdefaults__ | A '
+ '"dictionary" containing defaults for keyword- |\n'
+ '| | only '
+ '*parameters*. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| function.__type_params__ | A "tuple" '
+ 'containing the type parameters of a |\n'
+ '| | generic '
+ 'function. New in version 3.12. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
'\n'
'Function objects also support getting and setting arbitrary\n'
'attributes, which can be used, for example, to attach metadata to\n'
'functions. Regular attribute dot-notation is used to get and set '
'such\n'
- 'attributes. *Note that the current implementation only supports\n'
- 'function attributes on user-defined functions. Function attributes '
- 'on\n'
- 'built-in functions may be supported in the future.*\n'
+ 'attributes.\n'
'\n'
- 'A cell object has the attribute "cell_contents". This can be used '
- 'to\n'
- 'get the value of the cell, as well as set the value.\n'
+ '**CPython implementation detail:** CPython’s current '
+ 'implementation\n'
+ 'only supports function attributes on user-defined functions. '
+ 'Function\n'
+ 'attributes on built-in functions may be supported in the future.\n'
'\n'
'Additional information about a function’s definition can be '
'retrieved\n'
- 'from its code object; see the description of internal types below. '
- 'The\n'
- '"cell" type can be accessed in the "types" module.\n'
+ 'from its code object (accessible via the "__code__" attribute).\n'
'\n'
'\n'
'Instance methods\n'
'any\n'
'callable object (normally a user-defined function).\n'
'\n'
- 'Special read-only attributes: "__self__" is the class instance '
- 'object,\n'
- '"__func__" is the function object; "__doc__" is the method’s\n'
- 'documentation (same as "__func__.__doc__"); "__name__" is the '
- 'method\n'
- 'name (same as "__func__.__name__"); "__module__" is the name of '
- 'the\n'
- 'module the method was defined in, or "None" if unavailable.\n'
+ 'Special read-only attributes:\n'
+ '\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| method.__self__ | Refers to '
+ 'the class instance object to which the |\n'
+ '| | method is '
+ 'bound |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| method.__func__ | Refers to '
+ 'the original function object |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| method.__doc__ | The method’s '
+ 'documentation (same as |\n'
+ '| | '
+ '"method.__func__.__doc__"). A "string" if the |\n'
+ '| | original '
+ 'function had a docstring, else "None". |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| method.__name__ | The name of '
+ 'the method (same as |\n'
+ '| | '
+ '"method.__func__.__name__") |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| method.__module__ | The name of '
+ 'the module the method was defined in, |\n'
+ '| | or "None" if '
+ 'unavailable. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
'\n'
'Methods also support accessing (but not setting) the arbitrary\n'
'function attributes on the underlying function object.\n'
'attribute\n'
'of a class (perhaps via an instance of that class), if that '
'attribute\n'
- 'is a user-defined function object or a class method object.\n'
+ 'is a user-defined function object or a "classmethod" object.\n'
'\n'
'When an instance method object is created by retrieving a '
'user-defined\n'
'function object from a class via one of its instances, its '
'"__self__"\n'
- 'attribute is the instance, and the method object is said to be '
- 'bound.\n'
- 'The new method’s "__func__" attribute is the original function '
- 'object.\n'
+ 'attribute is the instance, and the method object is said to be\n'
+ '*bound*. The new method’s "__func__" attribute is the original\n'
+ 'function object.\n'
'\n'
- 'When an instance method object is created by retrieving a class '
- 'method\n'
- 'object from a class or instance, its "__self__" attribute is the '
- 'class\n'
- 'itself, and its "__func__" attribute is the function object '
- 'underlying\n'
- 'the class method.\n'
+ 'When an instance method object is created by retrieving a\n'
+ '"classmethod" object from a class or instance, its "__self__"\n'
+ 'attribute is the class itself, and its "__func__" attribute is the\n'
+ 'function object underlying the class method.\n'
'\n'
'When an instance method object is called, the underlying function\n'
'("__func__") is called, inserting the class instance ("__self__") '
'of\n'
'"C", calling "x.f(1)" is equivalent to calling "C.f(x, 1)".\n'
'\n'
- 'When an instance method object is derived from a class method '
+ 'When an instance method object is derived from a "classmethod" '
'object,\n'
'the “class instance” stored in "__self__" will actually be the '
'class\n'
'of built-in functions are "len()" and "math.sin()" ("math" is a\n'
'standard built-in module). The number and type of the arguments '
'are\n'
- 'determined by the C function. Special read-only attributes: '
- '"__doc__"\n'
- 'is the function’s documentation string, or "None" if unavailable;\n'
- '"__name__" is the function’s name; "__self__" is set to "None" '
- '(but\n'
- 'see the next item); "__module__" is the name of the module the\n'
- 'function was defined in or "None" if unavailable.\n'
+ 'determined by the C function. Special read-only attributes:\n'
+ '\n'
+ '* "__doc__" is the function’s documentation string, or "None" if\n'
+ ' unavailable. See "function.__doc__".\n'
+ '\n'
+ '* "__name__" is the function’s name. See "function.__name__".\n'
+ '\n'
+ '* "__self__" is set to "None" (but see the next item).\n'
+ '\n'
+ '* "__module__" is the name of the module the function was defined '
+ 'in\n'
+ ' or "None" if unavailable. See "function.__module__".\n'
'\n'
'\n'
'Built-in methods\n'
'argument. An example of a built-in method is "alist.append()",\n'
'assuming *alist* is a list object. In this case, the special '
'read-only\n'
- 'attribute "__self__" is set to the object denoted by *alist*.\n'
+ 'attribute "__self__" is set to the object denoted by *alist*. (The\n'
+ 'attribute has the same semantics as it does with "other instance\n'
+ 'methods".)\n'
'\n'
'\n'
'Classes\n'
'statement, or by calling functions such as '
'"importlib.import_module()"\n'
'and built-in "__import__()". A module object has a namespace\n'
- 'implemented by a dictionary object (this is the dictionary '
- 'referenced\n'
- 'by the "__globals__" attribute of functions defined in the '
- 'module).\n'
- 'Attribute references are translated to lookups in this dictionary,\n'
- 'e.g., "m.x" is equivalent to "m.__dict__["x"]". A module object '
- 'does\n'
- 'not contain the code object used to initialize the module (since '
- 'it\n'
- 'isn’t needed once the initialization is done).\n'
+ 'implemented by a "dictionary" object (this is the dictionary\n'
+ 'referenced by the "__globals__" attribute of functions defined in '
+ 'the\n'
+ 'module). Attribute references are translated to lookups in this\n'
+ 'dictionary, e.g., "m.x" is equivalent to "m.__dict__["x"]". A '
+ 'module\n'
+ 'object does not contain the code object used to initialize the '
+ 'module\n'
+ '(since it isn’t needed once the initialization is done).\n'
'\n'
'Attribute assignment updates the module’s namespace dictionary, '
'e.g.,\n'
'a\n'
'class method object, it is transformed into an instance method '
'object\n'
- 'whose "__self__" attribute is "C". When it would yield a static\n'
- 'method object, it is transformed into the object wrapped by the '
- 'static\n'
- 'method object. See section Implementing Descriptors for another way '
- 'in\n'
- 'which attributes retrieved from a class may differ from those '
- 'actually\n'
- 'contained in its "__dict__".\n'
+ 'whose "__self__" attribute is "C". When it would yield a\n'
+ '"staticmethod" object, it is transformed into the object wrapped '
+ 'by\n'
+ 'the static method object. See section Implementing Descriptors for\n'
+ 'another way in which attributes retrieved from a class may differ '
+ 'from\n'
+ 'those actually contained in its "__dict__".\n'
'\n'
'Class attribute assignments update the class’s dictionary, never '
'the\n'
'code objects are immutable and contain no references (directly or\n'
'indirectly) to mutable objects.\n'
'\n'
- 'Special read-only attributes: "co_name" gives the function name;\n'
- '"co_qualname" gives the fully qualified function name; '
- '"co_argcount"\n'
- 'is the total number of positional arguments (including '
- 'positional-only\n'
- 'arguments and arguments with default values); "co_posonlyargcount" '
- 'is\n'
- 'the number of positional-only arguments (including arguments with\n'
- 'default values); "co_kwonlyargcount" is the number of keyword-only\n'
- 'arguments (including arguments with default values); "co_nlocals" '
- 'is\n'
- 'the number of local variables used by the function (including\n'
- 'arguments); "co_varnames" is a tuple containing the names of the '
- 'local\n'
- 'variables (starting with the argument names); "co_cellvars" is a '
- 'tuple\n'
- 'containing the names of local variables that are referenced by '
- 'nested\n'
- 'functions; "co_freevars" is a tuple containing the names of free\n'
- 'variables; "co_code" is a string representing the sequence of '
- 'bytecode\n'
- 'instructions; "co_consts" is a tuple containing the literals used '
- 'by\n'
- 'the bytecode; "co_names" is a tuple containing the names used by '
- 'the\n'
- 'bytecode; "co_filename" is the filename from which the code was\n'
- 'compiled; "co_firstlineno" is the first line number of the '
- 'function;\n'
- '"co_lnotab" is a string encoding the mapping from bytecode offsets '
- 'to\n'
- 'line numbers (for details see the source code of the interpreter, '
- 'is\n'
- 'deprecated since 3.12 and may be removed in 3.14); "co_stacksize" '
- 'is\n'
- 'the required stack size; "co_flags" is an integer encoding a number '
- 'of\n'
- 'flags for the interpreter.\n'
+ '\n'
+ 'Special read-only attributes\n'
+ '~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n'
+ '\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_name | The function '
+ 'name |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_qualname | The fully '
+ 'qualified function name |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_argcount | The total '
+ 'number of positional *parameters* |\n'
+ '| | (including '
+ 'positional-only parameters and |\n'
+ '| | parameters '
+ 'with default values) that the function |\n'
+ '| | '
+ 'has |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_posonlyargcount | The number '
+ 'of positional-only *parameters* |\n'
+ '| | (including '
+ 'arguments with default values) that the |\n'
+ '| | function '
+ 'has |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_kwonlyargcount | The number '
+ 'of keyword-only *parameters* (including |\n'
+ '| | arguments '
+ 'with default values) that the function |\n'
+ '| | '
+ 'has |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_nlocals | The number '
+ 'of local variables used by the function |\n'
+ '| | (including '
+ 'parameters) |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_varnames | A "tuple" '
+ 'containing the names of the local |\n'
+ '| | variables in '
+ 'the function (starting with the |\n'
+ '| | parameter '
+ 'names) |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_cellvars | A "tuple" '
+ 'containing the names of local variables |\n'
+ '| | that are '
+ 'referenced by nested functions inside the |\n'
+ '| | '
+ 'function |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_freevars | A "tuple" '
+ 'containing the names of free variables |\n'
+ '| | in the '
+ 'function |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_code | A string '
+ 'representing the sequence of *bytecode* |\n'
+ '| | instructions '
+ 'in the function |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_consts | A "tuple" '
+ 'containing the literals used by the |\n'
+ '| | *bytecode* '
+ 'in the function |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_names | A "tuple" '
+ 'containing the names used by the |\n'
+ '| | *bytecode* '
+ 'in the function |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_filename | The name of '
+ 'the file from which the code was |\n'
+ '| | '
+ 'compiled |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_firstlineno | The line '
+ 'number of the first line of the function |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_lnotab | A string '
+ 'encoding the mapping from *bytecode* |\n'
+ '| | offsets to '
+ 'line numbers. For details, see the |\n'
+ '| | source code '
+ 'of the interpreter. Deprecated since |\n'
+ '| | version '
+ '3.12: This attribute of code objects is |\n'
+ '| | deprecated, '
+ 'and may be removed in Python 3.14. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_stacksize | The required '
+ 'stack size of the code object |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| codeobject.co_flags | An "integer" '
+ 'encoding a number of flags for the |\n'
+ '| | '
+ 'interpreter. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
'\n'
'The following flag bits are defined for "co_flags": bit "0x04" is '
'set\n'
'number of positional arguments; bit "0x08" is set if the function '
'uses\n'
'the "**keywords" syntax to accept arbitrary keyword arguments; bit\n'
- '"0x20" is set if the function is a generator.\n'
+ '"0x20" is set if the function is a generator. See Code Objects Bit\n'
+ 'Flags for details on the semantics of each flags that might be\n'
+ 'present.\n'
'\n'
'Future feature declarations ("from __future__ import division") '
'also\n'
'is the documentation string of the function, or "None" if '
'undefined.\n'
'\n'
+ '\n'
+ 'Methods on code objects\n'
+ '~~~~~~~~~~~~~~~~~~~~~~~\n'
+ '\n'
'codeobject.co_positions()\n'
'\n'
- ' Returns an iterable over the source code positions of each '
- 'bytecode\n'
- ' instruction in the code object.\n'
+ ' Returns an iterable over the source code positions of each\n'
+ ' *bytecode* instruction in the code object.\n'
'\n'
- ' The iterator returns tuples containing the "(start_line, '
- 'end_line,\n'
- ' start_column, end_column)". The *i-th* tuple corresponds to the\n'
- ' position of the source code that compiled to the *i-th*\n'
+ ' The iterator returns "tuple"s containing the "(start_line,\n'
+ ' end_line, start_column, end_column)". The *i-th* tuple '
+ 'corresponds\n'
+ ' to the position of the source code that compiled to the *i-th*\n'
' instruction. Column information is 0-indexed utf-8 byte offsets '
'on\n'
' the given source line.\n'
'the\n'
' "PYTHONNODEBUGRANGES" environment variable can be used.\n'
'\n'
+ 'codeobject.co_lines()\n'
'\n'
- 'Frame objects\n'
- '-------------\n'
+ ' Returns an iterator that yields information about successive '
+ 'ranges\n'
+ ' of *bytecode*s. Each item yielded is a "(start, end, lineno)"\n'
+ ' "tuple":\n'
'\n'
- 'Frame objects represent execution frames. They may occur in '
- 'traceback\n'
- 'objects (see below), and are also passed to registered trace\n'
- 'functions.\n'
+ ' * "start" (an "int") represents the offset (inclusive) of the '
+ 'start\n'
+ ' of the *bytecode* range\n'
'\n'
- 'Special read-only attributes: "f_back" is to the previous stack '
- 'frame\n'
- '(towards the caller), or "None" if this is the bottom stack frame;\n'
- '"f_code" is the code object being executed in this frame; '
- '"f_locals"\n'
- 'is the dictionary used to look up local variables; "f_globals" is '
- 'used\n'
- 'for global variables; "f_builtins" is used for built-in '
- '(intrinsic)\n'
- 'names; "f_lasti" gives the precise instruction (this is an index '
- 'into\n'
- 'the bytecode string of the code object).\n'
+ ' * "end" (an "int") represents the offset (exclusive) of the end '
+ 'of\n'
+ ' the *bytecode* range\n'
'\n'
- 'Accessing "f_code" raises an auditing event "object.__getattr__" '
- 'with\n'
- 'arguments "obj" and ""f_code"".\n'
+ ' * "lineno" is an "int" representing the line number of the\n'
+ ' *bytecode* range, or "None" if the bytecodes in the given '
+ 'range\n'
+ ' have no line number\n'
'\n'
- 'Special writable attributes: "f_trace", if not "None", is a '
- 'function\n'
- 'called for various events during code execution (this is used by '
+ ' The items yielded will have the following properties:\n'
+ '\n'
+ ' * The first range yielded will have a "start" of 0.\n'
+ '\n'
+ ' * The "(start, end)" ranges will be non-decreasing and '
+ 'consecutive.\n'
+ ' That is, for any pair of "tuple"s, the "start" of the second '
+ 'will\n'
+ ' be equal to the "end" of the first.\n'
+ '\n'
+ ' * No range will be backwards: "end >= start" for all triples.\n'
+ '\n'
+ ' * The last "tuple" yielded will have "end" equal to the size of '
'the\n'
- 'debugger). Normally an event is triggered for each new source line '
- '-\n'
- 'this can be disabled by setting "f_trace_lines" to "False".\n'
- '\n'
- 'Implementations *may* allow per-opcode events to be requested by\n'
- 'setting "f_trace_opcodes" to "True". Note that this may lead to\n'
- 'undefined interpreter behaviour if exceptions raised by the trace\n'
- 'function escape to the function being traced.\n'
- '\n'
- '"f_lineno" is the current line number of the frame — writing to '
- 'this\n'
- 'from within a trace function jumps to the given line (only for the\n'
- 'bottom-most frame). A debugger can implement a Jump command (aka '
- 'Set\n'
- 'Next Statement) by writing to f_lineno.\n'
+ ' *bytecode*.\n'
+ '\n'
+ ' Zero-width ranges, where "start == end", are allowed. '
+ 'Zero-width\n'
+ ' ranges are used for lines that are present in the source code, '
+ 'but\n'
+ ' have been eliminated by the *bytecode* compiler.\n'
+ '\n'
+ ' New in version 3.10.\n'
+ '\n'
+ ' See also:\n'
+ '\n'
+ ' **PEP 626** - Precise line numbers for debugging and other '
+ 'tools.\n'
+ ' The PEP that introduced the "co_lines()" method.\n'
+ '\n'
+ '\n'
+ 'Frame objects\n'
+ '-------------\n'
+ '\n'
+ 'Frame objects represent execution frames. They may occur in '
+ 'traceback\n'
+ 'objects, and are also passed to registered trace functions.\n'
+ '\n'
+ '\n'
+ 'Special read-only attributes\n'
+ '~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n'
+ '\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| frame.f_back | Points to '
+ 'the previous stack frame (towards the |\n'
+ '| | caller), or '
+ '"None" if this is the bottom stack |\n'
+ '| | '
+ 'frame |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| frame.f_code | The code '
+ 'object being executed in this frame. |\n'
+ '| | Accessing '
+ 'this attribute raises an auditing event |\n'
+ '| | '
+ '"object.__getattr__" with arguments "obj" and |\n'
+ '| | '
+ '""f_code"". |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| frame.f_locals | The '
+ 'dictionary used by the frame to look up local |\n'
+ '| | '
+ 'variables |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| frame.f_globals | The '
+ 'dictionary used by the frame to look up global |\n'
+ '| | '
+ 'variables |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| frame.f_builtins | The '
+ 'dictionary used by the frame to look up built- |\n'
+ '| | in '
+ '(intrinsic) names |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| frame.f_lasti | The “precise '
+ 'instruction” of the frame object |\n'
+ '| | (this is an '
+ 'index into the *bytecode* string of |\n'
+ '| | the code '
+ 'object) |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '\n'
+ '\n'
+ 'Special writable attributes\n'
+ '~~~~~~~~~~~~~~~~~~~~~~~~~~~\n'
+ '\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| frame.f_trace | If not '
+ '"None", this is a function called for |\n'
+ '| | various '
+ 'events during code execution (this is used |\n'
+ '| | by '
+ 'debuggers). Normally an event is triggered for |\n'
+ '| | each new '
+ 'source line (see "f_trace_lines"). |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| frame.f_trace_lines | Set this '
+ 'attribute to "False" to disable |\n'
+ '| | triggering a '
+ 'tracing event for each source line. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| frame.f_trace_opcodes | Set this '
+ 'attribute to "True" to allow per-opcode |\n'
+ '| | events to be '
+ 'requested. Note that this may lead to |\n'
+ '| | undefined '
+ 'interpreter behaviour if exceptions |\n'
+ '| | raised by '
+ 'the trace function escape to the |\n'
+ '| | function '
+ 'being traced. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| frame.f_lineno | The current '
+ 'line number of the frame – writing to |\n'
+ '| | this from '
+ 'within a trace function jumps to the |\n'
+ '| | given line '
+ '(only for the bottom-most frame). A |\n'
+ '| | debugger can '
+ 'implement a Jump command (aka Set |\n'
+ '| | Next '
+ 'Statement) by writing to this attribute. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '\n'
+ '\n'
+ 'Frame object methods\n'
+ '~~~~~~~~~~~~~~~~~~~~\n'
'\n'
'Frame objects support one method:\n'
'\n'
'\n'
' This method clears all references to local variables held by '
'the\n'
- ' frame. Also, if the frame belonged to a generator, the '
+ ' frame. Also, if the frame belonged to a *generator*, the '
'generator\n'
' is finalized. This helps break reference cycles involving '
'frame\n'
'Traceback objects\n'
'-----------------\n'
'\n'
- 'Traceback objects represent a stack trace of an exception. A\n'
+ 'Traceback objects represent the stack trace of an exception. A\n'
'traceback object is implicitly created when an exception occurs, '
'and\n'
'may also be explicitly created by calling "types.TracebackType".\n'
'\n'
+ 'Changed in version 3.7: Traceback objects can now be explicitly\n'
+ 'instantiated from Python code.\n'
+ '\n'
'For implicitly created tracebacks, when the search for an '
'exception\n'
'handler unwinds the execution stack, at each unwound level a '
'linked\n'
'to form a full stack trace.\n'
'\n'
- 'Special read-only attributes: "tb_frame" points to the execution '
- 'frame\n'
- 'of the current level; "tb_lineno" gives the line number where the\n'
- 'exception occurred; "tb_lasti" indicates the precise instruction. '
- 'The\n'
- 'line number and last instruction in the traceback may differ from '
+ 'Special read-only attributes:\n'
+ '\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| traceback.tb_frame | Points to '
+ 'the execution frame of the current |\n'
+ '| | level. '
+ 'Accessing this attribute raises an |\n'
+ '| | auditing '
+ 'event "object.__getattr__" with arguments |\n'
+ '| | "obj" and '
+ '""tb_frame"". |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| traceback.tb_lineno | Gives the '
+ 'line number where the exception occurred |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '| traceback.tb_lasti | Indicates '
+ 'the “precise instruction”. |\n'
+ '+----------------------------------------------------+----------------------------------------------------+\n'
+ '\n'
+ 'The line number and last instruction in the traceback may differ '
+ 'from\n'
+ 'the line number of its frame object if the exception occurred in a\n'
+ '"try" statement with no matching except clause or with a "finally"\n'
+ 'clause.\n'
+ '\n'
+ 'traceback.tb_next\n'
+ '\n'
+ ' The special writable attribute "tb_next" is the next level in '
'the\n'
- 'line number of its frame object if the exception occurred in a '
- '"try"\n'
- 'statement with no matching except clause or with a finally clause.\n'
- '\n'
- 'Accessing "tb_frame" raises an auditing event "object.__getattr__"\n'
- 'with arguments "obj" and ""tb_frame"".\n'
- '\n'
- 'Special writable attribute: "tb_next" is the next level in the '
- 'stack\n'
- 'trace (towards the frame where the exception occurred), or "None" '
- 'if\n'
- 'there is no next level.\n'
+ ' stack trace (towards the frame where the exception occurred), '
+ 'or\n'
+ ' "None" if there is no next level.\n'
'\n'
- 'Changed in version 3.7: Traceback objects can now be explicitly\n'
- 'instantiated from Python code, and the "tb_next" attribute of '
- 'existing\n'
- 'instances can be updated.\n'
+ ' Changed in version 3.7: This attribute is now writable\n'
'\n'
'\n'
'Slice objects\n'
'notation.\n'
'There are two flavors: built-in methods (such as "append()" '
'on lists)\n'
- 'and class instance methods. Built-in methods are described '
+ 'and class instance method. Built-in methods are described '
'with the\n'
'types that support them.\n'
'\n'
'namespace)\n'
'through an instance, you get a special object: a *bound '
'method* (also\n'
- 'called *instance method*) object. When called, it will add '
- 'the "self"\n'
+ 'called instance method) object. When called, it will add the '
+ '"self"\n'
'argument to the argument list. Bound methods have two '
'special read-\n'
'only attributes: "m.__self__" is the object on which the '
'arbitrary\n'
'attributes. However, since method attributes are actually '
'stored on\n'
- 'the underlying function object ("meth.__func__"), setting '
+ 'the underlying function object ("method.__func__"), setting '
'method\n'
'attributes on bound methods is disallowed. Attempting to '
'set an\n'
' >>> c.method.whoami\n'
" 'my name is method'\n"
'\n'
- 'See The standard type hierarchy for more information.\n',
+ 'See Instance methods for more information.\n',
'typesmodules': 'Modules\n'
'*******\n'
'\n'
--- /dev/null
+.. date: 2024-01-02-19-52-23
+.. gh-issue: 113659
+.. nonce: DkmnQc
+.. release date: 2024-01-17
+.. section: Security
+
+Skip ``.pth`` files with names starting with a dot or hidden file attribute.
+
+..
+
+.. date: 2023-12-06-14-06-59
+.. gh-issue: 112302
+.. nonce: 3bl20f
+.. section: Security
+
+Created a Software Bill-of-Materials document and tooling for tracking
+dependencies.
+
+..
+
+.. date: 2024-01-11-16-54-55
+.. gh-issue: 107901
+.. nonce: Td3JPI
+.. section: Core and Builtins
+
+Compiler duplicates basic blocks that have an eval breaker check, no line
+number, and multiple predecessors.
+
+..
+
+.. date: 2024-01-11-14-03-31
+.. gh-issue: 107901
+.. nonce: U65IyC
+.. section: Core and Builtins
+
+A jump leaving an exception handler back to normal code no longer checks the
+eval breaker.
+
+..
+
+.. date: 2024-01-11-01-28-25
+.. gh-issue: 113655
+.. nonce: Mfioxp
+.. section: Core and Builtins
+
+Set the C recursion limit to 4000 on Windows, and 10000 on Linux/OSX. This
+seems to be near the sweet spot to maintain safety, but not compromise
+backwards compatibility.
+
+..
+
+.. date: 2024-01-09-23-01-00
+.. gh-issue: 113710
+.. nonce: pe3flY
+.. section: Core and Builtins
+
+Add typed stack effects to the interpreter DSL, along with various
+instruction annotations.
+
+..
+
+.. date: 2024-01-08-14-34-02
+.. gh-issue: 77046
+.. nonce: sDUh2d
+.. section: Core and Builtins
+
+On Windows, file descriptors wrapping Windows handles are now created non
+inheritable by default (:pep:`446`). Patch by Zackery Spytz and Victor
+Stinner.
+
+..
+
+.. date: 2024-01-08-05-36-59
+.. gh-issue: 113853
+.. nonce: lm-6_a
+.. section: Core and Builtins
+
+Guarantee that all executors make progress. This then guarantees that tier 2
+execution always makes progress.
+
+..
+
+.. date: 2024-01-05-21-28-48
+.. gh-issue: 113753
+.. nonce: 2HNiuq
+.. section: Core and Builtins
+
+Fix an issue where the finalizer of ``PyAsyncGenASend`` objects might not be
+called if they were allocated from a free list.
+
+..
+
+.. date: 2024-01-05-00-49-14
+.. gh-issue: 107901
+.. nonce: 6JRrb6
+.. section: Core and Builtins
+
+Compiler changed so that synthetic jumps which are not at loop end no longer
+check the eval breaker.
+
+..
+
+.. date: 2024-01-04-17-15-30
+.. gh-issue: 113703
+.. nonce: Zsk0pY
+.. section: Core and Builtins
+
+Fix a regression in the :mod:`codeop` module that was causing it to
+incorrectly identify incomplete f-strings. Patch by Pablo Galindo
+
+..
+
+.. date: 2024-01-03-12-19-37
+.. gh-issue: 89811
+.. nonce: cZOj6d
+.. section: Core and Builtins
+
+Check for a valid ``tp_version_tag`` before performing bytecode
+specializations that rely on this value being usable.
+
+..
+
+.. date: 2024-01-02-17-22-57
+.. gh-issue: 111488
+.. nonce: EJH3Oh
+.. section: Core and Builtins
+
+Changed error message in case of no 'in' keyword after 'for' in list
+comprehensions
+
+..
+
+.. date: 2024-01-02-11-14-29
+.. gh-issue: 113657
+.. nonce: CQo9vF
+.. section: Core and Builtins
+
+Fix an issue that caused important instruction pointer updates to be
+optimized out of tier two traces.
+
+..
+
+.. date: 2024-01-01-23-57-24
+.. gh-issue: 113603
+.. nonce: ySwovr
+.. section: Core and Builtins
+
+Fixed bug where a redundant NOP is not removed, causing an assertion to fail
+in the compiler in debug mode.
+
+..
+
+.. date: 2024-01-01-00-07-02
+.. gh-issue: 113602
+.. nonce: cWuTzk
+.. section: Core and Builtins
+
+Fix an error that was causing the parser to try to overwrite existing errors
+and crashing in the process. Patch by Pablo Galindo
+
+..
+
+.. date: 2023-12-31-07-46-01
+.. gh-issue: 113486
+.. nonce: uki19C
+.. section: Core and Builtins
+
+No longer issue spurious ``PY_UNWIND`` events for optimized calls to
+classes.
+
+..
+
+.. date: 2023-12-20-18-27-11
+.. gh-issue: 113297
+.. nonce: BZyAI_
+.. section: Core and Builtins
+
+Fix segfault in the compiler on with statement with 19 context managers.
+
+..
+
+.. date: 2023-12-20-08-54-54
+.. gh-issue: 113212
+.. nonce: 62AUlw
+.. section: Core and Builtins
+
+Improve :py:class:`super` error messages.
+
+..
+
+.. date: 2023-12-19-22-03-43
+.. gh-issue: 111375
+.. nonce: M9vuA6
+.. section: Core and Builtins
+
+Only use ``NULL`` in the exception stack to indicate an exception was
+handled. Patch by Carey Metcalfe.
+
+..
+
+.. date: 2023-12-15-16-26-01
+.. gh-issue: 112215
+.. nonce: xJS6_6
+.. section: Core and Builtins
+
+Increase the C recursion limit by a factor of 3 for non-debug builds, except
+for webassembly and s390 platforms which are unchanged. This mitigates some
+regressions in 3.12 with deep recursion mixing builtin (C) and Python code.
+
+..
+
+.. date: 2023-12-14-20-08-35
+.. gh-issue: 113054
+.. nonce: e20CtM
+.. section: Core and Builtins
+
+Fixed bug where a redundant NOP is not removed, causing an assertion to fail
+in the compiler in debug mode.
+
+..
+
+.. date: 2023-12-13-11-45-53
+.. gh-issue: 106905
+.. nonce: 5dslTN
+.. section: Core and Builtins
+
+Use per AST-parser state rather than global state to track recursion depth
+within the AST parser to prevent potential race condition due to
+simultaneous parsing.
+
+The issue primarily showed up in 3.11 by multithreaded users of
+:func:`ast.parse`. In 3.12 a change to when garbage collection can be
+triggered prevented the race condition from occurring.
+
+..
+
+.. date: 2023-12-12-04-53-19
+.. gh-issue: 108866
+.. nonce: xbJ-9a
+.. section: Core and Builtins
+
+Change the API and contract of ``_PyExecutorObject`` to return the
+next_instr pointer, instead of the frame, and to always execute at least one
+instruction.
+
+..
+
+.. date: 2023-12-11-19-53-32
+.. gh-issue: 90350
+.. nonce: -FQy3E
+.. section: Core and Builtins
+
+Optimize builtin functions :func:`min` and :func:`max`.
+
+..
+
+.. date: 2023-12-11-00-50-00
+.. gh-issue: 112943
+.. nonce: RHNZie
+.. section: Core and Builtins
+
+Correctly compute end column offsets for multiline tokens in the
+:mod:`tokenize` module. Patch by Pablo Galindo
+
+..
+
+.. date: 2023-12-07-13-19-55
+.. gh-issue: 112125
+.. nonce: 4ADN7i
+.. section: Core and Builtins
+
+Fix None.__ne__(None) returning NotImplemented instead of False
+
+..
+
+.. date: 2023-12-07-12-00-04
+.. gh-issue: 74616
+.. nonce: kgTGVb
+.. section: Core and Builtins
+
+:func:`input` now raises a ValueError when output on the terminal if the
+prompt contains embedded null characters instead of silently truncating it.
+
+..
+
+.. date: 2023-12-05-20-41-58
+.. gh-issue: 112716
+.. nonce: hOcx0Y
+.. section: Core and Builtins
+
+Fix SystemError in the ``import`` statement and in ``__reduce__()`` methods
+of builtin types when ``__builtins__`` is not a dict.
+
+..
+
+.. date: 2023-12-04-23-09-07
+.. gh-issue: 112730
+.. nonce: BXHlFa
+.. section: Core and Builtins
+
+Use color to highlight error locations in tracebacks. Patch by Pablo Galindo
+
+..
+
+.. date: 2023-12-03-19-34-51
+.. gh-issue: 112625
+.. nonce: QWTlwS
+.. section: Core and Builtins
+
+Fixes a bug where a bytearray object could be cleared while iterating over
+an argument in the ``bytearray.join()`` method that could result in reading
+memory after it was freed.
+
+..
+
+.. date: 2023-12-03-15-29-53
+.. gh-issue: 112660
+.. nonce: gldBvh
+.. section: Core and Builtins
+
+Do not clear unexpected errors during formatting error messages for
+ImportError and AttributeError for modules.
+
+..
+
+.. date: 2023-12-01-19-02-21
+.. gh-issue: 105967
+.. nonce: Puq5Cn
+.. section: Core and Builtins
+
+Workaround a bug in Apple's macOS platform zlib library where
+:func:`zlib.crc32` and :func:`binascii.crc32` could produce incorrect
+results on multi-gigabyte inputs. Including when using :mod:`zipfile` on
+zips containing large data.
+
+..
+
+.. date: 2023-12-01-08-16-10
+.. gh-issue: 95754
+.. nonce: ae4gwy
+.. section: Core and Builtins
+
+Provide a better error message when accessing invalid attributes on
+partially initialized modules. The origin of the module being accessed is
+now included in the message to help with the common issue of shadowing other
+modules.
+
+..
+
+.. date: 2023-11-27-18-55-30
+.. gh-issue: 112217
+.. nonce: SwFLMj
+.. section: Core and Builtins
+
+Add check for the type of ``__cause__`` returned from calling the type ``T``
+in ``raise from T``.
+
+..
+
+.. date: 2023-11-26-21-30-11
+.. gh-issue: 111058
+.. nonce: q4DqDY
+.. section: Core and Builtins
+
+Change coro.cr_frame/gen.gi_frame to return ``None`` after the
+coroutine/generator has been closed. This fixes a bug where
+:func:`~inspect.getcoroutinestate` and :func:`~inspect.getgeneratorstate`
+return the wrong state for a closed coroutine/generator.
+
+..
+
+.. date: 2023-11-25-22-58-49
+.. gh-issue: 112388
+.. nonce: MU3cIM
+.. section: Core and Builtins
+
+Fix an error that was causing the parser to try to overwrite tokenizer
+errors. Patch by pablo Galindo
+
+..
+
+.. date: 2023-11-25-22-39-44
+.. gh-issue: 112387
+.. nonce: AbBq5W
+.. section: Core and Builtins
+
+Fix error positions for decoded strings with backwards tokenize errors.
+Patch by Pablo Galindo
+
+..
+
+.. date: 2023-11-25-20-36-38
+.. gh-issue: 99606
+.. nonce: fDY5hK
+.. section: Core and Builtins
+
+Make code generated for an empty f-string identical to the code of an empty
+normal string.
+
+..
+
+.. date: 2023-11-24-14-10-57
+.. gh-issue: 112367
+.. nonce: 9z1IDp
+.. section: Core and Builtins
+
+Avoid undefined behaviour when using the perf trampolines by not freeing the
+code arenas until shutdown. Patch by Pablo Galindo
+
+..
+
+.. date: 2023-11-22-13-17-54
+.. gh-issue: 112320
+.. nonce: EddM51
+.. section: Core and Builtins
+
+The Tier 2 translator now tracks the confidence level for staying "on trace"
+(i.e. not exiting back to the Tier 1 interpreter) for branch instructions
+based on the number of bits set in the branch "counter". Trace translation
+ends when the confidence drops below 1/3rd.
+
+..
+
+.. date: 2023-09-21-11-54-28
+.. gh-issue: 109598
+.. nonce: CRidSy
+.. section: Core and Builtins
+
+:c:func:`PyComplex_RealAsDouble`/:c:func:`PyComplex_ImagAsDouble` now tries
+to convert an object to a :class:`complex` instance using its
+``__complex__()`` method before falling back to the ``__float__()`` method.
+Patch by Sergey B Kirpichev.
+
+..
+
+.. date: 2022-07-07-05-37-53
+.. gh-issue: 94606
+.. nonce: hojJ54
+.. section: Core and Builtins
+
+Fix UnicodeEncodeError when :func:`email.message.get_payload` reads a
+message with a Unicode surrogate character and the message content is not
+well-formed for surrogateescape encoding. Patch by Sidney Markowitz.
+
+..
+
+.. bpo: 21861
+.. date: 2022-01-23-18-00-10
+.. nonce: N8E1zw
+.. section: Core and Builtins
+
+Use the object's actual class name in :meth:`_io.FileIO.__repr__`,
+:meth:`_io._WindowsConsoleIO` and :meth:`_io.TextIOWrapper.__repr__`, to
+make these methods subclass friendly.
+
+..
+
+.. bpo: 45369
+.. date: 2021-10-05-05-00-16
+.. nonce: tluk_X
+.. section: Core and Builtins
+
+Remove LibreSSL workarounds as per :pep:`644`.
+
+..
+
+.. bpo: 34392
+.. date: 2018-08-13-13-25-15
+.. nonce: 9kIlMF
+.. section: Core and Builtins
+
+Added :func:`sys._is_interned`.
+
+..
+
+.. date: 2024-01-15-12-12-54
+.. gh-issue: 114077
+.. nonce: KcVnfj
+.. section: Library
+
+Fix possible :exc:`OverflowError` in :meth:`socket.socket.sendfile` when
+pass *count* larger than 2 GiB on 32-bit platform.
+
+..
+
+.. date: 2024-01-13-14-20-31
+.. gh-issue: 111803
+.. nonce: llpLAw
+.. section: Library
+
+:mod:`plistlib` now supports loading more deeply nested lists in binary
+format.
+
+..
+
+.. date: 2024-01-13-11-34-29
+.. gh-issue: 114014
+.. nonce: WRHifN
+.. section: Library
+
+Fixed a bug in :class:`fractions.Fraction` where an invalid string using
+``d`` in the decimals part creates a different error compared to other
+invalid letters/characters. Patch by Jeremiah Gabriel Pascual.
+
+..
+
+.. date: 2024-01-11-22-22-51
+.. gh-issue: 108364
+.. nonce: QH7C-1
+.. section: Library
+
+:meth:`sqlite3.Connection.iterdump` now ensures that foreign key support is
+disabled before dumping the database schema, if there is any foreign key
+violation. Patch by Erlend E. Aasland and Mariusz Felisiak.
+
+..
+
+.. date: 2024-01-11-16-58-10
+.. gh-issue: 113971
+.. nonce: skJZ4g
+.. section: Library
+
+The :class:`zipfile.ZipInfo` previously protected ``._compresslevel``
+attribute has been made public as ``.compress_level`` with the old
+``_compresslevel`` name remaining available as a property to retain
+compatibility.
+
+..
+
+.. date: 2024-01-10-12-03-38
+.. gh-issue: 113877
+.. nonce: RxKlrQ
+.. section: Library
+
+Fix :mod:`tkinter` method ``winfo_pathname()`` on 64-bit Windows.
+
+..
+
+.. date: 2024-01-09-18-07-08
+.. gh-issue: 113868
+.. nonce: DlZG2r
+.. section: Library
+
+Added :data:`mmap.MAP_NORESERVE`, :data:`mmap.MAP_NOEXTEND`,
+:data:`mmap.MAP_HASSEMAPHORE`, :data:`mmap.MAP_NOCACHE`,
+:data:`mmap.MAP_JIT`, :data:`mmap.MAP_RESILIENT_CODESIGN`,
+:data:`mmap.MAP_RESILIENT_MEDIA`, :data:`mmap.MAP_32BIT`,
+:data:`mmap.MAP_TRANSLATED_ALLOW_EXECUTE`, :data:`mmap.MAP_UNIX03` and
+:data:`mmap.MAP_TPRO`. All of them are ``mmap(2)`` flags on macOS.
+
+..
+
+.. date: 2024-01-09-12-19-55
+.. gh-issue: 113848
+.. nonce: kXoCy0
+.. section: Library
+
+:func:`asyncio.TaskGroup()` and :func:`asyncio.timeout()` context managers
+now handle :exc:`~asyncio.CancelledError` subclasses as well as exact
+:exc:`!CancelledError`.
+
+..
+
+.. date: 2024-01-09-08-59-43
+.. gh-issue: 113661
+.. nonce: asvXSx
+.. section: Library
+
+unittest runner: Don't exit 5 if tests were skipped. The intention of
+exiting 5 was to detect issues where the test suite wasn't discovered at
+all. If we skipped tests, it was correctly discovered.
+
+..
+
+.. date: 2024-01-08-19-38-42
+.. gh-issue: 96037
+.. nonce: Yr2Y1C
+.. section: Library
+
+Insert :exc:`TimeoutError` in the context of the exception that was raised
+during exiting an expired :func:`asyncio.timeout` block.
+
+..
+
+.. date: 2024-01-08-14-57-09
+.. gh-issue: 113781
+.. nonce: IoTnwi
+.. section: Library
+
+Silence unraisable AttributeError when warnings are emitted during Python
+finalization.
+
+..
+
+.. date: 2024-01-07-23-31-44
+.. gh-issue: 113238
+.. nonce: wFWBfW
+.. section: Library
+
+Add ``Anchor`` to ``importlib.resources`` (in order for the code to comply
+with the documentation)
+
+..
+
+.. date: 2024-01-07-13-36-03
+.. gh-issue: 111693
+.. nonce: xN2LuL
+.. section: Library
+
+:func:`asyncio.Condition.wait()` now re-raises the same
+:exc:`CancelledError` instance that may have caused it to be interrupted.
+Fixed race condition in :func:`asyncio.Semaphore.aquire` when interrupted
+with a :exc:`CancelledError`.
+
+..
+
+.. date: 2024-01-07-11-45-56
+.. gh-issue: 113791
+.. nonce: XF5xSW
+.. section: Library
+
+Add ``CLOCK_MONOTONIC_RAW_APPROX`` and ``CLOCK_UPTIME_RAW_APPROX`` to
+:mod:`time` on macOS. These are clocks available on macOS 10.12 or later.
+
+..
+
+.. date: 2024-01-07-00-56-41
+.. gh-issue: 112932
+.. nonce: OfhUu7
+.. section: Library
+
+Restore the ability for :mod:`zipfile` to ``extractall`` from zip files with
+a "/" directory entry in them as is commonly added to zips by some wiki or
+bug tracker data exporters.
+
+..
+
+.. date: 2024-01-05-21-52-59
+.. gh-issue: 113568
+.. nonce: _0FkpZ
+.. section: Library
+
+Raise deprecation warnings from :class:`pathlib.PurePath` and not its
+private base class ``PurePathBase``.
+
+..
+
+.. date: 2024-01-05-12-42-07
+.. gh-issue: 113594
+.. nonce: 4t8HiR
+.. section: Library
+
+Fix :exc:`UnicodeEncodeError` in :mod:`email` when re-fold lines that
+contain unknown-8bit encoded part followed by non-unknown-8bit encoded part.
+
+..
+
+.. date: 2024-01-03-14-19-26
+.. gh-issue: 113538
+.. nonce: ahuBCo
+.. section: Library
+
+In :meth:`asyncio.StreamReaderProtocol.connection_made`, there is callback
+that logs an error if the task wrapping the "connected callback" fails. This
+callback would itself fail if the task was cancelled. Prevent this by
+checking whether the task was cancelled first. If so, close the transport
+but don't log an error.
+
+..
+
+.. date: 2024-01-02-12-41-59
+.. gh-issue: 113626
+.. nonce: i1PPY_
+.. section: Library
+
+Add support for the *allow_code* argument in the :mod:`marshal` module.
+Passing ``allow_code=False`` prevents serialization and de-serialization of
+code objects which is incompatible between Python versions.
+
+..
+
+.. date: 2024-01-01-13-26-02
+.. gh-issue: 85567
+.. nonce: K4U15m
+.. section: Library
+
+Fix resource warnings for unclosed files in :mod:`pickle` and
+:mod:`pickletools` command line interfaces.
+
+..
+
+.. date: 2023-12-30-20-30-05
+.. gh-issue: 113537
+.. nonce: v1W5_X
+.. section: Library
+
+Support loads ``str`` in :func:`plistlib.loads`.
+
+..
+
+.. date: 2023-12-29-22-29-34
+.. gh-issue: 89850
+.. nonce: KnxiZA
+.. section: Library
+
+Add default implementations of :meth:`pickle.Pickler.persistent_id` and
+:meth:`pickle.Unpickler.persistent_load` methods in the C implementation.
+Calling ``super().persistent_id()`` and ``super().persistent_load()`` in
+subclasses of the C implementation of :class:`pickle.Pickler` and
+:class:`pickle.Unpickler` classes no longer causes infinite recursion.
+
+..
+
+.. date: 2023-12-29-17-57-45
+.. gh-issue: 113569
+.. nonce: qcRCEI
+.. section: Library
+
+Indicate if there were no actual calls in unittest
+:meth:`~unittest.mock.Mock.assert_has_calls` failure.
+
+..
+
+.. date: 2023-12-29-17-46-06
+.. gh-issue: 101225
+.. nonce: QaEyxF
+.. section: Library
+
+Increase the backlog for :class:`multiprocessing.connection.Listener`
+objects created by :mod:`multiprocessing.manager` and
+:mod:`multiprocessing.resource_sharer` to significantly reduce the risk of
+getting a connection refused error when creating a
+:class:`multiprocessing.connection.Connection` to them.
+
+..
+
+.. date: 2023-12-29-17-30-49
+.. gh-issue: 113568
+.. nonce: UpWNAI
+.. section: Library
+
+Raise audit events from :class:`pathlib.Path` and not its private base class
+``PathBase``.
+
+..
+
+.. date: 2023-12-28-14-36-20
+.. gh-issue: 113543
+.. nonce: 2iWkOR
+.. section: Library
+
+Make sure that ``webbrowser.MacOSXOSAScript`` sends ``webbrowser.open``
+audit event.
+
+..
+
+.. date: 2023-12-23-16-51-17
+.. gh-issue: 113028
+.. nonce: 3Jmdoj
+.. section: Library
+
+When a second reference to a string appears in the input to :mod:`pickle`,
+and the Python implementation is in use, we are guaranteed that a single
+copy gets pickled and a single object is shared when reloaded. Previously,
+in protocol 0, when a string contained certain characters (e.g. newline) it
+resulted in duplicate objects.
+
+..
+
+.. date: 2023-12-23-16-10-07
+.. gh-issue: 113421
+.. nonce: w7vs08
+.. section: Library
+
+Fix multiprocessing logger for ``%(filename)s``.
+
+..
+
+.. date: 2023-12-23-13-10-42
+.. gh-issue: 111784
+.. nonce: Nb4L1j
+.. section: Library
+
+Fix segfaults in the ``_elementtree`` module. Fix first segfault during
+deallocation of ``_elementtree.XMLParser`` instances by keeping strong
+reference to ``pyexpat`` module in module state for capsule lifetime. Fix
+second segfault which happens in the same deallocation process by keeping
+strong reference to ``_elementtree`` module in ``XMLParser`` structure for
+``_elementtree`` module lifetime.
+
+..
+
+.. date: 2023-12-22-20-49-52
+.. gh-issue: 113407
+.. nonce: C_O13_
+.. section: Library
+
+Fix import of :mod:`unittest.mock` when CPython is built without docstrings.
+
+..
+
+.. date: 2023-12-22-11-30-57
+.. gh-issue: 113320
+.. nonce: Vp5suS
+.. section: Library
+
+Fix regression in Python 3.12 where :class:`~typing.Protocol` classes that
+were not marked as :func:`runtime-checkable <typing.runtime_checkable>`
+would be unnecessarily introspected, potentially causing exceptions to be
+raised if the protocol had problematic members. Patch by Alex Waygood.
+
+..
+
+.. date: 2023-12-21-23-47-42
+.. gh-issue: 53502
+.. nonce: dercJI
+.. section: Library
+
+Add a new option ``aware_datetime`` in :mod:`plistlib` to loads or dumps
+aware datetime.
+
+..
+
+.. date: 2023-12-21-14-55-06
+.. gh-issue: 113358
+.. nonce: nRkiSL
+.. section: Library
+
+Fix rendering tracebacks with exceptions with a broken __getattr__
+
+..
+
+.. date: 2023-12-20-21-18-51
+.. gh-issue: 113214
+.. nonce: JcV9Mn
+.. section: Library
+
+Fix an ``AttributeError`` during asyncio SSL protocol aborts in SSL-over-SSL
+scenarios.
+
+..
+
+.. date: 2023-12-18-09-47-54
+.. gh-issue: 113246
+.. nonce: em930H
+.. section: Library
+
+Update bundled pip to 23.3.2.
+
+..
+
+.. date: 2023-12-17-13-56-30
+.. gh-issue: 87264
+.. nonce: RgfHCv
+.. section: Library
+
+Fixed tarfile list() method to show file type.
+
+..
+
+.. date: 2023-12-17-10-22-55
+.. gh-issue: 112182
+.. nonce: jLWGlr
+.. section: Library
+
+:meth:`asyncio.futures.Future.set_exception()` now transforms
+:exc:`StopIteration` into :exc:`RuntimeError` instead of hanging or other
+misbehavior. Patch contributed by Jamie Phan.
+
+..
+
+.. date: 2023-12-17-04-43-57
+.. gh-issue: 113225
+.. nonce: dhxhiZ
+.. section: Library
+
+Speed up :meth:`pathlib.Path.glob` by using :attr:`os.DirEntry.path` where
+possible.
+
+..
+
+.. date: 2023-12-16-23-56-42
+.. gh-issue: 113149
+.. nonce: 7LWgTS
+.. section: Library
+
+Improve error message when a JSON array or object contains a trailing comma.
+Patch by Carson Radtke.
+
+..
+
+.. date: 2023-12-16-10-58-34
+.. gh-issue: 113117
+.. nonce: 0zF7bH
+.. section: Library
+
+The :mod:`subprocess` module can now use the :func:`os.posix_spawn` function
+with ``close_fds=True`` on platforms where
+``posix_spawn_file_actions_addclosefrom_np`` is available. Patch by Jakub
+Kulik.
+
+..
+
+.. date: 2023-12-16-01-10-47
+.. gh-issue: 113199
+.. nonce: oDjnjL
+.. section: Library
+
+Make ``http.client.HTTPResponse.read1`` and
+``http.client.HTTPResponse.readline`` close IO after reading all data when
+content length is known. Patch by Illia Volochii.
+
+..
+
+.. date: 2023-12-15-21-33-42
+.. gh-issue: 113191
+.. nonce: Il155b
+.. section: Library
+
+Add support of :func:`os.fchmod` and a file descriptor in :func:`os.chmod`
+on Windows.
+
+..
+
+.. date: 2023-12-15-20-29-49
+.. gh-issue: 113188
+.. nonce: AvoraB
+.. section: Library
+
+Fix :func:`shutil.copymode` and :func:`shutil.copystat` on Windows.
+Previously they worked differenly if *dst* is a symbolic link: they modified
+the permission bits of *dst* itself rather than the file it points to if
+*follow_symlinks* is true or *src* is not a symbolic link, and did not
+modify the permission bits if *follow_symlinks* is false and *src* is a
+symbolic link.
+
+..
+
+.. date: 2023-12-15-18-13-59
+.. gh-issue: 113119
+.. nonce: al-569
+.. section: Library
+
+:func:`os.posix_spawn` now accepts ``env=None``, which makes the newly
+spawned process use the current process environment. Patch by Jakub Kulik.
+
+..
+
+.. date: 2023-12-15-18-10-26
+.. gh-issue: 113202
+.. nonce: xv_Ww8
+.. section: Library
+
+Add a ``strict`` option to ``batched()`` in the ``itertools`` module.
+
+..
+
+.. date: 2023-12-15-12-35-28
+.. gh-issue: 61648
+.. nonce: G-4pz0
+.. section: Library
+
+Detect line numbers of properties in doctests.
+
+..
+
+.. date: 2023-12-15-09-51-41
+.. gh-issue: 113175
+.. nonce: RHsNwE
+.. section: Library
+
+Sync with importlib_metadata 7.0, including improved type annotations, fixed
+issue with symlinked packages in ``package_distributions``, added
+``EntryPoints.__repr__``, introduced the ``diagnose`` script, added
+``Distribution.origin`` property, and removed deprecated ``EntryPoint``
+access by numeric index (tuple behavior).
+
+..
+
+.. date: 2023-12-13-17-08-21
+.. gh-issue: 59616
+.. nonce: JNlWSs
+.. section: Library
+
+Add support of :func:`os.lchmod` and the *follow_symlinks* argument in
+:func:`os.chmod` on Windows. Note that the default value of
+*follow_symlinks* in :func:`!os.lchmod` is ``False`` on Windows.
+
+..
+
+.. date: 2023-12-12-20-15-57
+.. gh-issue: 112559
+.. nonce: IgXkje
+.. section: Library
+
+:func:`signal.signal` and :func:`signal.getsignal` no longer call ``repr``
+on callable handlers. :func:`asyncio.run` and :meth:`asyncio.Runner.run` no
+longer call ``repr`` on the task results. Patch by Yilei Yang.
+
+..
+
+.. date: 2023-12-12-16-32-55
+.. gh-issue: 112962
+.. nonce: ZZWXZn
+.. section: Library
+
+:mod:`dis` module functions add cache information to the
+:class:`~dis.Instruction` instance rather than creating fake
+:class:`~dis.Instruction` instances to represent the cache entries.
+
+..
+
+.. date: 2023-12-12-05-48-17
+.. gh-issue: 112989
+.. nonce: ZAa_eq
+.. section: Library
+
+Reduce overhead to connect sockets with :mod:`asyncio` SelectorEventLoop.
+
+..
+
+.. date: 2023-12-11-16-13-15
+.. gh-issue: 112970
+.. nonce: 87jmKP
+.. section: Library
+
+Use :c:func:`!closefrom` on Linux where available (e.g. glibc-2.34), rather
+than only FreeBSD.
+
+..
+
+.. date: 2023-12-11-14-12-46
+.. gh-issue: 110190
+.. nonce: e0iEUa
+.. section: Library
+
+Fix ctypes structs with array on PPC64LE platform by setting
+``MAX_STRUCT_SIZE`` to 64 in stgdict. Patch by Diego Russo.
+
+..
+
+.. date: 2023-12-08-11-17-17
+.. gh-issue: 112540
+.. nonce: Pm5egX
+.. section: Library
+
+The statistics.geometric_mean() function now returns zero for datasets
+containing a zero. Formerly, it would raise an exception.
+
+..
+
+.. date: 2023-12-07-16-55-41
+.. gh-issue: 87286
+.. nonce: MILC9_
+.. section: Library
+
+Added :const:`LOG_FTP`, :const:`LOG_NETINFO`, :const:`LOG_REMOTEAUTH`,
+:const:`LOG_INSTALL`, :const:`LOG_RAS`, and :const:`LOG_LAUNCHD` tot the
+:mod:`syslog` module, all of them constants on used on macOS.
+
+..
+
+.. date: 2023-12-06-16-01-33
+.. gh-issue: 112800
+.. nonce: TNsGJ-
+.. section: Library
+
+Fix :mod:`asyncio` ``SubprocessTransport.close()`` not to throw
+``PermissionError`` when used with setuid executables.
+
+..
+
+.. date: 2023-12-06-14-06-14
+.. gh-issue: 51944
+.. nonce: -5qq_L
+.. section: Library
+
+Add the following constants to the :mod:`termios` module. These values are
+present in macOS system headers: ``ALTWERASE``, ``B14400``, ``B28800``,
+``B7200``, ``B76800``, ``CCAR_OFLOW``, ``CCTS_OFLOW``, ``CDSR_OFLOW``,
+``CDTR_IFLOW``, ``CIGNORE``, ``CRTS_IFLOW``, ``EXTPROC``, ``IUTF8``,
+``MDMBUF``, ``NL2``, ``NL3``, ``NOKERNINFO``, ``ONOEOT``, ``OXTABS``,
+``VDSUSP``, ``VSTATUS``.
+
+..
+
+.. date: 2023-12-05-18-57-53
+.. gh-issue: 79325
+.. nonce: P2vMVK
+.. section: Library
+
+Fix an infinite recursion error in :func:`tempfile.TemporaryDirectory`
+cleanup on Windows.
+
+..
+
+.. date: 2023-12-05-16-20-40
+.. gh-issue: 94692
+.. nonce: -e5C3c
+.. section: Library
+
+:func:`shutil.rmtree` now only catches OSError exceptions. Previously a
+symlink attack resistant version of ``shutil.rmtree()`` could ignore or pass
+to the error handler arbitrary exception when invalid arguments were
+provided.
+
+..
+
+.. date: 2023-12-05-01-19-28
+.. gh-issue: 112736
+.. nonce: rdHDrU
+.. section: Library
+
+The use of del-safe symbols in ``subprocess`` was refactored to allow for
+use in cross-platform build environments.
+
+..
+
+.. date: 2023-12-04-21-30-34
+.. gh-issue: 112727
+.. nonce: jpgNRB
+.. section: Library
+
+Speed up :meth:`pathlib.Path.absolute`. Patch by Barney Gale.
+
+..
+
+.. date: 2023-12-04-16-45-11
+.. gh-issue: 74690
+.. nonce: pQYP5U
+.. section: Library
+
+Speedup :func:`issubclass` checks against simple :func:`runtime-checkable
+protocols <typing.runtime_checkable>` by around 6%. Patch by Alex Waygood.
+
+..
+
+.. date: 2023-12-04-14-05-24
+.. gh-issue: 74690
+.. nonce: eODKRm
+.. section: Library
+
+Speedup :func:`isinstance` checks by roughly 20% for
+:func:`runtime-checkable protocols <typing.runtime_checkable>` that only
+have one callable member. Speedup :func:`issubclass` checks for these
+protocols by roughly 10%. Patch by Alex Waygood.
+
+..
+
+.. date: 2023-12-03-12-41-48
+.. gh-issue: 112645
+.. nonce: blMsKf
+.. section: Library
+
+Remove deprecation error on passing ``onerror`` to :func:`shutil.rmtree`.
+
+..
+
+.. date: 2023-12-03-11-15-53
+.. gh-issue: 112640
+.. nonce: -FVwP7
+.. section: Library
+
+Add ``kwdefaults`` parameter to :data:`types.FunctionType` to set default
+keyword argument values.
+
+..
+
+.. date: 2023-12-03-01-01-52
+.. gh-issue: 112622
+.. nonce: 1Z8cpx
+.. section: Library
+
+Ensure ``name`` parameter is passed to event loop in
+:func:`asyncio.create_task`.
+
+..
+
+.. date: 2023-12-02-12-55-17
+.. gh-issue: 112618
+.. nonce: 7_FT8-
+.. section: Library
+
+Fix a caching bug relating to :data:`typing.Annotated`. ``Annotated[str,
+True]`` is no longer identical to ``Annotated[str, 1]``.
+
+..
+
+.. date: 2023-12-01-21-05-46
+.. gh-issue: 112334
+.. nonce: DmNXKh
+.. section: Library
+
+Fixed a performance regression in 3.12's :mod:`subprocess` on Linux where it
+would no longer use the fast-path ``vfork()`` system call when it could have
+due to a logic bug, instead falling back to the safe but slower ``fork()``.
+
+Also fixed a second 3.12.0 potential security bug. If a value of
+``extra_groups=[]`` was passed to :mod:`subprocess.Popen` or related APIs,
+the underlying ``setgroups(0, NULL)`` system call to clear the groups list
+would not be made in the child process prior to ``exec()``.
+
+This was identified via code inspection in the process of fixing the first
+bug.
+
+..
+
+.. date: 2023-12-01-18-05-09
+.. gh-issue: 110190
+.. nonce: 5bf-c9
+.. section: Library
+
+Fix ctypes structs with array on Arm platform by setting ``MAX_STRUCT_SIZE``
+to 32 in stgdict. Patch by Diego Russo.
+
+..
+
+.. date: 2023-12-01-16-09-59
+.. gh-issue: 81194
+.. nonce: FFad1c
+.. section: Library
+
+Fix a crash in :func:`socket.if_indextoname` with specific value (UINT_MAX).
+Fix an integer overflow in :func:`socket.if_indextoname` on 64-bit
+non-Windows platforms.
+
+..
+
+.. date: 2023-12-01-08-28-09
+.. gh-issue: 112578
+.. nonce: bfNbfi
+.. section: Library
+
+Fix a spurious :exc:`RuntimeWarning` when executing the :mod:`zipfile`
+module.
+
+..
+
+.. date: 2023-11-29-10-51-41
+.. gh-issue: 112516
+.. nonce: rFKUKN
+.. section: Library
+
+Update the bundled copy of pip to version 23.3.1.
+
+..
+
+.. date: 2023-11-29-02-26-32
+.. gh-issue: 112510
+.. nonce: j-zXGc
+.. section: Library
+
+Add :data:`readline.backend` for the backend readline uses (``editline`` or
+``readline``)
+
+..
+
+.. date: 2023-11-28-20-47-39
+.. gh-issue: 112328
+.. nonce: Z2AxEY
+.. section: Library
+
+[Enum] Make ``EnumDict``, ``EnumDict.member_names``,
+``EnumType._add_alias_`` and ``EnumType._add_value_alias_`` public.
+
+..
+
+.. date: 2023-11-28-20-01-33
+.. gh-issue: 112509
+.. nonce: QtoKed
+.. section: Library
+
+Fix edge cases that could cause a key to be present in both the
+``__required_keys__`` and ``__optional_keys__`` attributes of a
+:class:`typing.TypedDict`. Patch by Jelle Zijlstra.
+
+..
+
+.. date: 2023-11-28-02-39-30
+.. gh-issue: 101336
+.. nonce: ya433z
+.. section: Library
+
+Add ``keep_alive`` keyword parameter for
+:meth:`AbstractEventLoop.create_server` and
+:meth:`BaseEventLoop.create_server`.
+
+..
+
+.. date: 2023-11-27-12-41-23
+.. gh-issue: 63284
+.. nonce: q2Qi9q
+.. section: Library
+
+Added support for TLS-PSK (pre-shared key) mode to the :mod:`ssl` module.
+
+..
+
+.. date: 2023-11-26-13-44-19
+.. gh-issue: 112414
+.. nonce: kx2E7S
+.. section: Library
+
+Fix regression in Python 3.12 where calling :func:`repr` on a module that
+had been imported using a custom :term:`loader` could fail with
+:exc:`AttributeError`. Patch by Alex Waygood.
+
+..
+
+.. date: 2023-11-26-13-26-56
+.. gh-issue: 112358
+.. nonce: smhaeZ
+.. section: Library
+
+Revert change to :class:`struct.Struct` initialization that broke some cases
+of subclassing.
+
+..
+
+.. date: 2023-11-25-20-29-28
+.. gh-issue: 112405
+.. nonce: cOtzxC
+.. section: Library
+
+Optimize :meth:`pathlib.PurePath.relative_to`. Patch by Alex Waygood.
+
+..
+
+.. date: 2023-11-24-21-00-24
+.. gh-issue: 94722
+.. nonce: GMIQIn
+.. section: Library
+
+Fix bug where comparison between instances of :class:`~doctest.DocTest`
+fails if one of them has ``None`` as its lineno.
+
+..
+
+.. date: 2023-11-24-09-27-01
+.. gh-issue: 112361
+.. nonce: kYtnHW
+.. section: Library
+
+Speed up a small handful of :mod:`pathlib` methods by removing some
+temporary objects.
+
+..
+
+.. date: 2023-11-23-17-25-27
+.. gh-issue: 112345
+.. nonce: FFApHx
+.. section: Library
+
+Improve error message when trying to call :func:`issubclass` against a
+:class:`typing.Protocol` that has non-method members. Patch by Randolf
+Scholz.
+
+..
+
+.. date: 2023-11-23-12-37-22
+.. gh-issue: 112137
+.. nonce: kM46Q6
+.. section: Library
+
+Change :mod:`dis` output to display no-lineno as "--" instead of "None".
+
+..
+
+.. date: 2023-11-23-10-41-21
+.. gh-issue: 112332
+.. nonce: rhTBaa
+.. section: Library
+
+Deprecate the ``exc_type`` field of :class:`traceback.TracebackException`.
+Add ``exc_type_str`` to replace it.
+
+..
+
+.. date: 2023-11-22-23-08-47
+.. gh-issue: 81620
+.. nonce: mfZ2Wf
+.. section: Library
+
+Add extra tests for :func:`random.binomialvariate`
+
+..
+
+.. date: 2023-11-22-19-43-54
+.. gh-issue: 112292
+.. nonce: 5nDU87
+.. section: Library
+
+Fix a crash in :mod:`readline` when imported from a sub interpreter. Patch
+by Anthony Shaw
+
+..
+
+.. date: 2023-11-21-02-58-14
+.. gh-issue: 77621
+.. nonce: MYv5XS
+.. section: Library
+
+Slightly improve the import time of the :mod:`pathlib` module by deferring
+some imports. Patch by Barney Gale.
+
+..
+
+.. date: 2023-11-16-17-18-09
+.. gh-issue: 112137
+.. nonce: QvjGjN
+.. section: Library
+
+Change :mod:`dis` output to display logical labels for jump targets instead
+of offsets.
+
+..
+
+.. date: 2023-11-16-10-42-15
+.. gh-issue: 112139
+.. nonce: WpHosf
+.. section: Library
+
+Add :meth:`Signature.format` to format signatures to string with extra
+options. And use it in :mod:`pydoc` to render more readable signatures that
+have new lines between parameters.
+
+..
+
+.. date: 2023-11-15-04-53-37
+.. gh-issue: 112105
+.. nonce: I3RcVN
+.. section: Library
+
+Make :func:`readline.set_completer_delims` work with libedit
+
+..
+
+.. date: 2023-11-15-01-36-04
+.. gh-issue: 106922
+.. nonce: qslOVH
+.. section: Library
+
+Display multiple lines with ``traceback`` when errors span multiple lines.
+
+..
+
+.. date: 2023-11-09-11-07-34
+.. gh-issue: 111874
+.. nonce: dzYc3j
+.. section: Library
+
+When creating a :class:`typing.NamedTuple` class, ensure
+:func:`~object.__set_name__` is called on all objects that define
+``__set_name__`` and exist in the values of the ``NamedTuple`` class's class
+dictionary. Patch by Alex Waygood.
+
+..
+
+.. date: 2023-11-08-18-53-07
+.. gh-issue: 68166
+.. nonce: 1iTh4Y
+.. section: Library
+
+Add support of the "vsapi" element type in
+:meth:`tkinter.ttk.Style.element_create`.
+
+..
+
+.. date: 2023-11-08-16-11-04
+.. gh-issue: 110275
+.. nonce: Bm6GwR
+.. section: Library
+
+Named tuple's methods ``_replace()`` and ``__replace__()`` now raise
+TypeError instead of ValueError for invalid keyword arguments.
+
+..
+
+.. date: 2023-11-05-20-09-27
+.. gh-issue: 99367
+.. nonce: HLaWKo
+.. section: Library
+
+Do not mangle ``sys.path[0]`` in :mod:`pdb` if safe_path is set
+
+..
+
+.. date: 2023-11-02-10-13-31
+.. gh-issue: 111615
+.. nonce: 3SMixi
+.. section: Library
+
+Fix a regression caused by a fix to gh-93162 whereby you couldn't configure
+a :class:`QueueHandler` without specifying handlers.
+
+..
+
+.. date: 2023-10-25-16-37-13
+.. gh-issue: 75666
+.. nonce: BpsWut
+.. section: Library
+
+Fix the behavior of :mod:`tkinter` widget's ``unbind()`` method with two
+arguments. Previously, ``widget.unbind(sequence, funcid)`` destroyed the
+current binding for *sequence*, leaving *sequence* unbound, and deleted the
+*funcid* command. Now it removes only *funcid* from the binding for
+*sequence*, keeping other commands, and deletes the *funcid* command. It
+leaves *sequence* unbound only if *funcid* was the last bound command.
+
+..
+
+.. date: 2023-10-25-13-07-53
+.. gh-issue: 67790
+.. nonce: jMn9Ad
+.. section: Library
+
+Implement basic formatting support (minimum width, alignment, fill) for
+:class:`fractions.Fraction`.
+
+..
+
+.. date: 2023-10-23-18-42-26
+.. gh-issue: 111049
+.. nonce: Ys7-o_
+.. section: Library
+
+Fix crash during garbage collection of the :class:`io.BytesIO` buffer
+object.
+
+..
+
+.. date: 2023-10-23-03-49-34
+.. gh-issue: 102980
+.. nonce: aXBd54
+.. section: Library
+
+Redirect the output of ``interact`` command of :mod:`pdb` to the same
+channel as the debugger. Add tests and improve docs.
+
+..
+
+.. date: 2023-10-20-15-28-08
+.. gh-issue: 102988
+.. nonce: dStNO7
+.. section: Library
+
+:func:`email.utils.getaddresses` and :func:`email.utils.parseaddr` now
+return ``('', '')`` 2-tuples in more situations where invalid email
+addresses are encountered instead of potentially inaccurate values. Add
+optional *strict* parameter to these two functions: use ``strict=False`` to
+get the old behavior, accept malformed inputs. ``getattr(email.utils,
+'supports_strict_parsing', False)`` can be use to check if the *strict*
+paramater is available. Patch by Thomas Dwyer and Victor Stinner to improve
+the CVE-2023-27043 fix.
+
+..
+
+.. date: 2023-10-17-16-11-03
+.. gh-issue: 52161
+.. nonce: WBYyCJ
+.. section: Library
+
+:meth:`cmd.Cmd.do_help` now cleans docstrings with :func:`inspect.cleandoc`
+before writing them. Patch by Filip Łapkiewicz.
+
+..
+
+.. date: 2023-10-12-18-19-47
+.. gh-issue: 82300
+.. nonce: P8-O38
+.. section: Library
+
+Add ``track`` parameter to
+:class:`multiprocessing.shared_memory.SharedMemory` that allows using shared
+memory blocks without having to register with the POSIX resource tracker
+that automatically releases them upon process exit.
+
+..
+
+.. date: 2023-10-11-02-34-01
+.. gh-issue: 110109
+.. nonce: RFCmHs
+.. section: Library
+
+Add private ``pathlib._PurePathBase`` class: a base class for
+:class:`pathlib.PurePath` that omits certain magic methods. It may be made
+public (along with ``_PathBase``) in future.
+
+..
+
+.. date: 2023-09-28-13-15-51
+.. gh-issue: 109858
+.. nonce: 43e2dg
+.. section: Library
+
+Protect :mod:`zipfile` from "quoted-overlap" zipbomb. It now raises
+BadZipFile when try to read an entry that overlaps with other entry or
+central directory.
+
+..
+
+.. date: 2023-09-23-14-40-51
+.. gh-issue: 109786
+.. nonce: UX3pKv
+.. section: Library
+
+Fix possible reference leaks and crash when re-enter the ``__next__()``
+method of :class:`itertools.pairwise`.
+
+..
+
+.. date: 2023-09-01-15-33-18
+.. gh-issue: 91539
+.. nonce: xoNLEI
+.. section: Library
+
+Small (10 - 20%) and trivial performance improvement of
+:func:`urrlib.request.getproxies_environment`, typically useful when there
+are many environment variables to go over.
+
+..
+
+.. date: 2023-08-14-21-10-52
+.. gh-issue: 103363
+.. nonce: u64_QI
+.. section: Library
+
+Add *follow_symlinks* keyword-only argument to :meth:`pathlib.Path.owner`
+and :meth:`~pathlib.Path.group`, defaulting to ``True``.
+
+..
+
+.. date: 2023-08-07-21-11-24
+.. gh-issue: 102130
+.. nonce: _UyI5i
+.. section: Library
+
+Support tab completion in :mod:`cmd` for ``editline``.
+
+..
+
+.. date: 2023-08-04-18-43-21
+.. gh-issue: 99437
+.. nonce: Et8hu8
+.. section: Library
+
+:func:`runpy.run_path` now decodes path-like objects, making sure __file__
+and sys.argv[0] of the module being run are always strings.
+
+..
+
+.. date: 2023-04-29-20-49-13
+.. gh-issue: 104003
+.. nonce: -8Ruk2
+.. section: Library
+
+Add :func:`warnings.deprecated`, a decorator to mark deprecated functions to
+static type checkers and to warn on usage of deprecated classes and
+functions. See :pep:`702`. Patch by Jelle Zijlstra.
+
+..
+
+.. date: 2023-04-23-11-08-02
+.. gh-issue: 103708
+.. nonce: Y17C7p
+.. section: Library
+
+Make hardcoded python name, a configurable parameter so that different
+implementations of python can override it instead of making huge diffs in
+sysconfig.py
+
+..
+
+.. date: 2023-04-09-21-05-43
+.. gh-issue: 66515
+.. nonce: 0DS8Ya
+.. section: Library
+
+:class:`mailbox.MH` now supports folders that do not contain a
+``.mh_sequences`` file (e.g. Claws Mail IMAP-cache folders). Patch by Serhiy
+Storchaka.
+
+..
+
+.. date: 2023-02-08-00-43-29
+.. gh-issue: 83162
+.. nonce: ufdI9F
+.. section: Library
+
+Renamed :exc:`!re.error` to :exc:`PatternError` for clarity, and kept
+:exc:`!re.error` for backward compatibility. Patch by Matthias Bussonnier
+and Adam Chhina.
+
+..
+
+.. date: 2022-12-01-16-57-44
+.. gh-issue: 91133
+.. nonce: LKMVCV
+.. section: Library
+
+Fix a bug in :class:`tempfile.TemporaryDirectory` cleanup, which now no
+longer dereferences symlinks when working around file system permission
+errors.
+
+..
+
+.. bpo: 43153
+.. date: 2021-12-06-22-10-53
+.. nonce: J7mjSy
+.. section: Library
+
+On Windows, ``tempfile.TemporaryDirectory`` previously masked a
+``PermissionError`` with ``NotADirectoryError`` during directory cleanup. It
+now correctly raises ``PermissionError`` if errors are not ignored. Patch by
+Andrei Kulakov and Ken Jin.
+
+..
+
+.. bpo: 32731
+.. date: 2021-11-23-22-22-49
+.. nonce: kNOASr
+.. section: Library
+
+:func:`getpass.getuser` now raises :exc:`OSError` for all failures rather
+than :exc:`ImportError` on systems lacking the :mod:`pwd` module or
+:exc:`KeyError` if the password database is empty.
+
+..
+
+.. bpo: 34321
+.. date: 2021-04-15-10-41-51
+.. nonce: 36m6_l
+.. section: Library
+
+:class:`mmap.mmap` now has a *trackfd* parameter on Unix; if it is
+``False``, the file descriptor specified by *fileno* will not be duplicated.
+
+..
+
+.. bpo: 35332
+.. date: 2020-12-14-09-31-13
+.. nonce: s22wAx
+.. section: Library
+
+The :func:`shutil.rmtree` function now ignores errors when calling
+:func:`os.close` when *ignore_errors* is ``True``, and :func:`os.close` no
+longer retried after error.
+
+..
+
+.. bpo: 35928
+.. date: 2020-10-03-23-47-28
+.. nonce: E0iPAa
+.. section: Library
+
+:class:`io.TextIOWrapper` now correctly handles the decoding buffer after
+``read()`` and ``write()``.
+
+..
+
+.. bpo: 26791
+.. date: 2020-08-06-14-43-55
+.. nonce: KxoEfO
+.. section: Library
+
+:func:`shutil.move` now moves a symlink into a directory when that directory
+is the target of the symlink. This provides the same behavior as the mv
+shell command. The previous behavior raised an exception. Patch by Jeffrey
+Kintscher.
+
+..
+
+.. bpo: 41422
+.. date: 2020-07-28-20-48-05
+.. nonce: iMwnMu
+.. section: Library
+
+Fixed memory leaks of :class:`pickle.Pickler` and :class:`pickle.Unpickler`
+involving cyclic references via the internal memo mapping.
+
+..
+
+.. bpo: 19821
+.. date: 2020-06-15-23-44-53
+.. nonce: ihBk39
+.. section: Library
+
+The :func:`!pydoc.ispackage` function has been deprecated.
+
+..
+
+.. bpo: 40262
+.. date: 2020-05-21-23-32-46
+.. nonce: z4fQv1
+.. section: Library
+
+The :meth:`ssl.SSLSocket.recv_into` method no longer requires the *buffer*
+argument to implement ``__len__`` and supports buffers with arbitrary item
+size.
+
+..
+
+.. bpo: 39912
+.. date: 2020-03-09-15-08-29
+.. nonce: xPOBBY
+.. section: Library
+
+:func:`warnings.filterwarnings()` and :func:`warnings.simplefilter()` now
+raise appropriate exceptions instead of ``AssertionError``. Patch
+contributed by Rémi Lapeyre.
+
+..
+
+.. bpo: 37260
+.. date: 2019-06-14-22-37-32
+.. nonce: oecdIf
+.. section: Library
+
+Fixed a race condition in :func:`shutil.rmtree` in which directory entries
+removed by another process or thread while ``shutil.rmtree()`` is running
+can cause it to raise FileNotFoundError. Patch by Jeffrey Kintscher.
+
+..
+
+.. bpo: 36959
+.. date: 2019-05-18-15-50-14
+.. nonce: ew6WZ4
+.. section: Library
+
+Fix some error messages for invalid ISO format string combinations in
+``strptime()`` that referred to directives not contained in the format
+string. Patch by Gordon P. Hemsley.
+
+..
+
+.. bpo: 18060
+.. date: 2019-05-17-07-22-33
+.. nonce: 5mqTQM
+.. section: Library
+
+Fixed a class inheritance issue that can cause segfaults when deriving two
+or more levels of subclasses from a base class of Structure or Union.
+
+..
+
+.. bpo: 29779
+.. date: 2019-05-08-13-14-11
+.. nonce: jg33dp
+.. section: Library
+
+Add a new :envvar:`PYTHON_HISTORY` environment variable to set the location
+of a ``.python_history`` file.
+
+..
+
+.. bpo: 21360
+.. date: 2019-02-12-16-12-54
+.. nonce: gkSSfx
+.. section: Library
+
+:class:`mailbox.Maildir` now ignores files with a leading dot.
+
+..
+
+.. date: 2023-11-30-02-33-59
+.. gh-issue: 111699
+.. nonce: _O5G_y
+.. section: Documentation
+
+Relocate ``smtpd`` deprecation notice to its own section rather than under
+``locale`` in What's New in Python 3.12 document
+
+..
+
+.. date: 2023-10-23-23-43-43
+.. gh-issue: 110746
+.. nonce: yg77IE
+.. section: Documentation
+
+Improved markup for valid options/values for methods ttk.treeview.column and
+ttk.treeview.heading, and for Layouts.
+
+..
+
+.. date: 2023-08-01-13-11-39
+.. gh-issue: 95649
+.. nonce: F4KhPS
+.. section: Documentation
+
+Document that the :mod:`asyncio` module contains code taken from `v0.16.0 of
+the uvloop project <https://github.com/MagicStack/uvloop/tree/v0.16.0>`_, as
+well as the required MIT licensing information.
+
+..
+
+.. date: 2024-01-12-14-34-24
+.. gh-issue: 111798
+.. nonce: hd9B_-
+.. section: Tests
+
+Disable ``test_super_deep()`` from ``test_call`` under pydebug builds on
+WASI; the stack depth is too small to make the test useful.
+
+..
+
+.. date: 2024-01-12-13-19-12
+.. gh-issue: 111801
+.. nonce: 9hh9DY
+.. section: Tests
+
+Lower the recursion limit in ``test_isinstance`` for
+``test_infinitely_many_bases()``. This prevents a stack overflow on a
+pydebug build of WASI.
+
+..
+
+.. date: 2024-01-12-12-45-24
+.. gh-issue: 111802
+.. nonce: gN41vt
+.. section: Tests
+
+Specify a low recursion depth for ``test_bad_getattr()`` in
+``test.pickletester`` to avoid exhausting the stack under a pydebug build
+for WASI.
+
+..
+
+.. date: 2024-01-08-21-15-48
+.. gh-issue: 44626
+.. nonce: DRq-PR
+.. section: Tests
+
+Fix :func:`os.path.isabs` incorrectly returning ``True`` when given a path
+that starts with exactly one (back)slash on Windows.
+
+Fix :meth:`pathlib.PureWindowsPath.is_absolute` incorrectly returning
+``False`` for some paths beginning with two (back)slashes.
+
+..
+
+.. date: 2024-01-01-14-40-02
+.. gh-issue: 113633
+.. nonce: VOY5ai
+.. section: Tests
+
+Use module state for the _testcapi extension module.
+
+..
+
+.. date: 2023-12-09-21-27-46
+.. gh-issue: 109980
+.. nonce: y--500
+.. section: Tests
+
+Fix ``test_tarfile_vs_tar`` in ``test_shutil`` for macOS, where system tar
+can include more information in the archive than :mod:`shutil.make_archive`.
+
+..
+
+.. date: 2023-12-05-19-50-03
+.. gh-issue: 112769
+.. nonce: kdLJmS
+.. section: Tests
+
+The tests now correctly compare zlib version when
+:const:`zlib.ZLIB_RUNTIME_VERSION` contains non-integer suffixes. For
+example zlib-ng defines the version as ``1.3.0.zlib-ng``.
+
+..
+
+.. date: 2023-12-04-15-56-11
+.. gh-issue: 112334
+.. nonce: FFc9Ti
+.. section: Tests
+
+Adds a regression test to verify that ``vfork()`` is used when expected by
+:mod:`subprocess` on vfork enabled POSIX systems (Linux).
+
+..
+
+.. date: 2023-09-05-20-46-35
+.. gh-issue: 108927
+.. nonce: TpwWav
+.. section: Tests
+
+Fixed order dependence in running tests in the same process when a test that
+has submodules (e.g. test_importlib) follows a test that imports its
+submodule (e.g. test_importlib.util) and precedes a test (e.g. test_unittest
+or test_compileall) that uses that submodule.
+
+..
+
+.. bpo: 40648
+.. date: 2020-05-16-18-00-21
+.. nonce: p2uPqy
+.. section: Tests
+
+Test modes that file can get with chmod() on Windows.
+
+..
+
+.. date: 2024-01-15-16-58-43
+.. gh-issue: 114013
+.. nonce: FoSeQf
+.. section: Build
+
+Fix ``Tools/wasm/wasi.py`` to not include the path to ``python.wasm`` as
+part of ``HOSTRUNNER``. The environment variable is meant to specify how to
+run the WASI host only, having ``python.wasm`` and relevant flags appended
+to the ``HOSTRUNNER``. This fixes ``make test`` work.
+
+..
+
+.. date: 2023-12-23-09-35-48
+.. gh-issue: 113258
+.. nonce: GlsAyH
+.. section: Build
+
+Changed the Windows build to write out generated frozen modules into the
+build tree instead of the source tree.
+
+..
+
+.. date: 2023-12-21-05-35-06
+.. gh-issue: 112305
+.. nonce: VfqQPx
+.. section: Build
+
+Fixed the ``check-clean-src`` step performed on out of tree builds to detect
+errant ``$(srcdir)/Python/frozen_modules/*.h`` files and recommend
+appropriate source tree cleanup steps to get a working build again.
+
+..
+
+.. date: 2023-12-17-18-23-02
+.. gh-issue: 112536
+.. nonce: 8lr3Ep
+.. section: Build
+
+Add support for thread sanitizer (TSAN)
+
+..
+
+.. date: 2023-12-08-11-33-37
+.. gh-issue: 112867
+.. nonce: ZzDfXQ
+.. section: Build
+
+Fix the build for the case that WITH_PYMALLOC_RADIX_TREE=0 set.
+
+..
+
+.. date: 2023-11-27-13-55-47
+.. gh-issue: 103065
+.. nonce: o72OiA
+.. section: Build
+
+Introduce ``Tools/wasm/wasi.py`` to simplify doing a WASI build.
+
+..
+
+.. bpo: 11102
+.. date: 2020-05-01-23-44-31
+.. nonce: Fw9zeS
+.. section: Build
+
+The :func:`os.major`, :func:`os.makedev`, and :func:`os.minor` functions are
+now available on HP-UX v3.
+
+..
+
+.. bpo: 36351
+.. date: 2020-01-11-23-49-17
+.. nonce: ce8BBh
+.. section: Build
+
+Do not set ipv6type when cross-compiling.
+
+..
+
+.. date: 2024-01-15-23-53-25
+.. gh-issue: 114096
+.. nonce: G-Myja
+.. section: Windows
+
+Process privileges that are activated for creating directory junctions are
+now restored afterwards, avoiding behaviour changes in other parts of the
+program.
+
+..
+
+.. date: 2024-01-04-21-16-31
+.. gh-issue: 111877
+.. nonce: fR-B4c
+.. section: Windows
+
+:func:`os.stat` calls were returning incorrect time values for files that
+could not be accessed directly.
+
+..
+
+.. date: 2023-12-19-10-56-46
+.. gh-issue: 111973
+.. nonce: A9Wtsb
+.. section: Windows
+
+Update Windows installer to use SQLite 3.44.2.
+
+..
+
+.. date: 2023-12-14-19-00-29
+.. gh-issue: 113009
+.. nonce: 6LNdjz
+.. section: Windows
+
+:mod:`multiprocessing`: On Windows, fix a race condition in
+``Process.terminate()``: no longer set the ``returncode`` attribute to
+always call ``WaitForSingleObject()`` in ``Process.wait()``. Previously,
+sometimes the process was still running after ``TerminateProcess()`` even if
+``GetExitCodeProcess()`` is not ``STILL_ACTIVE``. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-12-12-20-58-09
+.. gh-issue: 86179
+.. nonce: YYSk_6
+.. section: Windows
+
+Fixes path calculations when launching Python on Windows through a symlink.
+
+..
+
+.. date: 2023-12-11-20-23-04
+.. gh-issue: 71383
+.. nonce: 9pZh6t
+.. section: Windows
+
+Update Tcl/Tk in Windows installer to 8.6.13 with a patch to suppress
+incorrect ThemeChanged warnings.
+
+..
+
+.. date: 2023-12-05-22-56-30
+.. gh-issue: 111650
+.. nonce: xlWmvM
+.. section: Windows
+
+Ensures the ``Py_GIL_DISABLED`` preprocessor variable is defined in
+:file:`pyconfig.h` so that extension modules written in C are able to use
+it.
+
+..
+
+.. date: 2023-12-03-19-22-37
+.. gh-issue: 112278
+.. nonce: FiloCE
+.. section: Windows
+
+Reduce the time cost for some functions in :mod:`platform` on Windows if
+current user has no permission to the WMI.
+
+..
+
+.. date: 2023-08-08-01-42-14
+.. gh-issue: 73427
+.. nonce: WOpiNt
+.. section: Windows
+
+Deprecate :func:`sys._enablelegacywindowsfsencoding`. Use
+:envvar:`PYTHONLEGACYWINDOWSFSENCODING` instead. Patch by Inada Naoki.
+
+..
+
+.. date: 2023-03-15-23-53-45
+.. gh-issue: 87868
+.. nonce: 4C36oQ
+.. section: Windows
+
+Correctly sort and remove duplicate environment variables in
+:py:func:`!_winapi.CreateProcess`.
+
+..
+
+.. bpo: 37308
+.. date: 2019-06-16-11-27-05
+.. nonce: Iz_NU_
+.. section: Windows
+
+Fix mojibake in :class:`mmap.mmap` when using a non-ASCII *tagname* argument
+on Windows.
+
+..
+
+.. date: 2024-01-02-22-25-21
+.. gh-issue: 113666
+.. nonce: xKZoBm
+.. section: macOS
+
+Add the following constants to module :mod:`stat`: ``UF_SETTABLE``,
+``UF_TRACKED``, ``UF_DATAVAULT``, ``SF_SUPPORTED``, ``SF_SETTABLE``,
+``SF_SYNTHETIC``, ``SF_RESTRICTED``, ``SF_FIRMLINK`` and ``SF_DATALESS``.
+The values ``UF_SETTABLE``, ``SF_SUPPORTED``, ``SF_SETTABLE`` and
+``SF_SYNTHETIC`` are only available on macOS.
+
+..
+
+.. date: 2023-12-28-12-18-39
+.. gh-issue: 113536
+.. nonce: 0ythg7
+.. section: macOS
+
+:func:`os.waitid` is now available on macOS
+
+..
+
+.. date: 2023-12-23-22-41-07
+.. gh-issue: 110459
+.. nonce: NaMBJy
+.. section: macOS
+
+Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to
+detect OpenSSL on macOS.
+
+..
+
+.. date: 2023-12-21-11-53-47
+.. gh-issue: 74573
+.. nonce: MA6Vys
+.. section: macOS
+
+Document that :mod:`dbm.ndbm` can silently corrupt DBM files on updates when
+exceeding undocumented platform limits, and can crash (segmentation fault)
+when reading such a corrupted file. (FB8919203)
+
+..
+
+.. date: 2023-12-21-10-20-41
+.. gh-issue: 65701
+.. nonce: Q2hNbN
+.. section: macOS
+
+The :program:`freeze` tool doesn't work with framework builds of Python.
+Document this and bail out early when running the tool with such a build.
+
+..
+
+.. date: 2023-12-21-09-41-42
+.. gh-issue: 87277
+.. nonce: IF6EZZ
+.. section: macOS
+
+webbrowser: Don't look for X11 browsers on macOS. Those are generally not
+used and probing for them can result in starting XQuartz even if it isn't
+used otherwise.
+
+..
+
+.. date: 2023-12-19-10-50-08
+.. gh-issue: 111973
+.. nonce: HMHJfy
+.. section: macOS
+
+Update macOS installer to use SQLite 3.44.2.
+
+..
+
+.. date: 2023-12-16-11-45-32
+.. gh-issue: 108269
+.. nonce: wVgCHF
+.. section: macOS
+
+Set ``CFBundleAllowMixedLocalizations`` to true in the Info.plist for the
+framework, embedded Python.app and IDLE.app with framework installs on
+macOS. This allows applications to pick up the user's preferred locale when
+that's different from english.
+
+..
+
+.. date: 2023-12-10-20-30-06
+.. gh-issue: 102362
+.. nonce: y8svbF
+.. section: macOS
+
+Make sure the result of :func:`sysconfig.get_plaform` includes at least a
+major and minor versions, even if ``MACOSX_DEPLOYMENT_TARGET`` is set to
+only a major version during build to match the format expected by pip.
+
+..
+
+.. date: 2023-12-07-15-53-16
+.. gh-issue: 110017
+.. nonce: UMYzMR
+.. section: macOS
+
+Disable a signal handling stress test on macOS due to a bug in macOS
+(FB13453490).
+
+..
+
+.. date: 2023-12-07-14-19-46
+.. gh-issue: 110820
+.. nonce: DIxb_F
+.. section: macOS
+
+Make sure the preprocessor definitions for ``ALIGNOF_MAX_ALIGN_T``,
+``SIZEOF_LONG_DOUBLE`` and ``HAVE_GCC_ASM_FOR_X64`` are correct for
+Universal 2 builds on macOS.
+
+..
+
+.. date: 2023-12-06-12-11-13
+.. gh-issue: 109981
+.. nonce: mOHg10
+.. section: macOS
+
+Use ``/dev/fd`` on macOS to determine the number of open files in
+``test.support.os_helper.fd_count`` to avoid a crash with "guarded" file
+descriptors when probing for open files.
+
+..
+
+.. date: 2024-01-17-02-15-33
+.. gh-issue: 72284
+.. nonce: cAQiYO
+.. section: IDLE
+
+Improve the lists of features, editor key bindings, and shell key bingings
+in the IDLE doc.
+
+..
+
+.. date: 2024-01-11-21-26-58
+.. gh-issue: 113903
+.. nonce: __GLlQ
+.. section: IDLE
+
+Fix rare failure of test.test_idle, in test_configdialog.
+
+..
+
+.. date: 2024-01-05-12-24-01
+.. gh-issue: 113729
+.. nonce: qpluea
+.. section: IDLE
+
+Fix the "Help -> IDLE Doc" menu bug in 3.11.7 and 3.12.1.
+
+..
+
+.. date: 2023-12-19-00-03-12
+.. gh-issue: 113269
+.. nonce: lrU-IC
+.. section: IDLE
+
+Fix test_editor hang on macOS Catalina.
+
+..
+
+.. date: 2023-12-10-20-01-11
+.. gh-issue: 112898
+.. nonce: 98aWv2
+.. section: IDLE
+
+Fix processing unsaved files when quitting IDLE on macOS.
+
+..
+
+.. bpo: 13586
+.. date: 2019-12-13-12-26-56
+.. nonce: 1grqsR
+.. section: IDLE
+
+Enter the selected text when opening the "Replace" dialog.
+
+..
+
+.. date: 2023-12-02-02-08-11
+.. gh-issue: 106560
+.. nonce: THvuji
+.. section: C API
+
+Fix redundant declarations in the public C API. Declare PyBool_Type,
+PyLong_Type and PySys_Audit() only once. Patch by Victor Stinner.
+
+..
+
+.. date: 2023-11-27-09-44-16
+.. gh-issue: 112438
+.. nonce: GdNZiI
+.. section: C API
+
+Fix support of format units "es", "et", "es#", and "et#" in nested tuples in
+:c:func:`PyArg_ParseTuple`-like functions.
+
+..
+
+.. date: 2023-11-15-01-26-59
+.. gh-issue: 111545
+.. nonce: iAoFtA
+.. section: C API
+
+Add :c:func:`Py_HashPointer` function to hash a pointer. Patch by Victor
+Stinner.
+
+..
+
+.. date: 2023-06-21-11-53-09
+.. gh-issue: 65210
+.. nonce: PhFRBJ
+.. section: C API
+
+Change the declaration of the *keywords* parameter of
+:c:func:`PyArg_ParseTupleAndKeywords` and
+:c:func:`PyArg_VaParseTupleAndKeywords` for better compatibility with C++.
+++ /dev/null
-Do not set ipv6type when cross-compiling.
+++ /dev/null
-The :func:`os.major`, :func:`os.makedev`, and :func:`os.minor` functions are
-now available on HP-UX v3.
+++ /dev/null
-Introduce ``Tools/wasm/wasi.py`` to simplify doing a WASI build.
+++ /dev/null
-Fix the build for the case that WITH_PYMALLOC_RADIX_TREE=0 set.
+++ /dev/null
-Add support for thread sanitizer (TSAN)
+++ /dev/null
-Fixed the ``check-clean-src`` step performed on out of tree builds to detect
-errant ``$(srcdir)/Python/frozen_modules/*.h`` files and recommend
-appropriate source tree cleanup steps to get a working build again.
+++ /dev/null
-Changed the Windows build to write out generated frozen modules into the
-build tree instead of the source tree.
+++ /dev/null
-Fix ``Tools/wasm/wasi.py`` to not include the path to ``python.wasm`` as
-part of ``HOSTRUNNER``. The environment variable is meant to specify how to
-run the WASI host only, having ``python.wasm`` and relevant flags appended
-to the ``HOSTRUNNER``. This fixes ``make test`` work.
+++ /dev/null
-Change the declaration of the *keywords* parameter of
-:c:func:`PyArg_ParseTupleAndKeywords` and
-:c:func:`PyArg_VaParseTupleAndKeywords` for better compatibility with C++.
+++ /dev/null
-Add :c:func:`Py_HashPointer` function to hash a pointer. Patch by Victor
-Stinner.
+++ /dev/null
-Fix support of format units "es", "et", "es#", and "et#" in nested tuples in
-:c:func:`PyArg_ParseTuple`-like functions.
+++ /dev/null
-Fix redundant declarations in the public C API. Declare PyBool_Type,
-PyLong_Type and PySys_Audit() only once. Patch by Victor Stinner.
+++ /dev/null
-Added :func:`sys._is_interned`.
+++ /dev/null
-Remove LibreSSL workarounds as per :pep:`644`.
+++ /dev/null
-Use the object's actual class name in :meth:`_io.FileIO.__repr__`,
-:meth:`_io._WindowsConsoleIO` and :meth:`_io.TextIOWrapper.__repr__`, to
-make these methods subclass friendly.
+++ /dev/null
-Fix UnicodeEncodeError when :func:`email.message.get_payload` reads a message\r
-with a Unicode surrogate character and the message content is not well-formed for\r
-surrogateescape encoding. Patch by Sidney Markowitz.
+++ /dev/null
-:c:func:`PyComplex_RealAsDouble`/:c:func:`PyComplex_ImagAsDouble` now tries to
-convert an object to a :class:`complex` instance using its ``__complex__()`` method
-before falling back to the ``__float__()`` method. Patch by Sergey B Kirpichev.
+++ /dev/null
-The Tier 2 translator now tracks the confidence level for staying "on trace"
-(i.e. not exiting back to the Tier 1 interpreter) for branch instructions
-based on the number of bits set in the branch "counter". Trace translation
-ends when the confidence drops below 1/3rd.
+++ /dev/null
-Avoid undefined behaviour when using the perf trampolines by not freeing the
-code arenas until shutdown. Patch by Pablo Galindo
+++ /dev/null
-Make code generated for an empty f-string identical to the code of an empty
-normal string.
+++ /dev/null
-Fix error positions for decoded strings with backwards tokenize errors.
-Patch by Pablo Galindo
+++ /dev/null
-Fix an error that was causing the parser to try to overwrite tokenizer
-errors. Patch by pablo Galindo
+++ /dev/null
-Change coro.cr_frame/gen.gi_frame to return ``None`` after the coroutine/generator has been closed.
-This fixes a bug where :func:`~inspect.getcoroutinestate` and :func:`~inspect.getgeneratorstate`
-return the wrong state for a closed coroutine/generator.
+++ /dev/null
-Add check for the type of ``__cause__`` returned from calling the type ``T`` in ``raise from T``.
+++ /dev/null
-Provide a better error message when accessing invalid attributes on partially initialized modules. The origin of the module being accessed is now included in the message to help with the common issue of shadowing other modules.
+++ /dev/null
-Workaround a bug in Apple's macOS platform zlib library where
-:func:`zlib.crc32` and :func:`binascii.crc32` could produce incorrect results
-on multi-gigabyte inputs. Including when using :mod:`zipfile` on zips
-containing large data.
+++ /dev/null
-Do not clear unexpected errors during formatting error messages for
-ImportError and AttributeError for modules.
+++ /dev/null
-Fixes a bug where a bytearray object could be cleared while iterating over an argument in the ``bytearray.join()`` method that could result in reading memory after it was freed.
+++ /dev/null
-Use color to highlight error locations in tracebacks. Patch by Pablo Galindo
+++ /dev/null
-Fix SystemError in the ``import`` statement and in ``__reduce__()`` methods
-of builtin types when ``__builtins__`` is not a dict.
+++ /dev/null
-:func:`input` now raises a ValueError when output on the terminal if the
-prompt contains embedded null characters instead of silently truncating it.
+++ /dev/null
-Fix None.__ne__(None) returning NotImplemented instead of False
+++ /dev/null
-Correctly compute end column offsets for multiline tokens in the
-:mod:`tokenize` module. Patch by Pablo Galindo
+++ /dev/null
-Optimize builtin functions :func:`min` and :func:`max`.
+++ /dev/null
-Change the API and contract of ``_PyExecutorObject`` to return the
-next_instr pointer, instead of the frame, and to always execute at least one
-instruction.
+++ /dev/null
-Use per AST-parser state rather than global state to track recursion depth
-within the AST parser to prevent potential race condition due to
-simultaneous parsing.
-
-The issue primarily showed up in 3.11 by multithreaded users of
-:func:`ast.parse`. In 3.12 a change to when garbage collection can be
-triggered prevented the race condition from occurring.
+++ /dev/null
-Fixed bug where a redundant NOP is not removed, causing an assertion to fail
-in the compiler in debug mode.
+++ /dev/null
-Increase the C recursion limit by a factor of 3 for non-debug builds, except
-for webassembly and s390 platforms which are unchanged. This mitigates some
-regressions in 3.12 with deep recursion mixing builtin (C) and Python code.
+++ /dev/null
-Only use ``NULL`` in the exception stack to indicate an exception was
-handled. Patch by Carey Metcalfe.
+++ /dev/null
-Improve :py:class:`super` error messages.
+++ /dev/null
-Fix segfault in the compiler on with statement with 19 context managers.
+++ /dev/null
-No longer issue spurious ``PY_UNWIND`` events for optimized calls to classes.
+++ /dev/null
-Fix an error that was causing the parser to try to overwrite existing errors
-and crashing in the process. Patch by Pablo Galindo
+++ /dev/null
-Fixed bug where a redundant NOP is not removed, causing an assertion to fail in the compiler in debug mode.
+++ /dev/null
-Fix an issue that caused important instruction pointer updates to be
-optimized out of tier two traces.
+++ /dev/null
-Changed error message in case of no 'in' keyword after 'for' in list
-comprehensions
+++ /dev/null
-Check for a valid ``tp_version_tag`` before performing bytecode specializations that
-rely on this value being usable.
+++ /dev/null
-Fix a regression in the :mod:`codeop` module that was causing it to incorrectly
-identify incomplete f-strings. Patch by Pablo Galindo
+++ /dev/null
-Compiler changed so that synthetic jumps which are not at loop end no longer check the eval breaker.
+++ /dev/null
-Fix an issue where the finalizer of ``PyAsyncGenASend`` objects might not be
-called if they were allocated from a free list.
+++ /dev/null
-Guarantee that all executors make progress. This then guarantees that tier 2
-execution always makes progress.
+++ /dev/null
-On Windows, file descriptors wrapping Windows handles are now created non
-inheritable by default (:pep:`446`). Patch by Zackery Spytz and Victor
-Stinner.
+++ /dev/null
-Add typed stack effects to the interpreter DSL, along with various instruction annotations.
+++ /dev/null
-Set the C recursion limit to 4000 on Windows, and 10000 on Linux/OSX. This
-seems to be near the sweet spot to maintain safety, but not compromise
-backwards compatibility.
+++ /dev/null
-A jump leaving an exception handler back to normal code no longer checks the eval breaker.
+++ /dev/null
-Compiler duplicates basic blocks that have an eval breaker check, no line number, and multiple predecessors.
+++ /dev/null
-Document that the :mod:`asyncio` module contains code taken from `v0.16.0 of
-the uvloop project <https://github.com/MagicStack/uvloop/tree/v0.16.0>`_, as
-well as the required MIT licensing information.
+++ /dev/null
-Improved markup for valid options/values for methods ttk.treeview.column and ttk.treeview.heading, and for Layouts.
+++ /dev/null
-Relocate ``smtpd`` deprecation notice to its own section rather than under ``locale`` in What's New in Python 3.12 document
+++ /dev/null
-Enter the selected text when opening the "Replace" dialog.
+++ /dev/null
-Fix processing unsaved files when quitting IDLE on macOS.
+++ /dev/null
-Fix test_editor hang on macOS Catalina.
+++ /dev/null
-Fix the "Help -> IDLE Doc" menu bug in 3.11.7 and 3.12.1.
+++ /dev/null
-Fix rare failure of test.test_idle, in test_configdialog.
+++ /dev/null
-Improve the lists of features, editor key bindings, and shell key bingings
-in the IDLE doc.
+++ /dev/null
-:class:`mailbox.Maildir` now ignores files with a leading dot.
+++ /dev/null
-Add a new :envvar:`PYTHON_HISTORY` environment variable to set the location
-of a ``.python_history`` file.
+++ /dev/null
-Fixed a class inheritance issue that can cause segfaults when deriving two or more levels of subclasses from a base class of Structure or Union.
-
+++ /dev/null
-Fix some error messages for invalid ISO format string combinations in ``strptime()`` that referred to directives not contained in the format string.
-Patch by Gordon P. Hemsley.
+++ /dev/null
-Fixed a race condition in :func:`shutil.rmtree` in which directory entries removed by another process or thread while ``shutil.rmtree()`` is running can cause it to raise FileNotFoundError. Patch by Jeffrey Kintscher.
-
+++ /dev/null
-:func:`warnings.filterwarnings()` and :func:`warnings.simplefilter()` now raise
-appropriate exceptions instead of ``AssertionError``. Patch contributed by
-Rémi Lapeyre.
+++ /dev/null
-The :meth:`ssl.SSLSocket.recv_into` method no longer requires the *buffer*
-argument to implement ``__len__`` and supports buffers with arbitrary item size.
+++ /dev/null
-The :func:`!pydoc.ispackage` function has been deprecated.
+++ /dev/null
-Fixed memory leaks of :class:`pickle.Pickler` and :class:`pickle.Unpickler` involving cyclic references via the
-internal memo mapping.
+++ /dev/null
-:func:`shutil.move` now moves a symlink into a directory when that
-directory is the target of the symlink. This provides the same behavior as
-the mv shell command. The previous behavior raised an exception. Patch by
-Jeffrey Kintscher.
+++ /dev/null
-:class:`io.TextIOWrapper` now correctly handles the decoding buffer after
-``read()`` and ``write()``.
+++ /dev/null
-The :func:`shutil.rmtree` function now ignores errors when calling
-:func:`os.close` when *ignore_errors* is ``True``, and
-:func:`os.close` no longer retried after error.
+++ /dev/null
-:class:`mmap.mmap` now has a *trackfd* parameter on Unix; if it is
-``False``, the file descriptor specified by *fileno* will not be duplicated.
+++ /dev/null
-:func:`getpass.getuser` now raises :exc:`OSError` for all failures rather
-than :exc:`ImportError` on systems lacking the :mod:`pwd` module or
-:exc:`KeyError` if the password database is empty.
+++ /dev/null
-On Windows, ``tempfile.TemporaryDirectory`` previously masked a
-``PermissionError`` with ``NotADirectoryError`` during directory cleanup. It
-now correctly raises ``PermissionError`` if errors are not ignored. Patch by
-Andrei Kulakov and Ken Jin.
+++ /dev/null
-Fix a bug in :class:`tempfile.TemporaryDirectory` cleanup, which now no longer
-dereferences symlinks when working around file system permission errors.
+++ /dev/null
-Renamed :exc:`!re.error` to :exc:`PatternError` for clarity, and kept
-:exc:`!re.error` for backward compatibility. Patch by Matthias Bussonnier and
-Adam Chhina.
+++ /dev/null
-:class:`mailbox.MH` now supports folders that do not contain a
-``.mh_sequences`` file (e.g. Claws Mail IMAP-cache folders). Patch by Serhiy
-Storchaka.
+++ /dev/null
-Make hardcoded python name, a configurable parameter so that different implementations of python can override it instead of making huge diffs in sysconfig.py
+++ /dev/null
-Add :func:`warnings.deprecated`, a decorator to mark deprecated functions to
-static type checkers and to warn on usage of deprecated classes and functions.
-See :pep:`702`. Patch by Jelle Zijlstra.
+++ /dev/null
-:func:`runpy.run_path` now decodes path-like objects, making sure __file__
-and sys.argv[0] of the module being run are always strings.
+++ /dev/null
-Support tab completion in :mod:`cmd` for ``editline``.
+++ /dev/null
-Add *follow_symlinks* keyword-only argument to :meth:`pathlib.Path.owner`
-and :meth:`~pathlib.Path.group`, defaulting to ``True``.
+++ /dev/null
-Small (10 - 20%) and trivial performance improvement of :func:`urrlib.request.getproxies_environment`, typically useful when there are many environment variables to go over.
+++ /dev/null
-Fix possible reference leaks and crash when re-enter the ``__next__()`` method of
-:class:`itertools.pairwise`.
+++ /dev/null
-Protect :mod:`zipfile` from "quoted-overlap" zipbomb. It now raises
-BadZipFile when try to read an entry that overlaps with other entry or
-central directory.
+++ /dev/null
-Add private ``pathlib._PurePathBase`` class: a base class for
-:class:`pathlib.PurePath` that omits certain magic methods. It may be made
-public (along with ``_PathBase``) in future.
+++ /dev/null
-Add ``track`` parameter to :class:`multiprocessing.shared_memory.SharedMemory` that allows using shared memory blocks without having to register with the POSIX resource tracker that automatically releases them upon process exit.
+++ /dev/null
-:meth:`cmd.Cmd.do_help` now cleans docstrings with :func:`inspect.cleandoc`\r
-before writing them. Patch by Filip Łapkiewicz.
+++ /dev/null
-:func:`email.utils.getaddresses` and :func:`email.utils.parseaddr` now
-return ``('', '')`` 2-tuples in more situations where invalid email
-addresses are encountered instead of potentially inaccurate values. Add
-optional *strict* parameter to these two functions: use ``strict=False`` to
-get the old behavior, accept malformed inputs.
-``getattr(email.utils, 'supports_strict_parsing', False)`` can be use to check
-if the *strict* paramater is available. Patch by Thomas Dwyer and Victor
-Stinner to improve the CVE-2023-27043 fix.
+++ /dev/null
-Redirect the output of ``interact`` command of :mod:`pdb` to the same channel as the debugger. Add tests and improve docs.
+++ /dev/null
-Fix crash during garbage collection of the :class:`io.BytesIO` buffer
-object.
+++ /dev/null
-Implement basic formatting support (minimum width, alignment, fill) for
-:class:`fractions.Fraction`.
+++ /dev/null
-Fix the behavior of :mod:`tkinter` widget's ``unbind()`` method with two
-arguments. Previously, ``widget.unbind(sequence, funcid)`` destroyed the
-current binding for *sequence*, leaving *sequence* unbound, and deleted the
-*funcid* command. Now it removes only *funcid* from the binding for
-*sequence*, keeping other commands, and deletes the *funcid* command. It
-leaves *sequence* unbound only if *funcid* was the last bound command.
+++ /dev/null
-Fix a regression caused by a fix to gh-93162 whereby you couldn't configure
-a :class:`QueueHandler` without specifying handlers.
+++ /dev/null
-Do not mangle ``sys.path[0]`` in :mod:`pdb` if safe_path is set
+++ /dev/null
-Named tuple's methods ``_replace()`` and ``__replace__()`` now raise
-TypeError instead of ValueError for invalid keyword arguments.
+++ /dev/null
-Add support of the "vsapi" element type in
-:meth:`tkinter.ttk.Style.element_create`.
+++ /dev/null
-When creating a :class:`typing.NamedTuple` class, ensure
-:func:`~object.__set_name__` is called on all objects that define
-``__set_name__`` and exist in the values of the ``NamedTuple`` class's class
-dictionary. Patch by Alex Waygood.
+++ /dev/null
-Display multiple lines with ``traceback`` when errors span multiple lines.
+++ /dev/null
-Make :func:`readline.set_completer_delims` work with libedit
+++ /dev/null
-Add :meth:`Signature.format` to format signatures to string with extra options.
-And use it in :mod:`pydoc` to render more readable signatures that have new
-lines between parameters.
+++ /dev/null
-Change :mod:`dis` output to display logical labels for jump targets instead of offsets.
+++ /dev/null
-Slightly improve the import time of the :mod:`pathlib` module by deferring
-some imports. Patch by Barney Gale.
+++ /dev/null
-Fix a crash in :mod:`readline` when imported from a sub interpreter. Patch
-by Anthony Shaw
+++ /dev/null
-Add extra tests for :func:`random.binomialvariate`
+++ /dev/null
-Deprecate the ``exc_type`` field of :class:`traceback.TracebackException`.
-Add ``exc_type_str`` to replace it.
+++ /dev/null
-Change :mod:`dis` output to display no-lineno as "--" instead of "None".
+++ /dev/null
-Improve error message when trying to call :func:`issubclass` against a
-:class:`typing.Protocol` that has non-method members.
-Patch by Randolf Scholz.
+++ /dev/null
-Speed up a small handful of :mod:`pathlib` methods by removing some
-temporary objects.
+++ /dev/null
-Fix bug where comparison between instances of :class:`~doctest.DocTest` fails if
-one of them has ``None`` as its lineno.
+++ /dev/null
-Optimize :meth:`pathlib.PurePath.relative_to`. Patch by Alex Waygood.
+++ /dev/null
-Revert change to :class:`struct.Struct` initialization that broke some cases
-of subclassing.
+++ /dev/null
-Fix regression in Python 3.12 where calling :func:`repr` on a module that
-had been imported using a custom :term:`loader` could fail with
-:exc:`AttributeError`. Patch by Alex Waygood.
+++ /dev/null
-Added support for TLS-PSK (pre-shared key) mode to the :mod:`ssl` module.
+++ /dev/null
-Add ``keep_alive`` keyword parameter for :meth:`AbstractEventLoop.create_server` and :meth:`BaseEventLoop.create_server`.
+++ /dev/null
-Fix edge cases that could cause a key to be present in both the
-``__required_keys__`` and ``__optional_keys__`` attributes of a
-:class:`typing.TypedDict`. Patch by Jelle Zijlstra.
+++ /dev/null
-[Enum] Make ``EnumDict``, ``EnumDict.member_names``,
-``EnumType._add_alias_`` and ``EnumType._add_value_alias_`` public.
+++ /dev/null
-Add :data:`readline.backend` for the backend readline uses (``editline`` or ``readline``)
+++ /dev/null
-Update the bundled copy of pip to version 23.3.1.
+++ /dev/null
-Fix a spurious :exc:`RuntimeWarning` when executing the :mod:`zipfile` module.
+++ /dev/null
-Fix a crash in :func:`socket.if_indextoname` with specific value (UINT_MAX).
-Fix an integer overflow in :func:`socket.if_indextoname` on 64-bit
-non-Windows platforms.
+++ /dev/null
-Fix ctypes structs with array on Arm platform by setting ``MAX_STRUCT_SIZE`` to 32 in stgdict. Patch by Diego Russo.
+++ /dev/null
-Fixed a performance regression in 3.12's :mod:`subprocess` on Linux where it
-would no longer use the fast-path ``vfork()`` system call when it could have
-due to a logic bug, instead falling back to the safe but slower ``fork()``.
-
-Also fixed a second 3.12.0 potential security bug. If a value of
-``extra_groups=[]`` was passed to :mod:`subprocess.Popen` or related APIs,
-the underlying ``setgroups(0, NULL)`` system call to clear the groups list
-would not be made in the child process prior to ``exec()``.
-
-This was identified via code inspection in the process of fixing the first
-bug.
+++ /dev/null
-Fix a caching bug relating to :data:`typing.Annotated`.
-``Annotated[str, True]`` is no longer identical to ``Annotated[str, 1]``.
+++ /dev/null
-Ensure ``name`` parameter is passed to event loop in
-:func:`asyncio.create_task`.
+++ /dev/null
-Add ``kwdefaults`` parameter to :data:`types.FunctionType` to set
-default keyword argument values.
+++ /dev/null
-Remove deprecation error on passing ``onerror`` to :func:`shutil.rmtree`.
+++ /dev/null
-Speedup :func:`isinstance` checks by roughly 20% for
-:func:`runtime-checkable protocols <typing.runtime_checkable>`
-that only have one callable member.
-Speedup :func:`issubclass` checks for these protocols by roughly 10%.
-Patch by Alex Waygood.
+++ /dev/null
-Speedup :func:`issubclass` checks against simple :func:`runtime-checkable
-protocols <typing.runtime_checkable>` by around 6%. Patch by Alex Waygood.
+++ /dev/null
-Speed up :meth:`pathlib.Path.absolute`. Patch by Barney Gale.
+++ /dev/null
-The use of del-safe symbols in ``subprocess`` was refactored to allow for use in cross-platform build environments.
+++ /dev/null
-:func:`shutil.rmtree` now only catches OSError exceptions. Previously a
-symlink attack resistant version of ``shutil.rmtree()`` could ignore or pass
-to the error handler arbitrary exception when invalid arguments were
-provided.
+++ /dev/null
-Fix an infinite recursion error in :func:`tempfile.TemporaryDirectory`
-cleanup on Windows.
+++ /dev/null
-Add the following constants to the :mod:`termios` module. These values are
-present in macOS system headers: ``ALTWERASE``, ``B14400``, ``B28800``,
-``B7200``, ``B76800``, ``CCAR_OFLOW``, ``CCTS_OFLOW``, ``CDSR_OFLOW``,
-``CDTR_IFLOW``, ``CIGNORE``, ``CRTS_IFLOW``, ``EXTPROC``, ``IUTF8``,
-``MDMBUF``, ``NL2``, ``NL3``, ``NOKERNINFO``, ``ONOEOT``, ``OXTABS``,
-``VDSUSP``, ``VSTATUS``.
+++ /dev/null
-Fix :mod:`asyncio` ``SubprocessTransport.close()`` not to throw
-``PermissionError`` when used with setuid executables.
+++ /dev/null
-Added :const:`LOG_FTP`, :const:`LOG_NETINFO`, :const:`LOG_REMOTEAUTH`,
-:const:`LOG_INSTALL`, :const:`LOG_RAS`, and :const:`LOG_LAUNCHD` tot the
-:mod:`syslog` module, all of them constants on used on macOS.
+++ /dev/null
-The statistics.geometric_mean() function now returns zero for datasets
-containing a zero. Formerly, it would raise an exception.
+++ /dev/null
-Fix ctypes structs with array on PPC64LE platform by setting ``MAX_STRUCT_SIZE`` to 64 in stgdict. Patch by Diego Russo.
+++ /dev/null
-Use :c:func:`!closefrom` on Linux where available (e.g. glibc-2.34), rather than only FreeBSD.
+++ /dev/null
-Reduce overhead to connect sockets with :mod:`asyncio` SelectorEventLoop.
+++ /dev/null
-:mod:`dis` module functions add cache information to the
-:class:`~dis.Instruction` instance rather than creating fake
-:class:`~dis.Instruction` instances to represent the cache entries.
+++ /dev/null
-:func:`signal.signal` and :func:`signal.getsignal` no longer call ``repr`` on
-callable handlers. :func:`asyncio.run` and :meth:`asyncio.Runner.run` no longer
-call ``repr`` on the task results. Patch by Yilei Yang.
+++ /dev/null
-Add support of :func:`os.lchmod` and the *follow_symlinks* argument in
-:func:`os.chmod` on Windows. Note that the default value of *follow_symlinks*
-in :func:`!os.lchmod` is ``False`` on Windows.
+++ /dev/null
-Sync with importlib_metadata 7.0, including improved type annotations, fixed
-issue with symlinked packages in ``package_distributions``, added
-``EntryPoints.__repr__``, introduced the ``diagnose`` script, added
-``Distribution.origin`` property, and removed deprecated ``EntryPoint``
-access by numeric index (tuple behavior).
+++ /dev/null
-Detect line numbers of properties in doctests.
+++ /dev/null
-Add a ``strict`` option to ``batched()`` in the ``itertools`` module.
+++ /dev/null
-:func:`os.posix_spawn` now accepts ``env=None``, which makes the newly spawned
-process use the current process environment. Patch by Jakub Kulik.
+++ /dev/null
-Fix :func:`shutil.copymode` and :func:`shutil.copystat` on Windows.
-Previously they worked differenly if *dst* is a symbolic link:
-they modified the permission bits of *dst* itself
-rather than the file it points to if *follow_symlinks* is true or *src* is
-not a symbolic link, and did not modify the permission bits if
-*follow_symlinks* is false and *src* is a symbolic link.
+++ /dev/null
-Add support of :func:`os.fchmod` and a file descriptor in :func:`os.chmod`
-on Windows.
+++ /dev/null
-Make ``http.client.HTTPResponse.read1`` and
-``http.client.HTTPResponse.readline`` close IO after reading all data when
-content length is known. Patch by Illia Volochii.
+++ /dev/null
-The :mod:`subprocess` module can now use the :func:`os.posix_spawn` function
-with ``close_fds=True`` on platforms where
-``posix_spawn_file_actions_addclosefrom_np`` is available.
-Patch by Jakub Kulik.
+++ /dev/null
-Improve error message when a JSON array or object contains a trailing comma.
-Patch by Carson Radtke.
+++ /dev/null
-Speed up :meth:`pathlib.Path.glob` by using :attr:`os.DirEntry.path` where possible.
+++ /dev/null
-:meth:`asyncio.futures.Future.set_exception()` now transforms :exc:`StopIteration`
-into :exc:`RuntimeError` instead of hanging or other misbehavior. Patch
-contributed by Jamie Phan.
+++ /dev/null
-Fixed tarfile list() method to show file type.
+++ /dev/null
-Update bundled pip to 23.3.2.
+++ /dev/null
-Fix an ``AttributeError`` during asyncio SSL protocol aborts in SSL-over-SSL scenarios.
+++ /dev/null
-Fix rendering tracebacks with exceptions with a broken __getattr__
+++ /dev/null
-Add a new option ``aware_datetime`` in :mod:`plistlib` to loads or dumps
-aware datetime.
+++ /dev/null
-Fix regression in Python 3.12 where :class:`~typing.Protocol` classes that
-were not marked as :func:`runtime-checkable <typing.runtime_checkable>`
-would be unnecessarily introspected, potentially causing exceptions to be
-raised if the protocol had problematic members. Patch by Alex Waygood.
+++ /dev/null
-Fix import of :mod:`unittest.mock` when CPython is built without docstrings.
+++ /dev/null
-Fix segfaults in the ``_elementtree`` module.
-Fix first segfault during deallocation of ``_elementtree.XMLParser`` instances by keeping strong reference
-to ``pyexpat`` module in module state for capsule lifetime.
-Fix second segfault which happens in the same deallocation process by keeping strong reference
-to ``_elementtree`` module in ``XMLParser`` structure for ``_elementtree`` module lifetime.
+++ /dev/null
-Fix multiprocessing logger for ``%(filename)s``.
+++ /dev/null
-When a second reference to a string appears in the input to :mod:`pickle`,
-and the Python implementation is in use,
-we are guaranteed that a single copy gets pickled
-and a single object is shared when reloaded.
-Previously, in protocol 0, when a string contained certain characters
-(e.g. newline) it resulted in duplicate objects.
+++ /dev/null
-Make sure that ``webbrowser.MacOSXOSAScript`` sends ``webbrowser.open``
-audit event.
+++ /dev/null
-Raise audit events from :class:`pathlib.Path` and not its private base class
-``PathBase``.
+++ /dev/null
-Increase the backlog for :class:`multiprocessing.connection.Listener` objects created
-by :mod:`multiprocessing.manager` and :mod:`multiprocessing.resource_sharer` to
-significantly reduce the risk of getting a connection refused error when creating
-a :class:`multiprocessing.connection.Connection` to them.
+++ /dev/null
-Indicate if there were no actual calls in unittest
-:meth:`~unittest.mock.Mock.assert_has_calls` failure.
+++ /dev/null
-Add default implementations of :meth:`pickle.Pickler.persistent_id` and
-:meth:`pickle.Unpickler.persistent_load` methods in the C implementation.
-Calling ``super().persistent_id()`` and ``super().persistent_load()`` in
-subclasses of the C implementation of :class:`pickle.Pickler` and
-:class:`pickle.Unpickler` classes no longer causes infinite recursion.
+++ /dev/null
-Support loads ``str`` in :func:`plistlib.loads`.
+++ /dev/null
-Fix resource warnings for unclosed files in :mod:`pickle` and
-:mod:`pickletools` command line interfaces.
+++ /dev/null
-Add support for the *allow_code* argument in the :mod:`marshal` module.
-Passing ``allow_code=False`` prevents serialization and de-serialization of
-code objects which is incompatible between Python versions.
+++ /dev/null
-In :meth:`asyncio.StreamReaderProtocol.connection_made`, there is callback
-that logs an error if the task wrapping the "connected callback" fails. This
-callback would itself fail if the task was cancelled. Prevent this by
-checking whether the task was cancelled first. If so, close the transport
-but don't log an error.
+++ /dev/null
-Fix :exc:`UnicodeEncodeError` in :mod:`email` when re-fold lines that
-contain unknown-8bit encoded part followed by non-unknown-8bit encoded part.
+++ /dev/null
-Raise deprecation warnings from :class:`pathlib.PurePath` and not its
-private base class ``PurePathBase``.
+++ /dev/null
-Restore the ability for :mod:`zipfile` to ``extractall`` from zip files with
-a "/" directory entry in them as is commonly added to zips by some wiki or
-bug tracker data exporters.
+++ /dev/null
-Add ``CLOCK_MONOTONIC_RAW_APPROX`` and ``CLOCK_UPTIME_RAW_APPROX`` to
-:mod:`time` on macOS. These are clocks available on macOS 10.12 or later.
+++ /dev/null
-:func:`asyncio.Condition.wait()` now re-raises the same :exc:`CancelledError` instance that may have caused it to be interrupted. Fixed race condition in :func:`asyncio.Semaphore.aquire` when interrupted with a :exc:`CancelledError`.
+++ /dev/null
-Add ``Anchor`` to ``importlib.resources`` (in order for the code to comply with the documentation)
+++ /dev/null
-Silence unraisable AttributeError when warnings are emitted during Python
-finalization.
+++ /dev/null
-Insert :exc:`TimeoutError` in the context of the exception that was raised
-during exiting an expired :func:`asyncio.timeout` block.
+++ /dev/null
-unittest runner: Don't exit 5 if tests were skipped. The intention of
-exiting 5 was to detect issues where the test suite wasn't discovered at
-all. If we skipped tests, it was correctly discovered.
+++ /dev/null
-:func:`asyncio.TaskGroup()` and :func:`asyncio.timeout()` context managers
-now handle :exc:`~asyncio.CancelledError` subclasses as well as exact
-:exc:`!CancelledError`.
+++ /dev/null
-Added :data:`mmap.MAP_NORESERVE`, :data:`mmap.MAP_NOEXTEND`,
-:data:`mmap.MAP_HASSEMAPHORE`, :data:`mmap.MAP_NOCACHE`,
-:data:`mmap.MAP_JIT`, :data:`mmap.MAP_RESILIENT_CODESIGN`,
-:data:`mmap.MAP_RESILIENT_MEDIA`, :data:`mmap.MAP_32BIT`,
-:data:`mmap.MAP_TRANSLATED_ALLOW_EXECUTE`, :data:`mmap.MAP_UNIX03` and
-:data:`mmap.MAP_TPRO`. All of them are ``mmap(2)`` flags on macOS.
+++ /dev/null
-Fix :mod:`tkinter` method ``winfo_pathname()`` on 64-bit Windows.
+++ /dev/null
-The :class:`zipfile.ZipInfo` previously protected ``._compresslevel``
-attribute has been made public as ``.compress_level`` with the old
-``_compresslevel`` name remaining available as a property to retain
-compatibility.
+++ /dev/null
-:meth:`sqlite3.Connection.iterdump` now ensures that foreign key support is
-disabled before dumping the database schema, if there is any foreign key
-violation. Patch by Erlend E. Aasland and Mariusz Felisiak.
+++ /dev/null
-Fixed a bug in :class:`fractions.Fraction` where an invalid string using ``d`` in the decimals part creates a different error compared to other invalid letters/characters. Patch by Jeremiah Gabriel Pascual.
+++ /dev/null
-:mod:`plistlib` now supports loading more deeply nested lists in binary
-format.
+++ /dev/null
-Fix possible :exc:`OverflowError` in :meth:`socket.socket.sendfile` when pass
-*count* larger than 2 GiB on 32-bit platform.
+++ /dev/null
-Created a Software Bill-of-Materials document and tooling for tracking
-dependencies.
+++ /dev/null
-Skip ``.pth`` files with names starting with a dot or hidden file attribute.
+++ /dev/null
-Test modes that file can get with chmod() on Windows.
+++ /dev/null
-Fixed order dependence in running tests in the same process
-when a test that has submodules (e.g. test_importlib) follows a test that
-imports its submodule (e.g. test_importlib.util) and precedes a test
-(e.g. test_unittest or test_compileall) that uses that submodule.
+++ /dev/null
-Adds a regression test to verify that ``vfork()`` is used when expected by
-:mod:`subprocess` on vfork enabled POSIX systems (Linux).
+++ /dev/null
-The tests now correctly compare zlib version when
-:const:`zlib.ZLIB_RUNTIME_VERSION` contains non-integer suffixes. For
-example zlib-ng defines the version as ``1.3.0.zlib-ng``.
+++ /dev/null
-Fix ``test_tarfile_vs_tar`` in ``test_shutil`` for macOS, where system tar
-can include more information in the archive than :mod:`shutil.make_archive`.
+++ /dev/null
-Use module state for the _testcapi extension module.
+++ /dev/null
-Fix :func:`os.path.isabs` incorrectly returning ``True`` when given a path
-that starts with exactly one (back)slash on Windows.
-
-Fix :meth:`pathlib.PureWindowsPath.is_absolute` incorrectly returning
-``False`` for some paths beginning with two (back)slashes.
+++ /dev/null
-Specify a low recursion depth for ``test_bad_getattr()`` in
-``test.pickletester`` to avoid exhausting the stack under a pydebug build
-for WASI.
+++ /dev/null
-Lower the recursion limit in ``test_isinstance`` for
-``test_infinitely_many_bases()``. This prevents a stack overflow on a
-pydebug build of WASI.
+++ /dev/null
-Disable ``test_super_deep()`` from ``test_call`` under pydebug builds on
-WASI; the stack depth is too small to make the test useful.
+++ /dev/null
-Fix mojibake in :class:`mmap.mmap` when using a non-ASCII *tagname* argument
-on Windows.
+++ /dev/null
-Correctly sort and remove duplicate environment variables in
-:py:func:`!_winapi.CreateProcess`.
+++ /dev/null
-Deprecate :func:`sys._enablelegacywindowsfsencoding`. Use
-:envvar:`PYTHONLEGACYWINDOWSFSENCODING` instead. Patch by Inada Naoki.
+++ /dev/null
-Reduce the time cost for some functions in :mod:`platform` on Windows if
-current user has no permission to the WMI.
+++ /dev/null
-Ensures the ``Py_GIL_DISABLED`` preprocessor variable is defined in
-:file:`pyconfig.h` so that extension modules written in C are able to use
-it.
+++ /dev/null
-Update Tcl/Tk in Windows installer to 8.6.13 with a patch to suppress
-incorrect ThemeChanged warnings.
+++ /dev/null
-Fixes path calculations when launching Python on Windows through a symlink.
+++ /dev/null
-:mod:`multiprocessing`: On Windows, fix a race condition in
-``Process.terminate()``: no longer set the ``returncode`` attribute to
-always call ``WaitForSingleObject()`` in ``Process.wait()``. Previously,
-sometimes the process was still running after ``TerminateProcess()`` even if
-``GetExitCodeProcess()`` is not ``STILL_ACTIVE``. Patch by Victor Stinner.
+++ /dev/null
-Update Windows installer to use SQLite 3.44.2.
+++ /dev/null
-:func:`os.stat` calls were returning incorrect time values for files that
-could not be accessed directly.
+++ /dev/null
-Process privileges that are activated for creating directory junctions are
-now restored afterwards, avoiding behaviour changes in other parts of the
-program.
+++ /dev/null
-Use ``/dev/fd`` on macOS to determine the number of open files in
-``test.support.os_helper.fd_count`` to avoid a crash with "guarded" file
-descriptors when probing for open files.
+++ /dev/null
-Make sure the preprocessor definitions for ``ALIGNOF_MAX_ALIGN_T``,
-``SIZEOF_LONG_DOUBLE`` and ``HAVE_GCC_ASM_FOR_X64`` are correct for
-Universal 2 builds on macOS.
+++ /dev/null
-Disable a signal handling stress test on macOS due to a bug in macOS
-(FB13453490).
+++ /dev/null
-Make sure the result of :func:`sysconfig.get_plaform` includes at least a
-major and minor versions, even if ``MACOSX_DEPLOYMENT_TARGET`` is set to
-only a major version during build to match the format expected by pip.
+++ /dev/null
-Set ``CFBundleAllowMixedLocalizations`` to true in the Info.plist for the
-framework, embedded Python.app and IDLE.app with framework installs on
-macOS. This allows applications to pick up the user's preferred locale when
-that's different from english.
+++ /dev/null
-Update macOS installer to use SQLite 3.44.2.
+++ /dev/null
-webbrowser: Don't look for X11 browsers on macOS. Those are generally not
-used and probing for them can result in starting XQuartz even if it isn't
-used otherwise.
+++ /dev/null
-The :program:`freeze` tool doesn't work with framework builds of Python.
-Document this and bail out early when running the tool with such a build.
+++ /dev/null
-Document that :mod:`dbm.ndbm` can silently corrupt DBM files on updates when
-exceeding undocumented platform limits, and can crash (segmentation fault)
-when reading such a corrupted file. (FB8919203)
+++ /dev/null
-Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect
-OpenSSL on macOS.
+++ /dev/null
-:func:`os.waitid` is now available on macOS
+++ /dev/null
-Add the following constants to module :mod:`stat`: ``UF_SETTABLE``,
-``UF_TRACKED``, ``UF_DATAVAULT``, ``SF_SUPPORTED``, ``SF_SETTABLE``,
-``SF_SYNTHETIC``, ``SF_RESTRICTED``, ``SF_FIRMLINK`` and ``SF_DATALESS``.
-The values ``UF_SETTABLE``, ``SF_SUPPORTED``, ``SF_SETTABLE`` and
-``SF_SYNTHETIC`` are only available on macOS.
-This is Python version 3.13.0 alpha 2
+This is Python version 3.13.0 alpha 3
=====================================
.. image:: https://github.com/python/cpython/workflows/Tests/badge.svg