Python 3.13.15
Yhg1s <[email protected]> Wed, 05 Aug 2026 10:58:52 -0400 (EDT)
| Newsgroups | gmane.comp.python.cvs |
|---|---|
| Message-ID | <[email protected]> |
https://github.com/python/cpython/commit/4061bc4c35f7c26f25264666d4ba083b93d2f6f9 commit: 4061bc4c35f7c26f25264666d4ba083b93d2f6f9 branch: 3.13 author: Thomas Wouters <[email protected]> committer: Yhg1s <[email protected]> date: 2026-08-05T14:25:43+02:00 summary: Python 3.13.15 files: A Misc/NEWS.d/3.13.15.rst D Misc/NEWS.d/next/Build/2024-11-22-08-46-46.gh-issue-115869.UVLSKd.rst D Misc/NEWS.d/next/Build/2026-03-07-02-09-57.gh-issue-138800.VD8qbz.rst D Misc/NEWS.d/next/Build/2026-06-28-16-17-55.gh-issue-152502.6SNqMg.rst D Misc/NEWS.d/next/Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst D Misc/NEWS.d/next/Build/2026-07-11-07-26-16.gh-issue-126877.Zt7Kq2.rst D Misc/NEWS.d/next/Build/2026-07-19-12-16-31.gh-issue-154070.f5da07.rst D Misc/NEWS.d/next/C_API/2026-07-09-17-33-29.gh-issue-152132.Ma8MJZ.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-05-11-15-58-23.gh-issue-149689.9Ht49z.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-05-22-52-41.gh-issue-150988.fDKfMJ.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-08-05-31-22.gh-issue-151065._o_31F.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-09-10-28-30.gh-issue-151126.DKa6Sl.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-10-15-42-46.gh-issue-151253.7MMQ8P.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-17-16-46-07.gh-issue-151126.vhTL0T.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-18-16-00-10.gh-issue-151126.tBqn6I.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-21-16-00-00.gh-issue-151773.mN4kRt.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-22-14-48-22.gh-issue-151912.YcxfnU.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-12-03-55.gh-issue-151763.K7QfWG.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-24-11-12-56.gh-issue-151905.j32skf.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-05-49-13.gh-issue-152235.YU20T9.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-22-03-16.gh-issue-152235.ZKWiWk.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-27-10-05-12.gh-issue-152375.L-ZBk6.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-29-23-29-14.gh-issue-152635.O21J0O.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-06-30-14-00-00.gh-issue-152682.yId7e5.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-07-20-20-16-08.gh-issue-154275.l961cA.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-07-26-09-07-41.gh-issue-154709.M2uZ76.rst D Misc/NEWS.d/next/Core_and_Builtins/2026-08-02-17-55-29.gh-issue-154937.m9IBba.rst D Misc/NEWS.d/next/Documentation/2026-06-17-12-00-00.gh-issue-86726.__bOgH.rst D Misc/NEWS.d/next/Documentation/2026-07-17-22-33-43.gh-issue-118150.m7iFdP.rst D Misc/NEWS.d/next/IDLE/2021-10-03-21-55-34.gh-issue-89520.etEExa.rst D Misc/NEWS.d/next/IDLE/2025-10-05-19-33-39.gh-issue-139551.TX9BRc.rst D Misc/NEWS.d/next/IDLE/2026-03-07-20-47-40.gh-issue-94523.dq7m2k.rst D Misc/NEWS.d/next/IDLE/2026-06-28-06-46-46.gh-issue-85320.Hq2vKn.rst D Misc/NEWS.d/next/IDLE/2026-07-01-00-00-00.gh-issue-66331.wMcLaS.rst D Misc/NEWS.d/next/IDLE/2026-07-01-00-15-58.gh-issue-152728.yxIhMN.rst D Misc/NEWS.d/next/IDLE/2026-07-01-12-00-00.gh-issue-71956.rPlAlL.rst D Misc/NEWS.d/next/IDLE/2026-07-01-14-00-00.gh-issue-89360.mUlTiC.rst D Misc/NEWS.d/next/IDLE/2026-07-01-15-00-00.gh-issue-134300.iDlPaT.rst D Misc/NEWS.d/next/IDLE/2026-07-01-16-00-00.gh-issue-80504.gReP.rst D Misc/NEWS.d/next/IDLE/2026-07-01-17-00-00.gh-issue-65339.oUtTxt.rst D Misc/NEWS.d/next/IDLE/2026-07-01-18-00-00.gh-issue-83653.cFgInt.rst D Misc/NEWS.d/next/IDLE/2026-07-01-19-00-00.gh-issue-82183.rNsTrt.rst D Misc/NEWS.d/next/Library/2023-01-23-21-23-50.gh-issue-101267._f-cFH.rst D Misc/NEWS.d/next/Library/2023-04-27-14-50-03.gh-issue-103925.khC-El.rst D Misc/NEWS.d/next/Library/2023-06-12-21-31-02.gh-issue-105708.5fFwP8.rst D Misc/NEWS.d/next/Library/2024-06-18-04-08-37.gh-issue-120665.x7T1hV.rst D Misc/NEWS.d/next/Library/2025-09-05-20-50-35.gh-issue-79638.Y-JfaH.rst D Misc/NEWS.d/next/Library/2025-11-02-05-28-56.gh-issue-115634.JbcNnF.rst D Misc/NEWS.d/next/Library/2025-12-23-11-43-05.gh-issue-130796.TkzUGx.rst D Misc/NEWS.d/next/Library/2026-01-18-06-42-47.gh-issue-143988.MtLtCP.rst D Misc/NEWS.d/next/Library/2026-03-11-10-25-32.gh-issue-123720.TauFRx.rst D Misc/NEWS.d/next/Library/2026-03-26-00-00-00.gh-issue-47005.xxc89c.rst D Misc/NEWS.d/next/Library/2026-04-23-12-50-15.gh-issue-148441.zvpCkR.rst D Misc/NEWS.d/next/Library/2026-05-02-13-54-19.gh-issue-149221.__KOks.rst D Misc/NEWS.d/next/Library/2026-05-06-23-13-40.gh-issue-149319.PLM93t.rst D Misc/NEWS.d/next/Library/2026-05-28-00-00-00.gh-issue-150484.XxYyZz.rst D Misc/NEWS.d/next/Library/2026-06-09-12-00-00.gh-issue-150771.K7mNx2.rst D Misc/NEWS.d/next/Library/2026-06-10-00-00-01.gh-issue-117807.Cx1178.rst D Misc/NEWS.d/next/Library/2026-06-10-00-00-02.gh-issue-109940.Cx1099.rst D Misc/NEWS.d/next/Library/2026-06-11-00-00-00.gh-issue-151295.NQYUzW.rst D Misc/NEWS.d/next/Library/2026-06-11-10-00-00.gh-issue-119710.Qz7Kp2.rst D Misc/NEWS.d/next/Library/2026-06-11-16-25-38.gh-issue-151126.bh_Usy.rst D Misc/NEWS.d/next/Library/2026-06-11-21-43-24.gh-issue-151337.JSVV18.rst D Misc/NEWS.d/next/Library/2026-06-12-00-00-00.gh-issue-151416.spawnUA.rst D Misc/NEWS.d/next/Library/2026-06-12-00-04-34.gh-issue-151126.aHaBYq.rst D Misc/NEWS.d/next/Library/2026-06-12-22-46-31.gh-issue-151403.DalZWh.rst D Misc/NEWS.d/next/Library/2026-06-15-15-32-36.gh-issue-151497.1cfmSV.rst D Misc/NEWS.d/next/Library/2026-06-17-00-00-00.gh-issue-148660.odcopy.rst D Misc/NEWS.d/next/Library/2026-06-18-23-59-46.gh-issue-151596.5ma144.rst D Misc/NEWS.d/next/Library/2026-06-19-07-26-20.gh-issue-151695.IBDlkN.rst D Misc/NEWS.d/next/Library/2026-06-20-21-15-13.gh-issue-151814.OIbgsO.rst D Misc/NEWS.d/next/Library/2026-06-21-15-50-24.gh-issue-86165.dyac1G.rst D Misc/NEWS.d/next/Library/2026-06-22-18-01-00.gh-issue-151955.6u5iwm.rst D Misc/NEWS.d/next/Library/2026-06-23-13-27-14.gh-issue-126219.kOfv2g.rst D Misc/NEWS.d/next/Library/2026-06-24-10-46-35.gh-issue-152060.f2asrt.rst D Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152052.yBssDE.rst D Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152079.f1tzus.rst D Misc/NEWS.d/next/Library/2026-06-24-22-16-35.gh-issue-105895.hRkuEw.rst D Misc/NEWS.d/next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst D Misc/NEWS.d/next/Library/2026-06-25-07-08-17.gh-issue-152157.dt5Ef0.rst D Misc/NEWS.d/next/Library/2026-06-25-10-07-54.gh-issue-152156.gscPU9.rst D Misc/NEWS.d/next/Library/2026-06-25-12-00-00.gh-issue-152212.Zk7Qm2.rst D Misc/NEWS.d/next/Library/2026-06-25-14-32-42.gh-issue-139145.kT9rmP.rst D Misc/NEWS.d/next/Library/2026-06-25-14-32-43.gh-issue-139816.Lq2vXa.rst D Misc/NEWS.d/next/Library/2026-06-26-12-50-26.gh-issue-152246.MfXMd1.rst D Misc/NEWS.d/next/Library/2026-06-26-13-10-00.gh-issue-80937.Hq3mNp.rst D Misc/NEWS.d/next/Library/2026-06-26-13-39-11.gh-issue-152248.N2Rmaf.rst D Misc/NEWS.d/next/Library/2026-06-26-15-00-00.gh-issue-38464.yDPjKH.rst D Misc/NEWS.d/next/Library/2026-06-26-15-30-00.gh-issue-88758.Qw7nLp.rst D Misc/NEWS.d/next/Library/2026-06-26-16-30-00.gh-issue-83274.Kx9mQv.rst D Misc/NEWS.d/next/Library/2026-06-26-23-56-40.gh-issue-71880.782D31.rst D Misc/NEWS.d/next/Library/2026-06-27-12-30-00.gh-issue-133031.Na8Bit.rst D Misc/NEWS.d/next/Library/2026-06-27-17-19-09.gh-issue-151126.huUyOM.rst D Misc/NEWS.d/next/Library/2026-06-28-11-00-40.gh-issue-78335.Kp3mWq.rst D Misc/NEWS.d/next/Library/2026-06-29-22-16-57.gh-issue-50966.Tq5mLp.rst D Misc/NEWS.d/next/Library/2026-06-30-12-00-00.gh-issue-40038.qK7mGv.rst D Misc/NEWS.d/next/Library/2026-06-30-21-40-00.gh-issue-152502.Kq3Vn7.rst D Misc/NEWS.d/next/Library/2026-07-01-10-00-00.gh-issue-88574.Kz3wQm.rst D Misc/NEWS.d/next/Library/2026-07-01-10-30-00.gh-issue-63121.Rm4tZp.rst D Misc/NEWS.d/next/Library/2026-07-01-11-29-13.gh-issue-151126.eElGy5.rst D Misc/NEWS.d/next/Library/2026-07-01-12-00-00.gh-issue-108280.Nq8vTr.rst D Misc/NEWS.d/next/Library/2026-07-02-12-00-00.gh-issue-152847.PitKqc.rst D Misc/NEWS.d/next/Library/2026-07-02-13-30-00.gh-issue-152849.K9dRvP.rst D Misc/NEWS.d/next/Library/2026-07-02-22-19-53.gh-issue-150880.vPZ7jK.rst D Misc/NEWS.d/next/Library/2026-07-03-14-54-33.gh-issue-152951.u8tPCI.rst D Misc/NEWS.d/next/Library/2026-07-03-21-10-00.gh-issue-54930.hq09Er.rst D Misc/NEWS.d/next/Library/2026-07-04-13-00-00.gh-issue-135661.CIkADG.rst D Misc/NEWS.d/next/Library/2026-07-05-12-00-00.gh-issue-153056.tMpLat.rst D Misc/NEWS.d/next/Library/2026-07-05-16-09-31.gh-issue-153068.huY9Jh.rst D Misc/NEWS.d/next/Library/2026-07-06-12-00-00.gh-issue-153200.isqrtLt.rst D Misc/NEWS.d/next/Library/2026-07-07-02-26-43.gh-issue-153210.LUXIcm.rst D Misc/NEWS.d/next/Library/2026-07-07-17-50-54.gh-issue-143990.FoNtCf.rst D Misc/NEWS.d/next/Library/2026-07-08-01-47-15.gh-issue-153083.XbKZCp.rst D Misc/NEWS.d/next/Library/2026-07-09-00-00-00.gh-issue-153406.vyMmB6.rst D Misc/NEWS.d/next/Library/2026-07-09-14-00-00.gh-issue-153417.Bw7Rq2.rst D Misc/NEWS.d/next/Library/2026-07-09-16-35-47.gh-issue-153404.daRkes.rst D Misc/NEWS.d/next/Library/2026-07-12-00-00-00.gh-issue-85943.8f906e.rst D Misc/NEWS.d/next/Library/2026-07-13-10-27-08.gh-issue-153658.A6o4n5.rst D Misc/NEWS.d/next/Library/2026-07-14-19-45-21.gh-issue-153695.UYdZJZ.rst D Misc/NEWS.d/next/Library/2026-07-15-14-24-18.gh-issue-153761.8jqs67.rst D Misc/NEWS.d/next/Library/2026-07-15-21-56-40.gh-issue-146011.nWmHif.rst D Misc/NEWS.d/next/Library/2026-07-17-20-31-00.gh-issue-153862.X3kjoY.rst D Misc/NEWS.d/next/Library/2026-07-17-20-56-32.gh-issue-153864.WmA9By.rst D Misc/NEWS.d/next/Library/2026-07-18-10-52-10.gh-issue-153896.87oevp.rst D Misc/NEWS.d/next/Library/2026-07-18-17-09-49.gh-issue-154001.3brrUv.rst D Misc/NEWS.d/next/Library/2026-07-20-12-40-00.gh-issue-145030.TFJm6k.rst D Misc/NEWS.d/next/Library/2026-07-20-14-00-00.gh-issue-154227.openpt.rst D Misc/NEWS.d/next/Library/2026-07-20-14-10-00.gh-issue-154225.openpty.rst D Misc/NEWS.d/next/Library/2026-07-20-18-30-00.gh-issue-154258.mmapresize.rst D Misc/NEWS.d/next/Library/2026-07-20-21-36-40.gh-issue-154283.Xip7xE.rst D Misc/NEWS.d/next/Library/2026-07-20-22-03-44.gh-issue-154291.Mi5HeQ.rst D Misc/NEWS.d/next/Library/2026-07-21-01-13-39.gh-issue-154307.UNFKL4.rst D Misc/NEWS.d/next/Library/2026-07-21-08-31-55.gh-issue-154324.vDxV5U.rst D Misc/NEWS.d/next/Library/2026-07-21-20-34-05.gh-issue-154389.DlTiii.rst D Misc/NEWS.d/next/Library/2026-07-21-21-36-59.gh-issue-154399.VSa6oH.rst D Misc/NEWS.d/next/Library/2026-07-22-10-30-08.gh-issue-154435.xCxm0T.rst D Misc/NEWS.d/next/Library/2026-07-22-13-00-00.gh-issue-154460.wCsFtM.rst D Misc/NEWS.d/next/Library/2026-07-22-13-01-24.gh-issue-73458.byxSPi.rst D Misc/NEWS.d/next/Library/2026-07-23-06-53-01.gh-issue-79366.3gMT7I.rst D Misc/NEWS.d/next/Library/2026-07-23-19-45-00.gh-issue-154551.Ct7pL9.rst D Misc/NEWS.d/next/Library/2026-07-25-13-30-00.gh-issue-93251.gAiErr.rst D Misc/NEWS.d/next/Library/2026-07-26-00-00-00.gh-issue-154738.Rd5Pxe.rst D Misc/NEWS.d/next/Library/2026-07-29-11-20-00.gh-issue-98820.Qm7Hs4.rst D Misc/NEWS.d/next/Library/2026-07-29-11-25-00.gh-issue-109638.Vt2Rn9.rst D Misc/NEWS.d/next/Library/2026-07-29-18-30-00.gh-issue-154848.Fr4meB.rst D Misc/NEWS.d/next/Library/2026-07-29-19-48-59.gh-issue-154871.tgZILS.rst D Misc/NEWS.d/next/Library/2026-07-29-21-37-39.gh-issue-154892.eQyJ3Z.rst D Misc/NEWS.d/next/Library/2026-07-30-23-29-56.gh-issue-154936.a90443.rst D Misc/NEWS.d/next/Library/2026-08-01-18-37-56.gh-issue-155063.xC9PcH.rst D Misc/NEWS.d/next/Library/2026-08-04-19-03-20.gh-issue-155063.gN_mCU.rst D Misc/NEWS.d/next/Security/2026-01-16-11-41-06.gh-issue-143921.AeCOor.rst D Misc/NEWS.d/next/Security/2026-01-16-11-58-19.gh-issue-143927.aviFeG.rst D Misc/NEWS.d/next/Security/2026-05-30-00-00-00.gh-issue-150743.httpdos.rst D Misc/NEWS.d/next/Security/2026-06-10-13-08-19.gh-issue-151558.mL74i2.rst D Misc/NEWS.d/next/Security/2026-06-16-14-58-02.gh-issue-151544._bexVy.rst D Misc/NEWS.d/next/Security/2026-06-23-13-28-16.gh-issue-151981.xBHEcU.rst D Misc/NEWS.d/next/Security/2026-06-23-14-19-30.gh-issue-151987.8mNIMf.rst D Misc/NEWS.d/next/Security/2026-06-25-20-44-20.gh-issue-152216.VxiK5y.rst D Misc/NEWS.d/next/Security/2026-06-30-13-24-13.gh-issue-152674.-2QVoL.rst D Misc/NEWS.d/next/Security/2026-07-04-17-00-00.gh-issue-153030.RovkP6.rst D Misc/NEWS.d/next/Tests/2026-06-16-05-11-38.gh-issue-151096.Kq3Lp9.rst D Misc/NEWS.d/next/Tests/2026-06-22-19-45-00.gh-issue-151626.K9pZ2x.rst D Misc/NEWS.d/next/Tests/2026-06-29-10-14-09.gh-issue-152548.Khw9J7.rst D Misc/NEWS.d/next/Tests/2026-07-19-18-20-00.gh-issue-154144.tcbool.rst D Misc/NEWS.d/next/Tests/2026-07-19-20-15-00.gh-issue-154167.sigint.rst D Misc/NEWS.d/next/Tests/2026-07-24-12-00-00.gh-issue-76595.KfF5xR.rst D Misc/NEWS.d/next/Tools-Demos/2026-07-24-09-30-00.gh-issue-154580.Kp3nQ2.rst D Misc/NEWS.d/next/Tools-Demos/2026-08-04-17-12-33.gh-issue-64502.Qv7mLp.rst D Misc/NEWS.d/next/Tools-Demos/2026-08-05-10-24-17.gh-issue-155207.Wv3nKq.rst D Misc/NEWS.d/next/Tools-Demos/2026-08-05-14-02-55.gh-issue-155218.Nq4xZv.rst D Misc/NEWS.d/next/Windows/2026-04-21-16-07-11.gh-issue-140146.TAcUHA.rst D Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst M Doc/library/concurrent.futures.rst M Include/patchlevel.h M Lib/pydoc_data/module_docs.py M Lib/pydoc_data/topics.py M README.rst diff --git a/Doc/library/concurrent.futures.rst b/Doc/library/concurrent.futures.rst index 5b53afb074164bc..d4c05f16889c3e0 100644 --- a/Doc/library/concurrent.futures.rst +++ b/Doc/library/concurrent.futures.rst @@ -322,7 +322,7 @@ in a REPL or a lambda should not be expected to work. *max_workers* uses :func:`os.process_cpu_count` by default, instead of :func:`os.cpu_count`. - .. versionchanged:: next + .. versionchanged:: 3.13.15 Fixed a deadlock (:gh:`115634`) where the executor could hang after a worker process exited upon reaching its *max_tasks_per_child* limit while tasks remained queued. diff --git a/Include/patchlevel.h b/Include/patchlevel.h index 9885afcb7fef053..613d52d86f134ff 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -18,12 +18,12 @@ /*--start constants--*/ #define PY_MAJOR_VERSION 3 #define PY_MINOR_VERSION 13 -#define PY_MICRO_VERSION 14 +#define PY_MICRO_VERSION 15 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL #define PY_RELEASE_SERIAL 0 /* Version as a string */ -#define PY_VERSION "3.13.14+" +#define PY_VERSION "3.13.15" /*--end constants--*/ /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. diff --git a/Lib/pydoc_data/module_docs.py b/Lib/pydoc_data/module_docs.py index 9e4564909676f05..0cfb85d3298d42d 100644 --- a/Lib/pydoc_data/module_docs.py +++ b/Lib/pydoc_data/module_docs.py @@ -1,4 +1,4 @@ -# Autogenerated by Sphinx on Wed Jun 10 14:23:59 2026 +# Autogenerated by Sphinx on Wed Aug 5 14:25:38 2026 # as part of the release process. module_docs = { @@ -245,6 +245,7 @@ 'tkinter': 'tkinter#module-tkinter', 'tkinter.colorchooser': 'tkinter.colorchooser#module-tkinter.colorchooser', 'tkinter.commondialog': 'dialog#module-tkinter.commondialog', + 'tkinter.dialog': 'dialog#module-tkinter.dialog', 'tkinter.dnd': 'tkinter.dnd#module-tkinter.dnd', 'tkinter.filedialog': 'dialog#module-tkinter.filedialog', 'tkinter.font': 'tkinter.font#module-tkinter.font', diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py index 31d582a90abcbb6..c23420979bd8c06 100644 --- a/Lib/pydoc_data/topics.py +++ b/Lib/pydoc_data/topics.py @@ -1,4 +1,4 @@ -# Autogenerated by Sphinx on Wed Jun 10 14:23:59 2026 +# Autogenerated by Sphinx on Wed Aug 5 14:25:38 2026 # as part of the release process. topics = { @@ -127,7 +127,7 @@ class Cls: inst.x = inst.x + 1 # writes inst.x as 4 leaving Cls.x as 3 This description does not necessarily apply to descriptor - attributes, such as properties created with "property()". + attributes, such as properties created with "@property". * If the target is a subscription: The primary expression in the reference is evaluated. It should yield either a mutable sequence @@ -761,7 +761,7 @@ class to a new value, *value*. instances to acquire behaviors that differ from other instances of the same class. -The "property()" function is implemented as a data descriptor. +The "@property" decorator is implemented as a data descriptor. Accordingly, instances cannot override the behavior of a property. @@ -1581,7 +1581,7 @@ class attributes; they are shared by instances. Instance attributes The last two expressions apply to totally ordered collections (e.g. to sequences, but not to sets or mappings). See also the - "total_ordering()" decorator. + "@~functools.total_ordering" decorator. * The "hash()" result should be consistent with equality. Objects that are equal should either have the same hash value, or be marked as @@ -1839,12 +1839,12 @@ class attributes; they are shared by instances. Instance attributes handler, the outer handler will not handle the exception.) When an exception has been assigned using "as target", it is cleared -at the end of the "except" clause. This is as if +at the end of the "except" clause. This is as if: except E as N: foo -was translated to +was translated to: except E as N: try: @@ -1892,8 +1892,8 @@ class attributes; they are shared by instances. Instance attributes type for matching is mandatory in the case of "except*", so "except*:" is a syntax error. The type is interpreted as in the case of "except", but matching is performed on the exceptions contained in the group -that is being handled. An "TypeError" is raised if a matching type is -a subclass of "BaseExceptionGroup", because that would have ambiguous +that is being handled. A "TypeError" is raised if a matching type is a +subclass of "BaseExceptionGroup", because that would have ambiguous semantics. When an exception group is raised in the try block, each "except*" @@ -1908,7 +1908,7 @@ class attributes; they are shared by instances. Instance attributes After all "except*" clauses execute, the group of unhandled exceptions is merged with any exceptions that were raised or re-raised from -within "except*" clauses. This merged exception group propagates on.: +within "except*" clauses. This merged exception group propagates on: >>> try: ... raise ExceptionGroup("eg", @@ -2793,7 +2793,7 @@ def func(): pass by appending an item to a list), the default parameter value is in effect modified. This is generally not what was intended. A way around this is to use "None" as the default, and explicitly test for -it in the body of the function, e.g.: +it in the body of the function, for example: def whats_on_the_telly(penguin=None): if penguin is None: @@ -3648,7 +3648,7 @@ class Bag(Base[T], typing.Generic[T], arg=T): operators or default implementations; for example, the truth of "(x<y or x==y)" does not imply "x<=y". To automatically generate ordering operations from a single root operation, see - "functools.total_ordering()". + "@functools.total_ordering". By default, the "object" class provides implementations consistent with Value comparisons: equality compares according to object @@ -5876,7 +5876,7 @@ def func(): pass by appending an item to a list), the default parameter value is in effect modified. This is generally not what was intended. A way around this is to use "None" as the default, and explicitly test for -it in the body of the function, e.g.: +it in the body of the function, for example: def whats_on_the_telly(penguin=None): if penguin is None: @@ -6506,6 +6506,603 @@ def <lambda>(parameters): from left to right and placed into the list object in that order. When a comprehension is supplied, the list is constructed from the elements resulting from the comprehension. +''', + 'match': r'''The "match" statement +********************* + +Added in version 3.10. + +The match statement is used for pattern matching. Syntax: + + match_stmt ::= 'match' subject_expr ":" NEWLINE INDENT case_block+ DEDENT + subject_expr ::= flexible_expression "," [flexible_expression_list [',']] + | assignment_expression + case_block ::= 'case' patterns [guard] ":" suite + +Note: + + This section uses single quotes to denote soft keywords. + +Pattern matching takes a pattern as input (following "case") and a +subject value (following "match"). The pattern (which may contain +subpatterns) is matched against the subject value. The outcomes are: + +* A match success or failure (also termed a pattern success or + failure). + +* Possible binding of matched values to a name. The prerequisites for + this are further discussed below. + +The "match" and "case" keywords are soft keywords. + +See also: + + * **PEP 634** – Structural Pattern Matching: Specification + + * **PEP 636** – Structural Pattern Matching: Tutorial + + +Overview +======== + +Here’s an overview of the logical flow of a match statement: + +1. The subject expression "subject_expr" is evaluated and a resulting + subject value obtained. If the subject expression contains a comma, + a tuple is constructed using the standard rules. + +2. Each pattern in a "case_block" is attempted to match with the + subject value. The specific rules for success or failure are + described below. The match attempt can also bind some or all of the + standalone names within the pattern. The precise pattern binding + rules vary per pattern type and are specified below. **Name + bindings made during a successful pattern match outlive the + executed block and can be used after the match statement**. + + Note: + + During failed pattern matches, some subpatterns may succeed. Do + not rely on bindings being made for a failed match. Conversely, + do not rely on variables remaining unchanged after a failed + match. The exact behavior is dependent on implementation and may + vary. This is an intentional decision made to allow different + implementations to add optimizations. + +3. If the pattern succeeds, the corresponding guard (if present) is + evaluated. In this case all name bindings are guaranteed to have + happened. + + * If the guard evaluates as true or is missing, the "block" inside + "case_block" is executed. + + * Otherwise, the next "case_block" is attempted as described above. + + * If there are no further case blocks, the match statement is + completed. + +Note: + + Users should generally never rely on a pattern being evaluated. + Depending on implementation, the interpreter may cache values or use + other optimizations which skip repeated evaluations. + +A sample match statement: + + >>> flag = False + >>> match (100, 200): + ... case (100, 300): # Mismatch: 200 != 300 + ... print('Case 1') + ... case (100, 200) if flag: # Successful match, but guard fails + ... print('Case 2') + ... case (100, y): # Matches and binds y to 200 + ... print(f'Case 3, y: {y}') + ... case _: # Pattern not attempted + ... print('Case 4, I match anything!') + ... + Case 3, y: 200 + +In this case, "if flag" is a guard. Read more about that in the next +section. + + +Guards +====== + + guard ::= "if" assignment_expression + +A "guard" (which is part of the "case") must succeed for code inside +the "case" block to execute. It takes the form: "if" followed by an +expression. + +The logical flow of a "case" block with a "guard" follows: + +1. Check that the pattern in the "case" block succeeded. If the + pattern failed, the "guard" is not evaluated and the next "case" + block is checked. + +2. If the pattern succeeded, evaluate the "guard". + + * If the "guard" condition evaluates as true, the case block is + selected. + + * If the "guard" condition evaluates as false, the case block is + not selected. + + * If the "guard" raises an exception during evaluation, the + exception bubbles up. + +Guards are allowed to have side effects as they are expressions. +Guard evaluation must proceed from the first to the last case block, +one at a time, skipping case blocks whose pattern(s) don’t all +succeed. (I.e., guard evaluation must happen in order.) Guard +evaluation must stop once a case block is selected. + + +Irrefutable Case Blocks +======================= + +An irrefutable case block is a match-all case block. A match +statement may have at most one irrefutable case block, and it must be +last. + +A case block is considered irrefutable if it has no guard and its +pattern is irrefutable. A pattern is considered irrefutable if we can +prove from its syntax alone that it will always succeed. Only the +following patterns are irrefutable: + +* AS Patterns whose left-hand side is irrefutable + +* OR Patterns containing at least one irrefutable pattern + +* Capture Patterns + +* Wildcard Patterns + +* parenthesized irrefutable patterns + + +Patterns +======== + +Note: + + This section uses grammar notations beyond standard EBNF: + + * the notation "SEP.RULE+" is shorthand for "RULE (SEP RULE)*" + + * the notation "!RULE" is shorthand for a negative lookahead + assertion + +The top-level syntax for "patterns" is: + + patterns ::= open_sequence_pattern | pattern + pattern ::= as_pattern | or_pattern + closed_pattern ::= | literal_pattern + | capture_pattern + | wildcard_pattern + | value_pattern + | group_pattern + | sequence_pattern + | mapping_pattern + | class_pattern + +The descriptions below will include a description “in simple terms” of +what a pattern does for illustration purposes (credits to Raymond +Hettinger for a document that inspired most of the descriptions). Note +that these descriptions are purely for illustration purposes and **may +not** reflect the underlying implementation. Furthermore, they do not +cover all valid forms. + + +OR Patterns +----------- + +An OR pattern is two or more patterns separated by vertical bars "|". +Syntax: + + or_pattern ::= "|".closed_pattern+ + +Only the final subpattern may be irrefutable, and each subpattern must +bind the same set of names to avoid ambiguity. + +An OR pattern matches each of its subpatterns in turn to the subject +value, until one succeeds. The OR pattern is then considered +successful. Otherwise, if none of the subpatterns succeed, the OR +pattern fails. + +In simple terms, "P1 | P2 | ..." will try to match "P1", if it fails +it will try to match "P2", succeeding immediately if any succeeds, +failing otherwise. + + +AS Patterns +----------- + +An AS pattern matches an OR pattern on the left of the "as" keyword +against a subject. Syntax: + + as_pattern ::= or_pattern "as" capture_pattern + +If the OR pattern fails, the AS pattern fails. Otherwise, the AS +pattern binds the subject to the name on the right of the as keyword +and succeeds. "capture_pattern" cannot be a "_". + +In simple terms "P as NAME" will match with "P", and on success it +will set "NAME = <subject>". + + +Literal Patterns +---------------- + +A literal pattern corresponds to most literals in Python. Syntax: + + literal_pattern ::= signed_number + | signed_number "+" NUMBER + | signed_number "-" NUMBER + | `!strings` + | "None" + | "True" + | "False" + signed_number ::= ["-"] NUMBER + +The rule "strings" and the token "NUMBER" are defined in the standard +Python grammar. Triple-quoted strings are supported. Raw strings and +byte strings are supported. f-strings are not supported. + +The forms "signed_number '+' NUMBER" and "signed_number '-' NUMBER" +are for expressing complex numbers; they require a real number on the +left and an imaginary number on the right. E.g. "3 + 4j". + +In simple terms, "LITERAL" will succeed only if "<subject> == +LITERAL". For the singletons "None", "True" and "False", the "is" +operator is used. + + +Capture Patterns +---------------- + +A capture pattern binds the subject value to a name. Syntax: + + capture_pattern ::= !'_' NAME + +A single underscore "_" is not a capture pattern (this is what "!'_'" +expresses). It is instead treated as a "wildcard_pattern". + +In a given pattern, a given name can only be bound once. E.g. "case +x, x: ..." is invalid while "case [x] | x: ..." is allowed. + +Capture patterns always succeed. The binding follows scoping rules +established by the assignment expression operator in **PEP 572**; the +name becomes a local variable in the closest containing function scope +unless there’s an applicable "global" or "nonlocal" statement. + +In simple terms "NAME" will always succeed and it will set "NAME = +<subject>". + + +Wildcard Patterns +----------------- + +A wildcard pattern always succeeds (matches anything) and binds no +name. Syntax: + + wildcard_pattern ::= '_' + +"_" is a soft keyword within any pattern, but only within patterns. +It is an identifier, as usual, even within "match" subject +expressions, "guard"s, and "case" blocks. + +In simple terms, "_" will always succeed. + + +Value Patterns +-------------- + +A value pattern represents a named value in Python. Syntax: + + value_pattern ::= attr + attr ::= name_or_attr "." NAME + name_or_attr ::= attr | NAME + +The dotted name in the pattern is looked up using standard Python name +resolution rules. The pattern succeeds if the value found compares +equal to the subject value (using the "==" equality operator). + +In simple terms "NAME1.NAME2" will succeed only if "<subject> == +NAME1.NAME2" + +Note: + + If the same value occurs multiple times in the same match statement, + the interpreter may cache the first value found and reuse it rather + than repeat the same lookup. This cache is strictly tied to a given + execution of a given match statement. + + +Group Patterns +-------------- + +A group pattern allows users to add parentheses around patterns to +emphasize the intended grouping. Otherwise, it has no additional +syntax. Syntax: + + group_pattern ::= "(" pattern ")" + +In simple terms "(P)" has the same effect as "P". + + +Sequence Patterns +----------------- + +A sequence pattern contains several subpatterns to be matched against +sequence elements. The syntax is similar to the unpacking of a list or +tuple. + + sequence_pattern ::= "[" [maybe_sequence_pattern] "]" + | "(" [open_sequence_pattern] ")" + open_sequence_pattern ::= maybe_star_pattern "," [maybe_sequence_pattern] + maybe_sequence_pattern ::= ",".maybe_star_pattern+ ","? + maybe_star_pattern ::= star_pattern | pattern + star_pattern ::= "*" (capture_pattern | wildcard_pattern) + +There is no difference if parentheses or square brackets are used for +sequence patterns (i.e. "(...)" vs "[...]" ). + +Note: + + A single pattern enclosed in parentheses without a trailing comma + (e.g. "(3 | 4)") is a group pattern. While a single pattern enclosed + in square brackets (e.g. "[3 | 4]") is still a sequence pattern. + +At most one star subpattern may be in a sequence pattern. The star +subpattern may occur in any position. If no star subpattern is +present, the sequence pattern is a fixed-length sequence pattern; +otherwise it is a variable-length sequence pattern. + +The following is the logical flow for matching a sequence pattern +against a subject value: + +1. If the subject value is not a sequence [2], the sequence pattern + fails. + +2. If the subject value is an instance of "str", "bytes" or + "bytearray" the sequence pattern fails. + +3. The subsequent steps depend on whether the sequence pattern is + fixed or variable-length. + + If the sequence pattern is fixed-length: + + 1. If the length of the subject sequence is not equal to the number + of subpatterns, the sequence pattern fails + + 2. Subpatterns in the sequence pattern are matched to their + corresponding items in the subject sequence from left to right. + Matching stops as soon as a subpattern fails. If all + subpatterns succeed in matching their corresponding item, the + sequence pattern succeeds. + + Otherwise, if the sequence pattern is variable-length: + + 1. If the length of the subject sequence is less than the number of + non-star subpatterns, the sequence pattern fails. + + 2. The leading non-star subpatterns are matched to their + corresponding items as for fixed-length sequences. + + 3. If the previous step succeeds, the star subpattern matches a + list formed of the remaining subject items, excluding the + remaining items corresponding to non-star subpatterns following + the star subpattern. + + 4. Remaining non-star subpatterns are matched to their + corresponding subject items, as for a fixed-length sequence. + + Note: + + The length of the subject sequence is obtained via "len()" (i.e. + via the "__len__()" protocol). This length may be cached by the + interpreter in a similar manner as value patterns. + +In simple terms "[P1, P2, P3," … ", P<N>]" matches only if all the +following happens: + +* check "<subject>" is a sequence + +* "len(subject) == <N>" + +* "P1" matches "<subject>[0]" (note that this match can also bind + names) + +* "P2" matches "<subject>[1]" (note that this match can also bind + names) + +* … and so on for the corresponding pattern/element. + + +Mapping Patterns +---------------- + +A mapping pattern contains one or more key-value patterns. The syntax +is similar to the construction of a dictionary. Syntax: + + mapping_pattern ::= "{" [items_pattern] "}" + items_pattern ::= ",".key_value_pattern+ ","? + key_value_pattern ::= (literal_pattern | value_pattern) ":" pattern + | double_star_pattern + double_star_pattern ::= "**" capture_pattern + +At most one double star pattern may be in a mapping pattern. The +double star pattern must be the last subpattern in the mapping +pattern. + +Duplicate keys in mapping patterns are disallowed. Duplicate literal +keys will raise a "SyntaxError". Two keys that otherwise have the same +value will raise a "ValueError" at runtime. + +The following is the logical flow for matching a mapping pattern +against a subject value: + +1. If the subject value is not a mapping [3],the mapping pattern + fails. + +2. If every key given in the mapping pattern is present in the subject + mapping, and the pattern for each key matches the corresponding + item of the subject mapping, the mapping pattern succeeds. + +3. If duplicate keys are detected in the mapping pattern, the pattern + is considered invalid. A "SyntaxError" is raised for duplicate + literal values; or a "ValueError" for named keys of the same value. + +Note: + + Key-value pairs are matched using the two-argument form of the + mapping subject’s "get()" method. Matched key-value pairs must + already be present in the mapping, and not created on-the-fly via + "__missing__()" or "__getitem__()". + +In simple terms "{KEY1: P1, KEY2: P2, ... }" matches only if all the +following happens: + +* check "<subject>" is a mapping + +* "KEY1 in <subject>" + +* "P1" matches "<subject>[KEY1]" + +* … and so on for the corresponding KEY/pattern pair. + + +Class Patterns +-------------- + +A class pattern represents a class and its positional and keyword +arguments (if any). Syntax: + + class_pattern ::= name_or_attr "(" [pattern_arguments ","?] ")" + pattern_arguments ::= positional_patterns ["," keyword_patterns] + | keyword_patterns + positional_patterns ::= ",".pattern+ + keyword_patterns ::= ",".keyword_pattern+ + keyword_pattern ::= NAME "=" pattern + +The same keyword should not be repeated in class patterns. + +The following is the logical flow for matching a class pattern against +a subject value: + +1. If "name_or_attr" is not an instance of the builtin "type" , raise + "TypeError". + +2. If the subject value is not an instance of "name_or_attr" (tested + via "isinstance()"), the class pattern fails. + +3. If no pattern arguments are present, the pattern succeeds. + Otherwise, the subsequent steps depend on whether keyword or + positional argument patterns are present. + + For a number of built-in types (specified below), a single + positional subpattern is accepted which will match the entire + subject; for these types keyword patterns also work as for other + types. + + If only keyword patterns are present, they are processed as + follows, one by one: + + 1. The keyword is looked up as an attribute on the subject. + + * If this raises an exception other than "AttributeError", the + exception bubbles up. + + * If this raises "AttributeError", the class pattern has failed. + + * Else, the subpattern associated with the keyword pattern is + matched against the subject’s attribute value. If this fails, + the class pattern fails; if this succeeds, the match proceeds + to the next keyword. + + 2. If all keyword patterns succeed, the class pattern succeeds. + + If any positional patterns are present, they are converted to + keyword patterns using the "__match_args__" attribute on the class + "name_or_attr" before matching: + + 1. The equivalent of "getattr(cls, "__match_args__", ())" is + called. + + * If this raises an exception, the exception bubbles up. + + * If the returned value is not a tuple, the conversion fails and + "TypeError" is raised. + + * If there are more positional patterns than + "len(cls.__match_args__)", "TypeError" is raised. + + * Otherwise, positional pattern "i" is converted to a keyword + pattern using "__match_args__[i]" as the keyword. + "__match_args__[i]" must be a string; if not "TypeError" is + raised. + + * If there are duplicate keywords, "TypeError" is raised. + + See also: + + Customizing positional arguments in class pattern matching + + 2. Once all positional patterns have been converted to keyword + patterns, the match proceeds as if there were only keyword + patterns. + + For the following built-in types the handling of positional + subpatterns is different: + + * "bool" + + * "bytearray" + + * "bytes" + + * "dict" + + * "float" + + * "frozenset" + + * "int" + + * "list" + + * "set" + + * "str" + + * "tuple" + + These classes accept a single positional argument, and the pattern + there is matched against the whole object rather than an attribute. + For example "int(0|1)" matches the value "0", but not the value + "0.0". + +In simple terms "CLS(P1, attr=P2)" matches only if the following +happens: + +* "isinstance(<subject>, CLS)" + +* convert "P1" to a keyword pattern using "CLS.__match_args__" + +* For each keyword argument "attr=P2": + + * "hasattr(<subject>, "attr")" + + * "P2" matches "<subject>.attr" + +* … and so on for the corresponding keyword argument/pattern pair. + +See also: + + * **PEP 634** – Structural Pattern Matching: Specification + + * **PEP 636** – Structural Pattern Matching: Tutorial ''', 'naming': r'''Naming and binding ****************** @@ -7815,7 +8412,7 @@ class C: pass # a class with no methods (yet) operators or default implementations; for example, the truth of "(x<y or x==y)" does not imply "x<=y". To automatically generate ordering operations from a single root operation, see - "functools.total_ordering()". + "@functools.total_ordering". By default, the "object" class provides implementations consistent with Value comparisons: equality compares according to object @@ -8182,7 +8779,7 @@ class to a new value, *value*. instances to acquire behaviors that differ from other instances of the same class. -The "property()" function is implemented as a data descriptor. +The "@property" decorator is implemented as a data descriptor. Accordingly, instances cannot override the behavior of a property. @@ -10491,12 +11088,12 @@ class is used in a class pattern with positional arguments, each handler, the outer handler will not handle the exception.) When an exception has been assigned using "as target", it is cleared -at the end of the "except" clause. This is as if +at the end of the "except" clause. This is as if: except E as N: foo -was translated to +was translated to: except E as N: try: @@ -10544,8 +11141,8 @@ class is used in a class pattern with positional arguments, each type for matching is mandatory in the case of "except*", so "except*:" is a syntax error. The type is interpreted as in the case of "except", but matching is performed on the exceptions contained in the group -that is being handled. An "TypeError" is raised if a matching type is -a subclass of "BaseExceptionGroup", because that would have ambiguous +that is being handled. A "TypeError" is raised if a matching type is a +subclass of "BaseExceptionGroup", because that would have ambiguous semantics. When an exception group is raised in the try block, each "except*" @@ -10560,7 +11157,7 @@ class is used in a class pattern with positional arguments, each After all "except*" clauses execute, the group of unhandled exceptions is merged with any exceptions that were raised or re-raised from -within "except*" clauses. This merged exception group propagates on.: +within "except*" clauses. This merged exception group propagates on: >>> try: ... raise ExceptionGroup("eg", diff --git a/Misc/NEWS.d/3.13.15.rst b/Misc/NEWS.d/3.13.15.rst new file mode 100644 index 000000000000000..0d90f4cbe343a9a --- /dev/null +++ b/Misc/NEWS.d/3.13.15.rst @@ -0,0 +1,1860 @@ +.. date: 2026-08-05-02-02-33 +.. gh-issue: 153711 +.. nonce: pO9fFb +.. release date: 2026-08-05 +.. section: macOS + +On macOS, do not attempt to use the :manpage:`dup3(2)` and +:manpage:`pipe2(2)` system calls introduced in macOS 27 to prevent problems +when running on older systems. + +.. + +.. date: 2026-04-21-16-07-11 +.. gh-issue: 140146 +.. nonce: TAcUHA +.. section: Windows + +Prevent :mod:`tkinter` from hanging on Windows if stdin is redirected to a +pipe in an interactive session. This is helpful for testing interactive +usage of tkinter from a script, for example as part of the cpython test +suite. + +.. + +.. date: 2026-08-05-14-02-55 +.. gh-issue: 155218 +.. nonce: Nq4xZv +.. section: Tools/Demos + +Fix Argument Clinic generating the flags of the optional groups in different +order on 32-bit and 64-bit platforms. + +.. + +.. date: 2026-08-05-10-24-17 +.. gh-issue: 155207 +.. nonce: Wv3nKq +.. section: Tools/Demos + +Argument Clinic now supports the ``--dry-run`` and ``--diff`` options. They +list the files which would be changed, or write a unified diff of the +changes to the standard output, without modifying any file. + +.. + +.. date: 2026-08-04-17-12-33 +.. gh-issue: 64502 +.. nonce: Qv7mLp +.. section: Tools/Demos + +Fix Argument Clinic support of parameters with a default value used together +with optional groups. Such parameters were always required in the generated +parsing code. + +.. + +.. date: 2026-07-24-09-30-00 +.. gh-issue: 154580 +.. nonce: Kp3nQ2 +.. section: Tools/Demos + +Fix ``python-gdb.py`` raising :exc:`UnicodeEncodeError` when pretty-printing +a non-ASCII :class:`str` in a locale whose host charset cannot encode it, +such as any non-ASCII string in the C locale. + +.. + +.. date: 2026-07-24-12-00-00 +.. gh-issue: 76595 +.. nonce: KfF5xR +.. section: Tests + +Add C API tests for :c:func:`PyCapsule_Import`. + +.. + +.. date: 2026-07-19-20-15-00 +.. gh-issue: 154167 +.. nonce: sigint +.. section: Tests + +The test runner (regrtest) now restores the default SIGINT handler if it was +inherited as ignored, so the test suite no longer hangs when run as a shell +background job. + +.. + +.. date: 2026-07-19-18-20-00 +.. gh-issue: 154144 +.. nonce: tcbool +.. section: Tests + +Fix building the :mod:`!_testcapi` module on NetBSD. + +.. + +.. date: 2026-06-29-10-14-09 +.. gh-issue: 152548 +.. nonce: Khw9J7 +.. section: Tests + +Add the :func:`test.support.isolation.runInSubprocess` decorator to run a +test method or ``TestCase`` subclass in a fresh interpreter subprocess, +isolated from the rest of the test run. + +.. + +.. date: 2026-06-22-19-45-00 +.. gh-issue: 151626 +.. nonce: K9pZ2x +.. section: Tests + +Fix several tests in ``test.test_inspect``, ``test.test_import``, +``test.test_importlib``, ``test.test_py_compile`` and +``test.test_compileall`` that failed when the test suite was run with +:envvar:`PYTHONPYCACHEPREFIX` set. These tests now neutralize the pycache +prefix where they assume the default ``__pycache__`` bytecode layout. + +.. + +.. date: 2026-06-16-05-11-38 +.. gh-issue: 151096 +.. nonce: Kq3Lp9 +.. section: Tests + +Fix ``test_embed`` failing when CPython is configured with a split exec +prefix (``--exec-prefix`` differing from ``--prefix``). + +.. + +.. date: 2026-07-04-17-00-00 +.. gh-issue: 153030 +.. nonce: RovkP6 +.. section: Security + +Fixed quadratic complexity in incremental parsing of long unterminated +constructs (such as tags or comments) in :class:`html.parser.HTMLParser`, +which could be exploited for a denial of service. + +.. + +.. date: 2026-06-30-13-24-13 +.. gh-issue: 152674 +.. nonce: -2QVoL +.. section: Security + +The :class:`xml.etree.ElementTree.Element` methods +:meth:`~xml.etree.ElementTree.Element.findall`, +:meth:`~xml.etree.ElementTree.Element.iterfind` and +:meth:`~xml.etree.ElementTree.Element.find` avoid quadratic behavior when +using XPath index predicates (``[1]``, ``[last()]``, ``[last()-N]``) on XML +documents with many same-tag siblings. + +.. + +.. date: 2026-06-25-20-44-20 +.. gh-issue: 152216 +.. nonce: VxiK5y +.. section: Security + +Update bundled `libexpat <https://libexpat.github.io/>`_ to version 2.8.2. + +.. + +.. date: 2026-06-23-14-19-30 +.. gh-issue: 151987 +.. nonce: 8mNIMf +.. section: Security + +The :meth:`tarfile.TarFile.extract` method now applies the given filter when +it extracts a link target from the archive as a fallback. + +.. + +.. date: 2026-06-23-13-28-16 +.. gh-issue: 151981 +.. nonce: xBHEcU +.. section: Security + +In :mod:`tarfile`, seeking a stream now stops when end of the stream is +reached. + +.. + +.. date: 2026-06-16-14-58-02 +.. gh-issue: 151544 +.. nonce: _bexVy +.. section: Security + +:file:`Modules/Setup.local` is no longer used as a landmark to discover +whether Python is running in a source tree, as it could potentially affect +actual installs. The :file:`pybuilddir.txt` file is now the sole indicator +of running in a source tree. + +.. + +.. date: 2026-06-10-13-08-19 +.. gh-issue: 151558 +.. nonce: mL74i2 +.. section: Security + +Fixed an vulnerability in the :mod:`tarfile` ``data`` and ``tar`` extraction +filters where crafted archives could create a symlink pointing outside the +destination directory. This was a bypass of :cve:`2025-4330`. + +.. + +.. date: 2026-05-30-00-00-00 +.. gh-issue: 150743 +.. nonce: httpdos +.. section: Security + +:mod:`http.client` now limits the number of chunked-response trailer lines +it will read to 100, and the number of interim (1xx) responses it will skip +to 100. A malicious or broken server could previously stream trailer lines +or ``100 Continue`` responses forever, hanging the client even when a socket +timeout was in use. Reported by ``@YLChen-007`` via GHSA-w4q2-g22w-6fr4. + +.. + +.. date: 2026-01-16-11-58-19 +.. gh-issue: 143927 +.. nonce: aviFeG +.. section: Security + +Normalize all line endings (CR, CRLF, and LF) to LF+TAB when writing +multi-line configparser values. + +.. + +.. date: 2026-01-16-11-41-06 +.. gh-issue: 143921 +.. nonce: AeCOor +.. section: Security + +Reject NUL, CR and LF characters in IMAP commands. Other control characters +are allowed and sent quoted. + +.. + +.. date: 2026-08-04-19-03-20 +.. gh-issue: 155063 +.. nonce: gN_mCU +.. section: Library + +Bump the version of pip bundled in ensurepip to version 26.2.1 + +.. + +.. date: 2026-08-01-18-37-56 +.. gh-issue: 155063 +.. nonce: xC9PcH +.. section: Library + +Bump the version of pip bundled in ensurepip to version 26.2 + +.. + +.. date: 2026-07-30-23-29-56 +.. gh-issue: 154936 +.. nonce: a90443 +.. section: Library + +Fix the pure Python :mod:`json` decoder to report the correct position for +invalid literal control characters in JSON strings. + +.. + +.. date: 2026-07-29-21-37-39 +.. gh-issue: 154892 +.. nonce: eQyJ3Z +.. section: Library + +Fix a bug in the C accelerator for :mod:`zoneinfo` where +:class:`datetime.datetime` subclasses returning ``-1`` for ``hour``, +``minute``, or ``second`` could incorrectly raise a :exc:`SystemError`. + +.. + +.. date: 2026-07-29-19-48-59 +.. gh-issue: 154871 +.. nonce: tgZILS +.. section: Library + +Fixed a crash in :meth:`asyncio.Task.get_context` when called on an +uninitialized task. + +.. + +.. date: 2026-07-29-18-30-00 +.. gh-issue: 154848 +.. nonce: Fr4meB +.. section: Library + +The :mod:`pickle` C accelerator now enforces frame boundaries when +unpickling, as the pure Python implementation already did. An argument that +straddles a frame boundary, or a frame that begins before the previous one +has ended, now raises :exc:`pickle.UnpicklingError` instead of being +silently read across the boundary. This prevents the loaded data from +diverging from the :mod:`pickletools` disassembly of the same pickle. + +.. + +.. date: 2026-07-29-11-25-00 +.. gh-issue: 109638 +.. nonce: Vt2Rn9 +.. section: Library + +Fix exponential time in :meth:`csv.Sniffer.sniff` for a sample which +contains many quote characters. A doubled quote character is now also +detected in a field which contains the delimiter or a line break. + +.. + +.. date: 2026-07-29-11-20-00 +.. gh-issue: 98820 +.. nonce: Qm7Hs4 +.. section: Library + +Fix quadratic time in :meth:`csv.Sniffer.sniff` for a sample which contains +quoted fields, in particular for a single column of quoted fields. + +.. + +.. date: 2026-07-26-00-00-00 +.. gh-issue: 154738 +.. nonce: Rd5Pxe +.. section: Library + +Fix :meth:`!ExternalEntityParserCreate` not propagating the reparse-deferral +setting to the subparser, which left :meth:`!GetReparseDeferralEnabled` +returning an uninitialized value. Patch by tonghuaroot. + +.. + +.. date: 2026-07-25-13-30-00 +.. gh-issue: 93251 +.. nonce: gAiErr +.. section: Library + +Fix :exc:`UnicodeDecodeError` in :mod:`socket` functions (such as +:func:`~socket.getaddrinfo` and :func:`~socket.gethostbyaddr`) when the +localized error message of the C library is not UTF-8: decode it from the +locale encoding. + +.. + +.. date: 2026-07-23-19-45-00 +.. gh-issue: 154551 +.. nonce: Ct7pL9 +.. section: Library + +Fix :func:`ctypes.util.find_library` returning ``None`` in non-UTF-8 +locales. + +.. + +.. date: 2026-07-23-06-53-01 +.. gh-issue: 79366 +.. nonce: 3gMT7I +.. section: Library + +Fixed a race condition in :mod:`logging`: if a handler was removed while a +record was being emitted, the following handlers of the same logger could be +skipped. + +.. + +.. date: 2026-07-22-13-01-24 +.. gh-issue: 73458 +.. nonce: byxSPi +.. section: Library + +Fix :func:`logging.config.listen`: it left the caller waiting for the +``ready`` event forever if the server could not be started, for example if +the port was invalid or already in use. It now also binds to an IPv6 address +if the host has no IPv4 address, for example if ``localhost`` is only +aliased to ``::1``. + +.. + +.. date: 2026-07-22-13-00-00 +.. gh-issue: 154460 +.. nonce: wCsFtM +.. section: Library + +Fix :func:`time.strftime` and :meth:`datetime.datetime.strftime` returning a +wrong ISO 8601 week number (``%V``) on OpenBSD. + +.. + +.. date: 2026-07-22-10-30-08 +.. gh-issue: 154435 +.. nonce: xCxm0T +.. section: Library + +Fix :func:`os.posix_fadvise` and :func:`os.posix_fallocate` on DragonFly +BSD: they raised :exc:`OSError` with a meaningless error code, because these +functions return -1 and set ``errno`` there. + +.. + +.. date: 2026-07-21-21-36-59 +.. gh-issue: 154399 +.. nonce: VSa6oH +.. section: Library + +Fix :mod:`venv` activation in a non-interactive csh: ``activate.csh`` no +longer fails when the ``prompt`` variable is not set. + +.. + +.. date: 2026-07-21-20-34-05 +.. gh-issue: 154389 +.. nonce: DlTiii +.. section: Library + +Fix :func:`uuid.uuid1` on OpenBSD: it returned a version 4 UUID, because +``uuid_create()`` generates random UUIDs on this platform. + +.. + +.. date: 2026-07-21-08-31-55 +.. gh-issue: 154324 +.. nonce: vDxV5U +.. section: Library + +Fix :func:`os.sendfile` on illumos: it no longer reports a successful +transfer when the underlying system call failed without writing any data. + +.. + +.. date: 2026-07-21-01-13-39 +.. gh-issue: 154307 +.. nonce: UNFKL4 +.. section: Library + +Fix :meth:`tempfile.TemporaryDirectory.cleanup` on DragonFly BSD, where +removing a file with the ``UF_NOUNLINK`` flag failed with ``EISDIR`` instead +of ``EPERM``. + +.. + +.. date: 2026-07-20-22-03-44 +.. gh-issue: 154291 +.. nonce: Mi5HeQ +.. section: Library + +Fix :func:`socket.has_dualstack_ipv6` to return ``False`` on platforms such +as DragonFly BSD where setting ``IPV6_V6ONLY`` to 0 silently has no effect. + +.. + +.. date: 2026-07-20-21-36-40 +.. gh-issue: 154283 +.. nonce: Xip7xE +.. section: Library + +On DragonFly BSD, :func:`threading.get_native_id` now returns a value that +is unique across processes, matching the other platforms. + +.. + +.. date: 2026-07-20-18-30-00 +.. gh-issue: 154258 +.. nonce: mmapresize +.. section: Library + +Fix a crash in :meth:`mmap.mmap.resize` on NetBSD when growing a shared +anonymous mapping. :meth:`!resize` now raises :exc:`ValueError` in this +case, as it already did on Linux. + +.. + +.. date: 2026-07-20-14-10-00 +.. gh-issue: 154225 +.. nonce: openpty +.. section: Library + +Fix :func:`os.openpty` on Solaris and illumos: it no longer leaves the +pseudo-terminal as the controlling terminal of the calling process. + +.. + +.. date: 2026-07-20-14-00-00 +.. gh-issue: 154227 +.. nonce: openpt +.. section: Library + +Fix :func:`os.posix_openpt` on OpenBSD, where it rejected the +:data:`~os.O_CLOEXEC` flag. + +.. + +.. date: 2026-07-20-12-40-00 +.. gh-issue: 145030 +.. nonce: TFJm6k +.. section: Library + +Fix :mod:`asyncio` write pipe transports for named FIFOs on macOS and +Solaris. Unread data sitting in the FIFO made the transport misinterpret a +poll event as the reader disconnecting, wrongly closing the transport. + +.. + +.. date: 2026-07-18-17-09-49 +.. gh-issue: 154001 +.. nonce: 3brrUv +.. section: Library + +Fix :func:`random.binomialvariate` raising :exc:`ZeroDivisionError` when +:func:`random.random` returns zero. + +.. + +.. date: 2026-07-18-10-52-10 +.. gh-issue: 153896 +.. nonce: 87oevp +.. section: Library + +Deduplicate unhashable args in :data:`typing.Literal`. + +.. + +.. date: 2026-07-17-20-56-32 +.. gh-issue: 153864 +.. nonce: WmA9By +.. section: Library + +On a wide :mod:`curses` build, :meth:`curses.window.insch` now inserts a +non-ASCII byte as the character it encodes in the window's encoding, +consistently with :meth:`~curses.window.addch`, instead of its code point. + +.. + +.. date: 2026-07-17-20-31-00 +.. gh-issue: 153862 +.. nonce: X3kjoY +.. section: Library + +On a wide :mod:`curses` build, :meth:`curses.window.inch` now returns the +locale-encoded byte of a non-ASCII character, matching +:meth:`~curses.window.instr`, instead of the low byte of its code point. + +.. + +.. date: 2026-07-15-21-56-40 +.. gh-issue: 146011 +.. nonce: nWmHif +.. section: Library + +Fix a heap-use-after-free in the C implementation of :mod:`decimal` when +calling :func:`repr` after deleting the :class:`~decimal.Context`. + +.. + +.. date: 2026-07-15-14-24-18 +.. gh-issue: 153761 +.. nonce: 8jqs67 +.. section: Library + +Fix cancelling :meth:`asyncio.loop.sock_accept` dropping a pending +connection. + +.. + +.. date: 2026-07-14-19-45-21 +.. gh-issue: 153695 +.. nonce: UYdZJZ +.. section: Library + +Hashing a :class:`sqlite3.Row` that contains an unhashable value now raises +:exc:`TypeError` instead of :exc:`SystemError`. Patch by tonghuaroot. + +.. + +.. date: 2026-07-13-10-27-08 +.. gh-issue: 153658 +.. nonce: A6o4n5 +.. section: Library + +Fix :meth:`sqlite3.Connection.iterdump` raising +:exc:`sqlite3.OperationalError` when a table name contains a single quote. +Patch by tonghuaroot. + +.. + +.. date: 2026-07-12-00-00-00 +.. gh-issue: 85943 +.. nonce: 8f906e +.. section: Library + +Fix :mod:`struct` functions raising :exc:`BytesWarning` under the ``-bb`` +command line option when a :class:`str` format is used after an equal +:class:`bytes` format (or vice versa). The internal format cache no longer +mixes :class:`str` and :class:`bytes` keys. + +.. + +.. date: 2026-07-09-16-35-47 +.. gh-issue: 153404 +.. nonce: daRkes +.. section: Library + +:class:`urllib.robotparser.RobotFileParser` now silently ignores a +``Crawl-delay`` or ``Request-rate`` value written with non-decimal digits +(such as ``U+00B2 SUPERSCRIPT TWO``) instead of raising :exc:`ValueError` +and aborting the parse of the whole ``robots.txt`` file. + +.. + +.. date: 2026-07-09-14-00-00 +.. gh-issue: 153417 +.. nonce: Bw7Rq2 +.. section: Library + +Error messages from :meth:`imaplib.IMAP4.select` and +:meth:`imaplib.IMAP4.uid` no longer raise :exc:`BytesWarning` under +:option:`!-bb` when the mailbox or command argument is :class:`bytes`. + +.. + +.. date: 2026-07-09-00-00-00 +.. gh-issue: 153406 +.. nonce: vyMmB6 +.. section: Library + +:func:`email.utils.parsedate_to_datetime` now raises :exc:`ValueError` +instead of :exc:`OverflowError` when the parsed year or timezone offset is +out of range, matching its documented behavior. + +.. + +.. date: 2026-07-08-01-47-15 +.. gh-issue: 153083 +.. nonce: XbKZCp +.. section: Library + +Defer GC tracking of an :class:`array.array` to the end of its construction. +Patch by Donghee Na. + +.. + +.. date: 2026-07-07-17-50-54 +.. gh-issue: 143990 +.. nonce: FoNtCf +.. section: Library + +A :class:`tkinter.font.Font` created from a named font, including by +:meth:`~tkinter.font.Font.copy`, now copies its configured options rather +than the options resolved by Tcl's ``font actual``, preserving a size +specified in pixels (a negative size). + +.. + +.. date: 2026-07-07-02-26-43 +.. gh-issue: 153210 +.. nonce: LUXIcm +.. section: Library + +Fix crash on :mod:`array` import under a memory pressure. + +.. + +.. date: 2026-07-06-12-00-00 +.. gh-issue: 153200 +.. nonce: isqrtLt +.. section: Library + +Fix :func:`math.isqrt` returning an incorrect result for arguments not less +than 2**64 that are instances of an :class:`int` subclass with an overridden +comparison operator. + +.. + +.. date: 2026-07-05-16-09-31 +.. gh-issue: 153068 +.. nonce: huY9Jh +.. section: Library + +Fix :meth:`!cProfile.Profile.enable` to no longer overwrite errors from +:mod:`sys.monitoring`. + +.. + +.. date: 2026-07-05-12-00-00 +.. gh-issue: 153056 +.. nonce: tMpLat +.. section: Library + +Fix :class:`string.Template` raising a spurious :exc:`ValueError` when the +*pattern* attribute is a compiled regular expression object, which the +documentation allows. + +.. + +.. date: 2026-07-04-13-00-00 +.. gh-issue: 135661 +.. nonce: CIkADG +.. section: Library + +Fix :class:`html.parser.HTMLParser`: an abruptly closed empty comment +(``<!-->`` or ``<!--->``) no longer extends up to a later ``-->`` in the +same :meth:`~html.parser.HTMLParser.feed` call. + +.. + +.. date: 2026-07-03-21-10-00 +.. gh-issue: 54930 +.. nonce: hq09Er +.. section: Library + +Error responses of :class:`http.server.BaseHTTPRequestHandler` to malformed +request lines now include a status line and headers instead of being sent in +the bare HTTP/0.9 style. Only a valid HTTP/0.9 request (a two-word ``GET`` +request line) now receives an HTTP/0.9 style response. + +.. + +.. date: 2026-07-03-14-54-33 +.. gh-issue: 152951 +.. nonce: u8tPCI +.. section: Library + +:class:`collections.deque` prevent rare crash when calling ``extend`` under +high memory pressure conditions. + +.. + +.. date: 2026-07-02-22-19-53 +.. gh-issue: 150880 +.. nonce: vPZ7jK +.. section: Library + +Normalize non-extended Windows paths before appending the wildcard used by +``os.listdir()`` and ``os.scandir()``, making paths with trailing spaces +behave consistently with other filesystem APIs. + +.. + +.. date: 2026-07-02-13-30-00 +.. gh-issue: 152849 +.. nonce: K9dRvP +.. section: Library + +Out-of-range float and integer timestamps now raise :exc:`OverflowError` +with the same message. Patch by tonghuaroot. + +.. + +.. date: 2026-07-02-12-00-00 +.. gh-issue: 152847 +.. nonce: PitKqc +.. section: Library + +Reject a POSIX TZ transition rule with non-digit characters in the +day-of-year field in the pure-Python :mod:`zoneinfo` parser. Patch by +tonghuaroot. + +.. + +.. date: 2026-07-01-12-00-00 +.. gh-issue: 108280 +.. nonce: Nq8vTr +.. section: Library + +Connecting :mod:`imaplib` to a server that does not send a valid IMAP4 +greeting (for example a POP3 server answering on the IMAP port) now raises +an error reporting the server's response instead of ``imaplib.IMAP4.error: +None``. + +.. + +.. date: 2026-07-01-11-29-13 +.. gh-issue: 151126 +.. nonce: eElGy5 +.. section: Library + +Fix a crash caused by failing to set :exc:`MemoryError` on allocation +failure when passing :class:`ctypes.Structure` or :class:`ctypes.Union` +instances by value to ctypes foreign functions. + +.. + +.. date: 2026-07-01-10-30-00 +.. gh-issue: 63121 +.. nonce: Rm4tZp +.. section: Library + +:mod:`imaplib` now refreshes the cached capability list after a successful +:meth:`~imaplib.IMAP4.login` or :meth:`~imaplib.IMAP4.authenticate`, using +the ``CAPABILITY`` response sent by the server or, if none was sent, by +querying it, so that capabilities that become available only after +authentication (such as ``ENABLE`` on Gmail) are recognized. Capabilities +advertised in the server greeting are now also used, avoiding a redundant +``CAPABILITY`` command. + +.. + +.. date: 2026-07-01-10-00-00 +.. gh-issue: 88574 +.. nonce: Kz3wQm +.. section: Library + +:mod:`imaplib` no longer fails when a server sends a spurious blank line +after the counted data of a literal, including after a literal that +terminates a response (such as a mailbox name returned by ``LIST``). Such +blank lines are now skipped without swallowing the following line. + +.. + +.. date: 2026-06-30-21-40-00 +.. gh-issue: 152502 +.. nonce: Kq3Vn7 +.. section: Library + +Detect the :mod:`curses` mouse interface (:func:`~curses.getmouse`, the +``BUTTON*`` constants, and others) with a configure capability probe or +library macros instead of gating it on ncurses-specific macros. It is now +also available with other curses implementations that provide it, such as +NetBSD curses and PDCurses (the latter underpins ``windows-curses``). + +.. + +.. date: 2026-06-30-12-00-00 +.. gh-issue: 40038 +.. nonce: qK7mGv +.. section: Library + +:mod:`imaplib` now again quotes command arguments when necessary, for +example mailbox names containing a space. Such quoting was inadvertently +disabled when the module was ported to Python 3, and the arguments are now +quoted according to the :rfc:`3501` grammar. For backward compatibility, an +argument already enclosed in double quotes is left unchanged, so code that +quotes arguments itself keeps working. + +.. + +.. date: 2026-06-29-22-16-57 +.. gh-issue: 50966 +.. nonce: Tq5mLp +.. section: Library + +Fix unbounded recursion in :mod:`turtle` when a mouse event handler that +moves the turtle is reentered while the screen is being redrawn, for example +with ``screen.ondrag(turtle.goto)``. This could previously crash the +interpreter. + +.. + +.. date: 2026-06-28-11-00-40 +.. gh-issue: 78335 +.. nonce: Kp3mWq +.. section: Library + +Update the docstrings of :mod:`tkinter` and :mod:`tkinter.ttk` widget +classes to list all supported widget options, including options added in Tk +9.0 and 9.1. ``tkinter.Menubutton`` and ``tkinter.Message`` previously had +no option list at all. + +.. + +.. date: 2026-06-27-17-19-09 +.. gh-issue: 151126 +.. nonce: huUyOM +.. section: Library + +Fix two crashes in :mod:`tkinter` and :mod:`socket` modules initialization +under a memory pressure. Sets missing :exc:`MemoryError`. + +.. + +.. date: 2026-06-27-12-30-00 +.. gh-issue: 133031 +.. nonce: Na8Bit +.. section: Library + +:class:`curses.textpad.Textbox` now enters and reads back the non-ASCII +characters of an 8-bit locale encoding, instead of mangling them with a +7-bit mask. + +.. + +.. date: 2026-06-26-23-56-40 +.. gh-issue: 71880 +.. nonce: 782D31 +.. section: Library + +:class:`curses.textpad.Textbox` now lets the lower-right cell of the window +be edited. Writing it with :meth:`~curses.window.addch` would move the +cursor past the end of the window, raising an error and scrolling a +scrollable window, so it is now written with :meth:`~curses.window.insch`, +which keeps the cursor in place. + +.. + +.. date: 2026-06-26-16-30-00 +.. gh-issue: 83274 +.. nonce: Kx9mQv +.. section: Library + +Deallocating a :mod:`tkinter` application from a thread other than the one +it was created in no longer crashes the interpreter. The underlying Tcl +interpreter is leaked instead, and a :exc:`RuntimeWarning` is reported. + +.. + +.. date: 2026-06-26-15-30-00 +.. gh-issue: 88758 +.. nonce: Qw7nLp +.. section: Library + +:meth:`!tkinter.Misc.focus_get`, :meth:`!focus_displayof`, +:meth:`!focus_lastfor` and :meth:`!winfo_containing` now return ``None`` +instead of raising :exc:`KeyError` when the widget was not created by +:mod:`tkinter` (for example a torn-off menu). + +.. + +.. date: 2026-06-26-15-00-00 +.. gh-issue: 38464 +.. nonce: yDPjKH +.. section: Library + +:meth:`!tkinter.Misc.nametowidget` now resolves the auto-generated names of +cloned menus (a menu used as a menubar or a cascade) back to the original +widget. + +.. + +.. date: 2026-06-26-13-39-11 +.. gh-issue: 152248 +.. nonce: N2Rmaf +.. section: Library + +Make the C and pure-Python :mod:`zoneinfo` parsers validate POSIX TZ +abbreviations consistently, rejecting unquoted abbreviations with non-letter +characters and empty quoted abbreviations. Patch by tonghuaroot. + +.. + +.. date: 2026-06-26-13-10-00 +.. gh-issue: 80937 +.. nonce: Hq3mNp +.. section: Library + +Fix a memory leak in :mod:`tkinter` when a Tcl command created with +``createcommand`` was not explicitly removed before the interpreter was +deleted. The command no longer keeps the interpreter alive through a +reference cycle. + +.. + +.. date: 2026-06-26-12-50-26 +.. gh-issue: 152246 +.. nonce: MfXMd1 +.. section: Library + +Fix the pure-Python :mod:`zoneinfo` parser accepting an invalid POSIX TZ +transition rule with a non-period separator. Patch by tonghuaroot. + +.. + +.. date: 2026-06-25-14-32-43 +.. gh-issue: 139816 +.. nonce: Lq2vXa +.. section: Library + +Fix a hang in :mod:`tkinter` on interactive Python built without +:mod:`readline`. An exception raised in a callback no longer causes the +event loop to stop and wait for the user to press Enter; pending callbacks +now keep running until input is actually available on stdin. + +.. + +.. date: 2026-06-25-14-32-42 +.. gh-issue: 139145 +.. nonce: kT9rmP +.. section: Library + +Fix a busy loop in :mod:`tkinter` on interactive Python. When a Tcl command +running its own event loop (such as ``vwait`` or :meth:`!wait_variable`) was +active and input arrived on stdin, the event loop kept spinning at 100% CPU. +The stdin file handler is now removed as soon as input is available. Based +on a patch by Michiel de Hoon. + +.. + +.. date: 2026-06-25-12-00-00 +.. gh-issue: 152212 +.. nonce: Zk7Qm2 +.. section: Library + +Fix the pure-Python :mod:`zoneinfo` parser accepting a POSIX TZ string with +a ``std`` abbreviation but no offset. This is invalid per POSIX and now +raises :exc:`ValueError`, matching the C accelerator. Patch by tonghuaroot. + +.. + +.. date: 2026-06-25-10-07-54 +.. gh-issue: 152156 +.. nonce: gscPU9 +.. section: Library + +Fix a possible crash in :func:`!_interpreters.create` under limited memory +conditions. + +.. + +.. date: 2026-06-25-07-08-17 +.. gh-issue: 152157 +.. nonce: dt5Ef0 +.. section: Library + +The C implementations of :meth:`~datetime.datetime.fromisoformat` and +:meth:`~datetime.time.fromisoformat` now reject a decimal separator that is +not followed by any fractional digit before a timezone designator. + +.. + +.. date: 2026-06-25-01-00-43 +.. gh-issue: 151763 +.. nonce: wWeHBe +.. section: Library + +Fix crash in :func:`!_interpqueues.create` whe :exc:`MemoryError` happens on +queue creation. + +.. + +.. date: 2026-06-24-22-16-35 +.. gh-issue: 105895 +.. nonce: hRkuEw +.. section: Library + +Add :keyword:`match` and :keyword:`case` to the list of supported topics by +:func:`help`. + +.. + +.. date: 2026-06-24-12-00-00 +.. gh-issue: 152079 +.. nonce: f1tzus +.. section: Library + +Fix :meth:`datetime.datetime.fromisoformat` in the C implementation dropping +the sub-second part of a UTC offset whose whole-second part is zero, +matching the pure-Python implementation. + +.. + +.. date: 2026-06-24-12-00-00 +.. gh-issue: 152052 +.. nonce: yBssDE +.. section: Library + +The :mod:`json` C accelerator now correctly reports an unterminated string +for a ``\uXXXX`` escape at the end of the input. + +.. + +.. date: 2026-06-24-10-46-35 +.. gh-issue: 152060 +.. nonce: f2asrt +.. section: Library + +Fix :meth:`datetime.datetime.fromisoformat` raising :exc:`AssertionError` +instead of :exc:`ValueError` for some malformed strings in the pure-Python +implementation, matching the C implementation. + +.. + +.. date: 2026-06-23-13-27-14 +.. gh-issue: 126219 +.. nonce: kOfv2g +.. section: Library + +Fixed a crash in :class:`tkinter.Tk` when *className* contains a non-BMP +character and tkinter is built against Tcl/Tk 8.x. Such a name is now +rejected with a :exc:`ValueError`. + +.. + +.. date: 2026-06-22-18-01-00 +.. gh-issue: 151955 +.. nonce: 6u5iwm +.. section: Library + +Allow more types to be used in the ``bound`` argument to +:class:`typing.ParamSpec`. + +.. + +.. date: 2026-06-21-15-50-24 +.. gh-issue: 86165 +.. nonce: dyac1G +.. section: Library + +Fix :func:`imaplib.Time2Internaldate` to use the local timezone offset for +``time.struct_time`` values with ``tm_gmtoff`` set to ``None``, as returned +by ``datetime.datetime.timetuple()``. Contributed by Xiao Yuan. + +.. + +.. date: 2026-06-20-21-15-13 +.. gh-issue: 151814 +.. nonce: OIbgsO +.. section: Library + +Fix unbounded memory growth in :class:`io.TextIOWrapper` when repeatedly +writing an empty string. + +.. + +.. date: 2026-06-19-07-26-20 +.. gh-issue: 151695 +.. nonce: IBDlkN +.. section: Library + +Fix a use-after-free in the :mod:`curses` module. The encoding of the +initial screen, used by :func:`curses.unctrl` and :func:`curses.ungetch` to +encode non-ASCII characters, is now kept as a private copy instead of a +borrowed pointer to a window object that may be deallocated. + +.. + +.. date: 2026-06-18-23-59-46 +.. gh-issue: 151596 +.. nonce: 5ma144 +.. section: Library + +Add missing ``size`` positional argument to the pure-Python implementation +of :meth:`io.TextIOBase.readline`. + +.. + +.. date: 2026-06-17-00-00-00 +.. gh-issue: 148660 +.. nonce: odcopy +.. section: Library + +Fix a crash in :meth:`!collections.OrderedDict.copy` when a key's ``__eq__`` +or a subclass method mutates the dict during the copy. Now raises +:exc:`RuntimeError` instead, as iteration does. + +.. + +.. date: 2026-06-15-15-32-36 +.. gh-issue: 151497 +.. nonce: 1cfmSV +.. section: Library + +Opening a :mod:`tarfile` archive no longer attempts to pre-allocate a huge +buffer when a crafted or truncated member claims an oversized extended +header (a GNU long name/link or a pax header). The extended header is now +read in bounded chunks, so its size field can no longer trigger memory +exhaustion. + +.. + +.. date: 2026-06-12-22-46-31 +.. gh-issue: 151403 +.. nonce: DalZWh +.. section: Library + +Fixed a crash in :class:`subprocess.Popen` (and +``_posixsubprocess.fork_exec``) when an ``argv`` item's +:meth:`~os.PathLike.__fspath__` concurrently mutates the ``args`` sequence +being converted. + +.. + +.. date: 2026-06-12-00-04-34 +.. gh-issue: 151126 +.. nonce: aHaBYq +.. section: Library + +Fix crash on unset :exc:`MemoryError` on allocation failure in +:func:`ctypes.get_errno`. + +.. + +.. date: 2026-06-12-00-00-00 +.. gh-issue: 151416 +.. nonce: spawnUA +.. section: Library + +Fix a crash in :func:`os.spawnv` and :func:`os.spawnve` when an *argv* +item's :meth:`~os.PathLike.__fspath__` method mutates the *argv* list during +argument conversion. :func:`!os.spawnv` argument conversion errors other +than :exc:`TypeError`, such as the :exc:`ValueError` for an embedded null, +are no longer replaced with a generic :exc:`TypeError`. + +.. + +.. date: 2026-06-11-21-43-24 +.. gh-issue: 151337 +.. nonce: JSVV18 +.. section: Library + +Avoid possible memory leak in ``tkinter.c`` on Windows. + +.. + +.. date: 2026-06-11-16-25-38 +.. gh-issue: 151126 +.. nonce: bh_Usy +.. section: Library + +Fix a crash when :exc:`MemoryError` in :func:`!os._path_splitroot` was not +set properly. + +.. + +.. date: 2026-06-11-10-00-00 +.. gh-issue: 119710 +.. nonce: Qz7Kp2 +.. section: Library + +Fix :mod:`asyncio` subprocess :meth:`~asyncio.subprocess.Process.wait` +hanging when the process has exited but one of its pipes is kept open by an +inherited child process (so the pipe never reaches EOF). ``wait()`` now +returns as soon as the process exits, regardless of the pipes' state. + +.. + +.. date: 2026-06-11-00-00-00 +.. gh-issue: 151295 +.. nonce: NQYUzW +.. section: Library + +Fixed a crash (use-after-free) in :meth:`bytes.join` and +:meth:`bytearray.join` that could occur if an item's +:meth:`~object.__buffer__` concurrently mutates the sequence being joined. +The mutation is now reported as a :exc:`RuntimeError` instead. + +.. + +.. date: 2026-06-10-00-00-02 +.. gh-issue: 109940 +.. nonce: Cx1099 +.. section: Library + +Fix Windows :mod:`venv` activation in ``cmd.exe`` to respect +``VIRTUAL_ENV_DISABLE_PROMPT``. + +.. + +.. date: 2026-06-10-00-00-01 +.. gh-issue: 117807 +.. nonce: Cx1178 +.. section: Library + +Fix :mod:`mimetypes` initialization from MIME map files containing invalid +UTF-8 bytes. + +.. + +.. date: 2026-06-09-12-00-00 +.. gh-issue: 150771 +.. nonce: K7mNx2 +.. section: Library + +Fix serialization of :mod:`email` messages using the ``shift_jis`` or +``euc-jp`` charsets: ``set_content()`` now encodes the payload using the +output charset, so ``str(m)`` no longer raises :exc:`UnicodeEncodeError`. + +.. + +.. date: 2026-05-28-00-00-00 +.. gh-issue: 150484 +.. nonce: XxYyZz +.. section: Library + +Fix :func:`unittest.mock.mock_open` ``__exit__`` raising ``TypeError`` when +used with :class:`contextlib.ExitStack`. + +.. + +.. date: 2026-05-06-23-13-40 +.. gh-issue: 149319 +.. nonce: PLM93t +.. section: Library + +The :mod:`asyncio` REPL now ignores :envvar:`PYTHONSTARTUP` and +:envvar:`PYTHON_BASIC_REPL` when :option:`-E` or :option:`-I` is used. Patch +by Jonathan Dung. + +.. + +.. date: 2026-05-02-13-54-19 +.. gh-issue: 149221 +.. nonce: __KOks +.. section: Library + +Catch rare math domain error for :func:`random.binomialvariate`. + +.. + +.. date: 2026-04-23-12-50-15 +.. gh-issue: 148441 +.. nonce: zvpCkR +.. section: Library + +:mod:`xml.parsers.expat`: prevent a crash in +:meth:`~xml.parsers.expat.xmlparser.CharacterDataHandler` when the character +data size exceeds the parser's :attr:`buffer size +<xml.parsers.expat.xmlparser.buffer_size>`. + +.. + +.. date: 2026-03-26-00-00-00 +.. gh-issue: 47005 +.. nonce: xxc89c +.. section: Library + +Fix :meth:`!urllib.request.AbstractHTTPHandler.do_open` to give regular +headers set via :meth:`~urllib.request.Request.add_header` priority over +unredirected headers, consistent with +:meth:`~urllib.request.Request.get_header` and +:meth:`~urllib.request.Request.header_items`. + +.. + +.. date: 2026-03-11-10-25-32 +.. gh-issue: 123720 +.. nonce: TauFRx +.. section: Library + +asyncio: Fix :func:`asyncio.Server.serve_forever` shutdown regression. Since +3.12, cancelling ``serve_forever()`` could hang waiting for a handler +blocked on a read from a client that never closed (effectively requiring two +interrupts to stop); the shutdown sequence now ensures client streams are +closed so ``serve_forever()`` exits promptly and handlers observe EOF. + +.. + +.. date: 2026-01-18-06-42-47 +.. gh-issue: 143988 +.. nonce: MtLtCP +.. section: Library + +Fixed crashes in :meth:`socket.socket.sendmsg` and +:meth:`socket.socket.recvmsg_into` that could occur if buffer sequences are +concurrently mutated. + +.. + +.. date: 2025-12-23-11-43-05 +.. gh-issue: 130796 +.. nonce: TkzUGx +.. section: Library + +Undeprecate the :func:`locale.getdefaultlocale` function. Patch by Victor +Stinner. + +.. + +.. date: 2025-11-02-05-28-56 +.. gh-issue: 115634 +.. nonce: JbcNnF +.. section: Library + +Fix a deadlock in :class:`concurrent.futures.ProcessPoolExecutor` when using +``max_tasks_per_child``, present since the feature was introduced in Python +3.11. The executor stopped scheduling queued tasks after a worker process +exited upon reaching its task limit. Based on a fix proposed by Tabrez +Mohammed. + +.. + +.. date: 2025-09-05-20-50-35 +.. gh-issue: 79638 +.. nonce: Y-JfaH +.. section: Library + +Disallow all access in :mod:`urllib.robotparser` if the ``robots.txt`` file +is unreachable due to server or network errors. + +.. + +.. date: 2024-06-18-04-08-37 +.. gh-issue: 120665 +.. nonce: x7T1hV +.. section: Library + +Fixed an issue where ``unittest`` loaders would load and instantiate +:class:`unittest.TestCase`-derived subclasses that are also abstract base +classes, which can't be instantiated. + +.. + +.. date: 2023-06-12-21-31-02 +.. gh-issue: 105708 +.. nonce: 5fFwP8 +.. section: Library + +Accept an uppercase V prefix in IPvFuture addresses in +:func:`urllib.parse.urlsplit`. + +.. + +.. date: 2023-04-27-14-50-03 +.. gh-issue: 103925 +.. nonce: khC-El +.. section: Library + +Fix :meth:`csv.Sniffer.sniff` for a sample with ``\r\n`` line endings in +which a quoted field ends a line: a letter could be detected as the +delimiter. + +.. + +.. date: 2023-01-23-21-23-50 +.. gh-issue: 101267 +.. nonce: _f-cFH +.. section: Library + +When a worker process terminates unexpectedly, +:class:`concurrent.futures.ProcessPoolExecutor` now sets a separate +:exc:`~concurrent.futures.process.BrokenProcessPool` exception on each +pending future instead of sharing a single instance among them all. Sharing +one exception produced malformed tracebacks: each :meth:`Future.result() +<concurrent.futures.Future.result>` call re-raised the same object, +appending another copy of the traceback to it. + +.. + +.. date: 2026-07-01-19-00-00 +.. gh-issue: 82183 +.. nonce: rNsTrt +.. section: IDLE + +When the shell is busy running code, using "Run... Customized" with "Restart +shell" unchecked now reports that the shell is executing instead of +restarting it anyway. + +.. + +.. date: 2026-07-01-18-00-00 +.. gh-issue: 83653 +.. nonce: cFgInt +.. section: IDLE + +Blanking an integer entry in IDLE's Settings dialog, such as "Auto squeeze +min lines", no longer saves an empty string as an invalid configuration +value. + +.. + +.. date: 2026-07-01-17-00-00 +.. gh-issue: 65339 +.. nonce: oUtTxt +.. section: IDLE + +Saving the IDLE Shell or an Output window now defaults to a ``.txt`` +extension and lists text files before Python files, since their content is +not Python source. + +.. + +.. date: 2026-07-01-16-00-00 +.. gh-issue: 80504 +.. nonce: gReP +.. section: IDLE + +The "In files:" field of IDLE's Find in Files dialog now always contains a +full directory path, even for an unsaved editor or the Shell. This shows in +the grep output which directory was searched. + +.. + +.. date: 2026-07-01-15-00-00 +.. gh-issue: 134300 +.. nonce: iDlPaT +.. section: IDLE + +Do not add the ``idlelib`` directory to the path of the IDLE user process. +User code run in IDLE can no longer import ``idlelib`` submodules as +top-level modules, such as ``import help``. + +.. + +.. date: 2026-07-01-14-00-00 +.. gh-issue: 89360 +.. nonce: mUlTiC +.. section: IDLE + +Fix a rare crash in the IDLE editor when the completion window is closed: +deleting a key binding for a sequence that is not bound to the virtual event +is now ignored instead of raising a ``ValueError``. + +.. + +.. date: 2026-07-01-12-00-00 +.. gh-issue: 71956 +.. nonce: rPlAlL +.. section: IDLE + +Fix Replace All in the IDLE editor's Replace dialog when the search +direction is "Up" and "Wrap around" is off: it now replaces all matches +above the current position instead of only the first one. + +.. + +.. date: 2026-07-01-00-15-58 +.. gh-issue: 152728 +.. nonce: yxIhMN +.. section: IDLE + +Move functions run.fix_scaling, editor.fixwordbreaks (as fix_word_breaks) +and pyshell.fix_x11_paste to idlelib.util. + +.. + +.. date: 2026-07-01-00-00-00 +.. gh-issue: 66331 +.. nonce: wMcLaS +.. section: IDLE + +Set the ``WM_CLASS`` window property of IDLE's windows to ``Idle`` on X11, +so that window managers group and label them correctly instead of using the +default ``Toplevel``. + +.. + +.. date: 2026-06-28-06-46-46 +.. gh-issue: 85320 +.. nonce: Hq2vKn +.. section: IDLE + +IDLE now reads and writes its configuration files and the breakpoints file +using UTF-8 instead of the locale encoding. This keeps non-ASCII data (such +as non-ASCII paths) from being corrupted and makes the files portable +between environments. + +.. + +.. date: 2026-03-07-20-47-40 +.. gh-issue: 94523 +.. nonce: dq7m2k +.. section: IDLE + +Detect file if modified at local disk and prompt to ask refresh. Patch by +Shixian Li. + +.. + +.. date: 2025-10-05-19-33-39 +.. gh-issue: 139551 +.. nonce: TX9BRc +.. section: IDLE + +Support rendering :exc:`BaseExceptionGroup` in IDLE. + +.. + +.. date: 2021-10-03-21-55-34 +.. gh-issue: 89520 +.. nonce: etEExa +.. section: IDLE + +Make IDLE extension configuration look at user config files, allowing +user-installed extensions to have settings and key bindings defined in +~/.idlerc. + +.. + +.. date: 2026-07-17-22-33-43 +.. gh-issue: 118150 +.. nonce: m7iFdP +.. section: Documentation + +Clarify in the :mod:`difflib` documentation what *junk* actually does, its +drawbacks, and how to control it. + +.. + +.. date: 2026-06-17-12-00-00 +.. gh-issue: 86726 +.. nonce: __bOgH +.. section: Documentation + +Greatly expand the :mod:`tkinter` documentation to cover the full public API +of the package and its submodules. The descriptions are oriented towards +Python rather than Tcl/Tk, with corrected return types and +``versionadded``/``versionchanged`` information. + +.. + +.. date: 2026-08-02-17-55-29 +.. gh-issue: 154937 +.. nonce: m9IBba +.. section: Core and Builtins + +Fix a data race on thread handle identifiers when ``_thread._shutdown()`` +runs concurrently with the startup of non-daemon threads in the +free-threaded build. + +.. + +.. date: 2026-07-26-09-07-41 +.. gh-issue: 154709 +.. nonce: M2uZ76 +.. section: Core and Builtins + +Fix an out-of-bounds access in reverse dictionary iterators when the +underlying dictionary is cleared and modified after the iterator is created. + +.. + +.. date: 2026-07-20-20-16-08 +.. gh-issue: 154275 +.. nonce: l961cA +.. section: Core and Builtins + +Fix a crash when getting deeply nested ``__parameters__`` from a +:class:`types.GenericAlias` objects. + +.. + +.. date: 2026-06-30-14-00-00 +.. gh-issue: 152682 +.. nonce: yId7e5 +.. section: Core and Builtins + +Fix NULL pointer dereference in :func:`compile` when a reserved name (e.g. +``__classdict__``) is used as a type parameter name and memory allocation +fails while formatting the error message. + +.. + +.. date: 2026-06-29-23-29-14 +.. gh-issue: 152635 +.. nonce: O21J0O +.. section: Core and Builtins + +Fix a crash caused when running out of memory creating a +:mod:`!_interpchannels` channel. Now a :exc:`MemoryError` is correctly +raised. + +.. + +.. date: 2026-06-27-10-05-12 +.. gh-issue: 152375 +.. nonce: L-ZBk6 +.. section: Core and Builtins + +Fix undefined behaviour when a :mod:`sys.monitoring` callback raised an +exception while the program was following a branch or loop. + +.. + +.. date: 2026-06-26-22-03-16 +.. gh-issue: 152235 +.. nonce: ZKWiWk +.. section: Core and Builtins + +Defer GC tracking of :meth:`set.intersection`, :meth:`set.difference`, +:meth:`set.symmetric_difference`, :meth:`set.union` and ``set.__sub__``. +Patch by Donghee Na. + +.. + +.. date: 2026-06-26-05-49-13 +.. gh-issue: 152235 +.. nonce: YU20T9 +.. section: Core and Builtins + +Defer GC tracking of a :class:`set` or :class:`frozenset` to the end of its +construction from iterable. Patch by Donghee Na. + +.. + +.. date: 2026-06-24-11-12-56 +.. gh-issue: 151905 +.. nonce: j32skf +.. section: Core and Builtins + +Fix OOM error handling in :c:func:`PyFrame_GetBack` to propagate exceptions +instead of masking them as None. + +.. + +.. date: 2026-06-23-12-03-55 +.. gh-issue: 151763 +.. nonce: K7QfWG +.. section: Core and Builtins + +Fix a potential crash in :func:`compile`, :func:`exec`, :func:`eval` and +:func:`ast.parse` when an allocation fails: the parser or compiler could +return without setting an exception. + +.. + +.. date: 2026-06-22-14-48-22 +.. gh-issue: 151912 +.. nonce: YcxfnU +.. section: Core and Builtins + +Fixed a crash in ``type()`` when selecting a metaclass whose ``tp_new`` slot +is ``NULL``. Such metaclasses are now rejected with ``TypeError`` instead of +causing a NULL pointer dereference. + +.. + +.. date: 2026-06-21-16-00-00 +.. gh-issue: 151773 +.. nonce: mN4kRt +.. section: Core and Builtins + +Fix a crash in :func:`contextvars.ContextVar.set` when memory allocation +fails. + +.. + +.. date: 2026-06-18-16-00-10 +.. gh-issue: 151126 +.. nonce: tBqn6I +.. section: Core and Builtins + +Fix a crash when sharing :class:`memoryview` objects between interpreters +fails due to running out of memory. It now raises a proper +:exc:`MemoryError`. + +.. + +.. date: 2026-06-17-16-46-07 +.. gh-issue: 151126 +.. nonce: vhTL0T +.. section: Core and Builtins + +Avoid possible crash in ``_winapi.c`` where a device has no memory left. Now +it properly raises a :exc:`MemoryError`. Patch by Ivy Xu. + +.. + +.. date: 2026-06-10-15-42-46 +.. gh-issue: 151253 +.. nonce: 7MMQ8P +.. section: Core and Builtins + +If ``import encodings`` (first import) fails at Python startup, dump the +Python path configuration to help users debugging their configuration. Patch +by Victor Stinner. + +.. + +.. date: 2026-06-09-10-28-30 +.. gh-issue: 151126 +.. nonce: DKa6Sl +.. section: Core and Builtins + +Fix a crash, when there's no memory left on a device, which happened in +:mod:`!_interpchannels` module. + +Now it raises proper :exc:`MemoryError` errors. + +.. + +.. date: 2026-06-08-05-31-22 +.. gh-issue: 151065 +.. nonce: _o_31F +.. section: Core and Builtins + +Fix memory leak when using the :ref:`mimalloc memory allocator <mimalloc>`. + +.. + +.. date: 2026-06-05-22-52-41 +.. gh-issue: 150988 +.. nonce: fDKfMJ +.. section: Core and Builtins + +Fix a reference leak in :exc:`OSError` when attributes are set before +``super().__init__()``. + +.. + +.. date: 2026-05-11-15-58-23 +.. gh-issue: 149689 +.. nonce: 9Ht49z +.. section: Core and Builtins + +Fix missing error propagation in parser action helpers when memory +allocation fails. Patch by Thomas Kowalski. + +.. + +.. date: 2026-07-09-17-33-29 +.. gh-issue: 152132 +.. nonce: Ma8MJZ +.. section: C API + +Fix :c:func:`Py_RunMain` to return an exit code, rather than calling +:c:func:`Py_Exit`, when running a script, a command, or the REPL. Patch by +Victor Stinner. + +.. + +.. date: 2026-07-19-12-16-31 +.. gh-issue: 154070 +.. nonce: f5da07 +.. section: Build + +Build the :mod:`curses` module against a wide-character capable ncurses even +when it is not named ``ncursesw`` -- for example the pkgsrc ncurses on +NetBSD and illumos, or the system ncurses on macOS. Such a library +previously produced a narrow build. + +.. + +.. date: 2026-07-11-07-26-16 +.. gh-issue: 126877 +.. nonce: Zt7Kq2 +.. section: Build + +Fix the :program:`configure` check for Tcl/Tk which could wrongly succeed +with optimizing compilers when the libraries are missing. + +.. + +.. date: 2026-07-09-22-45-00 +.. gh-issue: 153438 +.. nonce: Qr7N2p +.. section: Build + +Update Windows build and installer tooling and documentation to use the +current download URL for ``nuget.exe``. + +.. + +.. date: 2026-06-28-16-17-55 +.. gh-issue: 152502 +.. nonce: 6SNqMg +.. section: Build + +The :mod:`curses` module now detects ``set_escdelay()``, ``set_tabsize()`` +and the ``ESCDELAY`` and ``TABSIZE`` variables with :program:`configure` +capability probes instead of the ncurses-specific ``NCURSES_EXT_FUNCS`` +macro, so they are exposed when building against other curses +implementations such as NetBSD curses that provide them. + +.. + +.. date: 2026-03-07-02-09-57 +.. gh-issue: 138800 +.. nonce: VD8qbz +.. section: Build + +Fix library name in python3.pc on Android. + +.. + +.. date: 2024-11-22-08-46-46 +.. gh-issue: 115869 +.. nonce: UVLSKd +.. section: Build + +Make ``jit_stencils.h`` (which is produced during JIT builds) reproducible. diff --git a/Misc/NEWS.d/next/Build/2024-11-22-08-46-46.gh-issue-115869.UVLSKd.rst b/Misc/NEWS.d/next/Build/2024-11-22-08-46-46.gh-issue-115869.UVLSKd.rst deleted file mode 100644 index 9e8a078983f20b5..000000000000000 --- a/Misc/NEWS.d/next/Build/2024-11-22-08-46-46.gh-issue-115869.UVLSKd.rst +++ /dev/null @@ -1 +0,0 @@ -Make ``jit_stencils.h`` (which is produced during JIT builds) reproducible. diff --git a/Misc/NEWS.d/next/Build/2026-03-07-02-09-57.gh-issue-138800.VD8qbz.rst b/Misc/NEWS.d/next/Build/2026-03-07-02-09-57.gh-issue-138800.VD8qbz.rst deleted file mode 100644 index 54b084d9d61277f..000000000000000 --- a/Misc/NEWS.d/next/Build/2026-03-07-02-09-57.gh-issue-138800.VD8qbz.rst +++ /dev/null @@ -1 +0,0 @@ -Fix library name in python3.pc on Android. diff --git a/Misc/NEWS.d/next/Build/2026-06-28-16-17-55.gh-issue-152502.6SNqMg.rst b/Misc/NEWS.d/next/Build/2026-06-28-16-17-55.gh-issue-152502.6SNqMg.rst deleted file mode 100644 index cc0fabed10f1261..000000000000000 --- a/Misc/NEWS.d/next/Build/2026-06-28-16-17-55.gh-issue-152502.6SNqMg.rst +++ /dev/null @@ -1,5 +0,0 @@ -The :mod:`curses` module now detects ``set_escdelay()``, ``set_tabsize()`` and -the ``ESCDELAY`` and ``TABSIZE`` variables with :program:`configure` capability -probes instead of the ncurses-specific ``NCURSES_EXT_FUNCS`` macro, so they are -exposed when building against other curses implementations such as NetBSD curses -that provide them. diff --git a/Misc/NEWS.d/next/Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst b/Misc/NEWS.d/next/Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst deleted file mode 100644 index edab8e6ba7b2595..000000000000000 --- a/Misc/NEWS.d/next/Build/2026-07-09-22-45-00.gh-issue-153438.Qr7N2p.rst +++ /dev/null @@ -1,2 +0,0 @@ -Update Windows build and installer tooling and documentation to use the -current download URL for ``nuget.exe``. diff --git a/Misc/NEWS.d/next/Build/2026-07-11-07-26-16.gh-issue-126877.Zt7Kq2.rst b/Misc/NEWS.d/next/Build/2026-07-11-07-26-16.gh-issue-126877.Zt7Kq2.rst deleted file mode 100644 index 1d7d4fad886c56f..000000000000000 --- a/Misc/NEWS.d/next/Build/2026-07-11-07-26-16.gh-issue-126877.Zt7Kq2.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix the :program:`configure` check for Tcl/Tk which could wrongly succeed -with optimizing compilers when the libraries are missing. diff --git a/Misc/NEWS.d/next/Build/2026-07-19-12-16-31.gh-issue-154070.f5da07.rst b/Misc/NEWS.d/next/Build/2026-07-19-12-16-31.gh-issue-154070.f5da07.rst deleted file mode 100644 index 31c6fd3ece35322..000000000000000 --- a/Misc/NEWS.d/next/Build/2026-07-19-12-16-31.gh-issue-154070.f5da07.rst +++ /dev/null @@ -1,4 +0,0 @@ -Build the :mod:`curses` module against a wide-character capable ncurses -even when it is not named ``ncursesw`` -- for example the pkgsrc ncurses on -NetBSD and illumos, or the system ncurses on macOS. Such a library -previously produced a narrow build. diff --git a/Misc/NEWS.d/next/C_API/2026-07-09-17-33-29.gh-issue-152132.Ma8MJZ.rst b/Misc/NEWS.d/next/C_API/2026-07-09-17-33-29.gh-issue-152132.Ma8MJZ.rst deleted file mode 100644 index 633c41e40bf2696..000000000000000 --- a/Misc/NEWS.d/next/C_API/2026-07-09-17-33-29.gh-issue-152132.Ma8MJZ.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :c:func:`Py_RunMain` to return an exit code, rather than calling -:c:func:`Py_Exit`, when running a script, a command, or the REPL. Patch by -Victor Stinner. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-05-11-15-58-23.gh-issue-149689.9Ht49z.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-05-11-15-58-23.gh-issue-149689.9Ht49z.rst deleted file mode 100644 index aa672760730bd43..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-05-11-15-58-23.gh-issue-149689.9Ht49z.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix missing error propagation in parser action helpers when memory allocation -fails. Patch by Thomas Kowalski. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-05-22-52-41.gh-issue-150988.fDKfMJ.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-05-22-52-41.gh-issue-150988.fDKfMJ.rst deleted file mode 100644 index 6fb70a1ce2685c8..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-05-22-52-41.gh-issue-150988.fDKfMJ.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a reference leak in :exc:`OSError` when attributes are set before -``super().__init__()``. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-08-05-31-22.gh-issue-151065._o_31F.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-08-05-31-22.gh-issue-151065._o_31F.rst deleted file mode 100644 index e46c96ef784cc9e..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-08-05-31-22.gh-issue-151065._o_31F.rst +++ /dev/null @@ -1 +0,0 @@ -Fix memory leak when using the :ref:`mimalloc memory allocator <mimalloc>`. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-09-10-28-30.gh-issue-151126.DKa6Sl.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-09-10-28-30.gh-issue-151126.DKa6Sl.rst deleted file mode 100644 index c91939dbe559cd5..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-09-10-28-30.gh-issue-151126.DKa6Sl.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix a crash, when there's no memory left on a device, -which happened in :mod:`!_interpchannels` module. - -Now it raises proper :exc:`MemoryError` errors. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-10-15-42-46.gh-issue-151253.7MMQ8P.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-10-15-42-46.gh-issue-151253.7MMQ8P.rst deleted file mode 100644 index 56d2f3b2633bb01..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-10-15-42-46.gh-issue-151253.7MMQ8P.rst +++ /dev/null @@ -1,3 +0,0 @@ -If ``import encodings`` (first import) fails at Python startup, dump the -Python path configuration to help users debugging their configuration. Patch -by Victor Stinner. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-17-16-46-07.gh-issue-151126.vhTL0T.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-17-16-46-07.gh-issue-151126.vhTL0T.rst deleted file mode 100644 index 6f2d230b1dcfc00..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-17-16-46-07.gh-issue-151126.vhTL0T.rst +++ /dev/null @@ -1,2 +0,0 @@ -Avoid possible crash in ``_winapi.c`` where a device has no memory left. Now -it properly raises a :exc:`MemoryError`. Patch by Ivy Xu. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-18-16-00-10.gh-issue-151126.tBqn6I.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-18-16-00-10.gh-issue-151126.tBqn6I.rst deleted file mode 100644 index d495df43ede932c..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-18-16-00-10.gh-issue-151126.tBqn6I.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a crash when sharing :class:`memoryview` objects between interpreters -fails due to running out of memory. It now raises a proper -:exc:`MemoryError`. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-21-16-00-00.gh-issue-151773.mN4kRt.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-21-16-00-00.gh-issue-151773.mN4kRt.rst deleted file mode 100644 index b4193c5e15ffef8..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-21-16-00-00.gh-issue-151773.mN4kRt.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a crash in :func:`contextvars.ContextVar.set` when memory allocation -fails. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-22-14-48-22.gh-issue-151912.YcxfnU.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-22-14-48-22.gh-issue-151912.YcxfnU.rst deleted file mode 100644 index 07b73949b438a33..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-22-14-48-22.gh-issue-151912.YcxfnU.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed a crash in ``type()`` when selecting a metaclass whose ``tp_new`` slot is ``NULL``. Such metaclasses are now rejected with ``TypeError`` instead of causing a NULL pointer dereference. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-12-03-55.gh-issue-151763.K7QfWG.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-12-03-55.gh-issue-151763.K7QfWG.rst deleted file mode 100644 index 64d0146cb091016..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-23-12-03-55.gh-issue-151763.K7QfWG.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a potential crash in :func:`compile`, :func:`exec`, :func:`eval` and -:func:`ast.parse` when an allocation fails: the parser or compiler could -return without setting an exception. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-24-11-12-56.gh-issue-151905.j32skf.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-24-11-12-56.gh-issue-151905.j32skf.rst deleted file mode 100644 index c02145233d0e824..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-24-11-12-56.gh-issue-151905.j32skf.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix OOM error handling in :c:func:`PyFrame_GetBack` to propagate exceptions -instead of masking them as None. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-05-49-13.gh-issue-152235.YU20T9.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-05-49-13.gh-issue-152235.YU20T9.rst deleted file mode 100644 index 8d386ad458dfff1..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-05-49-13.gh-issue-152235.YU20T9.rst +++ /dev/null @@ -1,2 +0,0 @@ -Defer GC tracking of a :class:`set` or :class:`frozenset` to the end of its -construction from iterable. Patch by Donghee Na. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-22-03-16.gh-issue-152235.ZKWiWk.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-22-03-16.gh-issue-152235.ZKWiWk.rst deleted file mode 100644 index ff89a2445cb4fe8..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-22-03-16.gh-issue-152235.ZKWiWk.rst +++ /dev/null @@ -1,3 +0,0 @@ -Defer GC tracking of :meth:`set.intersection`, :meth:`set.difference`, -:meth:`set.symmetric_difference`, :meth:`set.union` and ``set.__sub__``. -Patch by Donghee Na. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-27-10-05-12.gh-issue-152375.L-ZBk6.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-27-10-05-12.gh-issue-152375.L-ZBk6.rst deleted file mode 100644 index db6ae3060d8328f..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-27-10-05-12.gh-issue-152375.L-ZBk6.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix undefined behaviour when a :mod:`sys.monitoring` callback raised an -exception while the program was following a branch or loop. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-29-23-29-14.gh-issue-152635.O21J0O.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-29-23-29-14.gh-issue-152635.O21J0O.rst deleted file mode 100644 index dadb25fc7c44771..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-29-23-29-14.gh-issue-152635.O21J0O.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a crash caused when running out of memory creating a -:mod:`!_interpchannels` channel. Now a :exc:`MemoryError` is correctly raised. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-30-14-00-00.gh-issue-152682.yId7e5.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-30-14-00-00.gh-issue-152682.yId7e5.rst deleted file mode 100644 index aba0b594382bcf8..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-30-14-00-00.gh-issue-152682.yId7e5.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix NULL pointer dereference in :func:`compile` when a reserved name (e.g. -``__classdict__``) is used as a type parameter name and memory allocation -fails while formatting the error message. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-07-20-20-16-08.gh-issue-154275.l961cA.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-07-20-20-16-08.gh-issue-154275.l961cA.rst deleted file mode 100644 index 998e91c77098e75..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-07-20-20-16-08.gh-issue-154275.l961cA.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a crash when getting deeply nested ``__parameters__`` from a -:class:`types.GenericAlias` objects. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-07-26-09-07-41.gh-issue-154709.M2uZ76.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-07-26-09-07-41.gh-issue-154709.M2uZ76.rst deleted file mode 100644 index 6eb1ce6a8b6970b..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-07-26-09-07-41.gh-issue-154709.M2uZ76.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix an out-of-bounds access in reverse dictionary iterators when the -underlying dictionary is cleared and modified after the iterator is created. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-08-02-17-55-29.gh-issue-154937.m9IBba.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-08-02-17-55-29.gh-issue-154937.m9IBba.rst deleted file mode 100644 index e307b95216934aa..000000000000000 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-08-02-17-55-29.gh-issue-154937.m9IBba.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a data race on thread handle identifiers when ``_thread._shutdown()`` -runs concurrently with the startup of non-daemon threads in the -free-threaded build. diff --git a/Misc/NEWS.d/next/Documentation/2026-06-17-12-00-00.gh-issue-86726.__bOgH.rst b/Misc/NEWS.d/next/Documentation/2026-06-17-12-00-00.gh-issue-86726.__bOgH.rst deleted file mode 100644 index 787b95dbf236279..000000000000000 --- a/Misc/NEWS.d/next/Documentation/2026-06-17-12-00-00.gh-issue-86726.__bOgH.rst +++ /dev/null @@ -1,4 +0,0 @@ -Greatly expand the :mod:`tkinter` documentation to cover the full public API -of the package and its submodules. The descriptions are oriented towards -Python rather than Tcl/Tk, with corrected return types and -``versionadded``/``versionchanged`` information. diff --git a/Misc/NEWS.d/next/Documentation/2026-07-17-22-33-43.gh-issue-118150.m7iFdP.rst b/Misc/NEWS.d/next/Documentation/2026-07-17-22-33-43.gh-issue-118150.m7iFdP.rst deleted file mode 100644 index afa6007a46e1745..000000000000000 --- a/Misc/NEWS.d/next/Documentation/2026-07-17-22-33-43.gh-issue-118150.m7iFdP.rst +++ /dev/null @@ -1,2 +0,0 @@ -Clarify in the :mod:`difflib` documentation what *junk* actually does, its -drawbacks, and how to control it. diff --git a/Misc/NEWS.d/next/IDLE/2021-10-03-21-55-34.gh-issue-89520.etEExa.rst b/Misc/NEWS.d/next/IDLE/2021-10-03-21-55-34.gh-issue-89520.etEExa.rst deleted file mode 100644 index e8e181cac213589..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2021-10-03-21-55-34.gh-issue-89520.etEExa.rst +++ /dev/null @@ -1,3 +0,0 @@ -Make IDLE extension configuration look at user config files, allowing -user-installed extensions to have settings and key bindings defined in -~/.idlerc. diff --git a/Misc/NEWS.d/next/IDLE/2025-10-05-19-33-39.gh-issue-139551.TX9BRc.rst b/Misc/NEWS.d/next/IDLE/2025-10-05-19-33-39.gh-issue-139551.TX9BRc.rst deleted file mode 100644 index 5ea1dfc9b5100d3..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2025-10-05-19-33-39.gh-issue-139551.TX9BRc.rst +++ /dev/null @@ -1 +0,0 @@ -Support rendering :exc:`BaseExceptionGroup` in IDLE. diff --git a/Misc/NEWS.d/next/IDLE/2026-03-07-20-47-40.gh-issue-94523.dq7m2k.rst b/Misc/NEWS.d/next/IDLE/2026-03-07-20-47-40.gh-issue-94523.dq7m2k.rst deleted file mode 100644 index 831f6ac628768c7..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-03-07-20-47-40.gh-issue-94523.dq7m2k.rst +++ /dev/null @@ -1,2 +0,0 @@ -Detect file if modified at local disk and prompt to ask refresh. Patch by -Shixian Li. diff --git a/Misc/NEWS.d/next/IDLE/2026-06-28-06-46-46.gh-issue-85320.Hq2vKn.rst b/Misc/NEWS.d/next/IDLE/2026-06-28-06-46-46.gh-issue-85320.Hq2vKn.rst deleted file mode 100644 index ec34bf8ead9eb9f..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-06-28-06-46-46.gh-issue-85320.Hq2vKn.rst +++ /dev/null @@ -1,4 +0,0 @@ -IDLE now reads and writes its configuration files and the breakpoints file -using UTF-8 instead of the locale encoding. This keeps non-ASCII data (such -as non-ASCII paths) from being corrupted and makes the files portable between -environments. diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-00-00-00.gh-issue-66331.wMcLaS.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-00-00-00.gh-issue-66331.wMcLaS.rst deleted file mode 100644 index e00e7c7d8fdc652..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-07-01-00-00-00.gh-issue-66331.wMcLaS.rst +++ /dev/null @@ -1,3 +0,0 @@ -Set the ``WM_CLASS`` window property of IDLE's windows to ``Idle`` on X11, -so that window managers group and label them correctly instead of using the -default ``Toplevel``. diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-00-15-58.gh-issue-152728.yxIhMN.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-00-15-58.gh-issue-152728.yxIhMN.rst deleted file mode 100644 index d73512a615c1898..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-07-01-00-15-58.gh-issue-152728.yxIhMN.rst +++ /dev/null @@ -1,2 +0,0 @@ -Move functions run.fix_scaling, editor.fixwordbreaks (as fix_word_breaks) -and pyshell.fix_x11_paste to idlelib.util. diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-12-00-00.gh-issue-71956.rPlAlL.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-12-00-00.gh-issue-71956.rPlAlL.rst deleted file mode 100644 index 1a92ed4cd389cf5..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-07-01-12-00-00.gh-issue-71956.rPlAlL.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix Replace All in the IDLE editor's Replace dialog when the search -direction is "Up" and "Wrap around" is off: it now replaces all matches -above the current position instead of only the first one. diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-14-00-00.gh-issue-89360.mUlTiC.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-14-00-00.gh-issue-89360.mUlTiC.rst deleted file mode 100644 index 9e3023f8228233f..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-07-01-14-00-00.gh-issue-89360.mUlTiC.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a rare crash in the IDLE editor when the completion window is closed: -deleting a key binding for a sequence that is not bound to the virtual -event is now ignored instead of raising a ``ValueError``. diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-15-00-00.gh-issue-134300.iDlPaT.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-15-00-00.gh-issue-134300.iDlPaT.rst deleted file mode 100644 index 791acbbed62aaf3..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-07-01-15-00-00.gh-issue-134300.iDlPaT.rst +++ /dev/null @@ -1,3 +0,0 @@ -Do not add the ``idlelib`` directory to the path of the IDLE user process. -User code run in IDLE can no longer import ``idlelib`` submodules as -top-level modules, such as ``import help``. diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-16-00-00.gh-issue-80504.gReP.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-16-00-00.gh-issue-80504.gReP.rst deleted file mode 100644 index 93adb33202a41c1..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-07-01-16-00-00.gh-issue-80504.gReP.rst +++ /dev/null @@ -1,3 +0,0 @@ -The "In files:" field of IDLE's Find in Files dialog now always contains a -full directory path, even for an unsaved editor or the Shell. This shows -in the grep output which directory was searched. diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-17-00-00.gh-issue-65339.oUtTxt.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-17-00-00.gh-issue-65339.oUtTxt.rst deleted file mode 100644 index a8b216e86dc8d7e..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-07-01-17-00-00.gh-issue-65339.oUtTxt.rst +++ /dev/null @@ -1,3 +0,0 @@ -Saving the IDLE Shell or an Output window now defaults to a ``.txt`` -extension and lists text files before Python files, since their content is -not Python source. diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-18-00-00.gh-issue-83653.cFgInt.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-18-00-00.gh-issue-83653.cFgInt.rst deleted file mode 100644 index 5812b2dd977f6a9..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-07-01-18-00-00.gh-issue-83653.cFgInt.rst +++ /dev/null @@ -1,3 +0,0 @@ -Blanking an integer entry in IDLE's Settings dialog, such as "Auto squeeze -min lines", no longer saves an empty string as an invalid configuration -value. diff --git a/Misc/NEWS.d/next/IDLE/2026-07-01-19-00-00.gh-issue-82183.rNsTrt.rst b/Misc/NEWS.d/next/IDLE/2026-07-01-19-00-00.gh-issue-82183.rNsTrt.rst deleted file mode 100644 index 2af412f5200d0de..000000000000000 --- a/Misc/NEWS.d/next/IDLE/2026-07-01-19-00-00.gh-issue-82183.rNsTrt.rst +++ /dev/null @@ -1,3 +0,0 @@ -When the shell is busy running code, using "Run... Customized" with "Restart -shell" unchecked now reports that the shell is executing instead of -restarting it anyway. diff --git a/Misc/NEWS.d/next/Library/2023-01-23-21-23-50.gh-issue-101267._f-cFH.rst b/Misc/NEWS.d/next/Library/2023-01-23-21-23-50.gh-issue-101267._f-cFH.rst deleted file mode 100644 index 901a3fb60ab5b9f..000000000000000 --- a/Misc/NEWS.d/next/Library/2023-01-23-21-23-50.gh-issue-101267._f-cFH.rst +++ /dev/null @@ -1,7 +0,0 @@ -When a worker process terminates unexpectedly, -:class:`concurrent.futures.ProcessPoolExecutor` now sets a separate -:exc:`~concurrent.futures.process.BrokenProcessPool` exception on each pending -future instead of sharing a single instance among them all. Sharing one -exception produced malformed tracebacks: each -:meth:`Future.result() <concurrent.futures.Future.result>` call re-raised the -same object, appending another copy of the traceback to it. diff --git a/Misc/NEWS.d/next/Library/2023-04-27-14-50-03.gh-issue-103925.khC-El.rst b/Misc/NEWS.d/next/Library/2023-04-27-14-50-03.gh-issue-103925.khC-El.rst deleted file mode 100644 index 858ce6e5bd98e70..000000000000000 --- a/Misc/NEWS.d/next/Library/2023-04-27-14-50-03.gh-issue-103925.khC-El.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :meth:`csv.Sniffer.sniff` for a sample with ``\r\n`` line endings in -which a quoted field ends a line: a letter could be detected as the -delimiter. diff --git a/Misc/NEWS.d/next/Library/2023-06-12-21-31-02.gh-issue-105708.5fFwP8.rst b/Misc/NEWS.d/next/Library/2023-06-12-21-31-02.gh-issue-105708.5fFwP8.rst deleted file mode 100644 index 79289c1f0bd4217..000000000000000 --- a/Misc/NEWS.d/next/Library/2023-06-12-21-31-02.gh-issue-105708.5fFwP8.rst +++ /dev/null @@ -1 +0,0 @@ -Accept an uppercase V prefix in IPvFuture addresses in :func:`urllib.parse.urlsplit`. diff --git a/Misc/NEWS.d/next/Library/2024-06-18-04-08-37.gh-issue-120665.x7T1hV.rst b/Misc/NEWS.d/next/Library/2024-06-18-04-08-37.gh-issue-120665.x7T1hV.rst deleted file mode 100644 index 27e93988ed11efb..000000000000000 --- a/Misc/NEWS.d/next/Library/2024-06-18-04-08-37.gh-issue-120665.x7T1hV.rst +++ /dev/null @@ -1 +0,0 @@ -Fixed an issue where ``unittest`` loaders would load and instantiate :class:`unittest.TestCase`-derived subclasses that are also abstract base classes, which can't be instantiated. diff --git a/Misc/NEWS.d/next/Library/2025-09-05-20-50-35.gh-issue-79638.Y-JfaH.rst b/Misc/NEWS.d/next/Library/2025-09-05-20-50-35.gh-issue-79638.Y-JfaH.rst deleted file mode 100644 index bd9fff0bc2e31b6..000000000000000 --- a/Misc/NEWS.d/next/Library/2025-09-05-20-50-35.gh-issue-79638.Y-JfaH.rst +++ /dev/null @@ -1,2 +0,0 @@ -Disallow all access in :mod:`urllib.robotparser` if the ``robots.txt`` file -is unreachable due to server or network errors. diff --git a/Misc/NEWS.d/next/Library/2025-11-02-05-28-56.gh-issue-115634.JbcNnF.rst b/Misc/NEWS.d/next/Library/2025-11-02-05-28-56.gh-issue-115634.JbcNnF.rst deleted file mode 100644 index f023ce999c60b7c..000000000000000 --- a/Misc/NEWS.d/next/Library/2025-11-02-05-28-56.gh-issue-115634.JbcNnF.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fix a deadlock in :class:`concurrent.futures.ProcessPoolExecutor` when -using ``max_tasks_per_child``, present since the feature was introduced in -Python 3.11. The executor stopped scheduling queued tasks after a worker -process exited upon reaching its task limit. Based on a fix proposed by -Tabrez Mohammed. diff --git a/Misc/NEWS.d/next/Library/2025-12-23-11-43-05.gh-issue-130796.TkzUGx.rst b/Misc/NEWS.d/next/Library/2025-12-23-11-43-05.gh-issue-130796.TkzUGx.rst deleted file mode 100644 index a078561a1014faa..000000000000000 --- a/Misc/NEWS.d/next/Library/2025-12-23-11-43-05.gh-issue-130796.TkzUGx.rst +++ /dev/null @@ -1,2 +0,0 @@ -Undeprecate the :func:`locale.getdefaultlocale` function. -Patch by Victor Stinner. diff --git a/Misc/NEWS.d/next/Library/2026-01-18-06-42-47.gh-issue-143988.MtLtCP.rst b/Misc/NEWS.d/next/Library/2026-01-18-06-42-47.gh-issue-143988.MtLtCP.rst deleted file mode 100644 index fcc0cb54934b90e..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-01-18-06-42-47.gh-issue-143988.MtLtCP.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed crashes in :meth:`socket.socket.sendmsg` and :meth:`socket.socket.recvmsg_into` -that could occur if buffer sequences are concurrently mutated. diff --git a/Misc/NEWS.d/next/Library/2026-03-11-10-25-32.gh-issue-123720.TauFRx.rst b/Misc/NEWS.d/next/Library/2026-03-11-10-25-32.gh-issue-123720.TauFRx.rst deleted file mode 100644 index 04e6a377dd816c7..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-11-10-25-32.gh-issue-123720.TauFRx.rst +++ /dev/null @@ -1,5 +0,0 @@ -asyncio: Fix :func:`asyncio.Server.serve_forever` shutdown regression. Since -3.12, cancelling ``serve_forever()`` could hang waiting for a handler blocked -on a read from a client that never closed (effectively requiring two -interrupts to stop); the shutdown sequence now ensures client streams are -closed so ``serve_forever()`` exits promptly and handlers observe EOF. diff --git a/Misc/NEWS.d/next/Library/2026-03-26-00-00-00.gh-issue-47005.xxc89c.rst b/Misc/NEWS.d/next/Library/2026-03-26-00-00-00.gh-issue-47005.xxc89c.rst deleted file mode 100644 index 646367f0fa069d3..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-03-26-00-00-00.gh-issue-47005.xxc89c.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix :meth:`!urllib.request.AbstractHTTPHandler.do_open` to give regular -headers set via :meth:`~urllib.request.Request.add_header` priority over -unredirected headers, consistent with :meth:`~urllib.request.Request.get_header` -and :meth:`~urllib.request.Request.header_items`. diff --git a/Misc/NEWS.d/next/Library/2026-04-23-12-50-15.gh-issue-148441.zvpCkR.rst b/Misc/NEWS.d/next/Library/2026-04-23-12-50-15.gh-issue-148441.zvpCkR.rst deleted file mode 100644 index 762815270e4d403..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-04-23-12-50-15.gh-issue-148441.zvpCkR.rst +++ /dev/null @@ -1,4 +0,0 @@ -:mod:`xml.parsers.expat`: prevent a crash in -:meth:`~xml.parsers.expat.xmlparser.CharacterDataHandler` -when the character data size exceeds the parser's -:attr:`buffer size <xml.parsers.expat.xmlparser.buffer_size>`. diff --git a/Misc/NEWS.d/next/Library/2026-05-02-13-54-19.gh-issue-149221.__KOks.rst b/Misc/NEWS.d/next/Library/2026-05-02-13-54-19.gh-issue-149221.__KOks.rst deleted file mode 100644 index fab2b0f6a234891..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-02-13-54-19.gh-issue-149221.__KOks.rst +++ /dev/null @@ -1 +0,0 @@ -Catch rare math domain error for :func:`random.binomialvariate`. diff --git a/Misc/NEWS.d/next/Library/2026-05-06-23-13-40.gh-issue-149319.PLM93t.rst b/Misc/NEWS.d/next/Library/2026-05-06-23-13-40.gh-issue-149319.PLM93t.rst deleted file mode 100644 index 4018ec43f5a47d9..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-06-23-13-40.gh-issue-149319.PLM93t.rst +++ /dev/null @@ -1 +0,0 @@ -The :mod:`asyncio` REPL now ignores :envvar:`PYTHONSTARTUP` and :envvar:`PYTHON_BASIC_REPL` when :option:`-E` or :option:`-I` is used. Patch by Jonathan Dung. diff --git a/Misc/NEWS.d/next/Library/2026-05-28-00-00-00.gh-issue-150484.XxYyZz.rst b/Misc/NEWS.d/next/Library/2026-05-28-00-00-00.gh-issue-150484.XxYyZz.rst deleted file mode 100644 index 522c70058ed29d7..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-05-28-00-00-00.gh-issue-150484.XxYyZz.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :func:`unittest.mock.mock_open` ``__exit__`` raising ``TypeError`` when used with :class:`contextlib.ExitStack`. diff --git a/Misc/NEWS.d/next/Library/2026-06-09-12-00-00.gh-issue-150771.K7mNx2.rst b/Misc/NEWS.d/next/Library/2026-06-09-12-00-00.gh-issue-150771.K7mNx2.rst deleted file mode 100644 index 2965176d438172e..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-09-12-00-00.gh-issue-150771.K7mNx2.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix serialization of :mod:`email` messages using the ``shift_jis`` or -``euc-jp`` charsets: ``set_content()`` now encodes the payload using -the output charset, so ``str(m)`` no longer raises -:exc:`UnicodeEncodeError`. diff --git a/Misc/NEWS.d/next/Library/2026-06-10-00-00-01.gh-issue-117807.Cx1178.rst b/Misc/NEWS.d/next/Library/2026-06-10-00-00-01.gh-issue-117807.Cx1178.rst deleted file mode 100644 index d6a874a84867a2f..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-10-00-00-01.gh-issue-117807.Cx1178.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :mod:`mimetypes` initialization from MIME map files containing invalid -UTF-8 bytes. diff --git a/Misc/NEWS.d/next/Library/2026-06-10-00-00-02.gh-issue-109940.Cx1099.rst b/Misc/NEWS.d/next/Library/2026-06-10-00-00-02.gh-issue-109940.Cx1099.rst deleted file mode 100644 index 130dc780b612864..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-10-00-00-02.gh-issue-109940.Cx1099.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix Windows :mod:`venv` activation in ``cmd.exe`` to respect -``VIRTUAL_ENV_DISABLE_PROMPT``. diff --git a/Misc/NEWS.d/next/Library/2026-06-11-00-00-00.gh-issue-151295.NQYUzW.rst b/Misc/NEWS.d/next/Library/2026-06-11-00-00-00.gh-issue-151295.NQYUzW.rst deleted file mode 100644 index e9012f023ff7f77..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-11-00-00-00.gh-issue-151295.NQYUzW.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fixed a crash (use-after-free) in :meth:`bytes.join` and -:meth:`bytearray.join` that could occur if an item's -:meth:`~object.__buffer__` concurrently mutates the sequence being joined. -The mutation is now reported as a :exc:`RuntimeError` instead. diff --git a/Misc/NEWS.d/next/Library/2026-06-11-10-00-00.gh-issue-119710.Qz7Kp2.rst b/Misc/NEWS.d/next/Library/2026-06-11-10-00-00.gh-issue-119710.Qz7Kp2.rst deleted file mode 100644 index 45f99d72ea29a2f..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-11-10-00-00.gh-issue-119710.Qz7Kp2.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix :mod:`asyncio` subprocess :meth:`~asyncio.subprocess.Process.wait` -hanging when the process has exited but one of its pipes is kept open by an -inherited child process (so the pipe never reaches EOF). ``wait()`` now -returns as soon as the process exits, regardless of the pipes' state. diff --git a/Misc/NEWS.d/next/Library/2026-06-11-16-25-38.gh-issue-151126.bh_Usy.rst b/Misc/NEWS.d/next/Library/2026-06-11-16-25-38.gh-issue-151126.bh_Usy.rst deleted file mode 100644 index 25149057aa7d092..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-11-16-25-38.gh-issue-151126.bh_Usy.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a crash when :exc:`MemoryError` in :func:`!os._path_splitroot` -was not set properly. diff --git a/Misc/NEWS.d/next/Library/2026-06-11-21-43-24.gh-issue-151337.JSVV18.rst b/Misc/NEWS.d/next/Library/2026-06-11-21-43-24.gh-issue-151337.JSVV18.rst deleted file mode 100644 index 0344eee9471d292..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-11-21-43-24.gh-issue-151337.JSVV18.rst +++ /dev/null @@ -1 +0,0 @@ -Avoid possible memory leak in ``tkinter.c`` on Windows. diff --git a/Misc/NEWS.d/next/Library/2026-06-12-00-00-00.gh-issue-151416.spawnUA.rst b/Misc/NEWS.d/next/Library/2026-06-12-00-00-00.gh-issue-151416.spawnUA.rst deleted file mode 100644 index fd034d9885a8302..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-12-00-00-00.gh-issue-151416.spawnUA.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fix a crash in :func:`os.spawnv` and :func:`os.spawnve` when an *argv* -item's :meth:`~os.PathLike.__fspath__` method mutates the *argv* list -during argument conversion. :func:`!os.spawnv` argument conversion errors -other than :exc:`TypeError`, such as the :exc:`ValueError` for an embedded -null, are no longer replaced with a generic :exc:`TypeError`. diff --git a/Misc/NEWS.d/next/Library/2026-06-12-00-04-34.gh-issue-151126.aHaBYq.rst b/Misc/NEWS.d/next/Library/2026-06-12-00-04-34.gh-issue-151126.aHaBYq.rst deleted file mode 100644 index 20ef69d5de5ac55..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-12-00-04-34.gh-issue-151126.aHaBYq.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix crash on unset :exc:`MemoryError` on allocation failure in -:func:`ctypes.get_errno`. diff --git a/Misc/NEWS.d/next/Library/2026-06-12-22-46-31.gh-issue-151403.DalZWh.rst b/Misc/NEWS.d/next/Library/2026-06-12-22-46-31.gh-issue-151403.DalZWh.rst deleted file mode 100644 index ca779ed684e7616..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-12-22-46-31.gh-issue-151403.DalZWh.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed a crash in :class:`subprocess.Popen` (and ``_posixsubprocess.fork_exec``) -when an ``argv`` item's :meth:`~os.PathLike.__fspath__` concurrently mutates the -``args`` sequence being converted. diff --git a/Misc/NEWS.d/next/Library/2026-06-15-15-32-36.gh-issue-151497.1cfmSV.rst b/Misc/NEWS.d/next/Library/2026-06-15-15-32-36.gh-issue-151497.1cfmSV.rst deleted file mode 100644 index a4c03c9d71d7618..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-15-15-32-36.gh-issue-151497.1cfmSV.rst +++ /dev/null @@ -1,4 +0,0 @@ -Opening a :mod:`tarfile` archive no longer attempts to pre-allocate a huge -buffer when a crafted or truncated member claims an oversized extended header -(a GNU long name/link or a pax header). The extended header is now read in -bounded chunks, so its size field can no longer trigger memory exhaustion. diff --git a/Misc/NEWS.d/next/Library/2026-06-17-00-00-00.gh-issue-148660.odcopy.rst b/Misc/NEWS.d/next/Library/2026-06-17-00-00-00.gh-issue-148660.odcopy.rst deleted file mode 100644 index 30c2e366ca2ba07..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-17-00-00-00.gh-issue-148660.odcopy.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a crash in :meth:`!collections.OrderedDict.copy` when a key's -``__eq__`` or a subclass method mutates the dict during the copy. Now -raises :exc:`RuntimeError` instead, as iteration does. diff --git a/Misc/NEWS.d/next/Library/2026-06-18-23-59-46.gh-issue-151596.5ma144.rst b/Misc/NEWS.d/next/Library/2026-06-18-23-59-46.gh-issue-151596.5ma144.rst deleted file mode 100644 index 17ec1341142e93d..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-18-23-59-46.gh-issue-151596.5ma144.rst +++ /dev/null @@ -1 +0,0 @@ -Add missing ``size`` positional argument to the pure-Python implementation of :meth:`io.TextIOBase.readline`. diff --git a/Misc/NEWS.d/next/Library/2026-06-19-07-26-20.gh-issue-151695.IBDlkN.rst b/Misc/NEWS.d/next/Library/2026-06-19-07-26-20.gh-issue-151695.IBDlkN.rst deleted file mode 100644 index f44cb6b93071656..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-19-07-26-20.gh-issue-151695.IBDlkN.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix a use-after-free in the :mod:`curses` module. The encoding of the initial -screen, used by :func:`curses.unctrl` and :func:`curses.ungetch` to encode -non-ASCII characters, is now kept as a private copy instead of a borrowed -pointer to a window object that may be deallocated. diff --git a/Misc/NEWS.d/next/Library/2026-06-20-21-15-13.gh-issue-151814.OIbgsO.rst b/Misc/NEWS.d/next/Library/2026-06-20-21-15-13.gh-issue-151814.OIbgsO.rst deleted file mode 100644 index 1365fb4d8edb1d2..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-20-21-15-13.gh-issue-151814.OIbgsO.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix unbounded memory growth in :class:`io.TextIOWrapper` when repeatedly -writing an empty string. diff --git a/Misc/NEWS.d/next/Library/2026-06-21-15-50-24.gh-issue-86165.dyac1G.rst b/Misc/NEWS.d/next/Library/2026-06-21-15-50-24.gh-issue-86165.dyac1G.rst deleted file mode 100644 index 0b630e9ae346834..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-21-15-50-24.gh-issue-86165.dyac1G.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :func:`imaplib.Time2Internaldate` to use the local timezone offset for -``time.struct_time`` values with ``tm_gmtoff`` set to ``None``, as returned by -``datetime.datetime.timetuple()``. Contributed by Xiao Yuan. diff --git a/Misc/NEWS.d/next/Library/2026-06-22-18-01-00.gh-issue-151955.6u5iwm.rst b/Misc/NEWS.d/next/Library/2026-06-22-18-01-00.gh-issue-151955.6u5iwm.rst deleted file mode 100644 index 243b3308a57ad32..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-22-18-01-00.gh-issue-151955.6u5iwm.rst +++ /dev/null @@ -1,2 +0,0 @@ -Allow more types to be used in the ``bound`` argument to -:class:`typing.ParamSpec`. diff --git a/Misc/NEWS.d/next/Library/2026-06-23-13-27-14.gh-issue-126219.kOfv2g.rst b/Misc/NEWS.d/next/Library/2026-06-23-13-27-14.gh-issue-126219.kOfv2g.rst deleted file mode 100644 index 8cc8c64c719471d..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-23-13-27-14.gh-issue-126219.kOfv2g.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed a crash in :class:`tkinter.Tk` when *className* contains a non-BMP -character and tkinter is built against Tcl/Tk 8.x. Such a name is now -rejected with a :exc:`ValueError`. diff --git a/Misc/NEWS.d/next/Library/2026-06-24-10-46-35.gh-issue-152060.f2asrt.rst b/Misc/NEWS.d/next/Library/2026-06-24-10-46-35.gh-issue-152060.f2asrt.rst deleted file mode 100644 index 6088a6b80829bb4..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-24-10-46-35.gh-issue-152060.f2asrt.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :meth:`datetime.datetime.fromisoformat` raising :exc:`AssertionError` -instead of :exc:`ValueError` for some malformed strings in the pure-Python -implementation, matching the C implementation. diff --git a/Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152052.yBssDE.rst b/Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152052.yBssDE.rst deleted file mode 100644 index f9ffbbd342fc81a..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152052.yBssDE.rst +++ /dev/null @@ -1,2 +0,0 @@ -The :mod:`json` C accelerator now correctly reports an unterminated string for a -``\uXXXX`` escape at the end of the input. diff --git a/Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152079.f1tzus.rst b/Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152079.f1tzus.rst deleted file mode 100644 index 492d00724f6a46e..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-24-12-00-00.gh-issue-152079.f1tzus.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :meth:`datetime.datetime.fromisoformat` in the C implementation dropping -the sub-second part of a UTC offset whose whole-second part is zero, matching -the pure-Python implementation. diff --git a/Misc/NEWS.d/next/Library/2026-06-24-22-16-35.gh-issue-105895.hRkuEw.rst b/Misc/NEWS.d/next/Library/2026-06-24-22-16-35.gh-issue-105895.hRkuEw.rst deleted file mode 100644 index c69e6fa7d14f4dc..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-24-22-16-35.gh-issue-105895.hRkuEw.rst +++ /dev/null @@ -1,2 +0,0 @@ -Add :keyword:`match` and :keyword:`case` to the list of supported topics by -:func:`help`. diff --git a/Misc/NEWS.d/next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst b/Misc/NEWS.d/next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst deleted file mode 100644 index 2f5e84027ad31bb..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-25-01-00-43.gh-issue-151763.wWeHBe.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix crash in :func:`!_interpqueues.create` whe :exc:`MemoryError` -happens on queue creation. diff --git a/Misc/NEWS.d/next/Library/2026-06-25-07-08-17.gh-issue-152157.dt5Ef0.rst b/Misc/NEWS.d/next/Library/2026-06-25-07-08-17.gh-issue-152157.dt5Ef0.rst deleted file mode 100644 index 00e83b4af6be7a9..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-25-07-08-17.gh-issue-152157.dt5Ef0.rst +++ /dev/null @@ -1,3 +0,0 @@ -The C implementations of :meth:`~datetime.datetime.fromisoformat` and :meth:`~datetime.time.fromisoformat` -now reject a decimal separator that is not followed by any -fractional digit before a timezone designator. diff --git a/Misc/NEWS.d/next/Library/2026-06-25-10-07-54.gh-issue-152156.gscPU9.rst b/Misc/NEWS.d/next/Library/2026-06-25-10-07-54.gh-issue-152156.gscPU9.rst deleted file mode 100644 index 7b45a843b8f43b8..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-25-10-07-54.gh-issue-152156.gscPU9.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a possible crash in :func:`!_interpreters.create` under limited -memory conditions. diff --git a/Misc/NEWS.d/next/Library/2026-06-25-12-00-00.gh-issue-152212.Zk7Qm2.rst b/Misc/NEWS.d/next/Library/2026-06-25-12-00-00.gh-issue-152212.Zk7Qm2.rst deleted file mode 100644 index 2b1d272638b11ab..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-25-12-00-00.gh-issue-152212.Zk7Qm2.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix the pure-Python :mod:`zoneinfo` parser accepting a POSIX TZ string with a -``std`` abbreviation but no offset. This is invalid per POSIX and now -raises :exc:`ValueError`, matching the C accelerator. Patch by tonghuaroot. diff --git a/Misc/NEWS.d/next/Library/2026-06-25-14-32-42.gh-issue-139145.kT9rmP.rst b/Misc/NEWS.d/next/Library/2026-06-25-14-32-42.gh-issue-139145.kT9rmP.rst deleted file mode 100644 index 3fa639c5f727baa..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-25-14-32-42.gh-issue-139145.kT9rmP.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fix a busy loop in :mod:`tkinter` on interactive Python. When a Tcl command -running its own event loop (such as ``vwait`` or :meth:`!wait_variable`) was -active and input arrived on stdin, the event loop kept spinning at 100% CPU. -The stdin file handler is now removed as soon as input is available. Based on -a patch by Michiel de Hoon. diff --git a/Misc/NEWS.d/next/Library/2026-06-25-14-32-43.gh-issue-139816.Lq2vXa.rst b/Misc/NEWS.d/next/Library/2026-06-25-14-32-43.gh-issue-139816.Lq2vXa.rst deleted file mode 100644 index b180dee686caf8c..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-25-14-32-43.gh-issue-139816.Lq2vXa.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix a hang in :mod:`tkinter` on interactive Python built without -:mod:`readline`. An exception raised in a callback no longer causes the -event loop to stop and wait for the user to press Enter; pending callbacks -now keep running until input is actually available on stdin. diff --git a/Misc/NEWS.d/next/Library/2026-06-26-12-50-26.gh-issue-152246.MfXMd1.rst b/Misc/NEWS.d/next/Library/2026-06-26-12-50-26.gh-issue-152246.MfXMd1.rst deleted file mode 100644 index 0858199a9fa2798..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-26-12-50-26.gh-issue-152246.MfXMd1.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix the pure-Python :mod:`zoneinfo` parser accepting an invalid POSIX TZ -transition rule with a non-period separator. Patch by tonghuaroot. diff --git a/Misc/NEWS.d/next/Library/2026-06-26-13-10-00.gh-issue-80937.Hq3mNp.rst b/Misc/NEWS.d/next/Library/2026-06-26-13-10-00.gh-issue-80937.Hq3mNp.rst deleted file mode 100644 index 4ea0179c6586d4f..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-26-13-10-00.gh-issue-80937.Hq3mNp.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix a memory leak in :mod:`tkinter` when a Tcl command created with -``createcommand`` was not explicitly removed before the interpreter was -deleted. The command no longer keeps the interpreter alive through a -reference cycle. diff --git a/Misc/NEWS.d/next/Library/2026-06-26-13-39-11.gh-issue-152248.N2Rmaf.rst b/Misc/NEWS.d/next/Library/2026-06-26-13-39-11.gh-issue-152248.N2Rmaf.rst deleted file mode 100644 index 8921ad17349e975..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-26-13-39-11.gh-issue-152248.N2Rmaf.rst +++ /dev/null @@ -1,3 +0,0 @@ -Make the C and pure-Python :mod:`zoneinfo` parsers validate POSIX TZ -abbreviations consistently, rejecting unquoted abbreviations with non-letter -characters and empty quoted abbreviations. Patch by tonghuaroot. diff --git a/Misc/NEWS.d/next/Library/2026-06-26-15-00-00.gh-issue-38464.yDPjKH.rst b/Misc/NEWS.d/next/Library/2026-06-26-15-00-00.gh-issue-38464.yDPjKH.rst deleted file mode 100644 index c1c272b97d4b0a8..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-26-15-00-00.gh-issue-38464.yDPjKH.rst +++ /dev/null @@ -1,3 +0,0 @@ -:meth:`!tkinter.Misc.nametowidget` now resolves the auto-generated names of -cloned menus (a menu used as a menubar or a cascade) back to the original -widget. diff --git a/Misc/NEWS.d/next/Library/2026-06-26-15-30-00.gh-issue-88758.Qw7nLp.rst b/Misc/NEWS.d/next/Library/2026-06-26-15-30-00.gh-issue-88758.Qw7nLp.rst deleted file mode 100644 index 31d567194fb9031..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-26-15-30-00.gh-issue-88758.Qw7nLp.rst +++ /dev/null @@ -1,4 +0,0 @@ -:meth:`!tkinter.Misc.focus_get`, :meth:`!focus_displayof`, -:meth:`!focus_lastfor` and :meth:`!winfo_containing` now return ``None`` -instead of raising :exc:`KeyError` when the widget was not created by -:mod:`tkinter` (for example a torn-off menu). diff --git a/Misc/NEWS.d/next/Library/2026-06-26-16-30-00.gh-issue-83274.Kx9mQv.rst b/Misc/NEWS.d/next/Library/2026-06-26-16-30-00.gh-issue-83274.Kx9mQv.rst deleted file mode 100644 index 3b722d2176be920..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-26-16-30-00.gh-issue-83274.Kx9mQv.rst +++ /dev/null @@ -1,3 +0,0 @@ -Deallocating a :mod:`tkinter` application from a thread other than the one it -was created in no longer crashes the interpreter. The underlying Tcl -interpreter is leaked instead, and a :exc:`RuntimeWarning` is reported. diff --git a/Misc/NEWS.d/next/Library/2026-06-26-23-56-40.gh-issue-71880.782D31.rst b/Misc/NEWS.d/next/Library/2026-06-26-23-56-40.gh-issue-71880.782D31.rst deleted file mode 100644 index 5a12f428f2a8b6c..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-26-23-56-40.gh-issue-71880.782D31.rst +++ /dev/null @@ -1,5 +0,0 @@ -:class:`curses.textpad.Textbox` now lets the lower-right cell of the window be -edited. Writing it with :meth:`~curses.window.addch` would move the cursor -past the end of the window, raising an error and scrolling a scrollable window, -so it is now written with :meth:`~curses.window.insch`, which keeps the cursor -in place. diff --git a/Misc/NEWS.d/next/Library/2026-06-27-12-30-00.gh-issue-133031.Na8Bit.rst b/Misc/NEWS.d/next/Library/2026-06-27-12-30-00.gh-issue-133031.Na8Bit.rst deleted file mode 100644 index 96e9efe20e42f04..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-27-12-30-00.gh-issue-133031.Na8Bit.rst +++ /dev/null @@ -1,3 +0,0 @@ -:class:`curses.textpad.Textbox` now enters and reads back the non-ASCII -characters of an 8-bit locale encoding, instead of mangling them with a 7-bit -mask. diff --git a/Misc/NEWS.d/next/Library/2026-06-27-17-19-09.gh-issue-151126.huUyOM.rst b/Misc/NEWS.d/next/Library/2026-06-27-17-19-09.gh-issue-151126.huUyOM.rst deleted file mode 100644 index 2e51fd45b595486..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-27-17-19-09.gh-issue-151126.huUyOM.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix two crashes in :mod:`tkinter` and :mod:`socket` modules initialization -under a memory pressure. Sets missing :exc:`MemoryError`. diff --git a/Misc/NEWS.d/next/Library/2026-06-28-11-00-40.gh-issue-78335.Kp3mWq.rst b/Misc/NEWS.d/next/Library/2026-06-28-11-00-40.gh-issue-78335.Kp3mWq.rst deleted file mode 100644 index 641889cfa9ef41d..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-28-11-00-40.gh-issue-78335.Kp3mWq.rst +++ /dev/null @@ -1,4 +0,0 @@ -Update the docstrings of :mod:`tkinter` and :mod:`tkinter.ttk` widget classes -to list all supported widget options, including options added in Tk 9.0 and -9.1. ``tkinter.Menubutton`` and ``tkinter.Message`` previously had no option -list at all. diff --git a/Misc/NEWS.d/next/Library/2026-06-29-22-16-57.gh-issue-50966.Tq5mLp.rst b/Misc/NEWS.d/next/Library/2026-06-29-22-16-57.gh-issue-50966.Tq5mLp.rst deleted file mode 100644 index 96a0938c02d226b..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-29-22-16-57.gh-issue-50966.Tq5mLp.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix unbounded recursion in :mod:`turtle` when a mouse event handler that moves -the turtle is reentered while the screen is being redrawn, for example with -``screen.ondrag(turtle.goto)``. This could previously crash the interpreter. diff --git a/Misc/NEWS.d/next/Library/2026-06-30-12-00-00.gh-issue-40038.qK7mGv.rst b/Misc/NEWS.d/next/Library/2026-06-30-12-00-00.gh-issue-40038.qK7mGv.rst deleted file mode 100644 index 1f393d23266bcef..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-30-12-00-00.gh-issue-40038.qK7mGv.rst +++ /dev/null @@ -1,6 +0,0 @@ -:mod:`imaplib` now again quotes command arguments when necessary, for -example mailbox names containing a space. Such quoting was inadvertently -disabled when the module was ported to Python 3, and the arguments are now -quoted according to the :rfc:`3501` grammar. For backward compatibility, -an argument already enclosed in double quotes is left unchanged, so code -that quotes arguments itself keeps working. diff --git a/Misc/NEWS.d/next/Library/2026-06-30-21-40-00.gh-issue-152502.Kq3Vn7.rst b/Misc/NEWS.d/next/Library/2026-06-30-21-40-00.gh-issue-152502.Kq3Vn7.rst deleted file mode 100644 index 815bc47966c40c3..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-06-30-21-40-00.gh-issue-152502.Kq3Vn7.rst +++ /dev/null @@ -1,5 +0,0 @@ -Detect the :mod:`curses` mouse interface (:func:`~curses.getmouse`, the -``BUTTON*`` constants, and others) with a configure capability probe or library -macros instead of gating it on ncurses-specific macros. It is now also -available with other curses implementations that provide it, such as NetBSD -curses and PDCurses (the latter underpins ``windows-curses``). diff --git a/Misc/NEWS.d/next/Library/2026-07-01-10-00-00.gh-issue-88574.Kz3wQm.rst b/Misc/NEWS.d/next/Library/2026-07-01-10-00-00.gh-issue-88574.Kz3wQm.rst deleted file mode 100644 index 371f4d08bccd2e2..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-01-10-00-00.gh-issue-88574.Kz3wQm.rst +++ /dev/null @@ -1,4 +0,0 @@ -:mod:`imaplib` no longer fails when a server sends a spurious blank line -after the counted data of a literal, including after a literal that -terminates a response (such as a mailbox name returned by ``LIST``). -Such blank lines are now skipped without swallowing the following line. diff --git a/Misc/NEWS.d/next/Library/2026-07-01-10-30-00.gh-issue-63121.Rm4tZp.rst b/Misc/NEWS.d/next/Library/2026-07-01-10-30-00.gh-issue-63121.Rm4tZp.rst deleted file mode 100644 index a63b164ad7a627b..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-01-10-30-00.gh-issue-63121.Rm4tZp.rst +++ /dev/null @@ -1,7 +0,0 @@ -:mod:`imaplib` now refreshes the cached capability list after a successful -:meth:`~imaplib.IMAP4.login` or :meth:`~imaplib.IMAP4.authenticate`, using -the ``CAPABILITY`` response sent by the server or, if none was sent, by -querying it, so that capabilities that become available only after -authentication (such as ``ENABLE`` on Gmail) are recognized. Capabilities -advertised in the server greeting are now also used, avoiding a redundant -``CAPABILITY`` command. diff --git a/Misc/NEWS.d/next/Library/2026-07-01-11-29-13.gh-issue-151126.eElGy5.rst b/Misc/NEWS.d/next/Library/2026-07-01-11-29-13.gh-issue-151126.eElGy5.rst deleted file mode 100644 index d5ec1d254ef056e..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-01-11-29-13.gh-issue-151126.eElGy5.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a crash caused by failing to set :exc:`MemoryError` on allocation failure -when passing :class:`ctypes.Structure` or :class:`ctypes.Union` instances by -value to ctypes foreign functions. diff --git a/Misc/NEWS.d/next/Library/2026-07-01-12-00-00.gh-issue-108280.Nq8vTr.rst b/Misc/NEWS.d/next/Library/2026-07-01-12-00-00.gh-issue-108280.Nq8vTr.rst deleted file mode 100644 index 487c9da67f1832b..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-01-12-00-00.gh-issue-108280.Nq8vTr.rst +++ /dev/null @@ -1,4 +0,0 @@ -Connecting :mod:`imaplib` to a server that does not send a valid IMAP4 -greeting (for example a POP3 server answering on the IMAP port) now raises -an error reporting the server's response instead of -``imaplib.IMAP4.error: None``. diff --git a/Misc/NEWS.d/next/Library/2026-07-02-12-00-00.gh-issue-152847.PitKqc.rst b/Misc/NEWS.d/next/Library/2026-07-02-12-00-00.gh-issue-152847.PitKqc.rst deleted file mode 100644 index 3f20d78a201e84c..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-02-12-00-00.gh-issue-152847.PitKqc.rst +++ /dev/null @@ -1,3 +0,0 @@ -Reject a POSIX TZ transition rule with non-digit characters in the -day-of-year field in the pure-Python :mod:`zoneinfo` parser. Patch by -tonghuaroot. diff --git a/Misc/NEWS.d/next/Library/2026-07-02-13-30-00.gh-issue-152849.K9dRvP.rst b/Misc/NEWS.d/next/Library/2026-07-02-13-30-00.gh-issue-152849.K9dRvP.rst deleted file mode 100644 index 053a5dfea3f3ff4..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-02-13-30-00.gh-issue-152849.K9dRvP.rst +++ /dev/null @@ -1,2 +0,0 @@ -Out-of-range float and integer timestamps now raise :exc:`OverflowError` -with the same message. Patch by tonghuaroot. diff --git a/Misc/NEWS.d/next/Library/2026-07-02-22-19-53.gh-issue-150880.vPZ7jK.rst b/Misc/NEWS.d/next/Library/2026-07-02-22-19-53.gh-issue-150880.vPZ7jK.rst deleted file mode 100644 index a7bf210f8e1ca9c..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-02-22-19-53.gh-issue-150880.vPZ7jK.rst +++ /dev/null @@ -1,3 +0,0 @@ -Normalize non-extended Windows paths before appending the wildcard used by -``os.listdir()`` and ``os.scandir()``, making paths with trailing spaces -behave consistently with other filesystem APIs. diff --git a/Misc/NEWS.d/next/Library/2026-07-03-14-54-33.gh-issue-152951.u8tPCI.rst b/Misc/NEWS.d/next/Library/2026-07-03-14-54-33.gh-issue-152951.u8tPCI.rst deleted file mode 100644 index c3d56c6d59c91b3..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-03-14-54-33.gh-issue-152951.u8tPCI.rst +++ /dev/null @@ -1,2 +0,0 @@ -:class:`collections.deque` prevent rare crash when calling ``extend`` under -high memory pressure conditions. diff --git a/Misc/NEWS.d/next/Library/2026-07-03-21-10-00.gh-issue-54930.hq09Er.rst b/Misc/NEWS.d/next/Library/2026-07-03-21-10-00.gh-issue-54930.hq09Er.rst deleted file mode 100644 index 1cfc0212c609a69..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-03-21-10-00.gh-issue-54930.hq09Er.rst +++ /dev/null @@ -1,5 +0,0 @@ -Error responses of :class:`http.server.BaseHTTPRequestHandler` to malformed -request lines now include a status line and headers instead of being sent in -the bare HTTP/0.9 style. -Only a valid HTTP/0.9 request (a two-word ``GET`` request line) now receives -an HTTP/0.9 style response. diff --git a/Misc/NEWS.d/next/Library/2026-07-04-13-00-00.gh-issue-135661.CIkADG.rst b/Misc/NEWS.d/next/Library/2026-07-04-13-00-00.gh-issue-135661.CIkADG.rst deleted file mode 100644 index 26a912a6f3a1949..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-04-13-00-00.gh-issue-135661.CIkADG.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :class:`html.parser.HTMLParser`: an abruptly closed empty comment -(``<!-->`` or ``<!--->``) no longer extends up to a later ``-->`` in the same -:meth:`~html.parser.HTMLParser.feed` call. diff --git a/Misc/NEWS.d/next/Library/2026-07-05-12-00-00.gh-issue-153056.tMpLat.rst b/Misc/NEWS.d/next/Library/2026-07-05-12-00-00.gh-issue-153056.tMpLat.rst deleted file mode 100644 index 483340d35042159..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-05-12-00-00.gh-issue-153056.tMpLat.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :class:`string.Template` raising a spurious :exc:`ValueError` when the -*pattern* attribute is a compiled regular expression object, which the -documentation allows. diff --git a/Misc/NEWS.d/next/Library/2026-07-05-16-09-31.gh-issue-153068.huY9Jh.rst b/Misc/NEWS.d/next/Library/2026-07-05-16-09-31.gh-issue-153068.huY9Jh.rst deleted file mode 100644 index accf6e99cd6434d..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-05-16-09-31.gh-issue-153068.huY9Jh.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :meth:`!cProfile.Profile.enable` to no longer overwrite errors from -:mod:`sys.monitoring`. diff --git a/Misc/NEWS.d/next/Library/2026-07-06-12-00-00.gh-issue-153200.isqrtLt.rst b/Misc/NEWS.d/next/Library/2026-07-06-12-00-00.gh-issue-153200.isqrtLt.rst deleted file mode 100644 index a27ac73fe31a70a..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-06-12-00-00.gh-issue-153200.isqrtLt.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :func:`math.isqrt` returning an incorrect result for arguments not -less than 2**64 that are instances of an :class:`int` subclass with an -overridden comparison operator. diff --git a/Misc/NEWS.d/next/Library/2026-07-07-02-26-43.gh-issue-153210.LUXIcm.rst b/Misc/NEWS.d/next/Library/2026-07-07-02-26-43.gh-issue-153210.LUXIcm.rst deleted file mode 100644 index d5d4b7c1b8c0ed4..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-07-02-26-43.gh-issue-153210.LUXIcm.rst +++ /dev/null @@ -1 +0,0 @@ -Fix crash on :mod:`array` import under a memory pressure. diff --git a/Misc/NEWS.d/next/Library/2026-07-07-17-50-54.gh-issue-143990.FoNtCf.rst b/Misc/NEWS.d/next/Library/2026-07-07-17-50-54.gh-issue-143990.FoNtCf.rst deleted file mode 100644 index a78dcccf482ab59..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-07-17-50-54.gh-issue-143990.FoNtCf.rst +++ /dev/null @@ -1,4 +0,0 @@ -A :class:`tkinter.font.Font` created from a named font, -including by :meth:`~tkinter.font.Font.copy`, -now copies its configured options rather than the options resolved by Tcl's ``font actual``, -preserving a size specified in pixels (a negative size). diff --git a/Misc/NEWS.d/next/Library/2026-07-08-01-47-15.gh-issue-153083.XbKZCp.rst b/Misc/NEWS.d/next/Library/2026-07-08-01-47-15.gh-issue-153083.XbKZCp.rst deleted file mode 100644 index b6d96851e17342f..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-08-01-47-15.gh-issue-153083.XbKZCp.rst +++ /dev/null @@ -1,2 +0,0 @@ -Defer GC tracking of an :class:`array.array` to the end of its construction. -Patch by Donghee Na. diff --git a/Misc/NEWS.d/next/Library/2026-07-09-00-00-00.gh-issue-153406.vyMmB6.rst b/Misc/NEWS.d/next/Library/2026-07-09-00-00-00.gh-issue-153406.vyMmB6.rst deleted file mode 100644 index c09575754e33804..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-09-00-00-00.gh-issue-153406.vyMmB6.rst +++ /dev/null @@ -1,3 +0,0 @@ -:func:`email.utils.parsedate_to_datetime` now raises :exc:`ValueError` -instead of :exc:`OverflowError` when the parsed year or timezone offset is -out of range, matching its documented behavior. diff --git a/Misc/NEWS.d/next/Library/2026-07-09-14-00-00.gh-issue-153417.Bw7Rq2.rst b/Misc/NEWS.d/next/Library/2026-07-09-14-00-00.gh-issue-153417.Bw7Rq2.rst deleted file mode 100644 index ebc36fa7c228d08..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-09-14-00-00.gh-issue-153417.Bw7Rq2.rst +++ /dev/null @@ -1,3 +0,0 @@ -Error messages from :meth:`imaplib.IMAP4.select` and :meth:`imaplib.IMAP4.uid` -no longer raise :exc:`BytesWarning` under :option:`!-bb` -when the mailbox or command argument is :class:`bytes`. diff --git a/Misc/NEWS.d/next/Library/2026-07-09-16-35-47.gh-issue-153404.daRkes.rst b/Misc/NEWS.d/next/Library/2026-07-09-16-35-47.gh-issue-153404.daRkes.rst deleted file mode 100644 index 0746d3f12149d52..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-09-16-35-47.gh-issue-153404.daRkes.rst +++ /dev/null @@ -1,4 +0,0 @@ -:class:`urllib.robotparser.RobotFileParser` now silently ignores a -``Crawl-delay`` or ``Request-rate`` value written with non-decimal digits -(such as ``U+00B2 SUPERSCRIPT TWO``) instead of raising :exc:`ValueError` -and aborting the parse of the whole ``robots.txt`` file. diff --git a/Misc/NEWS.d/next/Library/2026-07-12-00-00-00.gh-issue-85943.8f906e.rst b/Misc/NEWS.d/next/Library/2026-07-12-00-00-00.gh-issue-85943.8f906e.rst deleted file mode 100644 index 0a93bf2e7b803e3..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-12-00-00-00.gh-issue-85943.8f906e.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix :mod:`struct` functions raising :exc:`BytesWarning` under the ``-bb`` -command line option when a :class:`str` format is used after an equal -:class:`bytes` format (or vice versa). The internal format cache no longer -mixes :class:`str` and :class:`bytes` keys. diff --git a/Misc/NEWS.d/next/Library/2026-07-13-10-27-08.gh-issue-153658.A6o4n5.rst b/Misc/NEWS.d/next/Library/2026-07-13-10-27-08.gh-issue-153658.A6o4n5.rst deleted file mode 100644 index 06385bb7754b127..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-13-10-27-08.gh-issue-153658.A6o4n5.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :meth:`sqlite3.Connection.iterdump` raising :exc:`sqlite3.OperationalError` -when a table name contains a single quote. Patch by tonghuaroot. diff --git a/Misc/NEWS.d/next/Library/2026-07-14-19-45-21.gh-issue-153695.UYdZJZ.rst b/Misc/NEWS.d/next/Library/2026-07-14-19-45-21.gh-issue-153695.UYdZJZ.rst deleted file mode 100644 index 43d7feebf97d6f2..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-14-19-45-21.gh-issue-153695.UYdZJZ.rst +++ /dev/null @@ -1,2 +0,0 @@ -Hashing a :class:`sqlite3.Row` that contains an unhashable value now raises -:exc:`TypeError` instead of :exc:`SystemError`. Patch by tonghuaroot. diff --git a/Misc/NEWS.d/next/Library/2026-07-15-14-24-18.gh-issue-153761.8jqs67.rst b/Misc/NEWS.d/next/Library/2026-07-15-14-24-18.gh-issue-153761.8jqs67.rst deleted file mode 100644 index 68e007e66e0396c..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-15-14-24-18.gh-issue-153761.8jqs67.rst +++ /dev/null @@ -1 +0,0 @@ -Fix cancelling :meth:`asyncio.loop.sock_accept` dropping a pending connection. diff --git a/Misc/NEWS.d/next/Library/2026-07-15-21-56-40.gh-issue-146011.nWmHif.rst b/Misc/NEWS.d/next/Library/2026-07-15-21-56-40.gh-issue-146011.nWmHif.rst deleted file mode 100644 index 0cac0257040bd6b..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-15-21-56-40.gh-issue-146011.nWmHif.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix a heap-use-after-free in the C implementation of :mod:`decimal` -when calling :func:`repr` after deleting the :class:`~decimal.Context`. diff --git a/Misc/NEWS.d/next/Library/2026-07-17-20-31-00.gh-issue-153862.X3kjoY.rst b/Misc/NEWS.d/next/Library/2026-07-17-20-31-00.gh-issue-153862.X3kjoY.rst deleted file mode 100644 index aa646dc6c49174b..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-17-20-31-00.gh-issue-153862.X3kjoY.rst +++ /dev/null @@ -1,3 +0,0 @@ -On a wide :mod:`curses` build, :meth:`curses.window.inch` now returns the -locale-encoded byte of a non-ASCII character, matching -:meth:`~curses.window.instr`, instead of the low byte of its code point. diff --git a/Misc/NEWS.d/next/Library/2026-07-17-20-56-32.gh-issue-153864.WmA9By.rst b/Misc/NEWS.d/next/Library/2026-07-17-20-56-32.gh-issue-153864.WmA9By.rst deleted file mode 100644 index 79857185d7d0c76..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-17-20-56-32.gh-issue-153864.WmA9By.rst +++ /dev/null @@ -1,3 +0,0 @@ -On a wide :mod:`curses` build, :meth:`curses.window.insch` now inserts a -non-ASCII byte as the character it encodes in the window's encoding, -consistently with :meth:`~curses.window.addch`, instead of its code point. diff --git a/Misc/NEWS.d/next/Library/2026-07-18-10-52-10.gh-issue-153896.87oevp.rst b/Misc/NEWS.d/next/Library/2026-07-18-10-52-10.gh-issue-153896.87oevp.rst deleted file mode 100644 index 217a3d3d272ed07..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-18-10-52-10.gh-issue-153896.87oevp.rst +++ /dev/null @@ -1 +0,0 @@ -Deduplicate unhashable args in :data:`typing.Literal`. diff --git a/Misc/NEWS.d/next/Library/2026-07-18-17-09-49.gh-issue-154001.3brrUv.rst b/Misc/NEWS.d/next/Library/2026-07-18-17-09-49.gh-issue-154001.3brrUv.rst deleted file mode 100644 index ff019aa36188479..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-18-17-09-49.gh-issue-154001.3brrUv.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :func:`random.binomialvariate` raising :exc:`ZeroDivisionError` -when :func:`random.random` returns zero. diff --git a/Misc/NEWS.d/next/Library/2026-07-20-12-40-00.gh-issue-145030.TFJm6k.rst b/Misc/NEWS.d/next/Library/2026-07-20-12-40-00.gh-issue-145030.TFJm6k.rst deleted file mode 100644 index 2f1b717b40ea74a..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-20-12-40-00.gh-issue-145030.TFJm6k.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :mod:`asyncio` write pipe transports for named FIFOs on macOS and Solaris. -Unread data sitting in the FIFO made the transport misinterpret a poll event -as the reader disconnecting, wrongly closing the transport. diff --git a/Misc/NEWS.d/next/Library/2026-07-20-14-00-00.gh-issue-154227.openpt.rst b/Misc/NEWS.d/next/Library/2026-07-20-14-00-00.gh-issue-154227.openpt.rst deleted file mode 100644 index e33d090d78c5934..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-20-14-00-00.gh-issue-154227.openpt.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :func:`os.posix_openpt` on OpenBSD, where it rejected the -:data:`~os.O_CLOEXEC` flag. diff --git a/Misc/NEWS.d/next/Library/2026-07-20-14-10-00.gh-issue-154225.openpty.rst b/Misc/NEWS.d/next/Library/2026-07-20-14-10-00.gh-issue-154225.openpty.rst deleted file mode 100644 index f15022b66320062..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-20-14-10-00.gh-issue-154225.openpty.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :func:`os.openpty` on Solaris and illumos: it no longer leaves the -pseudo-terminal as the controlling terminal of the calling process. diff --git a/Misc/NEWS.d/next/Library/2026-07-20-18-30-00.gh-issue-154258.mmapresize.rst b/Misc/NEWS.d/next/Library/2026-07-20-18-30-00.gh-issue-154258.mmapresize.rst deleted file mode 100644 index 4c33336e0bbdcad..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-20-18-30-00.gh-issue-154258.mmapresize.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a crash in :meth:`mmap.mmap.resize` on NetBSD when growing a shared -anonymous mapping. :meth:`!resize` now raises :exc:`ValueError` in this -case, as it already did on Linux. diff --git a/Misc/NEWS.d/next/Library/2026-07-20-21-36-40.gh-issue-154283.Xip7xE.rst b/Misc/NEWS.d/next/Library/2026-07-20-21-36-40.gh-issue-154283.Xip7xE.rst deleted file mode 100644 index a278d67e1824d58..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-20-21-36-40.gh-issue-154283.Xip7xE.rst +++ /dev/null @@ -1,2 +0,0 @@ -On DragonFly BSD, :func:`threading.get_native_id` now returns a value that is -unique across processes, matching the other platforms. diff --git a/Misc/NEWS.d/next/Library/2026-07-20-22-03-44.gh-issue-154291.Mi5HeQ.rst b/Misc/NEWS.d/next/Library/2026-07-20-22-03-44.gh-issue-154291.Mi5HeQ.rst deleted file mode 100644 index d962f8987ad491e..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-20-22-03-44.gh-issue-154291.Mi5HeQ.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :func:`socket.has_dualstack_ipv6` to return ``False`` on platforms such as -DragonFly BSD where setting ``IPV6_V6ONLY`` to 0 silently has no -effect. diff --git a/Misc/NEWS.d/next/Library/2026-07-21-01-13-39.gh-issue-154307.UNFKL4.rst b/Misc/NEWS.d/next/Library/2026-07-21-01-13-39.gh-issue-154307.UNFKL4.rst deleted file mode 100644 index fdba0c2940f0050..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-21-01-13-39.gh-issue-154307.UNFKL4.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :meth:`tempfile.TemporaryDirectory.cleanup` on DragonFly BSD, where removing -a file with the ``UF_NOUNLINK`` flag failed with ``EISDIR`` instead of -``EPERM``. diff --git a/Misc/NEWS.d/next/Library/2026-07-21-08-31-55.gh-issue-154324.vDxV5U.rst b/Misc/NEWS.d/next/Library/2026-07-21-08-31-55.gh-issue-154324.vDxV5U.rst deleted file mode 100644 index 388e4deb7c41989..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-21-08-31-55.gh-issue-154324.vDxV5U.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :func:`os.sendfile` on illumos: -it no longer reports a successful transfer -when the underlying system call failed without writing any data. diff --git a/Misc/NEWS.d/next/Library/2026-07-21-20-34-05.gh-issue-154389.DlTiii.rst b/Misc/NEWS.d/next/Library/2026-07-21-20-34-05.gh-issue-154389.DlTiii.rst deleted file mode 100644 index eb2e2edc2d720e7..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-21-20-34-05.gh-issue-154389.DlTiii.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :func:`uuid.uuid1` on OpenBSD: -it returned a version 4 UUID, -because ``uuid_create()`` generates random UUIDs on this platform. diff --git a/Misc/NEWS.d/next/Library/2026-07-21-21-36-59.gh-issue-154399.VSa6oH.rst b/Misc/NEWS.d/next/Library/2026-07-21-21-36-59.gh-issue-154399.VSa6oH.rst deleted file mode 100644 index 598dd26694c73e4..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-21-21-36-59.gh-issue-154399.VSa6oH.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :mod:`venv` activation in a non-interactive csh: -``activate.csh`` no longer fails -when the ``prompt`` variable is not set. diff --git a/Misc/NEWS.d/next/Library/2026-07-22-10-30-08.gh-issue-154435.xCxm0T.rst b/Misc/NEWS.d/next/Library/2026-07-22-10-30-08.gh-issue-154435.xCxm0T.rst deleted file mode 100644 index b468e929b1ca18b..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-22-10-30-08.gh-issue-154435.xCxm0T.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :func:`os.posix_fadvise` and :func:`os.posix_fallocate` on DragonFly BSD: -they raised :exc:`OSError` with a meaningless error code, -because these functions return -1 and set ``errno`` there. diff --git a/Misc/NEWS.d/next/Library/2026-07-22-13-00-00.gh-issue-154460.wCsFtM.rst b/Misc/NEWS.d/next/Library/2026-07-22-13-00-00.gh-issue-154460.wCsFtM.rst deleted file mode 100644 index b0a7058f0519ff0..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-22-13-00-00.gh-issue-154460.wCsFtM.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix :func:`time.strftime` and :meth:`datetime.datetime.strftime` returning a -wrong ISO 8601 week number (``%V``) on OpenBSD. diff --git a/Misc/NEWS.d/next/Library/2026-07-22-13-01-24.gh-issue-73458.byxSPi.rst b/Misc/NEWS.d/next/Library/2026-07-22-13-01-24.gh-issue-73458.byxSPi.rst deleted file mode 100644 index 27b6eeac5b520b2..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-22-13-01-24.gh-issue-73458.byxSPi.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fix :func:`logging.config.listen`: it left the caller waiting for the -``ready`` event forever if the server could not be started, -for example if the port was invalid or already in use. -It now also binds to an IPv6 address if the host has no IPv4 address, -for example if ``localhost`` is only aliased to ``::1``. diff --git a/Misc/NEWS.d/next/Library/2026-07-23-06-53-01.gh-issue-79366.3gMT7I.rst b/Misc/NEWS.d/next/Library/2026-07-23-06-53-01.gh-issue-79366.3gMT7I.rst deleted file mode 100644 index ecb3c3ad92cb2be..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-23-06-53-01.gh-issue-79366.3gMT7I.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed a race condition in :mod:`logging`: -if a handler was removed while a record was being emitted, -the following handlers of the same logger could be skipped. diff --git a/Misc/NEWS.d/next/Library/2026-07-23-19-45-00.gh-issue-154551.Ct7pL9.rst b/Misc/NEWS.d/next/Library/2026-07-23-19-45-00.gh-issue-154551.Ct7pL9.rst deleted file mode 100644 index c4db19d89364e07..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-23-19-45-00.gh-issue-154551.Ct7pL9.rst +++ /dev/null @@ -1 +0,0 @@ -Fix :func:`ctypes.util.find_library` returning ``None`` in non-UTF-8 locales. diff --git a/Misc/NEWS.d/next/Library/2026-07-25-13-30-00.gh-issue-93251.gAiErr.rst b/Misc/NEWS.d/next/Library/2026-07-25-13-30-00.gh-issue-93251.gAiErr.rst deleted file mode 100644 index 3f313030802f875..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-25-13-30-00.gh-issue-93251.gAiErr.rst +++ /dev/null @@ -1,4 +0,0 @@ -Fix :exc:`UnicodeDecodeError` in :mod:`socket` functions -(such as :func:`~socket.getaddrinfo` and :func:`~socket.gethostbyaddr`) -when the localized error message of the C library is not UTF-8: -decode it from the locale encoding. diff --git a/Misc/NEWS.d/next/Library/2026-07-26-00-00-00.gh-issue-154738.Rd5Pxe.rst b/Misc/NEWS.d/next/Library/2026-07-26-00-00-00.gh-issue-154738.Rd5Pxe.rst deleted file mode 100644 index 1a6e1a301db466f..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-26-00-00-00.gh-issue-154738.Rd5Pxe.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix :meth:`!ExternalEntityParserCreate` not propagating the reparse-deferral -setting to the subparser, which left :meth:`!GetReparseDeferralEnabled` -returning an uninitialized value. Patch by tonghuaroot. diff --git a/Misc/NEWS.d/next/Library/2026-07-29-11-20-00.gh-issue-98820.Qm7Hs4.rst b/Misc/NEWS.d/next/Library/2026-07-29-11-20-00.gh-issue-98820.Qm7Hs4.rst deleted file mode 100644 index aa9ae8d937004fe..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-29-11-20-00.gh-issue-98820.Qm7Hs4.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix quadratic time in :meth:`csv.Sniffer.sniff` for a sample which contains -quoted fields, in particular for a single column of quoted fields. diff --git a/Misc/NEWS.d/next/Library/2026-07-29-11-25-00.gh-issue-109638.Vt2Rn9.rst b/Misc/NEWS.d/next/Library/2026-07-29-11-25-00.gh-issue-109638.Vt2Rn9.rst deleted file mode 100644 index f44163a20c8278e..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-29-11-25-00.gh-issue-109638.Vt2Rn9.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix exponential time in :meth:`csv.Sniffer.sniff` for a sample which contains -many quote characters. A doubled quote character is now also detected in -a field which contains the delimiter or a line break. diff --git a/Misc/NEWS.d/next/Library/2026-07-29-18-30-00.gh-issue-154848.Fr4meB.rst b/Misc/NEWS.d/next/Library/2026-07-29-18-30-00.gh-issue-154848.Fr4meB.rst deleted file mode 100644 index 02ca6c6346f55b6..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-29-18-30-00.gh-issue-154848.Fr4meB.rst +++ /dev/null @@ -1,6 +0,0 @@ -The :mod:`pickle` C accelerator now enforces frame boundaries when -unpickling, as the pure Python implementation already did. An argument that -straddles a frame boundary, or a frame that begins before the previous one has -ended, now raises :exc:`pickle.UnpicklingError` instead of -being silently read across the boundary. This prevents the loaded data from -diverging from the :mod:`pickletools` disassembly of the same pickle. diff --git a/Misc/NEWS.d/next/Library/2026-07-29-19-48-59.gh-issue-154871.tgZILS.rst b/Misc/NEWS.d/next/Library/2026-07-29-19-48-59.gh-issue-154871.tgZILS.rst deleted file mode 100644 index 8f0f1096dfe6347..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-29-19-48-59.gh-issue-154871.tgZILS.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fixed a crash in :meth:`asyncio.Task.get_context` -when called on an uninitialized task. diff --git a/Misc/NEWS.d/next/Library/2026-07-29-21-37-39.gh-issue-154892.eQyJ3Z.rst b/Misc/NEWS.d/next/Library/2026-07-29-21-37-39.gh-issue-154892.eQyJ3Z.rst deleted file mode 100644 index 5088b0418d26351..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-29-21-37-39.gh-issue-154892.eQyJ3Z.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix a bug in the C accelerator for :mod:`zoneinfo` where -:class:`datetime.datetime` subclasses returning ``-1`` for ``hour``, -``minute``, or ``second`` could incorrectly raise a :exc:`SystemError`. diff --git a/Misc/NEWS.d/next/Library/2026-07-30-23-29-56.gh-issue-154936.a90443.rst b/Misc/NEWS.d/next/Library/2026-07-30-23-29-56.gh-issue-154936.a90443.rst deleted file mode 100644 index 19660c406eb2d0f..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-07-30-23-29-56.gh-issue-154936.a90443.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix the pure Python :mod:`json` decoder to report the correct position for -invalid literal control characters in JSON strings. diff --git a/Misc/NEWS.d/next/Library/2026-08-01-18-37-56.gh-issue-155063.xC9PcH.rst b/Misc/NEWS.d/next/Library/2026-08-01-18-37-56.gh-issue-155063.xC9PcH.rst deleted file mode 100644 index 1825ead57e31e26..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-08-01-18-37-56.gh-issue-155063.xC9PcH.rst +++ /dev/null @@ -1 +0,0 @@ -Bump the version of pip bundled in ensurepip to version 26.2 diff --git a/Misc/NEWS.d/next/Library/2026-08-04-19-03-20.gh-issue-155063.gN_mCU.rst b/Misc/NEWS.d/next/Library/2026-08-04-19-03-20.gh-issue-155063.gN_mCU.rst deleted file mode 100644 index fdb03c907a581ca..000000000000000 --- a/Misc/NEWS.d/next/Library/2026-08-04-19-03-20.gh-issue-155063.gN_mCU.rst +++ /dev/null @@ -1 +0,0 @@ -Bump the version of pip bundled in ensurepip to version 26.2.1 diff --git a/Misc/NEWS.d/next/Security/2026-01-16-11-41-06.gh-issue-143921.AeCOor.rst b/Misc/NEWS.d/next/Security/2026-01-16-11-41-06.gh-issue-143921.AeCOor.rst deleted file mode 100644 index de62e020a95e6b2..000000000000000 --- a/Misc/NEWS.d/next/Security/2026-01-16-11-41-06.gh-issue-143921.AeCOor.rst +++ /dev/null @@ -1,2 +0,0 @@ -Reject NUL, CR and LF characters in IMAP commands. Other control -characters are allowed and sent quoted. diff --git a/Misc/NEWS.d/next/Security/2026-01-16-11-58-19.gh-issue-143927.aviFeG.rst b/Misc/NEWS.d/next/Security/2026-01-16-11-58-19.gh-issue-143927.aviFeG.rst deleted file mode 100644 index ca554997e5c3963..000000000000000 --- a/Misc/NEWS.d/next/Security/2026-01-16-11-58-19.gh-issue-143927.aviFeG.rst +++ /dev/null @@ -1,2 +0,0 @@ -Normalize all line endings (CR, CRLF, and LF) to LF+TAB when writing -multi-line configparser values. diff --git a/Misc/NEWS.d/next/Security/2026-05-30-00-00-00.gh-issue-150743.httpdos.rst b/Misc/NEWS.d/next/Security/2026-05-30-00-00-00.gh-issue-150743.httpdos.rst deleted file mode 100644 index 4cc4e4b092da71c..000000000000000 --- a/Misc/NEWS.d/next/Security/2026-05-30-00-00-00.gh-issue-150743.httpdos.rst +++ /dev/null @@ -1,6 +0,0 @@ -:mod:`http.client` now limits the number of chunked-response trailer lines -it will read to 100, and the number of interim (1xx) responses it will -skip to 100. A malicious or broken server could previously stream trailer -lines or ``100 Continue`` responses forever, hanging the client even when -a socket timeout was in use. -Reported by ``@YLChen-007`` via GHSA-w4q2-g22w-6fr4. diff --git a/Misc/NEWS.d/next/Security/2026-06-10-13-08-19.gh-issue-151558.mL74i2.rst b/Misc/NEWS.d/next/Security/2026-06-10-13-08-19.gh-issue-151558.mL74i2.rst deleted file mode 100644 index 74459d5680e21a3..000000000000000 --- a/Misc/NEWS.d/next/Security/2026-06-10-13-08-19.gh-issue-151558.mL74i2.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed an vulnerability in the :mod:`tarfile` ``data`` and ``tar`` extraction -filters where crafted archives could create a symlink pointing outside the -destination directory. This was a bypass of :cve:`2025-4330`. diff --git a/Misc/NEWS.d/next/Security/2026-06-16-14-58-02.gh-issue-151544._bexVy.rst b/Misc/NEWS.d/next/Security/2026-06-16-14-58-02.gh-issue-151544._bexVy.rst deleted file mode 100644 index 418e3b4b9677943..000000000000000 --- a/Misc/NEWS.d/next/Security/2026-06-16-14-58-02.gh-issue-151544._bexVy.rst +++ /dev/null @@ -1,4 +0,0 @@ -:file:`Modules/Setup.local` is no longer used as a landmark to discover -whether Python is running in a source tree, as it could potentially affect -actual installs. The :file:`pybuilddir.txt` file is now the sole indicator -of running in a source tree. diff --git a/Misc/NEWS.d/next/Security/2026-06-23-13-28-16.gh-issue-151981.xBHEcU.rst b/Misc/NEWS.d/next/Security/2026-06-23-13-28-16.gh-issue-151981.xBHEcU.rst deleted file mode 100644 index 2123ab8e081b1d9..000000000000000 --- a/Misc/NEWS.d/next/Security/2026-06-23-13-28-16.gh-issue-151981.xBHEcU.rst +++ /dev/null @@ -1,2 +0,0 @@ -In :mod:`tarfile`, seeking a stream now stops when end of the stream is -reached. diff --git a/Misc/NEWS.d/next/Security/2026-06-23-14-19-30.gh-issue-151987.8mNIMf.rst b/Misc/NEWS.d/next/Security/2026-06-23-14-19-30.gh-issue-151987.8mNIMf.rst deleted file mode 100644 index 9eea7b32c4d2b4f..000000000000000 --- a/Misc/NEWS.d/next/Security/2026-06-23-14-19-30.gh-issue-151987.8mNIMf.rst +++ /dev/null @@ -1,2 +0,0 @@ -The :meth:`tarfile.TarFile.extract` method now applies the given filter when -it extracts a link target from the archive as a fallback. diff --git a/Misc/NEWS.d/next/Security/2026-06-25-20-44-20.gh-issue-152216.VxiK5y.rst b/Misc/NEWS.d/next/Security/2026-06-25-20-44-20.gh-issue-152216.VxiK5y.rst deleted file mode 100644 index 2769048e001d694..000000000000000 --- a/Misc/NEWS.d/next/Security/2026-06-25-20-44-20.gh-issue-152216.VxiK5y.rst +++ /dev/null @@ -1 +0,0 @@ -Update bundled `libexpat <https://libexpat.github.io/>`_ to version 2.8.2. diff --git a/Misc/NEWS.d/next/Security/2026-06-30-13-24-13.gh-issue-152674.-2QVoL.rst b/Misc/NEWS.d/next/Security/2026-06-30-13-24-13.gh-issue-152674.-2QVoL.rst deleted file mode 100644 index 69e73008af79f14..000000000000000 --- a/Misc/NEWS.d/next/Security/2026-06-30-13-24-13.gh-issue-152674.-2QVoL.rst +++ /dev/null @@ -1,6 +0,0 @@ -The :class:`xml.etree.ElementTree.Element` methods -:meth:`~xml.etree.ElementTree.Element.findall`, -:meth:`~xml.etree.ElementTree.Element.iterfind` and -:meth:`~xml.etree.ElementTree.Element.find` avoid quadratic behavior when -using XPath index predicates (``[1]``, ``[last()]``, ``[last()-N]``) on XML -documents with many same-tag siblings. diff --git a/Misc/NEWS.d/next/Security/2026-07-04-17-00-00.gh-issue-153030.RovkP6.rst b/Misc/NEWS.d/next/Security/2026-07-04-17-00-00.gh-issue-153030.RovkP6.rst deleted file mode 100644 index d1d60593f4ba7d2..000000000000000 --- a/Misc/NEWS.d/next/Security/2026-07-04-17-00-00.gh-issue-153030.RovkP6.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fixed quadratic complexity in incremental parsing of long unterminated -constructs (such as tags or comments) in :class:`html.parser.HTMLParser`, -which could be exploited for a denial of service. diff --git a/Misc/NEWS.d/next/Tests/2026-06-16-05-11-38.gh-issue-151096.Kq3Lp9.rst b/Misc/NEWS.d/next/Tests/2026-06-16-05-11-38.gh-issue-151096.Kq3Lp9.rst deleted file mode 100644 index 3251c6fb094723b..000000000000000 --- a/Misc/NEWS.d/next/Tests/2026-06-16-05-11-38.gh-issue-151096.Kq3Lp9.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix ``test_embed`` failing when CPython is configured with a split exec prefix -(``--exec-prefix`` differing from ``--prefix``). diff --git a/Misc/NEWS.d/next/Tests/2026-06-22-19-45-00.gh-issue-151626.K9pZ2x.rst b/Misc/NEWS.d/next/Tests/2026-06-22-19-45-00.gh-issue-151626.K9pZ2x.rst deleted file mode 100644 index 9858415018ae1ba..000000000000000 --- a/Misc/NEWS.d/next/Tests/2026-06-22-19-45-00.gh-issue-151626.K9pZ2x.rst +++ /dev/null @@ -1,5 +0,0 @@ -Fix several tests in ``test.test_inspect``, ``test.test_import``, -``test.test_importlib``, ``test.test_py_compile`` and -``test.test_compileall`` that failed when the test suite was run with -:envvar:`PYTHONPYCACHEPREFIX` set. These tests now neutralize the pycache -prefix where they assume the default ``__pycache__`` bytecode layout. diff --git a/Misc/NEWS.d/next/Tests/2026-06-29-10-14-09.gh-issue-152548.Khw9J7.rst b/Misc/NEWS.d/next/Tests/2026-06-29-10-14-09.gh-issue-152548.Khw9J7.rst deleted file mode 100644 index e8c81ed8a1f7ca9..000000000000000 --- a/Misc/NEWS.d/next/Tests/2026-06-29-10-14-09.gh-issue-152548.Khw9J7.rst +++ /dev/null @@ -1,3 +0,0 @@ -Add the :func:`test.support.isolation.runInSubprocess` decorator -to run a test method or ``TestCase`` subclass in a fresh interpreter subprocess, -isolated from the rest of the test run. diff --git a/Misc/NEWS.d/next/Tests/2026-07-19-18-20-00.gh-issue-154144.tcbool.rst b/Misc/NEWS.d/next/Tests/2026-07-19-18-20-00.gh-issue-154144.tcbool.rst deleted file mode 100644 index dc1ac8b4035153c..000000000000000 --- a/Misc/NEWS.d/next/Tests/2026-07-19-18-20-00.gh-issue-154144.tcbool.rst +++ /dev/null @@ -1 +0,0 @@ -Fix building the :mod:`!_testcapi` module on NetBSD. diff --git a/Misc/NEWS.d/next/Tests/2026-07-19-20-15-00.gh-issue-154167.sigint.rst b/Misc/NEWS.d/next/Tests/2026-07-19-20-15-00.gh-issue-154167.sigint.rst deleted file mode 100644 index b2620f4a0bee54c..000000000000000 --- a/Misc/NEWS.d/next/Tests/2026-07-19-20-15-00.gh-issue-154167.sigint.rst +++ /dev/null @@ -1,3 +0,0 @@ -The test runner (regrtest) now restores the default SIGINT handler if it -was inherited as ignored, so the test suite no longer hangs when run as -a shell background job. diff --git a/Misc/NEWS.d/next/Tests/2026-07-24-12-00-00.gh-issue-76595.KfF5xR.rst b/Misc/NEWS.d/next/Tests/2026-07-24-12-00-00.gh-issue-76595.KfF5xR.rst deleted file mode 100644 index c344ee2f2cb30b7..000000000000000 --- a/Misc/NEWS.d/next/Tests/2026-07-24-12-00-00.gh-issue-76595.KfF5xR.rst +++ /dev/null @@ -1 +0,0 @@ -Add C API tests for :c:func:`PyCapsule_Import`. diff --git a/Misc/NEWS.d/next/Tools-Demos/2026-07-24-09-30-00.gh-issue-154580.Kp3nQ2.rst b/Misc/NEWS.d/next/Tools-Demos/2026-07-24-09-30-00.gh-issue-154580.Kp3nQ2.rst deleted file mode 100644 index f6a039245b015ed..000000000000000 --- a/Misc/NEWS.d/next/Tools-Demos/2026-07-24-09-30-00.gh-issue-154580.Kp3nQ2.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix ``python-gdb.py`` raising :exc:`UnicodeEncodeError` when pretty-printing a -non-ASCII :class:`str` in a locale whose host charset cannot encode it, such as -any non-ASCII string in the C locale. diff --git a/Misc/NEWS.d/next/Tools-Demos/2026-08-04-17-12-33.gh-issue-64502.Qv7mLp.rst b/Misc/NEWS.d/next/Tools-Demos/2026-08-04-17-12-33.gh-issue-64502.Qv7mLp.rst deleted file mode 100644 index da9647d1fdd369b..000000000000000 --- a/Misc/NEWS.d/next/Tools-Demos/2026-08-04-17-12-33.gh-issue-64502.Qv7mLp.rst +++ /dev/null @@ -1,3 +0,0 @@ -Fix Argument Clinic support of parameters with a default value used together -with optional groups. -Such parameters were always required in the generated parsing code. diff --git a/Misc/NEWS.d/next/Tools-Demos/2026-08-05-10-24-17.gh-issue-155207.Wv3nKq.rst b/Misc/NEWS.d/next/Tools-Demos/2026-08-05-10-24-17.gh-issue-155207.Wv3nKq.rst deleted file mode 100644 index 392ab42bffa726e..000000000000000 --- a/Misc/NEWS.d/next/Tools-Demos/2026-08-05-10-24-17.gh-issue-155207.Wv3nKq.rst +++ /dev/null @@ -1,3 +0,0 @@ -Argument Clinic now supports the ``--dry-run`` and ``--diff`` options. -They list the files which would be changed, or write a unified diff of the -changes to the standard output, without modifying any file. diff --git a/Misc/NEWS.d/next/Tools-Demos/2026-08-05-14-02-55.gh-issue-155218.Nq4xZv.rst b/Misc/NEWS.d/next/Tools-Demos/2026-08-05-14-02-55.gh-issue-155218.Nq4xZv.rst deleted file mode 100644 index 909efc558693c0a..000000000000000 --- a/Misc/NEWS.d/next/Tools-Demos/2026-08-05-14-02-55.gh-issue-155218.Nq4xZv.rst +++ /dev/null @@ -1,2 +0,0 @@ -Fix Argument Clinic generating the flags of the optional groups in -different order on 32-bit and 64-bit platforms. diff --git a/Misc/NEWS.d/next/Windows/2026-04-21-16-07-11.gh-issue-140146.TAcUHA.rst b/Misc/NEWS.d/next/Windows/2026-04-21-16-07-11.gh-issue-140146.TAcUHA.rst deleted file mode 100644 index 2d3e42c86fd521f..000000000000000 --- a/Misc/NEWS.d/next/Windows/2026-04-21-16-07-11.gh-issue-140146.TAcUHA.rst +++ /dev/null @@ -1,3 +0,0 @@ -Prevent :mod:`tkinter` from hanging on Windows if stdin is redirected to a pipe in an -interactive session. This is helpful for testing interactive usage of -tkinter from a script, for example as part of the cpython test suite. diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst deleted file mode 100644 index 90804c179a4b4a4..000000000000000 --- a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +++ /dev/null @@ -1,3 +0,0 @@ -On macOS, do not attempt to use the :manpage:`dup3(2)` and -:manpage:`pipe2(2)` system calls introduced in -macOS 27 to prevent problems when running on older systems. diff --git a/README.rst b/README.rst index 480a559cb7905f9..02a0ed0271c7900 100644 --- a/README.rst +++ b/README.rst @@ -1,4 +1,4 @@ -This is Python version 3.13.14 +This is Python version 3.13.15 ============================== .. image:: https://github.com/python/cpython/workflows/Tests/badge.svg _______________________________________________ Python-checkins mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3//lists/python-checkins.python.org Member address: [email protected]