./lang/py312-html-docs, HTML documentation for Python 3.12

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.12.3, Package name: py312-html-docs-3.12.3, Maintainer: leot

HTML documentation for Python 3.12.


Master sites:

Filesize: 8109.802 KB

Version history: (Expand)


CVS history: (Expand)


   2024-04-09 18:57:46 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
Log message:
python312 py312-html-docs: updated to 3.12.3

Python 3.12.3

Security

gh-115398: Allow controlling Expat >=2.6.0 reparse deferral (CVE-2023-52425) \ 
by adding five new methods:
xml.etree.ElementTree.XMLParser.flush()
xml.etree.ElementTree.XMLPullParser.flush()
xml.parsers.expat.xmlparser.GetReparseDeferralEnabled()
xml.parsers.expat.xmlparser.SetReparseDeferralEnabled()
xml.sax.expatreader.ExpatParser.flush()
gh-115399: Update bundled libexpat to 2.6.0
gh-115243: Fix possible crashes in collections.deque.index() when the deque is \ 
concurrently modified.
gh-114572: ssl.SSLContext.cert_store_stats() and ssl.SSLContext.get_ca_certs() \ 
now correctly lock access to the certificate store, when the ssl.SSLContext is \ 
shared across multiple threads.

Core and Builtins

gh-109120: Added handle of incorrect star expressions, e.g f(3, *). Patch by \ 
Grigoryev Semyon
gh-99108: Updated the hashlib built-in HACL* project C code from upstream that \ 
we use for many implementations when they are not present via OpenSSL in a given \ 
build. This also avoids the rare potential for a C symbol name one definition \ 
rule linking issue.
gh-116735: For INSTRUMENTED_CALL_FUNCTION_EX, set arg0 to sys.monitoring.MISSING \ 
instead of None for CALL event.
gh-113964: Starting new threads and process creation through os.fork() are now \ 
only prevented once all non-daemon threads exit.
gh-116604: Respect the status of the garbage collector when indirect calls are \ 
made via PyErr_CheckSignals() and the evaluation breaker. Patch by Pablo Galindo
gh-116626: Ensure INSTRUMENTED_CALL_FUNCTION_EX always emits CALL
gh-116296: Fix possible refleak in object.__reduce__() internal error handling.
gh-116034: Fix location of the error on a failed assertion.
gh-115823: Properly calculate error ranges in the parser when raising \ 
SyntaxError exceptions caused by invalid byte sequences. Patch by Pablo Galindo
gh-112087: For an empty reverse iterator for list will be reduced to reversed(). \ 
Patch by Donghee Na.
gh-115154: Fix a bug that was causing the tokenize.untokenize() function to \ 
handle unicode named literals incorrectly. Patch by Pablo Galindo
gh-114828: Fix compilation crashes in uncommon code examples using super() \ 
inside a comprehension in a class body.
gh-115011: Setters for members with an unsigned integer type now support the \ 
same range of valid values for objects that has a __index__() method as for int.
gh-112215: Change the C recursion limits to more closely reflect the underlying \ 
platform limits.
gh-96497: Fix incorrect resolution of mangled class variables used in assignment \ 
expressions in comprehensions.

Library

gh-117467: Preserve mailbox ownership when rewriting in mailbox.mbox.flush(). \ 
Patch by Tony Mountifield.

gh-117310: Fixed an unlikely early & extra Py_DECREF triggered crash in ssl \ 
when creating a new _ssl._SSLContext if CPython was built implausibly such that \ 
the default cipher list is empty or the SSL library it was linked against \ 
reports a failure from its C SSL_CTX_set_cipher_list() API.

gh-117178: Fix regression in lazy loading of self-referential modules, \ 
introduced in gh-114781.

gh-117084: Fix zipfile extraction for directory entries with the name containing \ 
backslashes on Windows.

gh-117110: Fix a bug that prevents subclasses of typing.Any to be instantiated \ 
with arguments. Patch by Chris Fu.

gh-90872: On Windows, subprocess.Popen.wait() no longer calls \ 
WaitForSingleObject() with a negative timeout: pass 0 ms if the timeout is \ 
negative. Patch by Victor Stinner.

gh-116957: configparser: Don’t leave ConfigParser values in an invalid state \ 
(stored as a list instead of a str) after an earlier read raised \ 
DuplicateSectionError or DuplicateOptionError.

gh-90095: Ignore empty lines and comments in .pdbrc

gh-116764: Restore support of None and other false values in urllib.parse \ 
functions parse_qs() and parse_qsl(). Also, they now raise a TypeError for \ 
non-zero integers and non-empty sequences.

gh-116811: In PathFinder.invalidate_caches, delegate to \ 
MetadataPathFinder.invalidate_caches.

gh-116600: Fix repr() for global Flag members.

gh-116484: Change automatically generated tkinter.Checkbutton widget names to \ 
avoid collisions with automatically generated tkinter.ttk.Checkbutton widget \ 
names within the same parent widget.

gh-116401: Fix blocking os.fwalk() and shutil.rmtree() on opening named pipe.

gh-116143: Fix a race in pydoc _start_server, eliminating a window in which \ 
_start_server can return a thread that is “serving” but without a docserver \ 
set.

gh-116325: typing: raise SyntaxError instead of AttributeError on forward \ 
references as empty strings.

gh-90535: Fix support of interval values > 1 in \ 
logging.TimedRotatingFileHandler for when='MIDNIGHT' and when='Wx'.

gh-115978: Disable preadv(), readv(), pwritev(), and writev() on WASI.

