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:
@@ -29,11 +29,11 @@ Co-authored-by: Lumír Balhar <frenzy.madness@gmail.com>
|
|||||||
Lib/test/test_sysconfig.py | 17 +++++++++++--
|
Lib/test/test_sysconfig.py | 17 +++++++++++--
|
||||||
3 files changed, 71 insertions(+), 4 deletions(-)
|
3 files changed, 71 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
Index: Python-3.13.0a1/Lib/site.py
|
Index: Python-3.13.0a3/Lib/site.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.13.0a1.orig/Lib/site.py
|
--- Python-3.13.0a3.orig/Lib/site.py
|
||||||
+++ Python-3.13.0a1/Lib/site.py
|
+++ Python-3.13.0a3/Lib/site.py
|
||||||
@@ -377,8 +377,15 @@ def getsitepackages(prefixes=None):
|
@@ -395,8 +395,15 @@ def getsitepackages(prefixes=None):
|
||||||
return sitepackages
|
return sitepackages
|
||||||
|
|
||||||
def addsitepackages(known_paths, prefixes=None):
|
def addsitepackages(known_paths, prefixes=None):
|
||||||
@@ -50,11 +50,11 @@ Index: Python-3.13.0a1/Lib/site.py
|
|||||||
for sitedir in getsitepackages(prefixes):
|
for sitedir in getsitepackages(prefixes):
|
||||||
if os.path.isdir(sitedir):
|
if os.path.isdir(sitedir):
|
||||||
addsitedir(sitedir, known_paths)
|
addsitedir(sitedir, known_paths)
|
||||||
Index: Python-3.13.0a1/Lib/test/test_sysconfig.py
|
Index: Python-3.13.0a3/Lib/test/test_sysconfig.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.13.0a1.orig/Lib/test/test_sysconfig.py
|
--- Python-3.13.0a3.orig/Lib/test/test_sysconfig.py
|
||||||
+++ Python-3.13.0a1/Lib/test/test_sysconfig.py
|
+++ Python-3.13.0a3/Lib/test/test_sysconfig.py
|
||||||
@@ -113,8 +113,19 @@ class TestSysConfig(unittest.TestCase):
|
@@ -115,8 +115,19 @@ class TestSysConfig(unittest.TestCase):
|
||||||
for scheme in _INSTALL_SCHEMES:
|
for scheme in _INSTALL_SCHEMES:
|
||||||
for name in _INSTALL_SCHEMES[scheme]:
|
for name in _INSTALL_SCHEMES[scheme]:
|
||||||
expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars)
|
expected = _INSTALL_SCHEMES[scheme][name].format(**config_vars)
|
||||||
@@ -75,7 +75,7 @@ Index: Python-3.13.0a1/Lib/test/test_sysconfig.py
|
|||||||
os.path.normpath(expected),
|
os.path.normpath(expected),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -338,7 +349,7 @@ class TestSysConfig(unittest.TestCase):
|
@@ -340,7 +351,7 @@ class TestSysConfig(unittest.TestCase):
|
||||||
self.assertTrue(os.path.isfile(config_h), config_h)
|
self.assertTrue(os.path.isfile(config_h), config_h)
|
||||||
|
|
||||||
def test_get_scheme_names(self):
|
def test_get_scheme_names(self):
|
||||||
@@ -84,7 +84,7 @@ Index: Python-3.13.0a1/Lib/test/test_sysconfig.py
|
|||||||
if HAS_USER_BASE:
|
if HAS_USER_BASE:
|
||||||
wanted.extend(['nt_user', 'osx_framework_user', 'posix_user'])
|
wanted.extend(['nt_user', 'osx_framework_user', 'posix_user'])
|
||||||
self.assertEqual(get_scheme_names(), tuple(sorted(wanted)))
|
self.assertEqual(get_scheme_names(), tuple(sorted(wanted)))
|
||||||
@@ -350,6 +361,8 @@ class TestSysConfig(unittest.TestCase):
|
@@ -352,6 +363,8 @@ class TestSysConfig(unittest.TestCase):
|
||||||
cmd = "-c", "import sysconfig; print(sysconfig.get_platform())"
|
cmd = "-c", "import sysconfig; print(sysconfig.get_platform())"
|
||||||
self.assertEqual(py.call_real(*cmd), py.call_link(*cmd))
|
self.assertEqual(py.call_real(*cmd), py.call_link(*cmd))
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:b6d46b44190c4c02421eb69a042d16b0c55481bdda818c6c416dc244113a9c2d
|
|
||||||
size 20244640
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
-----BEGIN PGP SIGNATURE-----
|
|
||||||
|
|
||||||
iQKTBAABCgB9FiEEcWlgX2LHUTVtBUomqCHmgOX6YwUFAmVd5DFfFIAAAAAALgAo
|
|
||||||
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDcx
|
|
||||||
Njk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUACgkQqCHmgOX6
|
|
||||||
YwXX6Q/+LJMSSTRUCTPY4ZBsMqZRJCZDbo7vCVedHwOPKT5PiID9tKQ/wrpPX3at
|
|
||||||
mBSQ4RD35WwuBidDMAz4WT5UcK/bWQbv+ZKRIPPW8P4YpgTae+7lpOgD1R48yUdB
|
|
||||||
XNxZ1BO1zl127ZajpO0MkGBcgQv0Yz+juVNfPxwLCRVJPRg5sl03BfnmN+GBC+XC
|
|
||||||
cdEYHmcOYZELwZZfQZQrUkh+sybFfM0hAKvaFIXnzA7VxHDR0qTh/1xf6ekQmXZq
|
|
||||||
2qpAxy0C5Eey2X1VZevl1Gk76Lv8cE5NL8wrtMMDTJNAT9S5dZR4rdcCaPTfYQUN
|
|
||||||
WI3FvKGeWMFuVffxXXv+YTHl1KitePPUhpsawEjBgF+5n6f5PWgDBL2tF0aKd+Mn
|
|
||||||
dE9EdCFoe0iPeuPTJqQ3zpIVP8LmFnKuZePCVIyLigaWclbLYFxttp9N+wnjTvAt
|
|
||||||
1kk4olNMJwFr6YP9o0pyrE/NVPOmGhG5P30TmDToMIiolDwYaeFiKdC/HXOFD0zZ
|
|
||||||
25HowszQR7mePVr7bBgd+TZRcfc/nfkfVti0JxqPsvOX/e6PmhLS+YgqgEH2fYtl
|
|
||||||
JpNVhc2AmMfCSK2/XxiT3VAJhBr3d9NneUJUV9FLkHZL2miY5MfGUUHFRJhDxj/k
|
|
||||||
DyM7AT9EKNNnlV/sZWY4SO13Jo0QsyzNbRltWkou5CZVNBUkclI=
|
|
||||||
=R8U5
|
|
||||||
-----END PGP SIGNATURE-----
|
|
||||||
3
Python-3.13.0a3.tar.xz
Normal file
3
Python-3.13.0a3.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:20784c8304eb1c69c80f966ebdf0775be2e37e23df3b62461eec12a85dcf7ead
|
||||||
|
size 20351452
|
||||||
18
Python-3.13.0a3.tar.xz.asc
Normal file
18
Python-3.13.0a3.tar.xz.asc
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
|
||||||
|
iQKTBAABCgB9FiEEcWlgX2LHUTVtBUomqCHmgOX6YwUFAmWnxORfFIAAAAAALgAo
|
||||||
|
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDcx
|
||||||
|
Njk2MDVGNjJDNzUxMzU2RDA1NEEyNkE4MjFFNjgwRTVGQTYzMDUACgkQqCHmgOX6
|
||||||
|
YwVLIw//SF9sDGaLIosuQval4pD4zm5cvXwOfWbLepaw/pfY4m9VUyQX9MsnaQQ9
|
||||||
|
4IGTjNsHZvRsThkPNUt9FuxIHeJsetK+pE0yc87/d/xTeokd1f52KU7K5EKgnW0D
|
||||||
|
o/omL0dqZE6yq3QWWccVe5kPNc9pIzZIYpG5I3OcfbxzgHVDuNI7QJGAr4z4tBu7
|
||||||
|
ic5Fdylr/f9S/LNfD7/4tZNSmaKojFc3tbu9wp6AaYQgXPMMCq+s/WA2dZiH5Ftl
|
||||||
|
xaX4hyxwClo1LqQODf3jiG8w02hmjTFT2de+xQIS81Ez+wBeX3hh0htiyZzGebsn
|
||||||
|
qUMC3rWRuX1KZB3C2Brk9GHCjic+lDLdU1EWqF0ZzRBApnWz2g1Jp7MDuX718aPN
|
||||||
|
zNXuIDigSIp2387BenvZyp+ASvgWqFesy3n2cJut1/f2C874qGjECSgnyI0r/ViV
|
||||||
|
q1saOgAeOV6hEWlWtNFeh0IoJ8yEbHe+aSTTCIZu/2zdaP3ij160rOEcQDDV+lfL
|
||||||
|
rzZtkyVCdeONpf2YQfjYqiyWhIuqPYdEufApjScBl8jSLyNBPrljJJRQoOPRTJ0l
|
||||||
|
CR6+kRWXZo5M0Qb+4kgRpgOpOqjq04rNUgulAitI9AoATcZYfmu5rJatytiU3emy
|
||||||
|
Qrc/3cSDcbzil/rYGweYLjxoEOG1VSFqMf0wAAzErZi3uLEe5J4=
|
||||||
|
=kGSc
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
@@ -13,8 +13,10 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
|
|||||||
5 files changed, 34 insertions(+), 9 deletions(-)
|
5 files changed, 34 insertions(+), 9 deletions(-)
|
||||||
create mode 100644 Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
|
create mode 100644 Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
|
||||||
|
|
||||||
--- a/Doc/library/ensurepip.rst
|
Index: Python-3.13.0a3/Doc/library/ensurepip.rst
|
||||||
+++ b/Doc/library/ensurepip.rst
|
===================================================================
|
||||||
|
--- Python-3.13.0a3.orig/Doc/library/ensurepip.rst
|
||||||
|
+++ Python-3.13.0a3/Doc/library/ensurepip.rst
|
||||||
@@ -59,8 +59,9 @@ is at least as recent as the one availab
|
@@ -59,8 +59,9 @@ is at least as recent as the one availab
|
||||||
By default, ``pip`` is installed into the current virtual environment
|
By default, ``pip`` is installed into the current virtual environment
|
||||||
(if one is active) or into the system site packages (if there is no
|
(if one is active) or into the system site packages (if there is no
|
||||||
@@ -53,8 +55,10 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
|
|||||||
.. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
|
.. audit-event:: ensurepip.bootstrap root ensurepip.bootstrap
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
--- a/Lib/ensurepip/__init__.py
|
Index: Python-3.13.0a3/Lib/ensurepip/__init__.py
|
||||||
+++ b/Lib/ensurepip/__init__.py
|
===================================================================
|
||||||
|
--- Python-3.13.0a3.orig/Lib/ensurepip/__init__.py
|
||||||
|
+++ Python-3.13.0a3/Lib/ensurepip/__init__.py
|
||||||
@@ -120,27 +120,27 @@ def _disable_pip_configuration_settings(
|
@@ -120,27 +120,27 @@ def _disable_pip_configuration_settings(
|
||||||
os.environ['PIP_CONFIG_FILE'] = os.devnull
|
os.environ['PIP_CONFIG_FILE'] = os.devnull
|
||||||
|
|
||||||
@@ -117,8 +121,10 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
|
|||||||
upgrade=args.upgrade,
|
upgrade=args.upgrade,
|
||||||
user=args.user,
|
user=args.user,
|
||||||
verbosity=args.verbosity,
|
verbosity=args.verbosity,
|
||||||
--- a/Lib/test/test_ensurepip.py
|
Index: Python-3.13.0a3/Lib/test/test_ensurepip.py
|
||||||
+++ b/Lib/test/test_ensurepip.py
|
===================================================================
|
||||||
|
--- Python-3.13.0a3.orig/Lib/test/test_ensurepip.py
|
||||||
|
+++ Python-3.13.0a3/Lib/test/test_ensurepip.py
|
||||||
@@ -105,6 +105,17 @@ class TestBootstrap(EnsurepipMixin, unit
|
@@ -105,6 +105,17 @@ class TestBootstrap(EnsurepipMixin, unit
|
||||||
unittest.mock.ANY,
|
unittest.mock.ANY,
|
||||||
)
|
)
|
||||||
@@ -137,9 +143,11 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
|
|||||||
def test_bootstrapping_with_user(self):
|
def test_bootstrapping_with_user(self):
|
||||||
ensurepip.bootstrap(user=True)
|
ensurepip.bootstrap(user=True)
|
||||||
|
|
||||||
--- a/Makefile.pre.in
|
Index: Python-3.13.0a3/Makefile.pre.in
|
||||||
+++ b/Makefile.pre.in
|
===================================================================
|
||||||
@@ -1976,7 +1976,7 @@ install: @FRAMEWORKINSTALLFIRST@ commoni
|
--- Python-3.13.0a3.orig/Makefile.pre.in
|
||||||
|
+++ Python-3.13.0a3/Makefile.pre.in
|
||||||
|
@@ -1991,7 +1991,7 @@ install: @FRAMEWORKINSTALLFIRST@ commoni
|
||||||
install|*) ensurepip="" ;; \
|
install|*) ensurepip="" ;; \
|
||||||
esac; \
|
esac; \
|
||||||
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
|
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
|
||||||
@@ -148,7 +156,7 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
.PHONY: altinstall
|
.PHONY: altinstall
|
||||||
@@ -1987,7 +1987,7 @@ altinstall: commoninstall
|
@@ -2002,7 +2002,7 @@ altinstall: commoninstall
|
||||||
install|*) ensurepip="--altinstall" ;; \
|
install|*) ensurepip="--altinstall" ;; \
|
||||||
esac; \
|
esac; \
|
||||||
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
|
$(RUNSHARED) $(PYTHON_FOR_BUILD) -m ensurepip \
|
||||||
@@ -157,7 +165,9 @@ Co-Authored-By: Xavier de Gaye <xdegaye@gmail.com>
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
.PHONY: commoninstall
|
.PHONY: commoninstall
|
||||||
|
Index: Python-3.13.0a3/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
|
||||||
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
|
+++ Python-3.13.0a3/Misc/NEWS.d/next/Build/2019-12-16-17-50-42.bpo-31046.XA-Qfr.rst
|
||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+A directory prefix can now be specified when using :mod:`ensurepip`.
|
+A directory prefix can now be specified when using :mod:`ensurepip`.
|
||||||
|
|||||||
@@ -2,9 +2,11 @@
|
|||||||
Misc/NEWS | 2 +-
|
Misc/NEWS | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
--- a/Misc/NEWS
|
Index: Python-3.13.0a3/Misc/NEWS
|
||||||
+++ b/Misc/NEWS
|
===================================================================
|
||||||
@@ -13972,7 +13972,7 @@ C API
|
--- Python-3.13.0a3.orig/Misc/NEWS
|
||||||
|
+++ Python-3.13.0a3/Misc/NEWS
|
||||||
|
@@ -14868,7 +14868,7 @@ C API
|
||||||
- bpo-40939: Removed documentation for the removed ``PyParser_*`` C API.
|
- bpo-40939: Removed documentation for the removed ``PyParser_*`` C API.
|
||||||
|
|
||||||
- bpo-43795: The list in :ref:`limited-api-list` now shows the public name
|
- bpo-43795: The list in :ref:`limited-api-list` now shows the public name
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ unchanged:
|
|||||||
Doc/library/turtle.rst | 81 -------------------------------------------------
|
Doc/library/turtle.rst | 81 -------------------------------------------------
|
||||||
1 file changed, 81 deletions(-)
|
1 file changed, 81 deletions(-)
|
||||||
|
|
||||||
Index: Python-3.13.0a1/Doc/library/turtle.rst
|
Index: Python-3.13.0a3/Doc/library/turtle.rst
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.13.0a1.orig/Doc/library/turtle.rst
|
--- Python-3.13.0a3.orig/Doc/library/turtle.rst
|
||||||
+++ Python-3.13.0a1/Doc/library/turtle.rst
|
+++ Python-3.13.0a3/Doc/library/turtle.rst
|
||||||
@@ -449,7 +449,6 @@ Turtle motion
|
@@ -449,7 +449,6 @@ Turtle motion
|
||||||
turtle is headed.
|
turtle is headed.
|
||||||
|
|
||||||
|
|||||||
@@ -2,9 +2,11 @@
|
|||||||
Makefile.pre.in | 7 +++++++
|
Makefile.pre.in | 7 +++++++
|
||||||
1 file changed, 7 insertions(+)
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
--- a/Makefile.pre.in
|
Index: Python-3.13.0a3/Makefile.pre.in
|
||||||
+++ b/Makefile.pre.in
|
===================================================================
|
||||||
@@ -1375,11 +1375,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
|
--- Python-3.13.0a3.orig/Makefile.pre.in
|
||||||
|
+++ Python-3.13.0a3/Makefile.pre.in
|
||||||
|
@@ -1380,11 +1380,18 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
|
||||||
$(DTRACE_OBJS) \
|
$(DTRACE_OBJS) \
|
||||||
$(srcdir)/Modules/getbuildinfo.c
|
$(srcdir)/Modules/getbuildinfo.c
|
||||||
$(CC) -c $(PY_CORE_CFLAGS) \
|
$(CC) -c $(PY_CORE_CFLAGS) \
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
Index: Python-3.13.0a1/Lib/site.py
|
Index: Python-3.13.0a3/Lib/site.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.13.0a1.orig/Lib/site.py
|
--- Python-3.13.0a3.orig/Lib/site.py
|
||||||
+++ Python-3.13.0a1/Lib/site.py
|
+++ Python-3.13.0a3/Lib/site.py
|
||||||
@@ -76,7 +76,7 @@ import _sitebuiltins
|
@@ -77,7 +77,7 @@ import io
|
||||||
import io
|
import stat
|
||||||
|
|
||||||
# Prefixes for site-packages; add additional prefixes like /usr/local here
|
# Prefixes for site-packages; add additional prefixes like /usr/local here
|
||||||
-PREFIXES = [sys.prefix, sys.exec_prefix]
|
-PREFIXES = [sys.prefix, sys.exec_prefix]
|
||||||
|
|||||||
@@ -2,8 +2,10 @@
|
|||||||
Lib/test/test_posix.py | 2 +-
|
Lib/test/test_posix.py | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
--- a/Lib/test/test_posix.py
|
Index: Python-3.13.0a3/Lib/test/test_posix.py
|
||||||
+++ b/Lib/test/test_posix.py
|
===================================================================
|
||||||
|
--- Python-3.13.0a3.orig/Lib/test/test_posix.py
|
||||||
|
+++ Python-3.13.0a3/Lib/test/test_posix.py
|
||||||
@@ -433,7 +433,7 @@ class PosixTester(unittest.TestCase):
|
@@ -433,7 +433,7 @@ class PosixTester(unittest.TestCase):
|
||||||
def test_posix_fadvise(self):
|
def test_posix_fadvise(self):
|
||||||
fd = os.open(os_helper.TESTFN, os.O_RDONLY)
|
fd = os.open(os_helper.TESTFN, os.O_RDONLY)
|
||||||
|
|||||||
@@ -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>
|
Sat Nov 25 16:10:53 UTC 2023 - Matej Cepl <mcepl@cepl.eu>
|
||||||
|
|
||||||
|
|||||||
@@ -105,7 +105,7 @@
|
|||||||
%define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so
|
%define dynlib() %{sitedir}/lib-dynload/%{1}.cpython-%{abi_tag}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}.so
|
||||||
%bcond_without profileopt
|
%bcond_without profileopt
|
||||||
Name: %{python_pkg_name}%{psuffix}
|
Name: %{python_pkg_name}%{psuffix}
|
||||||
Version: 3.13.0a2
|
Version: 3.13.0a3
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Python 3 Interpreter
|
Summary: Python 3 Interpreter
|
||||||
License: Python-2.0
|
License: Python-2.0
|
||||||
@@ -415,19 +415,19 @@ other applications.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n %{tarname}
|
%setup -q -n %{tarname}
|
||||||
%patch02 -p1
|
%patch -P 02 -p1
|
||||||
%patch07 -p1
|
%patch -P 07 -p1
|
||||||
%patch08 -p1
|
%patch -P 08 -p1
|
||||||
%patch09 -p1
|
%patch -P 09 -p1
|
||||||
%patch15 -p1
|
%patch -P 15 -p1
|
||||||
%patch29 -p1
|
%patch -P 29 -p1
|
||||||
# %%if 0%%{?suse_version} <= 1500
|
# %%if 0%%{?suse_version} <= 1500
|
||||||
%patch33 -p1
|
%patch -P 33 -p1
|
||||||
# %%endif
|
# %%endif
|
||||||
# %%if 0%%{?sle_version} && 0%%{?sle_version} <= 150300
|
# %%if 0%%{?sle_version} && 0%%{?sle_version} <= 150300
|
||||||
%patch34 -p1
|
%patch -P 34 -p1
|
||||||
# %%endif
|
# %%endif
|
||||||
%patch35 -p1
|
%patch -P 35 -p1
|
||||||
|
|
||||||
# drop Autoconf version requirement
|
# drop Autoconf version requirement
|
||||||
sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac
|
sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
Lib/test/test_capi/test_mem.py | 1 +
|
Lib/test/test_capi/test_mem.py | 1 +
|
||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
Index: Python-3.13.0a1/Lib/test/test_capi/test_mem.py
|
Index: Python-3.13.0a3/Lib/test/test_capi/test_mem.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.13.0a1.orig/Lib/test/test_capi/test_mem.py
|
--- Python-3.13.0a3.orig/Lib/test/test_capi/test_mem.py
|
||||||
+++ Python-3.13.0a1/Lib/test/test_capi/test_mem.py
|
+++ Python-3.13.0a3/Lib/test/test_capi/test_mem.py
|
||||||
@@ -109,6 +109,7 @@ class PyMemDebugTests(unittest.TestCase)
|
@@ -109,6 +109,7 @@ class PyMemDebugTests(unittest.TestCase)
|
||||||
def test_pyobject_forbidden_bytes_is_freed(self):
|
def test_pyobject_forbidden_bytes_is_freed(self):
|
||||||
self.check_pyobject_is_freed('check_pyobject_forbidden_bytes_is_freed')
|
self.check_pyobject_is_freed('check_pyobject_forbidden_bytes_is_freed')
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
Lib/test/test_subprocess.py | 3 ++-
|
Lib/test/test_subprocess.py | 3 ++-
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
Index: Python-3.13.0a1/Lib/test/test_subprocess.py
|
Index: Python-3.13.0a3/Lib/test/test_subprocess.py
|
||||||
===================================================================
|
===================================================================
|
||||||
--- Python-3.13.0a1.orig/Lib/test/test_subprocess.py
|
--- Python-3.13.0a3.orig/Lib/test/test_subprocess.py
|
||||||
+++ Python-3.13.0a1/Lib/test/test_subprocess.py
|
+++ Python-3.13.0a3/Lib/test/test_subprocess.py
|
||||||
@@ -281,7 +281,8 @@ class ProcessTestCase(BaseTestCase):
|
@@ -281,7 +281,8 @@ class ProcessTestCase(BaseTestCase):
|
||||||
"time.sleep(3600)"],
|
"time.sleep(3600)"],
|
||||||
# Some heavily loaded buildbots (sparc Debian 3.x) require
|
# Some heavily loaded buildbots (sparc Debian 3.x) require
|
||||||
|
|||||||
Reference in New Issue
Block a user