forked from pool/python313
- Update to 3.13.0a3
- Security
- gh-113659: Skip .pth files with names starting with a dot or
hidden file attribute.
- gh-112302: Created a Software Bill-of-Materials document and
tooling for tracking dependencies.
- Core and Builtins
- gh-107901: Compiler duplicates basic blocks that have an eval
breaker check, no line number, and multiple predecessors.
- gh-107901: A jump leaving an exception handler back to normal
code no longer checks the eval breaker.
- gh-113655: Set the C recursion limit to 4000 on Windows, and
10000 on Linux/OSX. This seems to be near the sweet spot to
maintain safety, but not compromise backwards compatibility.
- gh-113710: Add typed stack effects to the interpreter DSL, along
with various instruction annotations.
- gh-77046: On Windows, file descriptors wrapping Windows handles
are now created non inheritable by default (PEP 446). Patch by
Zackery Spytz and Victor Stinner.
- gh-113853: Guarantee that all executors make progress. This then
guarantees that tier 2 execution always makes progress.
- gh-113753: Fix an issue where the finalizer of PyAsyncGenASend
objects might not be called if they were allocated from a free
list.
- gh-107901: Compiler changed so that synthetic jumps which are
not at loop end no longer check the eval breaker.
- 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
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python313?expand=0&rev=3
This commit is contained in:
@@ -1,3 +1,607 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Feb 8 08:10:09 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
||||
|
||||
- Update to 3.13.0a3
|
||||
- Security
|
||||
- gh-113659: Skip .pth files with names starting with a dot or
|
||||
hidden file attribute.
|
||||
- gh-112302: Created a Software Bill-of-Materials document and
|
||||
tooling for tracking dependencies.
|
||||
- Core and Builtins
|
||||
- gh-107901: Compiler duplicates basic blocks that have an eval
|
||||
breaker check, no line number, and multiple predecessors.
|
||||
- gh-107901: A jump leaving an exception handler back to normal
|
||||
code no longer checks the eval breaker.
|
||||
- gh-113655: Set the C recursion limit to 4000 on Windows, and
|
||||
10000 on Linux/OSX. This seems to be near the sweet spot to
|
||||
maintain safety, but not compromise backwards compatibility.
|
||||
- gh-113710: Add typed stack effects to the interpreter DSL, along
|
||||
with various instruction annotations.
|
||||
- gh-77046: On Windows, file descriptors wrapping Windows handles
|
||||
are now created non inheritable by default (PEP 446). Patch by
|
||||
Zackery Spytz and Victor Stinner.
|
||||
- gh-113853: Guarantee that all executors make progress. This then
|
||||
guarantees that tier 2 execution always makes progress.
|
||||
- gh-113753: Fix an issue where the finalizer of PyAsyncGenASend
|
||||
objects might not be called if they were allocated from a free
|
||||
list.
|
||||
- gh-107901: Compiler changed so that synthetic jumps which are
|
||||
not at loop end no longer check the eval breaker.
|
||||
- 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-111488: Changed error message in case of no ‘in’ keyword
|
||||
after ‘for’ in list comprehensions
|
||||
- gh-113657: Fix an issue that caused important instruction
|
||||
pointer updates to be optimized out of tier two traces.
|
||||
- gh-113603: Fixed bug where a redundant NOP is not removed,
|
||||
causing an assertion to fail in the compiler in debug mode.
|
||||
- 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-113486: No longer issue spurious PY_UNWIND events for
|
||||
optimized calls to classes.
|
||||
- gh-113297: Fix segfault in the compiler on with statement with
|
||||
19 context managers.
|
||||
- gh-113212: Improve super error messages.
|
||||
- gh-111375: Only use NULL in the exception stack to indicate an
|
||||
exception was handled. Patch by Carey Metcalfe.
|
||||
- gh-112215: Increase the C recursion limit by a factor of 3 for
|
||||
non-debug builds, except for webassembly and s390 platforms
|
||||
which are unchanged. This mitigates some regressions in 3.12
|
||||
with deep recursion mixing builtin (C) and Python code.
|
||||
- gh-113054: Fixed bug where a redundant NOP is not removed,
|
||||
causing an assertion to fail in the compiler in debug mode.
|
||||
- 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-108866: Change the API and contract of _PyExecutorObject to
|
||||
return the next_instr pointer, instead of the frame, and to
|
||||
always execute at least one instruction.
|
||||
- gh-90350: Optimize builtin functions min() and max().
|
||||
- gh-112943: Correctly compute end column offsets for multiline
|
||||
tokens in the tokenize module. Patch by Pablo Galindo
|
||||
- gh-112125: Fix None.__ne__(None) returning NotImplemented
|
||||
instead of False
|
||||
- gh-74616: input() now raises a ValueError when output on the
|
||||
terminal if the prompt contains embedded null characters instead
|
||||
of silently truncating it.
|
||||
- gh-112716: Fix SystemError in the import statement and in
|
||||
__reduce__() methods of builtin types when __builtins__ is not a
|
||||
dict.
|
||||
- gh-112730: Use color to highlight error locations in tracebacks.
|
||||
Patch by Pablo Galindo
|
||||
- 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-112660: Do not clear unexpected errors during formatting
|
||||
error messages for ImportError and AttributeError for modules.
|
||||
- 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-95754: Provide a better error message when accessing invalid
|
||||
attributes on partially initialized modules. The origin of the
|
||||
module being accessed is now included in the message to help
|
||||
with the common issue of shadowing other modules.
|
||||
- gh-112217: Add check for the type of __cause__ returned from
|
||||
calling the type T in raise from T.
|
||||
- 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-99606: Make code generated for an empty f-string identical to
|
||||
the code of an empty normal string.
|
||||
- gh-112367: Avoid undefined behaviour when using the perf
|
||||
trampolines by not freeing the code arenas until shutdown. Patch
|
||||
by Pablo Galindo
|
||||
- gh-112320: The Tier 2 translator now tracks the confidence level
|
||||
for staying “on trace” (i.e. not exiting back to the Tier 1
|
||||
interpreter) for branch instructions based on the number of bits
|
||||
set in the branch “counter”. Trace translation ends when the
|
||||
confidence drops below 1/3rd.
|
||||
- gh-109598: PyComplex_RealAsDouble()/PyComplex_ImagAsDouble() now
|
||||
tries to convert an object to a complex instance using its
|
||||
__complex__() method before falling back to the __float__()
|
||||
method. Patch by Sergey B Kirpichev.
|
||||
- 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.
|
||||
- bpo-21861: Use the object’s actual class name in
|
||||
_io.FileIO.__repr__(), _io._WindowsConsoleIO() and
|
||||
_io.TextIOWrapper.__repr__(), to make these methods subclass
|
||||
friendly.
|
||||
- bpo-45369: Remove LibreSSL workarounds as per PEP 644.
|
||||
- bpo-34392: Added sys._is_interned(). Libr- ary
|
||||
- gh-114077: Fix possible OverflowError in
|
||||
socket.socket.sendfile() when pass count larger than 2 GiB on
|
||||
32-bit platform.
|
||||
- gh-111803: plistlib now supports loading more deeply nested
|
||||
lists in binary format.
|
||||
- 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-108364: sqlite3.Connection.iterdump() now ensures that
|
||||
foreign key support is disabled before dumping the database
|
||||
schema, if there is any foreign key violation. Patch by Erlend
|
||||
E. Aasland and Mariusz Felisiak.
|
||||
- gh-113971: The zipfile.ZipInfo previously protected
|
||||
._compresslevel attribute has been made public as
|
||||
.compress_level with the old _compresslevel name remaining
|
||||
available as a property to retain compatibility.
|
||||
- gh-113877: Fix tkinter method winfo_pathname() on 64-bit
|
||||
Windows.
|
||||
- gh-113868: Added mmap.MAP_NORESERVE, mmap.MAP_NOEXTEND,
|
||||
mmap.MAP_HASSEMAPHORE, mmap.MAP_NOCACHE, mmap.MAP_JIT,
|
||||
mmap.MAP_RESILIENT_CODESIGN, mmap.MAP_RESILIENT_MEDIA,
|
||||
mmap.MAP_32BIT, mmap.MAP_TRANSLATED_ALLOW_EXECUTE,
|
||||
mmap.MAP_UNIX03 and mmap.MAP_TPRO. All of them are mmap(2) flags
|
||||
on macOS.
|
||||
- gh-113848: asyncio.TaskGroup() and asyncio.timeout() context
|
||||
managers now handle CancelledError subclasses as well as exact
|
||||
CancelledError.
|
||||
- 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-96037: Insert TimeoutError in the context of the exception
|
||||
that was raised during exiting an expired asyncio.timeout()
|
||||
block.
|
||||
- gh-113781: Silence unraisable AttributeError when warnings are
|
||||
emitted during Python finalization.
|
||||
- gh-113238: Add Anchor to importlib.resources (in order for the
|
||||
code to comply with the documentation)
|
||||
- gh-111693: asyncio.Condition.wait() now re-raises the same
|
||||
CancelledError instance that may have caused it to be
|
||||
interrupted. Fixed race condition in asyncio.Semaphore.aquire()
|
||||
when interrupted with a CancelledError.
|
||||
- gh-113791: Add CLOCK_MONOTONIC_RAW_APPROX and
|
||||
CLOCK_UPTIME_RAW_APPROX to time on macOS. These are clocks
|
||||
available on macOS 10.12 or later.
|
||||
- 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-113568: Raise deprecation warnings from pathlib.PurePath and
|
||||
not its private base class PurePathBase.
|
||||
- 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-113626: Add support for the allow_code argument in the
|
||||
marshal module. Passing allow_code=False prevents serialization
|
||||
and de-serialization of code objects which is incompatible
|
||||
between Python versions.
|
||||
- gh-85567: Fix resource warnings for unclosed files in pickle and
|
||||
pickletools command line interfaces.
|
||||
- gh-113537: Support loads str in plistlib.loads().
|
||||
- gh-89850: Add default implementations of
|
||||
pickle.Pickler.persistent_id() and
|
||||
pickle.Unpickler.persistent_load() methods in the C
|
||||
implementation. Calling super().persistent_id() and
|
||||
super().persistent_load() in subclasses of the C implementation
|
||||
of pickle.Pickler and pickle.Unpickler classes no longer causes
|
||||
infinite recursion.
|
||||
- gh-113569: Indicate if there were no actual calls in unittest
|
||||
assert_has_calls() failure.
|
||||
- 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-113568: Raise audit events from pathlib.Path and not its
|
||||
private base class PathBase.
|
||||
- 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-53502: Add a new option aware_datetime in plistlib to loads
|
||||
or dumps aware datetime.
|
||||
- gh-113358: Fix rendering tracebacks with 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-87264: Fixed tarfile list() method to show file type.
|
||||
- gh-112182: asyncio.futures.Future.set_exception() now transforms
|
||||
StopIteration into RuntimeError instead of hanging or other
|
||||
misbehavior. Patch contributed by Jamie Phan.
|
||||
- gh-113225: Speed up pathlib.Path.glob() by using
|
||||
os.DirEntry.path where possible.
|
||||
- gh-113149: Improve error message when a JSON array or object
|
||||
contains a trailing comma. Patch by Carson Radtke.
|
||||
- gh-113117: The subprocess module can now use the
|
||||
os.posix_spawn() function with close_fds=True on platforms where
|
||||
posix_spawn_file_actions_addclosefrom_np is available. Patch by
|
||||
Jakub Kulik.
|
||||
- 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-113191: Add support of os.fchmod() and a file descriptor in
|
||||
os.chmod() on Windows.
|
||||
- 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-113119: os.posix_spawn() now accepts env=None, which makes
|
||||
the newly spawned process use the current process environment.
|
||||
Patch by Jakub Kulik.
|
||||
- gh-113202: Add a strict option to batched() in the itertools
|
||||
module.
|
||||
- gh-61648: Detect line numbers of properties in doctests.
|
||||
- gh-113175: Sync with importlib_metadata 7.0, including improved
|
||||
type annotations, fixed issue with symlinked packages in
|
||||
package_distributions, added EntryPoints.__repr__, introduced
|
||||
the diagnose script, added Distribution.origin property, and
|
||||
removed deprecated EntryPoint access by numeric index (tuple
|
||||
behavior).
|
||||
- gh-59616: Add support of os.lchmod() and the follow_symlinks
|
||||
argument in os.chmod() on Windows. Note that the default value
|
||||
of follow_symlinks in os.lchmod() is False on Windows.
|
||||
- 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-112962: dis module functions add cache information to the
|
||||
Instruction instance rather than creating fake Instruction
|
||||
instances to represent the cache entries.
|
||||
- gh-112989: Reduce overhead to connect sockets with asyncio
|
||||
SelectorEventLoop.
|
||||
- gh-112970: Use closefrom() on Linux where available (e.g.
|
||||
glibc-2.34), rather than only FreeBSD.
|
||||
- gh-110190: Fix ctypes structs with array on PPC64LE platform by
|
||||
setting MAX_STRUCT_SIZE to 64 in stgdict. Patch by Diego Russo.
|
||||
- gh-112540: The statistics.geometric_mean() function now returns
|
||||
zero for datasets containing a zero. Formerly, it would raise an
|
||||
exception.
|
||||
- gh-87286: Added LOG_FTP, LOG_NETINFO, LOG_REMOTEAUTH,
|
||||
LOG_INSTALL, LOG_RAS, and LOG_LAUNCHD tot the syslog module, all
|
||||
of them constants on used on macOS.
|
||||
- gh-112800: Fix asyncio SubprocessTransport.close() not to throw
|
||||
PermissionError when used with setuid executables.
|
||||
- gh-51944: Add the following constants to the termios module.
|
||||
These values are present in macOS system headers: ALTWERASE,
|
||||
B14400, B28800, B7200, B76800, CCAR_OFLOW, CCTS_OFLOW,
|
||||
CDSR_OFLOW, CDTR_IFLOW, CIGNORE, CRTS_IFLOW, EXTPROC, IUTF8,
|
||||
MDMBUF, NL2, NL3, NOKERNINFO, ONOEOT, OXTABS, VDSUSP, VSTATUS.
|
||||
- gh-79325: Fix an infinite recursion error in
|
||||
tempfile.TemporaryDirectory() cleanup on Windows.
|
||||
- gh-94692: shutil.rmtree() now only catches OSError exceptions.
|
||||
Previously a symlink attack resistant version of shutil.rmtree()
|
||||
could ignore or pass to the error handler arbitrary exception
|
||||
when invalid arguments were provided.
|
||||
- gh-112736: The use of del-safe symbols in subprocess was
|
||||
refactored to allow for use in cross-platform build
|
||||
environments.
|
||||
- gh-112727: Speed up pathlib.Path.absolute(). Patch by Barney
|
||||
Gale.
|
||||
- gh-74690: Speedup issubclass() checks against simple
|
||||
runtime-checkable protocols by around 6%. Patch by Alex Waygood.
|
||||
- gh-74690: Speedup isinstance() checks by roughly 20% for
|
||||
runtime-checkable protocols that only have one callable member.
|
||||
Speedup issubclass() checks for these protocols by roughly 10%.
|
||||
Patch by Alex Waygood.
|
||||
- gh-112645: Remove deprecation error on passing onerror to
|
||||
shutil.rmtree().
|
||||
- gh-112640: Add kwdefaults parameter to types.FunctionType to set
|
||||
default keyword argument values.
|
||||
- gh-112622: Ensure name parameter is passed to event loop in
|
||||
asyncio.create_task().
|
||||
- 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 could have due to a logic bug, instead
|
||||
falling back to the safe but slower fork().
|
||||
- Also fixed a second 3.12.0 potential security bug. If a value of
|
||||
extra_groups=[] was passed to subprocess.Popen or related APIs,
|
||||
the underlying setgroups(0, NULL) system call to clear the
|
||||
groups list would not be made in the child process prior to
|
||||
exec().
|
||||
- This was identified via code inspection in the process of fixing
|
||||
the first bug.
|
||||
- gh-110190: Fix ctypes structs with array on Arm platform by
|
||||
setting MAX_STRUCT_SIZE to 32 in stgdict. Patch by Diego Russo.
|
||||
- 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-112578: Fix a spurious RuntimeWarning when executing the
|
||||
zipfile module.
|
||||
- gh-112516: Update the bundled copy of pip to version 23.3.1.
|
||||
- gh-112510: Add readline.backend for the backend readline uses
|
||||
(editline or readline)
|
||||
- gh-112328: [Enum] Make EnumDict, EnumDict.member_names,
|
||||
EnumType._add_alias_ and EnumType._add_value_alias_ public.
|
||||
- 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-101336: Add keep_alive keyword parameter for
|
||||
AbstractEventLoop.create_server() and
|
||||
BaseEventLoop.create_server().
|
||||
- gh-63284: Added support for TLS-PSK (pre-shared key) mode to the
|
||||
ssl module.
|
||||
- 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-112405: Optimize pathlib.PurePath.relative_to(). Patch by
|
||||
Alex Waygood.
|
||||
- gh-94722: Fix bug where comparison between instances of DocTest
|
||||
fails if one of them has None as its lineno.
|
||||
- gh-112361: Speed up a small handful of pathlib methods by
|
||||
removing some temporary objects.
|
||||
- gh-112345: Improve error message when trying to call
|
||||
issubclass() against a typing.Protocol that has non-method
|
||||
members. Patch by Randolf Scholz.
|
||||
- gh-112137: Change dis output to display no-lineno as “–” instead
|
||||
of “None”.
|
||||
- gh-112332: Deprecate the exc_type field of
|
||||
traceback.TracebackException. Add exc_type_str to replace it.
|
||||
- gh-81620: Add extra tests for random.binomialvariate()
|
||||
- gh-112292: Fix a crash in readline when imported from a sub
|
||||
interpreter. Patch by Anthony Shaw
|
||||
- gh-77621: Slightly improve the import time of the pathlib module
|
||||
by deferring some imports. Patch by Barney Gale.
|
||||
- gh-112137: Change dis output to display logical labels for jump
|
||||
targets instead of offsets.
|
||||
- gh-112139: Add Signature.format() to format signatures to string
|
||||
with extra options. And use it in pydoc to render more readable
|
||||
signatures that have new lines between parameters.
|
||||
- gh-112105: Make readline.set_completer_delims() work with
|
||||
libedit
|
||||
- gh-106922: Display multiple lines with traceback when errors
|
||||
span multiple lines.
|
||||
- gh-111874: When creating a typing.NamedTuple class, ensure
|
||||
__set_name__() is called on all objects that define __set_name__
|
||||
and exist in the values of the NamedTuple class’s class
|
||||
dictionary. Patch by Alex Waygood.
|
||||
- gh-68166: Add support of the “vsapi” element type in
|
||||
tkinter.ttk.Style.element_create().
|
||||
- gh-110275: Named tuple’s methods _replace() and __replace__()
|
||||
now raise TypeError instead of ValueError for invalid keyword
|
||||
arguments.
|
||||
- gh-99367: Do not mangle sys.path[0] in pdb if safe_path is set
|
||||
- gh-111615: Fix a regression caused by a fix to gh-93162 whereby
|
||||
you couldn’t configure a QueueHandler without specifying
|
||||
handlers.
|
||||
- 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-67790: Implement basic formatting support (minimum width,
|
||||
alignment, fill) for fractions.Fraction.
|
||||
- gh-111049: Fix crash during garbage collection of the io.BytesIO
|
||||
buffer object.
|
||||
- gh-102980: Redirect the output of interact command of pdb to the
|
||||
same channel as the debugger. Add tests and improve docs.
|
||||
- gh-102988: email.utils.getaddresses() and
|
||||
email.utils.parseaddr() now return ('', '') 2-tuples in more
|
||||
situations where invalid email addresses are encountered instead
|
||||
of potentially inaccurate values. Add optional strict parameter
|
||||
to these two functions: use strict=False to get the old
|
||||
behavior, accept malformed inputs. getattr(email.utils,
|
||||
'supports_strict_parsing', False) can be use to check if the
|
||||
strict paramater is available. Patch by Thomas Dwyer and Victor
|
||||
Stinner to improve the CVE-2023-27043 fix.
|
||||
- gh-52161: cmd.Cmd.do_help() now cleans docstrings with
|
||||
inspect.cleandoc() before writing them. Patch by Filip
|
||||
Łapkiewicz.
|
||||
- gh-82300: Add track parameter to
|
||||
multiprocessing.shared_memory.SharedMemory that allows using
|
||||
shared memory blocks without having to register with the POSIX
|
||||
resource tracker that automatically releases them upon process
|
||||
exit.
|
||||
- gh-110109: Add private pathlib._PurePathBase class: a base class
|
||||
for pathlib.PurePath that omits certain magic methods. It may be
|
||||
made public (along with _PathBase) in future.
|
||||
- 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-109786: Fix possible reference leaks and crash when re-enter
|
||||
the __next__() method of itertools.pairwise.
|
||||
- gh-91539: Small (10 - 20%) and trivial performance improvement
|
||||
of urrlib.request.getproxies_environment(), typically useful
|
||||
when there are many environment variables to go over.
|
||||
- gh-103363: Add follow_symlinks keyword-only argument to
|
||||
pathlib.Path.owner() and group(), defaulting to True.
|
||||
- gh-102130: Support tab completion in cmd for editline.
|
||||
- gh-99437: runpy.run_path() now decodes path-like objects, making
|
||||
sure __file__ and sys.argv[0] of the module being run are always
|
||||
strings.
|
||||
- gh-104003: Add warnings.deprecated(), a decorator to mark
|
||||
deprecated functions to static type checkers and to warn on
|
||||
usage of deprecated classes and functions. See PEP 702. Patch by
|
||||
Jelle Zijlstra.
|
||||
- gh-103708: Make hardcoded python name, a configurable parameter
|
||||
so that different implementations of python can override it
|
||||
instead of making huge diffs in sysconfig.py
|
||||
- gh-66515: mailbox.MH now supports folders that do not contain a
|
||||
.mh_sequences file (e.g. Claws Mail IMAP-cache folders). Patch
|
||||
by Serhiy Storchaka.
|
||||
- gh-83162: Renamed re.error to PatternError for clarity, and kept
|
||||
re.error for backward compatibility. Patch by Matthias
|
||||
Bussonnier and Adam Chhina.
|
||||
- gh-91133: Fix a bug in tempfile.TemporaryDirectory cleanup,
|
||||
which now no longer dereferences symlinks when working around
|
||||
file system permission errors.
|
||||
- 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-32731: getpass.getuser() now raises OSError for all failures
|
||||
rather than ImportError on systems lacking the pwd module or
|
||||
KeyError if the password database is empty.
|
||||
- bpo-34321: mmap.mmap now has a trackfd parameter on Unix; if it
|
||||
is False, the file descriptor specified by fileno will not be
|
||||
duplicated.
|
||||
- bpo-35332: 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-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-41422: Fixed memory leaks of pickle.Pickler and
|
||||
pickle.Unpickler involving cyclic references via the internal
|
||||
memo mapping.
|
||||
- bpo-19821: The pydoc.ispackage() function has been deprecated.
|
||||
- bpo-40262: The ssl.SSLSocket.recv_into() method no longer
|
||||
requires the buffer argument to implement __len__ and supports
|
||||
buffers with arbitrary item size.
|
||||
- bpo-39912: warnings.filterwarnings() and warnings.simplefilter()
|
||||
now raise appropriate exceptions instead of AssertionError.
|
||||
Patch contributed by Rémi Lapeyre.
|
||||
- bpo-37260: Fixed a race condition in shutil.rmtree() in which
|
||||
directory entries removed by another process or thread while
|
||||
shutil.rmtree() is running can cause it to raise
|
||||
FileNotFoundError. Patch by Jeffrey Kintscher.
|
||||
- bpo-36959: 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.
|
||||
- bpo-29779: Add a new PYTHON_HISTORY environment variable to set
|
||||
the location of a .python_history file.
|
||||
- bpo-21360: mailbox.Maildir now ignores files with a leading dot.
|
||||
- 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-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-111798: Disable test_super_deep() from test_call under
|
||||
pydebug builds on WASI; the stack depth is too small to make the
|
||||
test useful.
|
||||
- gh-111801: Lower the recursion limit in test_isinstance for
|
||||
test_infinitely_many_bases(). This prevents a stack overflow on
|
||||
a pydebug build of WASI.
|
||||
- gh-111802: Specify a low recursion depth for test_bad_getattr()
|
||||
in test.pickletester to avoid exhausting the stack under a
|
||||
pydebug build for WASI.
|
||||
- gh-44626: Fix os.path.isabs() incorrectly returning True when
|
||||
given a path that starts with exactly one (back)slash on
|
||||
Windows.
|
||||
- Fix pathlib.PureWindowsPath.is_absolute() incorrectly returning
|
||||
False for some paths beginning with two (back)slashes.
|
||||
- gh-113633: Use module state for the _testcapi extension module.
|
||||
- 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-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-112334: Adds a regression test to verify that vfork() is used
|
||||
when expected by subprocess on vfork enabled POSIX systems
|
||||
(Linux).
|
||||
- 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.
|
||||
- bpo-40648: Test modes that file can get with chmod() on Windows.
|
||||
- Build
|
||||
- gh-114013: Fix Tools/wasm/wasi.py to not include the path to
|
||||
python.wasm as part of HOSTRUNNER. The environment variable is
|
||||
meant to specify how to run the WASI host only, having
|
||||
python.wasm and relevant flags appended to the HOSTRUNNER. This
|
||||
fixes make test work.
|
||||
- gh-113258: Changed the Windows build to write out generated
|
||||
frozen modules into the build tree instead of the source tree.
|
||||
- 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-112536: Add support for thread sanitizer (TSAN)
|
||||
- gh-112867: Fix the build for the case that
|
||||
WITH_PYMALLOC_RADIX_TREE=0 set.
|
||||
- gh-103065: Introduce Tools/wasm/wasi.py to simplify doing a WASI
|
||||
build.
|
||||
- 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.
|
||||
- IDLE
|
||||
- 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.
|
||||
- bpo-13586: Enter the selected text when opening the “Replace”
|
||||
dialog.
|
||||
- C API
|
||||
- gh-106560: Fix redundant declarations in the public C API.
|
||||
Declare PyBool_Type, PyLong_Type and PySys_Audit() 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-111545: Add Py_HashPointer() function to hash a pointer.
|
||||
Patch by Victor Stinner.
|
||||
- gh-65210: Change the declaration of the keywords parameter of
|
||||
PyArg_ParseTupleAndKeywords() and
|
||||
PyArg_VaParseTupleAndKeywords() for better compatibility with
|
||||
C++.
|
||||
|
||||
- Refresh all patches
|
||||
- F00251-change-user-install-location.patch
|
||||
- bpo-31046_ensurepip_honours_prefix.patch
|
||||
- fix_configure_rst.patch
|
||||
- no-skipif-doctests.patch
|
||||
- python-3.3.0b1-fix_date_time_compiler.patch
|
||||
- python-3.3.0b1-localpath.patch
|
||||
- python-3.3.0b1-test-posix_fadvise.patch
|
||||
- skip-test_pyobject_freed_is_freed.patch
|
||||
- subprocess-raise-timeout.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 25 16:10:53 UTC 2023 - Matej Cepl <mcepl@cepl.eu>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user