Under wasmtime for WASI 0.2, these functions don’t pass test_posix \ 
(https://github.com/bytecodealliance/wasmtime/issues/7830).

gh-88352: Fix the computation of the next rollover time in the \ 
logging.TimedRotatingFileHandler handler. computeRollover() now always returns a \ 
timestamp larger than the specified time and works correctly during the DST \ 
change. doRollover() no longer overwrite the already rolled over file, saving \ 
from data loss when run at midnight or during repeated time at the DST change.

gh-87115: Set __main__.__spec__ to None when running a script with pdb

gh-76511: Fix UnicodeEncodeError in email.Message.as_string() that results when \ 
a message that claims to be in the ascii character set actually has non-ascii \ 
characters. Non-ascii characters are now replaced with the U+FFFD replacement \ 
character, like in the replace error handler.

gh-116040: [Enum] fix by-value calls when second value is falsey; e.g. Cardinal(1, 0)

gh-75988: Fixed unittest.mock.create_autospec() to pass the call through to the \ 
wrapped object to return the real result.

gh-115881: Fix issue where ast.parse() would incorrectly flag conditional \ 
context managers (such as with (x() if y else z()): ...) as invalid syntax if \ 
feature_version=(3, 8) was passed. This reverts changes to the grammar made as \ 
part of gh-94949.

gh-115886: Fix silent truncation of the name with an embedded null character in \ 
multiprocessing.shared_memory.SharedMemory.

gh-115809: Improve algorithm for computing which rolled-over log files to delete \ 
in logging.TimedRotatingFileHandler. It is now reliable for handlers without \ 
namer and with arbitrary deterministic namer that leaves the datetime part in \ 
the file name unmodified.

gh-74668: urllib.parse functions parse_qs() and parse_qsl() now support bytes \ 
arguments containing raw and percent-encoded non-ASCII data.

gh-67044: csv.writer() now always quotes or escapes '\r' and '\n', regardless of \ 
lineterminator value.

gh-115712: csv.writer() now quotes empty fields if delimiter is a space and \ 
skipinitialspace is true and raises exception if quoting is not possible.

gh-112364: Fixed ast.unparse() to handle format_spec with ", ' or \\. \ 
Patched by Frank Hoffmann.

gh-111358: Fix a bug in asyncio.BaseEventLoop.shutdown_default_executor() to \ 
ensure the timeout passed to the coroutine behaves as expected.

gh-115618: Fix improper decreasing the reference count for None argument in \ 
property methods getter(), setter() and deleter().

gh-115570: A DeprecationWarning is no longer omitted on access to the __doc__ \ 
attributes of the deprecated typing.io and typing.re pseudo-modules.

gh-112006: Fix inspect.unwrap() for types with the __wrapper__ data descriptor.

gh-101293: Support callables with the __call__() method and types with __new__() \ 
and __init__() methods set to class methods, static methods, bound methods, \ 
partial functions, and other types of methods and descriptors in \ 
inspect.Signature.from_callable().

gh-115392: Fix a bug in doctest where incorrect line numbers would be reported \ 
for decorated functions.

gh-114563: Fix several format() bugs when using the C implementation of Decimal: \ 
* memory leak in some rare cases when using the z format option (coerce negative \ 
0) * incorrect output when applying the z format option to type F (fixed-point \ 
with capital NAN / INF) * incorrect output when applying the # format option \ 
(alternate form)

gh-115197: urllib.request no longer resolves the hostname before checking it \ 
against the system’s proxy bypass list on macOS and Windows.

gh-115165: Most exceptions are now ignored when attempting to set the \ 
__orig_class__ attribute on objects returned when calling typing generic aliases \ 
(including generic aliases created using typing.Annotated). Previously only \ 
AttributeError was ignored. Patch by Dave Shawley.

gh-115133: Fix tests for XMLPullParser with Expat 2.6.0.

gh-115059: io.BufferedRandom.read1() now flushes the underlying write buffer.

gh-79382: Trailing ** no longer allows to match files and non-existing paths in \ 
recursive glob().

gh-114071: Support tuple subclasses using auto() for enum member value.

gh-114763: Protect modules loaded with importlib.util.LazyLoader from race \ 
conditions when multiple threads try to access attributes before the loading is \ 
complete.

gh-97959: Fix rendering class methods, bound methods, method and function \ 
aliases in pydoc. Class methods no longer have “method of builtins.type \ 
instance” note. Corresponding notes are now added for class and unbound \ 
methods. Method and function aliases now have references to the module or the \ 
class where the origin was defined if it differs from the current. Bound methods \ 
are now listed in the static methods section. Methods of builtin classes are now \ 
supported as well as methods of Python classes.

gh-112281: Allow creating union of types for typing.Annotated with unhashable \ 
metadata.

gh-111775: Fix importlib.resources.simple.ResourceHandle.open() for text mode, \ 
added missed stream argument.

gh-90095: Make .pdbrc and -c work with any valid pdb commands.

gh-107155: Fix incorrect output of help(x) where x is a lambda function, which \ 
has an __annotations__ dictionary attribute with a "return" key.

gh-105866: Fixed _get_slots bug which caused error when defining dataclasses \ 
with slots and a weakref_slot.

gh-60346: Fix ArgumentParser inconsistent with parse_known_args.

gh-100985: Update HTTPSConnection to consistently wrap IPv6 Addresses when using \ 
a proxy.

gh-100884: email: fix misfolding of comma in address-lists over multiple lines \ 
in combination with unicode encoding.

gh-95782: Fix io.BufferedReader.tell(), io.BufferedReader.seek(), \ 
_pyio.BufferedReader.tell(), io.BufferedRandom.tell(), io.BufferedRandom.seek() \ 
and _pyio.BufferedRandom.tell() being able to return negative offsets.

gh-96310: Fix a traceback in argparse when all options in a mutually exclusive \ 
group are suppressed.

gh-93205: Fixed a bug in logging.handlers.TimedRotatingFileHandler where \ 
multiple rotating handler instances pointing to files with the same name but \ 
different extensions would conflict and not delete the correct files.

bpo-44865: Add missing call to localization function in argparse.

bpo-43952: Fix multiprocessing.connection.Listener.accept() to accept empty \ 
bytes as authkey. Not accepting empty bytes as key causes it to hang \ 
indefinitely.

bpo-42125: linecache: get module name from __spec__ if available. This allows \ 
getting source code for the __main__ module when a custom loader is used.

gh-66543: Make mimetypes.guess_type() properly parsing of URLs with only a host \ 
name, URLs containing fragment or query, and filenames with only a UNC \ 
sharepoint on Windows. Based on patch by Dong-hee Na.

bpo-33775: Add ‘default’ and ‘version’ help text for localization in \ 
argparse.

Documentation

gh-115399: Document CVE-2023-52425 of Expat <2.6.0 under “XML \ 
vulnerabilities”.
gh-115233: Fix an example for LoggerAdapter in the Logging Cookbook.

Tests

gh-83434: Disable JUnit XML output (--junit-xml=FILE command line option) in \ 
regrtest when hunting for reference leaks (-R option). Patch by Victor Stinner.
gh-117187: Fix XML tests for vanilla Expat <2.6.0.
gh-116333: Tests of TLS related things (error codes, etc) were updated to be \ 
more lenient about specific error message strings and behaviors as seen in the \ 
BoringSSL and AWS-LC forks of OpenSSL.
gh-115979: Update test_importlib so that it passes under WASI SDK 21.
gh-112536: Add –tsan to test.regrtest for running TSAN tests in reasonable \ 
execution times. Patch by Donghee Na.
gh-116307: Added import helper isolated_modules as CleanImport does not remove \ 
modules imported during the context. Use it in importlib.resources tests to \ 
avoid leaving mod around to impede importlib.metadata tests.
gh-115720: Leak tests (-R, --huntrleaks) now show a summary of the number of \ 
leaks found in each iteration.
gh-115122: Add --bisect option to regrtest test runner: run failed tests with \ 
test.bisect_cmd to identify failing tests. Patch by Victor Stinner.
gh-115596: Fix ProgramPriorityTests in test_os permanently changing the process \ 
priority.

Build

gh-116313: Get WASI builds to work under wasmtime 18 w/ WASI 0.2/preview2 primitives.
gh-116117: Backport libb2’s PR #42 to fix compiling CPython on 32-bit Windows \ 
with clang-cl.
gh-115167: Avoid vendoring vcruntime140_threads.dll when building with Visual \ 
Studio 2022 version 17.8.
gh-112536: Add support for thread sanitizer (TSAN)

Windows

gh-117267: Ensure DirEntry.stat().st_ctime behaves consistently with os.stat() \ 
during the deprecation period of st_ctime by containing the same value as \ 
st_birthtime. After the deprecation period, st_ctime will be the metadata change \ 
time (or unavailable through DirEntry), and only st_birthtime will contain the \ 
creation time.
gh-116773: Fix instances of <_overlapped.Overlapped object at 0xXXX> still \ 
has pending operation at deallocation, the process may crash.
gh-91227: Fix the asyncio ProactorEventLoop implementation so that sending a \ 
datagram to an address that is not listening does not prevent receiving any more \ 
datagrams.
gh-115554: The installer now has more strict rules about updating the Python \ 
Launcher for Windows. In general, most users only have a single launcher \ 
installed and will see no difference. When multiple launchers have been \ 
installed, the option to install the launcher is disabled until all but one have \ 
been removed. Downgrading the launcher (which was never allowed) is now more \ 
obviously blocked.
gh-115543: Python Launcher for Windows can now detect Python 3.13 when installed \ 
from the Microsoft Store, and will install Python 3.12 by default when \ 
PYLAUNCHER_ALLOW_INSTALL is set.
gh-115049: Fixes py.exe launcher failing when run as users without user profiles.
gh-115009: Update Windows installer to use SQLite 3.45.1.
IDLE
gh-88516: On macOS show a proxy icon in the title bar of editor windows to match \ 
platform behaviour.

Tools/Demos

gh-113516: Don’t set LDSHARED when building for WASI.

C API

gh-117021: Fix integer overflow in PyLong_AsPid() on non-Windows 64-bit platforms.
gh-116869: Make the C API compatible with -Werror=declaration-after-statement \ 
compiler flag again. Patch by Victor Stinner.
   2024-02-07 09:06:57 by Adam Ciarcinski | Files touched by this commit (7) | Package updated
Log message:
python312 py312-html-docs: updated to 3.12.2

Python 3.12.2 final

Security
gh-113659: Skip .pth files with names starting with a dot or hidden file attribute.
Core and Builtins
gh-114887: Changed socket type validation in create_datagram_endpoint() to \ 
accept all non-stream sockets. This fixes a regression in compatibility with raw \ 
sockets.

gh-114388: Fix a RuntimeWarning emitted when assign an integer-like value that \ 
is not an instance of int to an attribute that corresponds to a C struct member \ 
of type T_UINT and T_ULONG. Fix a double RuntimeWarning emitted when assign a \ 
negative integer value to an attribute that corresponds to a C struct member of \ 
type T_UINT.

gh-113703: Fix a regression in the codeop module that was causing it to \ 
incorrectly identify incomplete f-strings. Patch by Pablo Galindo

gh-89811: Check for a valid tp_version_tag before performing bytecode \ 
specializations that rely on this value being usable.

gh-113602: Fix an error that was causing the parser to try to overwrite existing \ 
errors and crashing in the process. Patch by Pablo Galindo

gh-113297: Fix segfault in the compiler on with statement with 19 context managers.

gh-106905: 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 ast.parse(). In \ 
3.12 a change to when garbage collection can be triggered prevented the race \ 
condition from occurring.

gh-112943: Correctly compute end column offsets for multiline tokens in the \ 
tokenize module. Patch by Pablo Galindo

gh-112716: Fix SystemError in the import statement and in __reduce__() methods \ 
of builtin types when __builtins__ is not a dict.

gh-94606: Fix UnicodeEncodeError when 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.
Library
gh-114965: Update bundled pip to 24.0
gh-114959: tarfile no longer ignores errors when trying to extract a directory \ 
on top of a file.
gh-109475: Fix support of explicit option value “–” in argparse (e.g. \ 
--option=--).
gh-110190: Fix ctypes structs with array on Windows ARM64 platform by setting \ 
MAX_STRUCT_SIZE to 32 in stgdict. Patch by Diego Russo
gh-113280: Fix a leak of open socket in rare cases when error occurred in \ 
ssl.SSLSocket creation.
gh-77749: email.policy.EmailPolicy.fold() now always encodes non-ASCII \ 
characters in headers if utf8 is false.
gh-114492: Make the result of termios.tcgetattr() reproducible on Alpine Linux. \ 
Previously it could leave a random garbage in some fields.
gh-113267: Revert changes in gh-106584 which made calls of TestResult methods \ 
startTest() and stopTest() unbalanced.
gh-75128: Ignore an OSError in asyncio.BaseEventLoop.create_server() when IPv6 \ 
is available but the interface cannot actually support it.
gh-114257: Dismiss the FileNotFound error in ctypes.util.find_library() and just \ 
return None on Linux.
gh-114328: The tty.setcbreak() and new tty.cfmakecbreak() no longer clears the \ 
terminal input ICRLF flag. This fixes a regression introduced in 3.12 that no \ 
longer matched how OSes define cbreak mode in their stty(1) manual pages.
gh-101438: Avoid reference cycle in ElementTree.iterparse. The iterator returned \ 
by ElementTree.iterparse may hold on to a file descriptor. The reference cycle \ 
prevented prompt clean-up of the file descriptor if the returned iterator was \ 
not exhausted.
gh-104522: OSError raised when run a subprocess now only has filename attribute \ 
set to cwd if the error was caused by a failed attempt to change the current \ 
directory.
gh-114149: Enum: correctly handle tuple subclasses in custom __new__.
gh-109534: Fix a reference leak in asyncio.selector_events.BaseSelectorEventLoop \ 
when SSL handshakes fail. Patch contributed by Jamie Phan.
gh-114077: Fix possible OverflowError in socket.socket.sendfile() when pass \ 
count larger than 2 GiB on 32-bit platform.
gh-114014: Fixed a bug in 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.
gh-113951: Fix the behavior of tag_unbind() methods of tkinter.Text and \ 
tkinter.Canvas classes with three arguments. Previously, widget.tag_unbind(tag, \ 
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.
gh-113877: Fix tkinter method winfo_pathname() on 64-bit Windows.
gh-113661: 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.
gh-113781: Silence unraisable AttributeError when warnings are emitted during \ 
Python finalization.
gh-112932: Restore the ability for 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.
gh-113594: Fix UnicodeEncodeError in email when re-fold lines that contain \ 
unknown-8bit encoded part followed by non-unknown-8bit encoded part.
gh-113538: In 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.
gh-85567: Fix resource warnings for unclosed files in pickle and pickletools \ 
command line interfaces.
gh-101225: Increase the backlog for multiprocessing.connection.Listener objects \ 
created by multiprocessing.manager and multiprocessing.resource_sharer to \ 
significantly reduce the risk of getting a connection refused error when \ 
creating a multiprocessing.connection.Connection to them.
gh-113543: Make sure that webbrowser.MacOSXOSAScript sends webbrowser.open audit \ 
event.
gh-113028: When a second reference to a string appears in the input to 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.
gh-113421: Fix multiprocessing logger for %(filename)s.
gh-111784: 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.
gh-113407: Fix import of unittest.mock when CPython is built without docstrings.
gh-113320: Fix regression in Python 3.12 where Protocol classes that were not \ 
marked as runtime-checkable would be unnecessarily introspected, potentially \ 
causing exceptions to be raised if the protocol had problematic members. Patch \ 
by Alex Waygood.
gh-113358: Fix rendering tracebacks for exceptions with a broken __getattr__.
gh-113214: Fix an AttributeError during asyncio SSL protocol aborts in \ 
SSL-over-SSL scenarios.
gh-113246: Update bundled pip to 23.3.2.
gh-113199: 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.
gh-113188: Fix shutil.copymode() and 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.
gh-61648: Detect line numbers of properties in doctests.
gh-112559: signal.signal() and signal.getsignal() no longer call repr on \ 
callable handlers. asyncio.run() and asyncio.Runner.run() no longer call repr on \ 
the task results. Patch by Yilei Yang.
gh-110190: Fix ctypes structs with array on PPC64LE platform by setting \ 
MAX_STRUCT_SIZE to 64 in stgdict. Patch by Diego Russo.
gh-79429: Ignore FileNotFoundError when remove a temporary directory in the \ 
multiprocessing finalizer.
gh-81194: Fix a crash in socket.if_indextoname() with specific value (UINT_MAX). \ 
Fix an integer overflow in socket.if_indextoname() on 64-bit non-Windows \ 
platforms.
gh-112343: Improve handling of pdb convenience variables to avoid replacing \ 
string contents.
gh-111615: Fix a regression caused by a fix to gh-93162 whereby you couldn’t \ 
configure a QueueHandler without specifying handlers.
gh-111049: Fix crash during garbage collection of the io.BytesIO buffer object.
gh-110345: Show the Tcl/Tk patchlevel (rather than version) in tkinter._test().
gh-109858: Protect zipfile from “quoted-overlap” zipbomb. It now raises \ 
BadZipFile when try to read an entry that overlaps with other entry or central \ 
directory.
gh-114440: On Windows, closing the connection writer when cleaning up a broken \ 
multiprocessing.Queue queue is now done for all queues, rather than only in \ 
concurrent.futures manager thread. This can prevent a deadlock when a \ 
multiprocessing worker process terminates without cleaning up. This completes \ 
the backport of patches by Victor Stinner and Serhiy Storchaka.
gh-38807: Fix race condition in trace. Instead of checking if a directory exists \ 
and creating it, directly call os.makedirs() with the kwarg exist_ok=True.
gh-75705: Set unixfrom envelope in mailbox.mbox and mailbox.MMDF.
gh-106233: Fix stacklevel in InvalidTZPathWarning during zoneinfo module import.
gh-105102: Allow ctypes.Union to be nested in ctypes.Structure when the system \ 
endianness is the opposite of the classes.
gh-104282: Fix null pointer dereference in lzma._decode_filter_properties() due \ 
to improper handling of BCJ filters with properties of zero length. Patch by \ 
Radislav Chugunov.
gh-102512: When os.fork() is called from a foreign thread (aka _DummyThread), \ 
the type of the thread in a child process is changed to _MainThread. Also \ 
changed its name and daemonic status, it can be now joined.
bpo-35928: io.TextIOWrapper now correctly handles the decoding buffer after \ 
read() and write().
bpo-26791: 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-36959: 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: 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.
Documentation
gh-110746: Improved markup for valid options/values for methods \ 
ttk.treeview.column and ttk.treeview.heading, and for Layouts.
gh-95649: Document that the asyncio module contains code taken from v0.16.0 of \ 
the uvloop project, as well as the required MIT licensing information.
Tests
gh-109980: Fix test_tarfile_vs_tar in test_shutil for macOS, where system tar \ 
can include more information in the archive than shutil.make_archive.
gh-105089: Fix \ 
test.test_zipfile.test_core.TestWithDirectory.test_create_directory_with_write \ 
test in AIX by doing a bitwise AND of 0xFFFF on mode , so that it will be in \ 
sync with zinfo.external_attr
bpo-40648: Test modes that file can get with chmod() on Windows.
Build
gh-112305: 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.
gh-112867: Fix the build for the case that WITH_PYMALLOC_RADIX_TREE=0 set.
bpo-11102: The os.major(), os.makedev(), and os.minor() functions are now \ 
available on HP-UX v3.
bpo-36351: Do not set ipv6type when cross-compiling.
Windows
gh-109991: Update Windows build to use OpenSSL 3.0.13.
gh-111239: Update Windows builds to use zlib v1.3.1.
gh-100107: The py.exe launcher will no longer attempt to run the Microsoft Store \ 
redirector when launching a script containing a /usr/bin/env shebang
gh-114096: Process privileges that are activated for creating directory \ 
junctions are now restored afterwards, avoiding behaviour changes in other parts \ 
of the program.
gh-111877: os.stat() calls were returning incorrect time values for files that \ 
could not be accessed directly.
gh-113009: 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.
gh-87868: Correctly sort and remove duplicate environment variables in \ 
_winapi.CreateProcess().
bpo-37308: Fix mojibake in mmap.mmap when using a non-ASCII tagname argument on \ 
Windows.
macOS
gh-115009: Update macOS installer to use SQLite 3.45.1.
gh-109991: Update macOS installer to use OpenSSL 3.0.13.
gh-110459: Running configure ... --with-openssl-rpath=X/Y/Z no longer fails to \ 
detect OpenSSL on macOS.
gh-74573: Document that 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)
gh-65701: The freeze tool doesn’t work with framework builds of Python. \ 
Document this and bail out early when running the tool with such a build.
gh-108269: 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.
gh-102362: Make sure the result of 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.
gh-110017: Disable a signal handling stress test on macOS due to a bug in macOS \ 
(FB13453490).
gh-110820: 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.
IDLE
gh-96905: In idlelib code, stop redefining built-ins ‘dict’ and ‘object’.
gh-72284: Improve the lists of features, editor key bindings, and shell key \ 
bingings in the IDLE doc.
gh-113903: Fix rare failure of test.test_idle, in test_configdialog.
gh-113729: Fix the “Help -> IDLE Doc” menu bug in 3.11.7 and 3.12.1.
gh-113269: Fix test_editor hang on macOS Catalina.
gh-112898: Fix processing unsaved files when quitting IDLE on macOS.
gh-103820: Revise IDLE bindings so that events from mouse button 4/5 on non-X11 \ 
windowing systems (i.e. Win32 and Aqua) are not mistaken for scrolling.
bpo-13586: Enter the selected text when opening the “Replace” dialog.
Tools/Demos
gh-109991: Update GitHub CI workflows to use OpenSSL 3.0.13 and multissltests to \ 
use 1.1.1w, 3.0.13, 3.1.5, and 3.2.1.
gh-115015: Fix a bug in Argument Clinic that generated incorrect code for \ 
methods with no parameters that use the METH_METHOD | METH_FASTCALL | \ 
METH_KEYWORDS calling convention. Only the positional parameter count was \ 
checked; any keyword argument passed would be silently accepted.
   2023-12-08 10:22:42 by Adam Ciarcinski | Files touched by this commit (10) | Package updated
Log message:
python312 py312-html-docs: updated to 3.12.1

Python 3.12.1 final

Core and Builtins

gh-112125: Fix None.__ne__(None) returning NotImplemented instead of False
gh-112625: 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.
gh-105967: Workaround a bug in Apple’s macOS platform zlib library where \ 
zlib.crc32() and binascii.crc32() could produce incorrect results on \ 
multi-gigabyte inputs. Including when using zipfile on zips containing large \ 
data.
gh-112356: Stopped erroneously deleting a LOAD_NULL bytecode instruction when \ 
optimized twice.
gh-111058: Change coro.cr_frame/gen.gi_frame to return None after the \ 
coroutine/generator has been closed. This fixes a bug where getcoroutinestate() \ 
and getgeneratorstate() return the wrong state for a closed coroutine/generator.
gh-112388: Fix an error that was causing the parser to try to overwrite \ 
tokenizer errors. Patch by pablo Galindo
gh-112387: Fix error positions for decoded strings with backwards tokenize \ 
errors. Patch by Pablo Galindo
gh-112367: Avoid undefined behaviour when using the perf trampolines by not \ 
freeing the code arenas until shutdown. Patch by Pablo Galindo
gh-112243: Don’t include comments in f-string debug expressions. Patch by \ 
Pablo Galindo
gh-112266: Change docstrings of __dict__ and __weakref__.
gh-111654: Fix runtime crash when some error happens in opcode \ 
LOAD_FROM_DICT_OR_DEREF.
gh-109181: Speed up Traceback object creation by lazily compute the line number. \ 
Patch by Pablo Galindo
gh-102388: Fix a bug where iso2022_jp_3 and iso2022_jp_2004 codecs read out of bounds
gh-111366: Fix an issue in the codeop that was causing SyntaxError exceptions \ 
raised in the presence of invalid syntax to not contain precise error messages. \ 
Patch by Pablo Galindo
gh-111380: Fix a bug that was causing SyntaxWarning to appear twice when parsing \ 
if invalid syntax is encountered later. Patch by Pablo galindo
gh-94438: Fix a regression that prevented jumping across is None and is not None \ 
when debugging. Patch by Savannah Ostrowski.
gh-110938: Fix error messages for indented blocks with functions and classes \ 
with generic type parameters. Patch by Pablo Galindo
gh-109894: Fixed crash due to improperly initialized static MemoryError in \ 
subinterpreter.
gh-110782: Fix crash when typing.TypeVar is constructed with a keyword argument. \ 
Patch by Jelle Zijlstra.
gh-110696: Fix incorrect error message for invalid argument unpacking. Patch by \ 
Pablo Galindo
gh-110543: Fix regression in Python 3.12 where types.CodeType.replace() would \ 
produce a broken code object if called on a module or class code object that \ 
contains a comprehension. Patch by Jelle Zijlstra.
gh-110514: Add PY_THROW to sys.setprofile() events
gh-110455: Guard assert(tstate->thread_id > 0) with #ifndef \ 
HAVE_PTHREAD_STUBS. This allows for for pydebug builds to work under WASI which \ 
(currently) lacks thread support.
gh-110259: Correctly identify the format spec in f-strings (with single or \ 
triple quotes) that have multiple lines in the expression part and include a \ 
formatting spec. Patch by Pablo Galindo
gh-110237: Fix missing error checks for calls to PyList_Append in _PyEval_MatchClass.
gh-109889: Fix the compiler’s redundant NOP detection algorithm to skip over \ 
NOPs with no line number when looking for the next instruction’s lineno.
gh-109853: sys.path[0] is now set correctly for subinterpreters.
gh-105716: Subinterpreters now correctly handle the case where they have threads \ 
running in the background. Before, such threads would interfere with cleaning up \ 
and destroying them, as well as prevent running another script.
gh-109793: The main thread no longer exits prematurely when a subinterpreter is \ 
cleaned up during runtime finalization. The bug was a problem particularly \ 
because, when triggered, the Python process would always return with a 0 \ 
exitcode, even if it failed.
gh-109596: Fix some tokens in the grammar that were incorrectly marked as soft \ 
keywords. Also fix some repeated rule names and ensure that repeated rules are \ 
not allowed. Patch by Pablo Galindo
gh-109351: Fix crash when compiling an invalid AST involving a named (walrus) \ 
expression.
gh-109216: Fix possible memory leak in BUILD_MAP.
gh-109207: Fix a SystemError in __repr__ of symtable entry object.
gh-109179: Fix bug where the C traceback display drops notes from SyntaxError.
gh-109052: Use the base opcode when comparing code objects to avoid interference \ 
from instrumentation
gh-88943: Improve syntax error for non-ASCII character that follows a numerical \ 
literal. It now points on the invalid non-ASCII character, not on the valid \ 
numerical literal.
gh-106931: Statically allocated string objects are now interned globally instead \ 
of per-interpreter. This fixes a situation where such a string would only be \ 
interned in a single interpreter. Normal string objects are unaffected.

Library

gh-79325: Fix an infinite recursion error in tempfile.TemporaryDirectory() \ 
cleanup on Windows.

gh-112645: Remove deprecation error on passing onerror to shutil.rmtree().

gh-112618: Fix a caching bug relating to typing.Annotated. Annotated[str, True] \ 
is no longer identical to Annotated[str, 1].

gh-112334: Fixed a performance regression in 3.12’s subprocess on Linux where \ 
it would no longer use the fast-path vfork() system call when it should have due \ 
to a logic bug, instead always falling back to the safe but slower fork().

Also fixed a related 3.12 security regression: If a value of extra_groups=[] was \ 
passed to 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 has been assigned CVE-2023-6507.

This was identified via code inspection in the process of fixing the first bug.

gh-110190: Fix ctypes structs with array on Arm platform by setting \ 
MAX_STRUCT_SIZE to 32 in stgdict. Patch by Diego Russo.

gh-112578: Fix a spurious RuntimeWarning when executing the zipfile module.

gh-112509: Fix edge cases that could cause a key to be present in both the \ 
__required_keys__ and __optional_keys__ attributes of a typing.TypedDict. Patch \ 
by Jelle Zijlstra.

gh-112414: Fix regression in Python 3.12 where calling repr() on a module that \ 
had been imported using a custom loader could fail with AttributeError. Patch by \ 
Alex Waygood.

gh-112358: Revert change to struct.Struct initialization that broke some cases \ 
of subclassing.

gh-94722: Fix bug where comparison between instances of DocTest fails if one of \ 
them has None as its lineno.

gh-112105: Make readline.set_completer_delims() work with libedit

gh-111942: Fix SystemError in the TextIOWrapper constructor with non-encodable \ 
“errors” argument in non-debug mode.

gh-109538: Issue warning message instead of having RuntimeError be displayed \ 
when event loop has already been closed at StreamWriter.__del__().

gh-111942: Fix crashes in io.TextIOWrapper.reconfigure() when pass invalid \ 
arguments, e.g. non-string encoding.

gh-111460: curses: restore wide character support (including curses.unget_wch() \ 
and get_wch()) on macOS, which was unavailable due to a regression in Python \ 
3.12.

gh-103791: contextlib.suppress now supports suppressing exceptions raised as \ 
part of a BaseExceptionGroup, in addition to the recent support for \ 
ExceptionGroup.

gh-111804: Remove posix.fallocate() under WASI as the underlying \ 
posix_fallocate() is not available in WASI preview2.

gh-111841: Fix truncating arguments on an embedded null character in os.putenv() \ 
and os.unsetenv() on Windows.

gh-111541: Fix doctest for SyntaxError not-builtin subclasses.

gh-110894: Call loop exception handler for exceptions in client_connected_cb of \ 
asyncio.start_server() so that applications can handle it. Patch by Kumar \ 
Aditya.

gh-111531: Fix reference leaks in bind_class() and bind_all() methods of tkinter \ 
widgets.

gh-111356: Added io.text_encoding(), io.DEFAULT_BUFFER_SIZE, and \ 
io.IncrementalNewlineDecoder to io.__all__.

gh-111342: Fixed typo in math.sumprod().

gh-68166: Remove mention of not supported “vsapi” element type in \ 
tkinter.ttk.Style.element_create(). Add tests for element_create() and other \ 
ttk.Style methods. Add examples for element_create() in the documentation.

gh-75666: Fix the behavior of 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.

gh-79033: Another attempt at fixing asyncio.Server.wait_closed(). It now blocks \ 
until both conditions are true: the server is closed, and there are no more \ 
active connections. (This means that in some cases where in 3.12.0 this function \ 
would incorrectly have returned immediately, it will now block; in particular, \ 
when there are no active connections but the server hasn’t been closed yet.)

gh-111295: Fix time not checking for errors when initializing.

gh-111253: Add error checking during _socket module init.

gh-111251: Fix _blake2 not checking for errors when initializing.

gh-111174: Fix crash in io.BytesIO.getbuffer() called repeatedly for empty BytesIO.

gh-111187: Postpone removal version for locale.getdefaultlocale() to Python 3.15.

gh-111159: Fix doctest output comparison for exceptions with notes.

gh-110910: Fix invalid state handling in asyncio.TaskGroup and asyncio.Timeout. \ 
They now raise proper RuntimeError if they are improperly used and are left in \ 
consistent state after this.

gh-111092: Make turtledemo run without default root enabled.

gh-110488: Fix a couple of issues in pathlib.PurePath.with_name(): a single dot \ 
was incorrectly considered a valid name, and in PureWindowsPath, a name with an \ 
NTFS alternate data stream, like a:b, was incorrectly considered invalid.

gh-110392: Fix tty.setraw() and tty.setcbreak(): previously they returned \ 
partially modified list of the original tty attributes. tty.cfmakeraw() and \ 
tty.cfmakecbreak() now make a copy of the list of special characters before \ 
modifying it.

gh-110590: Fix a bug in _sre.compile() where TypeError would be overwritten by \ 
OverflowError when the code argument was a list of non-ints.

gh-65052: Prevent pdb from crashing when trying to display undisplayable objects

gh-110519: Deprecation warning about non-integer number in gettext now alwais \ 
refers to the line in the user code where gettext function or method is used. \ 
Previously it could refer to a line in gettext code.

gh-110395: Ensure that select.kqueue() objects correctly appear as closed in \ 
forked children, to prevent operations on an invalid file descriptor.

gh-110378: contextmanager() and asynccontextmanager() context managers now close \ 
an invalid underlying generator object that yields more then one value.

gh-110365: Fix termios.tcsetattr() bug that was overwritting existing errors \ 
during parsing integers from term list.

gh-109653: Fix a Python 3.12 regression in the import time of random. Patch by \ 
Alex Waygood.

gh-110196: Add __reduce__ method to IPv6Address in order to keep scope_id

gh-110036: On Windows, multiprocessing Popen.terminate() now catchs \ 
PermissionError and get the process exit code. If the process is still running, \ 
raise again the PermissionError. Otherwise, the process terminated as expected: \ 
store its exit code. Patch by Victor Stinner.

gh-110038: Fixed an issue that caused KqueueSelector.select() to not return all \ 
the ready events in some cases when a file descriptor is registered for both \ 
read and write.

gh-109631: re functions such as re.findall(), re.split(), re.search() and \ 
re.sub() which perform short repeated matches can now be interrupted by user.

gh-109747: Improve errors for unsupported look-behind patterns. Now re.error is \ 
raised instead of OverflowError or RuntimeError for too large width of \ 
look-behind pattern.

gh-109818: Fix reprlib.recursive_repr() not copying __type_params__ from \ 
decorated function.

gh-109047: concurrent.futures: The executor manager thread now catches \ 
exceptions when adding an item to the call queue. During Python finalization, \ 
creating a new thread can now raise RuntimeError. Catch the exception and call \ 
terminate_broken() in this case. Patch by Victor Stinner.

gh-109782: Ensure the signature of os.path.isdir() is identical on all \ 
platforms. Patch by Amin Alaee.

gh-109590: shutil.which() will prefer files with an extension in PATHEXT if the \ 
given mode includes os.X_OK on win32. If no PATHEXT match is found, a file \ 
without an extension in PATHEXT can be returned. This change will have \ 
shutil.which() act more similarly to previous behavior in Python 3.11.

gh-109786: Fix possible reference leaks and crash when re-enter the __next__() \ 
method of itertools.pairwise.

gh-109593: Avoid deadlocking on a reentrant call to the multiprocessing resource \ 
tracker. Such a reentrant call, though unlikely, can happen if a GC pass invokes \ 
the finalizer for a multiprocessing object such as SemLock.

gh-109613: Fix os.stat() and os.DirEntry.stat(): check for exceptions. \ 
Previously, on Python built in debug mode, these functions could trigger a fatal \ 
Python error (and abort the process) when a function succeeded with an exception \ 
set. Patch by Victor Stinner.

gh-109375: The pdb alias command now prevents registering aliases without arguments.

gh-107219: Fix a race condition in concurrent.futures. When a process in the \ 
process pool was terminated abruptly (while the future was running or pending), \ 
close the connection write end. If the call queue is blocked on sending bytes to \ 
a worker process, closing the connection write end interrupts the send, so the \ 
queue can be closed. Patch by Victor Stinner.

gh-50644: Attempts to pickle or create a shallow or deep copy of codecs streams \ 
now raise a TypeError. Previously, copying failed with a RecursionError, while \ 
pickling produced wrong results that eventually caused unpickling to fail with a \ 
RecursionError.

gh-108987: Fix _thread.start_new_thread() race condition. If a thread is created \ 
during Python finalization, the newly spawned thread now exits immediately \ 
instead of trying to access freed memory and lead to a crash. Patch by Victor \ 
Stinner.

gh-108791: Improved error handling in pdb command line interface, making it \ 
produce more concise error messages.

gh-105829: Fix concurrent.futures.ProcessPoolExecutor deadlock

gh-106584: Fix exit code for unittest if all tests are skipped. Patch by Egor \ 
Eliseev.

gh-102956: Fix returning of empty byte strings after seek in zipfile module

gh-84867: unittest.TestLoader no longer loads test cases from exact \ 
unittest.TestCase and unittest.FunctionTestCase classes.

gh-91133: Fix a bug in tempfile.TemporaryDirectory cleanup, which now no longer \ 
dereferences symlinks when working around file system permission errors.

gh-73561: Omit the interface scope from an IPv6 address when used as Host header \ 
by http.client.

gh-86826: zipinfo now supports the full range of values in the TZ string \ 
determined by RFC 8536 and detects all invalid formats. Both Python and C \ 
implementations now raise exceptions of the same type on invalid data.

bpo-43153: 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-35332: The shutil.rmtree() function now ignores errors when calling \ 
os.close() when ignore_errors is True, and os.close() no longer retried after \ 
error.

bpo-41422: Fixed memory leaks of pickle.Pickler and pickle.Unpickler involving \ 
cyclic references via the internal memo mapping.

bpo-40262: The ssl.SSLSocket.recv_into() method no longer requires the buffer \ 
argument to implement __len__ and supports buffers with arbitrary item size.

Documentation

gh-111699: Relocate smtpd deprecation notice to its own section rather than \ 
under locale in What’s New in Python 3.12 document
gh-108826: dis module command-line interface is now mentioned in documentation.

Tests

gh-112769: The tests now correctly compare zlib version when \ 
zlib.ZLIB_RUNTIME_VERSION contains non-integer suffixes. For example zlib-ng \ 
defines the version as 1.3.0.zlib-ng.
gh-110367: Make regrtest --verbose3 option compatible with --huntrleaks -jN \ 
options. The ./python -m test -j1 -R 3:3 --verbose3 command now works as \ 
expected. Patch by Victor Stinner.
gh-111165: Remove no longer used functions run_unittest() and run_doctest() from \ 
the test.support module.
gh-110932: Fix regrtest if the SOURCE_DATE_EPOCH environment variable is \ 
defined: use the variable value as the random seed. Patch by Victor Stinner.
gh-110995: test_gdb: Fix detection of gdb built without Python scripting \ 
support. Patch by Victor Stinner.
gh-110918: Test case matching patterns specified by options --match, --ignore, \ 
--matchfile and --ignorefile are now tested in the order of specification, and \ 
the last match determines whether the test case be run or ignored.
gh-110647: Fix test_stress_modifying_handlers() of test_signal. Patch by Victor \ 
Stinner.
gh-103053: Fix test_tools.test_freeze on FreeBSD: run “make distclean” \ 
instead of “make clean” in the copied source directory to remove also the \ 
“python” program. Patch by Victor Stinner.
gh-110167: Fix a deadlock in test_socket when server fails with a timeout but \ 
the client is still running in its thread. Don’t hold a lock to call cleanup \ 
functions in doCleanups(). One of the cleanup function waits until the client \ 
completes, whereas the client could deadlock if it called addCleanup() in such \ 
situation. Patch by Victor Stinner.
gh-110388: Add tests for tty.
gh-81002: Add tests for termios.
gh-110267: Add tests for pickling and copying PyStructSequence objects. Patched \ 
by Xuehai Pan.
gh-110031: Skip test_threading tests using thread+fork if Python is built with \ 
Address Sanitizer (ASAN). Patch by Victor Stinner.
gh-110088: Fix test_asyncio timeouts: don’t measure the maximum duration, a \ 
test should not measure a CI performance. Only measure the minimum duration when \ 
a task has a timeout or delay. Add CLOCK_RES to test_asyncio.utils. Patch by \ 
Victor Stinner.
gh-109974: Fix race conditions in test_threading lock tests. Wait until a \ 
condition is met rather than using time.sleep() with a hardcoded number of \ 
seconds. Patch by Victor Stinner.
gh-110033: Fix test_interprocess_signal() of test_signal. Make sure that the \ 
subprocess.Popen object is deleted before the test raising an exception in a \ 
signal handler. Otherwise, Popen.__del__() can get the exception which is logged \ 
as Exception ignored in: ... and the test fails. Patch by Victor Stinner.
gh-109594: Fix test_timeout() of test_concurrent_futures.test_wait. Remove the \ 
future which may or may not complete depending if it takes longer than the \ 
timeout ot not. Keep the second future which does not complete before wait() \ 
timeout. Patch by Victor Stinner.
gh-109972: Split test_gdb.py file into a test_gdb package made of multiple \ 
tests, so tests can now be run in parallel. Patch by Victor Stinner.
gh-103053: Skip test_freeze_simple_script() of test_tools.test_freeze if Python \ 
is built with ./configure --enable-optimizations, which means with Profile \ 
Guided Optimization (PGO): it just makes the test too slow. The freeze tool is \ 
tested by many other CIs with other (faster) compiler flags. Patch by Victor \ 
Stinner.
gh-109580: Skip test_perf_profiler if Python is built with ASAN, MSAN or UBSAN \ 
sanitizer. Python does crash randomly in this test on such build. Patch by \ 
Victor Stinner.
gh-104736: Fix test_gdb on Python built with LLVM clang 16 on Linux ppc64le (ex: \ 
Fedora 38). Search patterns in gdb “bt” command output to detect when gdb \ 
fails to retrieve the traceback. For example, skip a test if Backtrace stopped: \ 
frame did not save the PC is found. Patch by Victor Stinner.
gh-108927: 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.

Build

gh-112088: Add Tools/build/regen-configure.sh script to regenerate the configure \ 
with an Ubuntu container image. The quay.io/tiran/cpython_autoconf:271 container \ 
image (tiran/cpython_autoconf) is no longer used. Patch by Victor Stinner.
gh-111046: For wasi-threads, memory is now exported to fix compatibility issues \ 
with some wasm runtimes.
gh-103053: “make check-clean-src” now also checks if the “python” \ 
program is found in the source directory: fail with an error if it does exist. \ 
Patch by Victor Stinner.
gh-109191: Fix compile error when building with recent versions of libedit.

Windows

gh-111856: Fixes fstat() on file systems that do not support file ID requests. \ 
This includes FAT32 and exFAT.
gh-111293: Fix os.DirEntry.inode dropping higher 64 bits of a file id on some \ 
filesystems on Windows.
gh-110913: WindowsConsoleIO now correctly chunks large buffers without splitting \ 
up UTF-8 sequences.
gh-110437: Allows overriding the source of VC redistributables so that releases \ 
can be guaranteed to never downgrade between updates.
gh-109286: Update Windows installer to use SQLite 3.43.1.

macOS

gh-109981: 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.
gh-110950: Update macOS installer to include an upstream Tcl/Tk fix for the \ 
Secure coding is not enabled for restorable state! warning encountered in \ 
Tkinter on macOS 14 Sonoma.
gh-111015: Ensure that IDLE.app and Python Launcher.app are installed with \ 
appropriate permissions on macOS builds.
gh-109286: Update macOS installer to use SQLite 3.43.1.
gh-71383: Update macOS installer to include an upstream Tcl/Tk fix for the \ 
ttk::ThemeChanged error encountered in Tkinter.
gh-92603: Update macOS installer to include a fix accepted by upstream Tcl/Tk \ 
for a crash encountered after the first tkinter.Tk() instance is destroyed.

IDLE

bpo-35668: Add docstrings to the IDLE debugger module. Fix two bugs: initialize \ 
Idb.botframe (should be in Bdb); in Idb.in_rpc_code, check whether prev_frame is \ 
None before trying to use it. Greatly expand test_debugger.

C API

gh-106560: Fix redundant declarations in the public C API. Declare PyBool_Type \ 
and PyLong_Type only once. Patch by Victor Stinner.
gh-112438: Fix support of format units “es”, “et”, “es#”, and \ 
“et#” in nested tuples in PyArg_ParseTuple()-like functions.
gh-109521: PyImport_GetImporter() now sets RuntimeError if it fails to get \ 
sys.path_hooks or sys.path_importer_cache or they are not list and dict \ 
correspondingly. Previously it could return NULL without setting error in \ 
obscure cases, crash or raise SystemError if these attributes have wrong type.
   2023-10-02 22:07:15 by Adam Ciarcinski | Files touched by this commit (26)
Log message:
python312 py312-html-docs: added version 3.12.0

Python 3.12

New syntax features:

PEP 695, type parameter syntax and the type statement

New grammar features:

PEP 701, f-strings in the grammar

Interpreter improvements:

PEP 684, a unique per-interpreter GIL
PEP 669, low impact monitoring
Improved ‘Did you mean …’ suggestions for NameError, ImportError, and \ 
SyntaxError exceptions

Python data model improvements:

PEP 688, using the buffer protocol from Python

Significant improvements in the standard library:

The pathlib.Path class now supports subclassing
The os module received several improvements for Windows support
A command-line interface has been added to the sqlite3 module
isinstance() checks against runtime-checkable protocols enjoy a speed up of \ 
between two and 20 times
The asyncio package has had a number of performance improvements, with some \ 
benchmarks showing a 75% speed up.
A command-line interface has been added to the uuid module
Due to the changes in PEP 701, producing tokens via the tokenize module is up to \ 
up to 64% faster.

Security improvements:

Replace the builtin hashlib implementations of SHA1, SHA3, SHA2-384, SHA2-512, \ 
and MD5 with formally verified code from the HACL* project. These builtin \ 
implementations remain as fallbacks that are only used when OpenSSL does not \ 
provide them.

C API improvements:

PEP 697, unstable C API tier
PEP 683, immortal objects

CPython implementation improvements:

PEP 709, comprehension inlining
CPython support for the Linux perf profiler
Implement stack overflow protection on supported platforms

New typing features:

PEP 692, using TypedDict to annotate **kwargs
PEP 698, typing.override() decorator

Important deprecations, removals or restrictions:

PEP 623: Remove wstr from Unicode objects in Python’s C API, reducing the size \ 
of every str object by at least 8 bytes.
PEP 632: Remove the distutils package. See the migration guide for advice \ 
replacing the APIs it provided. The third-party Setuptools package continues to \ 
provide distutils, if you still require it in Python 3.12 and beyond.
gh-95299: Do not pre-install setuptools in virtual environments created with \ 
venv. This means that distutils, setuptools, pkg_resources, and easy_install \ 
will no longer available by default; to access these run pip install setuptools \ 
in the activated virtual environment.
The asynchat, asyncore, and imp modules have been removed, along with several \ 
unittest.TestCase method aliases.