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.
|
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.
|
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.
|
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.
|