Mini Kabibi Habibi
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta property="og:title" content="Changelog" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://docs.python.org/3/whatsnew/changelog.html" />
<meta property="og:site_name" content="Python documentation" />
<meta property="og:description" content="Python 3.14.0 final: Release date: 2025-10-07 macOS: gh-124111: Update macOS installer to use Tcl/Tk 8.6.17., gh-139573: Updated bundled version of OpenSSL to 3.0.18.. Windows: gh-139573: Updated b..." />
<meta property="og:image" content="_static/og-image.png" />
<meta property="og:image:alt" content="Python documentation" />
<meta name="description" content="Python 3.14.0 final: Release date: 2025-10-07 macOS: gh-124111: Update macOS installer to use Tcl/Tk 8.6.17., gh-139573: Updated bundled version of OpenSSL to 3.0.18.. Windows: gh-139573: Updated b..." />
<meta name="theme-color" content="#3776ab">
<meta property="og:image:width" content="200">
<meta property="og:image:height" content="200">
<title>Changelog — Python 3.14.0 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../_static/classic.css?v=234b1a7c" />
<link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=8cd84f99" />
<link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=5349f25f" />
<script src="../_static/documentation_options.js?v=e4f4b189"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/sidebar.js"></script>
<link rel="search" type="application/opensearchdescription+xml"
title="Search within Python 3.14.0 documentation"
href="../_static/opensearch.xml"/>
<link rel="author" title="About these documents" href="../about.html" />
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="copyright" title="Copyright" href="../copyright.html" />
<link rel="next" title="The Python Tutorial" href="../tutorial/index.html" />
<link rel="prev" title="What’s New in Python 2.0" href="2.0.html" />
<link rel="canonical" href="https://docs.python.org/3/whatsnew/changelog.html">
<script type="text/javascript" src="../_static/changelog_search.js"></script>
<style>
@media only screen {
table.full-width-table {
width: 100%;
}
}
</style>
<link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">
<link rel="shortcut icon" type="image/png" href="../_static/py.svg">
<script type="text/javascript" src="../_static/copybutton.js"></script>
<script type="text/javascript" src="../_static/menu.js"></script>
<script type="text/javascript" src="../_static/search-focus.js"></script>
<script type="text/javascript" src="../_static/themetoggle.js"></script>
<script type="text/javascript" src="../_static/rtd_switcher.js"></script>
<meta name="readthedocs-addons-api-version" content="1">
</head>
<body>
<div class="mobile-nav">
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu">
<nav class="nav-content" role="navigation">
<label for="menuToggler" class="toggler__label">
<span></span>
</label>
<span class="nav-items-wrapper">
<a href="https://www.python.org/" class="nav-logo">
<img src="../_static/py.svg" alt="Python logo">
</a>
<span class="version_switcher_placeholder"></span>
<form role="search" class="search" action="../search.html" method="get">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
<path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
</svg>
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q">
<input type="submit" value="Go">
</form>
</span>
</nav>
<div class="menu-wrapper">
<nav class="menu" role="navigation" aria-label="main navigation">
<div class="language_switcher_placeholder"></div>
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label>
<div>
<h3><a href="../contents.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Changelog</a><ul>
<li><a class="reference internal" href="#python-3-14-0-final">Python 3.14.0 final</a><ul>
<li><a class="reference internal" href="#macos">macOS</a></li>
<li><a class="reference internal" href="#windows">Windows</a></li>
<li><a class="reference internal" href="#tools-demos">Tools/Demos</a></li>
<li><a class="reference internal" href="#security">Security</a></li>
<li><a class="reference internal" href="#library">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-release-candidate-3">Python 3.14.0 release candidate 3</a><ul>
<li><a class="reference internal" href="#id2">Windows</a></li>
<li><a class="reference internal" href="#id3">Tools/Demos</a></li>
<li><a class="reference internal" href="#id4">Security</a></li>
<li><a class="reference internal" href="#id5">Library</a></li>
<li><a class="reference internal" href="#core-and-builtins">Core and Builtins</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-release-candidate-2">Python 3.14.0 release candidate 2</a><ul>
<li><a class="reference internal" href="#id6">macOS</a></li>
<li><a class="reference internal" href="#id7">Windows</a></li>
<li><a class="reference internal" href="#id8">Library</a></li>
<li><a class="reference internal" href="#documentation">Documentation</a></li>
<li><a class="reference internal" href="#id9">Core and Builtins</a></li>
<li><a class="reference internal" href="#c-api">C API</a></li>
<li><a class="reference internal" href="#build">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-release-candidate-1">Python 3.14.0 release candidate 1</a><ul>
<li><a class="reference internal" href="#id10">Tools/Demos</a></li>
<li><a class="reference internal" href="#id11">Security</a></li>
<li><a class="reference internal" href="#id12">Library</a></li>
<li><a class="reference internal" href="#id13">Core and Builtins</a></li>
<li><a class="reference internal" href="#id14">C API</a></li>
<li><a class="reference internal" href="#id15">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-beta-4">Python 3.14.0 beta 4</a><ul>
<li><a class="reference internal" href="#id16">Tools/Demos</a></li>
<li><a class="reference internal" href="#tests">Tests</a></li>
<li><a class="reference internal" href="#id17">Security</a></li>
<li><a class="reference internal" href="#id18">Library</a></li>
<li><a class="reference internal" href="#id19">Documentation</a></li>
<li><a class="reference internal" href="#id20">Core and Builtins</a></li>
<li><a class="reference internal" href="#id21">C API</a></li>
<li><a class="reference internal" href="#id22">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-beta-3">Python 3.14.0 beta 3</a><ul>
<li><a class="reference internal" href="#id23">Windows</a></li>
<li><a class="reference internal" href="#id24">Tests</a></li>
<li><a class="reference internal" href="#id25">Security</a></li>
<li><a class="reference internal" href="#id26">Library</a></li>
<li><a class="reference internal" href="#id27">Documentation</a></li>
<li><a class="reference internal" href="#id28">Core and Builtins</a></li>
<li><a class="reference internal" href="#id29">C API</a></li>
<li><a class="reference internal" href="#id30">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-beta-2">Python 3.14.0 beta 2</a><ul>
<li><a class="reference internal" href="#id31">Windows</a></li>
<li><a class="reference internal" href="#id32">Tools/Demos</a></li>
<li><a class="reference internal" href="#id33">Tests</a></li>
<li><a class="reference internal" href="#id34">Security</a></li>
<li><a class="reference internal" href="#id35">Library</a></li>
<li><a class="reference internal" href="#id36">Core and Builtins</a></li>
<li><a class="reference internal" href="#id37">C API</a></li>
<li><a class="reference internal" href="#id38">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-beta-1">Python 3.14.0 beta 1</a><ul>
<li><a class="reference internal" href="#id39">Windows</a></li>
<li><a class="reference internal" href="#id40">Tools/Demos</a></li>
<li><a class="reference internal" href="#id41">Tests</a></li>
<li><a class="reference internal" href="#id42">Security</a></li>
<li><a class="reference internal" href="#id43">Library</a></li>
<li><a class="reference internal" href="#idle">IDLE</a></li>
<li><a class="reference internal" href="#id44">Documentation</a></li>
<li><a class="reference internal" href="#id45">Core and Builtins</a></li>
<li><a class="reference internal" href="#id46">C API</a></li>
<li><a class="reference internal" href="#id47">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-7">Python 3.14.0 alpha 7</a><ul>
<li><a class="reference internal" href="#id48">macOS</a></li>
<li><a class="reference internal" href="#id49">Windows</a></li>
<li><a class="reference internal" href="#id50">Tools/Demos</a></li>
<li><a class="reference internal" href="#id51">Tests</a></li>
<li><a class="reference internal" href="#id52">Security</a></li>
<li><a class="reference internal" href="#id53">Library</a></li>
<li><a class="reference internal" href="#id54">Documentation</a></li>
<li><a class="reference internal" href="#id55">Core and Builtins</a></li>
<li><a class="reference internal" href="#id56">C API</a></li>
<li><a class="reference internal" href="#id57">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-6">Python 3.14.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id58">macOS</a></li>
<li><a class="reference internal" href="#id59">Windows</a></li>
<li><a class="reference internal" href="#id60">Tools/Demos</a></li>
<li><a class="reference internal" href="#id61">Tests</a></li>
<li><a class="reference internal" href="#id62">Security</a></li>
<li><a class="reference internal" href="#id63">Library</a></li>
<li><a class="reference internal" href="#id64">Documentation</a></li>
<li><a class="reference internal" href="#id65">Core and Builtins</a></li>
<li><a class="reference internal" href="#id66">C API</a></li>
<li><a class="reference internal" href="#id67">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-5">Python 3.14.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id68">macOS</a></li>
<li><a class="reference internal" href="#id69">Tools/Demos</a></li>
<li><a class="reference internal" href="#id70">Tests</a></li>
<li><a class="reference internal" href="#id71">Security</a></li>
<li><a class="reference internal" href="#id72">Library</a></li>
<li><a class="reference internal" href="#id73">IDLE</a></li>
<li><a class="reference internal" href="#id74">Documentation</a></li>
<li><a class="reference internal" href="#id75">Core and Builtins</a></li>
<li><a class="reference internal" href="#id76">C API</a></li>
<li><a class="reference internal" href="#id77">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-4">Python 3.14.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id78">macOS</a></li>
<li><a class="reference internal" href="#id79">Tools/Demos</a></li>
<li><a class="reference internal" href="#id80">Tests</a></li>
<li><a class="reference internal" href="#id81">Library</a></li>
<li><a class="reference internal" href="#id82">Core and Builtins</a></li>
<li><a class="reference internal" href="#id83">C API</a></li>
<li><a class="reference internal" href="#id84">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-3">Python 3.14.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id85">Windows</a></li>
<li><a class="reference internal" href="#id86">Tools/Demos</a></li>
<li><a class="reference internal" href="#id87">Tests</a></li>
<li><a class="reference internal" href="#id88">Security</a></li>
<li><a class="reference internal" href="#id89">Library</a></li>
<li><a class="reference internal" href="#id90">Documentation</a></li>
<li><a class="reference internal" href="#id91">Core and Builtins</a></li>
<li><a class="reference internal" href="#id92">C API</a></li>
<li><a class="reference internal" href="#id93">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-2">Python 3.14.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id94">Windows</a></li>
<li><a class="reference internal" href="#id95">Tools/Demos</a></li>
<li><a class="reference internal" href="#id96">Tests</a></li>
<li><a class="reference internal" href="#id97">Security</a></li>
<li><a class="reference internal" href="#id98">Library</a></li>
<li><a class="reference internal" href="#id99">Documentation</a></li>
<li><a class="reference internal" href="#id100">Core and Builtins</a></li>
<li><a class="reference internal" href="#id101">C API</a></li>
<li><a class="reference internal" href="#id102">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-1">Python 3.14.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id103">macOS</a></li>
<li><a class="reference internal" href="#id104">Windows</a></li>
<li><a class="reference internal" href="#id105">Tools/Demos</a></li>
<li><a class="reference internal" href="#id106">Tests</a></li>
<li><a class="reference internal" href="#id107">Security</a></li>
<li><a class="reference internal" href="#id108">Library</a></li>
<li><a class="reference internal" href="#id109">IDLE</a></li>
<li><a class="reference internal" href="#id110">Documentation</a></li>
<li><a class="reference internal" href="#id111">Core and Builtins</a></li>
<li><a class="reference internal" href="#id112">C API</a></li>
<li><a class="reference internal" href="#id113">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-beta-1">Python 3.13.0 beta 1</a><ul>
<li><a class="reference internal" href="#id114">Security</a></li>
<li><a class="reference internal" href="#id115">Core and Builtins</a></li>
<li><a class="reference internal" href="#id116">Library</a></li>
<li><a class="reference internal" href="#id117">Documentation</a></li>
<li><a class="reference internal" href="#id118">Build</a></li>
<li><a class="reference internal" href="#id119">Windows</a></li>
<li><a class="reference internal" href="#id120">macOS</a></li>
<li><a class="reference internal" href="#id121">IDLE</a></li>
<li><a class="reference internal" href="#id122">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-6">Python 3.13.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id123">Core and Builtins</a></li>
<li><a class="reference internal" href="#id124">Library</a></li>
<li><a class="reference internal" href="#id125">Documentation</a></li>
<li><a class="reference internal" href="#id126">Tests</a></li>
<li><a class="reference internal" href="#id127">Build</a></li>
<li><a class="reference internal" href="#id128">Windows</a></li>
<li><a class="reference internal" href="#id129">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-5">Python 3.13.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id130">Security</a></li>
<li><a class="reference internal" href="#id131">Core and Builtins</a></li>
<li><a class="reference internal" href="#id132">Library</a></li>
<li><a class="reference internal" href="#id133">Documentation</a></li>
<li><a class="reference internal" href="#id134">Tests</a></li>
<li><a class="reference internal" href="#id135">Build</a></li>
<li><a class="reference internal" href="#id136">Windows</a></li>
<li><a class="reference internal" href="#id137">macOS</a></li>
<li><a class="reference internal" href="#id138">IDLE</a></li>
<li><a class="reference internal" href="#id139">Tools/Demos</a></li>
<li><a class="reference internal" href="#id140">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-4">Python 3.13.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id141">Security</a></li>
<li><a class="reference internal" href="#id142">Core and Builtins</a></li>
<li><a class="reference internal" href="#id143">Library</a></li>
<li><a class="reference internal" href="#id144">Documentation</a></li>
<li><a class="reference internal" href="#id145">Tests</a></li>
<li><a class="reference internal" href="#id146">Build</a></li>
<li><a class="reference internal" href="#id147">Windows</a></li>
<li><a class="reference internal" href="#id148">macOS</a></li>
<li><a class="reference internal" href="#id149">IDLE</a></li>
<li><a class="reference internal" href="#id150">Tools/Demos</a></li>
<li><a class="reference internal" href="#id151">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-3">Python 3.13.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id152">Security</a></li>
<li><a class="reference internal" href="#id153">Core and Builtins</a></li>
<li><a class="reference internal" href="#id154">Library</a></li>
<li><a class="reference internal" href="#id155">Documentation</a></li>
<li><a class="reference internal" href="#id156">Tests</a></li>
<li><a class="reference internal" href="#id157">Build</a></li>
<li><a class="reference internal" href="#id158">Windows</a></li>
<li><a class="reference internal" href="#id159">macOS</a></li>
<li><a class="reference internal" href="#id160">IDLE</a></li>
<li><a class="reference internal" href="#id161">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-2">Python 3.13.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id162">Core and Builtins</a></li>
<li><a class="reference internal" href="#id163">Library</a></li>
<li><a class="reference internal" href="#id164">Tests</a></li>
<li><a class="reference internal" href="#id165">Build</a></li>
<li><a class="reference internal" href="#id166">Windows</a></li>
<li><a class="reference internal" href="#id167">macOS</a></li>
<li><a class="reference internal" href="#id168">IDLE</a></li>
<li><a class="reference internal" href="#id169">Tools/Demos</a></li>
<li><a class="reference internal" href="#id170">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-1">Python 3.13.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id171">Security</a></li>
<li><a class="reference internal" href="#id172">Core and Builtins</a></li>
<li><a class="reference internal" href="#id173">Library</a></li>
<li><a class="reference internal" href="#id174">Documentation</a></li>
<li><a class="reference internal" href="#id175">Tests</a></li>
<li><a class="reference internal" href="#id176">Build</a></li>
<li><a class="reference internal" href="#id177">Windows</a></li>
<li><a class="reference internal" href="#id178">macOS</a></li>
<li><a class="reference internal" href="#id179">IDLE</a></li>
<li><a class="reference internal" href="#id180">Tools/Demos</a></li>
<li><a class="reference internal" href="#id181">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-beta-1">Python 3.12.0 beta 1</a><ul>
<li><a class="reference internal" href="#id182">Security</a></li>
<li><a class="reference internal" href="#id183">Core and Builtins</a></li>
<li><a class="reference internal" href="#id184">Library</a></li>
<li><a class="reference internal" href="#id185">Documentation</a></li>
<li><a class="reference internal" href="#id186">Tests</a></li>
<li><a class="reference internal" href="#id187">Build</a></li>
<li><a class="reference internal" href="#id188">Windows</a></li>
<li><a class="reference internal" href="#id189">macOS</a></li>
<li><a class="reference internal" href="#id190">IDLE</a></li>
<li><a class="reference internal" href="#id191">Tools/Demos</a></li>
<li><a class="reference internal" href="#id192">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-7">Python 3.12.0 alpha 7</a><ul>
<li><a class="reference internal" href="#id193">Core and Builtins</a></li>
<li><a class="reference internal" href="#id194">Library</a></li>
<li><a class="reference internal" href="#id195">Documentation</a></li>
<li><a class="reference internal" href="#id196">Tests</a></li>
<li><a class="reference internal" href="#id197">Build</a></li>
<li><a class="reference internal" href="#id198">Windows</a></li>
<li><a class="reference internal" href="#id199">Tools/Demos</a></li>
<li><a class="reference internal" href="#id200">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-6">Python 3.12.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id201">Security</a></li>
<li><a class="reference internal" href="#id202">Core and Builtins</a></li>
<li><a class="reference internal" href="#id203">Library</a></li>
<li><a class="reference internal" href="#id204">Documentation</a></li>
<li><a class="reference internal" href="#id205">Tests</a></li>
<li><a class="reference internal" href="#id206">Build</a></li>
<li><a class="reference internal" href="#id207">Windows</a></li>
<li><a class="reference internal" href="#id208">macOS</a></li>
<li><a class="reference internal" href="#id209">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-5">Python 3.12.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id210">Security</a></li>
<li><a class="reference internal" href="#id212">Core and Builtins</a></li>
<li><a class="reference internal" href="#id213">Library</a></li>
<li><a class="reference internal" href="#id214">Documentation</a></li>
<li><a class="reference internal" href="#id215">Tests</a></li>
<li><a class="reference internal" href="#id216">Build</a></li>
<li><a class="reference internal" href="#id217">Windows</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-4">Python 3.12.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id218">Core and Builtins</a></li>
<li><a class="reference internal" href="#id219">Library</a></li>
<li><a class="reference internal" href="#id220">Documentation</a></li>
<li><a class="reference internal" href="#id221">Tests</a></li>
<li><a class="reference internal" href="#id222">Build</a></li>
<li><a class="reference internal" href="#id223">Windows</a></li>
<li><a class="reference internal" href="#id224">macOS</a></li>
<li><a class="reference internal" href="#id225">Tools/Demos</a></li>
<li><a class="reference internal" href="#id226">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-3">Python 3.12.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id227">Security</a></li>
<li><a class="reference internal" href="#id228">Core and Builtins</a></li>
<li><a class="reference internal" href="#id229">Library</a></li>
<li><a class="reference internal" href="#id230">Documentation</a></li>
<li><a class="reference internal" href="#id231">Tests</a></li>
<li><a class="reference internal" href="#id232">Build</a></li>
<li><a class="reference internal" href="#id233">Windows</a></li>
<li><a class="reference internal" href="#id234">macOS</a></li>
<li><a class="reference internal" href="#id235">Tools/Demos</a></li>
<li><a class="reference internal" href="#id236">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-2">Python 3.12.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id237">Security</a></li>
<li><a class="reference internal" href="#id238">Core and Builtins</a></li>
<li><a class="reference internal" href="#id239">Library</a></li>
<li><a class="reference internal" href="#id240">Documentation</a></li>
<li><a class="reference internal" href="#id241">Tests</a></li>
<li><a class="reference internal" href="#id242">Build</a></li>
<li><a class="reference internal" href="#id243">Windows</a></li>
<li><a class="reference internal" href="#id244">macOS</a></li>
<li><a class="reference internal" href="#id245">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-1">Python 3.12.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id246">Security</a></li>
<li><a class="reference internal" href="#id247">Core and Builtins</a></li>
<li><a class="reference internal" href="#id248">Library</a></li>
<li><a class="reference internal" href="#id249">Documentation</a></li>
<li><a class="reference internal" href="#id250">Tests</a></li>
<li><a class="reference internal" href="#id251">Build</a></li>
<li><a class="reference internal" href="#id252">Windows</a></li>
<li><a class="reference internal" href="#id253">macOS</a></li>
<li><a class="reference internal" href="#id254">IDLE</a></li>
<li><a class="reference internal" href="#id255">Tools/Demos</a></li>
<li><a class="reference internal" href="#id257">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-beta-1">Python 3.11.0 beta 1</a><ul>
<li><a class="reference internal" href="#id258">Security</a></li>
<li><a class="reference internal" href="#id259">Core and Builtins</a></li>
<li><a class="reference internal" href="#id260">Library</a></li>
<li><a class="reference internal" href="#id261">Documentation</a></li>
<li><a class="reference internal" href="#id262">Tests</a></li>
<li><a class="reference internal" href="#id263">Build</a></li>
<li><a class="reference internal" href="#id264">Windows</a></li>
<li><a class="reference internal" href="#id265">macOS</a></li>
<li><a class="reference internal" href="#id266">Tools/Demos</a></li>
<li><a class="reference internal" href="#id267">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-7">Python 3.11.0 alpha 7</a><ul>
<li><a class="reference internal" href="#id268">Core and Builtins</a></li>
<li><a class="reference internal" href="#id269">Library</a></li>
<li><a class="reference internal" href="#id270">Documentation</a></li>
<li><a class="reference internal" href="#id271">Tests</a></li>
<li><a class="reference internal" href="#id272">Build</a></li>
<li><a class="reference internal" href="#id273">Windows</a></li>
<li><a class="reference internal" href="#id274">macOS</a></li>
<li><a class="reference internal" href="#id275">Tools/Demos</a></li>
<li><a class="reference internal" href="#id276">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-6">Python 3.11.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id277">Core and Builtins</a></li>
<li><a class="reference internal" href="#id278">Library</a></li>
<li><a class="reference internal" href="#id279">Documentation</a></li>
<li><a class="reference internal" href="#id280">Tests</a></li>
<li><a class="reference internal" href="#id281">Build</a></li>
<li><a class="reference internal" href="#id282">Windows</a></li>
<li><a class="reference internal" href="#id283">IDLE</a></li>
<li><a class="reference internal" href="#id284">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-5">Python 3.11.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id285">Core and Builtins</a></li>
<li><a class="reference internal" href="#id286">Library</a></li>
<li><a class="reference internal" href="#id287">Documentation</a></li>
<li><a class="reference internal" href="#id288">Tests</a></li>
<li><a class="reference internal" href="#id289">Build</a></li>
<li><a class="reference internal" href="#id290">Windows</a></li>
<li><a class="reference internal" href="#id291">macOS</a></li>
<li><a class="reference internal" href="#id292">IDLE</a></li>
<li><a class="reference internal" href="#id293">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-4">Python 3.11.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id294">Core and Builtins</a></li>
<li><a class="reference internal" href="#id295">Library</a></li>
<li><a class="reference internal" href="#id296">Documentation</a></li>
<li><a class="reference internal" href="#id297">Tests</a></li>
<li><a class="reference internal" href="#id298">Build</a></li>
<li><a class="reference internal" href="#id299">Windows</a></li>
<li><a class="reference internal" href="#id300">macOS</a></li>
<li><a class="reference internal" href="#id301">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-3">Python 3.11.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id302">Core and Builtins</a></li>
<li><a class="reference internal" href="#id303">Library</a></li>
<li><a class="reference internal" href="#id304">Documentation</a></li>
<li><a class="reference internal" href="#id305">Tests</a></li>
<li><a class="reference internal" href="#id306">Build</a></li>
<li><a class="reference internal" href="#id307">Windows</a></li>
<li><a class="reference internal" href="#id308">macOS</a></li>
<li><a class="reference internal" href="#id309">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-2">Python 3.11.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id310">Core and Builtins</a></li>
<li><a class="reference internal" href="#id311">Library</a></li>
<li><a class="reference internal" href="#id312">Documentation</a></li>
<li><a class="reference internal" href="#id313">Tests</a></li>
<li><a class="reference internal" href="#id314">Build</a></li>
<li><a class="reference internal" href="#id315">Windows</a></li>
<li><a class="reference internal" href="#id316">macOS</a></li>
<li><a class="reference internal" href="#id317">IDLE</a></li>
<li><a class="reference internal" href="#id318">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-1">Python 3.11.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id319">Security</a></li>
<li><a class="reference internal" href="#id320">Core and Builtins</a></li>
<li><a class="reference internal" href="#id321">Library</a></li>
<li><a class="reference internal" href="#id322">Documentation</a></li>
<li><a class="reference internal" href="#id323">Tests</a></li>
<li><a class="reference internal" href="#id324">Build</a></li>
<li><a class="reference internal" href="#id325">Windows</a></li>
<li><a class="reference internal" href="#id326">macOS</a></li>
<li><a class="reference internal" href="#id327">IDLE</a></li>
<li><a class="reference internal" href="#id328">Tools/Demos</a></li>
<li><a class="reference internal" href="#id329">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-beta-1">Python 3.10.0 beta 1</a><ul>
<li><a class="reference internal" href="#id330">Security</a></li>
<li><a class="reference internal" href="#id331">Core and Builtins</a></li>
<li><a class="reference internal" href="#id332">Library</a></li>
<li><a class="reference internal" href="#id333">Documentation</a></li>
<li><a class="reference internal" href="#id334">Tests</a></li>
<li><a class="reference internal" href="#id335">Build</a></li>
<li><a class="reference internal" href="#id336">Windows</a></li>
<li><a class="reference internal" href="#id337">macOS</a></li>
<li><a class="reference internal" href="#id338">IDLE</a></li>
<li><a class="reference internal" href="#id339">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-7">Python 3.10.0 alpha 7</a><ul>
<li><a class="reference internal" href="#id340">Security</a></li>
<li><a class="reference internal" href="#id341">Core and Builtins</a></li>
<li><a class="reference internal" href="#id342">Library</a></li>
<li><a class="reference internal" href="#id343">Documentation</a></li>
<li><a class="reference internal" href="#id344">Tests</a></li>
<li><a class="reference internal" href="#id345">Build</a></li>
<li><a class="reference internal" href="#id346">Windows</a></li>
<li><a class="reference internal" href="#id347">IDLE</a></li>
<li><a class="reference internal" href="#id348">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-6">Python 3.10.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id349">Security</a></li>
<li><a class="reference internal" href="#id350">Core and Builtins</a></li>
<li><a class="reference internal" href="#id351">Library</a></li>
<li><a class="reference internal" href="#id352">Documentation</a></li>
<li><a class="reference internal" href="#id353">Tests</a></li>
<li><a class="reference internal" href="#id354">Build</a></li>
<li><a class="reference internal" href="#id355">Windows</a></li>
<li><a class="reference internal" href="#id356">macOS</a></li>
<li><a class="reference internal" href="#id357">IDLE</a></li>
<li><a class="reference internal" href="#id358">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-5">Python 3.10.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id359">Security</a></li>
<li><a class="reference internal" href="#id360">Core and Builtins</a></li>
<li><a class="reference internal" href="#id361">Library</a></li>
<li><a class="reference internal" href="#id362">Documentation</a></li>
<li><a class="reference internal" href="#id363">Tests</a></li>
<li><a class="reference internal" href="#id364">Build</a></li>
<li><a class="reference internal" href="#id365">Windows</a></li>
<li><a class="reference internal" href="#id366">macOS</a></li>
<li><a class="reference internal" href="#id367">IDLE</a></li>
<li><a class="reference internal" href="#id368">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-4">Python 3.10.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id369">Core and Builtins</a></li>
<li><a class="reference internal" href="#id370">Library</a></li>
<li><a class="reference internal" href="#id371">Documentation</a></li>
<li><a class="reference internal" href="#id372">Tests</a></li>
<li><a class="reference internal" href="#id373">Build</a></li>
<li><a class="reference internal" href="#id374">macOS</a></li>
<li><a class="reference internal" href="#id375">Tools/Demos</a></li>
<li><a class="reference internal" href="#id376">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-3">Python 3.10.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id377">Security</a></li>
<li><a class="reference internal" href="#id378">Core and Builtins</a></li>
<li><a class="reference internal" href="#id379">Library</a></li>
<li><a class="reference internal" href="#id380">Documentation</a></li>
<li><a class="reference internal" href="#id381">Tests</a></li>
<li><a class="reference internal" href="#id382">Build</a></li>
<li><a class="reference internal" href="#id383">Windows</a></li>
<li><a class="reference internal" href="#id384">macOS</a></li>
<li><a class="reference internal" href="#id385">IDLE</a></li>
<li><a class="reference internal" href="#id386">Tools/Demos</a></li>
<li><a class="reference internal" href="#id387">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-2">Python 3.10.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id388">Security</a></li>
<li><a class="reference internal" href="#id389">Core and Builtins</a></li>
<li><a class="reference internal" href="#id390">Library</a></li>
<li><a class="reference internal" href="#id391">Documentation</a></li>
<li><a class="reference internal" href="#id392">Tests</a></li>
<li><a class="reference internal" href="#id393">Build</a></li>
<li><a class="reference internal" href="#id394">Windows</a></li>
<li><a class="reference internal" href="#id395">macOS</a></li>
<li><a class="reference internal" href="#id396">IDLE</a></li>
<li><a class="reference internal" href="#id397">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-1">Python 3.10.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id398">Security</a></li>
<li><a class="reference internal" href="#id399">Core and Builtins</a></li>
<li><a class="reference internal" href="#id400">Library</a></li>
<li><a class="reference internal" href="#id401">Documentation</a></li>
<li><a class="reference internal" href="#id402">Tests</a></li>
<li><a class="reference internal" href="#id403">Build</a></li>
<li><a class="reference internal" href="#id404">Windows</a></li>
<li><a class="reference internal" href="#id405">macOS</a></li>
<li><a class="reference internal" href="#id406">IDLE</a></li>
<li><a class="reference internal" href="#id407">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-beta-1">Python 3.9.0 beta 1</a><ul>
<li><a class="reference internal" href="#id408">Security</a></li>
<li><a class="reference internal" href="#id409">Core and Builtins</a></li>
<li><a class="reference internal" href="#id410">Library</a></li>
<li><a class="reference internal" href="#id411">Documentation</a></li>
<li><a class="reference internal" href="#id412">Tests</a></li>
<li><a class="reference internal" href="#id413">Build</a></li>
<li><a class="reference internal" href="#id414">Windows</a></li>
<li><a class="reference internal" href="#id415">macOS</a></li>
<li><a class="reference internal" href="#id416">Tools/Demos</a></li>
<li><a class="reference internal" href="#id417">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-6">Python 3.9.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id418">Security</a></li>
<li><a class="reference internal" href="#id419">Core and Builtins</a></li>
<li><a class="reference internal" href="#id420">Library</a></li>
<li><a class="reference internal" href="#id421">Documentation</a></li>
<li><a class="reference internal" href="#id422">Tests</a></li>
<li><a class="reference internal" href="#id423">Build</a></li>
<li><a class="reference internal" href="#id424">Windows</a></li>
<li><a class="reference internal" href="#id425">macOS</a></li>
<li><a class="reference internal" href="#id426">IDLE</a></li>
<li><a class="reference internal" href="#id427">Tools/Demos</a></li>
<li><a class="reference internal" href="#id428">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-5">Python 3.9.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id429">Security</a></li>
<li><a class="reference internal" href="#id430">Core and Builtins</a></li>
<li><a class="reference internal" href="#id431">Library</a></li>
<li><a class="reference internal" href="#id432">Documentation</a></li>
<li><a class="reference internal" href="#id433">Tests</a></li>
<li><a class="reference internal" href="#id434">Build</a></li>
<li><a class="reference internal" href="#id435">Windows</a></li>
<li><a class="reference internal" href="#id436">macOS</a></li>
<li><a class="reference internal" href="#id437">IDLE</a></li>
<li><a class="reference internal" href="#id438">Tools/Demos</a></li>
<li><a class="reference internal" href="#id439">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-4">Python 3.9.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id440">Security</a></li>
<li><a class="reference internal" href="#id441">Core and Builtins</a></li>
<li><a class="reference internal" href="#id442">Library</a></li>
<li><a class="reference internal" href="#id443">Documentation</a></li>
<li><a class="reference internal" href="#id444">Tests</a></li>
<li><a class="reference internal" href="#id445">Build</a></li>
<li><a class="reference internal" href="#id446">Windows</a></li>
<li><a class="reference internal" href="#id447">IDLE</a></li>
<li><a class="reference internal" href="#id448">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-3">Python 3.9.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id449">Core and Builtins</a></li>
<li><a class="reference internal" href="#id450">Library</a></li>
<li><a class="reference internal" href="#id451">Documentation</a></li>
<li><a class="reference internal" href="#id452">Build</a></li>
<li><a class="reference internal" href="#id453">IDLE</a></li>
<li><a class="reference internal" href="#id454">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-2">Python 3.9.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id455">Security</a></li>
<li><a class="reference internal" href="#id456">Core and Builtins</a></li>
<li><a class="reference internal" href="#id457">Library</a></li>
<li><a class="reference internal" href="#id458">Documentation</a></li>
<li><a class="reference internal" href="#id459">Tests</a></li>
<li><a class="reference internal" href="#id460">Build</a></li>
<li><a class="reference internal" href="#id461">Windows</a></li>
<li><a class="reference internal" href="#id462">macOS</a></li>
<li><a class="reference internal" href="#id463">IDLE</a></li>
<li><a class="reference internal" href="#id464">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-1">Python 3.9.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id465">Security</a></li>
<li><a class="reference internal" href="#id466">Core and Builtins</a></li>
<li><a class="reference internal" href="#id467">Library</a></li>
<li><a class="reference internal" href="#id468">Documentation</a></li>
<li><a class="reference internal" href="#id469">Tests</a></li>
<li><a class="reference internal" href="#id470">Build</a></li>
<li><a class="reference internal" href="#id471">Windows</a></li>
<li><a class="reference internal" href="#id472">macOS</a></li>
<li><a class="reference internal" href="#id473">IDLE</a></li>
<li><a class="reference internal" href="#id474">Tools/Demos</a></li>
<li><a class="reference internal" href="#id475">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-8-0-beta-1">Python 3.8.0 beta 1</a><ul>
<li><a class="reference internal" href="#id476">Security</a></li>
<li><a class="reference internal" href="#id477">Core and Builtins</a></li>
<li><a class="reference internal" href="#id478">Library</a></li>
<li><a class="reference internal" href="#id479">Documentation</a></li>
<li><a class="reference internal" href="#id480">Tests</a></li>
<li><a class="reference internal" href="#id481">Build</a></li>
<li><a class="reference internal" href="#id482">Windows</a></li>
<li><a class="reference internal" href="#id483">macOS</a></li>
<li><a class="reference internal" href="#id484">IDLE</a></li>
<li><a class="reference internal" href="#id485">Tools/Demos</a></li>
<li><a class="reference internal" href="#id486">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-8-0-alpha-4">Python 3.8.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id487">Security</a></li>
<li><a class="reference internal" href="#id488">Core and Builtins</a></li>
<li><a class="reference internal" href="#id489">Library</a></li>
<li><a class="reference internal" href="#id490">Documentation</a></li>
<li><a class="reference internal" href="#id491">Tests</a></li>
<li><a class="reference internal" href="#id492">Build</a></li>
<li><a class="reference internal" href="#id493">Windows</a></li>
<li><a class="reference internal" href="#id494">macOS</a></li>
<li><a class="reference internal" href="#id495">IDLE</a></li>
<li><a class="reference internal" href="#id496">Tools/Demos</a></li>
<li><a class="reference internal" href="#id497">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-8-0-alpha-3">Python 3.8.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id498">Security</a></li>
<li><a class="reference internal" href="#id499">Core and Builtins</a></li>
<li><a class="reference internal" href="#id500">Library</a></li>
<li><a class="reference internal" href="#id501">Documentation</a></li>
<li><a class="reference internal" href="#id502">Tests</a></li>
<li><a class="reference internal" href="#id503">Build</a></li>
<li><a class="reference internal" href="#id504">Windows</a></li>
<li><a class="reference internal" href="#id505">IDLE</a></li>
<li><a class="reference internal" href="#id506">Tools/Demos</a></li>
<li><a class="reference internal" href="#id507">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-8-0-alpha-2">Python 3.8.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id508">Core and Builtins</a></li>
<li><a class="reference internal" href="#id509">Library</a></li>
<li><a class="reference internal" href="#id510">Documentation</a></li>
<li><a class="reference internal" href="#id511">Tests</a></li>
<li><a class="reference internal" href="#id512">Windows</a></li>
<li><a class="reference internal" href="#id513">IDLE</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-8-0-alpha-1">Python 3.8.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id514">Security</a></li>
<li><a class="reference internal" href="#id515">Core and Builtins</a></li>
<li><a class="reference internal" href="#id516">Library</a></li>
<li><a class="reference internal" href="#id517">Documentation</a></li>
<li><a class="reference internal" href="#id518">Tests</a></li>
<li><a class="reference internal" href="#id519">Build</a></li>
<li><a class="reference internal" href="#id520">Windows</a></li>
<li><a class="reference internal" href="#id521">macOS</a></li>
<li><a class="reference internal" href="#id522">IDLE</a></li>
<li><a class="reference internal" href="#id523">Tools/Demos</a></li>
<li><a class="reference internal" href="#id524">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-final">Python 3.7.0 final</a><ul>
<li><a class="reference internal" href="#id525">Library</a></li>
<li><a class="reference internal" href="#id526">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-release-candidate-1">Python 3.7.0 release candidate 1</a><ul>
<li><a class="reference internal" href="#id527">Core and Builtins</a></li>
<li><a class="reference internal" href="#id528">Library</a></li>
<li><a class="reference internal" href="#id529">Documentation</a></li>
<li><a class="reference internal" href="#id530">Build</a></li>
<li><a class="reference internal" href="#id531">Windows</a></li>
<li><a class="reference internal" href="#id532">IDLE</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-beta-5">Python 3.7.0 beta 5</a><ul>
<li><a class="reference internal" href="#id533">Core and Builtins</a></li>
<li><a class="reference internal" href="#id534">Library</a></li>
<li><a class="reference internal" href="#id535">Documentation</a></li>
<li><a class="reference internal" href="#id536">Tests</a></li>
<li><a class="reference internal" href="#id537">Build</a></li>
<li><a class="reference internal" href="#id538">macOS</a></li>
<li><a class="reference internal" href="#id539">IDLE</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-beta-4">Python 3.7.0 beta 4</a><ul>
<li><a class="reference internal" href="#id540">Core and Builtins</a></li>
<li><a class="reference internal" href="#id541">Library</a></li>
<li><a class="reference internal" href="#id542">Documentation</a></li>
<li><a class="reference internal" href="#id543">Tests</a></li>
<li><a class="reference internal" href="#id544">Build</a></li>
<li><a class="reference internal" href="#id545">Windows</a></li>
<li><a class="reference internal" href="#id546">macOS</a></li>
<li><a class="reference internal" href="#id547">IDLE</a></li>
<li><a class="reference internal" href="#id548">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-beta-3">Python 3.7.0 beta 3</a><ul>
<li><a class="reference internal" href="#id549">Security</a></li>
<li><a class="reference internal" href="#id550">Core and Builtins</a></li>
<li><a class="reference internal" href="#id551">Library</a></li>
<li><a class="reference internal" href="#id552">Documentation</a></li>
<li><a class="reference internal" href="#id553">Tests</a></li>
<li><a class="reference internal" href="#id554">Build</a></li>
<li><a class="reference internal" href="#id555">Windows</a></li>
<li><a class="reference internal" href="#id556">macOS</a></li>
<li><a class="reference internal" href="#id557">IDLE</a></li>
<li><a class="reference internal" href="#id558">Tools/Demos</a></li>
<li><a class="reference internal" href="#id559">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-beta-2">Python 3.7.0 beta 2</a><ul>
<li><a class="reference internal" href="#id560">Security</a></li>
<li><a class="reference internal" href="#id561">Core and Builtins</a></li>
<li><a class="reference internal" href="#id562">Library</a></li>
<li><a class="reference internal" href="#id563">Documentation</a></li>
<li><a class="reference internal" href="#id564">Tests</a></li>
<li><a class="reference internal" href="#id565">Build</a></li>
<li><a class="reference internal" href="#id566">Windows</a></li>
<li><a class="reference internal" href="#id567">macOS</a></li>
<li><a class="reference internal" href="#id568">IDLE</a></li>
<li><a class="reference internal" href="#id569">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-beta-1">Python 3.7.0 beta 1</a><ul>
<li><a class="reference internal" href="#id570">Core and Builtins</a></li>
<li><a class="reference internal" href="#id571">Library</a></li>
<li><a class="reference internal" href="#id572">Documentation</a></li>
<li><a class="reference internal" href="#id573">Tests</a></li>
<li><a class="reference internal" href="#id574">Build</a></li>
<li><a class="reference internal" href="#id575">Windows</a></li>
<li><a class="reference internal" href="#id576">macOS</a></li>
<li><a class="reference internal" href="#id577">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-alpha-4">Python 3.7.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id578">Core and Builtins</a></li>
<li><a class="reference internal" href="#id579">Library</a></li>
<li><a class="reference internal" href="#id580">Documentation</a></li>
<li><a class="reference internal" href="#id581">Tests</a></li>
<li><a class="reference internal" href="#id582">Windows</a></li>
<li><a class="reference internal" href="#id583">Tools/Demos</a></li>
<li><a class="reference internal" href="#id584">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-alpha-3">Python 3.7.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id585">Core and Builtins</a></li>
<li><a class="reference internal" href="#id586">Library</a></li>
<li><a class="reference internal" href="#id587">Documentation</a></li>
<li><a class="reference internal" href="#id588">Tests</a></li>
<li><a class="reference internal" href="#id589">Build</a></li>
<li><a class="reference internal" href="#id590">Windows</a></li>
<li><a class="reference internal" href="#id591">macOS</a></li>
<li><a class="reference internal" href="#id592">IDLE</a></li>
<li><a class="reference internal" href="#id593">Tools/Demos</a></li>
<li><a class="reference internal" href="#id594">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-alpha-2">Python 3.7.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id595">Core and Builtins</a></li>
<li><a class="reference internal" href="#id596">Library</a></li>
<li><a class="reference internal" href="#id597">Documentation</a></li>
<li><a class="reference internal" href="#id598">Build</a></li>
<li><a class="reference internal" href="#id599">IDLE</a></li>
<li><a class="reference internal" href="#id600">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-alpha-1">Python 3.7.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id601">Security</a></li>
<li><a class="reference internal" href="#id602">Core and Builtins</a></li>
<li><a class="reference internal" href="#id603">Library</a></li>
<li><a class="reference internal" href="#id604">Documentation</a></li>
<li><a class="reference internal" href="#id605">Tests</a></li>
<li><a class="reference internal" href="#id606">Build</a></li>
<li><a class="reference internal" href="#id607">Windows</a></li>
<li><a class="reference internal" href="#id608">IDLE</a></li>
<li><a class="reference internal" href="#id609">Tools/Demos</a></li>
<li><a class="reference internal" href="#id610">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-6-final">Python 3.6.6 final</a></li>
<li><a class="reference internal" href="#python-3-6-6-release-candidate-1">Python 3.6.6 release candidate 1</a><ul>
<li><a class="reference internal" href="#id611">Core and Builtins</a></li>
<li><a class="reference internal" href="#id612">Library</a></li>
<li><a class="reference internal" href="#id613">Documentation</a></li>
<li><a class="reference internal" href="#id614">Tests</a></li>
<li><a class="reference internal" href="#id615">Build</a></li>
<li><a class="reference internal" href="#id616">Windows</a></li>
<li><a class="reference internal" href="#id617">macOS</a></li>
<li><a class="reference internal" href="#id618">IDLE</a></li>
<li><a class="reference internal" href="#id619">Tools/Demos</a></li>
<li><a class="reference internal" href="#id620">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-5-final">Python 3.6.5 final</a><ul>
<li><a class="reference internal" href="#id621">Tests</a></li>
<li><a class="reference internal" href="#id622">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-5-release-candidate-1">Python 3.6.5 release candidate 1</a><ul>
<li><a class="reference internal" href="#id623">Security</a></li>
<li><a class="reference internal" href="#id624">Core and Builtins</a></li>
<li><a class="reference internal" href="#id625">Library</a></li>
<li><a class="reference internal" href="#id626">Documentation</a></li>
<li><a class="reference internal" href="#id627">Tests</a></li>
<li><a class="reference internal" href="#id628">Build</a></li>
<li><a class="reference internal" href="#id629">Windows</a></li>
<li><a class="reference internal" href="#id630">macOS</a></li>
<li><a class="reference internal" href="#id631">IDLE</a></li>
<li><a class="reference internal" href="#id632">Tools/Demos</a></li>
<li><a class="reference internal" href="#id633">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-4-final">Python 3.6.4 final</a></li>
<li><a class="reference internal" href="#python-3-6-4-release-candidate-1">Python 3.6.4 release candidate 1</a><ul>
<li><a class="reference internal" href="#id634">Core and Builtins</a></li>
<li><a class="reference internal" href="#id635">Library</a></li>
<li><a class="reference internal" href="#id636">Documentation</a></li>
<li><a class="reference internal" href="#id637">Tests</a></li>
<li><a class="reference internal" href="#id638">Build</a></li>
<li><a class="reference internal" href="#id639">Windows</a></li>
<li><a class="reference internal" href="#id640">macOS</a></li>
<li><a class="reference internal" href="#id641">IDLE</a></li>
<li><a class="reference internal" href="#id642">Tools/Demos</a></li>
<li><a class="reference internal" href="#id643">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-3-final">Python 3.6.3 final</a><ul>
<li><a class="reference internal" href="#id644">Library</a></li>
<li><a class="reference internal" href="#id645">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-3-release-candidate-1">Python 3.6.3 release candidate 1</a><ul>
<li><a class="reference internal" href="#id646">Security</a></li>
<li><a class="reference internal" href="#id647">Core and Builtins</a></li>
<li><a class="reference internal" href="#id648">Library</a></li>
<li><a class="reference internal" href="#id649">Documentation</a></li>
<li><a class="reference internal" href="#id650">Tests</a></li>
<li><a class="reference internal" href="#id651">Build</a></li>
<li><a class="reference internal" href="#id652">Windows</a></li>
<li><a class="reference internal" href="#id653">IDLE</a></li>
<li><a class="reference internal" href="#id654">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-2-final">Python 3.6.2 final</a></li>
<li><a class="reference internal" href="#python-3-6-2-release-candidate-2">Python 3.6.2 release candidate 2</a><ul>
<li><a class="reference internal" href="#id655">Security</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-2-release-candidate-1">Python 3.6.2 release candidate 1</a><ul>
<li><a class="reference internal" href="#id656">Security</a></li>
<li><a class="reference internal" href="#id657">Core and Builtins</a></li>
<li><a class="reference internal" href="#id658">Library</a></li>
<li><a class="reference internal" href="#id659">IDLE</a></li>
<li><a class="reference internal" href="#id660">C API</a></li>
<li><a class="reference internal" href="#id661">Build</a></li>
<li><a class="reference internal" href="#id662">Documentation</a></li>
<li><a class="reference internal" href="#id663">Tools/Demos</a></li>
<li><a class="reference internal" href="#id664">Tests</a></li>
<li><a class="reference internal" href="#id665">Windows</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-1-final">Python 3.6.1 final</a><ul>
<li><a class="reference internal" href="#id666">Core and Builtins</a></li>
<li><a class="reference internal" href="#id667">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-1-release-candidate-1">Python 3.6.1 release candidate 1</a><ul>
<li><a class="reference internal" href="#id668">Core and Builtins</a></li>
<li><a class="reference internal" href="#id669">Library</a></li>
<li><a class="reference internal" href="#id670">IDLE</a></li>
<li><a class="reference internal" href="#id671">Windows</a></li>
<li><a class="reference internal" href="#id672">C API</a></li>
<li><a class="reference internal" href="#id673">Documentation</a></li>
<li><a class="reference internal" href="#id674">Tests</a></li>
<li><a class="reference internal" href="#id675">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-final">Python 3.6.0 final</a></li>
<li><a class="reference internal" href="#python-3-6-0-release-candidate-2">Python 3.6.0 release candidate 2</a><ul>
<li><a class="reference internal" href="#id676">Core and Builtins</a></li>
<li><a class="reference internal" href="#id677">Tools/Demos</a></li>
<li><a class="reference internal" href="#id678">Windows</a></li>
<li><a class="reference internal" href="#id679">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-release-candidate-1">Python 3.6.0 release candidate 1</a><ul>
<li><a class="reference internal" href="#id680">Core and Builtins</a></li>
<li><a class="reference internal" href="#id681">Library</a></li>
<li><a class="reference internal" href="#id682">C API</a></li>
<li><a class="reference internal" href="#id683">Documentation</a></li>
<li><a class="reference internal" href="#id684">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-beta-4">Python 3.6.0 beta 4</a><ul>
<li><a class="reference internal" href="#id685">Core and Builtins</a></li>
<li><a class="reference internal" href="#id686">Library</a></li>
<li><a class="reference internal" href="#id687">Documentation</a></li>
<li><a class="reference internal" href="#id688">Tests</a></li>
<li><a class="reference internal" href="#id689">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-beta-3">Python 3.6.0 beta 3</a><ul>
<li><a class="reference internal" href="#id690">Core and Builtins</a></li>
<li><a class="reference internal" href="#id691">Library</a></li>
<li><a class="reference internal" href="#id692">Windows</a></li>
<li><a class="reference internal" href="#id693">Build</a></li>
<li><a class="reference internal" href="#id694">Tests</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-beta-2">Python 3.6.0 beta 2</a><ul>
<li><a class="reference internal" href="#id695">Core and Builtins</a></li>
<li><a class="reference internal" href="#id696">Library</a></li>
<li><a class="reference internal" href="#id697">Windows</a></li>
<li><a class="reference internal" href="#id698">C API</a></li>
<li><a class="reference internal" href="#id699">Build</a></li>
<li><a class="reference internal" href="#id700">Tests</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-beta-1">Python 3.6.0 beta 1</a><ul>
<li><a class="reference internal" href="#id701">Core and Builtins</a></li>
<li><a class="reference internal" href="#id702">Library</a></li>
<li><a class="reference internal" href="#id703">IDLE</a></li>
<li><a class="reference internal" href="#id704">C API</a></li>
<li><a class="reference internal" href="#id705">Tests</a></li>
<li><a class="reference internal" href="#id706">Build</a></li>
<li><a class="reference internal" href="#id707">Tools/Demos</a></li>
<li><a class="reference internal" href="#id708">Windows</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-alpha-4">Python 3.6.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id709">Core and Builtins</a></li>
<li><a class="reference internal" href="#id710">Library</a></li>
<li><a class="reference internal" href="#id711">IDLE</a></li>
<li><a class="reference internal" href="#id712">Tests</a></li>
<li><a class="reference internal" href="#id713">Windows</a></li>
<li><a class="reference internal" href="#id714">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-alpha-3">Python 3.6.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id715">Security</a></li>
<li><a class="reference internal" href="#id716">Core and Builtins</a></li>
<li><a class="reference internal" href="#id717">Library</a></li>
<li><a class="reference internal" href="#id718">IDLE</a></li>
<li><a class="reference internal" href="#id719">C API</a></li>
<li><a class="reference internal" href="#id720">Build</a></li>
<li><a class="reference internal" href="#id721">Tools/Demos</a></li>
<li><a class="reference internal" href="#id722">Documentation</a></li>
<li><a class="reference internal" href="#id723">Tests</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-alpha-2">Python 3.6.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id724">Security</a></li>
<li><a class="reference internal" href="#id725">Core and Builtins</a></li>
<li><a class="reference internal" href="#id726">Library</a></li>
<li><a class="reference internal" href="#id727">IDLE</a></li>
<li><a class="reference internal" href="#id728">Documentation</a></li>
<li><a class="reference internal" href="#id729">Tests</a></li>
<li><a class="reference internal" href="#id730">Windows</a></li>
<li><a class="reference internal" href="#id731">Build</a></li>
<li><a class="reference internal" href="#id732">C API</a></li>
<li><a class="reference internal" href="#id733">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-alpha-1">Python 3.6.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id734">Security</a></li>
<li><a class="reference internal" href="#id735">Core and Builtins</a></li>
<li><a class="reference internal" href="#id736">Library</a></li>
<li><a class="reference internal" href="#id737">IDLE</a></li>
<li><a class="reference internal" href="#id738">Documentation</a></li>
<li><a class="reference internal" href="#id739">Tests</a></li>
<li><a class="reference internal" href="#id740">Build</a></li>
<li><a class="reference internal" href="#id741">Windows</a></li>
<li><a class="reference internal" href="#id742">Tools/Demos</a></li>
<li><a class="reference internal" href="#id743">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-5-final">Python 3.5.5 final</a></li>
<li><a class="reference internal" href="#python-3-5-5-release-candidate-1">Python 3.5.5 release candidate 1</a><ul>
<li><a class="reference internal" href="#id744">Security</a></li>
<li><a class="reference internal" href="#id745">Core and Builtins</a></li>
<li><a class="reference internal" href="#id746">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-4-final">Python 3.5.4 final</a><ul>
<li><a class="reference internal" href="#id747">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-4-release-candidate-1">Python 3.5.4 release candidate 1</a><ul>
<li><a class="reference internal" href="#id748">Security</a></li>
<li><a class="reference internal" href="#id749">Core and Builtins</a></li>
<li><a class="reference internal" href="#id750">Library</a></li>
<li><a class="reference internal" href="#id751">Documentation</a></li>
<li><a class="reference internal" href="#id752">Tests</a></li>
<li><a class="reference internal" href="#id753">Build</a></li>
<li><a class="reference internal" href="#id754">Windows</a></li>
<li><a class="reference internal" href="#id755">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-3-final">Python 3.5.3 final</a></li>
<li><a class="reference internal" href="#python-3-5-3-release-candidate-1">Python 3.5.3 release candidate 1</a><ul>
<li><a class="reference internal" href="#id756">Security</a></li>
<li><a class="reference internal" href="#id757">Core and Builtins</a></li>
<li><a class="reference internal" href="#id758">Library</a></li>
<li><a class="reference internal" href="#id759">IDLE</a></li>
<li><a class="reference internal" href="#id760">C API</a></li>
<li><a class="reference internal" href="#id761">Documentation</a></li>
<li><a class="reference internal" href="#id762">Tests</a></li>
<li><a class="reference internal" href="#id763">Tools/Demos</a></li>
<li><a class="reference internal" href="#id764">Windows</a></li>
<li><a class="reference internal" href="#id765">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-2-final">Python 3.5.2 final</a><ul>
<li><a class="reference internal" href="#id766">Core and Builtins</a></li>
<li><a class="reference internal" href="#id767">Tests</a></li>
<li><a class="reference internal" href="#id768">IDLE</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-2-release-candidate-1">Python 3.5.2 release candidate 1</a><ul>
<li><a class="reference internal" href="#id769">Security</a></li>
<li><a class="reference internal" href="#id770">Core and Builtins</a></li>
<li><a class="reference internal" href="#id771">Library</a></li>
<li><a class="reference internal" href="#id772">IDLE</a></li>
<li><a class="reference internal" href="#id773">Documentation</a></li>
<li><a class="reference internal" href="#id774">Tests</a></li>
<li><a class="reference internal" href="#id775">Build</a></li>
<li><a class="reference internal" href="#id776">Windows</a></li>
<li><a class="reference internal" href="#id777">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-1-final">Python 3.5.1 final</a><ul>
<li><a class="reference internal" href="#id778">Core and Builtins</a></li>
<li><a class="reference internal" href="#id779">Windows</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-1-release-candidate-1">Python 3.5.1 release candidate 1</a><ul>
<li><a class="reference internal" href="#id780">Core and Builtins</a></li>
<li><a class="reference internal" href="#id781">Library</a></li>
<li><a class="reference internal" href="#id782">IDLE</a></li>
<li><a class="reference internal" href="#id783">Documentation</a></li>
<li><a class="reference internal" href="#id784">Tests</a></li>
<li><a class="reference internal" href="#id785">Build</a></li>
<li><a class="reference internal" href="#id786">Windows</a></li>
<li><a class="reference internal" href="#id787">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-final">Python 3.5.0 final</a><ul>
<li><a class="reference internal" href="#id788">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-release-candidate-4">Python 3.5.0 release candidate 4</a><ul>
<li><a class="reference internal" href="#id789">Library</a></li>
<li><a class="reference internal" href="#id790">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-release-candidate-3">Python 3.5.0 release candidate 3</a><ul>
<li><a class="reference internal" href="#id791">Core and Builtins</a></li>
<li><a class="reference internal" href="#id792">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-release-candidate-2">Python 3.5.0 release candidate 2</a><ul>
<li><a class="reference internal" href="#id793">Core and Builtins</a></li>
<li><a class="reference internal" href="#id794">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-release-candidate-1">Python 3.5.0 release candidate 1</a><ul>
<li><a class="reference internal" href="#id795">Core and Builtins</a></li>
<li><a class="reference internal" href="#id796">Library</a></li>
<li><a class="reference internal" href="#id797">IDLE</a></li>
<li><a class="reference internal" href="#id798">Documentation</a></li>
<li><a class="reference internal" href="#id799">Tests</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-beta-4">Python 3.5.0 beta 4</a><ul>
<li><a class="reference internal" href="#id800">Core and Builtins</a></li>
<li><a class="reference internal" href="#id801">Library</a></li>
<li><a class="reference internal" href="#id802">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-beta-3">Python 3.5.0 beta 3</a><ul>
<li><a class="reference internal" href="#id803">Core and Builtins</a></li>
<li><a class="reference internal" href="#id804">Library</a></li>
<li><a class="reference internal" href="#id805">Tests</a></li>
<li><a class="reference internal" href="#id806">Documentation</a></li>
<li><a class="reference internal" href="#id807">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-beta-2">Python 3.5.0 beta 2</a><ul>
<li><a class="reference internal" href="#id808">Core and Builtins</a></li>
<li><a class="reference internal" href="#id809">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-beta-1">Python 3.5.0 beta 1</a><ul>
<li><a class="reference internal" href="#id810">Core and Builtins</a></li>
<li><a class="reference internal" href="#id811">Library</a></li>
<li><a class="reference internal" href="#id812">IDLE</a></li>
<li><a class="reference internal" href="#id813">Tests</a></li>
<li><a class="reference internal" href="#id814">Documentation</a></li>
<li><a class="reference internal" href="#id815">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-alpha-4">Python 3.5.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id816">Core and Builtins</a></li>
<li><a class="reference internal" href="#id817">Library</a></li>
<li><a class="reference internal" href="#id818">Build</a></li>
<li><a class="reference internal" href="#id819">Tests</a></li>
<li><a class="reference internal" href="#id820">Tools/Demos</a></li>
<li><a class="reference internal" href="#id821">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-alpha-3">Python 3.5.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id822">Core and Builtins</a></li>
<li><a class="reference internal" href="#id823">Library</a></li>
<li><a class="reference internal" href="#id824">Build</a></li>
<li><a class="reference internal" href="#id825">Tests</a></li>
<li><a class="reference internal" href="#id826">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-alpha-2">Python 3.5.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id827">Core and Builtins</a></li>
<li><a class="reference internal" href="#id828">Library</a></li>
<li><a class="reference internal" href="#id829">Build</a></li>
<li><a class="reference internal" href="#id830">C API</a></li>
<li><a class="reference internal" href="#id831">Windows</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-alpha-1">Python 3.5.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id832">Core and Builtins</a></li>
<li><a class="reference internal" href="#id833">Library</a></li>
<li><a class="reference internal" href="#id834">IDLE</a></li>
<li><a class="reference internal" href="#id835">Build</a></li>
<li><a class="reference internal" href="#id836">C API</a></li>
<li><a class="reference internal" href="#id837">Documentation</a></li>
<li><a class="reference internal" href="#id838">Tests</a></li>
<li><a class="reference internal" href="#id839">Tools/Demos</a></li>
<li><a class="reference internal" href="#id840">Windows</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="2.0.html"
title="previous chapter">What’s New in Python 2.0</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="../tutorial/index.html"
title="next chapter">The Python Tutorial</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This page</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">Report a bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/main/Doc/whatsnew/changelog.rst?plain=1"
rel="nofollow">Show source
</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="../tutorial/index.html" title="The Python Tutorial"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="2.0.html" title="What’s New in Python 2.0"
accesskey="P">previous</a> |</li>
<li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> »</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.14.0 Documentation</a> »
</li>
<li class="nav-item nav-item-1"><a href="index.html" accesskey="U">What’s New in Python</a> »</li>
<li class="nav-item nav-item-this"><a href="">Changelog</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">
<input type="submit" value="Go">
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="changelog">
<span id="id1"></span><h1>Changelog<a class="headerlink" href="#changelog" title="Link to this heading">¶</a></h1>
<section id="python-3-14-0-final">
<h2>Python 3.14.0 final<a class="headerlink" href="#python-3-14-0-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-10-07</em></p>
<section id="macos">
<h3>macOS<a class="headerlink" href="#macos" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124111">gh-124111</a>: Update macOS installer to use Tcl/Tk 8.6.17.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/139573">gh-139573</a>: Updated bundled version of OpenSSL to 3.0.18.</p></li>
</ul>
</section>
<section id="windows">
<h3>Windows<a class="headerlink" href="#windows" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/139573">gh-139573</a>: Updated bundled version of OpenSSL to 3.0.18.</p></li>
</ul>
</section>
<section id="tools-demos">
<h3>Tools/Demos<a class="headerlink" href="#tools-demos" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/139330">gh-139330</a>: SBOM generation tool didn’t cross-check the version and
checksum values against the <code class="docutils literal notranslate"><span class="pre">Modules/expat/refresh.sh</span></code> script, leading
to the values becoming out-of-date during routine updates.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132006">gh-132006</a>: XCframeworks now include privacy manifests to satisfy Apple App
Store submission requirements.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138171">gh-138171</a>: A script for building an iOS XCframework was added. As part of
this change, the top level <code class="docutils literal notranslate"><span class="pre">iOS</span></code> folder has been moved to be a
subdirectory of the <code class="docutils literal notranslate"><span class="pre">Apple</span></code> folder.</p></li>
</ul>
</section>
<section id="security">
<h3>Security<a class="headerlink" href="#security" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/139400">gh-139400</a>: <a class="reference internal" href="../library/pyexpat.html#module-xml.parsers.expat" title="xml.parsers.expat: An interface to the Expat non-validating XML parser."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.parsers.expat</span></code></a>: Make sure that parent Expat parsers
are only garbage-collected once they are no longer referenced by
subparsers created by
<a class="reference internal" href="../library/pyexpat.html#xml.parsers.expat.xmlparser.ExternalEntityParserCreate" title="xml.parsers.expat.xmlparser.ExternalEntityParserCreate"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ExternalEntityParserCreate()</span></code></a>. Patch by
Sebastian Pipping.</p></li>
</ul>
</section>
<section id="library">
<h3>Library<a class="headerlink" href="#library" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/139312">gh-139312</a>: Upgrade bundled libexpat to 2.7.3</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-release-candidate-3">
<h2>Python 3.14.0 release candidate 3<a class="headerlink" href="#python-3-14-0-release-candidate-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-09-18</em></p>
<section id="id2">
<h3>Windows<a class="headerlink" href="#id2" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138896">gh-138896</a>: Fix error installing C runtime on non-updated Windows machines</p></li>
</ul>
</section>
<section id="id3">
<h3>Tools/Demos<a class="headerlink" href="#id3" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137873">gh-137873</a>: The iOS test runner has been simplified, resolving some issues
that have been observed using the runner in GitHub Actions and Azure
Pipelines test environments.</p></li>
</ul>
</section>
<section id="id4">
<h3>Security<a class="headerlink" href="#id4" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135661">gh-135661</a>: Fix CDATA section parsing in <a class="reference internal" href="../library/html.parser.html#html.parser.HTMLParser" title="html.parser.HTMLParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">html.parser.HTMLParser</span></code></a>
according to the HTML5 standard: <code class="docutils literal notranslate"><span class="pre">]</span> <span class="pre">]></span></code> and <code class="docutils literal notranslate"><span class="pre">]]</span> <span class="pre">></span></code> no longer end the
CDATA section. Add private method <code class="docutils literal notranslate"><span class="pre">_set_support_cdata()</span></code> which can be
used to specify how to parse <code class="docutils literal notranslate"><span class="pre"><[CDATA[</span></code> — as a CDATA section in
foreign content (SVG or MathML) or as a bogus comment in the HTML
namespace.</p></li>
</ul>
</section>
<section id="id5">
<h3>Library<a class="headerlink" href="#id5" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138998">gh-138998</a>: Update bundled libexpat to 2.7.2</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118803">gh-118803</a>: Add back <a class="reference internal" href="../library/collections.abc.html#collections.abc.ByteString" title="collections.abc.ByteString"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.ByteString</span></code></a> and
<a class="reference internal" href="../library/typing.html#typing.ByteString" title="typing.ByteString"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ByteString</span></code></a>. Both had been removed in prior alpha, beta and
release candidates for Python 3.14, but their removal has now been
postponed to Python 3.17.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137226">gh-137226</a>: Fix <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> calls on generic
<a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypedDict</span></code></a> classes defined with string annotations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138804">gh-138804</a>: Raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> when an
argument of incorrect type is passed to <a class="reference internal" href="../library/shlex.html#shlex.quote" title="shlex.quote"><code class="xref py py-func docutils literal notranslate"><span class="pre">shlex.quote()</span></code></a>. This restores
the behavior of the function prior to 3.14.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128636">gh-128636</a>: Fix crash in PyREPL when os.environ is overwritten with an
invalid value for mac</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138514">gh-138514</a>: Raise <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> when a multi-character string is passed
to the <em>echo_char</em> parameter of <a class="reference internal" href="../library/getpass.html#getpass.getpass" title="getpass.getpass"><code class="xref py py-func docutils literal notranslate"><span class="pre">getpass.getpass()</span></code></a>. Patch by Benjamin
Johnson.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138515">gh-138515</a>: <a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a> is added to Emscripten build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99948">gh-99948</a>: <a class="reference internal" href="../library/ctypes.html#ctypes.util.find_library" title="ctypes.util.find_library"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.util.find_library()</span></code></a> now works in Emscripten build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138253">gh-138253</a>: Add the <em>block</em> parameter in the <code class="xref py py-meth docutils literal notranslate"><span class="pre">put()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">get()</span></code>
methods of the <a class="reference internal" href="../library/concurrent.interpreters.html#module-concurrent.interpreters" title="concurrent.interpreters: Multiple interpreters in the same process"><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.interpreters</span></code></a> queues for compatibility
with the <a class="reference internal" href="../library/queue.html#queue.Queue" title="queue.Queue"><code class="xref py py-class docutils literal notranslate"><span class="pre">queue.Queue</span></code></a> interface.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138133">gh-138133</a>: Prevent infinite traceback loop when sending CTRL^C to Python
through <code class="docutils literal notranslate"><span class="pre">strace</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134869">gh-134869</a>: Fix an issue where pressing Ctrl+C during tab completion in the
REPL would leave the autocompletion menu in a corrupted state.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90548">gh-90548</a>: Fix <code class="docutils literal notranslate"><span class="pre">musl</span></code> detection for <a class="reference internal" href="../library/platform.html#platform.libc_ver" title="platform.libc_ver"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.libc_ver()</span></code></a> on Alpine
Linux if compiled with –strip-all.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136134">gh-136134</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">SMTP.auth_cram_md5()</span></code> now raises an
<a class="reference internal" href="../library/smtplib.html#smtplib.SMTPException" title="smtplib.SMTPException"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SMTPException</span></code></a> instead of a <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> if Python has
been built without MD5 support. In particular, <a class="reference internal" href="../library/smtplib.html#smtplib.SMTP" title="smtplib.SMTP"><code class="xref py py-class docutils literal notranslate"><span class="pre">SMTP</span></code></a>
clients will not attempt to use this method even if the remote server is
assumed to support it. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136134">gh-136134</a>: <a class="reference internal" href="../library/imaplib.html#imaplib.IMAP4.login_cram_md5" title="imaplib.IMAP4.login_cram_md5"><code class="xref py py-meth docutils literal notranslate"><span class="pre">IMAP4.login_cram_md5</span></code></a> now
raises an <a class="reference internal" href="../library/imaplib.html#imaplib.IMAP4.error" title="imaplib.IMAP4.error"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IMAP4.error</span></code></a> if CRAM-MD5
authentication is not supported. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134953">gh-134953</a>: Expand <code class="docutils literal notranslate"><span class="pre">_colorize</span></code> theme with <code class="docutils literal notranslate"><span class="pre">keyword_constant</span></code> and
implement in <a class="reference internal" href="../glossary.html#term-REPL"><span class="xref std std-term">repl</span></a>.</p></li>
</ul>
</section>
<section id="core-and-builtins">
<h3>Core and Builtins<a class="headerlink" href="#core-and-builtins" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71810">gh-71810</a>: Raise <a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> for <code class="docutils literal notranslate"><span class="pre">(-1).to_bytes()</span></code> for signed
conversions when bytes count is zero. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138192">gh-138192</a>: Fix <a class="reference internal" href="../library/contextvars.html#module-contextvars" title="contextvars: Context Variables"><code class="xref py py-mod docutils literal notranslate"><span class="pre">contextvars</span></code></a> initialization so that all
subinterpreters are assigned the <a class="reference internal" href="../library/contextvars.html#contextvars.Token.MISSING" title="contextvars.Token.MISSING"><code class="xref py py-attr docutils literal notranslate"><span class="pre">MISSING</span></code></a> value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138479">gh-138479</a>: Fix a crash when a generic object’s <code class="docutils literal notranslate"><span class="pre">__typing_subst__</span></code>
returns an object that isn’t a <a class="reference internal" href="../library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138372">gh-138372</a>: Fix <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a> emitted for erroneous subscript
expressions involving <a class="reference internal" href="../reference/lexical_analysis.html#t-strings"><span class="std std-ref">template string literals</span></a>. Patch
by Brian Schubert.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138318">gh-138318</a>: The default REPL now avoids highlighting built-in names (for
instance <a class="reference internal" href="../library/stdtypes.html#set" title="set"><code class="xref py py-class docutils literal notranslate"><span class="pre">set</span></code></a> or <a class="reference internal" href="../library/functions.html#format" title="format"><code class="xref py py-func docutils literal notranslate"><span class="pre">format()</span></code></a>) when they are used as attribute
names (for instance in <code class="docutils literal notranslate"><span class="pre">value.set</span></code> or <code class="docutils literal notranslate"><span class="pre">text.format</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/138349">gh-138349</a>: Fix crash in certain cases where a module contains both a
module-level annotation and a comprehension.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137384">gh-137384</a>: Fix a crash when using the <a class="reference internal" href="../library/warnings.html#module-warnings" title="warnings: Issue warning messages and control their disposition."><code class="xref py py-mod docutils literal notranslate"><span class="pre">warnings</span></code></a> module in a
finalizer at shutdown. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137883">gh-137883</a>: Fix runaway recursion when calling a function with keyword
arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137079">gh-137079</a>: Fix keyword typo recognition when parsing files. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137728">gh-137728</a>: Fix the JIT’s handling of many local variables. This previously
caused a segfault.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137576">gh-137576</a>: Fix for incorrect source code being shown in tracebacks from
the Basic REPL when <span class="target" id="index-0"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code></a> is given. Patch by Adam Hartz.</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-release-candidate-2">
<h2>Python 3.14.0 release candidate 2<a class="headerlink" href="#python-3-14-0-release-candidate-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-08-14</em></p>
<section id="id6">
<h3>macOS<a class="headerlink" href="#id6" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137450">gh-137450</a>: macOS installer shell path management improvements: separate
the installer <code class="docutils literal notranslate"><span class="pre">Shell</span> <span class="pre">profile</span> <span class="pre">updater</span></code> postinstall script from the
<code class="docutils literal notranslate"><span class="pre">Update</span> <span class="pre">Shell</span> <span class="pre">Profile.command</span></code> to enable more robust error handling.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137134">gh-137134</a>: Update macOS installer to ship with SQLite version 3.50.4.</p></li>
</ul>
</section>
<section id="id7">
<h3>Windows<a class="headerlink" href="#id7" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137134">gh-137134</a>: Update Windows installer to ship with SQLite 3.50.4.</p></li>
</ul>
</section>
<section id="id8">
<h3>Library<a class="headerlink" href="#id8" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137426">gh-137426</a>: Remove the code deprecation of
<code class="docutils literal notranslate"><span class="pre">importlib.abc.ResourceLoader</span></code>. It is documented as deprecated, but left
for backwards compatibility with other classes in <code class="docutils literal notranslate"><span class="pre">importlib.abc</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137282">gh-137282</a>: Fix tab completion and <a class="reference internal" href="../library/functions.html#dir" title="dir"><code class="xref py py-func docutils literal notranslate"><span class="pre">dir()</span></code></a> on
<a class="reference internal" href="../library/concurrent.futures.html#module-concurrent.futures" title="concurrent.futures: Execute computations concurrently using threads or processes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137257">gh-137257</a>: Bump the version of pip bundled in ensurepip to version 25.2</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137226">gh-137226</a>: Fix behavior of <a class="reference internal" href="../library/annotationlib.html#annotationlib.ForwardRef.evaluate" title="annotationlib.ForwardRef.evaluate"><code class="xref py py-meth docutils literal notranslate"><span class="pre">annotationlib.ForwardRef.evaluate()</span></code></a> when
the <em>type_params</em> parameter is passed and the name of a type param is also
present in an enclosing scope.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130522">gh-130522</a>: Fix unraisable <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> raised during
<a class="reference internal" href="../glossary.html#term-interpreter-shutdown"><span class="xref std std-term">interpreter shutdown</span></a> in the <a class="reference internal" href="../library/threading.html#module-threading" title="threading: Thread-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137059">gh-137059</a>: Fix handling of file URLs with a Windows drive letter in the
URL authority by <a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.url2pathname()</span></code></a>. This fixes a
regression in earlier pre-releases of Python 3.14.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130577">gh-130577</a>: <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> now validates archives to ensure member offsets
are non-negative. (Contributed by Alexander Enrique Urieles Nieto in
<a class="reference external" href="https://github.com/python/cpython/issues/130577">gh-130577</a>.)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135228">gh-135228</a>: When <a class="reference internal" href="../library/dataclasses.html#module-dataclasses" title="dataclasses: Generate special methods on user-defined classes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dataclasses</span></code></a> replaces a class with a slotted
dataclass, the original class can now be garbage collected again. Earlier
changes in Python 3.14 caused this class to always remain in existence
together with the replacement class synthesized by <a class="reference internal" href="../library/dataclasses.html#module-dataclasses" title="dataclasses: Generate special methods on user-defined classes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dataclasses</span></code></a>.</p></li>
</ul>
</section>
<section id="documentation">
<h3>Documentation<a class="headerlink" href="#documentation" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136155">gh-136155</a>: We are now checking for fatal errors in EPUB builds in CI.</p></li>
</ul>
</section>
<section id="id9">
<h3>Core and Builtins<a class="headerlink" href="#id9" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137400">gh-137400</a>: Fix a crash in the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threading</span></a> build when disabling
profiling or tracing across all threads with
<a class="reference internal" href="../c-api/init.html#c.PyEval_SetProfileAllThreads" title="PyEval_SetProfileAllThreads"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_SetProfileAllThreads()</span></code></a> or
<a class="reference internal" href="../c-api/init.html#c.PyEval_SetTraceAllThreads" title="PyEval_SetTraceAllThreads"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_SetTraceAllThreads()</span></code></a> or their Python equivalents
<a class="reference internal" href="../library/threading.html#threading.settrace_all_threads" title="threading.settrace_all_threads"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.settrace_all_threads()</span></code></a> and
<a class="reference internal" href="../library/threading.html#threading.setprofile_all_threads" title="threading.setprofile_all_threads"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.setprofile_all_threads()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137314">gh-137314</a>: Fixed a regression where raw f-strings incorrectly interpreted
escape sequences in format specifications. Raw f-strings now properly
preserve literal backslashes in format specs, matching the behavior from
Python 3.11. For example, <code class="docutils literal notranslate"><span class="pre">rf"{obj:\xFF}"</span></code> now correctly produces
<code class="docutils literal notranslate"><span class="pre">'\\xFF'</span></code> instead of <code class="docutils literal notranslate"><span class="pre">'ÿ'</span></code>. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137308">gh-137308</a>: A standalone docstring in a node body is optimized as a
<a class="reference internal" href="../reference/simple_stmts.html#pass"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">pass</span></code></a> statement to ensure that the node’s body is never empty.
There was a <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> in <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a> otherwise.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137288">gh-137288</a>: Fix bug where some bytecode instructions of a boolean
expression are not associated with the correct exception handler.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134291">gh-134291</a>: Remove some newer macOS API usage from the JIT compiler in
order to restore compatibility with older OSX 10.15 deployment targets.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131338">gh-131338</a>: Disable computed stack limit checks on non-glibc linux
platforms to fix crashes on deep recursion.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136870">gh-136870</a>: Fix data races while de-instrumenting bytecode of code objects
running concurrently in threads.</p></li>
</ul>
</section>
<section id="c-api">
<h3>C API<a class="headerlink" href="#c-api" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/137573">gh-137573</a>: Mark <code class="docutils literal notranslate"><span class="pre">_PyOptimizer_Optimize</span></code> as <a class="reference internal" href="../c-api/intro.html#c.Py_NO_INLINE" title="Py_NO_INLINE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_NO_INLINE</span></code></a> to
prevent stack overflow crashes on macOS.</p></li>
</ul>
</section>
<section id="build">
<h3>Build<a class="headerlink" href="#build" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132339">gh-132339</a>: Add support for OpenSSL 3.5.</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-release-candidate-1">
<h2>Python 3.14.0 release candidate 1<a class="headerlink" href="#python-3-14-0-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-07-22</em></p>
<section id="id10">
<h3>Tools/Demos<a class="headerlink" href="#id10" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136251">gh-136251</a>: Fixes and usability improvements for
<code class="docutils literal notranslate"><span class="pre">Tools/wasm/emscripten/web_example</span></code></p></li>
</ul>
</section>
<section id="id11">
<h3>Security<a class="headerlink" href="#id11" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135661">gh-135661</a>: Fix parsing attributes with whitespaces around the <code class="docutils literal notranslate"><span class="pre">=</span></code>
separator in <a class="reference internal" href="../library/html.parser.html#html.parser.HTMLParser" title="html.parser.HTMLParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">html.parser.HTMLParser</span></code></a> according to the HTML5
standard.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118350">gh-118350</a>: Fix support of escapable raw text mode (elements “textarea” and
“title”) in <a class="reference internal" href="../library/html.parser.html#html.parser.HTMLParser" title="html.parser.HTMLParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">html.parser.HTMLParser</span></code></a>.</p></li>
</ul>
</section>
<section id="id12">
<h3>Library<a class="headerlink" href="#id12" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136170">gh-136170</a>: Removed the unreleased <code class="docutils literal notranslate"><span class="pre">zipfile.ZipFile.data_offset</span></code> property
added in 3.14.0a7 as it wasn’t fully clear which behavior it should have
in some situations so the result was not always what a user might expect.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124621">gh-124621</a>: pyrepl now works in Emscripten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136874">gh-136874</a>: Discard URL query and fragment in
<a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.url2pathname()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130645">gh-130645</a>: Enable color help by default in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136549">gh-136549</a>: Fix signature of <a class="reference internal" href="../library/threading.html#threading.excepthook" title="threading.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.excepthook()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136523">gh-136523</a>: Fix <a class="reference internal" href="../library/wave.html#wave.Wave_write" title="wave.Wave_write"><code class="xref py py-class docutils literal notranslate"><span class="pre">wave.Wave_write</span></code></a> emitting an unraisable when open
raises.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/52876">gh-52876</a>: Add missing <code class="docutils literal notranslate"><span class="pre">keepends</span></code> (default <code class="docutils literal notranslate"><span class="pre">True</span></code>) parameter to
<code class="xref py py-meth docutils literal notranslate"><span class="pre">codecs.StreamReaderWriter.readline()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">codecs.StreamReaderWriter.readlines()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136470">gh-136470</a>: Correct <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.InterpreterPoolExecutor" title="concurrent.futures.InterpreterPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.InterpreterPoolExecutor</span></code></a>’s
default thread name.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136476">gh-136476</a>: Fix a bug that was causing the <code class="docutils literal notranslate"><span class="pre">get_async_stack_trace</span></code>
function to miss some frames in the stack trace.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136434">gh-136434</a>: Fix docs generation of <code class="docutils literal notranslate"><span class="pre">UnboundItem</span></code> in
<a class="reference internal" href="../library/concurrent.interpreters.html#module-concurrent.interpreters" title="concurrent.interpreters: Multiple interpreters in the same process"><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.interpreters</span></code></a> when running with <a class="reference internal" href="../using/cmdline.html#cmdoption-OO"><code class="xref std std-option docutils literal notranslate"><span class="pre">-OO</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136380">gh-136380</a>: Raises <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> when accessing
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.InterpreterPoolExecutor" title="concurrent.futures.InterpreterPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.InterpreterPoolExecutor</span></code></a> and subinterpreters
are not available.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134759">gh-134759</a>: Fix <a class="reference internal" href="../library/exceptions.html#UnboundLocalError" title="UnboundLocalError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnboundLocalError</span></code></a> in
<a class="reference internal" href="../library/email.compat32-message.html#email.message.Message.get_payload" title="email.message.Message.get_payload"><code class="xref py py-func docutils literal notranslate"><span class="pre">email.message.Message.get_payload()</span></code></a> when the payload to decode is a
<a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> object. Patch by Kliment Lamonov.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134657">gh-134657</a>: <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>: Remove some private names from
<code class="docutils literal notranslate"><span class="pre">asyncio.__all__</span></code>.</p></li>
</ul>
</section>
<section id="id13">
<h3>Core and Builtins<a class="headerlink" href="#id13" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136801">gh-136801</a>: Fix PyREPL syntax highlighting on match cases after multi-line
case. Contributed by Olga Matoula.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136421">gh-136421</a>: Fix crash when initializing <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a> concurrently.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136541">gh-136541</a>: Fix some issues with the perf trampolines on x86-64 and
aarch64. The trampolines were not being generated correctly for some
cases, which could lead to the perf integration not working correctly.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136517">gh-136517</a>: Fixed a typo that prevented printing of uncollectable objects
when the <a class="reference internal" href="../library/gc.html#gc.DEBUG_UNCOLLECTABLE" title="gc.DEBUG_UNCOLLECTABLE"><code class="xref py py-const docutils literal notranslate"><span class="pre">gc.DEBUG_UNCOLLECTABLE</span></code></a> mode was set.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136525">gh-136525</a>: Fix issue where per-thread bytecode was not instrumented for
newly created threads.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132661">gh-132661</a>: <code class="docutils literal notranslate"><span class="pre">Interpolation.expression</span></code> now has a default, the empty
string.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132661">gh-132661</a>: Reflect recent <span class="target" id="index-1"></span><a class="pep reference external" href="https://peps.python.org/pep-0750/"><strong>PEP 750</strong></a> change.</p>
<p>Disallow concatenation of <code class="docutils literal notranslate"><span class="pre">string.templatelib.Template</span></code> and
<a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>. Also, disallow implicit concatenation of t-string literals
with string or f-string literals.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116738">gh-116738</a>: Make functions in <a class="reference internal" href="../library/grp.html#module-grp" title="grp: The group database (getgrnam() and friends). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">grp</span></code></a> thread-safe on the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free
threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135148">gh-135148</a>: Fixed a bug where f-string debug expressions (using =) would
incorrectly strip out parts of strings containing escaped quotes and #
characters. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133136">gh-133136</a>: Limit excess memory usage in the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threading</span></a> build
when a large dictionary or list is resized and accessed by multiple
threads.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91153">gh-91153</a>: Fix a crash when a <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> is concurrently mutated
during item assignment.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127971">gh-127971</a>: Fix off-by-one read beyond the end of a string in string
search.</p></li>
</ul>
</section>
<section id="id14">
<h3>C API<a class="headerlink" href="#id14" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112068">gh-112068</a>: Revert support of nullable arguments in <a class="reference internal" href="../c-api/arg.html#c.PyArg_Parse" title="PyArg_Parse"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_Parse()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133296">gh-133296</a>: New variants for the critical section API that accept one or
two <a class="reference internal" href="../c-api/init.html#c.PyMutex" title="PyMutex"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyMutex</span></code></a> pointers rather than <a class="reference internal" href="../c-api/structures.html#c.PyObject" title="PyObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyObject</span></code></a> instances
are now public in the non-limited C API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134009">gh-134009</a>: Expose <a class="reference internal" href="../c-api/init.html#c.PyMutex_IsLocked" title="PyMutex_IsLocked"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMutex_IsLocked()</span></code></a> as part of the public C API.</p></li>
</ul>
</section>
<section id="id15">
<h3>Build<a class="headerlink" href="#id15" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135621">gh-135621</a>: PyREPL no longer depends on the <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> standard library.
Contributed by Łukasz Langa.</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-beta-4">
<h2>Python 3.14.0 beta 4<a class="headerlink" href="#python-3-14-0-beta-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-07-08</em></p>
<section id="id16">
<h3>Tools/Demos<a class="headerlink" href="#id16" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135968">gh-135968</a>: Stubs for <code class="docutils literal notranslate"><span class="pre">strip</span></code> are now provided as part of an iOS install.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133600">gh-133600</a>: Backport file reorganization for Tools/wasm/wasi.</p>
<p>This should make backporting future code changes easier. It also
simplifies instructions around how to do WASI builds in the devguide.</p>
</li>
</ul>
</section>
<section id="tests">
<h3>Tests<a class="headerlink" href="#tests" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135966">gh-135966</a>: The iOS testbed now handles the <code class="docutils literal notranslate"><span class="pre">app_packages</span></code> folder as a
site directory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135494">gh-135494</a>: Fix regrtest to support excluding tests from <code class="docutils literal notranslate"><span class="pre">--pgo</span></code> tests.
Patch by Victor Stinner.</p></li>
</ul>
</section>
<section id="id17">
<h3>Security<a class="headerlink" href="#id17" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136053">gh-136053</a>: <a class="reference internal" href="../library/marshal.html#module-marshal" title="marshal: Convert Python objects to streams of bytes and back (with different constraints)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">marshal</span></code></a>: fix a possible crash when deserializing
<a class="reference internal" href="../library/functions.html#slice" title="slice"><code class="xref py py-class docutils literal notranslate"><span class="pre">slice</span></code></a> objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135661">gh-135661</a>: Fix parsing start and end tags in
<a class="reference internal" href="../library/html.parser.html#html.parser.HTMLParser" title="html.parser.HTMLParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">html.parser.HTMLParser</span></code></a> according to the HTML5 standard.</p>
<ul>
<li><p>Whitespaces no longer accepted between <code class="docutils literal notranslate"><span class="pre"></</span></code> and the tag name.
E.g. <code class="docutils literal notranslate"><span class="pre"></</span> <span class="pre">script></span></code> does not end the script section.</p></li>
<li><p>Vertical tabulation (<code class="docutils literal notranslate"><span class="pre">\v</span></code>) and non-ASCII whitespaces no longer recognized
as whitespaces. The only whitespaces are <code class="docutils literal notranslate"><span class="pre">\t\n\r\f</span></code> and space.</p></li>
<li><p>Null character (U+0000) no longer ends the tag name.</p></li>
<li><p>Attributes and slashes after the tag name in end tags are now ignored,
instead of terminating after the first <code class="docutils literal notranslate"><span class="pre">></span></code> in quoted attribute value.
E.g. <code class="docutils literal notranslate"><span class="pre"></script/foo=">"/></span></code>.</p></li>
<li><p>Multiple slashes and whitespaces between the last attribute and closing <code class="docutils literal notranslate"><span class="pre">></span></code>
are now ignored in both start and end tags. E.g. <code class="docutils literal notranslate"><span class="pre"><a</span> <span class="pre">foo=bar/</span> <span class="pre">//></span></code>.</p></li>
<li><p>Multiple <code class="docutils literal notranslate"><span class="pre">=</span></code> between attribute name and value are no longer collapsed.
E.g. <code class="docutils literal notranslate"><span class="pre"><a</span> <span class="pre">foo==bar></span></code> produces attribute “foo” with value “=bar”.</p></li>
<li><p>[Reverted in <a class="reference external" href="https://github.com/python/cpython/issues/136927">gh-136927</a>] Whitespaces between the <code class="docutils literal notranslate"><span class="pre">=</span></code> separator and attribute name or value are no
longer ignored. E.g. <code class="docutils literal notranslate"><span class="pre"><a</span> <span class="pre">foo</span> <span class="pre">=bar></span></code> produces two attributes “foo” and
“=bar”, both with value None; <code class="docutils literal notranslate"><span class="pre"><a</span> <span class="pre">foo=</span> <span class="pre">bar></span></code> produces two attributes:
“foo” with value “” and “bar” with value None.</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102555">gh-102555</a>: Fix comment parsing in <a class="reference internal" href="../library/html.parser.html#html.parser.HTMLParser" title="html.parser.HTMLParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">html.parser.HTMLParser</span></code></a>
according to the HTML5 standard. <code class="docutils literal notranslate"><span class="pre">--!></span></code> now ends the comment. <code class="docutils literal notranslate"><span class="pre">--</span> <span class="pre">></span></code>
no longer ends the comment. Support abnormally ended empty comments
<code class="docutils literal notranslate"><span class="pre"><--></span></code> and <code class="docutils literal notranslate"><span class="pre"><---></span></code>.</p></li>
</ul>
</section>
<section id="id18">
<h3>Library<a class="headerlink" href="#id18" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136286">gh-136286</a>: Fix pickling failures for protocols 0 and 1 for many objects
realted to subinterpreters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136316">gh-136316</a>: Improve support for evaluating nested forward references in
<a class="reference internal" href="../library/typing.html#typing.evaluate_forward_ref" title="typing.evaluate_forward_ref"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.evaluate_forward_ref()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85702">gh-85702</a>: If <code class="docutils literal notranslate"><span class="pre">zoneinfo._common.load_tzdata</span></code> is given a package without a
resource a <a class="reference internal" href="../library/zoneinfo.html#zoneinfo.ZoneInfoNotFoundError" title="zoneinfo.ZoneInfoNotFoundError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">zoneinfo.ZoneInfoNotFoundError</span></code></a> is raised rather than a
<a class="reference internal" href="../library/exceptions.html#PermissionError" title="PermissionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PermissionError</span></code></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136028">gh-136028</a>: Fix parsing month names containing “İ” (U+0130, LATIN CAPITAL
LETTER I WITH DOT ABOVE) in <a class="reference internal" href="../library/time.html#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strptime()</span></code></a>. This affects locales
az_AZ, ber_DZ, ber_MA and crh_UA.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135995">gh-135995</a>: In the palmos encoding, make byte <code class="docutils literal notranslate"><span class="pre">0x9b</span></code> decode to <code class="docutils literal notranslate"><span class="pre">›</span></code>
(U+203A - SINGLE RIGHT-POINTING ANGLE QUOTATION MARK).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/53203">gh-53203</a>: Fix <a class="reference internal" href="../library/time.html#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strptime()</span></code></a> for <code class="docutils literal notranslate"><span class="pre">%c</span></code> and <code class="docutils literal notranslate"><span class="pre">%x</span></code> formats on
locales byn_ER, wal_ET and lzh_TW, and for <code class="docutils literal notranslate"><span class="pre">%X</span></code> format on locales ar_SA,
bg_BG and lzh_TW.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91555">gh-91555</a>: An earlier change, which was introduced in 3.14.0b2, has been
reverted. It disabled logging for a logger during handling of log messages
for that logger. Since the reversion, the behaviour should be as it was
before 3.14.0b2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135878">gh-135878</a>: Fixes a crash of <a class="reference internal" href="../library/types.html#types.SimpleNamespace" title="types.SimpleNamespace"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.SimpleNamespace</span></code></a> on <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free
threading</span></a> builds, when several threads were calling its
<a class="reference internal" href="../reference/datamodel.html#object.__repr__" title="object.__repr__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__repr__()</span></code></a> method at the same time.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135836">gh-135836</a>: Fix <a class="reference internal" href="../library/exceptions.html#IndexError" title="IndexError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IndexError</span></code></a> in <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.create_connection" title="asyncio.loop.create_connection"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.create_connection()</span></code></a>
that could occur when non-<a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> exception is raised during
connection and socket’s <code class="docutils literal notranslate"><span class="pre">close()</span></code> raises <code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135836">gh-135836</a>: Fix <a class="reference internal" href="../library/exceptions.html#IndexError" title="IndexError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IndexError</span></code></a> in <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.create_connection" title="asyncio.loop.create_connection"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.create_connection()</span></code></a>
that could occur when the Happy Eyeballs algorithm resulted in an empty
exceptions list during connection attempts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135855">gh-135855</a>: Raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> when
<code class="xref py py-func docutils literal notranslate"><span class="pre">_interpreters.set___main___attrs()</span></code> is passed a non-dict object.
Patch by Brian Schubert.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135815">gh-135815</a>: <a class="reference internal" href="../library/netrc.html#module-netrc" title="netrc: Loading of .netrc files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">netrc</span></code></a>: skip security checks if <a class="reference internal" href="../library/os.html#os.getuid" title="os.getuid"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.getuid()</span></code></a> is
missing. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135640">gh-135640</a>: Address bug where it was possible to call
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.write" title="xml.etree.ElementTree.ElementTree.write"><code class="xref py py-func docutils literal notranslate"><span class="pre">xml.etree.ElementTree.ElementTree.write()</span></code></a> on an ElementTree object
with an invalid root element. This behavior blanked the file passed to
<code class="docutils literal notranslate"><span class="pre">write</span></code> if it already existed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135645">gh-135645</a>: Added <code class="docutils literal notranslate"><span class="pre">supports_isolated_interpreters</span></code> field to
<a class="reference internal" href="../library/sys.html#sys.implementation" title="sys.implementation"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.implementation</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135646">gh-135646</a>: Raise consistent <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> exceptions in
<a class="reference internal" href="../library/annotationlib.html#annotationlib.ForwardRef.evaluate" title="annotationlib.ForwardRef.evaluate"><code class="xref py py-func docutils literal notranslate"><span class="pre">annotationlib.ForwardRef.evaluate()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135557">gh-135557</a>: Fix races on <a class="reference internal" href="../library/heapq.html#module-heapq" title="heapq: Heap queue algorithm (a.k.a. priority queue)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">heapq</span></code></a> updates and <a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> reads on
the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119180">gh-119180</a>: Only fetch globals and locals if necessary in
<a class="reference internal" href="../library/annotationlib.html#annotationlib.get_annotations" title="annotationlib.get_annotations"><code class="xref py py-func docutils literal notranslate"><span class="pre">annotationlib.get_annotations()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135561">gh-135561</a>: Fix a crash on DEBUG builds when an HACL* HMAC routine fails.
Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135487">gh-135487</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">reprlib.Repr.repr_int()</span></code> when given integers with
more than <a class="reference internal" href="../library/sys.html#sys.get_int_max_str_digits" title="sys.get_int_max_str_digits"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.get_int_max_str_digits()</span></code></a> digits. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135335">gh-135335</a>: <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a>: Flush <code class="docutils literal notranslate"><span class="pre">stdout</span></code> and <code class="docutils literal notranslate"><span class="pre">stderr</span></code> after
preloading modules in the <code class="docutils literal notranslate"><span class="pre">forkserver</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135069">gh-135069</a>: Fix the “Invalid error handling” exception in
<code class="xref py py-class docutils literal notranslate"><span class="pre">encodings.idna.IncrementalDecoder</span></code> to correctly replace the
‘errors’ parameter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130662">gh-130662</a>: +Accept leading zeros in precision and width fields for
+:class:<a class="reference internal" href="../library/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-obj docutils literal notranslate"><span class="pre">Decimal</span></code></a> formatting, for example <code class="docutils literal notranslate"><span class="pre">format(Decimal(1.25),</span>
<span class="pre">'.016f')</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130662">gh-130662</a>: Accept leading zeros in precision and width fields for
<a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fraction</span></code></a> formatting, for example <code class="docutils literal notranslate"><span class="pre">format(Fraction(1,</span>
<span class="pre">3),</span> <span class="pre">'.016f')</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87790">gh-87790</a>: Support underscore and comma as thousands separators in the
fractional part for <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fraction</span></code></a>’s formatting. Patch by
Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87790">gh-87790</a>: Support underscore and comma as thousands separators in the
fractional part for <a class="reference internal" href="../library/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal notranslate"><span class="pre">Decimal</span></code></a>’s formatting. Patch by
Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130664">gh-130664</a>: Handle corner-case for <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fraction</span></code></a>’s
formatting: treat zero-padding (preceding the width field by a zero
(<code class="docutils literal notranslate"><span class="pre">'0'</span></code>) character) as an equivalent to a fill character of <code class="docutils literal notranslate"><span class="pre">'0'</span></code> with
an alignment type of <code class="docutils literal notranslate"><span class="pre">'='</span></code>, just as in case of <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>’s.</p></li>
</ul>
</section>
<section id="id19">
<h3>Documentation<a class="headerlink" href="#id19" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/136155">gh-136155</a>: EPUB builds are fixed by excluding non-XHTML-compatible tags.</p></li>
</ul>
</section>
<section id="id20">
<h3>Core and Builtins<a class="headerlink" href="#id20" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109700">gh-109700</a>: Fix memory error handling in <a class="reference internal" href="../c-api/dict.html#c.PyDict_SetDefault" title="PyDict_SetDefault"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_SetDefault()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/78465">gh-78465</a>: Fix error message for <code class="docutils literal notranslate"><span class="pre">cls.__new__(cls,</span> <span class="pre">...)</span></code> where <code class="docutils literal notranslate"><span class="pre">cls</span></code> is
not instantiable builtin or extension type (with <code class="docutils literal notranslate"><span class="pre">tp_new</span></code> set to
<code class="docutils literal notranslate"><span class="pre">NULL</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129958">gh-129958</a>: Differentiate between t-strings and f-strings in syntax error
for newlines in format specifiers of single-quoted interpolated strings.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135871">gh-135871</a>: Non-blocking mutex lock attempts now return immediately when
the lock is busy instead of briefly spinning in the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threading</span></a>
build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135106">gh-135106</a>: Restrict the trashcan mechanism to GC’ed objects and untrack
them while in the trashcan to prevent the GC and trashcan mechanisms
conflicting.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135607">gh-135607</a>: Fix potential <a class="reference internal" href="../library/weakref.html#module-weakref" title="weakref: Support for weak references and weak dictionaries."><code class="xref py py-mod docutils literal notranslate"><span class="pre">weakref</span></code></a> races in an object’s destructor on
the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135608">gh-135608</a>: Fix a crash in the JIT involving attributes of modules.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135543">gh-135543</a>: Emit <code class="docutils literal notranslate"><span class="pre">sys.remote_exec</span></code> audit event when
<a class="reference internal" href="../library/sys.html#sys.remote_exec" title="sys.remote_exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.remote_exec()</span></code></a> is called and migrate <code class="docutils literal notranslate"><span class="pre">remote_debugger_script</span></code>
to <code class="docutils literal notranslate"><span class="pre">cpython.remote_debugger_script</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134280">gh-134280</a>: Disable constant folding for <code class="docutils literal notranslate"><span class="pre">~</span></code> with a boolean argument.
This moves the deprecation warning from compile time to runtime.</p></li>
</ul>
</section>
<section id="id21">
<h3>C API<a class="headerlink" href="#id21" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135906">gh-135906</a>: Fix compilation errors when compiling the internal headers with
a C++ compiler.</p></li>
</ul>
</section>
<section id="id22">
<h3>Build<a class="headerlink" href="#id22" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134273">gh-134273</a>: Add support for configuring compiler flags for the JIT with
<code class="docutils literal notranslate"><span class="pre">CFLAGS_JIT</span></code></p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-beta-3">
<h2>Python 3.14.0 beta 3<a class="headerlink" href="#python-3-14-0-beta-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-06-17</em></p>
<section id="id23">
<h3>Windows<a class="headerlink" href="#id23" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135099">gh-135099</a>: Fix a crash that could occur on Windows when a background
thread waits on a <a class="reference internal" href="../c-api/init.html#c.PyMutex" title="PyMutex"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyMutex</span></code></a> while the main thread is shutting down
the interpreter.</p></li>
</ul>
</section>
<section id="id24">
<h3>Tests<a class="headerlink" href="#id24" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132815">gh-132815</a>: Fix test__opcode: add <code class="docutils literal notranslate"><span class="pre">JUMP_BACKWARD</span></code> to specialization
stats.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135489">gh-135489</a>: Show verbose output for failing tests during PGO profiling step
with –enable-optimizations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135120">gh-135120</a>: Add <code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.subTests()</span></code>.</p></li>
</ul>
</section>
<section id="id25">
<h3>Security<a class="headerlink" href="#id25" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135462">gh-135462</a>: Fix quadratic complexity in processing specially crafted input
in <a class="reference internal" href="../library/html.parser.html#html.parser.HTMLParser" title="html.parser.HTMLParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">html.parser.HTMLParser</span></code></a>. End-of-file errors are now handled
according to the HTML5 specs – comments and declarations are
automatically closed, tags are ignored.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135034">gh-135034</a>: Fixes multiple issues that allowed <code class="docutils literal notranslate"><span class="pre">tarfile</span></code> extraction
filters (<code class="docutils literal notranslate"><span class="pre">filter="data"</span></code> and <code class="docutils literal notranslate"><span class="pre">filter="tar"</span></code>) to be bypassed using
crafted symlinks and hard links.</p>
<p>Addresses <span class="target" id="index-2"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2024-12718"><strong>CVE 2024-12718</strong></a>, <span class="target" id="index-3"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2025-4138"><strong>CVE 2025-4138</strong></a>, <span class="target" id="index-4"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2025-4330"><strong>CVE 2025-4330</strong></a>, and
<span class="target" id="index-5"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2025-4517"><strong>CVE 2025-4517</strong></a>.</p>
</li>
</ul>
</section>
<section id="id26">
<h3>Library<a class="headerlink" href="#id26" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65697">gh-65697</a>: <a class="reference internal" href="../library/configparser.html#module-configparser" title="configparser: Configuration file parser."><code class="xref py py-class docutils literal notranslate"><span class="pre">configparser</span></code></a>’s error message when attempting to write
an invalid key is now more helpful.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135497">gh-135497</a>: Fix <a class="reference internal" href="../library/os.html#os.getlogin" title="os.getlogin"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.getlogin()</span></code></a> failing for longer usernames on
BSD-based platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135429">gh-135429</a>: Fix the argument mismatch in <code class="docutils literal notranslate"><span class="pre">_lsprof</span></code> for <code class="docutils literal notranslate"><span class="pre">PY_THROW</span></code>
event.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135368">gh-135368</a>: Fix <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.Mock" title="unittest.mock.Mock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.Mock</span></code></a> generation on
<a class="reference internal" href="../library/dataclasses.html#dataclasses.dataclass" title="dataclasses.dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.dataclass()</span></code></a> objects. Now all special attributes are set
as it was before <a class="reference external" href="https://github.com/python/cpython/issues/124429">gh-124429</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133967">gh-133967</a>: Do not normalize <a class="reference internal" href="../library/locale.html#module-locale" title="locale: Internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code></a> name ‘C.UTF-8’ to ‘en_US.UTF-8’.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135321">gh-135321</a>: Raise a correct exception for values greater than 0x7fffffff
for the <code class="docutils literal notranslate"><span class="pre">BINSTRING</span></code> opcode in the C implementation of <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135276">gh-135276</a>: Backported bugfixes in zipfile.Path from zipp 3.23. Fixed
<code class="docutils literal notranslate"><span class="pre">.name</span></code>, <code class="docutils literal notranslate"><span class="pre">.stem</span></code> and other basename-based properties on Windows when
working with a zipfile on disk.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135244">gh-135244</a>: <a class="reference internal" href="../library/uuid.html#module-uuid" title="uuid: UUID objects (universally unique identifiers) according to RFC 9562"><code class="xref py py-mod docutils literal notranslate"><span class="pre">uuid</span></code></a>: when the MAC address cannot be determined, the
48-bit node ID is now generated with a cryptographically-secure
pseudo-random number generator (CSPRNG) as per <span class="target" id="index-6"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9562.html#section-6.10-3"><strong>RFC 9562, §6.10.3</strong></a>. This affects <a class="reference internal" href="../library/uuid.html#uuid.uuid1" title="uuid.uuid1"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid1()</span></code></a> and
<a class="reference internal" href="../library/uuid.html#uuid.uuid6" title="uuid.uuid6"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid6()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134970">gh-134970</a>: Fix the “unknown action” exception in
<a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser.add_argument_group" title="argparse.ArgumentParser.add_argument_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.ArgumentParser.add_argument_group()</span></code></a> to correctly replace
the action class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134718">gh-134718</a>: <a class="reference internal" href="../library/ast.html#ast.dump" title="ast.dump"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.dump()</span></code></a> now only omits <code class="docutils literal notranslate"><span class="pre">None</span></code> and <code class="docutils literal notranslate"><span class="pre">[]</span></code> values if
they are default values.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134939">gh-134939</a>: Add the <a class="reference internal" href="../library/concurrent.interpreters.html#module-concurrent.interpreters" title="concurrent.interpreters: Multiple interpreters in the same process"><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.interpreters</span></code></a> module. See <span class="target" id="index-7"></span><a class="pep reference external" href="https://peps.python.org/pep-0734/"><strong>PEP 734</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134885">gh-134885</a>: Fix possible crash in the <a class="reference internal" href="../library/compression.zstd.html#module-compression.zstd" title="compression.zstd: Low-level interface to compression and decompression routines in the zstd library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">compression.zstd</span></code></a> module
related to setting parameter types. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134857">gh-134857</a>: Improve error report for <a class="reference internal" href="../library/doctest.html#module-doctest" title="doctest: Test pieces of code within docstrings."><code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code></a>s run with
<a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a>. Remove <code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code> module frames from tracebacks and
redundant newline character from a failure message.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128840">gh-128840</a>: Fix parsing long IPv6 addresses with embedded IPv4 address.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134637">gh-134637</a>: Fix performance regression in calling a <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> function
pointer in <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threading</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134696">gh-134696</a>: Built-in HACL* and OpenSSL implementations of hash function
constructors now correctly accept the same <em>documented</em> named arguments.
For instance, <a class="reference internal" href="../library/hashlib.html#hashlib.md5" title="hashlib.md5"><code class="xref py py-func docutils literal notranslate"><span class="pre">md5()</span></code></a> could be previously invoked as
<code class="docutils literal notranslate"><span class="pre">md5(data=data)</span></code> or <code class="docutils literal notranslate"><span class="pre">md5(string=string)</span></code> depending on the underlying
implementation but these calls were not compatible. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134151">gh-134151</a>: <a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a>: Fix <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> in
<a class="reference internal" href="../library/email.utils.html#email.utils.decode_params" title="email.utils.decode_params"><code class="xref py py-func docutils literal notranslate"><span class="pre">email.utils.decode_params()</span></code></a> when sorting <span class="target" id="index-8"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2231.html"><strong>RFC 2231</strong></a> continuations
that contain an unnumbered section.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134210">gh-134210</a>: <a class="reference internal" href="../library/curses.html#curses.window.getch" title="curses.window.getch"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.window.getch()</span></code></a> now correctly handles signals.
Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134152">gh-134152</a>: <a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a>: Fix parsing of email message ID with invalid
domain.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133489">gh-133489</a>: <a class="reference internal" href="../library/random.html#random.getrandbits" title="random.getrandbits"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.getrandbits()</span></code></a> can now generate more that 2<sup>31</sup> bits. <a class="reference internal" href="../library/random.html#random.randbytes" title="random.randbytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.randbytes()</span></code></a> can now generate more that 256
MiB.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132813">gh-132813</a>: Improve error messages for incorrect types and values of
<a class="reference internal" href="../library/csv.html#csv.Dialect" title="csv.Dialect"><code class="xref py py-class docutils literal notranslate"><span class="pre">csv.Dialect</span></code></a> attributes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132969">gh-132969</a>: Prevent the <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">ProcessPoolExecutor</span></code></a>
executor thread, which remains running when <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.Executor.shutdown" title="concurrent.futures.Executor.shutdown"><code class="xref py py-meth docutils literal notranslate"><span class="pre">shutdown(wait=False)</span></code></a>, from attempting to adjust the
pool’s worker processes after the object state has already been reset
during shutdown. A combination of conditions, including a worker process
having terminated abormally, resulted in an exception and a potential hang
when the still-running executor thread attempted to replace dead workers
within the pool.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127081">gh-127081</a>: Fix libc thread safety issues with <a class="reference internal" href="../library/os.html#module-os" title="os: Miscellaneous operating system interfaces."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os</span></code></a> by replacing
<code class="docutils literal notranslate"><span class="pre">getlogin</span></code> with <code class="docutils literal notranslate"><span class="pre">getlogin_r</span></code> re-entrant version.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131884">gh-131884</a>: Fix formatting issues in <a class="reference internal" href="../library/json.html#json.dump" title="json.dump"><code class="xref py py-func docutils literal notranslate"><span class="pre">json.dump()</span></code></a> when both <em>indent</em>
and <em>skipkeys</em> are used.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130999">gh-130999</a>: Avoid exiting the new REPL and offer suggestions even if there
are non-string candidates when errors occur.</p></li>
</ul>
</section>
<section id="id27">
<h3>Documentation<a class="headerlink" href="#id27" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135171">gh-135171</a>: Document that the <a class="reference internal" href="../glossary.html#term-iterator"><span class="xref std std-term">iterator</span></a> for the leftmost
<code class="xref std std-keyword docutils literal notranslate"><span class="pre">for</span></code> clause in the generator expression is created immediately.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45210">bpo-45210</a>: Document that error indicator may be set in tp_dealloc, and how
to avoid clobbering it.</p></li>
</ul>
</section>
<section id="id28">
<h3>Core and Builtins<a class="headerlink" href="#id28" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135496">gh-135496</a>: Fix typo in the f-string conversion type error (“exclamanation”
-> “exclamation”).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135371">gh-135371</a>: Fixed <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> debugging tools to properly display
internal coroutine call stacks alongside external task dependencies. The
<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">asyncio</span> <span class="pre">ps</span></code> and <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">asyncio</span> <span class="pre">pstree</span></code> commands now
show complete execution context. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127319">gh-127319</a>: Set the <code class="docutils literal notranslate"><span class="pre">allow_reuse_port</span></code> class variable to <code class="docutils literal notranslate"><span class="pre">False</span></code> on the
XMLRPC, logging, and HTTP servers. This matches the behavior in prior
Python releases, which is to not allow port reuse.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135171">gh-135171</a>: Reverts the behavior of async generator expressions when
created with object w/o __aiter__ method to the pre-3.13 behavior of
raising a TypeError.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130077">gh-130077</a>: Properly raise custom syntax errors when incorrect syntax
containing names that are prefixes of soft keywords is encountered. Patch
by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135171">gh-135171</a>: Reverts the behavior of generator expressions when created with
a non-iterable to the pre-3.13 behavior of raising a TypeError. It is no
longer possible to cause a crash in the debugger by altering the generator
expression’s local variables. This is achieved by moving the <code class="docutils literal notranslate"><span class="pre">GET_ITER</span></code>
instruction back to the creation of the generator expression and adding an
additional check to <code class="docutils literal notranslate"><span class="pre">FOR_ITER</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116738">gh-116738</a>: Make methods in <a class="reference internal" href="../library/heapq.html#module-heapq" title="heapq: Heap queue algorithm (a.k.a. priority queue)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">heapq</span></code></a> thread-safe on the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free
threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134876">gh-134876</a>: Add support to <span class="target" id="index-9"></span><a class="pep reference external" href="https://peps.python.org/pep-0768/"><strong>PEP 768</strong></a> remote debugging for Linux kernels
which don’t have CONFIG_CROSS_MEMORY_ATTACH configured.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134889">gh-134889</a>: Fix handling of a few opcodes that leave operands on the stack
when optimizing <code class="docutils literal notranslate"><span class="pre">LOAD_FAST</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134908">gh-134908</a>: Fix crash when iterating over lines in a text file on the
<a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132617">gh-132617</a>: Fix <a class="reference internal" href="../library/stdtypes.html#dict.update" title="dict.update"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.update()</span></code></a> modification check that could
incorrectly raise a “dict mutated during update” error when a different
dictionary was modified that happens to share the same underlying keys
object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134679">gh-134679</a>: Fix crash in the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threading</span></a> build’s QSBR code that
could occur when changing an object’s <code class="docutils literal notranslate"><span class="pre">__dict__</span></code> attribute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127682">gh-127682</a>: No longer call <code class="docutils literal notranslate"><span class="pre">__iter__</span></code> twice in list comprehensions. This
brings the behavior of list comprehensions in line with other forms of
iteration</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133912">gh-133912</a>: Fix the C API function <code class="docutils literal notranslate"><span class="pre">PyObject_GenericSetDict</span></code> to handle
extension classes with inline values.</p></li>
</ul>
</section>
<section id="id29">
<h3>C API<a class="headerlink" href="#id29" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134989">gh-134989</a>: Fix <code class="docutils literal notranslate"><span class="pre">Py_RETURN_NONE</span></code>, <code class="docutils literal notranslate"><span class="pre">Py_RETURN_TRUE</span></code> and
<code class="docutils literal notranslate"><span class="pre">Py_RETURN_FALSE</span></code> macros in the limited C API 3.11 and older: don’t
treat <code class="docutils literal notranslate"><span class="pre">Py_None</span></code>, <code class="docutils literal notranslate"><span class="pre">Py_True</span></code> and <code class="docutils literal notranslate"><span class="pre">Py_False</span></code> as immortal. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134989">gh-134989</a>: Implement <a class="reference internal" href="../c-api/object.html#c.PyObject_DelAttr" title="PyObject_DelAttr"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_DelAttr()</span></code></a> and
<a class="reference internal" href="../c-api/object.html#c.PyObject_DelAttrString" title="PyObject_DelAttrString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_DelAttrString()</span></code></a> as macros in the limited C API 3.12 and
older. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133968">gh-133968</a>: Add <a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteASCII" title="PyUnicodeWriter_WriteASCII"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteASCII()</span></code></a> function to write an
ASCII string into a <a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter" title="PyUnicodeWriter"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyUnicodeWriter</span></code></a>. The function is faster than
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteUTF8" title="PyUnicodeWriter_WriteUTF8"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteUTF8()</span></code></a>, but has an undefined behavior if the
input string contains non-ASCII characters. Patch by Victor Stinner.</p></li>
</ul>
</section>
<section id="id30">
<h3>Build<a class="headerlink" href="#id30" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119132">gh-119132</a>: Remove “experimental” tag from the CPython free-threading
build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/135497">gh-135497</a>: Fix the detection of <code class="docutils literal notranslate"><span class="pre">MAXLOGNAME</span></code> in the <code class="docutils literal notranslate"><span class="pre">configure.ac</span></code>
script.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134923">gh-134923</a>: Windows builds with profile-guided optimization enabled now use
<code class="docutils literal notranslate"><span class="pre">/GENPROFILE</span></code> and <code class="docutils literal notranslate"><span class="pre">/USEPROFILE</span></code> instead of deprecated <code class="docutils literal notranslate"><span class="pre">/LTCG:</span></code>
options.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134774">gh-134774</a>: Fix <a class="reference internal" href="../c-api/intro.html#c.Py_DEBUG" title="Py_DEBUG"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_DEBUG</span></code></a> macro redefinition warnings on Windows
debug builds. Patch by Chris Eibl.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134632">gh-134632</a>: Fixed <code class="docutils literal notranslate"><span class="pre">build-details.json</span></code> generation to use <code class="docutils literal notranslate"><span class="pre">INCLUDEPY</span></code>,
in order to reference the <code class="docutils literal notranslate"><span class="pre">pythonX.Y</span></code> subdirectory of the include
directory, as required in <span class="target" id="index-10"></span><a class="pep reference external" href="https://peps.python.org/pep-0739/"><strong>PEP 739</strong></a>, instead of the top-level include
directory.</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-beta-2">
<h2>Python 3.14.0 beta 2<a class="headerlink" href="#python-3-14-0-beta-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-05-26</em></p>
<section id="id31">
<h3>Windows<a class="headerlink" href="#id31" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130727">gh-130727</a>: Fix a race in internal calls into WMI that can result in an
“invalid handle” exception under high load. Patch by Chris Eibl.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/76023">gh-76023</a>: Make <a class="reference internal" href="../library/os.path.html#os.path.realpath" title="os.path.realpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.realpath()</span></code></a> ignore Windows error 1005 when in
non-strict mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133779">gh-133779</a>: Reverts the change to generate different <code class="file docutils literal notranslate"><span class="pre">pyconfig.h</span></code>
files based on compiler settings, as it was frequently causing extension
builds to break. In particular, the <code class="docutils literal notranslate"><span class="pre">Py_GIL_DISABLED</span></code> preprocessor
variable must now always be defined explicitly when compiling for the
experimental free-threaded runtime. The <a class="reference internal" href="../library/sysconfig.html#sysconfig.get_config_var" title="sysconfig.get_config_var"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_config_var()</span></code></a>
function can be used to determine whether the current runtime was compiled
with that flag or not.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133626">gh-133626</a>: Ensures packages are not accidentally bundled into the
traditional installer.</p></li>
</ul>
</section>
<section id="id32">
<h3>Tools/Demos<a class="headerlink" href="#id32" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134215">gh-134215</a>: <a class="reference internal" href="../glossary.html#term-REPL"><span class="xref std std-term">REPL</span></a> import autocomplete only suggests private modules
when explicitly specified.</p></li>
</ul>
</section>
<section id="id33">
<h3>Tests<a class="headerlink" href="#id33" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133744">gh-133744</a>: Fix multiprocessing interrupt test. Add an event to synchronize
the parent process with the child process: wait until the child process
starts sleeping. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133682">gh-133682</a>: Fixed test case
<code class="docutils literal notranslate"><span class="pre">test.test_annotationlib.TestStringFormat.test_displays</span></code> which ensures
proper handling of complex data structures (lists, sets, dictionaries, and
tuples) in string annotations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133639">gh-133639</a>: Fix <code class="docutils literal notranslate"><span class="pre">TestPyReplAutoindent.test_auto_indent_default()</span></code> doesn’t
run <code class="docutils literal notranslate"><span class="pre">input_code</span></code>.</p></li>
</ul>
</section>
<section id="id34">
<h3>Security<a class="headerlink" href="#id34" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133767">gh-133767</a>: Fix use-after-free in the “unicode-escape” decoder with a
non-“strict” error handler.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128840">gh-128840</a>: Short-circuit the processing of long IPv6 addresses early in
<a class="reference internal" href="../library/ipaddress.html#module-ipaddress" title="ipaddress: IPv4/IPv6 manipulation library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress</span></code></a> to prevent excessive memory consumption and a minor
denial-of-service.</p></li>
</ul>
</section>
<section id="id35">
<h3>Library<a class="headerlink" href="#id35" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132710">gh-132710</a>: If possible, ensure that <a class="reference internal" href="../library/uuid.html#uuid.getnode" title="uuid.getnode"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid.getnode()</span></code></a> returns the same
result even across different processes. Previously, the result was
constant only within the same process. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/80334">gh-80334</a>: <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.freeze_support" title="multiprocessing.freeze_support"><code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocessing.freeze_support()</span></code></a> now checks for work on
any “spawn” start method platform rather than only on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134582">gh-134582</a>: Fix tokenize.untokenize() round-trip errors related to
t-strings braces escaping</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134546">gh-134546</a>: Ensure <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> remote debugging script is readable by remote
Python process.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134451">gh-134451</a>: Converted <code class="docutils literal notranslate"><span class="pre">asyncio.tools.CycleFoundException</span></code> from dataclass
to a regular exception type.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114177">gh-114177</a>: Fix <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> to not close subprocess pipes which would
otherwise error out when the event loop is already closed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90871">gh-90871</a>: Fixed an off by one error concerning the backlog parameter in
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.create_unix_server" title="asyncio.loop.create_unix_server"><code class="xref py py-meth docutils literal notranslate"><span class="pre">create_unix_server()</span></code></a>. Contributed by Christian
Harries.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134323">gh-134323</a>: Fix the <a class="reference internal" href="../library/threading.html#threading.RLock.locked" title="threading.RLock.locked"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.RLock.locked()</span></code></a> method.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86802">gh-86802</a>: Fixed asyncio memory leak in cancelled shield tasks. For
shielded tasks where the shield was cancelled, log potential exceptions
through the exception handler. Contributed by Christian Harries.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134209">gh-134209</a>: <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a>: The <a class="reference internal" href="../library/curses.html#curses.window.instr" title="curses.window.instr"><code class="xref py py-meth docutils literal notranslate"><span class="pre">curses.window.instr()</span></code></a> and
<a class="reference internal" href="../library/curses.html#curses.window.getstr" title="curses.window.getstr"><code class="xref py py-meth docutils literal notranslate"><span class="pre">curses.window.getstr()</span></code></a> methods now allocate their internal buffer on
the heap instead of the stack; in addition, the max buffer size is
increased from 1023 to 2047.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134235">gh-134235</a>: Updated tab completion on REPL to include builtin modules.
Contributed by Tom Wang, Hunter Young</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134152">gh-134152</a>: Fixed <a class="reference internal" href="../library/exceptions.html#UnboundLocalError" title="UnboundLocalError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnboundLocalError</span></code></a> that could occur during
<a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a> header parsing if an expected trailing delimiter is missing
in some contexts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134168">gh-134168</a>: <a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a>: Fix IPv6 address binding and
<a class="reference internal" href="../library/http.server.html#cmdoption-http.server-d"><code class="xref std std-option docutils literal notranslate"><span class="pre">--directory</span></code></a> handling when using HTTPS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/62184">gh-62184</a>: Remove import of C implementation of <a class="reference internal" href="../library/io.html#io.FileIO" title="io.FileIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.FileIO</span></code></a> from
Python implementation which has its own implementation</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133982">gh-133982</a>: Emit <a class="reference internal" href="../library/exceptions.html#RuntimeWarning" title="RuntimeWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeWarning</span></code></a> in the Python implementation of
<a class="reference internal" href="../library/io.html#module-io" title="io: Core tools for working with streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">io</span></code></a> when the <a class="reference internal" href="../glossary.html#term-file-object"><span class="xref std std-term">file-like object</span></a> is not closed
explicitly in the presence of multiple I/O layers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133890">gh-133890</a>: The <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> module now handles <a class="reference internal" href="../library/exceptions.html#UnicodeEncodeError" title="UnicodeEncodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeEncodeError</span></code></a>
in the same way as <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> when cannot extract a member.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134097">gh-134097</a>: Fix interaction of the new <a class="reference internal" href="../glossary.html#term-REPL"><span class="xref std std-term">REPL</span></a> and <a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span>
<span class="pre">showrefcount</span></code></a> command line option.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133889">gh-133889</a>: The generated directory listing page in
<a class="reference internal" href="../library/http.server.html#http.server.SimpleHTTPRequestHandler" title="http.server.SimpleHTTPRequestHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.server.SimpleHTTPRequestHandler</span></code></a> now only shows the decoded
path component of the requested URL, and not the query and fragment.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134098">gh-134098</a>: Fix handling paths that end with a percent-encoded slash
(<code class="docutils literal notranslate"><span class="pre">%2f</span></code> or <code class="docutils literal notranslate"><span class="pre">%2F</span></code>) in <a class="reference internal" href="../library/http.server.html#http.server.SimpleHTTPRequestHandler" title="http.server.SimpleHTTPRequestHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.server.SimpleHTTPRequestHandler</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132124">gh-132124</a>: On POSIX-compliant systems,
<code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocessing.util.get_temp_dir()</span></code> now ignores <span class="target" id="index-11"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">TMPDIR</span></code>
(and similar environment variables) if the path length of <code class="docutils literal notranslate"><span class="pre">AF_UNIX</span></code>
socket files exceeds the platform-specific maximum length when using the
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing-start-method-forkserver"><span class="std std-ref">forkserver</span></a> start method.
Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134062">gh-134062</a>: <a class="reference internal" href="../library/ipaddress.html#module-ipaddress" title="ipaddress: IPv4/IPv6 manipulation library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress</span></code></a>: fix collisions in <a class="reference internal" href="../reference/datamodel.html#object.__hash__" title="object.__hash__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__hash__()</span></code></a>
for <a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv4Network" title="ipaddress.IPv4Network"><code class="xref py py-class docutils literal notranslate"><span class="pre">IPv4Network</span></code></a> and <a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv6Network" title="ipaddress.IPv6Network"><code class="xref py py-class docutils literal notranslate"><span class="pre">IPv6Network</span></code></a>
objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133970">gh-133970</a>: Make <code class="xref py py-class docutils literal notranslate"><span class="pre">string.templatelib.Template</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">string.templatelib.Interpolation</span></code> generic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71253">gh-71253</a>: Raise <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> in <a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a> if <em>opener</em> returns a
negative file-descriptor in the Python implementation of <a class="reference internal" href="../library/io.html#module-io" title="io: Core tools for working with streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">io</span></code></a> to
match the C implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133960">gh-133960</a>: Simplify and improve <a class="reference internal" href="../library/typing.html#typing.evaluate_forward_ref" title="typing.evaluate_forward_ref"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.evaluate_forward_ref()</span></code></a>. It
now no longer raises errors on certain invalid types. In several
situations, it is now able to evaluate forward references that were
previously unsupported.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133925">gh-133925</a>: Make the private class <code class="docutils literal notranslate"><span class="pre">typing._UnionGenericAlias</span></code> hashable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133653">gh-133653</a>: Fix <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser" title="argparse.ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a> with the <em>formatter_class</em>
argument. Fix TypeError when <em>formatter_class</em> is a custom subclass of
<code class="xref py py-class docutils literal notranslate"><span class="pre">HelpFormatter</span></code>. Fix TypeError when <em>formatter_class</em> is not a
subclass of <code class="xref py py-class docutils literal notranslate"><span class="pre">HelpFormatter</span></code> and non-standard <em>prefix_char</em> is
used. Fix support of colorizing when <em>formatter_class</em> is not a subclass
of <code class="xref py py-class docutils literal notranslate"><span class="pre">HelpFormatter</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132641">gh-132641</a>: Fixed a race in <a class="reference internal" href="../library/functools.html#functools.lru_cache" title="functools.lru_cache"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.lru_cache()</span></code></a> under
free-threading.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133783">gh-133783</a>: Fix bug with applying <a class="reference internal" href="../library/copy.html#copy.replace" title="copy.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.replace()</span></code></a> to <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a>
objects. Attributes that default to <code class="docutils literal notranslate"><span class="pre">None</span></code> were incorrectly treated as
required for manually created AST nodes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133684">gh-133684</a>: Fix bug where <a class="reference internal" href="../library/annotationlib.html#annotationlib.get_annotations" title="annotationlib.get_annotations"><code class="xref py py-func docutils literal notranslate"><span class="pre">annotationlib.get_annotations()</span></code></a> would
return the wrong result for certain classes that are part of a class
hierarchy where <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">annotations</span></code> is used.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77057">gh-77057</a>: Fix handling of invalid markup declarations in
<a class="reference internal" href="../library/html.parser.html#html.parser.HTMLParser" title="html.parser.HTMLParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">html.parser.HTMLParser</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130328">gh-130328</a>: Speedup pasting in <code class="docutils literal notranslate"><span class="pre">PyREPL</span></code> on Windows in a legacy console.
Patch by Chris Eibl.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133701">gh-133701</a>: Fix bug where <a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypedDict</span></code></a> classes defined under
<code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">annotations</span></code> and inheriting from another
<code class="docutils literal notranslate"><span class="pre">TypedDict</span></code> had an incorrect <code class="docutils literal notranslate"><span class="pre">__annotations__</span></code> attribute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133581">gh-133581</a>: Improve unparsing of t-strings in <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> and
<code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">annotations</span></code>. Empty t-strings now round-trip
correctly and formatting in interpolations is preserved. Patch by Jelle
Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133551">gh-133551</a>: Support t-strings (<span class="target" id="index-12"></span><a class="pep reference external" href="https://peps.python.org/pep-0750/"><strong>PEP 750</strong></a>) in <a class="reference internal" href="../library/annotationlib.html#module-annotationlib" title="annotationlib: Functionality for introspecting annotations"><code class="xref py py-mod docutils literal notranslate"><span class="pre">annotationlib</span></code></a>. Patch
by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133439">gh-133439</a>: Fix dot commands with trailing spaces are mistaken for
multi-line SQL statements in the sqlite3 command-line interface.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132493">gh-132493</a>: Avoid accessing <code class="docutils literal notranslate"><span class="pre">__annotations__</span></code> unnecessarily in
<a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132876">gh-132876</a>: <code class="docutils literal notranslate"><span class="pre">ldexp()</span></code> on Windows doesn’t round subnormal results before
Windows 11, but should. Python’s <a class="reference internal" href="../library/math.html#math.ldexp" title="math.ldexp"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.ldexp()</span></code></a> wrapper now does
round them, so results may change slightly, in rare cases of very small
results, on Windows versions before 11.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133009">gh-133009</a>: <a class="reference internal" href="../library/xml.etree.elementtree.html#module-xml.etree.ElementTree" title="xml.etree.ElementTree: Implementation of the ElementTree API."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree.ElementTree</span></code></a>: Fix a crash in
<a class="reference internal" href="../library/copy.html#object.__deepcopy__" title="object.__deepcopy__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Element.__deepcopy__</span></code></a> when the element is
concurrently mutated. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91555">gh-91555</a>: Ignore log messages generated during handling of log messages,
to avoid deadlock or infinite recursion. [NOTE: This change has since been
reverted.]</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125028">gh-125028</a>: <a class="reference internal" href="../library/functools.html#functools.Placeholder" title="functools.Placeholder"><code class="xref py py-data docutils literal notranslate"><span class="pre">functools.Placeholder</span></code></a> cannot be passed to
<a class="reference internal" href="../library/functools.html#functools.partial" title="functools.partial"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.partial()</span></code></a> as a keyword argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/62824">gh-62824</a>: Fix aliases for <code class="docutils literal notranslate"><span class="pre">iso8859_8</span></code> encoding. Patch by Dave Goncalves.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86155">gh-86155</a>: <a class="reference internal" href="../library/html.parser.html#html.parser.HTMLParser.close" title="html.parser.HTMLParser.close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">html.parser.HTMLParser.close()</span></code></a> no longer loses data when
the <code class="docutils literal notranslate"><span class="pre"><script></span></code> tag is not closed. Patch by Waylan Limberg.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69426">gh-69426</a>: Fix <a class="reference internal" href="../library/html.parser.html#html.parser.HTMLParser" title="html.parser.HTMLParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">html.parser.HTMLParser</span></code></a> to not unescape character
entities in attribute values if they are followed by an ASCII alphanumeric
or an equals sign.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28494">bpo-28494</a>: Improve Zip file validation false positive rate in
<a class="reference internal" href="../library/zipfile.html#zipfile.is_zipfile" title="zipfile.is_zipfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">zipfile.is_zipfile()</span></code></a>.</p></li>
</ul>
</section>
<section id="id36">
<h3>Core and Builtins<a class="headerlink" href="#id36" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134381">gh-134381</a>: Fix <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> when using a not-started
<a class="reference internal" href="../library/threading.html#threading.Thread" title="threading.Thread"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.Thread</span></code></a> after calling <a class="reference internal" href="../library/os.html#os.fork" title="os.fork"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fork()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127960">gh-127960</a>: PyREPL interactive shell no longer starts with <code class="docutils literal notranslate"><span class="pre">__package__</span></code>
and <code class="docutils literal notranslate"><span class="pre">__file__</span></code> global names set to <code class="docutils literal notranslate"><span class="pre">_pyrepl</span></code> package internals.
Contributed by Yuichiro Tachibana.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130397">gh-130397</a>: Remove special-casing for C stack depth limits for WASI. Due to
WebAssembly’s built-in stack protection this does not pose a security
concern.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128066">gh-128066</a>: Fixes an edge case where PyREPL improperly threw an error when
Python is invoked on a read only filesystem while trying to write history
file entries.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69605">gh-69605</a>: When auto-completing an import in the <a class="reference internal" href="../glossary.html#term-REPL"><span class="xref std std-term">REPL</span></a>, finding no
candidates now issues no suggestion, rather than suggestions from the
current namespace.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134158">gh-134158</a>: Fix coloring of double braces in f-strings and t-strings in the
<a class="reference internal" href="../glossary.html#term-REPL"><span class="xref std std-term">REPL</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134119">gh-134119</a>: Fix crash when calling <a class="reference internal" href="../library/functions.html#next" title="next"><code class="xref py py-func docutils literal notranslate"><span class="pre">next()</span></code></a> on an exhausted template
string iterator. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134100">gh-134100</a>: Fix a use-after-free bug that occurs when an imported module
isn’t in <a class="reference internal" href="../library/sys.html#sys.modules" title="sys.modules"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.modules</span></code></a> after its initial import. Patch by
Nico-Posada.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133999">gh-133999</a>: Fix <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> regression in <a class="reference internal" href="../reference/compound_stmts.html#except"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">except</span></code></a> parsing
after <a class="reference external" href="https://github.com/python/cpython/issues/123440">gh-123440</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133886">gh-133886</a>: Fix <a class="reference internal" href="../library/sys.html#sys.remote_exec" title="sys.remote_exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.remote_exec()</span></code></a> for non-ASCII paths in non-UTF-8
locales and non-UTF-8 paths in UTF-8 locales.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133703">gh-133703</a>: Fix hashtable in dict can be bigger than intended in some
situations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133778">gh-133778</a>: Fix bug where assigning to the <a class="reference internal" href="../reference/datamodel.html#type.__annotations__" title="type.__annotations__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__annotations__</span></code></a>
attributes of classes defined under <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">annotations</span></code>
had no effect.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132762">gh-132762</a>: <a class="reference internal" href="../library/stdtypes.html#dict.fromkeys" title="dict.fromkeys"><code class="xref py py-meth docutils literal notranslate"><span class="pre">fromkeys()</span></code></a> no longer loops forever when adding a
small set of keys to a large base dict. Patch by Angela Liss.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133541">gh-133541</a>: Inconsistent indentation in user input crashed the new REPL
when syntax highlighting was active. This is now fixed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133516">gh-133516</a>: Raise <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> when constants <code class="docutils literal notranslate"><span class="pre">True</span></code>, <code class="docutils literal notranslate"><span class="pre">False</span></code> or
<code class="docutils literal notranslate"><span class="pre">None</span></code> are used as an identifier after NFKC normalization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132542">gh-132542</a>: Update <a class="reference internal" href="../library/threading.html#threading.Thread.native_id" title="threading.Thread.native_id"><code class="xref py py-attr docutils literal notranslate"><span class="pre">Thread.native_id</span></code></a>
after <em class="manpage"><a class="manpage reference external" href="https://manpages.debian.org/fork(2)">fork(2)</a></em> to ensure accuracy. Patch by Noam Cohen.</p></li>
</ul>
</section>
<section id="id37">
<h3>C API<a class="headerlink" href="#id37" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134144">gh-134144</a>: Fix crash when calling <a class="reference internal" href="../c-api/init.html#c.Py_EndInterpreter" title="Py_EndInterpreter"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_EndInterpreter()</span></code></a> with a
<a class="reference internal" href="../glossary.html#term-thread-state"><span class="xref std std-term">thread state</span></a> that isn’t the initial thread for the interpreter.</p></li>
</ul>
</section>
<section id="id38">
<h3>Build<a class="headerlink" href="#id38" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/134455">gh-134455</a>: Fixed <code class="docutils literal notranslate"><span class="pre">build-details.json</span></code> generation to use the correct
<code class="docutils literal notranslate"><span class="pre">c_api.headers</span></code> as defined in <span class="target" id="index-13"></span><a class="pep reference external" href="https://peps.python.org/pep-0739/"><strong>PEP 739</strong></a>, instead of <code class="docutils literal notranslate"><span class="pre">c_api.include</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131769">gh-131769</a>: Fix detecting when the build Python in a cross-build is a
pydebug build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117088">gh-117088</a>: AIX linker don’t support -h option, so avoid it through
platform check</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-beta-1">
<h2>Python 3.14.0 beta 1<a class="headerlink" href="#python-3-14-0-beta-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-05-06</em></p>
<section id="id39">
<h3>Windows<a class="headerlink" href="#id39" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132930">gh-132930</a>: Marks the installer for Windows as deprecated and updates
documentation to cover the new Python install manager.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127405">gh-127405</a>: Add <code class="docutils literal notranslate"><span class="pre">ABIFLAGS</span></code> to <a class="reference internal" href="../library/sysconfig.html#sysconfig.get_config_vars" title="sysconfig.get_config_vars"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_config_vars()</span></code></a> on
Windows. Patch by Xuehai Pan.</p></li>
</ul>
</section>
<section id="id40">
<h3>Tools/Demos<a class="headerlink" href="#id40" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130453">gh-130453</a>: Allow passing multiple keyword arguments with the same function
name in <strong class="program">pygettext</strong>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130195">gh-130195</a>: Add warning messages when <strong class="program">pygettext</strong> unimplemented
<code class="docutils literal notranslate"><span class="pre">-a/--extract-all</span></code> option is called.</p></li>
</ul>
</section>
<section id="id41">
<h3>Tests<a class="headerlink" href="#id41" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133131">gh-133131</a>: The iOS testbed will now select the most recently released
“SE-class” device for testing if a device isn’t explicitly specified.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91048">gh-91048</a>: Add ability to externally inspect all pending asyncio tasks,
even if no task is currently entered on the event loop.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109981">gh-109981</a>: The test helper that counts the list of open file descriptors
now uses the optimised <code class="docutils literal notranslate"><span class="pre">/dev/fd</span></code> approach on all Apple platforms, not
just macOS. This avoids crashes caused by guarded file descriptors.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132678">gh-132678</a>: Add <code class="docutils literal notranslate"><span class="pre">--prioritize</span></code> to <code class="docutils literal notranslate"><span class="pre">-m</span> <span class="pre">test</span></code>. This option allows the
user to specify which selected tests should execute first, even if the
order is otherwise randomized. This is particularly useful for tests that
run the longest.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131290">gh-131290</a>: Tests in <code class="file docutils literal notranslate"><span class="pre">Lib/test</span></code> can now be correctly executed as
standalone scripts.</p></li>
</ul>
</section>
<section id="id42">
<h3>Security<a class="headerlink" href="#id42" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115322">gh-115322</a>: The underlying extension modules behind <a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a>:,
<a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a>, and <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> now raise audit events on previously
uncovered code paths that could lead to file system access related to C
function calling and external binary execution. The
<code class="docutils literal notranslate"><span class="pre">ctypes.call_function</span></code> audit hook has also been fixed to use an unsigned
value for its <code class="docutils literal notranslate"><span class="pre">function</span> <span class="pre">pointer</span></code>.</p></li>
</ul>
</section>
<section id="id43">
<h3>Library<a class="headerlink" href="#id43" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133490">gh-133490</a>: Add color support to PDB in remote mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132493">gh-132493</a>: Avoid eagerly evaluating annotations in functions decorated
with <a class="reference internal" href="../library/reprlib.html#reprlib.recursive_repr" title="reprlib.recursive_repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">reprlib.recursive_repr()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130645">gh-130645</a>: Add color to stdlib argparse CLIs. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119180">gh-119180</a>: Make <a class="reference internal" href="../library/annotationlib.html#annotationlib.get_annotations" title="annotationlib.get_annotations"><code class="xref py py-func docutils literal notranslate"><span class="pre">annotationlib.get_annotations()</span></code></a> succeed with the
<code class="docutils literal notranslate"><span class="pre">FORWARDREF</span></code> format if evaluating the annotations throws an exception
other than <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> or <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133351">gh-133351</a>: Fix remote PDB to correctly request tab completions for Python
expressions from the server when completing a continuation line of a
multi-line Python block.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133367">gh-133367</a>: Add the <code class="docutils literal notranslate"><span class="pre">--feature-version</span></code>, <code class="docutils literal notranslate"><span class="pre">--optimize</span></code>, and
<code class="docutils literal notranslate"><span class="pre">--show-empty</span></code> options to the <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> command-line interface. Patch
by Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133363">gh-133363</a>: The <a class="reference internal" href="../library/cmd.html#cmd.Cmd" title="cmd.Cmd"><code class="xref py py-class docutils literal notranslate"><span class="pre">cmd.Cmd</span></code></a> class has been fixed to reliably call the
<code class="docutils literal notranslate"><span class="pre">completedefault</span></code> method whenever the <code class="docutils literal notranslate"><span class="pre">do_shell</span></code> method is not defined
and tab completion is requested for a line beginning with <code class="docutils literal notranslate"><span class="pre">!</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113081">gh-113081</a>: Highlight syntax on source code in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133349">gh-133349</a>: Introduced auto-indent in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> multi-line input.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133306">gh-133306</a>: Use <code class="docutils literal notranslate"><span class="pre">\z</span></code> instead of <code class="docutils literal notranslate"><span class="pre">\Z</span></code> in <a class="reference internal" href="../library/fnmatch.html#fnmatch.translate" title="fnmatch.translate"><code class="xref py py-func docutils literal notranslate"><span class="pre">fnmatch.translate()</span></code></a> and
<a class="reference internal" href="../library/glob.html#glob.translate" title="glob.translate"><code class="xref py py-func docutils literal notranslate"><span class="pre">glob.translate()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133306">gh-133306</a>: Support <code class="docutils literal notranslate"><span class="pre">\z</span></code> as a synonym for <code class="docutils literal notranslate"><span class="pre">\Z</span></code> in <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">regular</span>
<span class="pre">expressions</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133300">gh-133300</a>: Make <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser" title="argparse.ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a>’s <code class="docutils literal notranslate"><span class="pre">suggest_on_error</span></code> a
keyword-only parameter. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133290">gh-133290</a>: Fix attribute caching issue when setting
<a class="reference internal" href="../library/ctypes.html#ctypes._Pointer._type_" title="ctypes._Pointer._type_"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ctypes._Pointer._type_</span></code></a> in the undocumented and deprecated
<code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.SetPointerType()</span></code> function and the undocumented
<code class="xref py py-meth docutils literal notranslate"><span class="pre">set_type()</span></code> method.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133223">gh-133223</a>: When PDB is attached to a remote process, do a better job of
intercepting Ctrl+C and forwarding it to the remote process.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133153">gh-133153</a>: Do not complete <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> commands in <code class="docutils literal notranslate"><span class="pre">interact</span></code> mode of
<a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133139">gh-133139</a>: Add the <a class="reference internal" href="../library/curses.html#curses.assume_default_colors" title="curses.assume_default_colors"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.assume_default_colors()</span></code></a> function, a
refinement of the <a class="reference internal" href="../library/curses.html#curses.use_default_colors" title="curses.use_default_colors"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.use_default_colors()</span></code></a> function which allows
to change the color pair <code class="docutils literal notranslate"><span class="pre">0</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133089">gh-133089</a>: Use original timeout value for <a class="reference internal" href="../library/subprocess.html#subprocess.TimeoutExpired" title="subprocess.TimeoutExpired"><code class="xref py py-exc docutils literal notranslate"><span class="pre">subprocess.TimeoutExpired</span></code></a>
when the func <a class="reference internal" href="../library/subprocess.html#subprocess.run" title="subprocess.run"><code class="xref py py-meth docutils literal notranslate"><span class="pre">subprocess.run()</span></code></a> is called with a timeout instead of
sometimes a confusing partial remaining time out value used internally on
the final <code class="docutils literal notranslate"><span class="pre">wait()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133036">gh-133036</a>: <a class="reference internal" href="../library/codecs.html#codecs.open" title="codecs.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">codecs.open()</span></code></a> is now deprecated. Use <a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a>
instead. Contributed by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132987">gh-132987</a>: Many builtin and extension functions which accept an unsigned
integer argument, now use <a class="reference internal" href="../reference/datamodel.html#object.__index__" title="object.__index__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__index__()</span></code></a> if available.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124703">gh-124703</a>: Set return code to <code class="docutils literal notranslate"><span class="pre">1</span></code> when aborting process from <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133005">gh-133005</a>: Support passing <code class="docutils literal notranslate"><span class="pre">preset</span></code> option to <a class="reference internal" href="../library/tarfile.html#tarfile.open" title="tarfile.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">tarfile.open()</span></code></a> when
using <code class="docutils literal notranslate"><span class="pre">'w|xz'</span></code> mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115032">gh-115032</a>: Support for custom logging handlers with the <em>strm</em> argument is
deprecated and scheduled for removal in Python 3.16. Define handlers with
the <em>stream</em> argument instead. Patch by Mariusz Felisiak.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132991">gh-132991</a>: Add <code class="xref py py-data docutils literal notranslate"><span class="pre">socket.IP_FREEBIND</span></code> constant on Linux 2.4 and
later.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132995">gh-132995</a>: Bump the version of pip bundled in ensurepip to version 25.1.1</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132933">gh-132933</a>: The zipapp module now applies the filter when creating the list
of files to add, rather than waiting until the file is being added to the
archive.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121249">gh-121249</a>: Always support the <span class="c-expr sig sig-inline c"><span class="kt">float</span><span class="w"> </span><span class="kt">complex</span></span> and <span class="c-expr sig sig-inline c"><span class="kt">double</span><span class="w"> </span><span class="kt">complex</span></span> C types in the <a class="reference internal" href="../library/struct.html#module-struct" title="struct: Interpret bytes as packed binary data."><code class="xref py py-mod docutils literal notranslate"><span class="pre">struct</span></code></a> module. Patch by Sergey B
Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132915">gh-132915</a>: <a class="reference internal" href="../library/fcntl.html#fcntl.fcntl" title="fcntl.fcntl"><code class="xref py py-func docutils literal notranslate"><span class="pre">fcntl.fcntl()</span></code></a> and <a class="reference internal" href="../library/fcntl.html#fcntl.ioctl" title="fcntl.ioctl"><code class="xref py py-func docutils literal notranslate"><span class="pre">fcntl.ioctl()</span></code></a> can now detect a
buffer overflow and raise <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a>. The stack and memory can be
corrupted in such case, so treat this error as fatal.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132017">gh-132017</a>: Fix error when <code class="docutils literal notranslate"><span class="pre">pyrepl</span></code> is suspended, then resumed and
terminated.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132893">gh-132893</a>: Improved <a class="reference internal" href="../library/statistics.html#statistics.NormalDist.cdf" title="statistics.NormalDist.cdf"><code class="xref py py-meth docutils literal notranslate"><span class="pre">statistics.NormalDist.cdf()</span></code></a> accuracy for inputs
smaller than the mean.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130328">gh-130328</a>: Speedup pasting in <code class="docutils literal notranslate"><span class="pre">PyREPL</span></code> on Windows. Fix by Chris Eibl.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132882">gh-132882</a>: Fix copying of <a class="reference internal" href="../library/typing.html#typing.Union" title="typing.Union"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Union</span></code></a> objects containing objects
that do not support the <code class="docutils literal notranslate"><span class="pre">|</span></code> operator.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93696">gh-93696</a>: Fixed the breakpoint display error for frozen modules in
<a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129965">gh-129965</a>: Add MIME types for <code class="docutils literal notranslate"><span class="pre">.7z</span></code>, <code class="docutils literal notranslate"><span class="pre">.apk</span></code>, <code class="docutils literal notranslate"><span class="pre">.deb</span></code>, <code class="docutils literal notranslate"><span class="pre">.glb</span></code>,
<code class="docutils literal notranslate"><span class="pre">.gltf</span></code>, <code class="docutils literal notranslate"><span class="pre">.gz</span></code>, <code class="docutils literal notranslate"><span class="pre">.m4v</span></code>, <code class="docutils literal notranslate"><span class="pre">.php</span></code>, <code class="docutils literal notranslate"><span class="pre">.rar</span></code>, <code class="docutils literal notranslate"><span class="pre">.rpm</span></code>, <code class="docutils literal notranslate"><span class="pre">.stl</span></code> and
<code class="docutils literal notranslate"><span class="pre">.wmv</span></code>. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132742">gh-132742</a>: <a class="reference internal" href="../library/fcntl.html#fcntl.fcntl" title="fcntl.fcntl"><code class="xref py py-func docutils literal notranslate"><span class="pre">fcntl.fcntl()</span></code></a> now supports arbitrary <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like
objects</span></a>, not only <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a>. <a class="reference internal" href="../library/fcntl.html#fcntl.ioctl" title="fcntl.ioctl"><code class="xref py py-func docutils literal notranslate"><span class="pre">fcntl.ioctl()</span></code></a>
now automatically retries system calls failing with EINTR and releases the
GIL during a system call even for large bytes-like object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132451">gh-132451</a>: The CLI for the PDB debugger now accepts a <code class="docutils literal notranslate"><span class="pre">-p</span> <span class="pre">PID</span></code> argument
to allow attaching to a running process. The process must be running the
same version of Python as the one running PDB.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125618">gh-125618</a>: Add a <em>format</em> parameter to
<a class="reference internal" href="../library/annotationlib.html#annotationlib.ForwardRef.evaluate" title="annotationlib.ForwardRef.evaluate"><code class="xref py py-meth docutils literal notranslate"><span class="pre">annotationlib.ForwardRef.evaluate()</span></code></a>. Evaluating annotations in the
<code class="docutils literal notranslate"><span class="pre">FORWARDREF</span></code> format now succeeds in more cases that would previously
have raised an exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132805">gh-132805</a>: Fix incorrect handling of nested non-constant values in the
FORWARDREF format in <a class="reference internal" href="../library/annotationlib.html#module-annotationlib" title="annotationlib: Functionality for introspecting annotations"><code class="xref py py-mod docutils literal notranslate"><span class="pre">annotationlib</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132734">gh-132734</a>: Add new constants for Bluetooth <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sockets</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132673">gh-132673</a>: Fix <a class="reference internal" href="../library/exceptions.html#AssertionError" title="AssertionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AssertionError</span></code></a> raised on <a class="reference internal" href="../library/ctypes.html#ctypes.Structure" title="ctypes.Structure"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.Structure</span></code></a>
with <code class="docutils literal notranslate"><span class="pre">_align_</span> <span class="pre">=</span> <span class="pre">0</span></code> and <code class="docutils literal notranslate"><span class="pre">_fields_</span> <span class="pre">=</span> <span class="pre">[]</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132578">gh-132578</a>: Rename the <code class="docutils literal notranslate"><span class="pre">threading.Thread._handle</span></code> field to avoid
shadowing methods defined on subclasses of <code class="docutils literal notranslate"><span class="pre">threading.Thread</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132561">gh-132561</a>: Fix the public <code class="docutils literal notranslate"><span class="pre">locked</span></code> method of <code class="docutils literal notranslate"><span class="pre">multiprocessing.SemLock</span></code>
class. Also adding 2 tests for the derivated <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Lock" title="multiprocessing.Lock"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Lock</span></code></a>
and <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.RLock" title="multiprocessing.RLock"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.RLock</span></code></a> classes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121468">gh-121468</a>: Add <a class="reference internal" href="../library/pdb.html#pdb.set_trace_async" title="pdb.set_trace_async"><code class="xref py py-func docutils literal notranslate"><span class="pre">pdb.set_trace_async()</span></code></a> function to support
<a class="reference internal" href="../reference/expressions.html#await"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">await</span></code></a> statements in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132493">gh-132493</a>: <a class="reference internal" href="../library/typing.html#typing.Protocol" title="typing.Protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Protocol</span></code></a> now uses
<a class="reference internal" href="../library/annotationlib.html#annotationlib.get_annotations" title="annotationlib.get_annotations"><code class="xref py py-func docutils literal notranslate"><span class="pre">annotationlib.get_annotations()</span></code></a> when checking whether or not an
instance implements the protocol with <a class="reference internal" href="../library/functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal notranslate"><span class="pre">isinstance()</span></code></a>. This enables
support for <code class="docutils literal notranslate"><span class="pre">isinstance</span></code> checks against classes with deferred
annotations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132536">gh-132536</a>: Do not disable <a class="reference internal" href="../library/sys.monitoring.html#monitoring-event-PY_THROW"><code class="xref std std-monitoring-event docutils literal notranslate"><span class="pre">PY_THROW</span></code></a> event in <a class="reference internal" href="../library/bdb.html#module-bdb" title="bdb: Debugger framework."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bdb</span></code></a>
because it can’t be disabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132527">gh-132527</a>: Include the valid typecode ‘w’ in the error message when an
invalid typecode is passed to <a class="reference internal" href="../library/array.html#array.array" title="array.array"><code class="xref py py-class docutils literal notranslate"><span class="pre">array.array</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132099">gh-132099</a>: The Bluetooth socket with the <a class="reference internal" href="../library/socket.html#socket.BTPROTO_HCI" title="socket.BTPROTO_HCI"><code class="xref py py-data docutils literal notranslate"><span class="pre">BTPROTO_HCI</span></code></a>
protocol on Linux now accepts an address in the format of an integer
<code class="docutils literal notranslate"><span class="pre">device_id</span></code>, not only a tuple <code class="docutils literal notranslate"><span class="pre">(device_id,)</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81793">gh-81793</a>: Fix <a class="reference internal" href="../library/os.html#os.link" title="os.link"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.link()</span></code></a> on platforms (like Linux) where the system
<code class="xref c c-func docutils literal notranslate"><span class="pre">link()</span></code> function does not follow symlinks. On Linux, it now
follows symlinks by default or if <code class="docutils literal notranslate"><span class="pre">follow_symlinks=True</span></code> is specified.
On Windows, it now raises an error if <code class="docutils literal notranslate"><span class="pre">follow_symlinks=True</span></code> is passed.
On macOS, it now raises an error if <code class="docutils literal notranslate"><span class="pre">follow_symlinks=False</span></code> is passed
and the system <code class="xref c c-func docutils literal notranslate"><span class="pre">linkat()</span></code> function is not available at runtime.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132493">gh-132493</a>: Support creation of <a class="reference internal" href="../library/typing.html#typing.Protocol" title="typing.Protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Protocol</span></code></a> classes with
annotations that cannot be resolved at class creation time.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132491">gh-132491</a>: Rename <code class="docutils literal notranslate"><span class="pre">annotationlib.value_to_string</span></code> to
<a class="reference internal" href="../library/annotationlib.html#annotationlib.type_repr" title="annotationlib.type_repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">annotationlib.type_repr()</span></code></a> and provide better handling for function
objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132426">gh-132426</a>: Add <a class="reference internal" href="../library/annotationlib.html#annotationlib.get_annotate_from_class_namespace" title="annotationlib.get_annotate_from_class_namespace"><code class="xref py py-func docutils literal notranslate"><span class="pre">annotationlib.get_annotate_from_class_namespace()</span></code></a> as
a helper for accessing annotations in metaclasses, and remove
<code class="docutils literal notranslate"><span class="pre">annotationlib.get_annotate_function</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/70145">gh-70145</a>: Add support for channels in Bluetooth HCI protocol
(<a class="reference internal" href="../library/socket.html#socket.BTPROTO_HCI" title="socket.BTPROTO_HCI"><code class="xref py py-const docutils literal notranslate"><span class="pre">BTPROTO_HCI</span></code></a>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131913">gh-131913</a>: Add a shortcut function
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Process.interrupt" title="multiprocessing.Process.interrupt"><code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocessing.Process.interrupt()</span></code></a> alongside the existing
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Process.terminate" title="multiprocessing.Process.terminate"><code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocessing.Process.terminate()</span></code></a> and
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Process.kill" title="multiprocessing.Process.kill"><code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocessing.Process.kill()</span></code></a> for an improved control over child
process termination.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132439">gh-132439</a>: Fix <code class="docutils literal notranslate"><span class="pre">PyREPL</span></code> on Windows: characters entered via AltGr are
swallowed. Patch by Chris Eibl.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132429">gh-132429</a>: Fix support of Bluetooth sockets on NetBSD and DragonFly BSD.
Add support for <em>cid</em> and <em>bdaddr_type</em> in the BTPROTO_L2CAP address on
FreeBSD. Return <em>cid</em> in <code class="docutils literal notranslate"><span class="pre">getsockname()</span></code> for BTPROTO_L2CAP if it is not
zero.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132106">gh-132106</a>: <a class="reference internal" href="../library/logging.handlers.html#logging.handlers.QueueListener.start" title="logging.handlers.QueueListener.start"><code class="xref py py-meth docutils literal notranslate"><span class="pre">QueueListener.start</span></code></a> now raises a <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a>
if the listener is already started.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132417">gh-132417</a>: Fix a <code class="docutils literal notranslate"><span class="pre">NULL</span></code> pointer dereference when a C function called
using <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> with <code class="docutils literal notranslate"><span class="pre">restype</span></code> <a class="reference internal" href="../library/ctypes.html#ctypes.py_object" title="ctypes.py_object"><code class="xref py py-class docutils literal notranslate"><span class="pre">py_object</span></code></a> returns
<code class="docutils literal notranslate"><span class="pre">NULL</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132385">gh-132385</a>: Fix instance error suggestions trigger potential exceptions in
<a class="reference internal" href="../reference/datamodel.html#object.__getattr__" title="object.__getattr__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">object.__getattr__()</span></code></a> in <a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125866">gh-125866</a>: Add optional <em>add_scheme</em> argument to
<a class="reference internal" href="../library/urllib.request.html#urllib.request.pathname2url" title="urllib.request.pathname2url"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.pathname2url()</span></code></a>; when set to true, a complete URL is
returned. Likewise add optional <em>require_scheme</em> argument to
<a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">url2pathname()</span></code></a>; when set to true, a complete URL is
accepted.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132308">gh-132308</a>: A <a class="reference internal" href="../library/traceback.html#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">traceback.TracebackException</span></code></a> now correctly renders
the <code class="docutils literal notranslate"><span class="pre">__context__</span></code> and <code class="docutils literal notranslate"><span class="pre">__cause__</span></code> attributes from <a class="reference internal" href="../library/stdtypes.html#truth"><span class="std std-ref">falsey</span></a> <a class="reference internal" href="../library/exceptions.html#Exception" title="Exception"><code class="xref py py-class docutils literal notranslate"><span class="pre">Exception</span></code></a>, and the <code class="docutils literal notranslate"><span class="pre">exceptions</span></code> attribute from falsey
<a class="reference internal" href="../library/exceptions.html#ExceptionGroup" title="ExceptionGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">ExceptionGroup</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130645">gh-130645</a>: Add colour to <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> help output. Patch by Hugo van
Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127495">gh-127495</a>: In PyREPL, append a new entry to the <code class="docutils literal notranslate"><span class="pre">PYTHON_HISTORY</span></code> file
<em>after</em> every statement. This should preserve command-line history after
interpreter is terminated. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129463">gh-129463</a>: Comparison of <a class="reference internal" href="../library/annotationlib.html#annotationlib.ForwardRef" title="annotationlib.ForwardRef"><code class="xref py py-class docutils literal notranslate"><span class="pre">annotationlib.ForwardRef</span></code></a> objects no
longer uses the internal <code class="docutils literal notranslate"><span class="pre">__code__</span></code> and <code class="docutils literal notranslate"><span class="pre">__ast_node__</span></code> attributes,
which are used as caches.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132250">gh-132250</a>: Fixed the <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> in <a class="reference internal" href="../library/profile.html#module-cProfile" title="cProfile"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cProfile</span></code></a> when locating
the actual C function of a method raises an exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132064">gh-132064</a>: <a class="reference internal" href="../library/annotationlib.html#annotationlib.get_annotations" title="annotationlib.get_annotations"><code class="xref py py-func docutils literal notranslate"><span class="pre">annotationlib.get_annotations()</span></code></a> now uses the
<code class="docutils literal notranslate"><span class="pre">__annotate__</span></code> attribute if it is present, even if <code class="docutils literal notranslate"><span class="pre">__annotations__</span></code>
is not present. Additionally, the function now raises a
<a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> if it is passed an object that does not have any
annotatins.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130664">gh-130664</a>: Support the <code class="docutils literal notranslate"><span class="pre">'_'</span></code> digit separator in formatting of the
integral part of <a class="reference internal" href="../library/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal notranslate"><span class="pre">Decimal</span></code></a>’s. Patch by Sergey B
Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131952">gh-131952</a>: Add color output to the <strong class="program">json</strong> CLI. Patch by Tomas
Roun.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132063">gh-132063</a>: Prevent exceptions that evaluate as falsey (namely, when their
<code class="docutils literal notranslate"><span class="pre">__bool__</span></code> method returns <code class="docutils literal notranslate"><span class="pre">False</span></code> or their <code class="docutils literal notranslate"><span class="pre">__len__</span></code> method returns
0) from being ignored by <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor</span></code></a>
and <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor" title="concurrent.futures.ThreadPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ThreadPoolExecutor</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132106">gh-132106</a>: <a class="reference internal" href="../library/logging.handlers.html#logging.handlers.QueueListener" title="logging.handlers.QueueListener"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.handlers.QueueListener</span></code></a> now implements the
context manager protocol, allowing it to be used in a <a class="reference internal" href="../reference/compound_stmts.html#with"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">with</span></code></a>
statement.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132054">gh-132054</a>: The <code class="docutils literal notranslate"><span class="pre">application/yaml</span></code> mime type (<span class="target" id="index-14"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9512.html"><strong>RFC 9512</strong></a>) is now
supported by <a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a>. Patch by Sasha “Nelie” Chernykh and Hugo
van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119605">gh-119605</a>: Respect <code class="docutils literal notranslate"><span class="pre">follow_wrapped</span></code> for <code class="xref py py-meth docutils literal notranslate"><span class="pre">__init__()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">__new__()</span></code> methods when getting the class signature for a class with
<a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a>. Preserve class signature after wrapping with
<a class="reference internal" href="../library/warnings.html#warnings.deprecated" title="warnings.deprecated"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.deprecated()</span></code></a>. Patch by Xuehai Pan.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Improve import times by up to 33x for the <a class="reference internal" href="../library/shlex.html#module-shlex" title="shlex: Simple lexical analysis for Unix shell-like languages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">shlex</span></code></a> module,
and improve the performance of <a class="reference internal" href="../library/shlex.html#shlex.quote" title="shlex.quote"><code class="xref py py-func docutils literal notranslate"><span class="pre">shlex.quote()</span></code></a> by up to 12x. Patch by
Adam Turner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85302">gh-85302</a>: Add support for <a class="reference internal" href="../library/socket.html#socket.BTPROTO_SCO" title="socket.BTPROTO_SCO"><code class="xref py py-data docutils literal notranslate"><span class="pre">BTPROTO_SCO</span></code></a> in sockets on
FreeBSD.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131757">gh-131757</a>: Make <a class="reference internal" href="../library/functools.html#functools.lru_cache" title="functools.lru_cache"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.lru_cache()</span></code></a> call the cached function
unlocked to allow concurrency.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131423">gh-131423</a>: <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> can show descriptions for errors added in OpenSSL
3.4.1. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131434">gh-131434</a>: Improve error reporting for incorrect format in
<a class="reference internal" href="../library/time.html#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strptime()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131524">gh-131524</a>: Add help message to <a class="reference internal" href="../library/platform.html#module-platform" title="platform: Retrieves as much platform identifying data as possible."><code class="xref py py-mod docutils literal notranslate"><span class="pre">platform</span></code></a> command-line interface.
Contributed by Harry Lees.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100926">gh-100926</a>: Move <a class="reference internal" href="../library/ctypes.html#ctypes.POINTER" title="ctypes.POINTER"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.POINTER()</span></code></a> types cache from a global internal
cache (<code class="docutils literal notranslate"><span class="pre">_pointer_type_cache</span></code>) to the
<a class="reference internal" href="../library/ctypes.html#ctypes._CData.__pointer_type__" title="ctypes._CData.__pointer_type__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ctypes._CData.__pointer_type__</span></code></a> attribute of the corresponding
<a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> types. This will stop the cache from growing without limits
in some situations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85702">gh-85702</a>: If <code class="docutils literal notranslate"><span class="pre">zoneinfo._common.load_tzdata</span></code> is given a package without a
resource a <code class="docutils literal notranslate"><span class="pre">ZoneInfoNotFoundError</span></code> is raised rather than a
<a class="reference internal" href="../library/exceptions.html#IsADirectoryError" title="IsADirectoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IsADirectoryError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123471">gh-123471</a>: Make concurrent iterations over <a class="reference internal" href="../library/itertools.html#itertools.repeat" title="itertools.repeat"><code class="xref py py-class docutils literal notranslate"><span class="pre">itertools.repeat</span></code></a> safe
under free-threading.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131127">gh-131127</a>: Systems using LibreSSL now successfully build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89157">gh-89157</a>: Make the pure Python implementation of
<a class="reference internal" href="../library/datetime.html#datetime.date.fromisoformat" title="datetime.date.fromisoformat"><code class="xref py py-func docutils literal notranslate"><span class="pre">datetime.date.fromisoformat()</span></code></a>, only accept ASCII strings for
consistency with the C implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130941">gh-130941</a>: Fix <a class="reference internal" href="../library/configparser.html#configparser.ConfigParser" title="configparser.ConfigParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">configparser.ConfigParser</span></code></a> parsing empty
interpolation with <code class="docutils literal notranslate"><span class="pre">allow_no_value</span></code> set to <code class="docutils literal notranslate"><span class="pre">True</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110067">gh-110067</a>: Make <a class="reference internal" href="../library/heapq.html#module-heapq" title="heapq: Heap queue algorithm (a.k.a. priority queue)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">heapq</span></code></a> max-heap functions <a class="reference internal" href="../library/heapq.html#heapq.heapify_max" title="heapq.heapify_max"><code class="xref py py-func docutils literal notranslate"><span class="pre">heapq.heapify_max()</span></code></a>,
<a class="reference internal" href="../library/heapq.html#heapq.heappush_max" title="heapq.heappush_max"><code class="xref py py-func docutils literal notranslate"><span class="pre">heapq.heappush_max()</span></code></a>, <a class="reference internal" href="../library/heapq.html#heapq.heappop_max" title="heapq.heappop_max"><code class="xref py py-func docutils literal notranslate"><span class="pre">heapq.heappop_max()</span></code></a>, and
<a class="reference internal" href="../library/heapq.html#heapq.heapreplace_max" title="heapq.heapreplace_max"><code class="xref py py-func docutils literal notranslate"><span class="pre">heapq.heapreplace_max()</span></code></a> public. Previous underscored naming is kept
for backwards compatibility. Additionally, the missing function
<a class="reference internal" href="../library/heapq.html#heapq.heappushpop_max" title="heapq.heappushpop_max"><code class="xref py py-func docutils literal notranslate"><span class="pre">heapq.heappushpop_max()</span></code></a> has been added to both the C and Python
implementations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129098">gh-129098</a>: Fix REPL traceback reporting when using <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a> with an
inexisting file. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130631">gh-130631</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">http.cookiejar.join_header_words()</span></code> is now more similar
to the original Perl version. It now quotes the same set of characters and
always quote values that end with <code class="docutils literal notranslate"><span class="pre">"\n"</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130482">gh-130482</a>: Add ability to specify name for <code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.OptionMenu</span></code>
and <code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.ttk.OptionMenu</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77065">gh-77065</a>: Add keyword-only optional argument <em>echo_char</em> for
<a class="reference internal" href="../library/getpass.html#getpass.getpass" title="getpass.getpass"><code class="xref py py-meth docutils literal notranslate"><span class="pre">getpass.getpass()</span></code></a> for optional visual keyboard feedback support.
Patch by Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130317">gh-130317</a>: Fix <a class="reference internal" href="../c-api/float.html#c.PyFloat_Pack2" title="PyFloat_Pack2"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFloat_Pack2()</span></code></a> and <a class="reference internal" href="../c-api/float.html#c.PyFloat_Unpack2" title="PyFloat_Unpack2"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFloat_Unpack2()</span></code></a> for
NaN’s with payload. This corrects round-trip for <a class="reference internal" href="../library/struct.html#struct.unpack" title="struct.unpack"><code class="xref py py-func docutils literal notranslate"><span class="pre">struct.unpack()</span></code></a>
and <a class="reference internal" href="../library/struct.html#struct.pack" title="struct.pack"><code class="xref py py-func docutils literal notranslate"><span class="pre">struct.pack()</span></code></a> in case of the IEEE 754 binary16 “half precision”
type. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130402">gh-130402</a>: Joining running daemon threads during interpreter shutdown now
raises <a class="reference internal" href="../library/exceptions.html#PythonFinalizationError" title="PythonFinalizationError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PythonFinalizationError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130167">gh-130167</a>: Improve speed of <a class="reference internal" href="../library/difflib.html#difflib.IS_LINE_JUNK" title="difflib.IS_LINE_JUNK"><code class="xref py py-func docutils literal notranslate"><span class="pre">difflib.IS_LINE_JUNK()</span></code></a>. Patch by Semyon
Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101410">gh-101410</a>: Added more detailed messages for domain errors in the
<a class="reference internal" href="../library/math.html#module-math" title="math: Mathematical functions (sin() etc.)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128384">gh-128384</a>: Make <a class="reference internal" href="../library/warnings.html#warnings.catch_warnings" title="warnings.catch_warnings"><code class="xref py py-class docutils literal notranslate"><span class="pre">warnings.catch_warnings</span></code></a> use a context variable
for holding the warning filtering state if the
<a class="reference internal" href="../library/sys.html#sys.flags.context_aware_warnings" title="sys.flags.context_aware_warnings"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.flags.context_aware_warnings</span></code></a> flag is set to true. This makes
using the context manager thread-safe in multi-threaded programs. The
flag is true by default in free-threaded builds and is otherwise false.
The value of the flag can be overridden by the the <a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span>
<span class="pre">context_aware_warnings</span></code></a> command-line option or by the
<span class="target" id="index-15"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHON_CONTEXT_AWARE_WARNINGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_CONTEXT_AWARE_WARNINGS</span></code></a> environment variable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129719">gh-129719</a>: Fix missing <code class="xref py py-data docutils literal notranslate"><span class="pre">socket.CAN_RAW_ERR_FILTER</span></code> constant in the
socket module on Linux systems. It was missing since Python 3.11.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129027">gh-129027</a>: Raise <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> for
<a class="reference internal" href="../library/sys.html#sys._clear_type_cache" title="sys._clear_type_cache"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._clear_type_cache()</span></code></a>. This function was deprecated in Python 3.13
but it didn’t raise a runtime warning.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128307">gh-128307</a>: Add <code class="docutils literal notranslate"><span class="pre">eager_start</span></code> keyword argument to
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.create_task" title="asyncio.loop.create_task"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.create_task()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127604">gh-127604</a>: Add support for printing the C stack trace on systems that
support it via <a class="reference internal" href="../library/faulthandler.html#faulthandler.dump_c_stack" title="faulthandler.dump_c_stack"><code class="xref py py-func docutils literal notranslate"><span class="pre">faulthandler.dump_c_stack()</span></code></a> or via the <em>c_stack</em>
argument in <a class="reference internal" href="../library/faulthandler.html#faulthandler.enable" title="faulthandler.enable"><code class="xref py py-func docutils literal notranslate"><span class="pre">faulthandler.enable()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127385">gh-127385</a>: Add the <code class="docutils literal notranslate"><span class="pre">F_DUPFD_QUERY</span></code> constant to the <a class="reference internal" href="../library/fcntl.html#module-fcntl" title="fcntl: The fcntl() and ioctl() system calls. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">fcntl</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126838">gh-126838</a>: Add <em>resolve_host</em> keyword-only parameter to
<a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.url2pathname()</span></code></a>, and fix handling of file URLs with
authorities.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82129">gh-82129</a>: Fix <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> when calling <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a>
on a <a class="reference internal" href="../library/dataclasses.html#dataclasses.dataclass" title="dataclasses.dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.dataclass()</span></code></a> created by
<a class="reference internal" href="../library/dataclasses.html#dataclasses.make_dataclass" title="dataclasses.make_dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.make_dataclass()</span></code></a> with un-annotated fields.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122559">gh-122559</a>: Remove <code class="xref py py-meth docutils literal notranslate"><span class="pre">__reduce__()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">__reduce_ex__()</span></code> methods
that always raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> in the C implementation of
<a class="reference internal" href="../library/io.html#io.FileIO" title="io.FileIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.FileIO</span></code></a>, <a class="reference internal" href="../library/io.html#io.BufferedReader" title="io.BufferedReader"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.BufferedReader</span></code></a>, <a class="reference internal" href="../library/io.html#io.BufferedWriter" title="io.BufferedWriter"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.BufferedWriter</span></code></a>
and <a class="reference internal" href="../library/io.html#io.BufferedRandom" title="io.BufferedRandom"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.BufferedRandom</span></code></a> and replace them with default
<code class="xref py py-meth docutils literal notranslate"><span class="pre">__getstate__()</span></code> methods that raise <code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code>. This restores
fine details of behavior of Python 3.11 and older versions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122179">gh-122179</a>: <a class="reference internal" href="../library/hashlib.html#hashlib.file_digest" title="hashlib.file_digest"><code class="xref py py-func docutils literal notranslate"><span class="pre">hashlib.file_digest()</span></code></a> now raises <a class="reference internal" href="../library/exceptions.html#BlockingIOError" title="BlockingIOError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BlockingIOError</span></code></a>
when no data is available during non-blocking I/O. Before, it added
spurious null bytes to the digest.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/53032">gh-53032</a>: Expose <a class="reference internal" href="../library/decimal.html#decimal.IEEEContext" title="decimal.IEEEContext"><code class="xref py py-func docutils literal notranslate"><span class="pre">decimal.IEEEContext()</span></code></a> to support creation of
contexts corresponding to the IEEE 754 (2008) decimal interchange formats.
Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120220">gh-120220</a>: Deprecate the <code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.Variable</span></code> methods
<code class="xref py py-meth docutils literal notranslate"><span class="pre">trace_variable()</span></code>, <code class="xref py py-meth docutils literal notranslate"><span class="pre">trace_vdelete()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">trace_vinfo()</span></code>.
Methods <code class="xref py py-meth docutils literal notranslate"><span class="pre">trace_add()</span></code>, <code class="xref py py-meth docutils literal notranslate"><span class="pre">trace_remove()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">trace_info()</span></code>
can be used instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113539">gh-113539</a>: <a class="reference internal" href="../library/webbrowser.html#module-webbrowser" title="webbrowser: Easy-to-use controller for web browsers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">webbrowser</span></code></a>: Names in the <span class="target" id="index-16"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">BROWSER</span></code> environment
variable can now refer to already registered web browsers, instead of
always generating a new browser command.</p>
<p>This makes it possible to set <span class="target" id="index-17"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">BROWSER</span></code> to the value of one of the
supported browsers on macOS.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44172">bpo-44172</a>: Keep a reference to original <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> windows in
subwindows so that the original window does not get deleted before
subwindows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/75223">gh-75223</a>: Deprecate undotted extensions in
<a class="reference internal" href="../library/mimetypes.html#mimetypes.MimeTypes.add_type" title="mimetypes.MimeTypes.add_type"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mimetypes.MimeTypes.add_type()</span></code></a>. Patch by Hugo van Kemenade.</p></li>
</ul>
</section>
<section id="idle">
<h3>IDLE<a class="headerlink" href="#idle" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112936">gh-112936</a>: fix IDLE: no Shell menu item in single-process mode.</p></li>
</ul>
</section>
<section id="id44">
<h3>Documentation<a class="headerlink" href="#id44" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107006">gh-107006</a>: Move documentation and example code for
<a class="reference internal" href="../library/threading.html#threading.local" title="threading.local"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.local</span></code></a> from its docstring to the official docs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125142">gh-125142</a>: As part of the builtin help intro text, show the keyboard
shortcuts for the new, non-basic REPL (F1, F2, and F3).</p></li>
</ul>
</section>
<section id="id45">
<h3>Core and Builtins<a class="headerlink" href="#id45" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133336">gh-133336</a>: <code class="xref std std-option docutils literal notranslate"><span class="pre">-J</span></code> is no longer reserved for use by Jython. Patch by
Adam Turner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133261">gh-133261</a>: Fix bug where the cycle GC could untrack objects in the
trashcan because they looked like they were immortal. When objects are
added to the trashcan, we take care to ensure they keep a mortal reference
count.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133346">gh-133346</a>: Added experimental color theming support to the <code class="docutils literal notranslate"><span class="pre">_colorize</span></code>
module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132917">gh-132917</a>: For the free-threaded build, check the process memory usage
increase before triggering a full automatic garbage collection. If the
memory used has not increased 10% since the last collection then defer it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91048">gh-91048</a>: Add a new <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">asyncio</span> <span class="pre">ps</span> <span class="pre">PID</span></code> command-line interface to
inspect asyncio tasks in a running Python process. Displays a flat table
of await relationships. A variant showing a tree view is also available as
<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">asyncio</span> <span class="pre">pstree</span> <span class="pre">PID</span></code>. Both are useful for debugging async
code. Patch by Pablo Galindo, Łukasz Langa, Yury Selivanov, and Marta
Gomez Macias.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133304">gh-133304</a>: Workaround NaN’s “canonicalization” in <a class="reference internal" href="../c-api/float.html#c.PyFloat_Pack4" title="PyFloat_Pack4"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFloat_Pack4()</span></code></a>
and <a class="reference internal" href="../c-api/float.html#c.PyFloat_Unpack4" title="PyFloat_Unpack4"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFloat_Unpack4()</span></code></a> on RISC-V.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133197">gh-133197</a>: Improve <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> error messages for incompatible
string / bytes prefixes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133231">gh-133231</a>: Add new utilities of observing JIT compilation:
<a class="reference internal" href="../library/sys.html#sys._jit.is_available" title="sys._jit.is_available"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._jit.is_available()</span></code></a>, <a class="reference internal" href="../library/sys.html#sys._jit.is_enabled" title="sys._jit.is_enabled"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._jit.is_enabled()</span></code></a>, and
<a class="reference internal" href="../library/sys.html#sys._jit.is_active" title="sys._jit.is_active"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._jit.is_active()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133194">gh-133194</a>: <a class="reference internal" href="../library/ast.html#ast.parse" title="ast.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.parse()</span></code></a> will no longer parse new <span class="target" id="index-18"></span><a class="pep reference external" href="https://peps.python.org/pep-0758/"><strong>PEP 758</strong></a> syntax
with older <em>feature_version</em> passed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Split <code class="docutils literal notranslate"><span class="pre">CALL_LEN</span></code> into several uops allowing the JIT to remove
them when optimizing. Patch by Diego Russo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Use <code class="docutils literal notranslate"><span class="pre">sym_new_type</span></code> instead of <code class="docutils literal notranslate"><span class="pre">sym_new_not_null</span></code> for
_BUILD_STRING, _BUILD_SET</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132942">gh-132942</a>: Fix two races in the type lookup cache. This affected the
free-threaded build and could cause crashes (apparently quite difficult to
trigger).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Propagate the return type of <code class="docutils literal notranslate"><span class="pre">_BINARY_OP_SUBSCR_TUPLE_INT</span></code> in
JIT. Patch by Tomas Roun</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132952">gh-132952</a>: Speed up startup with the <code class="docutils literal notranslate"><span class="pre">-S</span></code> argument by importing the
private <code class="docutils literal notranslate"><span class="pre">_io</span></code> module instead of <a class="reference internal" href="../library/io.html#module-io" title="io: Core tools for working with streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">io</span></code></a>. This fixes a performance
regression introduced earlier in Python 3.14 development and restores
performance to the level of Python 3.13.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Allow the JIT to remove int guards after <code class="docutils literal notranslate"><span class="pre">_CALL_LEN</span></code> by
setting the return type to int. Patch by Diego Russo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Split <code class="docutils literal notranslate"><span class="pre">CALL_TUPLE_1</span></code> into several uops allowing the JIT to
remove some of them. Patch by Tomas Roun</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Split <code class="docutils literal notranslate"><span class="pre">CALL_STR_1</span></code> into several uops allowing the JIT to
remove some of them. Patch by Tomas Roun</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132825">gh-132825</a>: Enhance unhashable key/element error messages for <a class="reference internal" href="../library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a>
and <a class="reference internal" href="../library/stdtypes.html#set" title="set"><code class="xref py py-class docutils literal notranslate"><span class="pre">set</span></code></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131591">gh-131591</a>: Reset any <span class="target" id="index-19"></span><a class="pep reference external" href="https://peps.python.org/pep-0768/"><strong>PEP 768</strong></a> remote debugging pending call in children
after <a class="reference internal" href="../library/os.html#os.fork" title="os.fork"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fork()</span></code></a> calls.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132713">gh-132713</a>: Fix <code class="docutils literal notranslate"><span class="pre">repr(list)</span></code> race condition: hold a strong reference to
the item while calling <code class="docutils literal notranslate"><span class="pre">repr(item)</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132661">gh-132661</a>: Implement <span class="target" id="index-20"></span><a class="pep reference external" href="https://peps.python.org/pep-0750/"><strong>PEP 750</strong></a> (Template Strings). Add new syntax for
t-strings and implement new internal <code class="xref py py-class docutils literal notranslate"><span class="pre">string.templatelib.Template</span></code>
and <code class="xref py py-class docutils literal notranslate"><span class="pre">string.templatelib.Interpolation</span></code> types.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132479">gh-132479</a>: Fix compiler crash in certain circumstances where multiple
module-level annotations include comprehensions and other nested scopes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132747">gh-132747</a>: Fix a crash when calling <a class="reference internal" href="../reference/datamodel.html#object.__get__" title="object.__get__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__get__()</span></code></a> of a
<a class="reference internal" href="../glossary.html#term-method"><span class="xref std std-term">method</span></a> with a <a class="reference internal" href="../library/constants.html#None" title="None"><code class="xref py py-const docutils literal notranslate"><span class="pre">None</span></code></a> second argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132744">gh-132744</a>: Certain calls now check for runaway recursion and respect the
system recursion limit.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132449">gh-132449</a>: Syntax errors that look like misspellings of Python keywords
now provide a helpful fix suggestion for the typo. Contributed by Pablo
Galindo Salgado.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132737">gh-132737</a>: Support profiling code that requires <code class="docutils literal notranslate"><span class="pre">__main__</span></code>, such as
<a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132639">gh-132639</a>: Added <a class="reference internal" href="../c-api/long.html#c.PyLong_AsNativeBytes" title="PyLong_AsNativeBytes"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsNativeBytes()</span></code></a>,
<a class="reference internal" href="../c-api/long.html#c.PyLong_FromNativeBytes" title="PyLong_FromNativeBytes"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromNativeBytes()</span></code></a> and
<a class="reference internal" href="../c-api/long.html#c.PyLong_FromUnsignedNativeBytes" title="PyLong_FromUnsignedNativeBytes"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromUnsignedNativeBytes()</span></code></a> to the limited C API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100239">gh-100239</a>: Add specialisation for <code class="docutils literal notranslate"><span class="pre">BINARY_OP/SUBSCR</span></code> on list and slice.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132508">gh-132508</a>: Uses tagged integers on the evaluation stack to represent the
instruction offsets when reraising an exception. This avoids the need to
box the integer which could fail in low memory conditions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124476">gh-124476</a>: Fix decoding from the locale encoding in the C.UTF-8 locale.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131927">gh-131927</a>: Compiler warnings originating from the same module and line
number are now only emitted once, matching the behaviour of warnings
emitted from user code. This can also be configured with <a class="reference internal" href="../library/warnings.html#module-warnings" title="warnings: Issue warning messages and control their disposition."><code class="xref py py-mod docutils literal notranslate"><span class="pre">warnings</span></code></a>
filters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132457">gh-132457</a>: Make <a class="reference internal" href="../library/functions.html#staticmethod" title="staticmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">staticmethod()</span></code></a> and <a class="reference internal" href="../library/functions.html#classmethod" title="classmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">classmethod()</span></code></a> generic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Use <code class="docutils literal notranslate"><span class="pre">sym_new_type</span></code> instead of <code class="docutils literal notranslate"><span class="pre">sym_new_not_null</span></code> for
_BUILD_LIST, _BUILD_SET, _BUILD_MAP</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Split <code class="docutils literal notranslate"><span class="pre">CALL_TYPE_1</span></code> into several uops allowing the JIT to
remove some of them.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132386">gh-132386</a>: Fix crash when passing a dict subclass as the <code class="docutils literal notranslate"><span class="pre">globals</span></code>
parameter to <a class="reference internal" href="../library/functions.html#exec" title="exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">exec()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127682">gh-127682</a>: No longer call <code class="docutils literal notranslate"><span class="pre">__iter__</span></code> twice when creating and executing a
generator expression. Creating a generator expression from a non-interable
will raise only when the generator expression is executed. This brings the
behavior of generator expressions in line with other generators.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132261">gh-132261</a>: The internal storage for annotations and annotate functions on
classes now uses different keys in the class dictionary. This eliminates
various edge cases where access to the <code class="docutils literal notranslate"><span class="pre">__annotate__</span></code> and
<code class="docutils literal notranslate"><span class="pre">__annotations__</span></code> attributes would behave unpredictably.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132284">gh-132284</a>: Don’t wrap base <code class="docutils literal notranslate"><span class="pre">PyCFunction</span></code> slots on class creation if not
overridden.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130415">gh-130415</a>: Improve the JIT’s ability to remove unused constant and local
variable loads, and fix an issue where deallocating unused values could
cause JIT code to crash or behave incorrectly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126703">gh-126703</a>: Fix possible use after free in cases where a method’s
definition has the same lifetime as its <code class="docutils literal notranslate"><span class="pre">self</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132286">gh-132286</a>: Fix that <a class="reference internal" href="../reference/datamodel.html#type.__annotate__" title="type.__annotate__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">type.__annotate__</span></code></a> was not deleted, when
<a class="reference internal" href="../reference/datamodel.html#type.__annotations__" title="type.__annotations__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">type.__annotations__</span></code></a> was deleted.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Allow the JIT to remove an extra <code class="docutils literal notranslate"><span class="pre">_TO_BOOL_BOOL</span></code> instruction
after <code class="docutils literal notranslate"><span class="pre">_CONTAINS_OP_DICT</span></code> by setting the return type to bool.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124715">gh-124715</a>: Prevents against stack overflows when calling
<a class="reference internal" href="../c-api/refcounting.html#c.Py_DECREF" title="Py_DECREF"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_DECREF()</span></code></a>. Third-party extension objects no longer need to use
the “trashcan” mechanism, as protection is now built into the
<a class="reference internal" href="../c-api/refcounting.html#c.Py_DECREF" title="Py_DECREF"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_DECREF()</span></code></a> macro.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Allow the JIT compiler to remove some type checks for
operations on lists, tuples, dictionaries, and sets.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128398">gh-128398</a>: Improve error message when an object supporting the synchronous
(resp. asynchronous) context manager protocol is entered using
<a class="reference internal" href="../reference/compound_stmts.html#async-with"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">async</span> <span class="pre">with</span></code></a> (resp. <a class="reference internal" href="../reference/compound_stmts.html#with"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">with</span></code></a>) instead of <a class="reference internal" href="../reference/compound_stmts.html#with"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">with</span></code></a>
(resp. <a class="reference internal" href="../reference/compound_stmts.html#async-with"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">async</span> <span class="pre">with</span></code></a>). Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Allow the JIT to remove unicode guards after
<code class="docutils literal notranslate"><span class="pre">_BINARY_OP_SUBSCR_STR_INT</span></code> by setting the return type to string.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131878">gh-131878</a>: Handle uncaught exceptions in the main input loop for the new
REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131878">gh-131878</a>: Fix support of unicode characters with two or more codepoints
on Windows in the new REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126835">gh-126835</a>: Move constant folding to the peephole optimizer. Rename AST
optimization related files (Python/ast_opt.c -> Python/ast_preprocess.c),
structs (_PyASTOptimizeState -> _PyASTPreprocessState) and functions
(_PyAST_Optimize -> _PyAST_Preprocess, _PyCompile_AstOptimize ->
_PyCompile_AstPreprocess).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114809">gh-114809</a>: Add support for macOS multi-arch builds with the JIT enabled</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131507">gh-131507</a>: PyREPL now supports syntax highlighting. Contributed by Łukasz
Langa.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130907">gh-130907</a>: If the <code class="docutils literal notranslate"><span class="pre">__annotations__</span></code> of a module object are accessed
while the module is executing, return the annotations that have been
defined so far, without caching them.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130104">gh-130104</a>: Three-argument <a class="reference internal" href="../library/functions.html#pow" title="pow"><code class="xref py py-func docutils literal notranslate"><span class="pre">pow()</span></code></a> now try calling
<a class="reference internal" href="../reference/datamodel.html#object.__rpow__" title="object.__rpow__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__rpow__()</span></code></a> if necessary. Previously it was only called in
two-argument <code class="xref py py-func docutils literal notranslate"><span class="pre">pow()</span></code> and the binary power operator.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130070">gh-130070</a>: Fixed an assertion error for <a class="reference internal" href="../library/functions.html#exec" title="exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">exec()</span></code></a> passed a string
<code class="docutils literal notranslate"><span class="pre">source</span></code> and a non-<code class="docutils literal notranslate"><span class="pre">None</span></code> <code class="docutils literal notranslate"><span class="pre">closure</span></code>. Patch by Bartosz Sławecki.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129958">gh-129958</a>: Fix a bug that was allowing newlines inconsistently in format
specifiers for single-quoted f-strings. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129858">gh-129858</a>: <code class="docutils literal notranslate"><span class="pre">elif</span></code> statements that follow an <code class="docutils literal notranslate"><span class="pre">else</span></code> block now have a
specific error message.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69605">gh-69605</a>: Add module autocomplete to PyREPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128555">gh-128555</a>: Add the <a class="reference internal" href="../library/sys.html#sys.flags.thread_inherit_context" title="sys.flags.thread_inherit_context"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.flags.thread_inherit_context</span></code></a> flag.</p>
<ul>
<li><p>This flag is set to true by default on the free-threaded build
and false otherwise. If the flag is true, starting a new thread using
<a class="reference internal" href="../library/threading.html#threading.Thread" title="threading.Thread"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.Thread</span></code></a> will, by default, use a copy of the
<a class="reference internal" href="../library/contextvars.html#contextvars.Context" title="contextvars.Context"><code class="xref py py-class docutils literal notranslate"><span class="pre">contextvars.Context</span></code></a> from the caller of
<a class="reference internal" href="../library/threading.html#threading.Thread.start" title="threading.Thread.start"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.Thread.start()</span></code></a> rather than using an empty context.</p></li>
<li><p>Add the <a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">thread_inherit_context</span></code></a> command-line option and
<span class="target" id="index-21"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHON_THREAD_INHERIT_CONTEXT"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_THREAD_INHERIT_CONTEXT</span></code></a> environment variable, which set the
<a class="reference internal" href="../library/sys.html#sys.flags.thread_inherit_context" title="sys.flags.thread_inherit_context"><code class="xref py py-data docutils literal notranslate"><span class="pre">thread_inherit_context</span></code></a> flag.</p></li>
<li><p>Add the <code class="docutils literal notranslate"><span class="pre">context</span></code> keyword parameter to <a class="reference internal" href="../library/threading.html#threading.Thread" title="threading.Thread"><code class="xref py py-class docutils literal notranslate"><span class="pre">Thread</span></code></a>. It can
be used to explicitly pass a context value to be used by a new thread.</p></li>
<li><p>Make the <code class="docutils literal notranslate"><span class="pre">_contextvars</span></code> module built-in.</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123539">gh-123539</a>: Improve <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> message for using <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">...</span> <span class="pre">as</span></code>
and <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">...</span> <span class="pre">import</span> <span class="pre">...</span> <span class="pre">as</span></code> with not a name.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102567">gh-102567</a>: <a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">importtime</span></code></a> now accepts value <code class="docutils literal notranslate"><span class="pre">2</span></code>, which
indicates that an <code class="docutils literal notranslate"><span class="pre">importtime</span></code> entry should also be printed if an
imported module has already been loaded. Patch by Noah Kim and Adam
Turner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116436">gh-116436</a>: Improve error message when <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> occurs during
<a class="reference internal" href="../library/stdtypes.html#dict.update" title="dict.update"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.update()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103997">gh-103997</a>: String arguments passed to “-c” are now automatically dedented
as if by <a class="reference internal" href="../library/textwrap.html#textwrap.dedent" title="textwrap.dedent"><code class="xref py py-func docutils literal notranslate"><span class="pre">textwrap.dedent()</span></code></a>. This allows “python -c” invocations to
be indented in shell scripts without causing indentation errors. (Patch by
Jon Crall and Steven Sun)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89562">gh-89562</a>: Remove <code class="docutils literal notranslate"><span class="pre">hostflags</span></code> member from <code class="docutils literal notranslate"><span class="pre">PySSLContext</span></code> struct.</p></li>
</ul>
</section>
<section id="id46">
<h3>C API<a class="headerlink" href="#id46" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133166">gh-133166</a>: Fix regression where <a class="reference internal" href="../c-api/type.html#c.PyType_GetModuleByDef" title="PyType_GetModuleByDef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetModuleByDef()</span></code></a> returns
NULL without setting <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when a static type is passed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133164">gh-133164</a>: Add <a class="reference internal" href="../c-api/object.html#c.PyUnstable_Object_IsUniqueReferencedTemporary" title="PyUnstable_Object_IsUniqueReferencedTemporary"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_Object_IsUniqueReferencedTemporary()</span></code></a>
function for determining if an object exists as a unique temporary
variable on the interpreter’s stack. This is a replacement for some cases
where checking that <a class="reference internal" href="../c-api/refcounting.html#c.Py_REFCNT" title="Py_REFCNT"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_REFCNT()</span></code></a> is one is no longer sufficient to
determine if it’s safe to modify a Python object in-place with no visible
side effects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133140">gh-133140</a>: Add <a class="reference internal" href="../c-api/object.html#c.PyUnstable_Object_IsUniquelyReferenced" title="PyUnstable_Object_IsUniquelyReferenced"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_Object_IsUniquelyReferenced()</span></code></a> as a
replacement for <code class="docutils literal notranslate"><span class="pre">Py_REFNCT(op)</span> <span class="pre">==</span> <span class="pre">1</span></code> on <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a> builds of Python.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131747">gh-131747</a>: On non-Windows platforms, deprecate using
<a class="reference internal" href="../library/ctypes.html#ctypes.Structure._pack_" title="ctypes.Structure._pack_"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ctypes.Structure._pack_</span></code></a> to use a Windows-compatible layout on
non-Windows platforms. The layout should be specified explicitly by
setting <a class="reference internal" href="../library/ctypes.html#ctypes.Structure._layout_" title="ctypes.Structure._layout_"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ctypes.Structure._layout_</span></code></a> to <code class="docutils literal notranslate"><span class="pre">'ms'</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128972">gh-128972</a>: For non-free-threaded builds, the memory layout of
<a class="reference internal" href="../c-api/unicode.html#c.PyASCIIObject" title="PyASCIIObject"><code class="xref c c-struct docutils literal notranslate"><span class="pre">PyASCIIObject</span></code></a> is reverted to match Python 3.13. (Note that the
structure is not part of stable ABI and so its memory layout is
<em>guaranteed</em> to remain stable.)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133079">gh-133079</a>: The undocumented APIs <code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_C_RECURSION_LIMIT</span></code> and
<code class="xref c c-member docutils literal notranslate"><span class="pre">PyThreadState.c_recursion_remaining</span></code>, added in 3.13, are
removed without a deprecation period.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132987">gh-132987</a>: The <code class="docutils literal notranslate"><span class="pre">k</span></code> and <code class="docutils literal notranslate"><span class="pre">K</span></code> formats in <a class="reference internal" href="../c-api/arg.html#c.PyArg_Parse" title="PyArg_Parse"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_Parse()</span></code></a> now
support the <a class="reference internal" href="../reference/datamodel.html#object.__index__" title="object.__index__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__index__()</span></code></a> special method, like all other
integer formats.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132909">gh-132909</a>: Fix an overflow when handling the <a class="reference internal" href="../c-api/arg.html#capi-py-buildvalue-format-k"><span class="std std-ref">K</span></a> format in <a class="reference internal" href="../c-api/arg.html#c.Py_BuildValue" title="Py_BuildValue"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_BuildValue()</span></code></a>. Patch by
Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132798">gh-132798</a>: Deprecated and undocumented functions
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsEncodedObject()</span></code>,
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsDecodedObject()</span></code>,
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsEncodedUnicode()</span></code> and
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsDecodedUnicode()</span></code> are scheduled for removal in 3.15.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132470">gh-132470</a>: Creating a <a class="reference internal" href="../library/ctypes.html#ctypes.CField" title="ctypes.CField"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.CField</span></code></a> with a <em>byte_size</em> that does
not match the actual type size now raises a <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> instead of
crashing the interpreter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112068">gh-112068</a>: [Reverted in <a class="reference external" href="https://github.com/python/cpython/issues/136991">gh-136991</a>] Add support of nullable arguments in
<a class="reference internal" href="../c-api/arg.html#c.PyArg_Parse" title="PyArg_Parse"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_Parse()</span></code></a> and similar functions. Adding <code class="docutils literal notranslate"><span class="pre">?</span></code> after any format
unit makes <code class="docutils literal notranslate"><span class="pre">None</span></code> be accepted as a value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/50333">gh-50333</a>: Non-tuple sequences are deprecated as argument for the
<code class="docutils literal notranslate"><span class="pre">(items)</span></code> format unit in <a class="reference internal" href="../c-api/arg.html#c.PyArg_ParseTuple" title="PyArg_ParseTuple"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_ParseTuple()</span></code></a> and other
<a class="reference internal" href="../c-api/arg.html#arg-parsing"><span class="std std-ref">argument parsing</span></a> functions if <em>items</em> contains format
units which store a <a class="reference internal" href="../c-api/arg.html#c-arg-borrowed-buffer"><span class="std std-ref">borrowed buffer</span></a> or a
<a class="reference internal" href="../glossary.html#term-borrowed-reference"><span class="xref std std-term">borrowed reference</span></a>.</p></li>
</ul>
</section>
<section id="id47">
<h3>Build<a class="headerlink" href="#id47" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113464">gh-113464</a>: Use the cpython-bin-deps “externals” repository for Windows
LLVM dependency management. Installing LLVM manually is no longer
necessary for Windows JIT builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133183">gh-133183</a>: iOS compiler shims now include <code class="docutils literal notranslate"><span class="pre">IPHONEOS_DEPLOYMENT_TARGET</span></code>
in target triples, ensuring that SDK version minimums are honored.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133167">gh-133167</a>: Fix compilation process with <code class="docutils literal notranslate"><span class="pre">--enable-optimizations</span></code> and
<code class="docutils literal notranslate"><span class="pre">--without-docstrings</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/133171">gh-133171</a>: Since free-threaded builds do not support the experimental JIT
compiler, prevent these configurations from being combined.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132758">gh-132758</a>: Fix building with tail call interpreter and pystats.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132649">gh-132649</a>: The <code class="file docutils literal notranslate"><span class="pre">PClayout</span></code> script now allows passing
<code class="docutils literal notranslate"><span class="pre">--include-tcltk</span></code> on Windows ARM64.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132257">gh-132257</a>: Change the default LTO flags on GCC to not pass
<code class="docutils literal notranslate"><span class="pre">-flto-partition=none</span></code>, and allow parallelization of LTO. For newer GNU
makes and GCC, this has a multiple factor speedup for LTO build times,
with no noticeable loss in performance.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132026">gh-132026</a>: Fix use of undefined identifiers in platform triplet detection
on MIPS Linux platforms.</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-alpha-7">
<h2>Python 3.14.0 alpha 7<a class="headerlink" href="#python-3-14-0-alpha-7" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-04-08</em></p>
<section id="id48">
<h3>macOS<a class="headerlink" href="#id48" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124111">gh-124111</a>: Update macOS installer to use Tcl/Tk 8.6.16.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131423">gh-131423</a>: Update macOS installer to use OpenSSL 3.0.16. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131025">gh-131025</a>: Update macOS installer to ship with SQLite 3.49.1.</p></li>
</ul>
</section>
<section id="id49">
<h3>Windows<a class="headerlink" href="#id49" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131423">gh-131423</a>: Update bundled version of OpenSSL to 3.0.16. The new build also
disables uplink support, which may be relevant to embedders but has no
impact on normal use.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131453">gh-131453</a>: Some <code class="xref py py-data docutils literal notranslate"><span class="pre">SND_*</span></code> and <code class="xref py py-data docutils literal notranslate"><span class="pre">MB_*</span></code> constants are added to
<a class="reference internal" href="../library/winsound.html#module-winsound" title="winsound: Access to the sound-playing machinery for Windows. (Windows)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">winsound</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91349">gh-91349</a>: Replaces our copy of <code class="docutils literal notranslate"><span class="pre">zlib</span></code> with <code class="docutils literal notranslate"><span class="pre">zlib-ng</span></code>, for performance
improvements in <a class="reference internal" href="../library/zlib.html#module-zlib" title="zlib: Low-level interface to compression and decompression routines compatible with gzip."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zlib</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131025">gh-131025</a>: Update Windows installer to ship with SQLite 3.49.1.</p></li>
</ul>
</section>
<section id="id50">
<h3>Tools/Demos<a class="headerlink" href="#id50" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132121">gh-132121</a>: Always escape non-printable Unicode characters in
<strong class="program">pygettext</strong>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131852">gh-131852</a>: <strong class="program">msgfmt</strong> no longer adds the <code class="docutils literal notranslate"><span class="pre">POT-Creation-Date</span></code> to
generated <code class="docutils literal notranslate"><span class="pre">.mo</span></code> files for consistency with GNU <code class="docutils literal notranslate"><span class="pre">msgfmt</span></code>.</p></li>
</ul>
</section>
<section id="id51">
<h3>Tests<a class="headerlink" href="#id51" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131277">gh-131277</a>: Allow to unset one or more environment variables at once via
<a class="reference internal" href="../library/test.html#test.support.os_helper.EnvironmentVarGuard.unset" title="test.support.os_helper.EnvironmentVarGuard.unset"><code class="xref py py-meth docutils literal notranslate"><span class="pre">EnvironmentVarGuard.unset()</span></code></a>. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131050">gh-131050</a>: <code class="docutils literal notranslate"><span class="pre">test_ssl.test_dh_params</span></code> is skipped if the underlying TLS
library does not support finite-field ephemeral Diffie-Hellman.</p></li>
</ul>
</section>
<section id="id52">
<h3>Security<a class="headerlink" href="#id52" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131809">gh-131809</a>: Update bundled libexpat to 2.7.1</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131261">gh-131261</a>: Upgrade to libexpat 2.7.0</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121284">gh-121284</a>: Fix bug in the folding of rfc2047 encoded-words when flattening
an email message using a modern email policy. Previously when an
encoded-word was too long for a line, it would be decoded, split across
lines, and re-encoded. But commas and other special characters in the
original text could be left unencoded and unquoted. This could
theoretically be used to spoof header lines using a carefully constructed
encoded-word if the resulting rendered email was transmitted or re-parsed.</p></li>
</ul>
</section>
<section id="id53">
<h3>Library<a class="headerlink" href="#id53" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132174">gh-132174</a>: Fix function name in error message of
<code class="docutils literal notranslate"><span class="pre">_interpreters.run_string</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132171">gh-132171</a>: Fix crash of <code class="docutils literal notranslate"><span class="pre">_interpreters.run_string</span></code> on string subclasses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129204">gh-129204</a>: Introduce new <code class="docutils literal notranslate"><span class="pre">_PYTHON_SUBPROCESS_USE_POSIX_SPAWN</span></code>
environment variable knob in <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> to control the use of
<a class="reference internal" href="../library/os.html#os.posix_spawn" title="os.posix_spawn"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.posix_spawn()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132159">gh-132159</a>: Do not shadow user arguments in generated <code class="xref py py-meth docutils literal notranslate"><span class="pre">__new__()</span></code> by
decorator <a class="reference internal" href="../library/warnings.html#warnings.deprecated" title="warnings.deprecated"><code class="xref py py-class docutils literal notranslate"><span class="pre">warnings.deprecated</span></code></a>. Patch by Xuehai Pan.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132168">gh-132168</a>: The <a class="reference internal" href="../library/ctypes.html#ctypes.py_object" title="ctypes.py_object"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.py_object</span></code></a> type now supports subscription,
making it a <a class="reference internal" href="../glossary.html#term-generic-type"><span class="xref std std-term">generic type</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84481">gh-84481</a>: Add the <code class="xref py py-attr docutils literal notranslate"><span class="pre">zipfile.ZipFile.data_offset</span></code> attribute, which
stores the offset to the beginning of ZIP data in a file when available.
When the <a class="reference internal" href="../library/zipfile.html#zipfile.ZipFile" title="zipfile.ZipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">zipfile.ZipFile</span></code></a> is opened in either mode <code class="docutils literal notranslate"><span class="pre">'w'</span></code> or
<code class="docutils literal notranslate"><span class="pre">'x'</span></code> and the underlying file does not support <code class="docutils literal notranslate"><span class="pre">tell()</span></code>, the value
will be <code class="docutils literal notranslate"><span class="pre">None</span></code> instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132075">gh-132075</a>: Fix possible use of <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> address structures with
uninitialized members. Now all structure members are initialized with
zeroes by default.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Improve import times by up to 27x for the <a class="reference internal" href="../library/string.html#module-string" title="string: Common string operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">string</span></code></a> module.
Patch by Adam Turner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125434">gh-125434</a>: Display thread name in <a class="reference internal" href="../library/faulthandler.html#module-faulthandler" title="faulthandler: Dump the Python traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">faulthandler</span></code></a>. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132002">gh-132002</a>: Fix crash when deallocating <a class="reference internal" href="../library/contextvars.html#contextvars.ContextVar" title="contextvars.ContextVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">contextvars.ContextVar</span></code></a>
with weird unahashable string names.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131938">gh-131938</a>: <a class="reference internal" href="../library/xml.etree.elementtree.html#module-xml.etree.ElementTree" title="xml.etree.ElementTree: Implementation of the ElementTree API."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree.ElementTree</span></code></a>: update the error message when an
element to remove via <a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.remove" title="xml.etree.ElementTree.Element.remove"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Element.remove</span></code></a> is not found. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115942">gh-115942</a>: Add <a class="reference internal" href="../library/threading.html#threading.RLock.locked" title="threading.RLock.locked"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.RLock.locked()</span></code></a>,
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Lock.locked" title="multiprocessing.Lock.locked"><code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.Lock.locked()</span></code></a>, <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.RLock.locked" title="multiprocessing.RLock.locked"><code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.RLock.locked()</span></code></a>,
and allow <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.managers.SyncManager.Lock" title="multiprocessing.managers.SyncManager.Lock"><code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.managers.SyncManager.Lock()</span></code></a> and
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.managers.SyncManager.RLock" title="multiprocessing.managers.SyncManager.RLock"><code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.managers.SyncManager.RLock()</span></code></a> to proxy <code class="docutils literal notranslate"><span class="pre">locked()</span></code>
call.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131974">gh-131974</a>: Fix several thread-safety issues in <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> on the
<a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Improve the import time of the <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> module by extracting
the <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">unparse()</span></code></a> function to a helper module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107369">gh-107369</a>: Improved performance of <a class="reference internal" href="../library/textwrap.html#textwrap.indent" title="textwrap.indent"><code class="xref py py-func docutils literal notranslate"><span class="pre">textwrap.indent()</span></code></a> by an average
of ~1.3x. Patch by Adam Turner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131792">gh-131792</a>: Improved performance of <a class="reference internal" href="../library/textwrap.html#textwrap.dedent" title="textwrap.dedent"><code class="xref py py-func docutils literal notranslate"><span class="pre">textwrap.dedent()</span></code></a> by an average
of ~2.4x, (with improvements of up to 4x for large inputs), and fixed a
bug where blank lines with whitespace characters other than space or
horizontal tab were not normalised to the newline. Patch by Adam Turner,
Marius Juston, and Pieter Eendebak.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131668">gh-131668</a>: <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a>: Fix code parsing AF_BLUETOOTH socket addresses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/60115">gh-60115</a>: Support frozen modules for <a class="reference internal" href="../library/linecache.html#linecache.getline" title="linecache.getline"><code class="xref py py-func docutils literal notranslate"><span class="pre">linecache.getline()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131492">gh-131492</a>: Fix a resource leak when constructing a <a class="reference internal" href="../library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">gzip.GzipFile</span></code></a>
with a filename fails, for example when passing an invalid
<code class="docutils literal notranslate"><span class="pre">compresslevel</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131435">gh-131435</a>: 10-20% performance improvement of <a class="reference internal" href="../library/random.html#random.randint" title="random.randint"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.randint()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131461">gh-131461</a>: Fix <a class="reference internal" href="../library/exceptions.html#ResourceWarning" title="ResourceWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ResourceWarning</span></code></a> when constructing a
<a class="reference internal" href="../library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">gzip.GzipFile</span></code></a> in write mode with a broken file object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125866">gh-125866</a>: Deprecate the <code class="xref py py-mod docutils literal notranslate"><span class="pre">nturl2path</span></code> module. Call
<a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.url2pathname()</span></code></a> and
<a class="reference internal" href="../library/urllib.request.html#urllib.request.pathname2url" title="urllib.request.pathname2url"><code class="xref py py-func docutils literal notranslate"><span class="pre">pathname2url()</span></code></a> instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126367">gh-126367</a>: Fix issue where <a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.url2pathname()</span></code></a> raised
<a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> when given a Windows URI containing a colon character not
following a drive letter, such as before an NTFS alternate data stream.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120144">gh-120144</a>: Disable <code class="docutils literal notranslate"><span class="pre">CALL</span></code> event in <a class="reference internal" href="../library/bdb.html#module-bdb" title="bdb: Debugger framework."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bdb</span></code></a> in <code class="docutils literal notranslate"><span class="pre">monitoring</span></code> backend
when we don’t need any new events on the code object to get a better
performance.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131358">gh-131358</a>: Register <code class="docutils literal notranslate"><span class="pre">cseuckr</span></code> as an encoding alias for <code class="docutils literal notranslate"><span class="pre">euc_kr</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131325">gh-131325</a>: Fix sendfile fallback implementation to drain data after
writing to transport in <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90548">gh-90548</a>: <a class="reference internal" href="../library/platform.html#platform.libc_ver" title="platform.libc_ver"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.libc_ver()</span></code></a> can now detect and report the version
of <code class="docutils literal notranslate"><span class="pre">musl</span></code> on Alpine Linux.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129843">gh-129843</a>: Fix incorrect argument passing in
<a class="reference internal" href="../library/warnings.html#warnings.warn_explicit" title="warnings.warn_explicit"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.warn_explicit()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/70647">gh-70647</a>: When creating a <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a> object with an out of range date
a more informative error is raised.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130914">gh-130914</a>: Allow <a class="reference internal" href="../library/graphlib.html#graphlib.TopologicalSorter.prepare" title="graphlib.TopologicalSorter.prepare"><code class="xref py py-meth docutils literal notranslate"><span class="pre">graphlib.TopologicalSorter.prepare()</span></code></a> to be called
more than once as long as sorting has not started. Patch by Daniel Pope.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131236">gh-131236</a>: Allow to generate multiple UUIDs at once via <a class="reference internal" href="../library/uuid.html#cmdoption-uuid-count"><code class="xref std std-option docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span>
<span class="pre">uuid</span> <span class="pre">--count</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126895">gh-126895</a>: Fix <a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a> in <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free-threaded</span></a>
build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121468">gh-121468</a>: <code class="docutils literal notranslate"><span class="pre">$_asynctask</span></code> is added as a <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> convenience variable
to access the current asyncio task if applicable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Improve import time of <a class="reference internal" href="../library/locale.html#module-locale" title="locale: Internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code></a> using lazy import <code class="docutils literal notranslate"><span class="pre">re</span></code>.
Patch by Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129598">gh-129598</a>: Fix <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> when <a class="reference internal" href="../library/ast.html#ast.Interactive" title="ast.Interactive"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Interactive</span></code></a> contains
multiple statements.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85162">gh-85162</a>: The <a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a> module now includes built-in support for
HTTPS servers exposed by <a class="reference internal" href="../library/http.server.html#http.server.HTTPSServer" title="http.server.HTTPSServer"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.server.HTTPSServer</span></code></a>. This
functionality is exposed by the command-line interface (<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span>
<span class="pre">http.server</span></code>) through the <code class="docutils literal notranslate"><span class="pre">--tls-cert</span></code>, <code class="docutils literal notranslate"><span class="pre">--tls-key</span></code> and
<code class="docutils literal notranslate"><span class="pre">--tls-password-file</span></code> options. Patch by Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129463">gh-129463</a>: The implementations of equality and hashing for
<a class="reference internal" href="../library/annotationlib.html#annotationlib.ForwardRef" title="annotationlib.ForwardRef"><code class="xref py py-class docutils literal notranslate"><span class="pre">annotationlib.ForwardRef</span></code></a> now use all attributes on the object.
Two <code class="xref py py-class docutils literal notranslate"><span class="pre">ForwardRef</span></code> objects are equal only if all attributes are
equal.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128593">gh-128593</a>: <a class="reference internal" href="../library/annotationlib.html#annotationlib.ForwardRef" title="annotationlib.ForwardRef"><code class="xref py py-class docutils literal notranslate"><span class="pre">annotationlib.ForwardRef</span></code></a> objects no longer cache their
value when they are successfully evaluated. Successive calls to
<a class="reference internal" href="../library/annotationlib.html#annotationlib.ForwardRef.evaluate" title="annotationlib.ForwardRef.evaluate"><code class="xref py py-meth docutils literal notranslate"><span class="pre">annotationlib.ForwardRef.evaluate()</span></code></a> may return different values.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117779">gh-117779</a>: Fix reading duplicated entries in <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a> by name.
Reading duplicated entries (except the last one) by <code class="docutils literal notranslate"><span class="pre">ZipInfo</span></code> now emits
a warning instead of raising an exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128715">gh-128715</a>: The class of <a class="reference internal" href="../library/ctypes.html#ctypes.Structure" title="ctypes.Structure"><code class="xref py py-class docutils literal notranslate"><span class="pre">Structure</span></code></a>/<a class="reference internal" href="../library/ctypes.html#ctypes.Union" title="ctypes.Union"><code class="xref py py-class docutils literal notranslate"><span class="pre">Union</span></code></a>
field descriptors is now available as <a class="reference internal" href="../library/ctypes.html#ctypes.CField" title="ctypes.CField"><code class="xref py py-class docutils literal notranslate"><span class="pre">CField</span></code></a>, and has new
attributes to aid debugging and introspection.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128055">gh-128055</a>: Fix <code class="docutils literal notranslate"><span class="pre">test.test_sysconfig.test_sysconfigdata_json</span></code> when
running outside the build directory (eg. after installing).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126037">gh-126037</a>: <a class="reference internal" href="../library/xml.etree.elementtree.html#module-xml.etree.ElementTree" title="xml.etree.ElementTree: Implementation of the ElementTree API."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree.ElementTree</span></code></a>: Fix a crash in
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.find" title="xml.etree.ElementTree.Element.find"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Element.find</span></code></a>,
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findtext" title="xml.etree.ElementTree.Element.findtext"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Element.findtext</span></code></a> and
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findall" title="xml.etree.ElementTree.Element.findall"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Element.findall</span></code></a> when the
tag to find implements an <a class="reference internal" href="../reference/datamodel.html#object.__eq__" title="object.__eq__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__eq__()</span></code></a> method mutating the
element being queried. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127794">gh-127794</a>: When headers are added to <a class="reference internal" href="../library/email.compat32-message.html#email.message.Message" title="email.message.Message"><code class="xref py py-class docutils literal notranslate"><span class="pre">email.message.Message</span></code></a>
objects, either through <a class="reference internal" href="../library/email.compat32-message.html#email.message.Message.__setitem__" title="email.message.Message.__setitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">email.message.Message.__setitem__()</span></code></a> or
<a class="reference internal" href="../library/email.compat32-message.html#email.message.Message.add_header" title="email.message.Message.add_header"><code class="xref py py-meth docutils literal notranslate"><span class="pre">email.message.Message.add_header()</span></code></a>, the field name is now validated
according to <span class="target" id="index-22"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5322.html#section-2.2"><strong>RFC 5322, Section 2.2</strong></a> and a
<a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> is raised if the field name contains any invalid
characters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123599">gh-123599</a>: Deprecate <code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.as_uri()</span></code>; use
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.as_uri" title="pathlib.Path.as_uri"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.as_uri()</span></code></a> instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126033">gh-126033</a>: <a class="reference internal" href="../library/xml.etree.elementtree.html#module-xml.etree.ElementTree" title="xml.etree.ElementTree: Implementation of the ElementTree API."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree.ElementTree</span></code></a>: Fix a crash in
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.remove" title="xml.etree.ElementTree.Element.remove"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Element.remove</span></code></a> when the
element is concurrently mutated. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120144">gh-120144</a>: Add the optional backend of <code class="docutils literal notranslate"><span class="pre">sys.monitoring</span></code> to <a class="reference internal" href="../library/bdb.html#module-bdb" title="bdb: Debugger framework."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bdb</span></code></a>
and use it for <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74598">gh-74598</a>: Add <a class="reference internal" href="../library/fnmatch.html#fnmatch.filterfalse" title="fnmatch.filterfalse"><code class="xref py py-func docutils literal notranslate"><span class="pre">fnmatch.filterfalse()</span></code></a> for excluding names matching a
pattern. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114917">gh-114917</a>: Add support for AI_NUMERICSERV in getaddrinfo emulation</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17254">bpo-17254</a>: Added aliases for Thai Language using Microsoft Code Pages.</p></li>
</ul>
</section>
<section id="id54">
<h3>Documentation<a class="headerlink" href="#id54" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131417">gh-131417</a>: Mention <a class="reference internal" href="../library/asyncio-future.html#asyncio.Future" title="asyncio.Future"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Future</span></code></a> and <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Task</span></code></a> in
generic classes list.</p></li>
</ul>
</section>
<section id="id55">
<h3>Core and Builtins<a class="headerlink" href="#id55" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Allow the JIT to remove an extra <code class="docutils literal notranslate"><span class="pre">_TO_BOOL_BOOL</span></code> instruction
after <code class="docutils literal notranslate"><span class="pre">_CONTAINS_OP_SET</span></code> by setting the return type to bool.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/132011">gh-132011</a>: Fix crash when calling <a class="reference internal" href="../library/stdtypes.html#list.append" title="list.append"><code class="xref py py-meth docutils literal notranslate"><span class="pre">list.append()</span></code></a> as an unbound
method.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131998">gh-131998</a>: Fix a crash when using an unbound method <a class="reference internal" href="../glossary.html#term-descriptor"><span class="xref std std-term">descriptor</span></a>
object in a function where a bound method descriptor was used.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131591">gh-131591</a>: Implement <span class="target" id="index-23"></span><a class="pep reference external" href="https://peps.python.org/pep-0768/"><strong>PEP 768</strong></a> (Safe external debugger interface for
CPython). Add a new <a class="reference internal" href="../library/sys.html#sys.remote_exec" title="sys.remote_exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.remote_exec()</span></code></a> function to the <a class="reference internal" href="../library/sys.html#module-sys" title="sys: Access system-specific parameters and functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sys</span></code></a>
module. This function schedules the execution of a Python file in a
separate process. Patch by Pablo Galindo, Matt Wozniski and Ivona
Stojanovic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131798">gh-131798</a>: Allow JIT to omit str guard in truthiness test when str type is
known.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131833">gh-131833</a>: Add support for optionally dropping grouping parentheses when
using multiple exception types as per <span class="target" id="index-24"></span><a class="pep reference external" href="https://peps.python.org/pep-0758/"><strong>PEP 758</strong></a>. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130924">gh-130924</a>: Usage of a name in a function-scope annotation no longer
triggers creation of a cell for that variable. This fixes a regression in
earlier alphas of Python 3.14.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131800">gh-131800</a>: Improve the experimental JIT’s ability to remove type checks
for certain subscripting operations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131738">gh-131738</a>: Compiler emits optimized code for builtin any/all/tuple calls
over a generator expression.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131719">gh-131719</a>: Fix missing NULL check in <code class="docutils literal notranslate"><span class="pre">_PyMem_FreeDelayed</span></code> in
<a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free-threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131670">gh-131670</a>: Fix <a class="reference internal" href="../library/functions.html#anext" title="anext"><code class="xref py py-func docutils literal notranslate"><span class="pre">anext()</span></code></a> failing on sync <a class="reference internal" href="../reference/datamodel.html#object.__anext__" title="object.__anext__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__anext__()</span></code></a>
raising an exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131666">gh-131666</a>: Fix signature of <code class="docutils literal notranslate"><span class="pre">anext_awaitable.close</span></code> objects. Patch by
Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130415">gh-130415</a>: Optimize comparison of two constants in JIT builds</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129149">gh-129149</a>: Add fast path for small and medium-size integers in
<a class="reference internal" href="../c-api/long.html#c.PyLong_FromInt32" title="PyLong_FromInt32"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromInt32()</span></code></a>, <a class="reference internal" href="../c-api/long.html#c.PyLong_FromUInt32" title="PyLong_FromUInt32"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromUInt32()</span></code></a>,
<a class="reference internal" href="../c-api/long.html#c.PyLong_FromInt64" title="PyLong_FromInt64"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromInt64()</span></code></a> and <a class="reference internal" href="../c-api/long.html#c.PyLong_FromUInt64" title="PyLong_FromUInt64"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromUInt64()</span></code></a>. Patch by Chris
Eibl.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130887">gh-130887</a>: Optimize the AArch64 code generation for the JIT. Patch by
Diego Russo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130956">gh-130956</a>: Optimize the AArch64 code generation for the JIT. Patch by
Diego Russo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130928">gh-130928</a>: Fix error message when formatting bytes using the <code class="docutils literal notranslate"><span class="pre">'i'</span></code> flag.
Patch by Maxim Ageev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130935">gh-130935</a>: Annotations at the class and module level that are
conditionally defined are now only reflected in <code class="docutils literal notranslate"><span class="pre">__annotations__</span></code> if the
block they are in is executed. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130775">gh-130775</a>: Do not crash on negative <code class="docutils literal notranslate"><span class="pre">column</span></code> and <code class="docutils literal notranslate"><span class="pre">end_column</span></code> in
<a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> locations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130704">gh-130704</a>: Optimize <code class="docutils literal notranslate"><span class="pre">LOAD_FAST</span></code> and its superinstruction form to reduce
reference counting overhead. These instructions are replaced with faster
variants that load borrowed references onto the operand stack when we can
prove that the reference in the frame outlives the reference loaded onto
the stack.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88887">gh-88887</a>: Fixing multiprocessing Resource Tracker process leaking, usually
observed when running Python as PID 1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130115">gh-130115</a>: Fix an issue with thread identifiers being sign-extended on
some platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99108">gh-99108</a>: Add support for built-in implementation of HMAC (<span class="target" id="index-25"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2104.html"><strong>RFC 2104</strong></a>)
based on HACL*. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130080">gh-130080</a>: Implement PEP 765: Disallow return/break/continue that exit a
finally block.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129900">gh-129900</a>: Fix return codes inside <a class="reference internal" href="../library/exceptions.html#SystemExit" title="SystemExit"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemExit</span></code></a> not getting returned
by the REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128632">gh-128632</a>: Disallow <code class="docutils literal notranslate"><span class="pre">__classdict__</span></code> as the name of a type parameter.
Using this name would previously crash the interpreter in some
circumstances.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126703">gh-126703</a>: Improve performance of builtin methods by using a freelist.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126703">gh-126703</a>: Improve performance of <a class="reference internal" href="../library/stdtypes.html#range" title="range"><code class="xref py py-class docutils literal notranslate"><span class="pre">range</span></code></a> by using a freelist.</p></li>
</ul>
</section>
<section id="id56">
<h3>C API<a class="headerlink" href="#id56" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131740">gh-131740</a>: Update PyUnstable_GC_VisitObjects to traverse perm gen.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131525">gh-131525</a>: The PyTupleObject now caches the computed hash value in the new
field ob_hash.</p></li>
</ul>
</section>
<section id="id57">
<h3>Build<a class="headerlink" href="#id57" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131865">gh-131865</a>: The DTrace build now properly passes the <code class="docutils literal notranslate"><span class="pre">CC</span></code> and <code class="docutils literal notranslate"><span class="pre">CFLAGS</span></code>
variables to the <code class="docutils literal notranslate"><span class="pre">dtrace</span></code> command when utilizing SystemTap on Linux.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131675">gh-131675</a>: Fix mimalloc library builds for 32-bit ARM targets.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131691">gh-131691</a>: clang-cl on Windows needs option <code class="docutils literal notranslate"><span class="pre">/EHa</span></code> to support SEH
(structured exception handling) correctly. Fix by Chris Eibl.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131278">gh-131278</a>: Add optimizing flag <code class="docutils literal notranslate"><span class="pre">WITH_COMPUTED_GOTOS</span></code> to Windows builds
for when using a compiler that supports it (currently clang-cl). Patch by
Chris Eibl.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130213">gh-130213</a>: Update the vendored HACL* library to fix build issues with
older clang compilers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130673">gh-130673</a>: Fix potential <code class="docutils literal notranslate"><span class="pre">KeyError</span></code> when handling object sections during
JIT building process.</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-alpha-6">
<h2>Python 3.14.0 alpha 6<a class="headerlink" href="#python-3-14-0-alpha-6" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-03-14</em></p>
<section id="id58">
<h3>macOS<a class="headerlink" href="#id58" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128540">gh-128540</a>: Ensure web browser is launched by <a class="reference internal" href="../library/webbrowser.html#webbrowser.open" title="webbrowser.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">webbrowser.open()</span></code></a> on
macOS, even for <code class="docutils literal notranslate"><span class="pre">file://</span></code> URLs.</p></li>
</ul>
</section>
<section id="id59">
<h3>Windows<a class="headerlink" href="#id59" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131020">gh-131020</a>: <a class="extlink-source reference external" href="https://github.com/python/cpython/tree/3.14/PC/launcher2.c">pylauncher</a> correctly detects a BOM
when searching for the shebang. Fix by Chris Eibl.</p></li>
</ul>
</section>
<section id="id60">
<h3>Tools/Demos<a class="headerlink" href="#id60" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130453">gh-130453</a>: Make it possible to override default keywords in
<strong class="program">pygettext</strong>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85012">gh-85012</a>: Correctly reset <code class="docutils literal notranslate"><span class="pre">msgctxt</span></code> when compiling messages in
<strong class="program">msgfmt</strong>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130453">gh-130453</a>: Extend support for specifying custom keywords in
<strong class="program">pygettext</strong>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130195">gh-130195</a>: Add warning messages when <code class="docutils literal notranslate"><span class="pre">pygettext</span></code> unimplemented
<code class="docutils literal notranslate"><span class="pre">-a/--extract-all</span></code> option is called.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130057">gh-130057</a>: Add support for translator comments in <strong class="program">pygettext.py</strong>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130025">gh-130025</a>: The iOS testbed now correctly handles symlinks used as Python
framework references.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129911">gh-129911</a>: Fix the keyword entry in the help output of
<strong class="program">pygettext</strong>.</p></li>
</ul>
</section>
<section id="id61">
<h3>Tests<a class="headerlink" href="#id61" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129200">gh-129200</a>: Multiple iOS testbed runners can now be started at the same
time without introducing an ambiguity over simulator ownership.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130292">gh-130292</a>: The iOS testbed will now run successfully on a machine that has
not previously run Xcode tests (such as CI configurations).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130293">gh-130293</a>: The tests of terminal colorization are no longer sensitive to
the value of the <code class="docutils literal notranslate"><span class="pre">TERM</span></code> variable in the testing environment.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129401">gh-129401</a>: Fix a flaky test in <code class="docutils literal notranslate"><span class="pre">test_repr_rlock</span></code> that checks the
representation of <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.RLock" title="multiprocessing.RLock"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.RLock</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126332">gh-126332</a>: Add unit tests for pyrepl.</p></li>
</ul>
</section>
<section id="id62">
<h3>Security<a class="headerlink" href="#id62" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127371">gh-127371</a>: Avoid unbounded buffering for
<code class="xref py py-meth docutils literal notranslate"><span class="pre">tempfile.SpooledTemporaryFile.writelines()</span></code>. Previously, disk
spillover was only checked after the lines iterator had been exhausted.
This is now done after each line is written.</p></li>
</ul>
</section>
<section id="id63">
<h3>Library<a class="headerlink" href="#id63" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131204">gh-131204</a>: Use monospace font from System Font Stack for cross-platform
support in <a class="reference internal" href="../library/difflib.html#difflib.HtmlDiff" title="difflib.HtmlDiff"><code class="xref py py-class docutils literal notranslate"><span class="pre">difflib.HtmlDiff</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131196">gh-131196</a>: Improve performance of <a class="reference internal" href="../library/uuid.html#uuid.UUID.hex" title="uuid.UUID.hex"><code class="xref py py-attr docutils literal notranslate"><span class="pre">uuid.UUID.hex</span></code></a> and
<a class="reference internal" href="../reference/datamodel.html#object.__str__" title="object.__str__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">uuid.UUID.__str__</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130940">gh-130940</a>: The behavior of <code class="docutils literal notranslate"><span class="pre">PyConfig.use_system_logger</span></code> was modified to
be enabled by default on iOS. It remains disabled by default on macOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131123">gh-131123</a>: Supported completions for attributes of convenience variables
in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93096">gh-93096</a>: Removed undocumented CLI <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">difflib</span></code>. Use <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span>
<span class="pre">doctest</span> <span class="pre">Lib/difflib.py</span> <span class="pre">-v</span></code> instead. Patch by Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93096">gh-93096</a>: Removed undocumented <code class="docutils literal notranslate"><span class="pre">-t</span></code> and <code class="docutils literal notranslate"><span class="pre">-v</span></code> arguments of <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span>
<span class="pre">pickle</span></code>. Use <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">doctest</span> <span class="pre">Lib/pickle.py</span> <span class="pre">-v</span></code> instead. Patch by
Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81267">gh-81267</a>: Correct <a class="reference internal" href="../library/time.html#time.sleep" title="time.sleep"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.sleep()</span></code></a> error message when an object that
cannot be interpreted as an integer or float is provided.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93096">gh-93096</a>: Removed undocumented <code class="docutils literal notranslate"><span class="pre">-t</span></code> and <code class="docutils literal notranslate"><span class="pre">-v</span></code> arguments of <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span>
<span class="pre">pickletools</span></code>. Use <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">doctest</span> <span class="pre">Lib/pickletools.py</span> <span class="pre">-v</span></code> instead.
Patch by Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131045">gh-131045</a>: Fix issue with <code class="docutils literal notranslate"><span class="pre">__contains__</span></code>, values, and pseudo-members for
<a class="reference internal" href="../library/enum.html#enum.Flag" title="enum.Flag"><code class="xref py py-class docutils literal notranslate"><span class="pre">enum.Flag</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130959">gh-130959</a>: Fix pure-Python implementation of
<a class="reference internal" href="../library/datetime.html#datetime.time.fromisoformat" title="datetime.time.fromisoformat"><code class="xref py py-func docutils literal notranslate"><span class="pre">datetime.time.fromisoformat()</span></code></a> to reject times with spaces in
fractional part (for example, <code class="docutils literal notranslate"><span class="pre">12:34:56.400</span> <span class="pre">+02:00</span></code>), matching the C
implementation. Patch by Michał Gorny.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130806">gh-130806</a>: Deleting <a class="reference internal" href="../library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">gzip.GzipFile</span></code></a> before it is closed now emits a
<a class="reference internal" href="../library/exceptions.html#ResourceWarning" title="ResourceWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ResourceWarning</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130637">gh-130637</a>: Add validation for numeric response data in poplib.POP3.stat()
method</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130665">gh-130665</a>: Only apply locale to <a class="reference internal" href="../library/calendar.html#calendar-cli"><span class="std std-ref">calendar CLI</span></a> when
set via <code class="docutils literal notranslate"><span class="pre">--locale</span></code> and not via <code class="docutils literal notranslate"><span class="pre">LANG</span></code> environment variable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130660">gh-130660</a>: <code class="docutils literal notranslate"><span class="pre">sys.ps1</span></code> and <code class="docutils literal notranslate"><span class="pre">sys.ps2</span></code> are now restored after
<a class="reference internal" href="../library/code.html#code.interact" title="code.interact"><code class="xref py py-func docutils literal notranslate"><span class="pre">code.interact()</span></code></a> call.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130608">gh-130608</a>: Remove <em>dirs_exist_ok</em> argument from <a class="reference internal" href="../library/pathlib.html#pathlib.Path.copy" title="pathlib.Path.copy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.copy()</span></code></a>
and <a class="reference internal" href="../library/pathlib.html#pathlib.Path.copy_into" title="pathlib.Path.copy_into"><code class="xref py py-meth docutils literal notranslate"><span class="pre">copy_into()</span></code></a>. These methods are new in Python 3.14.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130461">gh-130461</a>: Remove <code class="docutils literal notranslate"><span class="pre">..</span> <span class="pre">index::</span></code> directives from the <a class="reference internal" href="../library/uuid.html#module-uuid" title="uuid: UUID objects (universally unique identifiers) according to RFC 9562"><code class="xref py py-mod docutils literal notranslate"><span class="pre">uuid</span></code></a> module
documentation. These directives previously created entries in the general
index for <a class="reference internal" href="../library/uuid.html#uuid.getnode" title="uuid.getnode"><code class="xref py py-func docutils literal notranslate"><span class="pre">getnode()</span></code></a> as well as the <a class="reference internal" href="../library/uuid.html#uuid.uuid1" title="uuid.uuid1"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid1()</span></code></a>,
<a class="reference internal" href="../library/uuid.html#uuid.uuid3" title="uuid.uuid3"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid3()</span></code></a>, <a class="reference internal" href="../library/uuid.html#uuid.uuid4" title="uuid.uuid4"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid4()</span></code></a>, <a class="reference internal" href="../library/uuid.html#uuid.uuid5" title="uuid.uuid5"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid5()</span></code></a>, and
<a class="reference internal" href="../library/uuid.html#uuid.uuid8" title="uuid.uuid8"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid8()</span></code></a> constructor functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130379">gh-130379</a>: The zipapp module now calculates the list of files to be added
to the archive before creating the archive. This avoids accidentally
including the target when it is being created in the source directory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82987">gh-82987</a>: Inline breakpoints like <a class="reference internal" href="../library/functions.html#breakpoint" title="breakpoint"><code class="xref py py-func docutils literal notranslate"><span class="pre">breakpoint()</span></code></a> or
<a class="reference internal" href="../library/pdb.html#pdb.set_trace" title="pdb.set_trace"><code class="xref py py-func docutils literal notranslate"><span class="pre">pdb.set_trace()</span></code></a> will always stop the program at calling frame,
ignoring the <code class="docutils literal notranslate"><span class="pre">skip</span></code> pattern (if any).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125377">gh-125377</a>: <code class="docutils literal notranslate"><span class="pre"><tab></span></code> at the beginning of the line in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> multi-line
input will fill in a 4-space indentation now, instead of inserting a
<code class="docutils literal notranslate"><span class="pre">\t</span></code> character.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125413">gh-125413</a>: Ensure the path returned from <a class="reference internal" href="../library/pathlib.html#pathlib.Path.copy" title="pathlib.Path.copy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.copy()</span></code></a> or
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.move" title="pathlib.Path.move"><code class="xref py py-meth docutils literal notranslate"><span class="pre">move()</span></code></a> has fresh <a class="reference internal" href="../library/pathlib.html#pathlib.Path.info" title="pathlib.Path.info"><code class="xref py py-attr docutils literal notranslate"><span class="pre">info</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65697">gh-65697</a>: stdlib configparser will now attempt to validate that keys it
writes will not result in file corruption (creating a file unable to be
accurately parsed by a future read() call from the same parser).
Attempting a corrupting write() will raise an InvalidWriteError.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125413">gh-125413</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path.copy" title="pathlib.Path.copy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Path.copy</span></code></a> by making better
use of <a class="reference internal" href="../library/pathlib.html#pathlib.Path.info" title="pathlib.Path.info"><code class="xref py py-attr docutils literal notranslate"><span class="pre">info</span></code></a> internally.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130285">gh-130285</a>: Fix corner case for <a class="reference internal" href="../library/random.html#random.sample" title="random.sample"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.sample()</span></code></a> allowing the <em>counts</em>
parameter to specify an empty population. So now, <code class="docutils literal notranslate"><span class="pre">sample([],</span> <span class="pre">0,</span>
<span class="pre">counts=[])</span></code> and <code class="docutils literal notranslate"><span class="pre">sample('abc',</span> <span class="pre">k=0,</span> <span class="pre">counts=[0,</span> <span class="pre">0,</span> <span class="pre">0])</span></code> both give the
same result as <code class="docutils literal notranslate"><span class="pre">sample([],</span> <span class="pre">0)</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124703">gh-124703</a>: Executing <code class="docutils literal notranslate"><span class="pre">quit</span></code> command in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> will raise
<a class="reference internal" href="../library/bdb.html#bdb.BdbQuit" title="bdb.BdbQuit"><code class="xref py py-exc docutils literal notranslate"><span class="pre">bdb.BdbQuit</span></code></a> when <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> is started from an interactive console
using <a class="reference internal" href="../library/functions.html#breakpoint" title="breakpoint"><code class="xref py py-func docutils literal notranslate"><span class="pre">breakpoint()</span></code></a> or <a class="reference internal" href="../library/pdb.html#pdb.set_trace" title="pdb.set_trace"><code class="xref py py-func docutils literal notranslate"><span class="pre">pdb.set_trace()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107773">gh-107773</a>: Make <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a> subclass <a class="reference internal" href="../reference/datamodel.html#object.__repr__" title="object.__repr__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__repr__()</span></code></a>
consistent both implementations. Patch by Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130250">gh-130250</a>: Fix regression in <code class="docutils literal notranslate"><span class="pre">traceback.print_last()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123471">gh-123471</a>: Make concurrent iterations over <a class="reference internal" href="../library/itertools.html#itertools.batched" title="itertools.batched"><code class="xref py py-class docutils literal notranslate"><span class="pre">itertools.batched</span></code></a> safe
under free-threading.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/57537">gh-57537</a>: Support breakpoints for <a class="reference internal" href="../library/zipimport.html#module-zipimport" title="zipimport: Support for importing Python modules from ZIP archives."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipimport</span></code></a> modules on <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130230">gh-130230</a>: Fix crash in <a class="reference internal" href="../library/functions.html#pow" title="pow"><code class="xref py py-func docutils literal notranslate"><span class="pre">pow()</span></code></a> with only <a class="reference internal" href="../library/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal notranslate"><span class="pre">Decimal</span></code></a>
third argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126944">gh-126944</a>: Show explicit errors when required arguments of <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>
commands are missing</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127750">gh-127750</a>: Improve repr of <a class="reference internal" href="../library/functools.html#functools.singledispatchmethod" title="functools.singledispatchmethod"><code class="xref py py-class docutils literal notranslate"><span class="pre">functools.singledispatchmethod</span></code></a> methods
and descriptors.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128520">gh-128520</a>: Apply type conversion consistently in <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a>
and <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">Path</span></code></a> methods can accept a path object as an
argument, such as <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.match" title="pathlib.PurePath.match"><code class="xref py py-meth docutils literal notranslate"><span class="pre">match()</span></code></a> and
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.rename" title="pathlib.Path.rename"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rename()</span></code></a>. The argument is now converted to path object
if it lacks a <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.with_segments" title="pathlib.PurePath.with_segments"><code class="xref py py-meth docutils literal notranslate"><span class="pre">with_segments()</span></code></a> attribute, and not
otherwise.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Reverts a change in the previous release attempting to make
some stdlib imports used within the <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module lazy as this
was causing errors during <code class="docutils literal notranslate"><span class="pre">__del__</span></code> finalizers calling methods such as
<code class="docutils literal notranslate"><span class="pre">terminate</span></code>, or <code class="docutils literal notranslate"><span class="pre">kill</span></code>, or <code class="docutils literal notranslate"><span class="pre">send_signal</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130164">gh-130164</a>: Fixed failure to raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> in
<a class="reference internal" href="../library/inspect.html#inspect.Signature.bind" title="inspect.Signature.bind"><code class="xref py py-meth docutils literal notranslate"><span class="pre">inspect.Signature.bind()</span></code></a> for positional-only arguments provided by
keyword when a variadic keyword argument (e.g. <code class="docutils literal notranslate"><span class="pre">**kwargs</span></code>) is present.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130151">gh-130151</a>: Fix reference leaks in <code class="xref py py-func docutils literal notranslate"><span class="pre">_hashlib.hmac_new()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">_hashlib.hmac_digest()</span></code>. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130145">gh-130145</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.AbstractEventloop.run_forever()</span></code> when another
loop is already running.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130139">gh-130139</a>: Fix bug where <a class="reference internal" href="../library/ast.html#ast.parse" title="ast.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.parse()</span></code></a> did not error on AST input
which is not of the correct type, when called with optimize=False.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127260">gh-127260</a>: Forbid the use of colon (“:”) as a fractional component
separator and other improvements to the consistency of error raising
between the C and Python implementations of
<a class="reference internal" href="../library/datetime.html#datetime.time.fromisoformat" title="datetime.time.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.time.fromisoformat()</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.datetime.fromisoformat" title="datetime.datetime.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.fromisoformat()</span></code></a>. Patch by Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85795">gh-85795</a>: Using <a class="reference internal" href="../library/functions.html#super" title="super"><code class="xref py py-func docutils literal notranslate"><span class="pre">super()</span></code></a> and <code class="docutils literal notranslate"><span class="pre">__class__</span></code> <a class="reference internal" href="../glossary.html#term-closure-variable"><span class="xref std std-term">closure variable</span></a>
in user-defined methods of <a class="reference internal" href="../library/typing.html#typing.NamedTuple" title="typing.NamedTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NamedTuple</span></code></a> subclasses is now
explicitly prohibited at runtime. Contributed by Bartosz Sławecki in
<a class="reference external" href="https://github.com/python/cpython/issues/130082">gh-130082</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Improve import time of <a class="reference internal" href="../library/cmd.html#module-cmd" title="cmd: Build line-oriented command interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">cmd</span></code></a> by lazy importing
<a class="reference internal" href="../library/inspect.html#module-inspect" title="inspect: Extract information and source code from live objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">inspect</span></code></a> and removing <a class="reference internal" href="../library/string.html#module-string" title="string: Common string operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">string</span></code></a>. Patch by Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129726">gh-129726</a>: Fix <a class="reference internal" href="../library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">gzip.GzipFile</span></code></a> raising an unraisable exception
during garbage collection when referring to a temporary object by breaking
the reference loop with <a class="reference internal" href="../library/weakref.html#module-weakref" title="weakref: Support for weak references and weak dictionaries."><code class="xref py py-mod docutils literal notranslate"><span class="pre">weakref</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127750">gh-127750</a>: Remove broken <a class="reference internal" href="../library/functools.html#functools.singledispatchmethod" title="functools.singledispatchmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.singledispatchmethod()</span></code></a> caching
introduced in <a class="reference external" href="https://github.com/python/cpython/issues/85160">gh-85160</a>. Achieve the same performance using different
optimization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129948">gh-129948</a>: Add support for shared <a class="reference internal" href="../library/stdtypes.html#set" title="set"><code class="xref py py-class docutils literal notranslate"><span class="pre">set</span></code></a> to
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.managers.SyncManager" title="multiprocessing.managers.SyncManager"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.managers.SyncManager</span></code></a> via <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.managers.SyncManager.set" title="multiprocessing.managers.SyncManager.set"><code class="xref py py-meth docutils literal notranslate"><span class="pre">SyncManager.set()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129965">gh-129965</a>: Update MIME types for <code class="docutils literal notranslate"><span class="pre">.avi</span></code> and <code class="docutils literal notranslate"><span class="pre">.wav</span></code>. Add MIME types for
<code class="docutils literal notranslate"><span class="pre">.docx</span></code>, <code class="docutils literal notranslate"><span class="pre">.pptx</span></code>, <code class="docutils literal notranslate"><span class="pre">.xlsx</span></code>, <code class="docutils literal notranslate"><span class="pre">.epub</span></code>, <code class="docutils literal notranslate"><span class="pre">.flac</span></code>, <code class="docutils literal notranslate"><span class="pre">.m4a</span></code>, <code class="docutils literal notranslate"><span class="pre">.odg</span></code>,
<code class="docutils literal notranslate"><span class="pre">.odp</span></code>, <code class="docutils literal notranslate"><span class="pre">.ods</span></code>, <code class="docutils literal notranslate"><span class="pre">.odt</span></code>, <code class="docutils literal notranslate"><span class="pre">.oga</span></code>, <code class="docutils literal notranslate"><span class="pre">.ogg</span></code>, <code class="docutils literal notranslate"><span class="pre">.ogx</span></code> and <code class="docutils literal notranslate"><span class="pre">.weba</span></code>.
Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129889">gh-129889</a>: Support context manager protocol by <a class="reference internal" href="../library/contextvars.html#contextvars.Token" title="contextvars.Token"><code class="xref py py-class docutils literal notranslate"><span class="pre">contextvars.Token</span></code></a>.
Patch by Andrew Svetlov.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97850">gh-97850</a>: Update the deprecation warning of
<a class="reference internal" href="../library/importlib.html#importlib.abc.Loader.load_module" title="importlib.abc.Loader.load_module"><code class="xref py py-meth docutils literal notranslate"><span class="pre">importlib.abc.Loader.load_module()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129678">gh-129678</a>: <a class="reference internal" href="../library/configparser.html#configparser.ConfigParser" title="configparser.ConfigParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">configparser.ConfigParser</span></code></a>: do not write an empty
unnamed section</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128641">gh-128641</a>: Restore <a class="reference internal" href="../library/configparser.html#configparser.ConfigParser.read" title="configparser.ConfigParser.read"><code class="xref py py-meth docutils literal notranslate"><span class="pre">configparser.ConfigParser.read()</span></code></a> performance.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129569">gh-129569</a>: Fix <a class="reference internal" href="../library/unicodedata.html#unicodedata.normalize" title="unicodedata.normalize"><code class="xref py py-func docutils literal notranslate"><span class="pre">unicodedata.normalize()</span></code></a> to always return a built-in
<a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> object when given an input of a <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> subclass,
regardless of whether the string is already normalized.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128231">gh-128231</a>: Execution of multiple statements in the new REPL now stops
immediately upon the first exception encountered. Patch by Bartosz
Sławecki.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96092">gh-96092</a>: Fix bug in <a class="reference internal" href="../library/traceback.html#traceback.walk_stack" title="traceback.walk_stack"><code class="xref py py-func docutils literal notranslate"><span class="pre">traceback.walk_stack()</span></code></a> called with None where
it was skipping more frames than in prior versions. This bug fix also
changes walk_stack to walk the stack in the frame where it was called
rather than where it first gets used.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129288">gh-129288</a>: Add optional <code class="docutils literal notranslate"><span class="pre">l2_cid</span></code> and <code class="docutils literal notranslate"><span class="pre">l2_bdaddr_type</span></code> fields to
<a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> <code class="docutils literal notranslate"><span class="pre">BTPROTO_L2CAP</span></code> sockaddr tuple.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128703">gh-128703</a>: Fix <a class="reference internal" href="../library/mimetypes.html#mimetypes.guess_type" title="mimetypes.guess_type"><code class="xref py py-func docutils literal notranslate"><span class="pre">mimetypes.guess_type()</span></code></a> to use default mapping for
empty <code class="docutils literal notranslate"><span class="pre">Content-Type</span></code> in registry.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128647">gh-128647</a>: Eagerly write to buffers passed to <a class="reference internal" href="../library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">gzip.GzipFile</span></code></a>’s
<a class="reference internal" href="../library/io.html#io.BufferedIOBase.readinto" title="io.BufferedIOBase.readinto"><code class="xref py py-meth docutils literal notranslate"><span class="pre">readinto()</span></code></a> and
<a class="reference internal" href="../library/io.html#io.BufferedIOBase.readinto1" title="io.BufferedIOBase.readinto1"><code class="xref py py-meth docutils literal notranslate"><span class="pre">readinto1()</span></code></a> implementations, avoiding unnecessary
allocations. Patch by Chris Markiewicz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128184">gh-128184</a>: Improve display of <a class="reference internal" href="../library/annotationlib.html#annotationlib.ForwardRef" title="annotationlib.ForwardRef"><code class="xref py py-class docutils literal notranslate"><span class="pre">annotationlib.ForwardRef</span></code></a> object
within <a class="reference internal" href="../library/inspect.html#inspect.Signature" title="inspect.Signature"><code class="xref py py-class docutils literal notranslate"><span class="pre">inspect.Signature</span></code></a> representations. This also fixes a
<a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> that was raised when using <a class="reference internal" href="../library/dataclasses.html#dataclasses.dataclass" title="dataclasses.dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.dataclass()</span></code></a>
on classes with unresolvable forward references.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128041">gh-128041</a>: Add
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor.terminate_workers" title="concurrent.futures.ProcessPoolExecutor.terminate_workers"><code class="xref py py-meth docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor.terminate_workers()</span></code></a> and
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor.kill_workers" title="concurrent.futures.ProcessPoolExecutor.kill_workers"><code class="xref py py-meth docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor.kill_workers()</span></code></a> as ways to
terminate or kill all living worker processes in the given pool.
(Contributed by Charles Machalow in <a class="reference external" href="https://github.com/python/cpython/issues/130849">gh-130849</a>.)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127647">gh-127647</a>: Add protocols <a class="reference internal" href="../library/io.html#io.Reader" title="io.Reader"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.Reader</span></code></a> and <a class="reference internal" href="../library/io.html#io.Writer" title="io.Writer"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.Writer</span></code></a> as
alternatives to <a class="reference internal" href="../library/typing.html#typing.IO" title="typing.IO"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.IO</span></code></a>, <a class="reference internal" href="../library/typing.html#typing.TextIO" title="typing.TextIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TextIO</span></code></a>, and
<a class="reference internal" href="../library/typing.html#typing.BinaryIO" title="typing.BinaryIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.BinaryIO</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109798">gh-109798</a>: Added additional information into error messages in
<a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a>, and made the messages more consistent between the C and
Python implementations. Patch by Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125746">gh-125746</a>: Delay deprecated <a class="reference internal" href="../library/zipimport.html#zipimport.zipimporter.load_module" title="zipimport.zipimporter.load_module"><code class="xref py py-meth docutils literal notranslate"><span class="pre">zipimport.zipimporter.load_module()</span></code></a>
removal time to 3.15. Use <a class="reference internal" href="../library/zipimport.html#zipimport.zipimporter.exec_module" title="zipimport.zipimporter.exec_module"><code class="xref py py-meth docutils literal notranslate"><span class="pre">zipimport.zipimporter.exec_module()</span></code></a>
instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74028">gh-74028</a>: Add the optional <code class="docutils literal notranslate"><span class="pre">buffersize</span></code> parameter to
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.Executor.map" title="concurrent.futures.Executor.map"><code class="xref py py-meth docutils literal notranslate"><span class="pre">concurrent.futures.Executor.map()</span></code></a> to limit the number of submitted
tasks whose results have not yet been yielded. If the buffer is full,
iteration over the <em>iterables</em> pauses until a result is yielded from the
buffer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124927">gh-124927</a>: Non-printing characters are now properly handled in the new
REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124096">gh-124096</a>: Turn on virtual terminal mode and enable bracketed paste in
REPL on Windows console. (If the terminal does not support bracketed
paste, enabling it does nothing.)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89083">gh-89083</a>: Add <a class="reference internal" href="../library/uuid.html#uuid.uuid7" title="uuid.uuid7"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid.uuid7()</span></code></a> for generating UUIDv7 objects as
specified in <span class="target" id="index-26"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9562.html"><strong>RFC 9562</strong></a>. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89083">gh-89083</a>: Add <a class="reference internal" href="../library/uuid.html#uuid.uuid6" title="uuid.uuid6"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid.uuid6()</span></code></a> for generating UUIDv6 objects as
specified in <span class="target" id="index-27"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9562.html"><strong>RFC 9562</strong></a>. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117151">gh-117151</a>: Increase <code class="docutils literal notranslate"><span class="pre">io.DEFAULT_BUFFER_SIZE</span></code> from 8k to 128k and adjust
<a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a> on platforms where <a class="reference internal" href="../library/os.html#os.fstat" title="os.fstat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">os.fstat()</span></code></a> provides a <code class="docutils literal notranslate"><span class="pre">st_blksize</span></code>
field (such as Linux) to use <code class="docutils literal notranslate"><span class="pre">max(min(blocksize,</span> <span class="pre">8</span> <span class="pre">MiB),</span>
<span class="pre">io.DEFAULT_BUFFER_SIZE)</span></code> rather than always using the device block size.
This should improve I/O performance. Patch by Romain Morotti.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105499">gh-105499</a>: Make <a class="reference internal" href="../library/types.html#types.UnionType" title="types.UnionType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.UnionType</span></code></a> an alias for
<a class="reference internal" href="../library/typing.html#typing.Union" title="typing.Union"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Union</span></code></a>. Both <code class="docutils literal notranslate"><span class="pre">int</span> <span class="pre">|</span> <span class="pre">str</span></code> and <code class="docutils literal notranslate"><span class="pre">Union[int,</span> <span class="pre">str]</span></code> now
create instances of the same type. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93096">gh-93096</a>: Document the command-line for <a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a>. It now exits
with <code class="docutils literal notranslate"><span class="pre">1</span></code> on failure instead of <code class="docutils literal notranslate"><span class="pre">0</span></code> and <code class="docutils literal notranslate"><span class="pre">2</span></code> on incorrect command-line
parameters instead of <code class="docutils literal notranslate"><span class="pre">1</span></code>. Also, errors are printed to stderr instead of
stdout and their text is made tighter. Patch by Oleg Iarygin and Hugo van
Kemenade.</p></li>
</ul>
</section>
<section id="id64">
<h3>Documentation<a class="headerlink" href="#id64" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125722">gh-125722</a>: Require Sphinx 8.2.0 or later to build the Python
documentation. Patch by Adam Turner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129712">gh-129712</a>: The wheel tags supported by each macOS universal SDK option are
now documented.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/46236">gh-46236</a>: C API: Document <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_RSplit" title="PyUnicode_RSplit"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_RSplit()</span></code></a>,
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_Partition" title="PyUnicode_Partition"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_Partition()</span></code></a> and <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_RPartition" title="PyUnicode_RPartition"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_RPartition()</span></code></a>.</p></li>
</ul>
</section>
<section id="id65">
<h3>Core and Builtins<a class="headerlink" href="#id65" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131141">gh-131141</a>: Fix data race in <a class="reference internal" href="../library/sys.monitoring.html#module-sys.monitoring" title="sys.monitoring: Access and control event monitoring"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.monitoring</span></code></a> instrumentation while
registering callback.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130804">gh-130804</a>: Fix support of unicode characters on Windows in the new REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130932">gh-130932</a>: Fix incorrect exception handling in
<code class="docutils literal notranslate"><span class="pre">_PyModule_IsPossiblyShadowing</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122029">gh-122029</a>: <a class="reference internal" href="../library/sys.html#sys.setprofile" title="sys.setprofile"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.setprofile()</span></code></a> and <a class="reference internal" href="../library/sys.html#sys.settrace" title="sys.settrace"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.settrace()</span></code></a> will not
generate a <code class="docutils literal notranslate"><span class="pre">c_call</span></code> event for <code class="docutils literal notranslate"><span class="pre">INSTRUMENTED_CALL_FUNCTION_EX</span></code> if the
callable is a method with a C function wrapped, because we do not generate
<code class="docutils literal notranslate"><span class="pre">c_return</span></code> event in such case.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129964">gh-129964</a>: Fix JIT crash on Windows on Arm. Patch by Diego Russo and
Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130851">gh-130851</a>: Fix a crash in the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threading</span></a> build when
constructing a <a class="reference internal" href="../library/code.html#module-code" title="code: Facilities to implement read-eval-print loops."><code class="xref py py-class docutils literal notranslate"><span class="pre">code</span></code></a> object with <a class="reference internal" href="../reference/datamodel.html#codeobject.co_consts" title="codeobject.co_consts"><code class="xref py py-attr docutils literal notranslate"><span class="pre">co_consts</span></code></a>
that contains instances of types that are not otherwise generated by the
bytecode compiler.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128534">gh-128534</a>: Ensure that both left and right branches have the same source
for <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">for</span></code> loops. Add these branches to the <code class="docutils literal notranslate"><span class="pre">co_branches()</span></code>
iterator.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130794">gh-130794</a>: Fix memory leak in the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a>
build when resizing a shared list or dictionary from multiple short-lived
threads.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130415">gh-130415</a>: Improve JIT understanding of integers in boolean context.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130382">gh-130382</a>: Fix <code class="docutils literal notranslate"><span class="pre">PyRefTracer_DESTROY</span></code> not being sent from
<code class="file docutils literal notranslate"><span class="pre">Python/ceval.c</span></code> <code class="docutils literal notranslate"><span class="pre">Py_DECREF()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130574">gh-130574</a>: Renumber <a class="reference internal" href="../library/dis.html#opcode-RESUME"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">RESUME</span></code></a> from 149 to 128.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124878">gh-124878</a>: Fix race conditions during runtime finalization that could lead
to accessing freed memory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130415">gh-130415</a>: Improve the experimental JIT’s ability to narrow boolean values
based on the results of truthiness tests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130618">gh-130618</a>: Fix a bug that was causing <code class="docutils literal notranslate"><span class="pre">UnicodeDecodeError</span></code> or
<code class="docutils literal notranslate"><span class="pre">SystemError</span></code> to be raised when using f-strings with <code class="docutils literal notranslate"><span class="pre">lambda</span></code>
expressions with non-ASCII characters. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123044">gh-123044</a>: Make sure that the location of branch targets in <code class="docutils literal notranslate"><span class="pre">match</span></code>
cases is in the body, not the pattern.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128534">gh-128534</a>: Add branch monitoring (<code class="docutils literal notranslate"><span class="pre">BRANCH_LEFT</span></code> and <code class="docutils literal notranslate"><span class="pre">BRANCH_RIGHT</span></code>
events) for <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">for</span></code> loops.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130163">gh-130163</a>: Fix possible crashes related to concurrent change and use of
the <a class="reference internal" href="../library/sys.html#module-sys" title="sys: Access system-specific parameters and functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sys</span></code></a> module attributes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122029">gh-122029</a>: <code class="docutils literal notranslate"><span class="pre">INSTRUMENTED_CALL_KW</span></code> will expand the method before
monitoring to reflect the actual behavior more accurately.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130415">gh-130415</a>: Improve JIT’s ability to optimize strings in boolean contexts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130396">gh-130396</a>: Use actual stack limits (from
<em class="manpage"><a class="manpage reference external" href="https://manpages.debian.org/pthread_getattr_np(3)">pthread_getattr_np(3)</a></em>) for linux, and other systems with
<code class="docutils literal notranslate"><span class="pre">_GNU_SOURCE</span></code> defined, when determining limits for C stack protection.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128396">gh-128396</a>: Fix a crash that occurs when calling <a class="reference internal" href="../library/functions.html#locals" title="locals"><code class="xref py py-func docutils literal notranslate"><span class="pre">locals()</span></code></a> inside an
inline comprehension that uses the same local variable as the outer frame
scope where the variable is a free or cell var.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129107">gh-129107</a>: Fix two more <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> functions for <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free
threading</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127705">gh-127705</a>: Use tagged references (<code class="docutils literal notranslate"><span class="pre">_PyStackRef</span></code>) for the default build
as well as for the free-threading build. This has a small negative
performance impact short-term but will enable larger speedups in the
future and significantly reduce maintenance costs by allowing a single
implementation of tagged references in the future.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130094">gh-130094</a>: Fix two race conditions involving concurrent imports that could
lead to spurious failures with <a class="reference internal" href="../library/exceptions.html#ModuleNotFoundError" title="ModuleNotFoundError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ModuleNotFoundError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129107">gh-129107</a>: Make <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> iterator safe under <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free
threading</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115802">gh-115802</a>: Use the more efficient “medium” code model for JIT-compiled
code on supported platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107956">gh-107956</a>: A <code class="docutils literal notranslate"><span class="pre">build-details.json</span></code> file is now install in the
platform-independent standard library directory (<span class="target" id="index-28"></span><a class="pep reference external" href="https://peps.python.org/pep-0739/"><strong>PEP 739</strong></a>
implementation).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116042">gh-116042</a>: Fix location for SyntaxErrors of invalid escapes in the
tokenizer. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91079">gh-91079</a>: Change C stack overflow protection to consider the amount of
stack consumed, rather than a counter. This allows deeper recursion in
many cases, but remains safe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129715">gh-129715</a>: Improve the experimental JIT’s handling of returns to unknown
callers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129983">gh-129983</a>: Fix data race in compile_template in <code class="file docutils literal notranslate"><span class="pre">sre.c</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129967">gh-129967</a>: Fix a race condition in the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threading</span></a> build when
<code class="docutils literal notranslate"><span class="pre">repr(set)</span></code> is called concurrently with <code class="docutils literal notranslate"><span class="pre">set.clear()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129953">gh-129953</a>: The internal (evaluation) stack is now spilled to memory
whenever execution escapes from the interpreter or JIT compiled code. This
should have no observable effect in either Python or builtin extensions,
but will allow various important optimizations in the future.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129515">gh-129515</a>: Clarify syntax error messages for conditional expressions when
a statement is specified before an <a class="reference internal" href="../reference/compound_stmts.html#if"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">if</span></code></a> or after an
<a class="reference internal" href="../reference/compound_stmts.html#else"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">else</span></code></a> keyword.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129349">gh-129349</a>: <a class="reference internal" href="../library/stdtypes.html#bytes.fromhex" title="bytes.fromhex"><code class="xref py py-meth docutils literal notranslate"><span class="pre">bytes.fromhex()</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytearray.fromhex" title="bytearray.fromhex"><code class="xref py py-meth docutils literal notranslate"><span class="pre">bytearray.fromhex()</span></code></a> now accepts
ASCII <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> and <a class="reference internal" href="../glossary.html#term-bytes-like-object"><span class="xref std std-term">bytes-like objects</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129149">gh-129149</a>: Add fast path for medium-size integers in
<a class="reference internal" href="../c-api/long.html#c.PyLong_FromSsize_t" title="PyLong_FromSsize_t"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromSsize_t()</span></code></a>. Patch by Chris Eibl.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129107">gh-129107</a>: Make the <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-type docutils literal notranslate"><span class="pre">bytearray</span></code></a> safe under <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threading</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128974">gh-128974</a>: Fix a crash in <a class="reference internal" href="../reference/datamodel.html#object.__str__" title="object.__str__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">UnicodeError.__str__</span></code></a>
when custom attributes implement <a class="reference internal" href="../reference/datamodel.html#object.__str__" title="object.__str__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__str__()</span></code></a> with
side-effects. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126085">gh-126085</a>: <a class="reference internal" href="../library/typing.html#typing.TypeAliasType" title="typing.TypeAliasType"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeAliasType</span></code></a> now supports star unpacking.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125331">gh-125331</a>: <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">barry_as_FLUFL</span></code> now works in more
contexts, including when it is used in files, with the <code class="docutils literal notranslate"><span class="pre">-c</span></code> flag, and in
the REPL when there are multiple statements on the same line. Previously,
it worked only on subsequent lines in the REPL, and when the appropriate
flags were passed directly to <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a>. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121464">gh-121464</a>: Make concurrent iterations over the same <a class="reference internal" href="../library/functions.html#enumerate" title="enumerate"><code class="xref py py-func docutils literal notranslate"><span class="pre">enumerate()</span></code></a>
iterator safe under free-threading. See <a class="reference external" href="https://github.com/python/cpython/issues/124397">Strategy for Iterators in Free
Threading</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87790">gh-87790</a>: Support underscore and comma as thousands separators in the
fractional part for floating-point presentation types of the new-style
string formatting (with <a class="reference internal" href="../library/functions.html#format" title="format"><code class="xref py py-func docutils literal notranslate"><span class="pre">format()</span></code></a> or <a class="reference internal" href="../reference/lexical_analysis.html#f-strings"><span class="std std-ref">f-strings</span></a>). Patch by
Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124445">gh-124445</a>: Fix specialization of generic aliases that are generic over a
<a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ParamSpec</span></code></a> and have been specialized with a nested type
variable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120608">gh-120608</a>: Adapt <a class="reference internal" href="../library/functions.html#reversed" title="reversed"><code class="xref py py-func docutils literal notranslate"><span class="pre">reversed()</span></code></a> for use in the free-threading build. The
<a class="reference internal" href="../library/functions.html#reversed" title="reversed"><code class="xref py py-func docutils literal notranslate"><span class="pre">reversed()</span></code></a> is still not thread-safe in the sense that concurrent
iterations may see the same object, but they will not corrupt the
interpreter state.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100388">gh-100388</a>: Fix the <code class="docutils literal notranslate"><span class="pre">platform._sys_version()</span></code> method when <code class="docutils literal notranslate"><span class="pre">__DATE__</span></code> is
undefined at buildtime by changing default buildtime datetime string to
the UNIX epoch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44369">bpo-44369</a>: Improve syntax errors for incorrectly closed strings. Patch by
Pablo Galindo</p></li>
</ul>
</section>
<section id="id66">
<h3>C API<a class="headerlink" href="#id66" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111178">gh-111178</a>: Fix <a class="reference internal" href="../c-api/structures.html#c.PyCMethod" title="PyCMethod"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyCMethod</span></code></a> API: replace <code class="docutils literal notranslate"><span class="pre">size_t</span> <span class="pre">nargs</span></code> with
<code class="docutils literal notranslate"><span class="pre">Py_ssize_t</span> <span class="pre">nargs</span></code> in <a class="reference internal" href="../c-api/structures.html#c.PyCMethod" title="PyCMethod"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyCMethod</span></code></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130947">gh-130947</a>: Add again <a class="reference internal" href="../c-api/sequence.html#c.PySequence_Fast" title="PySequence_Fast"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySequence_Fast()</span></code></a> to the limited C API. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128863">gh-128863</a>: The following private functions are deprecated and planned for
removal in Python 3.18:</p>
<ul class="simple">
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicodeWriter_Init()</span></code>:
replace <code class="docutils literal notranslate"><span class="pre">_PyUnicodeWriter_Init(&writer)</span></code> with
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_Create" title="PyUnicodeWriter_Create"><code class="xref c c-func docutils literal notranslate"><span class="pre">writer</span> <span class="pre">=</span> <span class="pre">PyUnicodeWriter_Create(0)</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicodeWriter_Finish()</span></code>:
replace <code class="docutils literal notranslate"><span class="pre">_PyUnicodeWriter_Finish(&writer)</span></code> with
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_Finish" title="PyUnicodeWriter_Finish"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_Finish(writer)</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicodeWriter_Dealloc()</span></code>:
replace <code class="docutils literal notranslate"><span class="pre">_PyUnicodeWriter_Dealloc(&writer)</span></code> with
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_Discard" title="PyUnicodeWriter_Discard"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_Discard(writer)</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicodeWriter_WriteChar()</span></code>:
replace <code class="docutils literal notranslate"><span class="pre">_PyUnicodeWriter_WriteChar(&writer,</span> <span class="pre">ch)</span></code> with
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteChar" title="PyUnicodeWriter_WriteChar"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteChar(writer,</span> <span class="pre">ch)</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicodeWriter_WriteStr()</span></code>:
replace <code class="docutils literal notranslate"><span class="pre">_PyUnicodeWriter_WriteStr(&writer,</span> <span class="pre">str)</span></code> with
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteStr" title="PyUnicodeWriter_WriteStr"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteStr(writer,</span> <span class="pre">str)</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicodeWriter_WriteSubstring()</span></code>:
replace <code class="docutils literal notranslate"><span class="pre">_PyUnicodeWriter_WriteSubstring(&writer,</span> <span class="pre">str,</span> <span class="pre">start,</span> <span class="pre">end)</span></code> with
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteSubstring" title="PyUnicodeWriter_WriteSubstring"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteSubstring(writer,</span> <span class="pre">str,</span> <span class="pre">start,</span> <span class="pre">end)</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicodeWriter_WriteASCIIString()</span></code>:
replace <code class="docutils literal notranslate"><span class="pre">_PyUnicodeWriter_WriteASCIIString(&writer,</span> <span class="pre">str)</span></code> with
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteUTF8" title="PyUnicodeWriter_WriteUTF8"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteUTF8(writer,</span> <span class="pre">str)</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicodeWriter_WriteLatin1String()</span></code>:
replace <code class="docutils literal notranslate"><span class="pre">_PyUnicodeWriter_WriteLatin1String(&writer,</span> <span class="pre">str)</span></code> with
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteUTF8" title="PyUnicodeWriter_WriteUTF8"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteUTF8(writer,</span> <span class="pre">str)</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicodeWriter_Prepare()</span></code>: (no replacement).</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicodeWriter_PrepareKind()</span></code>: (no replacement).</p></li>
</ul>
<p>The <a class="reference external" href="https://github.com/python/pythoncapi-compat/">pythoncapi-compat project</a> can be used to get these
new public functions on Python 3.13 and older.</p>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/45325">gh-45325</a>: Add a new <code class="docutils literal notranslate"><span class="pre">p</span></code> format parameter to <a class="reference internal" href="../c-api/arg.html#c.Py_BuildValue" title="Py_BuildValue"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_BuildValue()</span></code></a> that
allows to take a C integer and produce a Python <a class="reference internal" href="../library/functions.html#bool" title="bool"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a> object.
Patch by Pablo Galindo.</p></li>
</ul>
</section>
<section id="id67">
<h3>Build<a class="headerlink" href="#id67" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/131035">gh-131035</a>: Use <code class="docutils literal notranslate"><span class="pre">-flto=thin</span></code> for faster build times using clang-cl on
Windows. Patch by Chris Eibl.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130740">gh-130740</a>: Ensure that <code class="docutils literal notranslate"><span class="pre">Python.h</span></code> is included before <code class="docutils literal notranslate"><span class="pre">stdbool.h</span></code>
unless <code class="docutils literal notranslate"><span class="pre">pyconfig.h</span></code> is included before or in some platform-specific
contexts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/130090">gh-130090</a>: Building with <code class="docutils literal notranslate"><span class="pre">PlatformToolset=ClangCL</span></code> on Windows now
supports PGO (profile guided optimization). Patch by Chris Eibl with
invaluable support from Steve Dover.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129819">gh-129819</a>: Allow building the JIT with the tailcall interpreter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129989">gh-129989</a>: Fix a bug where the tailcall interpreter was enabled when
<code class="docutils literal notranslate"><span class="pre">--without-tail-call-interp</span></code> was provided to the configure script.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129838">gh-129838</a>: Don’t redefine <code class="docutils literal notranslate"><span class="pre">_Py_NO_SANITIZE_UNDEFINED</span></code> when compiling
with a recent GCC version and undefined sanitizer enabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82909">gh-82909</a>: <code class="docutils literal notranslate"><span class="pre">#pragma</span></code>-based linking with <code class="docutils literal notranslate"><span class="pre">python3*.lib</span></code> can now be
switched off with <span class="c-expr sig sig-inline c"><a class="reference internal" href="../extending/windows.html#c.Py_NO_LINK_LIB" title="Py_NO_LINK_LIB"><span class="n">Py_NO_LINK_LIB</span></a></span>. Patch by Jean-Christophe
Fillion-Robin.</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-alpha-5">
<h2>Python 3.14.0 alpha 5<a class="headerlink" href="#python-3-14-0-alpha-5" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-02-11</em></p>
<section id="id68">
<h3>macOS<a class="headerlink" href="#id68" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91132">gh-91132</a>: Update macOS installer to use ncurses 6.5.</p></li>
</ul>
</section>
<section id="id69">
<h3>Tools/Demos<a class="headerlink" href="#id69" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129248">gh-129248</a>: The iOS test runner now strips the log prefix from each line
output by the test suite.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104400">gh-104400</a>: Fix several bugs in extraction by switching to an AST parser in
<strong class="program">pygettext</strong>.</p></li>
</ul>
</section>
<section id="id70">
<h3>Tests<a class="headerlink" href="#id70" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129386">gh-129386</a>: Add <code class="docutils literal notranslate"><span class="pre">test.support.reset_code</span></code>, which can be used to reset
various bytecode-level optimizations and local instrumentation for a
function.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128474">gh-128474</a>: Disable <code class="docutils literal notranslate"><span class="pre">test_embed</span></code> test cases that segfault on BOLT
instrument binaries. The tests are only disabled when BOLT is enabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128003">gh-128003</a>: Add an option <code class="docutils literal notranslate"><span class="pre">--parallel-threads=N</span></code> to the regression test
runner that runs individual tests in multiple threads in parallel in order
to find concurrency bugs. Note that most of the test suite is not yet
reviewed for thread-safety or annotated with <code class="docutils literal notranslate"><span class="pre">@thread_unsafe</span></code> when
necessary.</p></li>
</ul>
</section>
<section id="id71">
<h3>Security<a class="headerlink" href="#id71" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105704">gh-105704</a>: When using <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlsplit" title="urllib.parse.urlsplit"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlsplit()</span></code></a> and
<a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlparse" title="urllib.parse.urlparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlparse()</span></code></a> host parsing would not reject domain names
containing square brackets (<code class="docutils literal notranslate"><span class="pre">[</span></code> and <code class="docutils literal notranslate"><span class="pre">]</span></code>). Square brackets are only
valid for IPv6 and IPvFuture hosts according to <a class="reference external" href="https://www.rfc-editor.org/rfc/rfc3986#section-3.2.2">RFC 3986 Section 3.2.2</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126108">gh-126108</a>: Fix a possible <code class="docutils literal notranslate"><span class="pre">NULL</span></code> pointer dereference in
<code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_AddWarnOptionUnicode()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/80222">gh-80222</a>: Fix bug in the folding of quoted strings when flattening an
email message using a modern email policy. Previously when a quoted string
was folded so that it spanned more than one line, the surrounding quotes
and internal escapes would be omitted. This could theoretically be used to
spoof header lines using a carefully constructed quoted string if the
resulting rendered email was transmitted or re-parsed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119511">gh-119511</a>: Fix a potential denial of service in the <a class="reference internal" href="../library/imaplib.html#module-imaplib" title="imaplib: IMAP4 protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">imaplib</span></code></a> module.
When connecting to a malicious server, it could cause an arbitrary amount
of memory to be allocated. On many systems this is harmless as unused
virtual memory is only a mapping, but if this hit a virtual address size
limit it could lead to a <a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a> or other process crash. On
unusual systems or builds where all allocated memory is touched and backed
by actual ram or storage it could’ve consumed resources doing so until
similarly crashing.</p></li>
</ul>
</section>
<section id="id72">
<h3>Library<a class="headerlink" href="#id72" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129939">gh-129939</a>: Comparison pages with highlighted changes generated by the
<a class="reference internal" href="../library/difflib.html#difflib.HtmlDiff" title="difflib.HtmlDiff"><code class="xref py py-class docutils literal notranslate"><span class="pre">difflib.HtmlDiff</span></code></a> class now support dark mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129928">gh-129928</a>: Raise <a class="reference internal" href="../library/sqlite3.html#sqlite3.ProgrammingError" title="sqlite3.ProgrammingError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">sqlite3.ProgrammingError</span></code></a> if a user-defined SQL
function with invalid number of parameters is created. Patch by Erlend
Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129583">gh-129583</a>: Update bundled pip to 25.0.1</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129766">gh-129766</a>: Fix crash in <a class="reference internal" href="../library/warnings.html#module-warnings" title="warnings: Issue warning messages and control their disposition."><code class="xref py py-mod docutils literal notranslate"><span class="pre">warnings</span></code></a>, when calling <code class="docutils literal notranslate"><span class="pre">_release_lock()</span></code>
with no existing lock.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129005">gh-129005</a>: <code class="docutils literal notranslate"><span class="pre">_pyio.FileIO.readall()</span></code> now allocates, resizes, and fills a
data buffer using the same algorithm <code class="docutils literal notranslate"><span class="pre">_io.FileIO.readall()</span></code> uses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129646">gh-129646</a>: Update the locale alias mapping in the <a class="reference internal" href="../library/locale.html#module-locale" title="locale: Internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">locale</span></code></a> module to
match the latest X Org locale alias mapping and support new locales in
Glibc 2.41.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128317">gh-128317</a>: Put CLI calendar highlighting in private class, removing
<code class="docutils literal notranslate"><span class="pre">highlight_day</span></code> from public <a class="reference internal" href="../library/calendar.html#calendar.TextCalendar" title="calendar.TextCalendar"><code class="xref py py-class docutils literal notranslate"><span class="pre">calendar.TextCalendar</span></code></a> API. Patch by
Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129603">gh-129603</a>: Fix bugs where <a class="reference internal" href="../library/sqlite3.html#sqlite3.Row" title="sqlite3.Row"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Row</span></code></a> objects could segfault if
their inherited <a class="reference internal" href="../library/sqlite3.html#sqlite3.Cursor.description" title="sqlite3.Cursor.description"><code class="xref py py-attr docutils literal notranslate"><span class="pre">description</span></code></a> was set to <code class="docutils literal notranslate"><span class="pre">None</span></code>.
Patch by Erlend Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129559">gh-129559</a>: Add <a class="reference internal" href="../library/stdtypes.html#bytearray.resize" title="bytearray.resize"><code class="xref py py-meth docutils literal notranslate"><span class="pre">bytearray.resize()</span></code></a> method so <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> can
be efficiently resized in place.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129502">gh-129502</a>: Unlikely errors in preparing arguments for <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a>
callback are now handled in the same way as errors raised in the callback
of in converting the result of the callback – using
<a class="reference internal" href="../library/sys.html#sys.unraisablehook" title="sys.unraisablehook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.unraisablehook()</span></code></a> instead of <a class="reference internal" href="../library/sys.html#sys.excepthook" title="sys.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.excepthook()</span></code></a> and not
setting <a class="reference internal" href="../library/sys.html#sys.last_exc" title="sys.last_exc"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.last_exc</span></code></a> and other variables.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129403">gh-129403</a>: Corrected <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> message for
<a class="reference internal" href="../library/asyncio-sync.html#asyncio.Barrier" title="asyncio.Barrier"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Barrier</span></code></a> and <a class="reference internal" href="../library/threading.html#threading.Barrier" title="threading.Barrier"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.Barrier</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129409">gh-129409</a>: Fix an integer overflow in the <a class="reference internal" href="../library/csv.html#module-csv" title="csv: Write and read tabular data to and from delimited files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code></a> module when writing a
data field larger than 2GB.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126400">gh-126400</a>: Add a socket <em>timeout</em> keyword argument to
<a class="reference internal" href="../library/logging.handlers.html#logging.handlers.SysLogHandler" title="logging.handlers.SysLogHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.handlers.SysLogHandler</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Always lazy import <code class="docutils literal notranslate"><span class="pre">warnings</span></code> in <a class="reference internal" href="../library/threading.html#module-threading" title="threading: Thread-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code></a>. Patch by
Taneli Hukkinen.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Improve import time of <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> by lazy importing
<code class="docutils literal notranslate"><span class="pre">locale</span></code> and <code class="docutils literal notranslate"><span class="pre">signal</span></code>. Patch by Taneli Hukkinen.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129346">gh-129346</a>: In <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>, handle out-of-memory when creating
user-defined SQL functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129005">gh-129005</a>: Optimize <code class="docutils literal notranslate"><span class="pre">_pyio.FileIO.readinto</span></code> by avoiding unnecessary
objects and copies using <a class="reference internal" href="../library/os.html#os.readinto" title="os.readinto"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.readinto()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129195">gh-129195</a>: Support reporting call graph information from
<code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.staggered.staggered_race()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129205">gh-129205</a>: Add <a class="reference internal" href="../library/os.html#os.readinto" title="os.readinto"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.readinto()</span></code></a> to read into a <a class="reference internal" href="../c-api/buffer.html#bufferobjects"><span class="std std-ref">buffer object</span></a> from a file descriptor.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128772">gh-128772</a>: Fix <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a> for methods with the <code class="docutils literal notranslate"><span class="pre">__module__</span></code> attribute
equal to <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129061">gh-129061</a>: Fix FORCE_COLOR and NO_COLOR when empty strings. Patch by Hugo
van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92897">gh-92897</a>: Scheduled the deprecation of the <code class="docutils literal notranslate"><span class="pre">check_home</span></code> argument of
<a class="reference internal" href="../library/sysconfig.html#sysconfig.is_python_build" title="sysconfig.is_python_build"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.is_python_build()</span></code></a> to Python 3.15.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129064">gh-129064</a>: Deprecate <code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.expand_makefile_vars()</span></code>, in favor of
using <a class="reference internal" href="../library/sysconfig.html#sysconfig.get_paths" title="sysconfig.get_paths"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_paths()</span></code></a> with the <code class="docutils literal notranslate"><span class="pre">vars</span></code> argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128550">gh-128550</a>: Removed an incorrect optimization relating to eager tasks in
<a class="reference internal" href="../library/asyncio-task.html#asyncio.TaskGroup" title="asyncio.TaskGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.TaskGroup</span></code></a> that resulted in cancellations being missed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128991">gh-128991</a>: Release the enter frame reference within <a class="reference internal" href="../library/bdb.html#module-bdb" title="bdb: Debugger framework."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bdb</span></code></a> callback</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Reduce import time of <a class="reference internal" href="../library/profile.html#module-pstats" title="pstats: Statistics object for use with the profiler."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pstats</span></code></a> and <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a> by up to
20%, by removing unnecessary imports to <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a>. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128978">gh-128978</a>: Fix a <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> in
<code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.expand_makefile_vars()</span></code>. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128961">gh-128961</a>: Fix a crash when setting state on an exhausted
<a class="reference internal" href="../library/array.html#array.array" title="array.array"><code class="xref py py-class docutils literal notranslate"><span class="pre">array.array</span></code></a> iterator.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128894">gh-128894</a>: Fix <code class="docutils literal notranslate"><span class="pre">traceback.TracebackException._format_syntax_error</span></code> not
to fail on exceptions with custom metadata.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128916">gh-128916</a>: Do not attempt to set <code class="docutils literal notranslate"><span class="pre">SO_REUSEPORT</span></code> on sockets of address
families other than <code class="docutils literal notranslate"><span class="pre">AF_INET</span></code> and <code class="docutils literal notranslate"><span class="pre">AF_INET6</span></code>, as it is meaningless
with these address families, and the call with fail with Linux kernel
6.12.9 and newer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Improve import time of <a class="reference internal" href="../library/tomllib.html#module-tomllib" title="tomllib: Parse TOML files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tomllib</span></code></a> by removing <code class="docutils literal notranslate"><span class="pre">typing</span></code>,
<code class="docutils literal notranslate"><span class="pre">string</span></code>, and <code class="docutils literal notranslate"><span class="pre">tomllib._types</span></code> imports. Patch by Taneli Hukkinen.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128679">gh-128679</a>: <a class="reference internal" href="../library/tracemalloc.html#module-tracemalloc" title="tracemalloc: Trace memory allocations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tracemalloc</span></code></a>: Fix race conditions when
<a class="reference internal" href="../library/tracemalloc.html#tracemalloc.stop" title="tracemalloc.stop"><code class="xref py py-func docutils literal notranslate"><span class="pre">tracemalloc.stop()</span></code></a> is called by a thread, while other threads are
tracing memory allocations. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128891">gh-128891</a>: Add specialized opcodes to <code class="docutils literal notranslate"><span class="pre">opcode.opname</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Reduce import time of <a class="reference internal" href="../library/gettext.html#module-gettext" title="gettext: Multilingual internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gettext</span></code></a> by up to ten times, by
importing <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> on demand. In particular, <code class="docutils literal notranslate"><span class="pre">re</span></code> is no longer
implicitly exposed as <code class="docutils literal notranslate"><span class="pre">gettext.re</span></code>. Patch by Eli Schwartz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Reduce the import time of <a class="reference internal" href="../library/optparse.html#module-optparse" title="optparse: Command-line option parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">optparse</span></code></a> when no help text is
printed. Patch by Eli Schwartz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128657">gh-128657</a>: Fix possible extra reference when using objects returned by
<a class="reference internal" href="../library/hashlib.html#hashlib.sha256" title="hashlib.sha256"><code class="xref py py-func docutils literal notranslate"><span class="pre">hashlib.sha256()</span></code></a> under <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threading</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Reduce the import time of <a class="reference internal" href="../library/csv.html#module-csv" title="csv: Write and read tabular data to and from delimited files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code></a> by up to five times, by
importing <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> on demand. In particular, <code class="docutils literal notranslate"><span class="pre">re</span></code> is no more implicitly
exposed as <code class="docutils literal notranslate"><span class="pre">csv.re</span></code>. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128308">gh-128308</a>: Support the <em>name</em> keyword argument for eager tasks in
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.create_task" title="asyncio.loop.create_task"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.loop.create_task()</span></code></a>, <a class="reference internal" href="../library/asyncio-task.html#asyncio.create_task" title="asyncio.create_task"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.create_task()</span></code></a> and
<a class="reference internal" href="../library/asyncio-task.html#asyncio.TaskGroup.create_task" title="asyncio.TaskGroup.create_task"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.TaskGroup.create_task()</span></code></a>, by passing on all <em>kwargs</em> to the
task factory set by <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.set_task_factory" title="asyncio.loop.set_task_factory"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.loop.set_task_factory()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Improve the performance of <a class="reference internal" href="../library/base64.html#base64.b16decode" title="base64.b16decode"><code class="xref py py-func docutils literal notranslate"><span class="pre">base64.b16decode()</span></code></a> by up to
ten times by more efficiently checking the byte-string for hexadecimal
digits. Reduce the import time of <a class="reference internal" href="../library/base64.html#module-base64" title="base64: RFC 4648: Base16, Base32, Base64 Data Encodings; Base85 and Ascii85"><code class="xref py py-mod docutils literal notranslate"><span class="pre">base64</span></code></a> by up to six times, by no
longer importing <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a>. Patch by Bénédikt Tran, Chris Markiewicz, and
Adam Turner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128156">gh-128156</a>: When using macOS system <code class="docutils literal notranslate"><span class="pre">libffi</span></code>, support for complex types
in <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> is now checked at runtime (macOS 10.15 or newer). The
types must also be available at build time.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128636">gh-128636</a>: Fix PyREPL failure when <a class="reference internal" href="../library/os.html#os.environ" title="os.environ"><code class="xref py py-data docutils literal notranslate"><span class="pre">os.environ</span></code></a> is overwritten with
an invalid value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128498">gh-128498</a>: Default to stdout isatty for color detection instead of stderr.
Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128384">gh-128384</a>: Add locking to <a class="reference internal" href="../library/warnings.html#module-warnings" title="warnings: Issue warning messages and control their disposition."><code class="xref py py-mod docutils literal notranslate"><span class="pre">warnings</span></code></a> to avoid some data races when
free-threading is used. Change <code class="docutils literal notranslate"><span class="pre">_warnings_runtime_state.mutex</span></code> to be a
recursive mutex and expose it to <a class="reference internal" href="../library/warnings.html#module-warnings" title="warnings: Issue warning messages and control their disposition."><code class="xref py py-mod docutils literal notranslate"><span class="pre">warnings</span></code></a>, via the
<code class="xref py py-func docutils literal notranslate"><span class="pre">_acquire_lock()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">_release_lock()</span></code> functions. The lock is
held when <code class="docutils literal notranslate"><span class="pre">filters</span></code> and <code class="docutils literal notranslate"><span class="pre">_filters_version</span></code> are updated.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128509">gh-128509</a>: Add <a class="reference internal" href="../library/sys.html#sys._is_immortal" title="sys._is_immortal"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._is_immortal()</span></code></a> for identifying <a class="reference internal" href="../glossary.html#term-immortal"><span class="xref std std-term">immortal</span></a>
objects at runtime.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128479">gh-128479</a>: Fix <code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.staggered.staggered_race()</span></code> leaking tasks and
issuing an unhandled exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128427">gh-128427</a>: <a class="reference internal" href="../library/uuid.html#uuid.NIL" title="uuid.NIL"><code class="xref py py-const docutils literal notranslate"><span class="pre">uuid.NIL</span></code></a> and <a class="reference internal" href="../library/uuid.html#uuid.MAX" title="uuid.MAX"><code class="xref py py-const docutils literal notranslate"><span class="pre">uuid.MAX</span></code></a> are now available to
represent the Nil and Max UUID formats as defined by <span class="target" id="index-29"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9562.html"><strong>RFC 9562</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91279">gh-91279</a>: <a class="reference internal" href="../library/zipfile.html#zipfile.ZipFile.writestr" title="zipfile.ZipFile.writestr"><code class="xref py py-meth docutils literal notranslate"><span class="pre">zipfile.ZipFile.writestr()</span></code></a> now respect
<code class="docutils literal notranslate"><span class="pre">SOURCE_DATE_EPOCH</span></code> that distributions can set centrally and have build
tools consume this in order to produce reproducible output.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112064">gh-112064</a>: Fix incorrect handling of negative read sizes in
<a class="reference internal" href="../library/http.client.html#http.client.HTTPResponse.read" title="http.client.HTTPResponse.read"><code class="xref py py-meth docutils literal notranslate"><span class="pre">HTTPResponse.read</span></code></a>. Patch by Yury
Manushkin.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/58956">gh-58956</a>: Fixed a frame reference leak in <a class="reference internal" href="../library/bdb.html#module-bdb" title="bdb: Debugger framework."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bdb</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128131">gh-128131</a>: Completely support random access of uncompressed unencrypted
read-only zip files obtained by <a class="reference internal" href="../library/zipfile.html#zipfile.ZipFile.open" title="zipfile.ZipFile.open"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ZipFile.open</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127975">gh-127975</a>: Avoid reusing quote types in <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> if not needed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115514">gh-115514</a>: Fix exceptions and incomplete writes after
<code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio._SelectorTransport</span></code> is closed before writes are
completed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121604">gh-121604</a>: Add missing Deprecation warnings for
<a class="reference internal" href="../library/importlib.html#importlib.machinery.DEBUG_BYTECODE_SUFFIXES" title="importlib.machinery.DEBUG_BYTECODE_SUFFIXES"><code class="xref py py-const docutils literal notranslate"><span class="pre">importlib.machinery.DEBUG_BYTECODE_SUFFIXES</span></code></a>,
<a class="reference internal" href="../library/importlib.html#importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES" title="importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES"><code class="xref py py-const docutils literal notranslate"><span class="pre">importlib.machinery.OPTIMIZED_BYTECODE_SUFFIXES</span></code></a>,
<a class="reference internal" href="../library/importlib.html#importlib.machinery.WindowsRegistryFinder" title="importlib.machinery.WindowsRegistryFinder"><code class="xref py py-class docutils literal notranslate"><span class="pre">importlib.machinery.WindowsRegistryFinder</span></code></a>,
<a class="reference internal" href="../library/importlib.html#importlib.abc.ResourceLoader" title="importlib.abc.ResourceLoader"><code class="xref py py-class docutils literal notranslate"><span class="pre">importlib.abc.ResourceLoader</span></code></a>,
<a class="reference internal" href="../library/importlib.html#importlib.abc.SourceLoader.path_mtime" title="importlib.abc.SourceLoader.path_mtime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">importlib.abc.SourceLoader.path_mtime()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127873">gh-127873</a>: When <code class="docutils literal notranslate"><span class="pre">-E</span></code> is set, only ignore <code class="docutils literal notranslate"><span class="pre">PYTHON_COLORS</span></code> and not
<code class="docutils literal notranslate"><span class="pre">FORCE_COLOR</span></code>/<code class="docutils literal notranslate"><span class="pre">NO_COLOR</span></code>/<code class="docutils literal notranslate"><span class="pre">TERM</span></code> when colourising output. Patch by
Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125413">gh-125413</a>: Add <a class="reference internal" href="../library/pathlib.html#pathlib.Path.info" title="pathlib.Path.info"><code class="xref py py-attr docutils literal notranslate"><span class="pre">pathlib.Path.info</span></code></a> attribute, which stores an object
implementing the <a class="reference internal" href="../library/pathlib.html#pathlib.types.PathInfo" title="pathlib.types.PathInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.types.PathInfo</span></code></a> protocol (also new). The
object supports querying the file type and internally caching
<a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">stat()</span></code></a> results. Path objects generated by
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.iterdir" title="pathlib.Path.iterdir"><code class="xref py py-meth docutils literal notranslate"><span class="pre">iterdir()</span></code></a> are initialized with file type information
gleaned from scanning the parent directory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127712">gh-127712</a>: Fix handling of the <code class="docutils literal notranslate"><span class="pre">secure</span></code> argument of
<a class="reference internal" href="../library/logging.handlers.html#logging.handlers.SMTPHandler" title="logging.handlers.SMTPHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.handlers.SMTPHandler</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127096">gh-127096</a>: Do not recreate unnamed section on every read in
<a class="reference internal" href="../library/configparser.html#configparser.ConfigParser" title="configparser.ConfigParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">configparser.ConfigParser</span></code></a>. Patch by Andrey Efremov.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124369">gh-124369</a>: Deprecate <code class="docutils literal notranslate"><span class="pre">pdb.Pdb.curframe_locals</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126332">gh-126332</a>: Fix _pyrepl crash when entering a double CTRL-Z on an
overflowing line.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125553">gh-125553</a>: Fix round-trip invariance for backslash continuations in
<a class="reference internal" href="../library/tokenize.html#tokenize.untokenize" title="tokenize.untokenize"><code class="xref py py-func docutils literal notranslate"><span class="pre">tokenize.untokenize()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91048">gh-91048</a>: Add <a class="reference internal" href="../library/asyncio-graph.html#asyncio.capture_call_graph" title="asyncio.capture_call_graph"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.capture_call_graph()</span></code></a> and
<a class="reference internal" href="../library/asyncio-graph.html#asyncio.print_call_graph" title="asyncio.print_call_graph"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.print_call_graph()</span></code></a> functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124703">gh-124703</a>: Quitting <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> in <code class="docutils literal notranslate"><span class="pre">inline</span></code> mode will emit a confirmation
prompt and exit gracefully now, instead of printing an exception
traceback.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123987">gh-123987</a>: Fixed issue in NamespaceReader where a non-path item in a
namespace path, such as a sentinel added by an editable installer, would
break resource loading.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119349">gh-119349</a>: Add the <a class="reference internal" href="../library/ctypes.html#ctypes.util.dllist" title="ctypes.util.dllist"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.util.dllist()</span></code></a> function to list the loaded
shared libraries for the current process.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/55454">gh-55454</a>: Add IMAP4 <code class="docutils literal notranslate"><span class="pre">IDLE</span></code> support to the <a class="reference internal" href="../library/imaplib.html#module-imaplib" title="imaplib: IMAP4 protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">imaplib</span></code></a> module. Patch
by Forest.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119257">gh-119257</a>: Show tab completions menu below the current line, which results
in less janky behaviour, and fixes a cursor movement bug. Patch by Daniel
Hollas</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101410">gh-101410</a>: Support custom messages for domain errors in the <a class="reference internal" href="../library/math.html#module-math" title="math: Mathematical functions (sin() etc.)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code></a>
module (<a class="reference internal" href="../library/math.html#math.sqrt" title="math.sqrt"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.sqrt()</span></code></a>, <a class="reference internal" href="../library/math.html#math.log" title="math.log"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.log()</span></code></a> and <a class="reference internal" href="../library/math.html#math.atanh" title="math.atanh"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.atanh()</span></code></a> were
modified as examples). Patch by Charlie Zhao and Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81340">gh-81340</a>: Use <a class="reference internal" href="../library/os.html#os.copy_file_range" title="os.copy_file_range"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.copy_file_range()</span></code></a> in <a class="reference internal" href="../library/shutil.html#shutil.copy" title="shutil.copy"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copy()</span></code></a>,
<a class="reference internal" href="../library/shutil.html#shutil.copy2" title="shutil.copy2"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copy2()</span></code></a>, and <a class="reference internal" href="../library/shutil.html#shutil.copyfile" title="shutil.copyfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copyfile()</span></code></a> functions by default. An
underlying Linux system call gives filesystems an opportunity to implement
the use of copy-on-write (in case of btrfs and XFS) or server-side copy
(in the case of NFS.) Patch by Illia Volochii.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27307">bpo-27307</a>: Add attribute and item access support to
<a class="reference internal" href="../library/string.html#string.Formatter" title="string.Formatter"><code class="xref py py-class docutils literal notranslate"><span class="pre">string.Formatter</span></code></a> in auto-numbering mode, which allows format
strings like ‘{.name}’ and ‘{[1]}’.</p></li>
</ul>
</section>
<section id="id73">
<h3>IDLE<a class="headerlink" href="#id73" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129873">gh-129873</a>: Simplify displaying the IDLE doc by only copying the text
section of idle.html to idlelib/help.html. Patch by Stan Ulbrych.</p></li>
</ul>
</section>
<section id="id74">
<h3>Documentation<a class="headerlink" href="#id74" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125722">gh-125722</a>: Require Sphinx 8.1.3 or later to build the Python
documentation. Patch by Adam Turner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/67206">gh-67206</a>: Document that <a class="reference internal" href="../library/string.html#string.printable" title="string.printable"><code class="xref py py-const docutils literal notranslate"><span class="pre">string.printable</span></code></a> is not printable in the
POSIX sense. In particular, <a class="reference internal" href="../library/stdtypes.html#str.isprintable" title="str.isprintable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">string.printable.isprintable()</span></code></a> returns <a class="reference internal" href="../library/constants.html#False" title="False"><code class="xref py py-const docutils literal notranslate"><span class="pre">False</span></code></a>. Patch by Bénédikt Tran.</p></li>
</ul>
</section>
<section id="id75">
<h3>Core and Builtins<a class="headerlink" href="#id75" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100239">gh-100239</a>: Replace the opcode BINARY_SUBSCR and its family by BINARY_OP
with oparg NB_SUBSCR.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129732">gh-129732</a>: Fixed a race in <code class="docutils literal notranslate"><span class="pre">_Py_qsbr_reserve</span></code> in the free threading
build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129763">gh-129763</a>: Remove the internal <code class="docutils literal notranslate"><span class="pre">LLTRACE</span></code> macro (use <a class="reference internal" href="../c-api/intro.html#c.Py_DEBUG" title="Py_DEBUG"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_DEBUG</span></code></a>
instead).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129715">gh-129715</a>: Improve JIT performance for generators.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129643">gh-129643</a>: Fix thread safety of <a class="reference internal" href="../c-api/list.html#c.PyList_Insert" title="PyList_Insert"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyList_Insert()</span></code></a> in free-threading
builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129668">gh-129668</a>: Fix race condition when raising <a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a> in the free
threaded build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129643">gh-129643</a>: Fix thread safety of <a class="reference internal" href="../c-api/list.html#c.PyList_SetItem" title="PyList_SetItem"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyList_SetItem()</span></code></a> in free-threading
builds. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128563">gh-128563</a>: Fix an issue where the “lltrace” debug feature could have been
incorrectly enabled for some frames.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129393">gh-129393</a>: On FreeBSD, <a class="reference internal" href="../library/sys.html#sys.platform" title="sys.platform"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.platform</span></code></a> doesn’t contain the major
version anymore. It is always <code class="docutils literal notranslate"><span class="pre">'freebsd'</span></code>, instead of <code class="docutils literal notranslate"><span class="pre">'freebsd13'</span></code> or
<code class="docutils literal notranslate"><span class="pre">'freebsd14'</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129345">gh-129345</a>: Fix null pointer dereference in <a class="reference internal" href="../library/syslog.html#syslog.openlog" title="syslog.openlog"><code class="xref py py-func docutils literal notranslate"><span class="pre">syslog.openlog()</span></code></a> when an
audit hook raises an exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129231">gh-129231</a>: Improve memory layout of JIT traces. Patch by Diego Russo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129149">gh-129149</a>: Add fast path for medium-size integers in
<a class="reference internal" href="../c-api/long.html#c.PyLong_FromUnsignedLong" title="PyLong_FromUnsignedLong"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromUnsignedLong()</span></code></a>, <a class="reference internal" href="../c-api/long.html#c.PyLong_FromUnsignedLongLong" title="PyLong_FromUnsignedLongLong"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromUnsignedLongLong()</span></code></a>
and <a class="reference internal" href="../c-api/long.html#c.PyLong_FromSize_t" title="PyLong_FromSize_t"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromSize_t()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129201">gh-129201</a>: The free-threaded version of the cyclic garbage collector has
been optimized to conditionally use CPU prefetch instructions during the
collection. This can reduce collection times by making it more likely
that data is in the CPU cache when it is needed. The prefetch
instructions are enabled if the number of long-lived objects (objects
surviving a full collection) exceeds a threshold.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129093">gh-129093</a>: Fix f-strings such as <code class="docutils literal notranslate"><span class="pre">f'{expr=}'</span></code> sometimes not displaying
the full expression when the expression contains <code class="docutils literal notranslate"><span class="pre">!=</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124363">gh-124363</a>: Treat debug expressions in f-string as raw strings. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128714">gh-128714</a>: Fix the potential races in get/set dunder methods
<code class="docutils literal notranslate"><span class="pre">__annotations__</span></code>, <code class="docutils literal notranslate"><span class="pre">__annotate__</span></code> and <code class="docutils literal notranslate"><span class="pre">__type_params__</span></code> for function
object, and add related tests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128799">gh-128799</a>: Add frame of <code class="docutils literal notranslate"><span class="pre">except*</span></code> to traceback when it wraps a naked
exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128842">gh-128842</a>: Collect JIT memory stats using pystats. Patch by Diego Russo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100239">gh-100239</a>: Specialize <code class="docutils literal notranslate"><span class="pre">BINARY_OP</span></code> for bitwise logical operations on
compact ints.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128910">gh-128910</a>: Undocumented and unused private C-API functions
<code class="docutils literal notranslate"><span class="pre">_PyTrash_begin</span></code> and <code class="docutils literal notranslate"><span class="pre">_PyTrash_end</span></code> are removed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128807">gh-128807</a>: Add a marking phase to the free-threaded GC. This is similar
to what was done in <a class="reference external" href="https://github.com/python/cpython/issues/126491">gh-126491</a>. Since the free-threaded GC does not have
generations and is not incremental, the marking phase looks for all
objects reachable from known roots. The roots are objects known to not be
garbage, like the module dictionary for <a class="reference internal" href="../library/sys.html#module-sys" title="sys: Access system-specific parameters and functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sys</span></code></a>. For most programs,
this marking phase should make the GC a bit faster since typically less
work is done per object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100239">gh-100239</a>: Add opcode <code class="docutils literal notranslate"><span class="pre">BINARY_OP_EXTEND</span></code> which executes a pair of
functions (guard and specialization functions) accessed from the inline
cache.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128563">gh-128563</a>: A new type of interpreter has been added to CPython. This
interpreter uses tail calls for its instruction handlers. Preliminary
benchmark results suggest 7-11% geometric mean faster on pyperformance
(depending on platform), and up to 30% faster on Python-intensive
workloads. This interpreter currently only works on newer compilers, such
as <code class="docutils literal notranslate"><span class="pre">clang-19</span></code>. Other compilers will continue using the old interpreter.
Patch by Ken Jin, with ideas on how to implement this in CPython by Mark
Shannon, Garret Gu, Haoran Xu, and Josh Haberman.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126703">gh-126703</a>: Improve performance of iterating over lists and tuples by using
a freelist for the iterator objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127953">gh-127953</a>: The time to handle a <code class="docutils literal notranslate"><span class="pre">LINE</span></code> event in sys.monitoring (and
sys.settrace) is now independent of the number of lines in the code
object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128330">gh-128330</a>: Restore terminal control characters on REPL exit.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128016">gh-128016</a>: Improved the <code class="docutils literal notranslate"><span class="pre">SyntaxWarning</span></code> message for invalid escape
sequences to clarify that such sequences will raise a <code class="docutils literal notranslate"><span class="pre">SyntaxError</span></code> in
future Python releases. The new message also suggests a potential fix,
i.e., <code class="docutils literal notranslate"><span class="pre">Did</span> <span class="pre">you</span> <span class="pre">mean</span> <span class="pre">"\\e"?</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126004">gh-126004</a>: Fix handling of <a class="reference internal" href="../library/exceptions.html#UnicodeError.start" title="UnicodeError.start"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeError.start</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#UnicodeError.end" title="UnicodeError.end"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeError.end</span></code></a> values in the <a class="reference internal" href="../library/codecs.html#codecs.replace_errors" title="codecs.replace_errors"><code class="xref py py-func docutils literal notranslate"><span class="pre">codecs.replace_errors()</span></code></a> error
handler. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126004">gh-126004</a>: Fix handling of <a class="reference internal" href="../library/exceptions.html#UnicodeError.start" title="UnicodeError.start"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeError.start</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#UnicodeError.end" title="UnicodeError.end"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeError.end</span></code></a> values in the
<a class="reference internal" href="../library/codecs.html#codecs.backslashreplace_errors" title="codecs.backslashreplace_errors"><code class="xref py py-func docutils literal notranslate"><span class="pre">codecs.backslashreplace_errors()</span></code></a> error handler. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126004">gh-126004</a>: Fix handling of <a class="reference internal" href="../library/exceptions.html#UnicodeError.start" title="UnicodeError.start"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeError.start</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#UnicodeError.end" title="UnicodeError.end"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeError.end</span></code></a> values in the
<a class="reference internal" href="../library/codecs.html#codecs.xmlcharrefreplace_errors" title="codecs.xmlcharrefreplace_errors"><code class="xref py py-func docutils literal notranslate"><span class="pre">codecs.xmlcharrefreplace_errors()</span></code></a> error handler. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127119">gh-127119</a>: Slightly optimize the <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> deallocator.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127349">gh-127349</a>: Fixed the error when resizing terminal in Python REPL. Patch by
Semyon Moroz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125723">gh-125723</a>: Fix crash with <code class="docutils literal notranslate"><span class="pre">gi_frame.f_locals</span></code> when generator frames
outlive their generator. Patch by Mikhail Efimov.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126349">gh-126349</a>: Add <a class="reference internal" href="../library/turtle.html#turtle.fill" title="turtle.fill"><code class="xref py py-func docutils literal notranslate"><span class="pre">turtle.fill()</span></code></a>, <a class="reference internal" href="../library/turtle.html#turtle.poly" title="turtle.poly"><code class="xref py py-func docutils literal notranslate"><span class="pre">turtle.poly()</span></code></a> and
<a class="reference internal" href="../library/turtle.html#turtle.no_animation" title="turtle.no_animation"><code class="xref py py-func docutils literal notranslate"><span class="pre">turtle.no_animation()</span></code></a> context managers. Patch by Marie Roald and
Yngve Mardal Moe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115911">gh-115911</a>: If the current working directory cannot be determined due to
permissions, then import will no longer raise <a class="reference internal" href="../library/exceptions.html#PermissionError" title="PermissionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PermissionError</span></code></a>.
Patch by Alex Willmer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112713">gh-112713</a>: Added support for the <code class="docutils literal notranslate"><span class="pre">Partitioned</span></code> cookie flag in
<a class="reference internal" href="../library/http.cookies.html#module-http.cookies" title="http.cookies: Support for HTTP state management (cookies)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.cookies</span></code></a>.</p></li>
</ul>
</section>
<section id="id76">
<h3>C API<a class="headerlink" href="#id76" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129533">gh-129533</a>: Update <a class="reference internal" href="../c-api/gcsupport.html#c.PyGC_Enable" title="PyGC_Enable"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGC_Enable()</span></code></a>, <a class="reference internal" href="../c-api/gcsupport.html#c.PyGC_Disable" title="PyGC_Disable"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGC_Disable()</span></code></a>,
<a class="reference internal" href="../c-api/gcsupport.html#c.PyGC_IsEnabled" title="PyGC_IsEnabled"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGC_IsEnabled()</span></code></a> to use atomic operation for thread-safety at
free-threading build. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89188">gh-89188</a>: Implement <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_KIND" title="PyUnicode_KIND"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_KIND()</span></code></a> and <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_DATA" title="PyUnicode_DATA"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_DATA()</span></code></a>
as function, in addition to the macros with the same names. The macros
rely on C bit fields which have compiler-specific layout. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91417">gh-91417</a>: Remove <a class="reference internal" href="../c-api/sequence.html#c.PySequence_Fast" title="PySequence_Fast"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySequence_Fast()</span></code></a> from the limited C API, since
this function has to be used with <a class="reference internal" href="../c-api/sequence.html#c.PySequence_Fast_GET_ITEM" title="PySequence_Fast_GET_ITEM"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PySequence_Fast_GET_ITEM</span></code></a>
which never worked in the limited C API. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128509">gh-128509</a>: Add <a class="reference internal" href="../c-api/object.html#c.PyUnstable_IsImmortal" title="PyUnstable_IsImmortal"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_IsImmortal()</span></code></a> for determining whether an
object is <a class="reference internal" href="../glossary.html#term-immortal"><span class="xref std std-term">immortal</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129033">gh-129033</a>: Remove <code class="docutils literal notranslate"><span class="pre">_PyInterpreterState_GetConfigCopy()</span></code> and
<code class="docutils literal notranslate"><span class="pre">_PyInterpreterState_SetConfig()</span></code> private functions. Use instead
<a class="reference internal" href="../c-api/init_config.html#c.PyConfig_Get" title="PyConfig_Get"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyConfig_Get()</span></code></a> and <a class="reference internal" href="../c-api/init_config.html#c.PyConfig_Set" title="PyConfig_Set"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyConfig_Set()</span></code></a>, public C API added by
<span class="target" id="index-30"></span><a class="pep reference external" href="https://peps.python.org/pep-0741/"><strong>PEP 741</strong></a> “Python Configuration C API”. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129033">gh-129033</a>: Remove the private <code class="docutils literal notranslate"><span class="pre">_Py_InitializeMain()</span></code> function. It was a
<a class="reference internal" href="../glossary.html#term-provisional-API"><span class="xref std std-term">provisional API</span></a> added to Python 3.8 by <span class="target" id="index-31"></span><a class="pep reference external" href="https://peps.python.org/pep-0587/"><strong>PEP 587</strong></a>. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128844">gh-128844</a>: Add <a class="reference internal" href="../c-api/object.html#c.PyUnstable_TryIncRef" title="PyUnstable_TryIncRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_TryIncRef()</span></code></a> and
<a class="reference internal" href="../c-api/object.html#c.PyUnstable_EnableTryIncRef" title="PyUnstable_EnableTryIncRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_EnableTryIncRef()</span></code></a> unstable APIs. These are helpers for
dealing with unowned references in a thread-safe way, particularly in the
free threading build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128911">gh-128911</a>: Add <a class="reference internal" href="../c-api/import.html#c.PyImport_ImportModuleAttr" title="PyImport_ImportModuleAttr"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModuleAttr()</span></code></a> and
<a class="reference internal" href="../c-api/import.html#c.PyImport_ImportModuleAttrString" title="PyImport_ImportModuleAttrString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModuleAttrString()</span></code></a> helper functions to import a
module and get an attribute of the module. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128863">gh-128863</a>: The following private functions are deprecated and planned for
removal in Python 3.18:</p>
<ul class="simple">
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyBytes_Join()</span></code>: use <a class="reference internal" href="../c-api/bytes.html#c.PyBytes_Join" title="PyBytes_Join"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBytes_Join()</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyDict_GetItemStringWithError()</span></code>: use <a class="reference internal" href="../c-api/dict.html#c.PyDict_GetItemStringRef" title="PyDict_GetItemStringRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_GetItemStringRef()</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyDict_Pop()</span></code>: use <a class="reference internal" href="../c-api/dict.html#c.PyDict_Pop" title="PyDict_Pop"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_Pop()</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyLong_Sign()</span></code>: use <a class="reference internal" href="../c-api/long.html#c.PyLong_GetSign" title="PyLong_GetSign"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_GetSign()</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyLong_FromDigits()</span></code> and <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyLong_New()</span></code>:
use <a class="reference internal" href="../c-api/long.html#c.PyLongWriter_Create" title="PyLongWriter_Create"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLongWriter_Create()</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyThreadState_UncheckedGet()</span></code>: use <a class="reference internal" href="../c-api/init.html#c.PyThreadState_GetUnchecked" title="PyThreadState_GetUnchecked"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_GetUnchecked()</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicode_AsString()</span></code>: use <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_AsUTF8" title="PyUnicode_AsUTF8"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsUTF8()</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_Py_HashPointer()</span></code>: use <a class="reference internal" href="../c-api/hash.html#c.Py_HashPointer" title="Py_HashPointer"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_HashPointer()</span></code></a>.</p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_Py_fopen_obj()</span></code>: use <a class="reference internal" href="../c-api/sys.html#c.Py_fopen" title="Py_fopen"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_fopen()</span></code></a>.</p></li>
</ul>
<p>The <a class="reference external" href="https://github.com/python/pythoncapi-compat/">pythoncapi-compat project</a> can be used to get these
new public functions on Python 3.13 and older.</p>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126599">gh-126599</a>: Remove some internal test APIs for the experimental JIT
compiler.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127925">gh-127925</a>: Convert the <a class="reference internal" href="../library/decimal.html#module-decimal" title="decimal: Implementation of the General Decimal Arithmetic Specification."><code class="xref py py-mod docutils literal notranslate"><span class="pre">decimal</span></code></a> module to use <span class="target" id="index-32"></span><a class="pep reference external" href="https://peps.python.org/pep-0757/"><strong>PEP 757</strong></a> C API
(export-import integers), offering some speed-up if the integer part of
the <a class="reference internal" href="../library/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal notranslate"><span class="pre">Decimal</span></code></a> instance is small. Patch by Sergey B
Kirpichev.</p></li>
</ul>
</section>
<section id="id77">
<h3>Build<a class="headerlink" href="#id77" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/129660">gh-129660</a>: Drop <code class="docutils literal notranslate"><span class="pre">test_embed</span></code> from PGO training, whose contribution in
recent versions is considered to be ignorable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128902">gh-128902</a>: Fix compile errors with Clang 9 and older due to lack of
<code class="docutils literal notranslate"><span class="pre">__attribute__((fallthrough))</span></code> support.</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-alpha-4">
<h2>Python 3.14.0 alpha 4<a class="headerlink" href="#python-3-14-0-alpha-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2025-01-14</em></p>
<section id="id78">
<h3>macOS<a class="headerlink" href="#id78" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127592">gh-127592</a>: Usage of the unified Apple System Log APIs was disabled when
the minimum macOS version is earlier than 10.12.</p></li>
</ul>
</section>
<section id="id79">
<h3>Tools/Demos<a class="headerlink" href="#id79" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128152">gh-128152</a>: Fix a bug where Argument Clinic’s C pre-processor parser tried
to parse pre-processor directives inside C comments. Patch by Erlend
Aasland.</p></li>
</ul>
</section>
<section id="id80">
<h3>Tests<a class="headerlink" href="#id80" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128690">gh-128690</a>: Temporarily do not use test_embed in PGO profile builds until
the problem with test_init_pyvenv_cfg failing in some configurations is
resolved.</p></li>
</ul>
</section>
<section id="id81">
<h3>Library<a class="headerlink" href="#id81" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128731">gh-128731</a>: Fix <a class="reference internal" href="../library/exceptions.html#ResourceWarning" title="ResourceWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ResourceWarning</span></code></a> in
<a class="reference internal" href="../library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.read" title="urllib.robotparser.RobotFileParser.read"><code class="xref py py-meth docutils literal notranslate"><span class="pre">urllib.robotparser.RobotFileParser.read()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71339">gh-71339</a>: Add new assertion methods for <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a>:
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertHasAttr" title="unittest.TestCase.assertHasAttr"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertHasAttr()</span></code></a>,
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertNotHasAttr" title="unittest.TestCase.assertNotHasAttr"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertNotHasAttr()</span></code></a>,
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertIsSubclass" title="unittest.TestCase.assertIsSubclass"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertIsSubclass()</span></code></a>,
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertNotIsSubclass" title="unittest.TestCase.assertNotIsSubclass"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertNotIsSubclass()</span></code></a>
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertStartsWith" title="unittest.TestCase.assertStartsWith"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertStartsWith()</span></code></a>,
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertNotStartsWith" title="unittest.TestCase.assertNotStartsWith"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertNotStartsWith()</span></code></a>,
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertEndsWith" title="unittest.TestCase.assertEndsWith"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertEndsWith()</span></code></a> and
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertNotEndsWith" title="unittest.TestCase.assertNotEndsWith"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertNotEndsWith()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Improve import time of <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a> by 25% by removing an
unnecessary regular expression. As such, <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> is no more implicitly
available as <code class="docutils literal notranslate"><span class="pre">pickle.re</span></code>. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128661">gh-128661</a>: Fixes <a class="reference internal" href="../library/typing.html#typing.evaluate_forward_ref" title="typing.evaluate_forward_ref"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.evaluate_forward_ref()</span></code></a> not showing
deprecation when <code class="docutils literal notranslate"><span class="pre">type_params</span></code> arg is not passed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128562">gh-128562</a>: Fix possible conflicts in generated <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> widget names
if the widget class name ends with a digit.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128559">gh-128559</a>: Improved import time of <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128552">gh-128552</a>: Fix cyclic garbage introduced by
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.create_task" title="asyncio.loop.create_task"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.create_task()</span></code></a> and <a class="reference internal" href="../library/asyncio-task.html#asyncio.TaskGroup.create_task" title="asyncio.TaskGroup.create_task"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.TaskGroup.create_task()</span></code></a>
holding a reference to the created task if it is eager.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128340">gh-128340</a>: Add internal thread safe handle to be used in
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.call_soon_threadsafe" title="asyncio.loop.call_soon_threadsafe"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.call_soon_threadsafe()</span></code></a> for thread safe cancellation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128182">gh-128182</a>: Fix crash when using <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> pointers concurrently on the
<a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128400">gh-128400</a>: Only show the current thread in <a class="reference internal" href="../library/faulthandler.html#module-faulthandler" title="faulthandler: Dump the Python traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">faulthandler</span></code></a> on the
<a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a> build to prevent races.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128400">gh-128400</a>: Fix crash when using <a class="reference internal" href="../library/faulthandler.html#faulthandler.dump_traceback" title="faulthandler.dump_traceback"><code class="xref py py-func docutils literal notranslate"><span class="pre">faulthandler.dump_traceback()</span></code></a> while
other threads are active on the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a>
build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128388">gh-128388</a>: Fix <code class="docutils literal notranslate"><span class="pre">PyREPL</span></code> on Windows to support more keybindings, like the
<kbd class="kbd docutils literal notranslate">Control</kbd>-<kbd class="kbd docutils literal notranslate">←</kbd> and <kbd class="kbd docutils literal notranslate">Control</kbd>-<kbd class="kbd docutils literal notranslate">→</kbd> word-skipping keybindings and those
with meta (i.e. <kbd class="kbd docutils literal notranslate">Alt</kbd>), e.g. <kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">d</kbd> to <code class="docutils literal notranslate"><span class="pre">kill-word</span></code> or
<kbd class="kbd docutils literal notranslate">Alt</kbd>-<kbd class="kbd docutils literal notranslate">Backspace</kbd> <code class="docutils literal notranslate"><span class="pre">backward-kill-word</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88834">gh-88834</a>: Unify the instance check for <a class="reference internal" href="../library/typing.html#typing.Union" title="typing.Union"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Union</span></code></a> and
<a class="reference internal" href="../library/types.html#types.UnionType" title="types.UnionType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.UnionType</span></code></a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">Union</span></code> now uses the instance checks
against its parameters instead of the subclass checks.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128302">gh-128302</a>: Fix
<code class="xref py py-meth docutils literal notranslate"><span class="pre">xml.dom.xmlbuilder.DOMEntityResolver.resolveEntity()</span></code>, which was
broken by the Python 3.0 transition.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128317">gh-128317</a>: Highlight today in colour in <a class="reference internal" href="../library/calendar.html#module-calendar" title="calendar: Functions for working with calendars, including some emulation of the Unix cal program."><code class="xref py py-mod docutils literal notranslate"><span class="pre">calendar</span></code></a>’s CLI output.
Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128302">gh-128302</a>: Allow <code class="xref py py-meth docutils literal notranslate"><span class="pre">xml.dom.xmlbuilder.DOMParser.parse()</span></code> to correctly
handle <code class="xref py py-class docutils literal notranslate"><span class="pre">xml.dom.xmlbuilder.DOMInputSource</span></code> instances that only
have a <code class="xref py py-attr docutils literal notranslate"><span class="pre">systemId</span></code> attribute set.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128151">gh-128151</a>: Improve generation of <a class="reference internal" href="../library/uuid.html#uuid.UUID" title="uuid.UUID"><code class="xref py py-class docutils literal notranslate"><span class="pre">UUID</span></code></a> objects version 3, 4,
5, and 8 via their dedicated functions by 30%. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128118">gh-128118</a>: Improve performance of <a class="reference internal" href="../library/copy.html#copy.copy" title="copy.copy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.copy()</span></code></a> by 30% via a fast path
for atomic types and container types.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127946">gh-127946</a>: Fix crash when modifying <a class="reference internal" href="../library/ctypes.html#ctypes._CFuncPtr" title="ctypes._CFuncPtr"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes._CFuncPtr</span></code></a> objects
concurrently on the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128062">gh-128062</a>: Revert the font of <a class="reference internal" href="../library/turtle.html#module-turtledemo" title="turtledemo: A viewer for example turtle scripts"><code class="xref py py-mod docutils literal notranslate"><span class="pre">turtledemo</span></code></a>’s menu bar to its default
value and display the shortcut keys in the correct position.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128014">gh-128014</a>: Fix resetting the default window icon by passing <code class="docutils literal notranslate"><span class="pre">default=''</span></code>
to the <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> method <code class="xref py py-meth docutils literal notranslate"><span class="pre">wm_iconbitmap()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/41872">gh-41872</a>: Fix quick extraction of module docstrings from a file in
<a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a>. It now supports docstrings with single quotes, escape
sequences, raw string literals, and other Python syntax.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127060">gh-127060</a>: Set TERM environment variable to “dumb” to disable traceback
colors in IDLE, since IDLE doesn’t understand ANSI escape sequences. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126742">gh-126742</a>: Fix support of localized error messages reported by
<em class="manpage"><a class="manpage reference external" href="https://manpages.debian.org/dlerror(3)">dlerror(3)</a></em> and <em class="manpage"><a class="manpage reference external" href="https://manpages.debian.org/gdbm(3)">gdbm_strerror</a></em> in
<a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> and <a class="reference internal" href="../library/dbm.html#module-dbm.gnu" title="dbm.gnu: GNU database manager (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.gnu</span></code></a> functions respectively. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122548">gh-122548</a>: Adds two new local events to sys.monitoring, <code class="docutils literal notranslate"><span class="pre">BRANCH_LEFT</span></code>
and <code class="docutils literal notranslate"><span class="pre">BRANCH_RIGHT</span></code>. This allows the two arms of the branch to be
disabled independently, which should hugely improve performance of
branch-level coverage tools. The old branch event, <code class="docutils literal notranslate"><span class="pre">BRANCH</span></code> is now
deprecated.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127847">gh-127847</a>: Fix the position when doing interleaved seeks and reads in
uncompressed, unencrypted zip files returned by
<a class="reference internal" href="../library/zipfile.html#zipfile.ZipFile.open" title="zipfile.ZipFile.open"><code class="xref py py-meth docutils literal notranslate"><span class="pre">zipfile.ZipFile.open()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127688">gh-127688</a>: Add the <a class="reference internal" href="../library/os.html#os.SCHED_DEADLINE" title="os.SCHED_DEADLINE"><code class="xref py py-data docutils literal notranslate"><span class="pre">SCHED_DEADLINE</span></code></a> and <a class="reference internal" href="../library/os.html#os.SCHED_NORMAL" title="os.SCHED_NORMAL"><code class="xref py py-data docutils literal notranslate"><span class="pre">SCHED_NORMAL</span></code></a>
constants to the <a class="reference internal" href="../library/os.html#module-os" title="os: Miscellaneous operating system interfaces."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83662">gh-83662</a>: Add missing <code class="docutils literal notranslate"><span class="pre">__class_getitem__</span></code> method to the Python
implementation of <a class="reference internal" href="../library/functools.html#functools.partial" title="functools.partial"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.partial()</span></code></a>, to make it compatible with
the C version. This is mainly relevant for alternative Python
implementations like PyPy and GraalPy, because CPython will usually use
the C-implementation of that function.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127586">gh-127586</a>: <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.pool.Pool" title="multiprocessing.pool.Pool"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.pool.Pool</span></code></a> now properly restores
blocked signal handlers of the parent thread when creating processes via
either <em>spawn</em> or <em>forkserver</em>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98188">gh-98188</a>: Fix an issue in <a class="reference internal" href="../library/email.compat32-message.html#email.message.Message.get_payload" title="email.message.Message.get_payload"><code class="xref py py-meth docutils literal notranslate"><span class="pre">email.message.Message.get_payload()</span></code></a> where
data cannot be decoded if the Content Transfer Encoding mechanism contains
trailing whitespaces or additional junk text. Patch by Hui Liu.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127529">gh-127529</a>: Correct behavior of
<code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.selector_events.BaseSelectorEventLoop._accept_connection()</span></code>
in handling <a class="reference internal" href="../library/exceptions.html#ConnectionAbortedError" title="ConnectionAbortedError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ConnectionAbortedError</span></code></a> in a loop. This improves
performance on OpenBSD.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127360">gh-127360</a>: When a descriptive error message cannot be provided for an
<a class="reference internal" href="../library/ssl.html#ssl.SSLError" title="ssl.SSLError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ssl.SSLError</span></code></a>, the “unknown error” message now shows the internal
error code (as retrieved by <code class="docutils literal notranslate"><span class="pre">ERR_get_error</span></code> and similar OpenSSL
functions).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127196">gh-127196</a>: Fix crash when dict with keys in invalid encoding were passed
to several functions in <code class="docutils literal notranslate"><span class="pre">_interpreters</span></code> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124130">gh-124130</a>: Fix a bug in matching regular expression <code class="docutils literal notranslate"><span class="pre">\B</span></code> in empty input
string. Now it is always the opposite of <code class="docutils literal notranslate"><span class="pre">\b</span></code>. To get an old behavior,
use <code class="docutils literal notranslate"><span class="pre">(?!\A\Z)\B</span></code>. To get a new behavior in old Python versions, use
<code class="docutils literal notranslate"><span class="pre">(?!\b)</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126639">gh-126639</a>: <a class="reference internal" href="../library/tempfile.html#tempfile.NamedTemporaryFile" title="tempfile.NamedTemporaryFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">tempfile.NamedTemporaryFile</span></code></a> will now issue a
<a class="reference internal" href="../library/exceptions.html#ResourceWarning" title="ResourceWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ResourceWarning</span></code></a> when it is finalized by the garbage collector
without being explicitly closed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126624">gh-126624</a>: Expose error code
<a class="reference internal" href="../library/pyexpat.html#xml.parsers.expat.errors.XML_ERROR_NOT_STARTED" title="xml.parsers.expat.errors.XML_ERROR_NOT_STARTED"><code class="xref py py-data docutils literal notranslate"><span class="pre">XML_ERROR_NOT_STARTED</span></code></a> of Expat >=2.6.4
in <a class="reference internal" href="../library/pyexpat.html#module-xml.parsers.expat.errors" title="xml.parsers.expat.errors"><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.parsers.expat.errors</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126225">gh-126225</a>: <a class="reference internal" href="../library/getopt.html#module-getopt" title="getopt: Portable parser for command line options; support both short and long option names."><code class="xref py py-mod docutils literal notranslate"><span class="pre">getopt</span></code></a> and <a class="reference internal" href="../library/optparse.html#module-optparse" title="optparse: Command-line option parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">optparse</span></code></a> are no longer marked as
deprecated. There are legitimate reasons to use one of these modules in
preference to <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>, and none of these modules are at risk of
being removed from the standard library. Of the three, <code class="docutils literal notranslate"><span class="pre">argparse</span></code>
remains the recommended default choice, <em>unless</em> one of the concerns noted
at the top of the <code class="docutils literal notranslate"><span class="pre">optparse</span></code> module documentation applies.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124761">gh-124761</a>: Add <a class="reference internal" href="../library/socket.html#socket.SO_REUSEPORT_LB" title="socket.SO_REUSEPORT_LB"><code class="xref py py-data docutils literal notranslate"><span class="pre">SO_REUSEPORT_LB</span></code></a> constant to <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a>
for FreeBSD.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121720">gh-121720</a>: <a class="reference internal" href="../library/enum.html#enum.EnumDict" title="enum.EnumDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">enum.EnumDict</span></code></a> can now be used without resorting to
private API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123424">gh-123424</a>: Add <a class="reference internal" href="../library/zipfile.html#zipfile.ZipInfo._for_archive" title="zipfile.ZipInfo._for_archive"><code class="xref py py-meth docutils literal notranslate"><span class="pre">zipfile.ZipInfo._for_archive()</span></code></a> setting default
properties on <a class="reference internal" href="../library/zipfile.html#zipfile.ZipInfo" title="zipfile.ZipInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">ZipInfo</span></code></a> objects. Patch by Bénédikt Tran
and Jason R. Coombs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121676">gh-121676</a>: Deprecate calling the Python implementation of
<a class="reference internal" href="../library/functools.html#functools.reduce" title="functools.reduce"><code class="xref py py-meth docutils literal notranslate"><span class="pre">functools.reduce()</span></code></a> with a <code class="docutils literal notranslate"><span class="pre">function</span></code> or <code class="docutils literal notranslate"><span class="pre">sequence</span></code> as a
<a class="reference internal" href="../glossary.html#term-keyword-argument"><span class="xref std std-term">keyword argument</span></a>. This will be forbidden in Python 3.16 in order
to match the C implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112015">gh-112015</a>: <a class="reference internal" href="../library/ctypes.html#ctypes.memoryview_at" title="ctypes.memoryview_at"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.memoryview_at()</span></code></a> now exists to create a
<a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a> object that refers to the supplied pointer and length.
This works like <a class="reference internal" href="../library/ctypes.html#ctypes.string_at" title="ctypes.string_at"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.string_at()</span></code></a> except it avoids a buffer copy,
and is typically useful when implementing pure Python callback functions
that are passed dynamically-sized buffers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95371">gh-95371</a>: Added support for other image formats (PNG, PGM, and PPM) to the
turtle module. Patch by Shin-myoung-serp.</p></li>
</ul>
</section>
<section id="id82">
<h3>Core and Builtins<a class="headerlink" href="#id82" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128078">gh-128078</a>: Fix a <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> when using <a class="reference internal" href="../library/functions.html#anext" title="anext"><code class="xref py py-func docutils literal notranslate"><span class="pre">anext()</span></code></a> with a
default tuple value. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128717">gh-128717</a>: Fix a crash when setting the recursion limit while other
threads are active on the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124483">gh-124483</a>: Treat <code class="docutils literal notranslate"><span class="pre">Py_DECREF</span></code> and variants as escaping when generating
opcode and uop metadata. This prevents the possibility of a <code class="docutils literal notranslate"><span class="pre">__del__</span></code>
method causing the JIT to behave incorrectly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126703">gh-126703</a>: Improve performance of class methods by using a freelist.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128137">gh-128137</a>: Update <a class="reference internal" href="../c-api/unicode.html#c.PyASCIIObject" title="PyASCIIObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyASCIIObject</span></code></a> layout to handle interned field
with the atomic operation. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128192">gh-128192</a>: Upgrade HTTP digest authentication algorithm for
<a class="reference internal" href="../library/urllib.request.html#module-urllib.request" title="urllib.request: Extensible library for opening URLs."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.request</span></code></a> by supporting SHA-256 digest authentication as
specified in <span class="target" id="index-33"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc7616.html"><strong>RFC 7616</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126868">gh-126868</a>: Increase usage of freelist for <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> allocation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114203">gh-114203</a>: Optimize <code class="docutils literal notranslate"><span class="pre">Py_BEGIN_CRITICAL_SECTION</span></code> for simple recursive
calls.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127705">gh-127705</a>: Adds stackref debugging when <code class="docutils literal notranslate"><span class="pre">Py_STACKREF_DEBUG</span></code> is set.
Finds all double-closes and leaks, logging the origin and last borrow.</p>
<p>Inspired by HPy’s debug mode.
<a class="reference external" href="https://docs.hpyproject.org/en/latest/debug-mode.html">https://docs.hpyproject.org/en/latest/debug-mode.html</a></p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128079">gh-128079</a>: Fix a bug where <a class="reference internal" href="../reference/compound_stmts.html#except-star"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">except*</span></code></a> does not
properly check the return value of an <a class="reference internal" href="../library/exceptions.html#ExceptionGroup" title="ExceptionGroup"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ExceptionGroup</span></code></a>’s
<a class="reference internal" href="../library/exceptions.html#BaseExceptionGroup.split" title="BaseExceptionGroup.split"><code class="xref py py-meth docutils literal notranslate"><span class="pre">split()</span></code></a> function, leading to a crash in some
cases. Now when <a class="reference internal" href="../library/exceptions.html#BaseExceptionGroup.split" title="BaseExceptionGroup.split"><code class="xref py py-meth docutils literal notranslate"><span class="pre">split()</span></code></a> returns an invalid
object, <a class="reference internal" href="../reference/compound_stmts.html#except-star"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">except*</span></code></a> raises a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> with
the original raised <a class="reference internal" href="../library/exceptions.html#ExceptionGroup" title="ExceptionGroup"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ExceptionGroup</span></code></a> object chained to it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128030">gh-128030</a>: Avoid error from calling <code class="docutils literal notranslate"><span class="pre">PyModule_GetFilenameObject</span></code> on a
non-module object when importing a non-existent symbol from a non-module
object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128035">gh-128035</a>: Indicate through <a class="reference internal" href="../library/ssl.html#ssl.HAS_PHA" title="ssl.HAS_PHA"><code class="xref py py-data docutils literal notranslate"><span class="pre">ssl.HAS_PHA</span></code></a> whether the <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a>
module supports TLSv1.3 post-handshake client authentication (PHA). Patch
by Will Childs-Klein.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127274">gh-127274</a>: Add a new flag, <code class="docutils literal notranslate"><span class="pre">CO_METHOD</span></code>, to <a class="reference internal" href="../reference/datamodel.html#codeobject.co_flags" title="codeobject.co_flags"><code class="xref py py-attr docutils literal notranslate"><span class="pre">co_flags</span></code></a>
that indicates whether the code object belongs to a function defined in
class scope.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/66409">gh-66409</a>: During the <a class="reference internal" href="../library/sys_path_init.html#sys-path-init"><span class="std std-ref">path initialization</span></a>, we now
check if <code class="docutils literal notranslate"><span class="pre">base_exec_prefix</span></code> is the same as <code class="docutils literal notranslate"><span class="pre">base_prefix</span></code> before
falling back to searching the Python interpreter directory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127970">gh-127970</a>: We now use the location of the <code class="docutils literal notranslate"><span class="pre">libpython</span></code> runtime library
used in the current process to determine <a class="reference internal" href="../library/sys.html#sys.base_prefix" title="sys.base_prefix"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.base_prefix</span></code></a> on all
platforms implementing the <a class="reference external" href="https://pubs.opengroup.org/onlinepubs/9799919799/functions/dladdr.html">dladdr</a>
function defined by the UNIX standard — this includes Linux, Android,
macOS, iOS, FreeBSD, etc. This was already the case on Windows and macOS
Framework builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127773">gh-127773</a>: Do not use the type attribute cache for types with incompatible
<a class="reference internal" href="../glossary.html#term-MRO"><span class="xref std std-term">MRO</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127903">gh-127903</a>: <code class="docutils literal notranslate"><span class="pre">Objects/unicodeobject.c</span></code>: fix a crash on DEBUG builds in
<code class="docutils literal notranslate"><span class="pre">_copy_characters</span></code> when there is nothing to copy.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127809">gh-127809</a>: Fix an issue where the experimental JIT may infer an incorrect
result type for exponentiation (<code class="docutils literal notranslate"><span class="pre">**</span></code> and <code class="docutils literal notranslate"><span class="pre">**=</span></code>), leading to bugs or
crashes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126862">gh-126862</a>: Fix a possible overflow when a class inherits from an absurd
number of super-classes. Reported by Valery Fedorenko. Patch by Bénédikt
Tran.</p></li>
</ul>
</section>
<section id="id83">
<h3>C API<a class="headerlink" href="#id83" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128400">gh-128400</a>: <a class="reference internal" href="../c-api/sys.html#c.Py_FatalError" title="Py_FatalError"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FatalError()</span></code></a> no longer shows all threads on the
<a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free threaded</span></a> build to prevent crashes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128629">gh-128629</a>: Add macros <a class="reference internal" href="../c-api/apiabiversion.html#c.Py_PACK_VERSION" title="Py_PACK_VERSION"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_PACK_VERSION()</span></code></a> and
<a class="reference internal" href="../c-api/apiabiversion.html#c.Py_PACK_FULL_VERSION" title="Py_PACK_FULL_VERSION"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_PACK_FULL_VERSION()</span></code></a> for bit-packing Python version numbers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128008">gh-128008</a>: Add <a class="reference internal" href="../c-api/weakref.html#c.PyWeakref_IsDead" title="PyWeakref_IsDead"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyWeakref_IsDead()</span></code></a> function, which tests if a weak
reference is dead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127350">gh-127350</a>: Add <a class="reference internal" href="../c-api/sys.html#c.Py_fopen" title="Py_fopen"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_fopen()</span></code></a> function to open a file. Similar to the
<code class="xref c c-func docutils literal notranslate"><span class="pre">fopen()</span></code> function, but the <em>path</em> parameter is a Python object and
an exception is set on error. Add also <a class="reference internal" href="../c-api/sys.html#c.Py_fclose" title="Py_fclose"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_fclose()</span></code></a> function to
close a file, function needed for Windows support. Patch by Victor
Stinner.</p></li>
</ul>
</section>
<section id="id84">
<h3>Build<a class="headerlink" href="#id84" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128627">gh-128627</a>: For Emscripten builds the function pointer cast call trampoline
now uses the wasm-gc ref.test instruction if it’s available instead of
Wasm JS type reflection.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128472">gh-128472</a>: Skip BOLT optimization of functions using computed gotos,
fixing errors on build with LLVM 19.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115765">gh-115765</a>: GNU Autoconf 2.72 is now required to generate
<code class="file docutils literal notranslate"><span class="pre">configure</span></code>. Patch by Erlend Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123925">gh-123925</a>: Fix building the <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> module on platforms with
libncurses but without libncursesw.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90905">gh-90905</a>: Add support for cross-compiling to x86_64 on aarch64/arm64
macOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128321">gh-128321</a>: Set <code class="docutils literal notranslate"><span class="pre">LIBS</span></code> instead of <code class="docutils literal notranslate"><span class="pre">LDFLAGS</span></code> when checking if
<a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> library functions are available. This fixes the ordering of
linked libraries during checks, which was incorrect when using a
statically linked <code class="docutils literal notranslate"><span class="pre">libsqlite3</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100384">gh-100384</a>: Error on <code class="docutils literal notranslate"><span class="pre">unguarded-availability</span></code> in macOS builds, preventing
invalid use of symbols that are not available in older versions of the OS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/128104">gh-128104</a>: Remove <code class="docutils literal notranslate"><span class="pre">Py_STRFTIME_C99_SUPPORT</span></code> conditions in favor of
requiring C99 <em class="manpage"><a class="manpage reference external" href="https://manpages.debian.org/strftime(3)">strftime(3)</a></em> specifier support at build time. When
cross-compiling, there is no build time check and support is assumed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127951">gh-127951</a>: Add option <code class="docutils literal notranslate"><span class="pre">--pystats</span></code> to the Windows build to enable
performance statistics collection.</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-alpha-3">
<h2>Python 3.14.0 alpha 3<a class="headerlink" href="#python-3-14-0-alpha-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2024-12-17</em></p>
<section id="id85">
<h3>Windows<a class="headerlink" href="#id85" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127353">gh-127353</a>: Allow to force color output on Windows using environment
variables. Patch by Andrey Efremov.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125729">gh-125729</a>: Makes the presence of the <a class="reference internal" href="../library/turtle.html#module-turtle" title="turtle: An educational framework for simple graphics applications"><code class="xref py py-mod docutils literal notranslate"><span class="pre">turtle</span></code></a> module dependent on the
Tcl/Tk installer option. Previously, the module was always installed but
would be unusable without Tcl/Tk.</p></li>
</ul>
</section>
<section id="id86">
<h3>Tools/Demos<a class="headerlink" href="#id86" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126700">gh-126700</a>: Add support for multi-argument <a class="reference internal" href="../library/gettext.html#module-gettext" title="gettext: Multilingual internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gettext</span></code></a> functions in
<strong class="program">pygettext.py</strong>.</p></li>
</ul>
</section>
<section id="id87">
<h3>Tests<a class="headerlink" href="#id87" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127906">gh-127906</a>: Test the limited C API in test_cppext. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127637">gh-127637</a>: Add tests for the <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> command-line interface. Patch by
Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126925">gh-126925</a>: iOS test results are now streamed during test execution, and
the deprecated xcresulttool is no longer used.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127076">gh-127076</a>: Disable strace based system call tests when LD_PRELOAD is set.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127076">gh-127076</a>: Filter out memory-related <code class="docutils literal notranslate"><span class="pre">mmap</span></code>, <code class="docutils literal notranslate"><span class="pre">munmap</span></code>, and
<code class="docutils literal notranslate"><span class="pre">mprotect</span></code> calls from file-related ones when testing <a class="reference internal" href="../library/io.html#module-io" title="io: Core tools for working with streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">io</span></code></a> behavior
using strace.</p></li>
</ul>
</section>
<section id="id88">
<h3>Security<a class="headerlink" href="#id88" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127655">gh-127655</a>: Fixed the
<code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.selector_events._SelectorSocketTransport</span></code> transport not
pausing writes for the protocol when the buffer reaches the high water
mark when using <a class="reference internal" href="../library/asyncio-protocol.html#asyncio.WriteTransport.writelines" title="asyncio.WriteTransport.writelines"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.WriteTransport.writelines()</span></code></a>.</p></li>
</ul>
</section>
<section id="id89">
<h3>Library<a class="headerlink" href="#id89" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126907">gh-126907</a>: Fix crash when using <a class="reference internal" href="../library/atexit.html#module-atexit" title="atexit: Register and execute cleanup functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">atexit</span></code></a> concurrently on the
<a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free-threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127870">gh-127870</a>: Detect recursive calls in ctypes <code class="docutils literal notranslate"><span class="pre">_as_parameter_</span></code> handling.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127732">gh-127732</a>: The <a class="reference internal" href="../library/platform.html#module-platform" title="platform: Retrieves as much platform identifying data as possible."><code class="xref py py-mod docutils literal notranslate"><span class="pre">platform</span></code></a> module now correctly detects Windows Server
2025.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126789">gh-126789</a>: Fixed <a class="reference internal" href="../library/sysconfig.html#sysconfig.get_config_vars" title="sysconfig.get_config_vars"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_config_vars()</span></code></a>,
<a class="reference internal" href="../library/sysconfig.html#sysconfig.get_paths" title="sysconfig.get_paths"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_paths()</span></code></a>, and siblings, returning outdated cached data
if the value of <a class="reference internal" href="../library/sys.html#sys.prefix" title="sys.prefix"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.prefix</span></code></a> or <a class="reference internal" href="../library/sys.html#sys.exec_prefix" title="sys.exec_prefix"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.exec_prefix</span></code></a> changes.
Overwriting <a class="reference internal" href="../library/sys.html#sys.prefix" title="sys.prefix"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.prefix</span></code></a> or <a class="reference internal" href="../library/sys.html#sys.exec_prefix" title="sys.exec_prefix"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.exec_prefix</span></code></a> still is
discouraged, as that might break other parts of the code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127718">gh-127718</a>: Add colour to <a class="reference internal" href="../library/test.html#module-test.regrtest" title="test.regrtest: Drives the regression test suite."><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.regrtest</span></code></a> output. Patch by Hugo van
Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127610">gh-127610</a>: Added validation for more than one var-positional or
var-keyword parameters in <a class="reference internal" href="../library/inspect.html#inspect.Signature" title="inspect.Signature"><code class="xref py py-class docutils literal notranslate"><span class="pre">inspect.Signature</span></code></a>. Patch by Maxim
Ageev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127627">gh-127627</a>: Added <code class="docutils literal notranslate"><span class="pre">posix._emscripten_debugger()</span></code> to help with debugging
the test suite on the Emscripten target.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126821">gh-126821</a>: macOS and iOS apps can now choose to redirect stdout and stderr
to the system log during interpreter configuration.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93312">gh-93312</a>: Include <code class="docutils literal notranslate"><span class="pre"><sys/pidfd.h></span></code> to get <code class="docutils literal notranslate"><span class="pre">os.PIDFD_NONBLOCK</span></code> constant.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127481">gh-127481</a>: Add the <code class="docutils literal notranslate"><span class="pre">EPOLLWAKEUP</span></code> constant to the <a class="reference internal" href="../library/select.html#module-select" title="select: Wait for I/O completion on multiple streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">select</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127065">gh-127065</a>: Make <a class="reference internal" href="../library/operator.html#operator.methodcaller" title="operator.methodcaller"><code class="xref py py-func docutils literal notranslate"><span class="pre">operator.methodcaller()</span></code></a> thread-safe and re-entrant
safe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127321">gh-127321</a>: <a class="reference internal" href="../library/pdb.html#pdb.set_trace" title="pdb.set_trace"><code class="xref py py-func docutils literal notranslate"><span class="pre">pdb.set_trace()</span></code></a> will not stop at an opcode that does not
have an associated line number anymore.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127429">gh-127429</a>: Fixed bug where, on cross-builds, the <a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a> POSIX
data was being generated with the host Python’s <code class="docutils literal notranslate"><span class="pre">Makefile</span></code>. The data is
now generated from current build’s <code class="docutils literal notranslate"><span class="pre">Makefile</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127413">gh-127413</a>: Add the <a class="reference internal" href="../library/dis.html#cmdoption-dis-S"><code class="xref std std-option docutils literal notranslate"><span class="pre">dis</span> <span class="pre">--specialized</span></code></a> command-line option to show
specialized bytecode. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125413">gh-125413</a>: Revert addition of <code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.scandir()</span></code>. This method
was added in 3.14.0a2. The optimizations remain for file system paths, but
other subclasses should only have to implement
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.iterdir" title="pathlib.Path.iterdir"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.iterdir()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127257">gh-127257</a>: In <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a>, system call failures that OpenSSL reports using
<code class="docutils literal notranslate"><span class="pre">ERR_LIB_SYS</span></code> are now raised as <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/59705">gh-59705</a>: On Linux, <a class="reference internal" href="../library/threading.html#threading.Thread" title="threading.Thread"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.Thread</span></code></a> now sets the thread name to
the operating system. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127303">gh-127303</a>: Publicly expose <a class="reference internal" href="../library/token.html#token.EXACT_TOKEN_TYPES" title="token.EXACT_TOKEN_TYPES"><code class="xref py py-data docutils literal notranslate"><span class="pre">EXACT_TOKEN_TYPES</span></code></a> in
<code class="xref py py-attr docutils literal notranslate"><span class="pre">token.__all__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127331">gh-127331</a>: <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> can show descriptions for errors added in OpenSSL
3.4.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123967">gh-123967</a>: Fix faulthandler for trampoline frames. If the top-most frame
is a trampoline frame, skip it. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127178">gh-127178</a>: A <code class="docutils literal notranslate"><span class="pre">_sysconfig_vars_(...).json</span></code> file is now shipped in the
standard library directory. It contains the output of
<a class="reference internal" href="../library/sysconfig.html#sysconfig.get_config_vars" title="sysconfig.get_config_vars"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_config_vars()</span></code></a> on the default environment encoded as
JSON data. This is an implementation detail, and may change at any time.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127072">gh-127072</a>: Remove outdated <code class="docutils literal notranslate"><span class="pre">socket.NETLINK_*</span></code> constants not present in
Linux kernels beyond 2.6.17.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127255">gh-127255</a>: The <a class="reference internal" href="../library/ctypes.html#ctypes.CopyComPointer" title="ctypes.CopyComPointer"><code class="xref py py-func docutils literal notranslate"><span class="pre">CopyComPointer()</span></code></a> function is now public.
Previously, this was private and only available in <code class="docutils literal notranslate"><span class="pre">_ctypes</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127182">gh-127182</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">io.StringIO.__setstate__()</span></code> crash, when <a class="reference internal" href="../library/constants.html#None" title="None"><code class="xref py py-const docutils literal notranslate"><span class="pre">None</span></code></a>
was passed as the first value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127217">gh-127217</a>: Fix <a class="reference internal" href="../library/urllib.request.html#urllib.request.pathname2url" title="urllib.request.pathname2url"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.pathname2url()</span></code></a> for paths starting with
multiple slashes on Posix.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125866">gh-125866</a>: <a class="reference internal" href="../library/urllib.request.html#urllib.request.pathname2url" title="urllib.request.pathname2url"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.pathname2url()</span></code></a> now adds an empty authority
when generating a URL for a path that begins with exactly one slash. For
example, the path <code class="docutils literal notranslate"><span class="pre">/etc/hosts</span></code> is converted to the scheme-less URL
<code class="docutils literal notranslate"><span class="pre">///etc/hosts</span></code>. As a result of this change, URLs without authorities are
only generated for relative paths.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127221">gh-127221</a>: Add colour to <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> output. Patch by Hugo van
Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127035">gh-127035</a>: Fix <a class="reference internal" href="../library/shutil.html#shutil.which" title="shutil.which"><code class="xref py py-mod docutils literal notranslate"><span class="pre">shutil.which</span></code></a> on Windows. Now it looks at direct
match if and only if the command ends with a PATHEXT extension or X_OK is
not in mode. Support extensionless files if “.” is in PATHEXT. Support
PATHEXT extensions that end with a dot.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122273">gh-122273</a>: Support PyREPL history on Windows. Patch by devdanzin and
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125866">gh-125866</a>: <a class="reference internal" href="../library/urllib.request.html#urllib.request.pathname2url" title="urllib.request.pathname2url"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.pathname2url()</span></code></a> and
<a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">url2pathname()</span></code></a> no longer convert Windows drive
letters to uppercase.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127078">gh-127078</a>: Fix issue where <a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.url2pathname()</span></code></a> failed to
discard an extra slash before a UNC drive in the URL path on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126766">gh-126766</a>: Fix issue where <a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.url2pathname()</span></code></a> failed to
discard any ‘localhost’ authority present in the URL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127065">gh-127065</a>: Fix crash when calling a <a class="reference internal" href="../library/operator.html#operator.methodcaller" title="operator.methodcaller"><code class="xref py py-func docutils literal notranslate"><span class="pre">operator.methodcaller()</span></code></a> instance
from multiple threads in the free threading build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127090">gh-127090</a>: Fix value of <a class="reference internal" href="../library/urllib.request.html#urllib.response.addinfourl.url" title="urllib.response.addinfourl.url"><code class="xref py py-attr docutils literal notranslate"><span class="pre">urllib.response.addinfourl.url</span></code></a> for
<code class="docutils literal notranslate"><span class="pre">file:</span></code> URLs that express relative paths and absolute Windows paths. The
canonical URL generated by <a class="reference internal" href="../library/urllib.request.html#urllib.request.pathname2url" title="urllib.request.pathname2url"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.pathname2url()</span></code></a> is now
used.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126992">gh-126992</a>: Fix LONG and INT opcodes to only use base 10 for string to
integer conversion in <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126997">gh-126997</a>: Fix support of STRING and GLOBAL opcodes with non-ASCII
arguments in <a class="reference internal" href="../library/pickletools.html#module-pickletools" title="pickletools: Contains extensive comments about the pickle protocols and pickle-machine opcodes, as well as some useful functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickletools</span></code></a>. <a class="reference internal" href="../library/pickletools.html#pickletools.dis" title="pickletools.dis"><code class="xref py py-func docutils literal notranslate"><span class="pre">pickletools.dis()</span></code></a> now outputs
non-ASCII bytes in STRING, BINSTRING and SHORT_BINSTRING arguments as
escaped (<code class="docutils literal notranslate"><span class="pre">\xXX</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126316">gh-126316</a>: <a class="reference internal" href="../library/grp.html#module-grp" title="grp: The group database (getgrnam() and friends). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">grp</span></code></a>: Make <a class="reference internal" href="../library/grp.html#grp.getgrall" title="grp.getgrall"><code class="xref py py-func docutils literal notranslate"><span class="pre">grp.getgrall()</span></code></a> thread-safe by adding a
mutex. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126618">gh-126618</a>: Fix the representation of <a class="reference internal" href="../library/itertools.html#itertools.count" title="itertools.count"><code class="xref py py-class docutils literal notranslate"><span class="pre">itertools.count</span></code></a> objects when
the count value is <a class="reference internal" href="../library/sys.html#sys.maxsize" title="sys.maxsize"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.maxsize</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126615">gh-126615</a>: The <a class="reference internal" href="../library/ctypes.html#ctypes.COMError" title="ctypes.COMError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">COMError</span></code></a> exception is now public.
Previously, this was private and only available in <code class="docutils literal notranslate"><span class="pre">_ctypes</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126985">gh-126985</a>: When running under a virtual environment with the <a class="reference internal" href="../library/site.html#module-site" title="site: Module responsible for site-specific configuration."><code class="xref py py-mod docutils literal notranslate"><span class="pre">site</span></code></a>
disabled (see <a class="reference internal" href="../using/cmdline.html#cmdoption-S"><code class="xref std std-option docutils literal notranslate"><span class="pre">-S</span></code></a>), <a class="reference internal" href="../library/sys.html#sys.prefix" title="sys.prefix"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.prefix</span></code></a> and
<a class="reference internal" href="../library/sys.html#sys.base_prefix" title="sys.base_prefix"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.base_prefix</span></code></a> will now point to the virtual environment, instead
of the base installation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112192">gh-112192</a>: In the <a class="reference internal" href="../library/trace.html#module-trace" title="trace: Trace or track Python statement execution."><code class="xref py py-mod docutils literal notranslate"><span class="pre">trace</span></code></a> module, increase the coverage precision
(<code class="docutils literal notranslate"><span class="pre">cov%</span></code>) to one decimal.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Improve import time of <a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a> by around 11-16 times.
Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126947">gh-126947</a>: Raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">_pydatetime.timedelta.__new__()</span></code> if the passed arguments are not
<a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> or <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>, so that the Python implementation is in
line with the C implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126946">gh-126946</a>: Improve the <a class="reference internal" href="../library/getopt.html#getopt.GetoptError" title="getopt.GetoptError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">GetoptError</span></code></a> error message when a
long option prefix matches multiple accepted options in
<a class="reference internal" href="../library/getopt.html#getopt.getopt" title="getopt.getopt"><code class="xref py py-func docutils literal notranslate"><span class="pre">getopt.getopt()</span></code></a> and <a class="reference internal" href="../library/getopt.html#getopt.gnu_getopt" title="getopt.gnu_getopt"><code class="xref py py-func docutils literal notranslate"><span class="pre">getopt.gnu_getopt()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126899">gh-126899</a>: Make tkinter widget methods <code class="xref py py-meth docutils literal notranslate"><span class="pre">after()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">after_idle()</span></code> accept arguments passed by keyword.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85168">gh-85168</a>: Fix issue where <a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.url2pathname()</span></code></a> and
<a class="reference internal" href="../library/urllib.request.html#urllib.request.pathname2url" title="urllib.request.pathname2url"><code class="xref py py-func docutils literal notranslate"><span class="pre">pathname2url()</span></code></a> always used UTF-8 when quoting and
unquoting file URIs. They now use the <a class="reference internal" href="../glossary.html#term-filesystem-encoding-and-error-handler"><span class="xref std std-term">filesystem encoding and error
handler</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126780">gh-126780</a>: Fix <a class="reference internal" href="../library/os.path.html#os.path.normpath" title="os.path.normpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.normpath()</span></code></a> for drive-relative paths on
Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126775">gh-126775</a>: Make <a class="reference internal" href="../library/linecache.html#linecache.checkcache" title="linecache.checkcache"><code class="xref py py-func docutils literal notranslate"><span class="pre">linecache.checkcache()</span></code></a> thread safe and GC
re-entrancy safe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126601">gh-126601</a>: Fix issue where <a class="reference internal" href="../library/urllib.request.html#urllib.request.pathname2url" title="urllib.request.pathname2url"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.pathname2url()</span></code></a> raised
<a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> when given a Windows path containing a colon character not
following a drive letter, such as before an NTFS alternate data stream.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126727">gh-126727</a>: <code class="docutils literal notranslate"><span class="pre">locale.nl_langinfo(locale.ERA)</span></code> now returns multiple era
description segments separated by semicolons. Previously it only returned
the first segment on platforms with Glibc.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85046">gh-85046</a>: Add <a class="reference internal" href="../library/errno.html#errno.EHWPOISON" title="errno.EHWPOISON"><code class="xref py py-data docutils literal notranslate"><span class="pre">EHWPOISON</span></code></a> error code to <a class="reference internal" href="../library/errno.html#module-errno" title="errno: Standard errno system symbols."><code class="xref py py-mod docutils literal notranslate"><span class="pre">errno</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118201">gh-118201</a>: Fixed intermittent failures of <a class="reference internal" href="../library/os.html#os.confstr" title="os.confstr"><code class="xref any py py-func docutils literal notranslate"><span class="pre">os.confstr</span></code></a>,
<a class="reference internal" href="../library/os.html#os.pathconf" title="os.pathconf"><code class="xref any py py-func docutils literal notranslate"><span class="pre">os.pathconf</span></code></a> and <a class="reference internal" href="../library/os.html#os.sysconf" title="os.sysconf"><code class="xref any py py-func docutils literal notranslate"><span class="pre">os.sysconf</span></code></a> on iOS and Android.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86463">gh-86463</a>: The <code class="docutils literal notranslate"><span class="pre">usage</span></code> parameter of <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser" title="argparse.ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a> no
longer affects the default value of the <code class="docutils literal notranslate"><span class="pre">prog</span></code> parameter in subparsers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124008">gh-124008</a>: Fix possible crash (in debug build), incorrect output or
returning incorrect value from raw binary <code class="docutils literal notranslate"><span class="pre">write()</span></code> when writing to
console on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123401">gh-123401</a>: The <a class="reference internal" href="../library/http.cookies.html#module-http.cookies" title="http.cookies: Support for HTTP state management (cookies)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.cookies</span></code></a> module now supports parsing obsolete
<span class="target" id="index-34"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc850.html"><strong>RFC 850</strong></a> date formats, in accordance with <span class="target" id="index-35"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9110.html"><strong>RFC 9110</strong></a> requirements.
Patch by Nano Zheng.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122431">gh-122431</a>: <a class="reference internal" href="../library/readline.html#readline.append_history_file" title="readline.append_history_file"><code class="xref py py-func docutils literal notranslate"><span class="pre">readline.append_history_file()</span></code></a> now raises a
<a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> when given a negative value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122356">gh-122356</a>: Guarantee that the position of a file-like object passed to
<a class="reference internal" href="../library/zipfile.html#zipfile.is_zipfile" title="zipfile.is_zipfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">zipfile.is_zipfile()</span></code></a> is left untouched after the call. Patch by
Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122288">gh-122288</a>: Improve the performances of <a class="reference internal" href="../library/fnmatch.html#fnmatch.translate" title="fnmatch.translate"><code class="xref py py-func docutils literal notranslate"><span class="pre">fnmatch.translate()</span></code></a> by a
factor 1.7. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88110">gh-88110</a>: Fixed <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Process" title="multiprocessing.Process"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Process</span></code></a> reporting a <code class="docutils literal notranslate"><span class="pre">.exitcode</span></code>
of 1 even on success when using the <code class="docutils literal notranslate"><span class="pre">"fork"</span></code> start method while using a
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor" title="concurrent.futures.ThreadPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ThreadPoolExecutor</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97514">gh-97514</a>: Authentication was added to the <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a>
forkserver start method control socket so that only processes with the
authentication key generated by the process that spawned the forkserver
can control it. This is an enhancement over the other <a class="reference external" href="https://github.com/python/cpython/issues/97514">gh-97514</a> fixes
so that access is no longer limited only by filesystem permissions.</p>
<p>The file descriptor exchange of control pipes with the forked worker
process now requires an explicit acknowledgement byte to be sent over the
socket after the exchange on all forkserver supporting platforms. That
makes testing the above much easier.</p>
</li>
</ul>
</section>
<section id="id90">
<h3>Documentation<a class="headerlink" href="#id90" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127347">gh-127347</a>: Publicly expose <a class="reference internal" href="../library/traceback.html#traceback.print_list" title="traceback.print_list"><code class="xref py py-func docutils literal notranslate"><span class="pre">traceback.print_list()</span></code></a> in
<code class="xref py py-attr docutils literal notranslate"><span class="pre">traceback.__all__</span></code>.</p></li>
</ul>
</section>
<section id="id91">
<h3>Core and Builtins<a class="headerlink" href="#id91" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127740">gh-127740</a>: Fix error message in <a class="reference internal" href="../library/stdtypes.html#bytes.fromhex" title="bytes.fromhex"><code class="xref py py-func docutils literal notranslate"><span class="pre">bytes.fromhex()</span></code></a> when given an odd
number of digits to properly indicate that an even number of hexadecimal
digits is required.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127058">gh-127058</a>: <code class="docutils literal notranslate"><span class="pre">PySequence_Tuple</span></code> now creates the resulting tuple
atomically, preventing partially created tuples being visible to the
garbage collector or through <code class="docutils literal notranslate"><span class="pre">gc.get_referrers()</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127599">gh-127599</a>: Fix statistics for increments of object reference counts (in
particular, when a reference count was increased by more than 1 in a
single operation).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127651">gh-127651</a>: When raising <a class="reference internal" href="../library/exceptions.html#ImportError" title="ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a> for missing symbols in <code class="docutils literal notranslate"><span class="pre">from</span></code>
imports, use <code class="docutils literal notranslate"><span class="pre">__file__</span></code> in the error message if <code class="docutils literal notranslate"><span class="pre">__spec__.origin</span></code> is
not a location</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127582">gh-127582</a>: Fix non-thread-safe object resurrection when calling finalizers
and watcher callbacks in the free threading build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127434">gh-127434</a>: The iOS compiler shims can now accept arguments with spaces.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127536">gh-127536</a>: Add missing locks around some list assignment operations in the
free threading build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127085">gh-127085</a>: Fix race when exporting a buffer from a <a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a>
object on the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free-threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127238">gh-127238</a>: Correct error message for <a class="reference internal" href="../library/sys.html#sys.set_int_max_str_digits" title="sys.set_int_max_str_digits"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.set_int_max_str_digits()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113841">gh-113841</a>: Fix possible undefined behavior division by zero in
<a class="reference internal" href="../library/functions.html#complex" title="complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">complex</span></code></a>’s <a class="reference internal" href="../c-api/complex.html#c._Py_c_pow" title="_Py_c_pow"><code class="xref c c-func docutils literal notranslate"><span class="pre">_Py_c_pow()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127133">gh-127133</a>: Calling <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser.add_argument_group" title="argparse.ArgumentParser.add_argument_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.ArgumentParser.add_argument_group()</span></code></a> on
an argument group, and calling
<a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser.add_argument_group" title="argparse.ArgumentParser.add_argument_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.ArgumentParser.add_argument_group()</span></code></a> or
<a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser.add_mutually_exclusive_group" title="argparse.ArgumentParser.add_mutually_exclusive_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.ArgumentParser.add_mutually_exclusive_group()</span></code></a> on a mutually
exclusive group now raise exceptions. This nesting was never supported,
often failed to work correctly, and was unintentionally exposed through
inheritance. This functionality has been deprecated since Python 3.11.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126491">gh-126491</a>: Add a marking phase to the GC. All objects that can be
transitively reached from builtin modules or the stacks are marked as
reachable before cycle detection. This reduces the amount of work done by
the GC by approximately half.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127020">gh-127020</a>: Fix a crash in the free threading build when
<a class="reference internal" href="../c-api/code.html#c.PyCode_GetCode" title="PyCode_GetCode"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_GetCode()</span></code></a>, <a class="reference internal" href="../c-api/code.html#c.PyCode_GetVarnames" title="PyCode_GetVarnames"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_GetVarnames()</span></code></a>,
<a class="reference internal" href="../c-api/code.html#c.PyCode_GetCellvars" title="PyCode_GetCellvars"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_GetCellvars()</span></code></a>, or <a class="reference internal" href="../c-api/code.html#c.PyCode_GetFreevars" title="PyCode_GetFreevars"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_GetFreevars()</span></code></a> were called
from multiple threads at the same time.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127010">gh-127010</a>: Simplify GC tracking of dictionaries. All dictionaries are
tracked when created, rather than being lazily tracked when a trackable
object was added to them. This simplifies the code considerably and
results in a slight speedup.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126980">gh-126980</a>: Fix <a class="reference internal" href="../reference/datamodel.html#object.__buffer__" title="object.__buffer__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__buffer__()</span></code></a> of <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> crashing
when <a class="reference internal" href="../library/inspect.html#inspect.BufferFlags.READ" title="inspect.BufferFlags.READ"><code class="xref py py-attr docutils literal notranslate"><span class="pre">READ</span></code></a> or
<a class="reference internal" href="../library/inspect.html#inspect.BufferFlags.WRITE" title="inspect.BufferFlags.WRITE"><code class="xref py py-attr docutils literal notranslate"><span class="pre">WRITE</span></code></a> are passed as flags.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126937">gh-126937</a>: Fix <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when a <a class="reference internal" href="../library/ctypes.html#ctypes.Structure" title="ctypes.Structure"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.Structure</span></code></a> has a
field size that doesn’t fit into an unsigned 16-bit integer. Instead, the
maximum number of <em>bits</em> is <a class="reference internal" href="../library/sys.html#sys.maxsize" title="sys.maxsize"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.maxsize</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126868">gh-126868</a>: Increase performance of <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> by adding a freelist for
compact ints.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126881">gh-126881</a>: Fix crash in finalization of dtoa state. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126892">gh-126892</a>: Require cold or invalidated code to “warm up” before being JIT
compiled again.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126091">gh-126091</a>: Ensure stack traces are complete when throwing into a generator
chain that ends in a custom generator.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126024">gh-126024</a>: Optimize decoding of short UTF-8 sequences containing non-ASCII
characters by approximately 15%.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125420">gh-125420</a>: Add <a class="reference internal" href="../library/stdtypes.html#memoryview.index" title="memoryview.index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">memoryview.index()</span></code></a> to <a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a> objects.
Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125420">gh-125420</a>: Add <a class="reference internal" href="../library/stdtypes.html#memoryview.count" title="memoryview.count"><code class="xref py py-meth docutils literal notranslate"><span class="pre">memoryview.count()</span></code></a> to <a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a> objects.
Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124470">gh-124470</a>: Fix crash in free-threaded builds when replacing object
dictionary while reading attribute on another thread</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69639">gh-69639</a>: Implement mixed-mode arithmetic rules combining real and complex
numbers as specified by C standards since C99. Patch by Sergey B
Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120010">gh-120010</a>: Correct invalid corner cases which resulted in <code class="docutils literal notranslate"><span class="pre">(nan+nanj)</span></code>
output in complex multiplication, e.g., <code class="docutils literal notranslate"><span class="pre">(1e300+1j)*(nan+infj)</span></code>. Patch
by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109746">gh-109746</a>: If <code class="xref py py-func docutils literal notranslate"><span class="pre">_thread.start_new_thread()</span></code> fails to start a new
thread, it deletes its state from interpreter and thus avoids its repeated
cleanup on finalization.</p></li>
</ul>
</section>
<section id="id92">
<h3>C API<a class="headerlink" href="#id92" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127896">gh-127896</a>: The previously undocumented function <a class="reference internal" href="../c-api/sequence.html#c.PySequence_In" title="PySequence_In"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySequence_In()</span></code></a> is
<a class="reference internal" href="../glossary.html#term-soft-deprecated"><span class="xref std std-term">soft deprecated</span></a>. Use <a class="reference internal" href="../c-api/sequence.html#c.PySequence_Contains" title="PySequence_Contains"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySequence_Contains()</span></code></a> instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127791">gh-127791</a>: Fix loss of callbacks after more than one call to
<a class="reference internal" href="../c-api/init.html#c.PyUnstable_AtExit" title="PyUnstable_AtExit"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_AtExit()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127691">gh-127691</a>: The <a class="reference internal" href="../c-api/exceptions.html#unicodeexceptions"><span class="std std-ref">Unicode Exception Objects</span></a> C API
now raises a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> if its exception argument is not a
<a class="reference internal" href="../library/exceptions.html#UnicodeError" title="UnicodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeError</span></code></a> object. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123378">gh-123378</a>: Ensure that the value of <a class="reference internal" href="../library/exceptions.html#UnicodeError.end" title="UnicodeError.end"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeEncodeError.end</span></code></a> retrieved by <a class="reference internal" href="../c-api/exceptions.html#c.PyUnicodeEncodeError_GetEnd" title="PyUnicodeEncodeError_GetEnd"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeEncodeError_GetEnd()</span></code></a>
lies in <code class="docutils literal notranslate"><span class="pre">[min(1,</span> <span class="pre">objlen),</span> <span class="pre">max(min(1,</span> <span class="pre">objlen),</span> <span class="pre">objlen)]</span></code> where <em>objlen</em>
is the length of <a class="reference internal" href="../library/exceptions.html#UnicodeError.object" title="UnicodeError.object"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeEncodeError.object</span></code></a>.
Similar arguments apply to <a class="reference internal" href="../library/exceptions.html#UnicodeDecodeError" title="UnicodeDecodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeDecodeError</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#UnicodeTranslateError" title="UnicodeTranslateError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeTranslateError</span></code></a> and their corresponding C interface. Patch by
Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127314">gh-127314</a>: Improve error message when calling the C API without an active
thread state on the <a class="reference internal" href="../glossary.html#term-free-threading"><span class="xref std std-term">free-threaded</span></a> build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123378">gh-123378</a>: Ensure that the value of <a class="reference internal" href="../library/exceptions.html#UnicodeError.start" title="UnicodeError.start"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeEncodeError.start</span></code></a> retrieved by <a class="reference internal" href="../c-api/exceptions.html#c.PyUnicodeEncodeError_GetStart" title="PyUnicodeEncodeError_GetStart"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeEncodeError_GetStart()</span></code></a>
lies in <code class="docutils literal notranslate"><span class="pre">[0,</span> <span class="pre">max(0,</span> <span class="pre">objlen</span> <span class="pre">-</span> <span class="pre">1)]</span></code> where <em>objlen</em> is the length of
<a class="reference internal" href="../library/exceptions.html#UnicodeError.object" title="UnicodeError.object"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeEncodeError.object</span></code></a>. Similar arguments
apply to <a class="reference internal" href="../library/exceptions.html#UnicodeDecodeError" title="UnicodeDecodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeDecodeError</span></code></a> and <a class="reference internal" href="../library/exceptions.html#UnicodeTranslateError" title="UnicodeTranslateError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeTranslateError</span></code></a> and
their corresponding C interface. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109523">gh-109523</a>: Reading text from a non-blocking stream with <code class="docutils literal notranslate"><span class="pre">read</span></code> may now
raise a <a class="reference internal" href="../library/exceptions.html#BlockingIOError" title="BlockingIOError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BlockingIOError</span></code></a> if the operation cannot immediately return
bytes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102471">gh-102471</a>: Add a new import and export API for Python <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> objects
(<span class="target" id="index-36"></span><a class="pep reference external" href="https://peps.python.org/pep-0757/"><strong>PEP 757</strong></a>):</p>
<ul class="simple">
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLong_GetNativeLayout" title="PyLong_GetNativeLayout"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_GetNativeLayout()</span></code></a>;</p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLong_Export" title="PyLong_Export"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_Export()</span></code></a>;</p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLong_FreeExport" title="PyLong_FreeExport"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FreeExport()</span></code></a>;</p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLongWriter_Create" title="PyLongWriter_Create"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLongWriter_Create()</span></code></a>;</p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLongWriter_Finish" title="PyLongWriter_Finish"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLongWriter_Finish()</span></code></a>;</p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLongWriter_Discard" title="PyLongWriter_Discard"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLongWriter_Discard()</span></code></a>.</p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121058">gh-121058</a>: <code class="docutils literal notranslate"><span class="pre">PyThreadState_Clear()</span></code> now warns (and calls
<code class="docutils literal notranslate"><span class="pre">sys.excepthook</span></code>) if the thread state still has an active exception.</p></li>
</ul>
</section>
<section id="id93">
<h3>Build<a class="headerlink" href="#id93" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127865">gh-127865</a>: Fix build failure on systems without thread-locals support.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127629">gh-127629</a>: Emscripten builds now include ctypes support.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/127111">gh-127111</a>: Updated the Emscripten web example to use ES6 modules and be
built into a distinct <code class="docutils literal notranslate"><span class="pre">web_example</span></code> subfolder.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115869">gh-115869</a>: Make <code class="docutils literal notranslate"><span class="pre">jit_stencils.h</span></code> (which is produced during JIT builds)
reproducible.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126898">gh-126898</a>: The Emscripten build of Python is now based on ES6 modules.</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-alpha-2">
<h2>Python 3.14.0 alpha 2<a class="headerlink" href="#python-3-14-0-alpha-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2024-11-19</em></p>
<section id="id94">
<h3>Windows<a class="headerlink" href="#id94" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126911">gh-126911</a>: Update credits command output.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118973">gh-118973</a>: Ensures the experimental free-threaded install includes the
<code class="docutils literal notranslate"><span class="pre">_tkinter</span></code> module. The optional Tcl/Tk component must also be installed
in order for the module to work.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126497">gh-126497</a>: Fixes venv failure due to missing redirector executables in
experimental free-threaded installs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126074">gh-126074</a>: Removed unnecessary DLLs from Windows embeddable package</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125315">gh-125315</a>: Avoid crashing in <a class="reference internal" href="../library/platform.html#module-platform" title="platform: Retrieves as much platform identifying data as possible."><code class="xref py py-mod docutils literal notranslate"><span class="pre">platform</span></code></a> due to slow WMI calls on some
Windows machines.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126084">gh-126084</a>: Fix venvwlauncher to launch pythonw instead of python so no
extra console window is created.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125842">gh-125842</a>: Fix a <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> when <a class="reference internal" href="../library/sys.html#sys.exit" title="sys.exit"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.exit()</span></code></a> is called with
<code class="docutils literal notranslate"><span class="pre">0xffffffff</span></code> on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125550">gh-125550</a>: Enable the <a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a> to detect Python 3.14 installs from
the Windows Store.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123803">gh-123803</a>: All Windows code pages are now supported as “cpXXX” codecs on
Windows.</p></li>
</ul>
</section>
<section id="id95">
<h3>Tools/Demos<a class="headerlink" href="#id95" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126807">gh-126807</a>: Fix extraction warnings in <strong class="program">pygettext.py</strong> caused by
mistaking function definitions for function calls.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126167">gh-126167</a>: The iOS testbed was modified so that it can be used by
third-party projects for testing purposes.</p></li>
</ul>
</section>
<section id="id96">
<h3>Tests<a class="headerlink" href="#id96" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126909">gh-126909</a>: Fix test_os extended attribute tests to work on filesystems
with 1 KiB xattr size limit.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125730">gh-125730</a>: Change <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span></code> to not run GUI tests by default. Use
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">ci</span></code> to run tests with GUI tests instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124295">gh-124295</a>: Add translation tests to the <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> module.</p></li>
</ul>
</section>
<section id="id97">
<h3>Security<a class="headerlink" href="#id97" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126623">gh-126623</a>: Upgrade libexpat to 2.6.4</p></li>
</ul>
</section>
<section id="id98">
<h3>Library<a class="headerlink" href="#id98" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85957">gh-85957</a>: Add missing MIME types for images with RFCs: emf, fits, g3fax,
jp2, jpm, jpx, t38, tiff-fx and wmf. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126920">gh-126920</a>: Fix the <code class="docutils literal notranslate"><span class="pre">prefix</span></code> and <code class="docutils literal notranslate"><span class="pre">exec_prefix</span></code> keys from
<a class="reference internal" href="../library/sysconfig.html#sysconfig.get_config_vars" title="sysconfig.get_config_vars"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_config_vars()</span></code></a> incorrectly having the same value as
<a class="reference internal" href="../library/sys.html#sys.base_prefix" title="sys.base_prefix"><code class="xref py py-const docutils literal notranslate"><span class="pre">sys.base_prefix</span></code></a> and <a class="reference internal" href="../library/sys.html#sys.base_exec_prefix" title="sys.base_exec_prefix"><code class="xref py py-const docutils literal notranslate"><span class="pre">sys.base_exec_prefix</span></code></a>,
respectively, inside virtual environments. They now accurately reflect
<a class="reference internal" href="../library/sys.html#sys.prefix" title="sys.prefix"><code class="xref py py-const docutils literal notranslate"><span class="pre">sys.prefix</span></code></a> and <a class="reference internal" href="../library/sys.html#sys.exec_prefix" title="sys.exec_prefix"><code class="xref py py-const docutils literal notranslate"><span class="pre">sys.exec_prefix</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/67877">gh-67877</a>: Fix memory leaks when <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">regular</span> <span class="pre">expression</span></code></a> matching
terminates abruptly, either because of a signal or because memory
allocation fails.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125063">gh-125063</a>: <a class="reference internal" href="../library/marshal.html#module-marshal" title="marshal: Convert Python objects to streams of bytes and back (with different constraints)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">marshal</span></code></a> now supports <a class="reference internal" href="../library/functions.html#slice" title="slice"><code class="xref py py-class docutils literal notranslate"><span class="pre">slice</span></code></a> objects. The marshal
format version was increased to 5.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126789">gh-126789</a>: Fixed the values of <a class="reference internal" href="../library/sysconfig.html#sysconfig.get_config_vars" title="sysconfig.get_config_vars"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_config_vars()</span></code></a>,
<a class="reference internal" href="../library/sysconfig.html#sysconfig.get_paths" title="sysconfig.get_paths"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_paths()</span></code></a>, and their siblings when the <a class="reference internal" href="../library/site.html#module-site" title="site: Module responsible for site-specific configuration."><code class="xref py py-mod docutils literal notranslate"><span class="pre">site</span></code></a>
initialization happens after <a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a> has built a cache for
<a class="reference internal" href="../library/sysconfig.html#sysconfig.get_config_vars" title="sysconfig.get_config_vars"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_config_vars()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126188">gh-126188</a>: Update bundled pip to 24.3.1</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126766">gh-126766</a>: Fix issue where <a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.url2pathname()</span></code></a> failed to
discard two leading slashes introducing an empty authority section.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126705">gh-126705</a>: Allow <a class="reference internal" href="../library/os.html#os.PathLike" title="os.PathLike"><code class="xref py py-class docutils literal notranslate"><span class="pre">os.PathLike</span></code></a> to be a base for Protocols.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126699">gh-126699</a>: Allow <a class="reference internal" href="../library/collections.abc.html#collections.abc.AsyncIterator" title="collections.abc.AsyncIterator"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.AsyncIterator</span></code></a> to be a base for
Protocols.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126654">gh-126654</a>: Fix crash when non-dict was passed to several functions in
<code class="docutils literal notranslate"><span class="pre">_interpreters</span></code> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104745">gh-104745</a>: Limit starting a patcher (from <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.patch" title="unittest.mock.patch"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.patch()</span></code></a> or
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.patch.object" title="unittest.mock.patch.object"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.patch.object()</span></code></a>) more than once without stopping it</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126595">gh-126595</a>: Fix a crash when instantiating <a class="reference internal" href="../library/itertools.html#itertools.count" title="itertools.count"><code class="xref py py-class docutils literal notranslate"><span class="pre">itertools.count</span></code></a> with an
initial count of <a class="reference internal" href="../library/sys.html#sys.maxsize" title="sys.maxsize"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.maxsize</span></code></a> on debug builds. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120423">gh-120423</a>: Fix issue where <a class="reference internal" href="../library/urllib.request.html#urllib.request.pathname2url" title="urllib.request.pathname2url"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.pathname2url()</span></code></a> mishandled
Windows paths with embedded forward slashes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126565">gh-126565</a>: Improve performances of <a class="reference internal" href="../library/zipfile.html#zipfile.Path.open" title="zipfile.Path.open"><code class="xref py py-meth docutils literal notranslate"><span class="pre">zipfile.Path.open()</span></code></a> for
non-reading modes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126505">gh-126505</a>: Fix bugs in compiling case-insensitive <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">regular</span>
<span class="pre">expressions</span></code></a> with character classes containing non-BMP characters:
upper-case non-BMP character did was ignored and the ASCII flag was
ignored when matching a character range whose upper bound is beyond the
BMP region.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117378">gh-117378</a>: Fixed the <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> <code class="docutils literal notranslate"><span class="pre">"forkserver"</span></code> start method
forkserver process to correctly inherit the parent’s <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a>
during the importing of <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.set_forkserver_preload" title="multiprocessing.set_forkserver_preload"><code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocessing.set_forkserver_preload()</span></code></a>
modules in the same manner as <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a> is configured in workers
before executing work items.</p>
<p>This bug caused some forkserver module preloading to silently fail to
preload. This manifested as a performance degradation in child processes
when the <code class="docutils literal notranslate"><span class="pre">sys.path</span></code> was required due to additional repeated work in
every worker.</p>
<p>It could also have a side effect of <code class="docutils literal notranslate"><span class="pre">""</span></code> remaining in <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a>
during forkserver preload imports instead of the absolute path from
<a class="reference internal" href="../library/os.html#os.getcwd" title="os.getcwd"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.getcwd()</span></code></a> at multiprocessing import time used in the worker
<code class="docutils literal notranslate"><span class="pre">sys.path</span></code>.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">sys.path</span></code> differences between phases in the child process could
potentially have caused preload to import incorrect things from the wrong
location. We are unaware of that actually having happened in practice.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125679">gh-125679</a>: The <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Lock" title="multiprocessing.Lock"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Lock</span></code></a> and
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.RLock" title="multiprocessing.RLock"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.RLock</span></code></a> <code class="docutils literal notranslate"><span class="pre">repr</span></code> values no longer say “unknown” on
macOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126476">gh-126476</a>: Raise <a class="reference internal" href="../library/calendar.html#calendar.IllegalMonthError" title="calendar.IllegalMonthError"><code class="xref py py-class docutils literal notranslate"><span class="pre">calendar.IllegalMonthError</span></code></a> (now a subclass of
<a class="reference internal" href="../library/exceptions.html#IndexError" title="IndexError"><code class="xref py py-class docutils literal notranslate"><span class="pre">IndexError</span></code></a>) for <a class="reference internal" href="../library/calendar.html#calendar.month" title="calendar.month"><code class="xref py py-func docutils literal notranslate"><span class="pre">calendar.month()</span></code></a> when the input month is
not correct.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126489">gh-126489</a>: The Python implementation of <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a> no longer calls
<a class="reference internal" href="../library/pickle.html#pickle.Pickler.persistent_id" title="pickle.Pickler.persistent_id"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pickle.Pickler.persistent_id()</span></code></a> for the result of
<code class="xref py py-meth docutils literal notranslate"><span class="pre">persistent_id()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126451">gh-126451</a>: Register the <a class="reference internal" href="../library/contextvars.html#contextvars.Context" title="contextvars.Context"><code class="xref py py-class docutils literal notranslate"><span class="pre">contextvars.Context</span></code></a> type to
<a class="reference internal" href="../library/collections.abc.html#collections.abc.Mapping" title="collections.abc.Mapping"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.Mapping</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126175">gh-126175</a>: Add <code class="docutils literal notranslate"><span class="pre">msg</span></code>, <code class="docutils literal notranslate"><span class="pre">doc</span></code>, <code class="docutils literal notranslate"><span class="pre">pos</span></code>, <code class="docutils literal notranslate"><span class="pre">lineno</span></code> and <code class="docutils literal notranslate"><span class="pre">colno</span></code>
attributes to <a class="reference internal" href="../library/tomllib.html#tomllib.TOMLDecodeError" title="tomllib.TOMLDecodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">tomllib.TOMLDecodeError</span></code></a>. Deprecate instantiating with
free-form arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89416">gh-89416</a>: Add <span class="target" id="index-37"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9559.html"><strong>RFC 9559</strong></a> MIME types for Matroska audiovisual container
formats. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126417">gh-126417</a>: Register the <code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.managers.DictProxy</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.managers.ListProxy</span></code> types in
<a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing.managers" title="multiprocessing.managers: Share data between process with shared objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing.managers</span></code></a> to <a class="reference internal" href="../library/collections.abc.html#collections.abc.MutableMapping" title="collections.abc.MutableMapping"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.MutableMapping</span></code></a>
and <a class="reference internal" href="../library/collections.abc.html#collections.abc.MutableSequence" title="collections.abc.MutableSequence"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.MutableSequence</span></code></a>, respectively.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126390">gh-126390</a>: Add support for returning intermixed options and non-option
arguments in order in <a class="reference internal" href="../library/getopt.html#getopt.gnu_getopt" title="getopt.gnu_getopt"><code class="xref py py-func docutils literal notranslate"><span class="pre">getopt.gnu_getopt()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126374">gh-126374</a>: Add support for options with optional arguments in the
<a class="reference internal" href="../library/getopt.html#module-getopt" title="getopt: Portable parser for command line options; support both short and long option names."><code class="xref py py-mod docutils literal notranslate"><span class="pre">getopt</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126363">gh-126363</a>: Speed up pattern parsing in <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> by
skipping creation of a <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> object for the pattern.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126353">gh-126353</a>: <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.get_event_loop" title="asyncio.get_event_loop"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.get_event_loop()</span></code></a> now does not implicitly creates
an event loop. It now raises a <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> if there is no set
event loop. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126313">gh-126313</a>: Fix an issue in <a class="reference internal" href="../library/curses.html#curses.napms" title="curses.napms"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.napms()</span></code></a> when
<a class="reference internal" href="../library/curses.html#curses.initscr" title="curses.initscr"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.initscr()</span></code></a> has not yet been called. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126303">gh-126303</a>: Fix pickling and copying of <a class="reference internal" href="../library/os.html#os.sched_param" title="os.sched_param"><code class="xref py py-class docutils literal notranslate"><span class="pre">os.sched_param</span></code></a> objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126138">gh-126138</a>: Fix a use-after-free crash on <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Task</span></code></a> objects
whose underlying coroutine yields an object that implements an evil
<a class="reference internal" href="../reference/datamodel.html#object.__getattribute__" title="object.__getattribute__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__getattribute__()</span></code></a>. Patch by Nico Posada.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120057">gh-120057</a>: Replace the <code class="docutils literal notranslate"><span class="pre">os.environ.refresh()</span></code> method with a new
<a class="reference internal" href="../library/os.html#os.reload_environ" title="os.reload_environ"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.reload_environ()</span></code></a> function. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126220">gh-126220</a>: Fix crash in <code class="xref py py-class docutils literal notranslate"><span class="pre">cProfile.Profile</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">_lsprof.Profiler</span></code> when their callbacks were directly called with
0 arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126212">gh-126212</a>: Fix issue where <a class="reference internal" href="../library/urllib.request.html#urllib.request.pathname2url" title="urllib.request.pathname2url"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.pathname2url()</span></code></a> and
<a class="reference internal" href="../library/urllib.request.html#urllib.request.url2pathname" title="urllib.request.url2pathname"><code class="xref py py-func docutils literal notranslate"><span class="pre">url2pathname()</span></code></a> removed slashes from Windows DOS
drive paths and URLs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126223">gh-126223</a>: Raise a <a class="reference internal" href="../library/exceptions.html#UnicodeEncodeError" title="UnicodeEncodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeEncodeError</span></code></a> instead of a
<a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> upon calling <code class="xref py py-func docutils literal notranslate"><span class="pre">_interpreters.create()</span></code> with an
invalid Unicode character.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126205">gh-126205</a>: Fix issue where <a class="reference internal" href="../library/urllib.request.html#urllib.request.pathname2url" title="urllib.request.pathname2url"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.pathname2url()</span></code></a> generated
URLs beginning with four slashes (rather than two) when given a Windows
UNC path.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126156">gh-126156</a>: Improved performances of creating
<a class="reference internal" href="../library/http.cookies.html#http.cookies.Morsel" title="http.cookies.Morsel"><code class="xref py py-class docutils literal notranslate"><span class="pre">Morsel</span></code></a> objects by a factor of 3.8x.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126105">gh-126105</a>: Fix a crash in <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> when the <a class="reference internal" href="../library/ast.html#ast.AST._fields" title="ast.AST._fields"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ast.AST._fields</span></code></a>
attribute is deleted.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126106">gh-126106</a>: Fixes a possible <code class="docutils literal notranslate"><span class="pre">NULL</span></code> pointer dereference in <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126080">gh-126080</a>: Fix a use-after-free crash on <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Task</span></code></a> objects for
which the underlying event loop implements an evil
<a class="reference internal" href="../reference/datamodel.html#object.__getattribute__" title="object.__getattribute__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__getattribute__()</span></code></a>. Reported by Nico-Posada. Patch by
Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125322">gh-125322</a>: Correct detection of complex numbers support in libffi.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126083">gh-126083</a>: Fixed a reference leak in <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Task</span></code></a> objects when
reinitializing the same object with a non-<code class="docutils literal notranslate"><span class="pre">None</span></code> context. Patch by Nico
Posada.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126068">gh-126068</a>: Fix exceptions in the <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> module so that only error
messages for ArgumentError and ArgumentTypeError are now translated.
ArgumentError is now only used for command line errors, not for logical
errors in the program. TypeError is now raised instead of ValueError for
some logical errors.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125413">gh-125413</a>: Add <code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.scandir()</span></code> method to efficiently fetch
directory children and their file attributes. This is a trivial wrapper of
<a class="reference internal" href="../library/os.html#os.scandir" title="os.scandir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.scandir()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125984">gh-125984</a>: Fix use-after-free crashes on <a class="reference internal" href="../library/asyncio-future.html#asyncio.Future" title="asyncio.Future"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Future</span></code></a> objects
for which the underlying event loop implements an evil
<a class="reference internal" href="../reference/datamodel.html#object.__getattribute__" title="object.__getattribute__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__getattribute__()</span></code></a>. Reported by Nico-Posada. Patch by
Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125926">gh-125926</a>: Fix <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urljoin" title="urllib.parse.urljoin"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urljoin()</span></code></a> for base URI with undefined
authority. Although <span class="target" id="index-38"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3986.html"><strong>RFC 3986</strong></a> only specify reference resolution for
absolute base URI, <code class="xref py py-func docutils literal notranslate"><span class="pre">urljoin()</span></code> should continue to return sensible
result for relative base URI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125969">gh-125969</a>: Fix an out-of-bounds crash when an evil
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.call_soon" title="asyncio.loop.call_soon"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.call_soon()</span></code></a> mutates the length of the internal
callbacks list. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125966">gh-125966</a>: Fix a use-after-free crash in
<a class="reference internal" href="../library/asyncio-future.html#asyncio.Future.remove_done_callback" title="asyncio.Future.remove_done_callback"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Future.remove_done_callback()</span></code></a>. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125789">gh-125789</a>: Fix possible crash when mutating list of callbacks returned by
<code class="xref py py-attr docutils literal notranslate"><span class="pre">asyncio.Future._callbacks</span></code>. It now always returns a new copy in C
implementation <code class="xref py py-mod docutils literal notranslate"><span class="pre">_asyncio</span></code>. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126916">gh-126916</a>: Allow the <em>initial</em> parameter of <a class="reference internal" href="../library/functools.html#functools.reduce" title="functools.reduce"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.reduce()</span></code></a> to be
passed as a keyword argument. Patch by Sayandip Dutta.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124452">gh-124452</a>: Fix an issue in
<a class="reference internal" href="../library/email.policy.html#email.policy.EmailPolicy.header_source_parse" title="email.policy.EmailPolicy.header_source_parse"><code class="xref py py-meth docutils literal notranslate"><span class="pre">email.policy.EmailPolicy.header_source_parse()</span></code></a> and
<a class="reference internal" href="../library/email.policy.html#email.policy.Compat32.header_source_parse" title="email.policy.Compat32.header_source_parse"><code class="xref py py-meth docutils literal notranslate"><span class="pre">email.policy.Compat32.header_source_parse()</span></code></a> that introduced spurious
leading whitespaces into header values when the header includes a newline
character after the header name delimiter (<code class="docutils literal notranslate"><span class="pre">:</span></code>) and before the value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117941">gh-117941</a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.BooleanOptionalAction</span></code> now rejects option
names starting with <code class="docutils literal notranslate"><span class="pre">--no-</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125884">gh-125884</a>: Fixed the bug for <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> where it can’t set breakpoints on
functions with certain annotations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125355">gh-125355</a>: Fix several bugs in
<a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser.parse_intermixed_args" title="argparse.ArgumentParser.parse_intermixed_args"><code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.ArgumentParser.parse_intermixed_args()</span></code></a>.</p>
<ul class="simple">
<li><p>The parser no longer changes temporarily during parsing.</p></li>
<li><p>Default values are not processed twice.</p></li>
<li><p>Required mutually exclusive groups containing positional arguments are now supported.</p></li>
<li><p>The missing arguments report now includes the names of all required optional and positional arguments.</p></li>
<li><p>Unknown options can be intermixed with positional arguments in parse_known_intermixed_args().</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125767">gh-125767</a>: <a class="reference internal" href="../library/functions.html#super" title="super"><code class="xref py py-class docutils literal notranslate"><span class="pre">super</span></code></a> objects are now <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickleable</span></code></a> and
<a class="reference internal" href="../library/copy.html#module-copy" title="copy: Shallow and deep copy operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">copyable</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124969">gh-124969</a>: <code class="docutils literal notranslate"><span class="pre">locale.nl_langinfo(locale.ALT_DIGITS)</span></code> now returns a string
again. The returned value consists of up to 100 semicolon-separated
symbols.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84850">gh-84850</a>: Remove <code class="xref py py-class docutils literal notranslate"><span class="pre">URLopener</span></code> and <code class="xref py py-class docutils literal notranslate"><span class="pre">FancyURLopener</span></code> classes
from <a class="reference internal" href="../library/urllib.request.html#module-urllib.request" title="urllib.request: Extensible library for opening URLs."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.request</span></code></a>. They had previously raised
<a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> since Python 3.3.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125666">gh-125666</a>: Avoid the exiting the interpreter if a null byte is given as
input in the new REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125710">gh-125710</a>: [Enum] fix hashable<->nonhashable comparisons for member values</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125631">gh-125631</a>: Restore ability to set <a class="reference internal" href="../library/pickle.html#pickle.Pickler.persistent_id" title="pickle.Pickler.persistent_id"><code class="xref py py-attr docutils literal notranslate"><span class="pre">persistent_id</span></code></a>
and <a class="reference internal" href="../library/pickle.html#pickle.Unpickler.persistent_load" title="pickle.Unpickler.persistent_load"><code class="xref py py-attr docutils literal notranslate"><span class="pre">persistent_load</span></code></a> attributes of instances of
the <code class="xref py py-class docutils literal notranslate"><span class="pre">Pickler</span></code> and <code class="xref py py-class docutils literal notranslate"><span class="pre">Unpickler</span></code> classes in the <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a>
module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125378">gh-125378</a>: Fixed the bug in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> where after a multi-line command,
an empty line repeats the first line of the multi-line command, instead of
the full command.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125682">gh-125682</a>: Reject non-ASCII digits in the Python implementation of
<a class="reference internal" href="../library/json.html#json.loads" title="json.loads"><code class="xref py py-func docutils literal notranslate"><span class="pre">json.loads()</span></code></a> conforming to the JSON specification.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125660">gh-125660</a>: Reject invalid unicode escapes for Python implementation of
<a class="reference internal" href="../library/json.html#json.loads" title="json.loads"><code class="xref py py-func docutils literal notranslate"><span class="pre">json.loads()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/52551">gh-52551</a>: Use <code class="xref c c-func docutils literal notranslate"><span class="pre">wcsftime()</span></code> to implement <a class="reference internal" href="../library/time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> on
Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125259">gh-125259</a>: Fix the notes removal logic for errors thrown in enum
initialization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125633">gh-125633</a>: Add function <a class="reference internal" href="../library/inspect.html#inspect.ispackage" title="inspect.ispackage"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.ispackage()</span></code></a> to determine whether an
object is a <a class="reference internal" href="../glossary.html#term-package"><span class="xref std std-term">package</span></a> or not.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125614">gh-125614</a>: In the <a class="reference internal" href="../library/annotationlib.html#annotationlib.Format.FORWARDREF" title="annotationlib.Format.FORWARDREF"><code class="xref py py-data docutils literal notranslate"><span class="pre">FORWARDREF</span></code></a> format of
<a class="reference internal" href="../library/annotationlib.html#module-annotationlib" title="annotationlib: Functionality for introspecting annotations"><code class="xref py py-mod docutils literal notranslate"><span class="pre">annotationlib</span></code></a>, fix bug where nested expressions were not returned
as <a class="reference internal" href="../library/annotationlib.html#annotationlib.ForwardRef" title="annotationlib.ForwardRef"><code class="xref py py-class docutils literal notranslate"><span class="pre">annotationlib.ForwardRef</span></code></a> format.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125590">gh-125590</a>: Allow <code class="docutils literal notranslate"><span class="pre">FrameLocalsProxy</span></code> to delete and pop if the key is not
a fast variable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125600">gh-125600</a>: Only show stale code warning in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> when we display
source code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125542">gh-125542</a>: Deprecate passing keyword-only <em>prefix_chars</em> argument to
<a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser.add_argument_group" title="argparse.ArgumentParser.add_argument_group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.ArgumentParser.add_argument_group()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125541">gh-125541</a>: Pressing <kbd class="kbd docutils literal notranslate">Ctrl</kbd>-<kbd class="kbd docutils literal notranslate">C</kbd> while blocked in
<a class="reference internal" href="../library/threading.html#threading.Lock.acquire" title="threading.Lock.acquire"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.Lock.acquire()</span></code></a>, <a class="reference internal" href="../library/threading.html#threading.RLock.acquire" title="threading.RLock.acquire"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.RLock.acquire()</span></code></a>, and
<a class="reference internal" href="../library/threading.html#threading.Thread.join" title="threading.Thread.join"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.Thread.join()</span></code></a> now interrupts the function call and raises
a <a class="reference internal" href="../library/exceptions.html#KeyboardInterrupt" title="KeyboardInterrupt"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyboardInterrupt</span></code></a> exception on Windows, similar to how those
functions behave on macOS and Linux.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125519">gh-125519</a>: Improve traceback if <a class="reference internal" href="../library/importlib.html#importlib.reload" title="importlib.reload"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.reload()</span></code></a> is called with an
object that is not a module. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125451">gh-125451</a>: Fix deadlock when
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor</span></code></a> shuts down concurrently
with an error when feeding a job to a worker process.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125115">gh-125115</a>: Fixed a bug in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> where arguments starting with <code class="docutils literal notranslate"><span class="pre">-</span></code>
can’t be passed to the debugged script.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125398">gh-125398</a>: Fix the conversion of the <code class="xref std std-envvar docutils literal notranslate"><span class="pre">VIRTUAL_ENV</span></code> path in the
activate script in <a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a> when running in Git Bash for Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125245">gh-125245</a>: Fix race condition when importing <a class="reference internal" href="../library/collections.abc.html#module-collections.abc" title="collections.abc: Abstract base classes for containers"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a>, which
could incorrectly return an empty module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/52551">gh-52551</a>: Fix encoding issues in <a class="reference internal" href="../library/time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a>, the
<a class="reference internal" href="../library/datetime.html#datetime.datetime.strftime" title="datetime.datetime.strftime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">strftime()</span></code></a> method of the <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a> classes
<a class="reference internal" href="../library/datetime.html#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a>, <a class="reference internal" href="../library/datetime.html#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code></a> and formatting of these classes. Characters not
encodable in the current locale are now acceptable in the format string.
Surrogate pairs and sequence of surrogatescape-encoded bytes are no longer
recombinated. Embedded null character no longer terminates the format
string.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124984">gh-124984</a>: Fixed thread safety in <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> in the free-threaded build.
OpenSSL operations are now protected by a per-object lock.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124651">gh-124651</a>: Properly quote template strings in <a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a> activation
scripts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124694">gh-124694</a>: We’ve added
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.InterpreterPoolExecutor" title="concurrent.futures.InterpreterPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.InterpreterPoolExecutor</span></code></a>, which allows you to
run code in multiple isolated interpreters. This allows you to circumvent
the limitations of CPU-bound threads (due to the GIL). Patch by Eric Snow.</p>
<p>This addition is unrelated to <span class="target" id="index-39"></span><a class="pep reference external" href="https://peps.python.org/pep-0734/"><strong>PEP 734</strong></a>.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/58032">gh-58032</a>: Deprecate the <a class="reference internal" href="../library/argparse.html#argparse.FileType" title="argparse.FileType"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.FileType</span></code></a> type converter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99749">gh-99749</a>: Adds a feature to optionally enable suggestions for argument
choices and subparser names if mistyped by the user.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/58956">gh-58956</a>: Fixed a bug in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> where sometimes the breakpoint won’t
trigger if it was set on a function which is already in the call stack.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124111">gh-124111</a>: The tkinter module can now be built to use either the new
version 9.0.0 of Tcl/Tk or the latest release 8.6.15 of Tcl/Tk 8. Tcl/Tk
9 includes many improvements, both to the Tcl language and to the
appearance and utility of the graphical user interface provided by Tk.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/80958">gh-80958</a>: unittest discovery supports PEP 420 namespace packages as start
directory again.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123370">gh-123370</a>: Fix the canvas not clearing after running turtledemo clock.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89083">gh-89083</a>: Add <a class="reference internal" href="../library/uuid.html#uuid.uuid8" title="uuid.uuid8"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid.uuid8()</span></code></a> for generating UUIDv8 objects as
specified in <span class="target" id="index-40"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9562.html"><strong>RFC 9562</strong></a>. Patch by Bénédikt Tran</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122549">gh-122549</a>: Add <a class="reference internal" href="../library/platform.html#platform.invalidate_caches" title="platform.invalidate_caches"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.invalidate_caches()</span></code></a> to invalidate cached
results.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120754">gh-120754</a>: Update unbounded <code class="docutils literal notranslate"><span class="pre">read</span></code> calls in <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a> to specify an
explicit <code class="docutils literal notranslate"><span class="pre">size</span></code> putting a limit on how much data they may read. This
also updates handling around ZIP max comment size to match the standard
instead of reading comments that are one byte too long.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121267">gh-121267</a>: Improve the performance of <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> when writing files,
by caching user names and group names.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/70764">gh-70764</a>: Fixed an issue where <a class="reference internal" href="../library/inspect.html#inspect.getclosurevars" title="inspect.getclosurevars"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getclosurevars()</span></code></a> would
incorrectly classify an attribute name as a global variable when the name
exists both as an attribute name and a global variable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118289">gh-118289</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">posixpath.realpath()</span></code> now raises
<a class="reference internal" href="../library/exceptions.html#NotADirectoryError" title="NotADirectoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotADirectoryError</span></code></a> when <em>strict</em> mode is enabled and a
non-directory path with a trailing slash is supplied.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119826">gh-119826</a>: Always return an absolute path for <a class="reference internal" href="../library/os.path.html#os.path.abspath" title="os.path.abspath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.abspath()</span></code></a> on
Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97850">gh-97850</a>: Remove deprecated <code class="xref py py-func docutils literal notranslate"><span class="pre">pkgutil.get_loader()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">pkgutil.find_loader()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118986">gh-118986</a>: Add <code class="xref py py-data docutils literal notranslate"><span class="pre">socket.IPV6_RECVERR</span></code> constant (available since
Linux 2.2).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116897">gh-116897</a>: Accepting objects with false values (like <code class="docutils literal notranslate"><span class="pre">0</span></code> and <code class="docutils literal notranslate"><span class="pre">[]</span></code>)
except empty strings, byte-like objects and <code class="docutils literal notranslate"><span class="pre">None</span></code> in
<a class="reference internal" href="../library/urllib.parse.html#module-urllib.parse" title="urllib.parse: Parse URLs into or assemble them from components."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.parse</span></code></a> functions <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.parse_qsl" title="urllib.parse.parse_qsl"><code class="xref py py-func docutils literal notranslate"><span class="pre">parse_qsl()</span></code></a> and
<a class="reference internal" href="../library/urllib.parse.html#urllib.parse.parse_qs" title="urllib.parse.parse_qs"><code class="xref py py-func docutils literal notranslate"><span class="pre">parse_qs()</span></code></a> is now deprecated.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101955">gh-101955</a>: Fix SystemError when match regular expression pattern
containing some combination of possessive quantifier, alternative and
capture group.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71936">gh-71936</a>: Fix a race condition in <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.pool.Pool" title="multiprocessing.pool.Pool"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.pool.Pool</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46128">bpo-46128</a>: Strip <a class="reference internal" href="../library/unittest.html#unittest.IsolatedAsyncioTestCase" title="unittest.IsolatedAsyncioTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.IsolatedAsyncioTestCase</span></code></a> stack frames
from reported stacktraces.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84852">gh-84852</a>: Add MIME types for MS Embedded OpenType, OpenType Layout,
TrueType, WOFF 1.0 and 2.0 fonts. Patch by Sahil Prajapati and Hugo van
Kemenade.</p></li>
</ul>
</section>
<section id="id99">
<h3>Documentation<a class="headerlink" href="#id99" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126622">gh-126622</a>: Added stub pages for removed modules explaining their removal,
where to find replacements, and linking to the last Python version that
supported them. Contributed by Ned Batchelder.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125277">gh-125277</a>: Require Sphinx 7.2.6 or later to build the Python
documentation. Patch by Adam Turner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/60712">gh-60712</a>: Include the <a class="reference internal" href="../library/functions.html#object" title="object"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a> type in the lists of documented
types. Change by Furkan Onder and Martin Panter.</p></li>
</ul>
</section>
<section id="id100">
<h3>Core and Builtins<a class="headerlink" href="#id100" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126795">gh-126795</a>: Increase the threshold for JIT code warmup. Depending on
platform and workload, this can result in performance gains of 1-9% and
memory savings of 3-5%.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126341">gh-126341</a>: Now <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> is raised instead of <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a>
when trying to iterate over a released <a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a> object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126688">gh-126688</a>: Fix a crash when calling <a class="reference internal" href="../library/os.html#os.fork" title="os.fork"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fork()</span></code></a> on some operating
systems, including SerenityOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126066">gh-126066</a>: Fix <a class="reference internal" href="../library/importlib.html#module-importlib" title="importlib: The implementation of the import machinery."><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib</span></code></a> to not write an incomplete .pyc files when
a ulimit or some other operating system mechanism is preventing the write
to go through fully.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126222">gh-126222</a>: Do not include count of “peek” items in <code class="docutils literal notranslate"><span class="pre">_PyUop_num_popped</span></code>.
This ensures that the correct number of items are popped from the stack
when a micro-op exits with an error.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126366">gh-126366</a>: Fix crash when using <code class="docutils literal notranslate"><span class="pre">yield</span> <span class="pre">from</span></code> on an object that raises an
exception in its <code class="docutils literal notranslate"><span class="pre">__iter__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126209">gh-126209</a>: Fix an issue with <code class="docutils literal notranslate"><span class="pre">skip_file_prefixes</span></code> parameter which
resulted in an inconsistent behaviour between the C and Python
implementations of <a class="reference internal" href="../library/warnings.html#warnings.warn" title="warnings.warn"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.warn()</span></code></a>. Patch by Daehee Kim.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126312">gh-126312</a>: Fix crash during garbage collection on an object frozen by
<a class="reference internal" href="../library/gc.html#gc.freeze" title="gc.freeze"><code class="xref py py-func docutils literal notranslate"><span class="pre">gc.freeze()</span></code></a> on the free-threaded build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103951">gh-103951</a>: Relax optimization requirements to allow fast attribute access
to module subclasses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126072">gh-126072</a>: Following <a class="reference external" href="https://github.com/python/cpython/issues/126101">gh-126101</a>, for <a class="reference internal" href="../c-api/code.html#codeobjects"><span class="std std-ref">Code Objects</span></a> like lambda,
annotation and type alias, we no longer add <code class="docutils literal notranslate"><span class="pre">None</span></code> to its
<a class="reference internal" href="../reference/datamodel.html#codeobject.co_consts" title="codeobject.co_consts"><code class="xref py py-attr docutils literal notranslate"><span class="pre">co_consts</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126195">gh-126195</a>: Improve JIT performance by 1.4% on macOS Apple Silicon by using
platform-specific memory protection APIs. Patch by Diego Russo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126139">gh-126139</a>: Provide better error location when attempting to use a
<a class="reference internal" href="../glossary.html#term-__future__"><span class="xref std std-term">future statement</span></a> with an unknown future feature.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126072">gh-126072</a>: Add a new attribute in <a class="reference internal" href="../reference/datamodel.html#codeobject.co_flags" title="codeobject.co_flags"><code class="xref py py-attr docutils literal notranslate"><span class="pre">co_flags</span></code></a> to indicate
whether the first item in <a class="reference internal" href="../reference/datamodel.html#codeobject.co_consts" title="codeobject.co_consts"><code class="xref py py-attr docutils literal notranslate"><span class="pre">co_consts</span></code></a> is the docstring.
If a code object has no docstring, <code class="docutils literal notranslate"><span class="pre">None</span></code> will <strong>NOT</strong> be inserted.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126076">gh-126076</a>: Relocated objects such as <code class="docutils literal notranslate"><span class="pre">tuple</span></code>, <code class="docutils literal notranslate"><span class="pre">bytes</span></code> and <code class="docutils literal notranslate"><span class="pre">str</span></code>
objects are properly tracked by <a class="reference internal" href="../library/tracemalloc.html#module-tracemalloc" title="tracemalloc: Trace memory allocations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tracemalloc</span></code></a> and its associated
hooks. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90370">gh-90370</a>: Avoid temporary tuple creation for vararg in argument passing
with Argument Clinic generated code (if arguments either vararg or
positional-only).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126018">gh-126018</a>: Fix a crash in <a class="reference internal" href="../library/sys.html#sys.audit" title="sys.audit"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.audit()</span></code></a> when passing a non-string as
first argument and Python was compiled in debug mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126012">gh-126012</a>: The <a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a> type now supports subscription, making
it a <a class="reference internal" href="../glossary.html#term-generic-type"><span class="xref std std-term">generic type</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125837">gh-125837</a>: Adds <a class="reference internal" href="../library/dis.html#opcode-LOAD_SMALL_INT"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_SMALL_INT</span></code></a> and <a class="reference internal" href="../library/dis.html#opcode-LOAD_CONST_IMMORTAL"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_CONST_IMMORTAL</span></code></a>
instructions. <code class="docutils literal notranslate"><span class="pre">LOAD_SMALL_INT</span></code> pushes a small integer equal to the
<code class="docutils literal notranslate"><span class="pre">oparg</span></code> to the stack. <code class="docutils literal notranslate"><span class="pre">LOAD_CONST_IMMORTAL</span></code> does the same as
<code class="docutils literal notranslate"><span class="pre">LOAD_CONST</span></code> but is more efficient for immortal objects. Removes
<code class="docutils literal notranslate"><span class="pre">RETURN_CONST</span></code> instruction.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125942">gh-125942</a>: On Android, the <code class="docutils literal notranslate"><span class="pre">errors</span></code> setting of <a class="reference internal" href="../library/sys.html#sys.stdout" title="sys.stdout"><code class="xref any py py-data docutils literal notranslate"><span class="pre">sys.stdout</span></code></a> was
changed from <code class="docutils literal notranslate"><span class="pre">surrogateescape</span></code> to <code class="docutils literal notranslate"><span class="pre">backslashreplace</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125859">gh-125859</a>: Fix a crash in the free threading build when
<a class="reference internal" href="../library/gc.html#gc.get_objects" title="gc.get_objects"><code class="xref py py-func docutils literal notranslate"><span class="pre">gc.get_objects()</span></code></a> or <a class="reference internal" href="../library/gc.html#gc.get_referrers" title="gc.get_referrers"><code class="xref py py-func docutils literal notranslate"><span class="pre">gc.get_referrers()</span></code></a> is called during an
in-progress garbage collection.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125868">gh-125868</a>: It was possible in 3.14.0a1 only for attribute lookup to give
the wrong value. This was due to an incorrect specialization in very
specific circumstances. This is fixed in 3.14.0a2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125498">gh-125498</a>: The JIT has been updated to leverage Clang 19’s new
<code class="docutils literal notranslate"><span class="pre">preserve_none</span></code> attribute, which supports more platforms and is more
useful than LLVM’s existing <code class="docutils literal notranslate"><span class="pre">ghccc</span></code> calling convention. This also
removes the need to manually patch the calling convention in LLVM IR,
simplifying the JIT compilation process.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125703">gh-125703</a>: Correctly honour <a class="reference internal" href="../library/tracemalloc.html#module-tracemalloc" title="tracemalloc: Trace memory allocations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tracemalloc</span></code></a> hooks in specialized
<code class="docutils literal notranslate"><span class="pre">Py_DECREF</span></code> paths. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125593">gh-125593</a>: Use color to highlight error locations in traceback from
exception group</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125017">gh-125017</a>: Fix crash on certain accesses to the <code class="docutils literal notranslate"><span class="pre">__annotations__</span></code> of
<a class="reference internal" href="../library/functions.html#staticmethod" title="staticmethod"><code class="xref py py-class docutils literal notranslate"><span class="pre">staticmethod</span></code></a> and <a class="reference internal" href="../library/functions.html#classmethod" title="classmethod"><code class="xref py py-class docutils literal notranslate"><span class="pre">classmethod</span></code></a> objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125588">gh-125588</a>: The Python PEG generator can now use f-strings in the grammar
actions. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125444">gh-125444</a>: Fix illegal instruction for older Arm architectures. Patch by
Diego Russo, testing by Ross Burton.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118423">gh-118423</a>: Add a new <code class="docutils literal notranslate"><span class="pre">INSTRUCTION_SIZE</span></code> macro to the cases generator
which returns the current instruction size.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125038">gh-125038</a>: Fix crash when iterating over a generator expression after
direct changes on <code class="docutils literal notranslate"><span class="pre">gi_frame.f_locals</span></code>. Patch by Mikhail Efimov.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124855">gh-124855</a>: Don’t allow the JIT and perf support to be active at the same
time. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123714">gh-123714</a>: Update JIT compilation to use LLVM 19</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123930">gh-123930</a>: Improve the error message when a script shadowing a module from
the standard library causes <a class="reference internal" href="../library/exceptions.html#ImportError" title="ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a> to be raised during a
“from” import. Similarly, improve the error message when a script
shadowing a third party module attempts to “from” import an attribute from
that third party module while still initialising.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119793">gh-119793</a>: The <a class="reference internal" href="../library/functions.html#map" title="map"><code class="xref py py-func docutils literal notranslate"><span class="pre">map()</span></code></a> built-in now has an optional keyword-only
<em>strict</em> flag like <a class="reference internal" href="../library/functions.html#zip" title="zip"><code class="xref py py-func docutils literal notranslate"><span class="pre">zip()</span></code></a> to check that all the iterables are of
equal length. Patch by Wannes Boeykens.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118950">gh-118950</a>: Fix bug where SSLProtocol.connection_lost wasn’t getting called
when OSError was thrown on writing to socket.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113570">gh-113570</a>: Fixed a bug in <code class="docutils literal notranslate"><span class="pre">reprlib.repr</span></code> where it incorrectly called the
repr method on shadowed Python built-in types.</p></li>
</ul>
</section>
<section id="id101">
<h3>C API<a class="headerlink" href="#id101" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126554">gh-126554</a>: Fix error handling in <a class="reference internal" href="../library/ctypes.html#ctypes.CDLL" title="ctypes.CDLL"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.CDLL</span></code></a> objects which could
result in a crash in rare situations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126061">gh-126061</a>: Add <a class="reference internal" href="../c-api/long.html#c.PyLong_IsPositive" title="PyLong_IsPositive"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_IsPositive()</span></code></a>, <a class="reference internal" href="../c-api/long.html#c.PyLong_IsNegative" title="PyLong_IsNegative"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_IsNegative()</span></code></a>
and <a class="reference internal" href="../c-api/long.html#c.PyLong_IsZero" title="PyLong_IsZero"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_IsZero()</span></code></a> for checking if a <a class="reference internal" href="../c-api/long.html#c.PyLongObject" title="PyLongObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyLongObject</span></code></a> is
positive, negative, or zero, respectively.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125608">gh-125608</a>: Fix a bug where dictionary watchers (e.g.,
<a class="reference internal" href="../c-api/dict.html#c.PyDict_Watch" title="PyDict_Watch"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_Watch()</span></code></a>) on an object’s attribute dictionary
(<a class="reference internal" href="../reference/datamodel.html#object.__dict__" title="object.__dict__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__dict__</span></code></a>) were not triggered when the object’s attributes
were modified.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123619">gh-123619</a>: Added the <a class="reference internal" href="../c-api/object.html#c.PyUnstable_Object_EnableDeferredRefcount" title="PyUnstable_Object_EnableDeferredRefcount"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_Object_EnableDeferredRefcount()</span></code></a>
function for enabling <span class="target" id="index-41"></span><a class="pep reference external" href="https://peps.python.org/pep-0703/"><strong>PEP 703</strong></a> deferred reference counting.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121654">gh-121654</a>: Add <a class="reference internal" href="../c-api/type.html#c.PyType_Freeze" title="PyType_Freeze"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_Freeze()</span></code></a> function to make a type immutable.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120026">gh-120026</a>: The <code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_HUGE_VAL</span></code> macro is <a class="reference internal" href="../glossary.html#term-soft-deprecated"><span class="xref std std-term">soft deprecated</span></a>.</p></li>
</ul>
</section>
<section id="id102">
<h3>Build<a class="headerlink" href="#id102" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126691">gh-126691</a>: Removed the <code class="docutils literal notranslate"><span class="pre">--with-emscripten-target</span></code> configure flag. We
unified the <code class="docutils literal notranslate"><span class="pre">node</span></code> and <code class="docutils literal notranslate"><span class="pre">browser</span></code> options and the same build can now be
used, independent of target runtime.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123877">gh-123877</a>: Use <code class="docutils literal notranslate"><span class="pre">wasm32-wasip1</span></code> as the target triple for WASI instead of
<code class="docutils literal notranslate"><span class="pre">wasm32-wasi</span></code>. The latter will eventually be reclaimed for WASI 1.0
while CPython currently only supports WASI preview1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126458">gh-126458</a>: Disable SIMD support for HACL under WASI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89640">gh-89640</a>: Hard-code float word ordering as little endian on WASM.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126206">gh-126206</a>: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">clinic</span></code> now runs Argument Clinic using the <code class="docutils literal notranslate"><span class="pre">--force</span></code>
option, thus forcefully regenerating generated code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/126187">gh-126187</a>: Introduced <code class="docutils literal notranslate"><span class="pre">Tools/wasm/emscripten.py</span></code> to simplify doing
Emscripten builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124932">gh-124932</a>: For cross builds, there is now support for having a different
install <code class="docutils literal notranslate"><span class="pre">prefix</span></code> than the <code class="docutils literal notranslate"><span class="pre">host_prefix</span></code> used by <code class="docutils literal notranslate"><span class="pre">getpath.py</span></code>. This
is set to <code class="docutils literal notranslate"><span class="pre">/</span></code> by default for Emscripten, on other platforms the default
behavior is the same as before.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125946">gh-125946</a>: The minimum supported Android version is now 7.0 (API level
24).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125940">gh-125940</a>: The Android build now supports <a class="reference external" href="https://developer.android.com/guide/practices/page-sizes">16 KB page sizes</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89640">gh-89640</a>: Improve detection of float word ordering on Linux when link-time
optimizations are enabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124928">gh-124928</a>: Emscripten builds now require node >= 18.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115382">gh-115382</a>: Fix cross compile failures when the host and target SOABIs
match.</p></li>
</ul>
</section>
</section>
<section id="python-3-14-0-alpha-1">
<h2>Python 3.14.0 alpha 1<a class="headerlink" href="#python-3-14-0-alpha-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2024-10-15</em></p>
<section id="id103">
<h3>macOS<a class="headerlink" href="#id103" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124448">gh-124448</a>: Update bundled Tcl/Tk in macOS installer to 8.6.15.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123797">gh-123797</a>: Check for runtime availability of <code class="docutils literal notranslate"><span class="pre">ptsname_r</span></code> function on
macos.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123418">gh-123418</a>: Updated macOS installer build to use OpenSSL 3.0.15.</p></li>
</ul>
</section>
<section id="id104">
<h3>Windows<a class="headerlink" href="#id104" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124487">gh-124487</a>: Increases Windows required OS and API level to Windows 10.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124609">gh-124609</a>: Fix <code class="docutils literal notranslate"><span class="pre">_Py_ThreadId</span></code> for Windows builds using MinGW. Patch by
Tony Roberts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124448">gh-124448</a>: Updated bundled Tcl/Tk to 8.6.15.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124254">gh-124254</a>: Ensures experimental free-threaded binaries remain installed
when updating.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123915">gh-123915</a>: Ensure that <code class="docutils literal notranslate"><span class="pre">Tools\msi\buildrelease.bat</span></code> uses different
directories for AMD64 and ARM64 builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123418">gh-123418</a>: Updated Windows build to use OpenSSL 3.0.15.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123476">gh-123476</a>: Add support for <code class="docutils literal notranslate"><span class="pre">socket.TCP_QUICKACK</span></code> on Windows platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122573">gh-122573</a>: The Windows build of CPython now requires 3.10 or newer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100256">gh-100256</a>: <a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a> no longer fails when it encounters an
inaccessible registry key.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119679">gh-119679</a>: Ensures correct import libraries are included in Windows
installs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119690">gh-119690</a>: Adds Unicode support and fixes audit events for
<code class="docutils literal notranslate"><span class="pre">_winapi.CreateNamedPipe</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111201">gh-111201</a>: Add support for new pyrepl on Windows</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119070">gh-119070</a>: Fixes <code class="docutils literal notranslate"><span class="pre">py.exe</span></code> handling of shebangs like <code class="docutils literal notranslate"><span class="pre">/usr/bin/env</span>
<span class="pre">python3.12</span></code>, which were previously interpreted as <code class="docutils literal notranslate"><span class="pre">python3.exe</span></code> instead
of <code class="docutils literal notranslate"><span class="pre">python3.12.exe</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117505">gh-117505</a>: Fixes an issue with the Windows installer not running ensurepip
in a fully isolated environment. This could cause unexpected interactions
with the user site-packages.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118209">gh-118209</a>: Avoid crashing in <a class="reference internal" href="../library/mmap.html#module-mmap" title="mmap: Interface to memory-mapped files for Unix and Windows."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mmap</span></code></a> on Windows when the mapped memory
is inaccessible due to file system errors or access violations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79846">gh-79846</a>: Makes <code class="code docutils literal notranslate"><span class="pre">ssl.create_default_context()</span></code> ignore invalid
certificates in the Windows certificate store</p></li>
</ul>
</section>
<section id="id105">
<h3>Tools/Demos<a class="headerlink" href="#id105" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123418">gh-123418</a>: Update GitHub CI workflows to use OpenSSL 3.0.15 and
multissltests to use 3.0.15, 3.1.7, and 3.2.3.</p></li>
</ul>
</section>
<section id="id106">
<h3>Tests<a class="headerlink" href="#id106" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125041">gh-125041</a>: Re-enable skipped tests for <a class="reference internal" href="../library/zlib.html#module-zlib" title="zlib: Low-level interface to compression and decompression routines compatible with gzip."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zlib</span></code></a> on the s390x
architecture: only skip checks of the compressed bytes, which can be
different between zlib’s software implementation and the
hardware-accelerated implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124378">gh-124378</a>: Updated <code class="docutils literal notranslate"><span class="pre">test_ttk</span></code> to pass with Tcl/Tk 8.6.15.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124213">gh-124213</a>: Detect whether the test suite is running inside a
systemd-nspawn container with <code class="docutils literal notranslate"><span class="pre">--suppress-sync=true</span></code> option, and skip
the <code class="docutils literal notranslate"><span class="pre">test_os</span></code> and <code class="docutils literal notranslate"><span class="pre">test_mmap</span></code> tests that are failing in this scenario.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124190">gh-124190</a>: Add capability to ignore entire files or directories in check
warning CI tool</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121921">gh-121921</a>: Update <code class="docutils literal notranslate"><span class="pre">Lib/test/crashers/bogus_code_obj.py</span></code> so that it
crashes properly again.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112301">gh-112301</a>: Add tooling to check for changes in compiler warnings. Patch by
Nate Ohlson.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/59022">gh-59022</a>: Add tests for <a class="reference internal" href="../library/pkgutil.html#pkgutil.extend_path" title="pkgutil.extend_path"><code class="xref py py-func docutils literal notranslate"><span class="pre">pkgutil.extend_path()</span></code></a>. Patch by Andreas
Stocker.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99242">gh-99242</a>: <a class="reference internal" href="../library/os.html#os.getloadavg" title="os.getloadavg"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.getloadavg()</span></code></a> may throw <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> when running
regression tests under certain conditions (e.g. chroot). This error is now
caught and ignored, since reporting load average is optional.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121084">gh-121084</a>: Fix test_typing random leaks. Clear typing ABC caches when
running tests for refleaks (<code class="docutils literal notranslate"><span class="pre">-R</span></code> option): call <code class="docutils literal notranslate"><span class="pre">_abc_caches_clear()</span></code>
on typing abstract classes and their subclasses. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121160">gh-121160</a>: Add a test for <a class="reference internal" href="../library/readline.html#readline.set_history_length" title="readline.set_history_length"><code class="xref py py-func docutils literal notranslate"><span class="pre">readline.set_history_length()</span></code></a>. Note that
this test may fail on readline libraries.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121200">gh-121200</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_expanduser_pwd2()</span></code> of <code class="docutils literal notranslate"><span class="pre">test_posixpath</span></code>. Call
<code class="docutils literal notranslate"><span class="pre">getpwnam()</span></code> to get <code class="docutils literal notranslate"><span class="pre">pw_dir</span></code>, since it can be different than
<code class="docutils literal notranslate"><span class="pre">getpwall()</span></code> <code class="docutils literal notranslate"><span class="pre">pw_dir</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121188">gh-121188</a>: When creating the JUnit XML file, regrtest now escapes
characters which are invalid in XML, such as the chr(27) control character
used in ANSI escape sequences. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120801">gh-120801</a>: Cleaned up fixtures for importlib.metadata tests and
consolidated behavior with ‘test.support.os_helper’.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119727">gh-119727</a>: Add <code class="docutils literal notranslate"><span class="pre">--single-process</span></code> command line option to Python test
runner (regrtest). Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119273">gh-119273</a>: Python test runner no longer runs tests using TTY (ex:
test_ioctl) in a process group (using <code class="docutils literal notranslate"><span class="pre">setsid()</span></code>). Previously, tests
using TTY were skipped. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119050">gh-119050</a>: regrtest test runner: Add XML support to the refleak checker
(-R option). Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101525">gh-101525</a>: Skip <code class="docutils literal notranslate"><span class="pre">test_gdb</span></code> if the binary is relocated by BOLT. Patch by
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107562">gh-107562</a>: Test certificates have been updated to expire far in the
future. This allows testing Y2038 with system time set to after that, so
that actual Y2038 issues can be exposed, and not masked by expired
certificate errors.</p></li>
</ul>
</section>
<section id="id107">
<h3>Security<a class="headerlink" href="#id107" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125140">gh-125140</a>: Remove the current directory from <code class="docutils literal notranslate"><span class="pre">sys.path</span></code> when using
PyREPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123678">gh-123678</a>: Upgrade libexpat to 2.6.3</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112301">gh-112301</a>: Enable compiler options that warn of potential security
vulnerabilities.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122792">gh-122792</a>: Changed IPv4-mapped <code class="docutils literal notranslate"><span class="pre">ipaddress.IPv6Address</span></code> to consistently
use the mapped IPv4 address value for deciding properties. Properties
which have their behavior fixed are <code class="docutils literal notranslate"><span class="pre">is_multicast</span></code>, <code class="docutils literal notranslate"><span class="pre">is_reserved</span></code>,
<code class="docutils literal notranslate"><span class="pre">is_link_local</span></code>, <code class="docutils literal notranslate"><span class="pre">is_global</span></code>, and <code class="docutils literal notranslate"><span class="pre">is_unspecified</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112301">gh-112301</a>: Add ability to ignore warnings per file with warning count in
warning checking tooling. Patch by Nate Ohlson.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112301">gh-112301</a>: Add macOS warning tracking to warning check tooling. Patch by
Nate Ohlson.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122133">gh-122133</a>: Authenticate the socket connection for the
<code class="docutils literal notranslate"><span class="pre">socket.socketpair()</span></code> fallback on platforms where <code class="docutils literal notranslate"><span class="pre">AF_UNIX</span></code> is not
available like Windows.</p>
<p>Patch by Gregory P. Smith <<a class="reference external" href="mailto:greg%40krypto.org">greg<span>@</span>krypto<span>.</span>org</a>> and Seth Larson
<<a class="reference external" href="mailto:seth%40python.org">seth<span>@</span>python<span>.</span>org</a>>. Reported by Ellie <<a class="reference external" href="mailto:el%40horse64.org">el<span>@</span>horse64<span>.</span>org</a>></p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121957">gh-121957</a>: Fixed missing audit events around interactive use of Python,
now also properly firing for <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-i</span></code>, as well as for <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span>
<span class="pre">asyncio</span></code>. The events in question are <code class="docutils literal notranslate"><span class="pre">cpython.run_stdin</span></code> and
<code class="docutils literal notranslate"><span class="pre">cpython.run_startup</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112301">gh-112301</a>: Enable runtime protections for glibc to abort execution when
unsafe behavior is encountered, for all platforms except Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121285">gh-121285</a>: Remove backtracking from tarfile header parsing for
<code class="docutils literal notranslate"><span class="pre">hdrcharset</span></code>, PAX, and GNU sparse headers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112301">gh-112301</a>: Add default compiler options to improve security. Enable
-Wimplicit-fallthrough, -fstack-protector-strong, -Wtrampolines.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118773">gh-118773</a>: Fixes creation of ACLs in <a class="reference internal" href="../library/os.html#os.mkdir" title="os.mkdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.mkdir()</span></code></a> on Windows to work
correctly on non-English machines.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118486">gh-118486</a>: <a class="reference internal" href="../library/os.html#os.mkdir" title="os.mkdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.mkdir()</span></code></a> on Windows now accepts <em>mode</em> of <code class="docutils literal notranslate"><span class="pre">0o700</span></code> to
restrict the new directory to the current user. This fixes
<span class="target" id="index-42"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2024-4030"><strong>CVE 2024-4030</strong></a> affecting <a class="reference internal" href="../library/tempfile.html#tempfile.mkdtemp" title="tempfile.mkdtemp"><code class="xref py py-func docutils literal notranslate"><span class="pre">tempfile.mkdtemp()</span></code></a> in scenarios where the
base temporary directory is more permissive than the default.</p></li>
</ul>
</section>
<section id="id108">
<h3>Library<a class="headerlink" href="#id108" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125422">gh-125422</a>: Fixed the bug where <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> and <a class="reference internal" href="../library/bdb.html#module-bdb" title="bdb: Debugger framework."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bdb</span></code></a> can step into the
bottom caller frame.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100141">gh-100141</a>: Fixed the bug where <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> will be stuck in an infinite
loop when debugging an empty file.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/53203">gh-53203</a>: Fix <a class="reference internal" href="../library/time.html#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strptime()</span></code></a> for <code class="docutils literal notranslate"><span class="pre">%c</span></code>, <code class="docutils literal notranslate"><span class="pre">%x</span></code> and <code class="docutils literal notranslate"><span class="pre">%X</span></code> formats
in many locales that use non-ASCII digits, like Persian, Burmese, Odia and
Shan.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125206">gh-125206</a>: Workaround for old libffi versions is added. Module ctypes
supports <span class="c-expr sig sig-inline c"><span class="kt">double</span><span class="w"> </span><span class="kt">complex</span></span> only with libffi >= 3.3.0. Patch by
Mikhail Efimov.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89967">gh-89967</a>: Make <a class="reference internal" href="../library/weakref.html#weakref.WeakKeyDictionary" title="weakref.WeakKeyDictionary"><code class="xref py py-class docutils literal notranslate"><span class="pre">WeakKeyDictionary</span></code></a> and
<a class="reference internal" href="../library/weakref.html#weakref.WeakValueDictionary" title="weakref.WeakValueDictionary"><code class="xref py py-class docutils literal notranslate"><span class="pre">WeakValueDictionary</span></code></a> safe against concurrent mutations
from other threads. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125260">gh-125260</a>: The <a class="reference internal" href="../library/gzip.html#gzip.compress" title="gzip.compress"><code class="xref py py-func docutils literal notranslate"><span class="pre">gzip.compress()</span></code></a> <em>mtime</em> parameter now defaults to 0
for reproducible output. Patch by Bernhard M. Wiedemann and Adam Turner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125243">gh-125243</a>: Fix data race when creating <a class="reference internal" href="../library/zoneinfo.html#zoneinfo.ZoneInfo" title="zoneinfo.ZoneInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">zoneinfo.ZoneInfo</span></code></a> objects
in the free threading build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125254">gh-125254</a>: Fix a bug where ArgumentError includes the incorrect ambiguous
option in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125235">gh-125235</a>: Keep <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> TCL paths in venv pointing to base
installation on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/61011">gh-61011</a>: Fix inheritance of nested mutually exclusive groups from parent
parser in <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser" title="argparse.ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a>. Previously, all nested
mutually exclusive groups lost their connection to the group containing
them and were displayed as belonging directly to the parser.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125118">gh-125118</a>: Don’t copy arbitrary values to <span class="c-expr sig sig-inline c"><span class="kt">_Bool</span></span> in the
<a class="reference internal" href="../library/struct.html#module-struct" title="struct: Interpret bytes as packed binary data."><code class="xref py py-mod docutils literal notranslate"><span class="pre">struct</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125069">gh-125069</a>: Fix an issue where providing a <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> object
as an initializer argument to a second <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">PurePath</span></code></a> object
with a different <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.parser" title="pathlib.PurePath.parser"><code class="xref py py-attr docutils literal notranslate"><span class="pre">parser</span></code></a> resulted in arguments to
the former object’s initializer being joined by the latter object’s
parser.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125096">gh-125096</a>: If the <span class="target" id="index-43"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHON_BASIC_REPL"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_BASIC_REPL</span></code></a> environment variable is set,
the <a class="reference internal" href="../library/site.html#module-site" title="site: Module responsible for site-specific configuration."><code class="xref py py-mod docutils literal notranslate"><span class="pre">site</span></code></a> module no longer imports the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_pyrepl</span></code> module.
Moreover, the <a class="reference internal" href="../library/site.html#module-site" title="site: Module responsible for site-specific configuration."><code class="xref py py-mod docutils literal notranslate"><span class="pre">site</span></code></a> module now respects <a class="reference internal" href="../using/cmdline.html#cmdoption-E"><code class="xref std std-option docutils literal notranslate"><span class="pre">-E</span></code></a> and
<a class="reference internal" href="../using/cmdline.html#cmdoption-I"><code class="xref std std-option docutils literal notranslate"><span class="pre">-I</span></code></a> command line options: ignore <span class="target" id="index-44"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHON_BASIC_REPL"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_BASIC_REPL</span></code></a> in
this case. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124969">gh-124969</a>: Fix <code class="docutils literal notranslate"><span class="pre">locale.nl_langinfo(locale.ALT_DIGITS)</span></code>. Now it returns a
tuple of up to 100 strings (an empty tuple on most locales). Previously it
returned the first item of that tuple or an empty string.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124960">gh-124960</a>: Fix support for the <code class="docutils literal notranslate"><span class="pre">barry_as_FLUFL</span></code> future flag in the new
REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69998">gh-69998</a>: Fix <a class="reference internal" href="../library/locale.html#locale.nl_langinfo" title="locale.nl_langinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.nl_langinfo()</span></code></a> in case when different categories
have different locales. The function now sets temporarily the <code class="docutils literal notranslate"><span class="pre">LC_CTYPE</span></code>
locale in some cases. This temporary change affects other threads.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124958">gh-124958</a>: Fix refcycles in exceptions raised from
<a class="reference internal" href="../library/asyncio-task.html#asyncio.TaskGroup" title="asyncio.TaskGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.TaskGroup</span></code></a> and the python implementation of
<a class="reference internal" href="../library/asyncio-future.html#asyncio.Future" title="asyncio.Future"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Future</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/53203">gh-53203</a>: Fix <a class="reference internal" href="../library/time.html#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strptime()</span></code></a> for <code class="docutils literal notranslate"><span class="pre">%c</span></code> and <code class="docutils literal notranslate"><span class="pre">%x</span></code> formats in many
locales: Arabic, Bislama, Breton, Bodo, Kashubian, Chuvash, Estonian,
French, Irish, Ge’ez, Gurajati, Manx Gaelic, Hebrew, Hindi, Chhattisgarhi,
Haitian Kreyol, Japanese, Kannada, Korean, Marathi, Malay, Norwegian,
Nynorsk, Punjabi, Rajasthani, Tok Pisin, Yoruba, Yue Chinese, Yau/Nungon
and Chinese.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123961">gh-123961</a>: Convert <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> to multi-phase initialization
(<span class="target" id="index-45"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>), thereby fixing reference leaks at interpreter shutdown.
Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124944">gh-124944</a>: Add <code class="docutils literal notranslate"><span class="pre">SO_ORIGINAL_DST</span></code> to the <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117151">gh-117151</a>: The default buffer size used by <a class="reference internal" href="../library/shutil.html#shutil.copyfileobj" title="shutil.copyfileobj"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copyfileobj()</span></code></a> has
been increased from 64k to 256k on non-Windows platforms. It was already
larger on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90102">gh-90102</a>: Skip the <code class="docutils literal notranslate"><span class="pre">isatty</span></code> system call during open() when the file is
known to not be a character device. This provides a slight performance
improvement when reading whole files.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124917">gh-124917</a>: Allow calling <a class="reference internal" href="../library/os.path.html#os.path.exists" title="os.path.exists"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.exists()</span></code></a> and
<a class="reference internal" href="../library/os.path.html#os.path.lexists" title="os.path.lexists"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.lexists()</span></code></a> with keyword arguments on Windows. Fixes a
regression in 3.13.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65865">gh-65865</a>: <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> now raises early error for invalid <code class="docutils literal notranslate"><span class="pre">help</span></code>
arguments to <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser.add_argument" title="argparse.ArgumentParser.add_argument"><code class="xref py py-meth docutils literal notranslate"><span class="pre">add_argument()</span></code></a>,
<a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser.add_subparsers" title="argparse.ArgumentParser.add_subparsers"><code class="xref py py-meth docutils literal notranslate"><span class="pre">add_subparsers()</span></code></a> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">add_parser()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124653">gh-124653</a>: Fix detection of the minimal Queue API needed by the
<a class="reference internal" href="../library/logging.html#module-logging" title="logging: Flexible event logging system for applications."><code class="xref py py-mod docutils literal notranslate"><span class="pre">logging</span></code></a> module. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91818">gh-91818</a>: The CLI of many modules (<a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a>, <a class="reference internal" href="../library/ensurepip.html#module-ensurepip" title="ensurepip: Bootstrapping the "pip" installer into an existing Python installation or virtual environment."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ensurepip</span></code></a>,
<a class="reference internal" href="../library/json.html#module-json" title="json: Encode and decode the JSON format."><code class="xref py py-mod docutils literal notranslate"><span class="pre">json</span></code></a>, <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>, <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>, <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a>, <a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a>) now
uses the actual executable name instead of simply “python” to display in
the usage message.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124858">gh-124858</a>: Fix reference cycles left in tracebacks in
<a class="reference internal" href="../library/asyncio-stream.html#asyncio.open_connection" title="asyncio.open_connection"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.open_connection()</span></code></a> when used with <code class="docutils literal notranslate"><span class="pre">happy_eyeballs_delay</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124390">gh-124390</a>: Fixed <a class="reference internal" href="../library/exceptions.html#AssertionError" title="AssertionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AssertionError</span></code></a> when using
<code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.staggered.staggered_race()</span></code> with
<a class="reference internal" href="../library/asyncio-task.html#asyncio.eager_task_factory" title="asyncio.eager_task_factory"><code class="xref py py-data docutils literal notranslate"><span class="pre">asyncio.eager_task_factory</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85935">gh-85935</a>: <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser.add_argument" title="argparse.ArgumentParser.add_argument"><code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.ArgumentParser.add_argument()</span></code></a> now raises an
exception if an <a class="reference internal" href="../library/argparse.html#action"><span class="std std-ref">action</span></a> that does not consume arguments (like
‘store_const’ or ‘store_true’) or explicit <code class="docutils literal notranslate"><span class="pre">nargs=0</span></code> are specified for
positional arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124835">gh-124835</a>: Make <a class="reference internal" href="../library/tomllib.html#tomllib.loads" title="tomllib.loads"><code class="xref py py-func docutils literal notranslate"><span class="pre">tomllib.loads()</span></code></a> raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> not
<a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> on bad input types that do not have the <code class="docutils literal notranslate"><span class="pre">replace</span></code>
attribute. Improve error message when <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> is received.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124693">gh-124693</a>: Fix a bug where <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> doesn’t recognize negative
complex numbers or negative numbers using scientific notation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124787">gh-124787</a>: Fix <a class="reference internal" href="../library/typing.html#typing.TypeAliasType" title="typing.TypeAliasType"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeAliasType</span></code></a> with incorrect
<code class="docutils literal notranslate"><span class="pre">type_params</span></code> argument. Now it raises a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when a type
parameter without a default follows one with a default, and when an entry
in the <code class="docutils literal notranslate"><span class="pre">type_params</span></code> tuple is not a type parameter object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/66436">gh-66436</a>: Improved <a class="reference internal" href="../library/argparse.html#prog"><span class="std std-ref">prog</span></a> default value for
<a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser" title="argparse.ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a>. It will now include the name of the
Python executable along with the module or package name, or the path to a
directory, ZIP file, or directory within a ZIP file if the code was run
that way.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116850">gh-116850</a>: Fix <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> for namespaces with not directly writable
dict (e.g. classes).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101552">gh-101552</a>: Add an <em>annoation_format</em> parameter to
<a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a>. Add an <em>quote_annotation_strings</em> parameter to
<a class="reference internal" href="../library/inspect.html#inspect.Signature.format" title="inspect.Signature.format"><code class="xref py py-meth docutils literal notranslate"><span class="pre">inspect.Signature.format()</span></code></a>. Use the new functionality to improve the
display of annotations in signatures in <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a>. Patch by Jelle
Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/58573">gh-58573</a>: Fix conflicts between abbreviated long options in the parent
parser and subparsers in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124594">gh-124594</a>: All <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> REPL prompts run in the same <a class="reference internal" href="../library/contextvars.html#contextvars.Context" title="contextvars.Context"><code class="xref py py-class docutils literal notranslate"><span class="pre">context</span></code></a>. Contributed by Bartosz Sławecki.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/61181">gh-61181</a>: Fix support of <a class="reference internal" href="../library/argparse.html#choices"><span class="std std-ref">choices</span></a> with string value in
<a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>. Substrings of the specified string no longer considered
valid values.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116750">gh-116750</a>: Provide <a class="reference internal" href="../library/sys.monitoring.html#sys.monitoring.clear_tool_id" title="sys.monitoring.clear_tool_id"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.monitoring.clear_tool_id()</span></code></a> to unregister all
events and callbacks set by the tool.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124552">gh-124552</a>: Improve the accuracy of <a class="reference internal" href="../library/bdb.html#module-bdb" title="bdb: Debugger framework."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bdb</span></code></a>’s check for the possibility
of breakpoint in a frame. This makes it possible to disable unnecessary
events in functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124538">gh-124538</a>: Fixed crash when using <a class="reference internal" href="../library/gc.html#gc.get_referents" title="gc.get_referents"><code class="xref py py-func docutils literal notranslate"><span class="pre">gc.get_referents()</span></code></a> on a capsule
object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/80259">gh-80259</a>: Fix <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> support of positional arguments with
<code class="docutils literal notranslate"><span class="pre">nargs='?'</span></code>, <code class="docutils literal notranslate"><span class="pre">default=argparse.SUPPRESS</span></code> and specified <code class="docutils literal notranslate"><span class="pre">type</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120378">gh-120378</a>: Fix a crash related to an integer overflow in
<a class="reference internal" href="../library/curses.html#curses.resizeterm" title="curses.resizeterm"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.resizeterm()</span></code></a> and <a class="reference internal" href="../library/curses.html#curses.resize_term" title="curses.resize_term"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.resize_term()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124498">gh-124498</a>: Fix <a class="reference internal" href="../library/typing.html#typing.TypeAliasType" title="typing.TypeAliasType"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeAliasType</span></code></a> not to be generic, when
<code class="docutils literal notranslate"><span class="pre">type_params</span></code> is an empty tuple.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/53834">gh-53834</a>: Fix support of arguments with <a class="reference internal" href="../library/argparse.html#choices"><span class="std std-ref">choices</span></a> in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>.
Positional arguments with <a class="reference internal" href="../library/argparse.html#nargs"><span class="std std-ref">nargs</span></a> equal to <code class="docutils literal notranslate"><span class="pre">'?'</span></code> or <code class="docutils literal notranslate"><span class="pre">'*'</span></code> no
longer check <a class="reference internal" href="../library/argparse.html#default"><span class="std std-ref">default</span></a> against <code class="docutils literal notranslate"><span class="pre">choices</span></code>. Optional arguments with
<code class="docutils literal notranslate"><span class="pre">nargs</span></code> equal to <code class="docutils literal notranslate"><span class="pre">'?'</span></code> no longer check <a class="reference internal" href="../library/argparse.html#const"><span class="std std-ref">const</span></a> against
<code class="docutils literal notranslate"><span class="pre">choices</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123884">gh-123884</a>: Fixed bug in itertools.tee() handling of other tee inputs (a
tee in a tee). The output now has the promised <em>n</em> independent new
iterators. Formerly, the first iterator was identical (not independent)
to the input iterator. This would sometimes give surprising results.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123017">gh-123017</a>: Due to unreliable results on some devices,
<a class="reference internal" href="../library/time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a> no longer accepts negative years on Android.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123014">gh-123014</a>: <a class="reference internal" href="../library/os.html#os.pidfd_open" title="os.pidfd_open"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.pidfd_open()</span></code></a> and <a class="reference internal" href="../library/signal.html#signal.pidfd_send_signal" title="signal.pidfd_send_signal"><code class="xref py py-func docutils literal notranslate"><span class="pre">signal.pidfd_send_signal()</span></code></a> are
now unavailable when building against Android API levels older than 31,
since the underlying system calls may cause a crash.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124176">gh-124176</a>: Add support for <a class="reference internal" href="../library/dataclasses.html#dataclasses.dataclass" title="dataclasses.dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.dataclass()</span></code></a> in
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.create_autospec" title="unittest.mock.create_autospec"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.create_autospec()</span></code></a>. Now <code class="docutils literal notranslate"><span class="pre">create_autospec</span></code> will check
for potential dataclasses and use <a class="reference internal" href="../library/dataclasses.html#dataclasses.fields" title="dataclasses.fields"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.fields()</span></code></a> function to
retrieve the spec information.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124345">gh-124345</a>: <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> supports abbreviated single-dash long options
separated by <code class="docutils literal notranslate"><span class="pre">=</span></code> from its value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124400">gh-124400</a>: Fixed a <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> bug where <code class="docutils literal notranslate"><span class="pre">until</span></code> has no effect when it
appears in a <code class="docutils literal notranslate"><span class="pre">commands</span></code> sequence. Also avoid printing the frame
information at a breakpoint that has a command list containing a command
that resumes execution.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90562">gh-90562</a>: Modify dataclasses to support zero-argument super() when
<code class="docutils literal notranslate"><span class="pre">slots=True</span></code> is specified. This works by modifying all references to
<code class="docutils literal notranslate"><span class="pre">__class__</span></code> to point to the newly created class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104860">gh-104860</a>: Fix disallowing abbreviation of single-dash long options in
<a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> with <code class="docutils literal notranslate"><span class="pre">allow_abbrev=False</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/63143">gh-63143</a>: Fix parsing mutually exclusive arguments in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>.
Arguments with the value identical to the default value (e.g. booleans,
small integers, empty or 1-character strings) are no longer considered
“not present”.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/72795">gh-72795</a>: Positional arguments with <a class="reference internal" href="../library/argparse.html#nargs"><span class="std std-ref">nargs</span></a> equal to <code class="docutils literal notranslate"><span class="pre">'*'</span></code> or
<code class="xref py py-data docutils literal notranslate"><span class="pre">argparse.REMAINDER</span></code> are no longer required. This allows to use
positional argument with <code class="docutils literal notranslate"><span class="pre">nargs='*'</span></code> and without <code class="docutils literal notranslate"><span class="pre">default</span></code> in mutually
exclusive group and improves error message about required arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/59317">gh-59317</a>: Fix parsing positional argument with <a class="reference internal" href="../library/argparse.html#nargs"><span class="std std-ref">nargs</span></a> equal to
<code class="docutils literal notranslate"><span class="pre">'?'</span></code> or <code class="docutils literal notranslate"><span class="pre">'*'</span></code> if it is preceded by an option and another positional
argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100980">gh-100980</a>: The <a class="reference internal" href="../library/ctypes.html#ctypes.Structure._fields_" title="ctypes.Structure._fields_"><code class="xref py py-attr docutils literal notranslate"><span class="pre">_fields_</span></code></a> attribute of
<a class="reference internal" href="../library/ctypes.html#ctypes.Structure" title="ctypes.Structure"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.Structure</span></code></a> and <a class="reference internal" href="../library/ctypes.html#ctypes.Union" title="ctypes.Union"><code class="xref py py-class docutils literal notranslate"><span class="pre">Union</span></code></a> is no longer set if
the setattr operation raises an error.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/53780">gh-53780</a>: <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> now ignores the first <code class="docutils literal notranslate"><span class="pre">"--"</span></code> (double dash)
between an option and command.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124217">gh-124217</a>: Add RFC 9637 reserved IPv6 block <code class="docutils literal notranslate"><span class="pre">3fff::/20</span></code> in
<a class="reference internal" href="../library/ipaddress.html#module-ipaddress" title="ipaddress: IPv4/IPv6 manipulation library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111513">gh-111513</a>: Improve the error message that may be raised by
<a class="reference internal" href="../library/datetime.html#datetime.date.fromtimestamp" title="datetime.date.fromtimestamp"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.date.fromtimestamp()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124248">gh-124248</a>: Fixed potential crash when using <a class="reference internal" href="../library/struct.html#module-struct" title="struct: Interpret bytes as packed binary data."><code class="xref py py-mod docutils literal notranslate"><span class="pre">struct</span></code></a> to process
zero-width ‘Pascal string’ fields (<code class="docutils literal notranslate"><span class="pre">0p</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81691">gh-81691</a>: Fix handling of multiple <code class="docutils literal notranslate"><span class="pre">"--"</span></code> (double dashes) in
<a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>. Only the first one has now been removed, all subsequent
ones are now taken literally.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87041">gh-87041</a>: Fix a bug in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> where lengthy subparser argument
help is incorrectly indented.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84559">gh-84559</a>: The default <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> start method on Linux and
other POSIX systems has been changed away from often unsafe <code class="docutils literal notranslate"><span class="pre">"fork"</span></code> to
<code class="docutils literal notranslate"><span class="pre">"forkserver"</span></code> (when the platform supports sending file handles over
pipes as most do) or <code class="docutils literal notranslate"><span class="pre">"spawn"</span></code>. Mac and Windows are unchanged as they
already default to <code class="docutils literal notranslate"><span class="pre">"spawn"</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124212">gh-124212</a>: Fix invalid variable in <a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a> handling of failed symlink
on Windows</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124171">gh-124171</a>: Add workaround for broken <code class="xref c c-func docutils literal notranslate"><span class="pre">fmod()</span></code> implementations on
Windows, that loose zero sign (e.g. <code class="docutils literal notranslate"><span class="pre">fmod(-10,</span> <span class="pre">1)</span></code> returns <code class="docutils literal notranslate"><span class="pre">0.0</span></code>).
Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123978">gh-123978</a>: Remove broken <a class="reference internal" href="../library/time.html#time.thread_time" title="time.thread_time"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.thread_time()</span></code></a> and
<a class="reference internal" href="../library/time.html#time.thread_time_ns" title="time.thread_time_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.thread_time_ns()</span></code></a> on NetBSD.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123934">gh-123934</a>: Fix <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.MagicMock" title="unittest.mock.MagicMock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.MagicMock</span></code></a> resetting magic methods
return values after <code class="docutils literal notranslate"><span class="pre">.reset_mock(return_value=True)</span></code> was called.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124016">gh-124016</a>: Update <a class="reference internal" href="../library/unicodedata.html#module-unicodedata" title="unicodedata: Access the Unicode Database."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unicodedata</span></code></a> database to Unicode 16.0.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123968">gh-123968</a>: Fix the command-line interface for the <a class="reference internal" href="../library/random.html#module-random" title="random: Generate pseudo-random numbers with various common distributions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">random</span></code></a> module to
select floats between 0 and N, not 1 and N.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123945">gh-123945</a>: Fix a bug where <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> doesn’t recognize negative
numbers with underscores</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123935">gh-123935</a>: Fix parent slots detection for dataclasses that inherit from
classes with <code class="docutils literal notranslate"><span class="pre">__dictoffset__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123892">gh-123892</a>: Add <code class="docutils literal notranslate"><span class="pre">"_wmi"</span></code> to <a class="reference internal" href="../library/sys.html#sys.stdlib_module_names" title="sys.stdlib_module_names"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.stdlib_module_names</span></code></a>. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84808">gh-84808</a>: Fix error handling in <a class="reference internal" href="../library/socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a> method
<a class="reference internal" href="../library/socket.html#socket.socket.connect_ex" title="socket.socket.connect_ex"><code class="xref py py-func docutils literal notranslate"><span class="pre">connect_ex()</span></code></a> on platforms where <code class="xref c c-data docutils literal notranslate"><span class="pre">errno</span></code>
can be negative.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123756">gh-123756</a>: Added a new argument <code class="docutils literal notranslate"><span class="pre">mode</span></code> to <a class="reference internal" href="../library/pdb.html#pdb.Pdb" title="pdb.Pdb"><code class="xref py py-class docutils literal notranslate"><span class="pre">pdb.Pdb</span></code></a>. Only allow
<a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> from command line to use <code class="docutils literal notranslate"><span class="pre">restart</span></code> command.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122765">gh-122765</a>: Fix unbalanced quote errors occurring when activate.csh in
<a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a> was sourced with a custom prompt containing unpaired quotes or
newlines.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123657">gh-123657</a>: Fix crash and memory leak in <a class="reference internal" href="../library/decimal.html#decimal.getcontext" title="decimal.getcontext"><code class="xref py py-func docutils literal notranslate"><span class="pre">decimal.getcontext()</span></code></a>. It
crashed when using a thread-local context by
<code class="docutils literal notranslate"><span class="pre">--with-decimal-contextvar=no</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123339">gh-123339</a>: Fix <a class="reference internal" href="../library/inspect.html#inspect.getsource" title="inspect.getsource"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getsource()</span></code></a> for classes in
<a class="reference internal" href="../library/collections.abc.html#module-collections.abc" title="collections.abc: Abstract base classes for containers"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a> and <a class="reference internal" href="../library/decimal.html#module-decimal" title="decimal: Implementation of the General Decimal Arithmetic Specification."><code class="xref py py-mod docutils literal notranslate"><span class="pre">decimal</span></code></a> (for pure Python implementation)
modules. <a class="reference internal" href="../library/inspect.html#inspect.getcomments" title="inspect.getcomments"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getcomments()</span></code></a> now raises OSError instead of
IndexError if the <code class="docutils literal notranslate"><span class="pre">__firstlineno__</span></code> value for a class is out of bound.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123374">gh-123374</a>: Remove check for redefined memo entry in
<a class="reference internal" href="../library/pickletools.html#pickletools.dis" title="pickletools.dis"><code class="xref py py-func docutils literal notranslate"><span class="pre">pickletools.dis()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123504">gh-123504</a>: Fixed reference leak in the finalization of <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123430">gh-123430</a>: Pages generated by the <a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a> module allow the
browser to apply its default dark mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123446">gh-123446</a>: Fix empty function name in <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when
<a class="reference internal" href="../library/csv.html#csv.reader" title="csv.reader"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.reader()</span></code></a>, <a class="reference internal" href="../library/csv.html#csv.writer" title="csv.writer"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.writer()</span></code></a>, or <a class="reference internal" href="../library/csv.html#csv.register_dialect" title="csv.register_dialect"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.register_dialect()</span></code></a>
are used without the required args.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123448">gh-123448</a>: Fixed memory leak of <a class="reference internal" href="../library/typing.html#typing.NoDefault" title="typing.NoDefault"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NoDefault</span></code></a> by moving it to
the static types array.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123409">gh-123409</a>: Fix <a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv6Address.reverse_pointer" title="ipaddress.IPv6Address.reverse_pointer"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ipaddress.IPv6Address.reverse_pointer</span></code></a> output
according to <span class="target" id="index-46"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3596.html#section-2.5"><strong>RFC 3596, §2.5</strong></a>. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123089">gh-123089</a>: Make <a class="reference internal" href="../library/weakref.html#weakref.WeakSet" title="weakref.WeakSet"><code class="xref py py-class docutils literal notranslate"><span class="pre">weakref.WeakSet</span></code></a> safe against concurrent mutations
while it is being iterated. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123363">gh-123363</a>: Show string value of <a class="reference internal" href="../library/dis.html#opcode-CONTAINS_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CONTAINS_OP</span></code></a> oparg in <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a>
output. Patch by Alexandr153.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123341">gh-123341</a>: Add <a class="reference internal" href="../reference/datamodel.html#object.__class_getitem__" title="object.__class_getitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__class_getitem__()</span></code></a> to
<code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.Event</span></code> for type subscript support at runtime. Patch by
Adonis Rakateli.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123340">gh-123340</a>: Show string value of <a class="reference internal" href="../library/dis.html#opcode-IS_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">IS_OP</span></code></a> oparg in <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a>
output.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119518">gh-119518</a>: Speed up normalization of <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> and
<a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">Path</span></code></a> objects by not interning string parts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123270">gh-123270</a>: Applied a more surgical fix for malformed payloads in
<a class="reference internal" href="../library/zipfile.html#zipfile.Path" title="zipfile.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">zipfile.Path</span></code></a> causing infinite loops (<a class="reference external" href="https://github.com/python/cpython/issues/122905">gh-122905</a>) without breaking
contents using legitimate characters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/73991">gh-73991</a>: Add <a class="reference internal" href="../library/pathlib.html#pathlib.Path.copy_into" title="pathlib.Path.copy_into"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.copy_into()</span></code></a> and
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.move_into" title="pathlib.Path.move_into"><code class="xref py py-meth docutils literal notranslate"><span class="pre">move_into()</span></code></a>, which copy and move files and directories
into <em>existing</em> directories.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123228">gh-123228</a>: Fix return type for
<code class="xref py py-func docutils literal notranslate"><span class="pre">_pyrepl.readline._ReadlineWrapper.get_line_buffer()</span></code> to be
<a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-func docutils literal notranslate"><span class="pre">str()</span></code></a>. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123240">gh-123240</a>: Raise audit events for the <a class="reference internal" href="../library/functions.html#input" title="input"><code class="xref py py-func docutils literal notranslate"><span class="pre">input()</span></code></a> in the new REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/76960">gh-76960</a>: Fix <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urljoin" title="urllib.parse.urljoin"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urljoin()</span></code></a> and
<a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urldefrag" title="urllib.parse.urldefrag"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urldefrag()</span></code></a> for URIs containing empty components. For
example, <code class="xref py py-func docutils literal notranslate"><span class="pre">urljoin()</span></code> with relative reference “?” now sets empty query
and removes fragment. Preserve empty components (authority, params, query,
fragment) in <code class="xref py py-func docutils literal notranslate"><span class="pre">urljoin()</span></code>. Preserve empty components (authority,
params, query) in <code class="xref py py-func docutils literal notranslate"><span class="pre">urldefrag()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116810">gh-116810</a>: Resolve a memory leak introduced in CPython 3.10’s <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a>
when the <a class="reference internal" href="../library/ssl.html#ssl.SSLSocket.session" title="ssl.SSLSocket.session"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ssl.SSLSocket.session</span></code></a> property was accessed. Speeds up
read and write access to said property by no longer unnecessarily cloning
session objects via serialization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123243">gh-123243</a>: Fix memory leak in <code class="xref py py-mod docutils literal notranslate"><span class="pre">_decimal</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122546">gh-122546</a>: Consistently use same file name for different exceptions in the
new repl. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123213">gh-123213</a>: <a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.extend" title="xml.etree.ElementTree.Element.extend"><code class="xref py py-meth docutils literal notranslate"><span class="pre">xml.etree.ElementTree.Element.extend()</span></code></a> and
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.Element" title="xml.etree.ElementTree.Element"><code class="xref py py-class docutils literal notranslate"><span class="pre">Element</span></code></a> assignment no longer hide the
internal exception if an erroneous generator is passed. Patch by Bar
Harel.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85110">gh-85110</a>: Preserve relative path in URL without netloc in
<a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlunsplit" title="urllib.parse.urlunsplit"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlunsplit()</span></code></a> and <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlunparse" title="urllib.parse.urlunparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlunparse()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123165">gh-123165</a>: Add support for rendering <a class="reference internal" href="../library/dis.html#dis.Positions" title="dis.Positions"><code class="xref py py-class docutils literal notranslate"><span class="pre">Positions</span></code></a> in
<a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122909">gh-122909</a>: In urllib.request when URLError is raised opening an ftp URL,
the exception argument is now consistently a string. Earlier versions
passed either a string or an ftplib exception instance as the argument to
URLError.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123084">gh-123084</a>: Deprecate <code class="xref py py-class docutils literal notranslate"><span class="pre">shutil.ExecError</span></code>, which hasn’t been raised
by any <a class="reference internal" href="../library/shutil.html#module-shutil" title="shutil: High-level file operations, including copying."><code class="xref py py-mod docutils literal notranslate"><span class="pre">shutil</span></code></a> function since Python 3.4. It’s now an alias for
<a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123085">gh-123085</a>: In a bare call to <a class="reference internal" href="../library/importlib.resources.html#importlib.resources.files" title="importlib.resources.files"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.resources.files()</span></code></a>, ensure the
caller’s frame is properly detected when <code class="docutils literal notranslate"><span class="pre">importlib.resources</span></code> is itself
available as a compiled module only (no source).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123067">gh-123067</a>: Fix quadratic complexity in parsing <code class="docutils literal notranslate"><span class="pre">"</span></code>-quoted cookie values
with backslashes by <a class="reference internal" href="../library/http.cookies.html#module-http.cookies" title="http.cookies: Support for HTTP state management (cookies)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.cookies</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123049">gh-123049</a>: Add support for <a class="reference internal" href="../library/configparser.html#configparser.UNNAMED_SECTION" title="configparser.UNNAMED_SECTION"><code class="xref py py-const docutils literal notranslate"><span class="pre">UNNAMED_SECTION</span></code></a> in
<a class="reference internal" href="../library/configparser.html#configparser.ConfigParser.add_section" title="configparser.ConfigParser.add_section"><code class="xref py py-meth docutils literal notranslate"><span class="pre">configparser.ConfigParser.add_section()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121735">gh-121735</a>: When working with zip archives, importlib.resources now
properly honors module-adjacent references (e.g. <code class="docutils literal notranslate"><span class="pre">files(pkg.mod)</span></code> and
not just <code class="docutils literal notranslate"><span class="pre">files(pkg)</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122981">gh-122981</a>: Fix <a class="reference internal" href="../library/inspect.html#inspect.getsource" title="inspect.getsource"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getsource()</span></code></a> for generated classes with Python
base classes (e.g. enums).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122903">gh-122903</a>: <code class="docutils literal notranslate"><span class="pre">zipfile.Path.glob</span></code> now correctly matches directories instead
of silently omitting them.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122905">gh-122905</a>: <a class="reference internal" href="../library/zipfile.html#zipfile.Path" title="zipfile.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">zipfile.Path</span></code></a> objects now sanitize names from the
zipfile.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122873">gh-122873</a>: Enable <a class="reference internal" href="../library/json.html#module-json" title="json: Encode and decode the JSON format."><code class="xref py py-mod docutils literal notranslate"><span class="pre">json</span></code></a> module to work as a script using the
<a class="reference internal" href="../using/cmdline.html#cmdoption-m"><code class="xref std std-option docutils literal notranslate"><span class="pre">-m</span></code></a> switch: <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">json</span></code>. See the <a class="reference internal" href="../library/json.html#json-commandline"><span class="std std-ref">JSON command-line
interface</span></a> documentation. Patch by Trey Hunner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122858">gh-122858</a>: Deprecate <code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.iscoroutinefunction()</span></code> in favor of
<a class="reference internal" href="../library/inspect.html#inspect.iscoroutinefunction" title="inspect.iscoroutinefunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.iscoroutinefunction()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116263">gh-116263</a>: <a class="reference internal" href="../library/logging.handlers.html#logging.handlers.RotatingFileHandler" title="logging.handlers.RotatingFileHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.handlers.RotatingFileHandler</span></code></a> no longer rolls
over empty log files.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105376">gh-105376</a>: Restore the deprecated <a class="reference internal" href="../library/logging.html#module-logging" title="logging: Flexible event logging system for applications."><code class="xref py py-mod docutils literal notranslate"><span class="pre">logging</span></code></a> <code class="docutils literal notranslate"><span class="pre">warn()</span></code> method. It was
removed in Python 3.13 alpha 1. Keep the deprecated <code class="docutils literal notranslate"><span class="pre">warn()</span></code> method in
Python 3.13. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122311">gh-122311</a>: Improve errors in the <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a> module.
<a class="reference internal" href="../library/pickle.html#pickle.PicklingError" title="pickle.PicklingError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PicklingError</span></code></a> is now raised more often instead of
<a class="reference internal" href="../library/exceptions.html#UnicodeEncodeError" title="UnicodeEncodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeEncodeError</span></code></a>, <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> and <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a>,
and the original exception is chained to it. Improve and unify error
messages in Python and C implementations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122744">gh-122744</a>: Bump the version of pip bundled in ensurepip to version 24.2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118761">gh-118761</a>: Improve import time of <a class="reference internal" href="../library/pprint.html#module-pprint" title="pprint: Data pretty printer."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pprint</span></code></a> by around seven times.
Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118974">gh-118974</a>: Add <code class="docutils literal notranslate"><span class="pre">decorator</span></code> parameter to
<a class="reference internal" href="../library/dataclasses.html#dataclasses.make_dataclass" title="dataclasses.make_dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.make_dataclass()</span></code></a> to customize the functional creation of
dataclasses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118814">gh-118814</a>: Fix the <a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeVar</span></code></a> constructor when name is passed
by keyword.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122637">gh-122637</a>: Adjust <code class="docutils literal notranslate"><span class="pre">cmath.tanh(nanj)</span></code> and <code class="docutils literal notranslate"><span class="pre">cmath.tanh(infj)</span></code> for recent
C standards.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122478">gh-122478</a>: Remove internal frames from tracebacks shown in
<a class="reference internal" href="../library/code.html#code.InteractiveInterpreter" title="code.InteractiveInterpreter"><code class="xref py py-class docutils literal notranslate"><span class="pre">code.InteractiveInterpreter</span></code></a> with non-default
<a class="reference internal" href="../library/sys.html#sys.excepthook" title="sys.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.excepthook()</span></code></a>. Save correct tracebacks in
<a class="reference internal" href="../library/sys.html#sys.last_traceback" title="sys.last_traceback"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.last_traceback</span></code></a> and update <code class="docutils literal notranslate"><span class="pre">__traceback__</span></code> attribute of
<a class="reference internal" href="../library/sys.html#sys.last_value" title="sys.last_value"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.last_value</span></code></a> and <a class="reference internal" href="../library/sys.html#sys.last_exc" title="sys.last_exc"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.last_exc</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116622">gh-116622</a>: On Android, the <code class="docutils literal notranslate"><span class="pre">FICLONE</span></code> and <code class="docutils literal notranslate"><span class="pre">FICLONERANGE</span></code> constants are
no longer exposed by <a class="reference internal" href="../library/fcntl.html#module-fcntl" title="fcntl: The fcntl() and ioctl() system calls. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">fcntl</span></code></a>, as these ioctls are blocked by SELinux.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82378">gh-82378</a>: Make sure that the new <a class="reference internal" href="../glossary.html#term-REPL"><span class="xref std std-term">REPL</span></a> interprets
<a class="reference internal" href="../library/sys.html#sys.tracebacklimit" title="sys.tracebacklimit"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.tracebacklimit</span></code></a> in the same way that the classic REPL did.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122334">gh-122334</a>: Fix crash when importing <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> after the main interpreter
restarts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122459">gh-122459</a>: Optimize <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickling</span></code></a> by name objects without the
<code class="docutils literal notranslate"><span class="pre">__module__</span></code> attribute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87320">gh-87320</a>: In <a class="reference internal" href="../library/code.html#code.InteractiveInterpreter" title="code.InteractiveInterpreter"><code class="xref py py-class docutils literal notranslate"><span class="pre">code.InteractiveInterpreter</span></code></a>, handle exceptions
caused by calling a non-default <a class="reference internal" href="../library/sys.html#sys.excepthook" title="sys.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.excepthook()</span></code></a>. Before, the
exception bubbled up to the caller, ending the <a class="reference internal" href="../glossary.html#term-REPL"><span class="xref std std-term">REPL</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122272">gh-122272</a>: On some platforms such as Linux, year with century was not
0-padded when formatted by <a class="reference internal" href="../library/datetime.html#datetime.datetime.strftime" title="datetime.datetime.strftime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">strftime()</span></code></a> with C99-specific
specifiers <code class="docutils literal notranslate"><span class="pre">'%C'</span></code> or <code class="docutils literal notranslate"><span class="pre">'%F'</span></code>. The 0-padding behavior is now guaranteed
when the format specifiers <code class="docutils literal notranslate"><span class="pre">'%C'</span></code> and <code class="docutils literal notranslate"><span class="pre">'%F'</span></code> are supported by the C
library. Patch by Ben Hsing</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122400">gh-122400</a>: Handle <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>s raised by <a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a> in
<a class="reference internal" href="../library/filecmp.html#filecmp.dircmp" title="filecmp.dircmp"><code class="xref py py-class docutils literal notranslate"><span class="pre">filecmp.dircmp</span></code></a> and <a class="reference internal" href="../library/filecmp.html#filecmp.cmpfiles" title="filecmp.cmpfiles"><code class="xref py py-func docutils literal notranslate"><span class="pre">filecmp.cmpfiles()</span></code></a>. Patch by Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122311">gh-122311</a>: Fix some error messages in <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121650">gh-121650</a>: <a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a> headers with embedded newlines are now quoted on
output. The <a class="reference internal" href="../library/email.generator.html#module-email.generator" title="email.generator: Generate flat text email messages from a message structure."><code class="xref py py-mod docutils literal notranslate"><span class="pre">generator</span></code></a> will now refuse to serialize (write)
headers that are unsafely folded or delimited; see
<a class="reference internal" href="../library/email.policy.html#email.policy.Policy.verify_generated_headers" title="email.policy.Policy.verify_generated_headers"><code class="xref py py-attr docutils literal notranslate"><span class="pre">verify_generated_headers</span></code></a>. (Contributed by Bas
Bloemsaat and Petr Viktorin in <a class="reference external" href="https://github.com/python/cpython/issues/121650">gh-121650</a>.)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122332">gh-122332</a>: Fixed segfault with <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.get_coro" title="asyncio.Task.get_coro"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Task.get_coro()</span></code></a> when using an
eager task factory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105733">gh-105733</a>: <a class="reference internal" href="../library/ctypes.html#ctypes.ARRAY" title="ctypes.ARRAY"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.ARRAY()</span></code></a> is now <a class="reference internal" href="../glossary.html#term-soft-deprecated"><span class="xref std std-term">soft deprecated</span></a>: it no
longer emits deprecation warnings and is not scheduled for removal.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122213">gh-122213</a>: Add notes for pickle serialization errors that allow to
identify the source of the error.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119180">gh-119180</a>: As part of <span class="target" id="index-47"></span><a class="pep reference external" href="https://peps.python.org/pep-0749/"><strong>PEP 749</strong></a>, add the following attributes for
customizing evaluation of annotation scopes:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">evaluate_value</span></code> on <a class="reference internal" href="../library/typing.html#typing.TypeAliasType" title="typing.TypeAliasType"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeAliasType</span></code></a></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">evaluate_bound</span></code>, <code class="docutils literal notranslate"><span class="pre">evaluate_constraints</span></code>, and <code class="docutils literal notranslate"><span class="pre">evaluate_default</span></code> on <a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeVar</span></code></a></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">evaluate_default</span></code> on <a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ParamSpec</span></code></a></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">evaluate_default</span></code> on <a class="reference internal" href="../library/typing.html#typing.TypeVarTuple" title="typing.TypeVarTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeVarTuple</span></code></a></p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119180">gh-119180</a>: Fix handling of classes with custom metaclasses in
<code class="docutils literal notranslate"><span class="pre">annotationlib.get_annotations</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122170">gh-122170</a>: Handle <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>s raised by <a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a> in
<a class="reference internal" href="../library/linecache.html#module-linecache" title="linecache: Provides random access to individual lines from text files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">linecache</span></code></a>. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122163">gh-122163</a>: Add notes for JSON serialization errors that allow to identify
the source of the error.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122129">gh-122129</a>: Improve support of method descriptors and wrappers in the help
title.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122145">gh-122145</a>: Fix an issue when reporting tracebacks corresponding to Python
code emitting an empty AST body. Patch by Nikita Sobolev and Bénédikt
Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121723">gh-121723</a>: Make <a class="reference internal" href="../library/logging.config.html#logging.config.dictConfig" title="logging.config.dictConfig"><code class="xref py py-func docutils literal notranslate"><span class="pre">logging.config.dictConfig()</span></code></a> accept any object
implementing the Queue public API. See the <a class="reference internal" href="../library/logging.config.html#configure-queue"><span class="std std-ref">queue configuration</span></a> section for details. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82951">gh-82951</a>: Serializing objects with complex <code class="docutils literal notranslate"><span class="pre">__qualname__</span></code> (such as
unbound methods and nested classes) by name no longer involves serializing
parent objects by value in pickle protocols < 4.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120754">gh-120754</a>: <code class="docutils literal notranslate"><span class="pre">Pathlib.read_bytes</span></code> no longer opens the file in Python’s
buffered I/O mode. This reduces overheads as the code reads a file in
whole leading to a modest speedup.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113785">gh-113785</a>: <a class="reference internal" href="../library/csv.html#module-csv" title="csv: Write and read tabular data to and from delimited files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code></a> now correctly parses numeric fields (when used with
<a class="reference internal" href="../library/csv.html#csv.QUOTE_NONNUMERIC" title="csv.QUOTE_NONNUMERIC"><code class="xref py py-const docutils literal notranslate"><span class="pre">csv.QUOTE_NONNUMERIC</span></code></a> or <a class="reference internal" href="../library/csv.html#csv.QUOTE_STRINGS" title="csv.QUOTE_STRINGS"><code class="xref py py-const docutils literal notranslate"><span class="pre">csv.QUOTE_STRINGS</span></code></a>) which start
with an escape character.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122088">gh-122088</a>: <a class="reference internal" href="../library/warnings.html#warnings.deprecated" title="warnings.deprecated"><code class="xref py py-func docutils literal notranslate"><span class="pre">@warnings.deprecated</span></code></a> now copies
the coroutine status of functions and methods so that
<a class="reference internal" href="../library/inspect.html#inspect.iscoroutinefunction" title="inspect.iscoroutinefunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.iscoroutinefunction()</span></code></a> returns the correct result.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122081">gh-122081</a>: Fix a crash in the <code class="xref py py-func docutils literal notranslate"><span class="pre">decimal.IEEEContext()</span></code> optional
function available via the <code class="docutils literal notranslate"><span class="pre">EXTRA_FUNCTIONALITY</span></code> configuration flag.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/73991">gh-73991</a>: Add <a class="reference internal" href="../library/pathlib.html#pathlib.Path.move" title="pathlib.Path.move"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.move()</span></code></a>, which moves a file or directory
tree.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121268">gh-121268</a>: Remove workarounds for non-IEEE 754 systems in <a class="reference internal" href="../library/cmath.html#module-cmath" title="cmath: Mathematical functions for complex numbers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">cmath</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119698">gh-119698</a>: Due to the lack of interest for
<a class="reference internal" href="../library/symtable.html#symtable.Class.get_methods" title="symtable.Class.get_methods"><code class="xref py py-meth docutils literal notranslate"><span class="pre">symtable.Class.get_methods()</span></code></a>, the method is marked as deprecated and
will be removed in Python 3.16. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121889">gh-121889</a>: Adjusts <code class="docutils literal notranslate"><span class="pre">cmath.acosh(complex('0+nanj'))</span></code> for recent C
standards.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121804">gh-121804</a>: Correctly show error locations, when <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> raised
in new repl. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121797">gh-121797</a>: Add alternative <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fraction</span></code></a> constructor
<a class="reference internal" href="../library/fractions.html#fractions.Fraction.from_number" title="fractions.Fraction.from_number"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Fraction.from_number()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121798">gh-121798</a>: Add alternative <a class="reference internal" href="../library/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal notranslate"><span class="pre">Decimal</span></code></a> constructor
<a class="reference internal" href="../library/decimal.html#decimal.Decimal.from_number" title="decimal.Decimal.from_number"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Decimal.from_number()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120930">gh-120930</a>: Fixed a bug introduced by <a class="reference external" href="https://github.com/python/cpython/issues/92081">gh-92081</a> that added an incorrect
extra blank to encoded words occurring in wrapped headers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/57141">gh-57141</a>: The <em>shallow</em> argument to <a class="reference internal" href="../library/filecmp.html#filecmp.dircmp" title="filecmp.dircmp"><code class="xref py py-class docutils literal notranslate"><span class="pre">filecmp.dircmp</span></code></a> (new in Python
3.13) is now keyword-only.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121245">gh-121245</a>: Simplify handling of the history file in
<code class="docutils literal notranslate"><span class="pre">site.register_readline()</span></code> helper. The <code class="docutils literal notranslate"><span class="pre">CAN_USE_PYREPL</span></code> variable now
will be initialized, when imported. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121249">gh-121249</a>: Support the <span class="c-expr sig sig-inline c"><span class="kt">float</span><span class="w"> </span><span class="kt">complex</span></span> and <span class="c-expr sig sig-inline c"><span class="kt">double</span><span class="w"> </span><span class="kt">complex</span></span> C types in the <a class="reference internal" href="../library/struct.html#module-struct" title="struct: Interpret bytes as packed binary data."><code class="xref py py-mod docutils literal notranslate"><span class="pre">struct</span></code></a> module if the compiler has C11
complex arithmetic. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121486">gh-121486</a>: <a class="reference internal" href="../library/math.html#module-math" title="math: Mathematical functions (sin() etc.)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code></a> functions <a class="reference internal" href="../library/math.html#math.isqrt" title="math.isqrt"><code class="xref py py-func docutils literal notranslate"><span class="pre">isqrt()</span></code></a>, <a class="reference internal" href="../library/math.html#math.log" title="math.log"><code class="xref py py-func docutils literal notranslate"><span class="pre">log()</span></code></a>,
<a class="reference internal" href="../library/math.html#math.log2" title="math.log2"><code class="xref py py-func docutils literal notranslate"><span class="pre">log2()</span></code></a> and <a class="reference internal" href="../library/math.html#math.log10" title="math.log10"><code class="xref py py-func docutils literal notranslate"><span class="pre">log10()</span></code></a> now support integers larger
than <code class="docutils literal notranslate"><span class="pre">2**2**32</span></code> on 32-bit platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121474">gh-121474</a>: Fix missing sanity check for <code class="docutils literal notranslate"><span class="pre">parties</span></code> arg in
<a class="reference internal" href="../library/threading.html#threading.Barrier" title="threading.Barrier"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.Barrier</span></code></a> constructor. Patch by Clinton Christian
(pygeek).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121450">gh-121450</a>: Hard-coded breakpoints (<a class="reference internal" href="../library/functions.html#breakpoint" title="breakpoint"><code class="xref py py-func docutils literal notranslate"><span class="pre">breakpoint()</span></code></a> and
<a class="reference internal" href="../library/pdb.html#pdb.set_trace" title="pdb.set_trace"><code class="xref py py-func docutils literal notranslate"><span class="pre">pdb.set_trace()</span></code></a>) now reuse the most recent <code class="docutils literal notranslate"><span class="pre">Pdb</span></code> instance that
calls <code class="docutils literal notranslate"><span class="pre">Pdb.set_trace()</span></code>, instead of creating a new one each time. As a
result, all the instance specific data like <code class="docutils literal notranslate"><span class="pre">display</span></code> and <code class="docutils literal notranslate"><span class="pre">commands</span></code>
are preserved across Hard-coded breakpoints.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119169">gh-119169</a>: Slightly speed up <a class="reference internal" href="../library/os.html#os.walk" title="os.walk"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.walk()</span></code></a> by simplifying exception
handling.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121423">gh-121423</a>: Improve import time of <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> by lazy importing modules
and writing <code class="xref py py-data docutils literal notranslate"><span class="pre">socket.errorTab</span></code> as a constant.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/59110">gh-59110</a>: <a class="reference internal" href="../library/zipimport.html#module-zipimport" title="zipimport: Support for importing Python modules from ZIP archives."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipimport</span></code></a> supports now namespace packages when no
directory entry exists.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119004">gh-119004</a>: Fix a crash in <a class="reference internal" href="../library/collections.html#collections-ordereddict-eq"><span class="std std-ref">OrderedDict.__eq__</span></a> when operands are mutated during the
check. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121313">gh-121313</a>: Limit the reading size in the
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.connection.Connection" title="multiprocessing.connection.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.connection.Connection</span></code></a> class to 64 KiB to prevent
memory overallocation and unnecessary memory management system calls.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121332">gh-121332</a>: Fix constructor of <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> nodes with custom
<code class="docutils literal notranslate"><span class="pre">_attributes</span></code>. Previously, passing custom attributes would raise a
<a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a>. Passing arguments to the constructor that
are not in <code class="docutils literal notranslate"><span class="pre">_fields</span></code> or <code class="docutils literal notranslate"><span class="pre">_attributes</span></code> remains deprecated. Patch by
Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121245">gh-121245</a>: Fix a bug in the handling of the command history of the new
<a class="reference internal" href="../glossary.html#term-REPL"><span class="xref std std-term">REPL</span></a> that caused the history file to be wiped at REPL exit.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121210">gh-121210</a>: Handle AST nodes with missing runtime fields or attributes in
<a class="reference internal" href="../library/ast.html#ast.compare" title="ast.compare"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.compare()</span></code></a>. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121163">gh-121163</a>: Add support for <code class="docutils literal notranslate"><span class="pre">all</span></code> as an valid <code class="docutils literal notranslate"><span class="pre">action</span></code> for
<a class="reference internal" href="../library/warnings.html#warnings.simplefilter" title="warnings.simplefilter"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.simplefilter()</span></code></a> and <a class="reference internal" href="../library/warnings.html#warnings.filterwarnings" title="warnings.filterwarnings"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.filterwarnings()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121151">gh-121151</a>: Fix wrapping of long usage text of arguments inside a mutually
exclusive group in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121141">gh-121141</a>: Add support for <a class="reference internal" href="../library/copy.html#copy.replace" title="copy.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.replace()</span></code></a> to AST nodes. Patch by
Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87744">gh-87744</a>: Fix waitpid race while calling
<a class="reference internal" href="../library/asyncio-subprocess.html#asyncio.subprocess.Process.send_signal" title="asyncio.subprocess.Process.send_signal"><code class="xref py py-meth docutils literal notranslate"><span class="pre">send_signal()</span></code></a> in asyncio. Patch by Kumar
Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121027">gh-121027</a>: Add a future warning in <code class="xref py py-meth docutils literal notranslate"><span class="pre">functools.partial.__get__()</span></code>. In
future Python versions <a class="reference internal" href="../library/functools.html#functools.partial" title="functools.partial"><code class="xref py py-class docutils literal notranslate"><span class="pre">functools.partial</span></code></a> will be a method
descriptor.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121027">gh-121027</a>: Make the <a class="reference internal" href="../library/functools.html#functools.partial" title="functools.partial"><code class="xref py py-class docutils literal notranslate"><span class="pre">functools.partial</span></code></a> object a method descriptor.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117784">gh-117784</a>: CPython now detects whether its linked TLS library supports
TLSv1.3 post-handshake authentication and disables that feature if support
is lacking.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121025">gh-121025</a>: Improve the <a class="reference internal" href="../reference/datamodel.html#object.__repr__" title="object.__repr__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__repr__()</span></code></a> of
<a class="reference internal" href="../library/functools.html#functools.partialmethod" title="functools.partialmethod"><code class="xref py py-class docutils literal notranslate"><span class="pre">functools.partialmethod</span></code></a>. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121018">gh-121018</a>: Fixed issues where <code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.ArgumentParser.parse_args()</span></code>
did not honor <code class="docutils literal notranslate"><span class="pre">exit_on_error=False</span></code>. Based on patch by Ben Hsing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119614">gh-119614</a>: Fix truncation of strings with embedded null characters in some
internal operations in <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120910">gh-120910</a>: When reading installed files from an egg, use
<code class="docutils literal notranslate"><span class="pre">relative_to(walk_up=True)</span></code> to honor files installed outside of the
installation root.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/61103">gh-61103</a>: Support <span class="c-expr sig sig-inline c"><span class="kt">float</span><span class="w"> </span><span class="kt">complex</span></span>, <span class="c-expr sig sig-inline c"><span class="kt">double</span><span class="w"> </span><span class="kt">complex</span></span> and
<span class="c-expr sig sig-inline c"><span class="kt">long</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="kt">complex</span></span> C types in <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> as
<a class="reference internal" href="../library/ctypes.html#ctypes.c_float_complex" title="ctypes.c_float_complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">c_float_complex</span></code></a>, <a class="reference internal" href="../library/ctypes.html#ctypes.c_double_complex" title="ctypes.c_double_complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">c_double_complex</span></code></a> and
<a class="reference internal" href="../library/ctypes.html#ctypes.c_longdouble_complex" title="ctypes.c_longdouble_complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">c_longdouble_complex</span></code></a> if the compiler has C11 complex
arithmetic. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120888">gh-120888</a>: Upgrade pip wheel bundled with ensurepip (pip 24.1.1)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101830">gh-101830</a>: Accessing the <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> object’s string representation no
longer converts the underlying Tcl object to a string on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120678">gh-120678</a>: Fix regression in the new REPL that meant that globals from
files passed using the <code class="docutils literal notranslate"><span class="pre">-i</span></code> argument would not be included in the REPL’s
global namespace. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120811">gh-120811</a>: Fix possible memory leak in <a class="reference internal" href="../library/contextvars.html#contextvars.Context.run" title="contextvars.Context.run"><code class="xref py py-meth docutils literal notranslate"><span class="pre">contextvars.Context.run()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120782">gh-120782</a>: Fix wrong references of the <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a> types after
reloading the module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120713">gh-120713</a>: <a class="reference internal" href="../library/datetime.html#datetime.datetime.strftime" title="datetime.datetime.strftime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.strftime()</span></code></a> now 0-pads years with less
than four digits for the format specifiers <code class="docutils literal notranslate"><span class="pre">%Y</span></code> and <code class="docutils literal notranslate"><span class="pre">%G</span></code> on Linux.
Patch by Ben Hsing</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120769">gh-120769</a>: Make empty line in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> repeats the last command even
when the command is from <code class="docutils literal notranslate"><span class="pre">cmdqueue</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120780">gh-120780</a>: Show string value of LOAD_SPECIAL oparg in <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> output.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/41431">gh-41431</a>: Add <a class="reference internal" href="../library/datetime.html#datetime.time.strptime" title="datetime.time.strptime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.time.strptime()</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.date.strptime" title="datetime.date.strptime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.date.strptime()</span></code></a>. Contributed by Wannes Boeykens.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120743">gh-120743</a>: <a class="reference internal" href="../glossary.html#term-soft-deprecated"><span class="xref std std-term">Soft deprecate</span></a> <a class="reference internal" href="../library/os.html#os.popen" title="os.popen"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.popen()</span></code></a> and
<a class="reference internal" href="../library/os.html#os.spawnl" title="os.spawnl"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.spawn*</span></code></a> functions. They should no longer be used to
write new code. The <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module is recommended instead. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120732">gh-120732</a>: Fix <code class="docutils literal notranslate"><span class="pre">name</span></code> passing to <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.Mock" title="unittest.mock.Mock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.Mock</span></code></a> object when
using <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.create_autospec" title="unittest.mock.create_autospec"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.create_autospec()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111259">gh-111259</a>: <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> now handles patterns like <code class="docutils literal notranslate"><span class="pre">"[\s\S]"</span></code> or <code class="docutils literal notranslate"><span class="pre">"\s|\S"</span></code>
which match any character as effectively as a dot with the <code class="docutils literal notranslate"><span class="pre">DOTALL</span></code>
modifier (<code class="docutils literal notranslate"><span class="pre">"(?s:.)"</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120683">gh-120683</a>: Fix an error in <a class="reference internal" href="../library/logging.html#logging.LogRecord" title="logging.LogRecord"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.LogRecord</span></code></a>, when the integer
part of the timestamp is rounded up, while the millisecond calculation
truncates, causing the log timestamp to be wrong by up to 999 ms (affected
roughly 1 in 8 million timestamps).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118710">gh-118710</a>: <a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv4Address" title="ipaddress.IPv4Address"><code class="xref py py-class docutils literal notranslate"><span class="pre">ipaddress.IPv4Address</span></code></a> and
<a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv6Address" title="ipaddress.IPv6Address"><code class="xref py py-class docutils literal notranslate"><span class="pre">ipaddress.IPv6Address</span></code></a> attributes <code class="docutils literal notranslate"><span class="pre">version</span></code> and
<code class="docutils literal notranslate"><span class="pre">max_prefixlen</span></code> are now available on the class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120633">gh-120633</a>: Move scrollbar and remove tear-off menus in turtledemo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120606">gh-120606</a>: Allow users to use EOF to exit <code class="docutils literal notranslate"><span class="pre">commands</span></code> definition in
<a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120284">gh-120284</a>: Allow <a class="reference internal" href="../library/asyncio-runner.html#asyncio.Runner.run" title="asyncio.Runner.run"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Runner.run()</span></code></a> to accept <a class="reference internal" href="../glossary.html#term-awaitable"><span class="xref std std-term">awaitable</span></a>
objects instead of simply <a class="reference internal" href="../glossary.html#term-coroutine"><span class="xref std std-term">coroutine</span></a>s.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120541">gh-120541</a>: Improve the prompt in the “less” pager when <a class="reference internal" href="../library/functions.html#help" title="help"><code class="xref py py-func docutils literal notranslate"><span class="pre">help()</span></code></a> is
called with non-string argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120495">gh-120495</a>: Fix incorrect exception handling in Tab Nanny. Patch by
Wulian233.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120388">gh-120388</a>: Improve a warning message when a test method in <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a>
returns something other than <code class="docutils literal notranslate"><span class="pre">None</span></code>. Now we show the returned object
type and optional asyncio-related tip.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120381">gh-120381</a>: Correct <a class="reference internal" href="../library/inspect.html#inspect.ismethoddescriptor" title="inspect.ismethoddescriptor"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.ismethoddescriptor()</span></code></a> to check also for
the lack of <a class="reference internal" href="../reference/datamodel.html#object.__delete__" title="object.__delete__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__delete__()</span></code></a>. Patch by Jan Kaliszewski.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90425">gh-90425</a>: The OS byte in gzip headers is now always set to 255 when using
<a class="reference internal" href="../library/gzip.html#gzip.compress" title="gzip.compress"><code class="xref py py-func docutils literal notranslate"><span class="pre">gzip.compress()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120343">gh-120343</a>: Fix column offset reporting for tokens that come after
multiline f-strings in the <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119180">gh-119180</a>: As part of implementing <span class="target" id="index-48"></span><a class="pep reference external" href="https://peps.python.org/pep-0649/"><strong>PEP 649</strong></a> and <span class="target" id="index-49"></span><a class="pep reference external" href="https://peps.python.org/pep-0749/"><strong>PEP 749</strong></a>, add a new
module <code class="docutils literal notranslate"><span class="pre">annotationlib</span></code>. Add support for unresolved forward references in
annotations to <a class="reference internal" href="../library/dataclasses.html#module-dataclasses" title="dataclasses: Generate special methods on user-defined classes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dataclasses</span></code></a>, <a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypedDict</span></code></a>, and
<a class="reference internal" href="../library/typing.html#typing.NamedTuple" title="typing.NamedTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NamedTuple</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119600">gh-119600</a>: Fix <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.patch" title="unittest.mock.patch"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.patch()</span></code></a> to not read attributes of the
target when <code class="docutils literal notranslate"><span class="pre">new_callable</span></code> is set. Patch by Robert Collins.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120289">gh-120289</a>: Fixed the use-after-free issue in <a class="reference internal" href="../library/profile.html#module-cProfile" title="cProfile"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cProfile</span></code></a> by
disallowing <code class="docutils literal notranslate"><span class="pre">disable()</span></code> and <code class="docutils literal notranslate"><span class="pre">clear()</span></code> in external timers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82017">gh-82017</a>: Added support for converting any objects that have the
<code class="xref py py-meth docutils literal notranslate"><span class="pre">as_integer_ratio()</span></code> method to a <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fraction</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114053">gh-114053</a>: Fix edge-case bug where <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> would
produce incorrect results if type parameters in a class scope were
overridden by assignments in a class scope and <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span>
<span class="pre">annotations</span></code> semantics were enabled. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114053">gh-114053</a>: Fix erroneous <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> when calling
<a class="reference internal" href="../library/inspect.html#inspect.get_annotations" title="inspect.get_annotations"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.get_annotations()</span></code></a> with <code class="docutils literal notranslate"><span class="pre">eval_str=True`</span></code> on a class that
made use of <span class="target" id="index-50"></span><a class="pep reference external" href="https://peps.python.org/pep-0695/"><strong>PEP 695</strong></a> type parameters in a module that had <code class="docutils literal notranslate"><span class="pre">from</span>
<span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">annotations</span></code> at the top of the file. Patch by Alex
Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120268">gh-120268</a>: Prohibit passing <code class="docutils literal notranslate"><span class="pre">None</span></code> to pure-Python
<a class="reference internal" href="../library/datetime.html#datetime.date.fromtimestamp" title="datetime.date.fromtimestamp"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.date.fromtimestamp()</span></code></a> to achieve consistency with
C-extension implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120244">gh-120244</a>: Fix memory leak in <a class="reference internal" href="../library/re.html#re.sub" title="re.sub"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.sub()</span></code></a> when the replacement string
contains backreferences.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120254">gh-120254</a>: Added <code class="docutils literal notranslate"><span class="pre">commands</span></code> argument to <a class="reference internal" href="../library/pdb.html#pdb.set_trace" title="pdb.set_trace"><code class="xref py py-func docutils literal notranslate"><span class="pre">pdb.set_trace()</span></code></a> which
allows users to send debugger commands from the source file.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120211">gh-120211</a>: Fix <a class="reference internal" href="../library/tkinter.ttk.html#module-tkinter.ttk" title="tkinter.ttk: Tk themed widget set"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.ttk</span></code></a> with Tcl/Tk 9.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71587">gh-71587</a>: Fix crash in C version of <a class="reference internal" href="../library/datetime.html#datetime.datetime.strptime" title="datetime.datetime.strptime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.strptime()</span></code></a>
when called again on the restarted interpreter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117983">gh-117983</a>: Defer the <code class="docutils literal notranslate"><span class="pre">threading</span></code> import in <code class="docutils literal notranslate"><span class="pre">importlib.util</span></code> until lazy
loading is used.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120157">gh-120157</a>: Remove unused constant
<code class="docutils literal notranslate"><span class="pre">concurrent.futures._base._FUTURE_STATES</span></code> in <a class="reference internal" href="../library/concurrent.futures.html#module-concurrent.futures" title="concurrent.futures: Execute computations concurrently using threads or processes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures</span></code></a>.
Patch by Clinton Christian (pygeek).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120161">gh-120161</a>: <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a> no longer crashes in certain complex reference
cycle situations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119698">gh-119698</a>: Fix <a class="reference internal" href="../library/symtable.html#symtable.Class.get_methods" title="symtable.Class.get_methods"><code class="xref py py-meth docutils literal notranslate"><span class="pre">symtable.Class.get_methods()</span></code></a> and document its
behaviour. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120121">gh-120121</a>: Add <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.InvalidStateError" title="concurrent.futures.InvalidStateError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">concurrent.futures.InvalidStateError</span></code></a> to module’s
<code class="docutils literal notranslate"><span class="pre">__all__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119933">gh-119933</a>: Add the <a class="reference internal" href="../library/symtable.html#symtable.SymbolTableType" title="symtable.SymbolTableType"><code class="xref py py-class docutils literal notranslate"><span class="pre">symtable.SymbolTableType</span></code></a> enumeration to
represent the possible outputs of the
<a class="reference internal" href="../library/symtable.html#symtable.SymbolTable.get_type" title="symtable.SymbolTable.get_type"><code class="xref py py-class docutils literal notranslate"><span class="pre">symtable.SymbolTable.get_type</span></code></a> method. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120029">gh-120029</a>: Expose <a class="reference internal" href="../library/symtable.html#symtable.Symbol" title="symtable.Symbol"><code class="xref py py-class docutils literal notranslate"><span class="pre">symtable.Symbol</span></code></a> methods
<a class="reference internal" href="../library/symtable.html#symtable.Symbol.is_free_class" title="symtable.Symbol.is_free_class"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_free_class()</span></code></a>,
<a class="reference internal" href="../library/symtable.html#symtable.Symbol.is_comp_iter" title="symtable.Symbol.is_comp_iter"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_comp_iter()</span></code></a> and
<a class="reference internal" href="../library/symtable.html#symtable.Symbol.is_comp_cell" title="symtable.Symbol.is_comp_cell"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_comp_cell()</span></code></a>. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120108">gh-120108</a>: Fix calling <a class="reference internal" href="../library/copy.html#copy.deepcopy" title="copy.deepcopy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.deepcopy()</span></code></a> on <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> trees that have
been modified to have references to parent nodes. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120056">gh-120056</a>: Add <code class="xref py py-data docutils literal notranslate"><span class="pre">socket.IP_RECVERR</span></code> and <code class="xref py py-data docutils literal notranslate"><span class="pre">socket.IP_RECVTTL</span></code>
constants (both available since Linux 2.2). And
<code class="xref py py-data docutils literal notranslate"><span class="pre">socket.IP_RECVORIGDSTADDR</span></code> constant (available since Linux
2.6.29).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112672">gh-112672</a>: Support building <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> with Tcl 9.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120057">gh-120057</a>: Added the <a class="reference internal" href="../library/os.html#os.environ" title="os.environ"><code class="xref py py-data docutils literal notranslate"><span class="pre">os.environ.refresh()</span></code></a> method to
update <a class="reference internal" href="../library/os.html#os.environ" title="os.environ"><code class="xref py py-data docutils literal notranslate"><span class="pre">os.environ</span></code></a> with changes to the environment made by
<a class="reference internal" href="../library/os.html#os.putenv" title="os.putenv"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.putenv()</span></code></a>, by <a class="reference internal" href="../library/os.html#os.unsetenv" title="os.unsetenv"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.unsetenv()</span></code></a>, or made outside Python in the
same process. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120029">gh-120029</a>: Expose <a class="reference internal" href="../library/symtable.html#symtable.Symbol.is_type_parameter" title="symtable.Symbol.is_type_parameter"><code class="xref py py-meth docutils literal notranslate"><span class="pre">symtable.Symbol.is_type_parameter()</span></code></a> in the
<a class="reference internal" href="../library/symtable.html#module-symtable" title="symtable: Interface to the compiler's internal symbol tables."><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code></a> module. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119819">gh-119819</a>: Fix regression to allow logging configuration with
multiprocessing queue types.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65454">gh-65454</a>: <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.Mock.attach_mock" title="unittest.mock.Mock.attach_mock"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.Mock.attach_mock()</span></code></a> no longer triggers a call
to a <code class="docutils literal notranslate"><span class="pre">PropertyMock</span></code> being attached.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117142">gh-117142</a>: The <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> module may now be imported in all
subinterpreters, including those that have their own GIL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118835">gh-118835</a>: Fix _pyrepl crash when using custom prompt with ANSI escape
codes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81936">gh-81936</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">help()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">showtopic()</span></code> methods now respect a
configured <em>output</em> argument to <code class="xref py py-class docutils literal notranslate"><span class="pre">pydoc.Helper</span></code> and not use the
pager in such cases. Patch by Enrico Tröger.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117398">gh-117398</a>: The <code class="docutils literal notranslate"><span class="pre">_datetime</span></code> module (C implementation for <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a>)
now supports being imported in multiple interpreters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119824">gh-119824</a>: Print stack entry in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> when and only when user input
is needed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119838">gh-119838</a>: In mixed arithmetic operations with
<a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fraction</span></code></a> and complex, the fraction is now converted to
<a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> instead of <a class="reference internal" href="../library/functions.html#complex" title="complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">complex</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119770">gh-119770</a>: Make <a class="reference internal" href="../library/termios.html#module-termios" title="termios: POSIX style tty control. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">termios</span></code></a> <code class="docutils literal notranslate"><span class="pre">ioctl()</span></code> constants positive. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89727">gh-89727</a>: Fix issue with <a class="reference internal" href="../library/shutil.html#shutil.rmtree" title="shutil.rmtree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code></a> where a
<a class="reference internal" href="../library/exceptions.html#RecursionError" title="RecursionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RecursionError</span></code></a> is raised on deep directory trees.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119577">gh-119577</a>: The <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> emitted when testing the truth
value of an <a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.Element" title="xml.etree.ElementTree.Element"><code class="xref py py-class docutils literal notranslate"><span class="pre">xml.etree.ElementTree.Element</span></code></a> now describes
unconditionally returning <code class="docutils literal notranslate"><span class="pre">True</span></code> in a future version rather than raising
an exception in Python 3.14.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89727">gh-89727</a>: Partially fix issue with <a class="reference internal" href="../library/shutil.html#shutil.rmtree" title="shutil.rmtree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code></a> where a
<a class="reference internal" href="../library/exceptions.html#RecursionError" title="RecursionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RecursionError</span></code></a> is raised on deep directory trees. A recursion error
is no longer raised when <code class="xref py py-data docutils literal notranslate"><span class="pre">rmtree.avoids_symlink_attacks</span></code> is false.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93963">gh-93963</a>: Remove deprecated names from <code class="docutils literal notranslate"><span class="pre">importlib.abc</span></code> as found in
<code class="docutils literal notranslate"><span class="pre">importlib.resources.abc</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119118">gh-119118</a>: Fix performance regression in the <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a> module by
caching the <code class="docutils literal notranslate"><span class="pre">line</span></code> token attribute and calculating the column offset
more efficiently.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89727">gh-89727</a>: Fix issue with <a class="reference internal" href="../library/os.html#os.fwalk" title="os.fwalk"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fwalk()</span></code></a> where a <a class="reference internal" href="../library/exceptions.html#RecursionError" title="RecursionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RecursionError</span></code></a>
was raised on deep directory trees by adjusting the implementation to be
iterative instead of recursive.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119594">gh-119594</a>: If one calls pow(fractions.Fraction, x, module) with modulo not
None, the error message now says that the types are incompatible rather
than saying pow only takes 2 arguments. Patch by Wim Jeantine-Glenn and
Mark Dickinson.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119588">gh-119588</a>: <code class="docutils literal notranslate"><span class="pre">zipfile.Path.is_symlink</span></code> now assesses if the given path is a
symlink.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119562">gh-119562</a>: Remove <code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Num</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Str</span></code>,
<code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Bytes</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">ast.NameConstant</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Ellipsis</span></code>. They had all emitted deprecation warnings since
Python 3.12. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119555">gh-119555</a>: Catch <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> from <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a> in the
runsource() method of the InteractiveColoredConsole. Patch by Sergey B
Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118908">gh-118908</a>: Limit exposed globals from internal imports and definitions on
new REPL startup. Patch by Eugene Triguba and Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117865">gh-117865</a>: Improve the import time of the <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> module by deferring
the import of <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119127">gh-119127</a>: Positional arguments of <a class="reference internal" href="../library/functools.html#functools.partial" title="functools.partial"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.partial()</span></code></a> objects now
support placeholders via <a class="reference internal" href="../library/functools.html#functools.Placeholder" title="functools.Placeholder"><code class="xref py py-data docutils literal notranslate"><span class="pre">functools.Placeholder</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113892">gh-113892</a>: Now, the method <code class="docutils literal notranslate"><span class="pre">sock_connect</span></code> of
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.ProactorEventLoop" title="asyncio.ProactorEventLoop"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.ProactorEventLoop</span></code></a> raises a <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> if given
socket is not in non-blocking mode, as well as in other loop
implementations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119506">gh-119506</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">io.TextIOWrapper.write()</span></code> method breaks internal
buffer when the method is called again during flushing internal buffer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69214">gh-69214</a>: Fix <code class="docutils literal notranslate"><span class="pre">fcntl.ioctl()</span></code> <em>request</em> parameter: use an <code class="docutils literal notranslate"><span class="pre">unsigned</span>
<span class="pre">long</span></code> instead of an <code class="docutils literal notranslate"><span class="pre">unsigned</span> <span class="pre">int</span></code> for the <em>request</em> parameter of
<a class="reference internal" href="../library/fcntl.html#fcntl.ioctl" title="fcntl.ioctl"><code class="xref py py-func docutils literal notranslate"><span class="pre">fcntl.ioctl()</span></code></a> to support requests larger than <code class="docutils literal notranslate"><span class="pre">UINT_MAX</span></code>. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119105">gh-119105</a>: <code class="docutils literal notranslate"><span class="pre">difflib</span></code>’s <code class="docutils literal notranslate"><span class="pre">DIffer.compare()</span></code> (and so also <code class="docutils literal notranslate"><span class="pre">ndiff</span></code>) can
no longer be provoked into cubic-time behavior, or into unbounded
recursion, and should generally be faster in ordinary cases too. Results
may change in some cases, although that should be rare. Correctness of
diffs is not affected. Some similar lines far apart may be reported as
deleting one and adding the other, where before they were displayed on
adjacent output lines with markup showing the intraline differences.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119443">gh-119443</a>: The interactive REPL no longer runs with <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span>
<span class="pre">import</span> <span class="pre">annotations</span></code> enabled. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119461">gh-119461</a>: Add <code class="docutils literal notranslate"><span class="pre">socket.VMADDR_CID_LOCAL</span></code> constant. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117398">gh-117398</a>: Objects in the datetime C-API are now all statically allocated,
which means better memory safety, especially when the module is reloaded.
This should be transparent to users.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118894">gh-118894</a>: <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> REPL now has the same capabilities as PyREPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118830">gh-118830</a>: Bump <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a> default protocol to <code class="docutils literal notranslate"><span class="pre">5</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118911">gh-118911</a>: In PyREPL, updated <code class="docutils literal notranslate"><span class="pre">maybe-accept</span></code>’s logic so that if the user
hits <kbd class="kbd docutils literal notranslate">Enter</kbd> twice, they are able to terminate the block even if
there’s trailing whitespace. Also, now when the user hits arrow up, the
cursor is on the last functional line. This matches IPython’s behavior.
Patch by Aya Elsayed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115225">gh-115225</a>: Raise error on certain technically valid but pathological ISO
8601 strings passed to <a class="reference internal" href="../library/datetime.html#datetime.time.fromisoformat" title="datetime.time.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.time.fromisoformat()</span></code></a> that were
previously parsed incorrectly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111201">gh-111201</a>: Remove dependency to <a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a> from the new Python REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119189">gh-119189</a>: When using the <code class="docutils literal notranslate"><span class="pre">**</span></code> operator or <a class="reference internal" href="../library/functions.html#pow" title="pow"><code class="xref py py-func docutils literal notranslate"><span class="pre">pow()</span></code></a> with
<a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fraction</span></code></a> as the base and an exponent that is not
rational, a float, or a complex, the fraction is no longer converted to a
float.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119174">gh-119174</a>: Fix high DPI causes turtledemo(turtle-graphics examples)
windows blurry Patch by Wulian233 and Terry Jan Reedy</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119121">gh-119121</a>: Fix a NameError happening in
<code class="docutils literal notranslate"><span class="pre">asyncio.staggered.staggered_race</span></code>. This function is now tested.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119105">gh-119105</a>: <code class="docutils literal notranslate"><span class="pre">difflib.Differ</span></code> is much faster for some cases of diffs where
many pairs of lines are equally similar.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119113">gh-119113</a>: Fix issue where <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.with_suffix" title="pathlib.PurePath.with_suffix"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.with_suffix()</span></code></a> didn’t
raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when given <code class="docutils literal notranslate"><span class="pre">None</span></code> as a suffix.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118643">gh-118643</a>: Fix an AttributeError in the <a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a> module when re-fold a
long address list. Also fix more cases of incorrect encoding of the
address separator in the address list.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/73991">gh-73991</a>: Add <a class="reference internal" href="../library/pathlib.html#pathlib.Path.copy" title="pathlib.Path.copy"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.copy()</span></code></a>, which copies a file or directory
to another.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/58933">gh-58933</a>: Make <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> return to caller frame correctly when
<code class="docutils literal notranslate"><span class="pre">f_trace</span></code> of the caller frame is not set</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82805">gh-82805</a>: Support single-dot file extensions in
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.suffix" title="pathlib.PurePath.suffix"><code class="xref py py-attr docutils literal notranslate"><span class="pre">pathlib.PurePath.suffix</span></code></a> and related attributes and methods. For
example, the <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.suffixes" title="pathlib.PurePath.suffixes"><code class="xref py py-attr docutils literal notranslate"><span class="pre">suffixes</span></code></a> of
<code class="docutils literal notranslate"><span class="pre">PurePath('foo.bar.')</span></code> are now <code class="docutils literal notranslate"><span class="pre">['.bar',</span> <span class="pre">'.']</span></code> rather than <code class="docutils literal notranslate"><span class="pre">[]</span></code>.
This brings file extension splitting in line with
<a class="reference internal" href="../library/os.path.html#os.path.splitext" title="os.path.splitext"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.splitext()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118924">gh-118924</a>: Remove <code class="xref py py-data docutils literal notranslate"><span class="pre">version</span></code> and <code class="xref py py-data docutils literal notranslate"><span class="pre">version_info</span></code> from
<a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118928">gh-118928</a>: Disallow using a sequence of parameters with named placeholders
in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> queries. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118895">gh-118895</a>: Setting attributes on <a class="reference internal" href="../library/typing.html#typing.NoDefault" title="typing.NoDefault"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.NoDefault</span></code></a> now raises
<a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118868">gh-118868</a>: Fixed issue where kwargs were no longer passed to the logging
handler QueueHandler</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118827">gh-118827</a>: Remove deprecated <code class="xref py py-class docutils literal notranslate"><span class="pre">Quoter</span></code> class from
<a class="reference internal" href="../library/urllib.parse.html#module-urllib.parse" title="urllib.parse: Parse URLs into or assemble them from components."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.parse</span></code></a>. It had previously raised a <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a>
since Python 3.11. Patch by Nikita Sobolev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118824">gh-118824</a>: Remove deprecated <code class="xref py py-func docutils literal notranslate"><span class="pre">pty.master_open()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">pty.slave_open()</span></code>. Use <a class="reference internal" href="../library/pty.html#pty.openpty" title="pty.openpty"><code class="xref py py-func docutils literal notranslate"><span class="pre">pty.openpty()</span></code></a> instead. Patch by Nikita
Sobolev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118851">gh-118851</a>: <code class="docutils literal notranslate"><span class="pre">ctx</span></code> arguments to the constructors of <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> node
classes now default to <a class="reference internal" href="../library/ast.html#ast.Load" title="ast.Load"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Load()</span></code></a>. Patch by Jelle
Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101588">gh-101588</a>: Remove copy, deepcopy, and pickle from itertools. These had
previously raised a DeprecationWarning since Python 3.12.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118805">gh-118805</a>: Remove <em>type</em>, <em>choices</em>, and <em>metavar</em> parameters of
<code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.BooleanOptionalAction</span></code>. They were deprecated since
Python 3.12.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118803">gh-118803</a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ByteString</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.ByteString</span></code> are removed. They had previously
raised a <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> since Python 3.12.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118798">gh-118798</a>: The <em>isdst</em> parameter has been removed from
<a class="reference internal" href="../library/email.utils.html#email.utils.localtime" title="email.utils.localtime"><code class="xref py py-func docutils literal notranslate"><span class="pre">email.utils.localtime()</span></code></a>. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118760">gh-118760</a>: Restore the default value of <code class="docutils literal notranslate"><span class="pre">tkiter.wantobjects</span></code> to <code class="docutils literal notranslate"><span class="pre">1</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118760">gh-118760</a>: Fix errors in calling Tkinter bindings on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74033">gh-74033</a>: Drop support for passing keyword arguments to
<a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101357">gh-101357</a>: Suppress all <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> exceptions from
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.exists" title="pathlib.Path.exists"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.exists()</span></code></a> and <code class="docutils literal notranslate"><span class="pre">is_*()</span></code> methods, rather than a
selection of more common errors. The new behaviour is consistent with
<a class="reference internal" href="../library/os.path.html#os.path.exists" title="os.path.exists"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.exists()</span></code></a>, <a class="reference internal" href="../library/os.path.html#os.path.isdir" title="os.path.isdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.isdir()</span></code></a>, etc. Use
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.stat" title="pathlib.Path.stat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.stat()</span></code></a> to retrieve the file status without suppressing
exceptions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/78707">gh-78707</a>: Drop support for passing additional positional arguments to
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.relative_to" title="pathlib.PurePath.relative_to"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.relative_to()</span></code></a> and
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.is_relative_to" title="pathlib.PurePath.is_relative_to"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_relative_to()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118507">gh-118507</a>: Fix <a class="reference internal" href="../library/os.path.html#os.path.isfile" title="os.path.isfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.isfile()</span></code></a> on Windows for pipes. Speedup
<a class="reference internal" href="../library/os.path.html#os.path.isjunction" title="os.path.isjunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.isjunction()</span></code></a> and <a class="reference internal" href="../library/os.path.html#os.path.lexists" title="os.path.lexists"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.lexists()</span></code></a> on Windows with a
native implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118772">gh-118772</a>: Allow <a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeVar</span></code></a> instances without a default to
follow instances without a default in some cases. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118714">gh-118714</a>: Allow <code class="docutils literal notranslate"><span class="pre">restart</span></code> in post-mortem debugging of <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>.
Removed restart message when the user quits pdb from post-mortem mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118673">gh-118673</a>: Removed executable bits and shebang from stdlib modules.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110863">gh-110863</a>: <a class="reference internal" href="../library/os.path.html#os.path.realpath" title="os.path.realpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.realpath()</span></code></a> now suppresses any <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> from
<a class="reference internal" href="../library/os.html#os.readlink" title="os.readlink"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.readlink()</span></code></a> when <em>strict</em> mode is disabled (the default).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118263">gh-118263</a>: Speed up <a class="reference internal" href="../library/os.path.html#os.path.splitroot" title="os.path.splitroot"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.splitroot()</span></code></a> & <a class="reference internal" href="../library/os.path.html#os.path.normpath" title="os.path.normpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.normpath()</span></code></a>
with a direct C call.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110190">gh-110190</a>: Fix ctypes structs with array on SPARC by setting
<code class="docutils literal notranslate"><span class="pre">MAX_STRUCT_SIZE</span></code> to 32 in stgdict. Patch by Jakub Kulik</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118033">gh-118033</a>: Fix <a class="reference internal" href="../library/dataclasses.html#dataclasses.dataclass" title="dataclasses.dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.dataclass()</span></code></a> not creating a
<code class="docutils literal notranslate"><span class="pre">__weakref__</span></code> slot when subclassing <a class="reference internal" href="../library/typing.html#typing.Generic" title="typing.Generic"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Generic</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117766">gh-117766</a>: Always use <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-func docutils literal notranslate"><span class="pre">str()</span></code></a> to print <code class="docutils literal notranslate"><span class="pre">choices</span></code> in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106531">gh-106531</a>: In <a class="reference internal" href="../library/importlib.resources.html#module-importlib.resources" title="importlib.resources: Package resource reading, opening, and access"><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib.resources</span></code></a>, sync with <a class="reference external" href="https://importlib-resources.readthedocs.io/en/latest/history.html#v6-3-2">importlib_resources
6.3.2</a>,
including: <code class="docutils literal notranslate"><span class="pre">MultiplexedPath</span></code> now expects <code class="docutils literal notranslate"><span class="pre">Traversable</span></code> paths,
deprecating string arguments to <code class="docutils literal notranslate"><span class="pre">MultiplexedPath</span></code>; Enabled support for
resources in namespace packages in zip files; Fixed <code class="docutils literal notranslate"><span class="pre">NotADirectoryError</span></code>
when calling files on a subdirectory of a namespace package.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115937">gh-115937</a>: Removed extra preprocessing for the <code class="docutils literal notranslate"><span class="pre">__signature__</span></code>
attribute: the code just check if it’s a <a class="reference internal" href="../library/inspect.html#inspect.Signature" title="inspect.Signature"><code class="xref py py-class docutils literal notranslate"><span class="pre">inspect.Signature</span></code></a>
instance. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115808">gh-115808</a>: Add <a class="reference internal" href="../library/operator.html#operator.is_none" title="operator.is_none"><code class="xref py py-func docutils literal notranslate"><span class="pre">operator.is_none()</span></code></a> and <a class="reference internal" href="../library/operator.html#operator.is_not_none" title="operator.is_not_none"><code class="xref py py-func docutils literal notranslate"><span class="pre">operator.is_not_none()</span></code></a>
functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114264">gh-114264</a>: Improve performance of <a class="reference internal" href="../library/copy.html#copy.deepcopy" title="copy.deepcopy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.deepcopy()</span></code></a> by adding a fast
path for atomic types.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113878">gh-113878</a>: Add <em>doc</em> parameter to <a class="reference internal" href="../library/dataclasses.html#dataclasses.field" title="dataclasses.field"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.field()</span></code></a>, so it can be
stored and shown as a documentation / metadata. If
<code class="docutils literal notranslate"><span class="pre">@dataclass(slots=True)</span></code> is used, then the supplied string is available
in the <a class="reference internal" href="../reference/datamodel.html#object.__slots__" title="object.__slots__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__slots__</span></code></a> dict. Otherwise, the supplied string is
only available in the corresponding <a class="reference internal" href="../library/dataclasses.html#dataclasses.Field" title="dataclasses.Field"><code class="xref py py-class docutils literal notranslate"><span class="pre">dataclasses.Field</span></code></a> object.</p>
<p>In order to support this feature we are changing the <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> format
in dataclasses from <a class="reference internal" href="../library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> to <a class="reference internal" href="../library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> when documentation /
metadata is present.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113978">gh-113978</a>: Ignore warnings on text completion inside REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113008">gh-113008</a>: Correct argparse usage output for required, mutually exclusive
groups containing a positional argument</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108172">gh-108172</a>: <code class="docutils literal notranslate"><span class="pre">webbrowser</span></code> honors OS preferred browser on Linux when its
desktop entry name contains the text of a known browser name.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109109">gh-109109</a>: You can now get the raw TLS certificate chains from TLS
connections via <a class="reference internal" href="../library/ssl.html#ssl.SSLSocket.get_verified_chain" title="ssl.SSLSocket.get_verified_chain"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.SSLSocket.get_verified_chain()</span></code></a> and
<a class="reference internal" href="../library/ssl.html#ssl.SSLSocket.get_unverified_chain" title="ssl.SSLSocket.get_unverified_chain"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.SSLSocket.get_unverified_chain()</span></code></a> methods.</p>
<p>Contributed by Mateusz Nowak.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105623">gh-105623</a>: Fix performance degradation in
<a class="reference internal" href="../library/logging.handlers.html#logging.handlers.RotatingFileHandler" title="logging.handlers.RotatingFileHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.handlers.RotatingFileHandler</span></code></a>. Patch by Craig Robson.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102450">gh-102450</a>: Add missing ISO-8601 24:00 alternative to midnight of next day
to <a class="reference internal" href="../library/datetime.html#datetime.datetime.fromisoformat" title="datetime.datetime.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.fromisoformat()</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.time.fromisoformat" title="datetime.time.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.time.fromisoformat()</span></code></a>. Patch by Izan “TizzySaurus” Robinson
(<a class="reference external" href="mailto:tizzysaurus%40gmail.com">tizzysaurus<span>@</span>gmail<span>.</span>com</a>)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103956">gh-103956</a>: Fix lack of newline characters in <a class="reference internal" href="../library/trace.html#module-trace" title="trace: Trace or track Python statement execution."><code class="xref py py-mod docutils literal notranslate"><span class="pre">trace</span></code></a> module output
when line tracing is enabled but source code line for current frame is not
available.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92081">gh-92081</a>: Fix missing spaces in email headers when the spaces are mixed
with encoded 8-bit characters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103194">gh-103194</a>: Prepare Tkinter for C API changes in Tcl 8.7/9.0 to avoid
<code class="xref py py-class docutils literal notranslate"><span class="pre">_tkinter.Tcl_Obj</span></code> being unexpectedly returned instead of
<a class="reference internal" href="../library/functions.html#bool" title="bool"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>, <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>, <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a>, or <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87106">gh-87106</a>: Fixed handling in <a class="reference internal" href="../library/inspect.html#inspect.Signature.bind" title="inspect.Signature.bind"><code class="xref py py-meth docutils literal notranslate"><span class="pre">inspect.Signature.bind()</span></code></a> of keyword
arguments having the same name as positional-only arguments when a
variadic keyword argument (e.g. <code class="docutils literal notranslate"><span class="pre">**kwargs</span></code>) is present.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103134">gh-103134</a>: Add additional methods to <a class="reference internal" href="../library/multiprocessing.html#multiprocessing-proxy-objects"><span class="std std-ref">proxy objects</span></a> in the <code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code> module:</p>
<ul class="simple">
<li><p><code class="xref py py-meth docutils literal notranslate"><span class="pre">clear()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">copy()</span></code> for proxies of <a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/stdtypes.html#dict.fromkeys" title="dict.fromkeys"><code class="xref py py-meth docutils literal notranslate"><span class="pre">fromkeys()</span></code></a>, <code class="docutils literal notranslate"><span class="pre">reversed(d)</span></code>, <code class="docutils literal notranslate"><span class="pre">d</span> <span class="pre">|</span> <span class="pre">{}</span></code>, <code class="docutils literal notranslate"><span class="pre">{}</span> <span class="pre">|</span> <span class="pre">d</span></code>,
<code class="docutils literal notranslate"><span class="pre">d</span> <span class="pre">|=</span> <span class="pre">{'b':</span> <span class="pre">2}</span></code> for proxies of <a class="reference internal" href="../library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a></p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45767">bpo-45767</a>: Fix integer conversion in <a class="reference internal" href="../library/os.html#os.major" title="os.major"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.major()</span></code></a>, <a class="reference internal" href="../library/os.html#os.minor" title="os.minor"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.minor()</span></code></a>,
and <a class="reference internal" href="../library/os.html#os.makedev" title="os.makedev"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.makedev()</span></code></a>. Support device numbers larger than <code class="docutils literal notranslate"><span class="pre">2**63-1</span></code>.
Support non-existent device number (<code class="docutils literal notranslate"><span class="pre">NODEV</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44864">bpo-44864</a>: Do not translate user-provided strings in
<a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser" title="argparse.ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41843">bpo-41843</a>: Solaris now uses <a class="reference internal" href="../library/os.html#os.sendfile" title="os.sendfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.sendfile()</span></code></a> fast-copy syscall for more
efficient <a class="reference internal" href="../library/shutil.html#module-shutil" title="shutil: High-level file operations, including copying."><code class="xref py py-mod docutils literal notranslate"><span class="pre">shutil</span></code></a> file copy related functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15987">bpo-15987</a>: Implemented <a class="reference internal" href="../library/ast.html#ast.compare" title="ast.compare"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.compare()</span></code></a> for comparing two ASTs. Patch
by Batuhan Taskaya with some help from Jeremy Hylton.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/67693">gh-67693</a>: Fix <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlunparse" title="urllib.parse.urlunparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlunparse()</span></code></a> and
<a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlunsplit" title="urllib.parse.urlunsplit"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlunsplit()</span></code></a> for URIs with path starting with multiple
slashes and no authority. Based on patch by Ashwin Ramaswami.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14074">bpo-14074</a>: Fix <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> metavar processing to allow positional
arguments to have a tuple metavar.</p></li>
</ul>
</section>
<section id="id109">
<h3>IDLE<a class="headerlink" href="#id109" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122392">gh-122392</a>: Increase currently inadequate vertical spacing for the IDLE
browsers (path, module, and stack) on high-resolution monitors.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112938">gh-112938</a>: Fix uninteruptable hang when Shell gets rapid continuous
output.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122482">gh-122482</a>: Change About IDLE to direct users to discuss.python.org instead
of the now unused idle-dev email and mailing list.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/78889">gh-78889</a>: Stop Shell freezes by blocking user access to non-method
sys.stdout.shell attributes, which are all private.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120083">gh-120083</a>: Add explicit black IDLE Hovertip foreground color needed for
recent macOS. Fixes Sonoma showing unreadable white on pale yellow. Patch
by John Riggles.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120104">gh-120104</a>: Fix padding in config and search dialog windows in IDLE.</p></li>
</ul>
</section>
<section id="id110">
<h3>Documentation<a class="headerlink" href="#id110" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124872">gh-124872</a>: Added definitions for <a class="reference internal" href="../glossary.html#term-context"><span class="xref std std-term">context</span></a>, <a class="reference internal" href="../glossary.html#term-current-context"><span class="xref std std-term">current context</span></a>,
and <a class="reference internal" href="../glossary.html#term-context-management-protocol"><span class="xref std std-term">context management protocol</span></a>, updated related definitions to be
consistent, and expanded the documentation for
<a class="reference internal" href="../library/contextvars.html#contextvars.Context" title="contextvars.Context"><code class="xref py py-class docutils literal notranslate"><span class="pre">contextvars.Context</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125018">gh-125018</a>: The <a class="reference internal" href="../library/importlib.metadata.html#module-importlib.metadata" title="importlib.metadata: Accessing package metadata"><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib.metadata</span></code></a> documentation now includes
semantic cross-reference targets for the significant documented APIs. This
means intersphinx references like <a class="reference internal" href="../library/importlib.metadata.html#importlib.metadata.version" title="importlib.metadata.version"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.metadata.version()</span></code></a> will
now work as expected.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124720">gh-124720</a>: Update “Using Python on a Mac” section of the “Python Setup and
Usage” document and include information on installing free-threading
support.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124457">gh-124457</a>: Remove coverity scan from the CPython repo. It has not been
used since 2020 and is currently unmaintained.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116622">gh-116622</a>: Add an Android platform guide, and flag modules not available
on Android.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123976">gh-123976</a>: Refresh docs around custom providers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/70870">gh-70870</a>: Clarified the dual usage of the term “free variable” (both the
formal meaning of any reference to names defined outside the local scope,
and the narrower pragmatic meaning of nonlocal variables named in
<code class="docutils literal notranslate"><span class="pre">co_freevars</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121277">gh-121277</a>: Writers of CPython’s documentation can now use <code class="docutils literal notranslate"><span class="pre">next</span></code> as the
version for the <code class="docutils literal notranslate"><span class="pre">versionchanged</span></code>, <code class="docutils literal notranslate"><span class="pre">versionadded</span></code>, <code class="docutils literal notranslate"><span class="pre">deprecated</span></code>
directives.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117765">gh-117765</a>: Improved documentation for <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.patch.dict" title="unittest.mock.patch.dict"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.patch.dict()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121749">gh-121749</a>: Fix documentation for <a class="reference internal" href="../c-api/module.html#c.PyModule_AddObjectRef" title="PyModule_AddObjectRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_AddObjectRef()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120012">gh-120012</a>: Clarify the behaviours of <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Queue.empty" title="multiprocessing.Queue.empty"><code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.Queue.empty()</span></code></a>
and <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.SimpleQueue.empty" title="multiprocessing.SimpleQueue.empty"><code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.SimpleQueue.empty()</span></code></a> on closed queues. Patch by
Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119574">gh-119574</a>: Added some missing environment variables to the output of
<a class="reference internal" href="../using/cmdline.html#cmdoption-help-env"><code class="xref std std-option docutils literal notranslate"><span class="pre">--help-env</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34008">bpo-34008</a>: The <a class="reference internal" href="../c-api/init.html#c.Py_Main" title="Py_Main"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Main()</span></code></a> documentation moved from the “Very High
Level API” section to the “Initialization and Finalization” section.</p>
<p>Also make it explicit that we expect <code class="docutils literal notranslate"><span class="pre">Py_Main</span></code> to typically be called
instead of <code class="docutils literal notranslate"><span class="pre">Py_Initialize</span></code> rather than after it (since <code class="docutils literal notranslate"><span class="pre">Py_Main</span></code> makes
its own call to <code class="docutils literal notranslate"><span class="pre">Py_Initialize</span></code>). Document that calling both is
supported but is version dependent on which settings will be applied
correctly.</p>
</li>
</ul>
</section>
<section id="id111">
<h3>Core and Builtins<a class="headerlink" href="#id111" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124375">gh-124375</a>: Fix a crash in the free threading build when the GC runs
concurrently with a new thread starting.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125221">gh-125221</a>: Fix possible race condition when calling
<a class="reference internal" href="../library/pickle.html#object.__reduce_ex__" title="object.__reduce_ex__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__reduce_ex__()</span></code></a> for the first time in the free threading
build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125174">gh-125174</a>: Make the handling of reference counts of immortal objects more
robust. Immortal objects with reference counts that deviate from their
original reference count by up to a billion (half a billion on 32 bit
builds) are still counted as immortal.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125039">gh-125039</a>: Make <code class="docutils literal notranslate"><span class="pre">this_instr</span></code> and <code class="docutils literal notranslate"><span class="pre">prev_instr</span></code> const in cases
generator.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125008">gh-125008</a>: Fix <a class="reference internal" href="../library/tokenize.html#tokenize.untokenize" title="tokenize.untokenize"><code class="xref py py-func docutils literal notranslate"><span class="pre">tokenize.untokenize()</span></code></a> producing invalid syntax for
double braces preceded by certain escape characters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124871">gh-124871</a>: Fix compiler bug (in some versions of 3.13) where an assertion
fails during reachability analysis.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123378">gh-123378</a>: Fix a crash in the <a class="reference internal" href="../reference/datamodel.html#object.__str__" title="object.__str__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__str__()</span></code></a> method of
<a class="reference internal" href="../library/exceptions.html#UnicodeError" title="UnicodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeError</span></code></a> objects when the <a class="reference internal" href="../library/exceptions.html#UnicodeError.start" title="UnicodeError.start"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeError.start</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#UnicodeError.end" title="UnicodeError.end"><code class="xref py py-attr docutils literal notranslate"><span class="pre">UnicodeError.end</span></code></a> values are invalid or out-of-range. Patch by
Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118093">gh-118093</a>: Improve the experimental JIT compiler’s ability to stay “on
trace” when encountering highly-biased branches.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124642">gh-124642</a>: Fixed scalability issue in free-threaded builds for lock-free
reads from dictionaries in multi-threaded scenarios</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116510">gh-116510</a>: Fix a crash caused by immortal interned strings being shared
between sub-interpreters that use basic single-phase init. In that case,
the string can be used by an interpreter that outlives the interpreter
that created and interned it. For interpreters that share obmalloc state,
also share the interned dict with the main interpreter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116510">gh-116510</a>: Fix a bug that can cause a crash when sub-interpreters use
“basic” single-phase extension modules. Shared objects could refer to
PyGC_Head nodes that had been freed as part of interpreter cleanup.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119180">gh-119180</a>: The <code class="docutils literal notranslate"><span class="pre">__main__</span></code> module no longer always contains an
<code class="docutils literal notranslate"><span class="pre">__annotations__</span></code> dictionary in its global namespace.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124547">gh-124547</a>: When deallocating an object with inline values whose
<code class="docutils literal notranslate"><span class="pre">__dict__</span></code> is still live: if memory allocation for the inline values
fails, clear the dictionary. Prevents an interpreter crash.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124513">gh-124513</a>: Fix a crash in FrameLocalsProxy constructor: check the number
of arguments. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124442">gh-124442</a>: Fix nondeterminism in compilation by sorting the value of
<a class="reference internal" href="../reference/datamodel.html#type.__static_attributes__" title="type.__static_attributes__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__static_attributes__</span></code></a>. Patch by kp2pml30.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124285">gh-124285</a>: Fix bug where <code class="docutils literal notranslate"><span class="pre">bool(a)</span></code> can be invoked more than once during
the evaluation of a compound boolean expression.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123856">gh-123856</a>: Fix PyREPL failure when a keyboard interrupt is triggered after
using a history search</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65961">gh-65961</a>: Deprecate the setting and using <code class="docutils literal notranslate"><span class="pre">__package__</span></code> and
<code class="docutils literal notranslate"><span class="pre">__cached__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119726">gh-119726</a>: The JIT now generates more efficient code for calls to C
functions resulting in up to 0.8% memory savings and 1.5% speed
improvement on AArch64. Patch by Diego Russo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122878">gh-122878</a>: Use the <code class="docutils literal notranslate"><span class="pre">pager</span></code> binary, if available (e.g. on Debian and
derivatives), to display REPL <code class="docutils literal notranslate"><span class="pre">help()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124188">gh-124188</a>: Fix reading and decoding a line from the source file with
non-UTF-8 encoding for syntax errors raised in the compiler.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124027">gh-124027</a>: Support <code class="docutils literal notranslate"><span class="pre"><page</span> <span class="pre">up></span></code>, <code class="docutils literal notranslate"><span class="pre"><page</span> <span class="pre">down></span></code>, and <code class="docutils literal notranslate"><span class="pre"><delete></span></code> keys
in the Python REPL when <code class="docutils literal notranslate"><span class="pre">$TERM</span></code> is set to <code class="docutils literal notranslate"><span class="pre">vt100</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124022">gh-124022</a>: Fix bug where docstring is removed from classes in interactive
mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123958">gh-123958</a>: docstrings are now removed from the optimized AST in
optimization level 2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123923">gh-123923</a>: The <code class="docutils literal notranslate"><span class="pre">f_executable</span></code> field in the internal
<a class="reference internal" href="../c-api/frame.html#c._PyInterpreterFrame" title="_PyInterpreterFrame"><code class="xref c c-struct docutils literal notranslate"><span class="pre">_PyInterpreterFrame</span></code></a> struct now uses a tagged pointer.
Profilers and debuggers that uses this field should clear the least
significant bit to recover the <span class="c-expr sig sig-inline c"><a class="reference internal" href="../c-api/structures.html#c.PyObject" title="PyObject"><span class="n">PyObject</span></a><span class="p">*</span></span> pointer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77894">gh-77894</a>: Fix possible crash in the garbage collector when it tries to
break a reference loop containing a <a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a> object. Now a
<code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code> object can only be cleared if there are no buffers
that refer it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120221">gh-120221</a>: asyncio REPL is now again properly recognizing
KeyboardInterrupts. Display of exceptions raised in secondary threads is
fixed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119310">gh-119310</a>: Allow the new interactive shell to read history files written
with the editline library that use unicode-escaped entries. Patch by
aorcajo and Łukasz Langa.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123572">gh-123572</a>: Fix key mappings for various F-keys in Windows for the new
REPL. Patch by devdanzin</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123614">gh-123614</a>: Add <a class="reference internal" href="../library/turtle.html#turtle.save" title="turtle.save"><code class="xref py py-func docutils literal notranslate"><span class="pre">turtle.save()</span></code></a> to easily save Turtle drawings as
PostScript files. Patch by Marie Roald and Yngve Mardal Moe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123339">gh-123339</a>: Setting the <code class="xref py py-attr docutils literal notranslate"><span class="pre">__module__</span></code> attribute for a class now
removes the <code class="docutils literal notranslate"><span class="pre">__firstlineno__</span></code> item from the type’s dict, so they will no
longer be inconsistent.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119034">gh-119034</a>: Change <code class="docutils literal notranslate"><span class="pre"><page</span> <span class="pre">up></span></code> and <code class="docutils literal notranslate"><span class="pre"><page</span> <span class="pre">down></span></code> keys of the Python
REPL to history search forward/backward. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123562">gh-123562</a>: Improve <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> message for using <code class="docutils literal notranslate"><span class="pre">case</span> <span class="pre">...</span> <span class="pre">as</span>
<span class="pre">...</span></code> with not a name.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123545">gh-123545</a>: Fix a double decref in rare cases on experimental JIT builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123484">gh-123484</a>: Fix <code class="docutils literal notranslate"><span class="pre">_Py_DebugOffsets</span></code> for long objects to be relative to the
start of the object rather than the start of a subobject.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123446">gh-123446</a>: Fix empty function name in <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when builtin magic
methods are used without the required args.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123440">gh-123440</a>: Improve <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> message for using <code class="docutils literal notranslate"><span class="pre">except</span> <span class="pre">as</span></code> with
not a name.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116017">gh-116017</a>: Improved JIT memory consumption by periodically freeing memory
used by infrequently-executed code. This change is especially likely to
improve the memory footprint of long-running programs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123344">gh-123344</a>: Add AST optimizations for type parameter defaults.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123321">gh-123321</a>: Prevent Parser/myreadline race condition from segfaulting on
multi-threaded use. Patch by Bar Harel and Amit Wienner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123177">gh-123177</a>: Fix a bug causing stray prompts to appear in the middle of
wrapped lines in the new REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122982">gh-122982</a>: Extend the deprecation period for bool inversion (<code class="docutils literal notranslate"><span class="pre">~</span></code>) by two
years.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123271">gh-123271</a>: Make concurrent iterations over the same <a class="reference internal" href="../library/functions.html#zip" title="zip"><code class="xref py py-func docutils literal notranslate"><span class="pre">zip()</span></code></a> iterator
safe under free-threading.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123275">gh-123275</a>: Support <a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">gil=1</span></code></a> and <span class="target" id="index-51"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHON_GIL"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_GIL=1</span></code></a> on non-free-threaded builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123177">gh-123177</a>: Deactivate line wrap in the Apple Terminal via a ANSI escape
code. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123229">gh-123229</a>: Fix valgrind warning by initializing the f-string buffers to 0
in the tokenizer. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122298">gh-122298</a>: Restore printout of GC stats when
<code class="docutils literal notranslate"><span class="pre">gc.set_debug(gc.DEBUG_STATS)</span></code> is called. This feature was accidentally
removed when implementing incremental GC.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121804">gh-121804</a>: Correctly show error locations when a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> is
raised in the basic REPL. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115776">gh-115776</a>: Enables inline values (Python’s equivalent of hidden classes)
on any class who’s instances are of a fixed size.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123142">gh-123142</a>: Fix too-wide source location in exception tracebacks coming
from broken iterables in comprehensions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123048">gh-123048</a>: Fix a bug where pattern matching code could emit a
<a class="reference internal" href="../library/dis.html#opcode-JUMP_FORWARD"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_FORWARD</span></code></a> with no source location.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118093">gh-118093</a>: Break up <code class="docutils literal notranslate"><span class="pre">CALL_ALLOC_AND_ENTER_INIT</span></code> into micro-ops and relax
requirement for exact args, in order to increase the amount of code
supported by tier 2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123123">gh-123123</a>: Fix displaying <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> exceptions covering multiple
lines. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123083">gh-123083</a>: Fix a potential use-after-free in <code class="docutils literal notranslate"><span class="pre">STORE_ATTR_WITH_HINT</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123022">gh-123022</a>: Fix crash in free-threaded build when calling
<a class="reference internal" href="../c-api/init.html#c.Py_Initialize" title="Py_Initialize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Initialize()</span></code></a> from a non-main thread.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118093">gh-118093</a>: Add three specializations for <a class="reference internal" href="../library/dis.html#opcode-CALL_KW"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL_KW</span></code></a>:</p>
<ul class="simple">
<li><p><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL_KW_PY</span></code> for calls to Python functions</p></li>
<li><p><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL_KW_BOUND_METHOD</span></code> for calls to bound methods</p></li>
<li><p><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL_KW_NON_PY</span></code> for all other calls</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122821">gh-122821</a>: Make sure that branches in <a class="reference internal" href="../reference/compound_stmts.html#while"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">while</span></code></a> statements have
consistent offsets for <a class="reference internal" href="../library/sys.monitoring.html#module-sys.monitoring" title="sys.monitoring: Access and control event monitoring"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sys.monitoring</span></code></a>. <code class="xref std std-keyword docutils literal notranslate"><span class="pre">while</span></code> statements
are now compiled with a simple jump at the end of the body, instead of
duplicating the test.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122907">gh-122907</a>: Building with <code class="docutils literal notranslate"><span class="pre">HAVE_DYNAMIC_LOADING</span></code> now works as well as it
did in 3.12. Existing deficiences will be addressed separately. (See
<a class="reference external" href="https://github.com/python/cpython/issues/122950">https://github.com/python/cpython/issues/122950</a>.)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122888">gh-122888</a>: Fix crash on certain calls to <code class="docutils literal notranslate"><span class="pre">str()</span></code> with positional
arguments of the wrong type. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118093">gh-118093</a>: Improve the experimental JIT’s handling of polymorphic code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122697">gh-122697</a>: Fixed memory leaks at interpreter shutdown in the free-threaded
build, and also reporting of leaked memory blocks via <a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span>
<span class="pre">showrefcount</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116622">gh-116622</a>: Fix Android stdout and stderr messages being truncated or lost.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122527">gh-122527</a>: Fix a crash that occurred when a <code class="docutils literal notranslate"><span class="pre">PyStructSequence</span></code> was
deallocated after its type’s dictionary was cleared by the GC. The type’s
<a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_basicsize" title="PyTypeObject.tp_basicsize"><code class="xref c c-member docutils literal notranslate"><span class="pre">tp_basicsize</span></code></a> now accounts for non-sequence
fields that aren’t included in the <a class="reference internal" href="../c-api/structures.html#c.Py_SIZE" title="Py_SIZE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_SIZE</span></code></a> of the sequence.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122445">gh-122445</a>: Add only fields which are modified via self.* to
<a class="reference internal" href="../reference/datamodel.html#type.__static_attributes__" title="type.__static_attributes__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__static_attributes__</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122417">gh-122417</a>: In the free-threaded build, the reference counts for heap type
objects are now partially stored in a distributed manner in per-thread
arrays. This reduces contention on the heap type’s reference count fields
when creating or destroying instances of the same type from multiple
threads concurrently.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116090">gh-116090</a>: Fix an issue in JIT builds that prevented some <a class="reference internal" href="../reference/compound_stmts.html#for"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">for</span></code></a>
loops from correctly firing <a class="reference internal" href="../library/sys.monitoring.html#monitoring-event-RAISE"><code class="xref std std-monitoring-event docutils literal notranslate"><span class="pre">RAISE</span></code></a> monitoring events.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122300">gh-122300</a>: Preserve AST nodes for f-string with single-element format
specifiers. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120906">gh-120906</a>: <a class="reference internal" href="../reference/datamodel.html#frame.f_locals" title="frame.f_locals"><code class="xref py py-attr docutils literal notranslate"><span class="pre">frame.f_locals</span></code></a> now supports arbitrary hashable objects
as keys.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122239">gh-122239</a>: When a <a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>, <a class="reference internal" href="../library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> or <a class="reference internal" href="../library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> with too
many elements is unpacked, show the actual length in the error message.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122245">gh-122245</a>: Detection of writes to <code class="docutils literal notranslate"><span class="pre">__debug__</span></code> is moved from the
compiler’s codegen stage to the symtable. This means that these errors are
now detected even in code that is optimized away before codegen (such as
assertions with the <a class="reference internal" href="../using/cmdline.html#cmdoption-O"><code class="xref std std-option docutils literal notranslate"><span class="pre">-O</span></code></a> command line option).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122234">gh-122234</a>: Specializations for sums with float and complex inputs in
<a class="reference internal" href="../library/functions.html#sum" title="sum"><code class="xref py py-func docutils literal notranslate"><span class="pre">sum()</span></code></a> now always use compensated summation. Also, for integer items
in above specializations: <a class="reference internal" href="../c-api/long.html#c.PyLong_AsDouble" title="PyLong_AsDouble"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsDouble()</span></code></a> is used, instead of
<a class="reference internal" href="../c-api/long.html#c.PyLong_AsLongAndOverflow" title="PyLong_AsLongAndOverflow"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsLongAndOverflow()</span></code></a>. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122208">gh-122208</a>: Dictionary watchers now only deliver the PyDict_EVENT_ADDED
event when the insertion is in a known good state to succeed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122160">gh-122160</a>: Remove the <code class="docutils literal notranslate"><span class="pre">BUILD_CONST_KEY_MAP</span></code> opcode. Use
<a class="reference internal" href="../library/dis.html#opcode-BUILD_MAP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">BUILD_MAP</span></code></a> instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122029">gh-122029</a>: Emit <code class="docutils literal notranslate"><span class="pre">c_call</span></code> events in <a class="reference internal" href="../library/sys.html#sys.setprofile" title="sys.setprofile"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.setprofile()</span></code></a> when a
<code class="docutils literal notranslate"><span class="pre">PyMethodObject</span></code> pointing to a <code class="docutils literal notranslate"><span class="pre">PyCFunction</span></code> is called.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122026">gh-122026</a>: Fix a bug that caused the tokenizer to not correctly identify
mismatched parentheses inside f-strings in some situations. Patch by Pablo
Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99108">gh-99108</a>: Python’s hashlib now unconditionally uses the vendored HACL*
library for Blake2. Python no longer accepts libb2 as an optional
dependency for Blake2.</p>
<p>We refreshed HACL* to the latest version, and now vendor HACL*’s 128-bit
and 256-bit wide vector implementations for Blake2, which are used on
x86/x64 toolchains when the required CPU features are available at
runtime.</p>
<p>HACL*’s 128-bit wide vector implementation of Blake2 can also run on ARM
NEON and Power8, but lacking evidence of a performance gain, these are not
enabled (yet).</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121999">gh-121999</a>: The default extraction filter for the <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> module is
now set to <a class="reference internal" href="../library/tarfile.html#tarfile.data_filter" title="tarfile.data_filter"><code class="xref py py-func docutils literal notranslate"><span class="pre">'data'</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121860">gh-121860</a>: Fix crash when rematerializing a managed dictionary after it
was deleted.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121795">gh-121795</a>: Improve performance of set membership testing, <code class="docutils literal notranslate"><span class="pre">set.remove()</span></code>
and <code class="docutils literal notranslate"><span class="pre">set.discard()</span></code> when the argument is a set.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121814">gh-121814</a>: Fixed the SegFault when <a class="reference internal" href="../c-api/init.html#c.PyEval_SetTrace" title="PyEval_SetTrace"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_SetTrace()</span></code></a> is used with
no Python frame on stack.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121295">gh-121295</a>: Fix PyREPL console getting into a blocked state after
interrupting a long paste</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121794">gh-121794</a>: Fix bug in free-threaded Python where a resurrected object
could lead to a negative ref count assertion failure.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121657">gh-121657</a>: Improve the <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> message if the user tries to use
<a class="reference internal" href="../reference/simple_stmts.html#yield"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">yield</span> <span class="pre">from</span></code></a> outside a function.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121609">gh-121609</a>: Fix pasting of characters containing unicode character joiners
in the new REPL. Patch by Marta Gomez Macias</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121297">gh-121297</a>: Previously, incorrect usage of <a class="reference internal" href="../reference/expressions.html#await"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">await</span></code></a> or asynchronous
comprehensions in code removed by the <a class="reference internal" href="../using/cmdline.html#cmdoption-O"><code class="xref std std-option docutils literal notranslate"><span class="pre">-O</span></code></a> option was not flagged
by the Python compiler. Now, such code raises <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>. Patch by
Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117482">gh-117482</a>: Unexpected slot wrappers are no longer created for builtin
static types in subinterpreters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121562">gh-121562</a>: Optimized performance of hex_from_char by replacing switch-case
with a lookup table</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121499">gh-121499</a>: Fix a bug affecting how multi-line history was being rendered
in the new REPL after interacting with the new screen cache. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121497">gh-121497</a>: Fix a bug that was preventing the REPL to correctly respect the
history when an input hook was set. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121012">gh-121012</a>: Tier 2 execution now ensures that list iterators remain
exhausted, once they become exhausted.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121439">gh-121439</a>: Allow tuples of length 20 in the freelist to be reused.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121288">gh-121288</a>: <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> messages for <a class="reference internal" href="../library/stdtypes.html#list.index" title="list.index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">list.index()</span></code></a>,
<a class="reference internal" href="../library/stdtypes.html#range.index" title="range.index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">range.index()</span></code></a>, <code class="xref py py-meth docutils literal notranslate"><span class="pre">deque.index()</span></code>, <code class="xref py py-meth docutils literal notranslate"><span class="pre">deque.remove()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">ShareableList.index()</span></code> no longer contain the repr of the searched
value (which can be arbitrary large) and are consistent with error
messages for other <a class="reference internal" href="../library/stdtypes.html#sequence.index" title="sequence.index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">index()</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#sequence.remove" title="sequence.remove"><code class="xref py py-meth docutils literal notranslate"><span class="pre">remove()</span></code></a>
methods.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121368">gh-121368</a>: Fix race condition in <code class="docutils literal notranslate"><span class="pre">_PyType_Lookup</span></code> in the free-threaded
build due to a missing memory fence. This could lead to
<code class="docutils literal notranslate"><span class="pre">_PyType_Lookup</span></code> returning incorrect results on arm64.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121149">gh-121149</a>: Added specialization for summation of complexes, this also
improves accuracy of builtin <a class="reference internal" href="../library/functions.html#sum" title="sum"><code class="xref py py-func docutils literal notranslate"><span class="pre">sum()</span></code></a> for such inputs. Patch by Sergey
B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121130">gh-121130</a>: Fix f-strings with debug expressions in format specifiers.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121381">gh-121381</a>: Remove <code class="docutils literal notranslate"><span class="pre">subprocess._USE_VFORK</span></code> escape hatch code and
documentation. It was added just in case, and doesn’t have any known cases
that require it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119726">gh-119726</a>: Optimize code layout for calls to C functions from the JIT on
AArch64. Patch by Diego Russo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121115">gh-121115</a>: <a class="reference internal" href="../c-api/long.html#c.PyLong_AsNativeBytes" title="PyLong_AsNativeBytes"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsNativeBytes()</span></code></a> no longer uses
<a class="reference internal" href="../reference/datamodel.html#object.__index__" title="object.__index__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__index__()</span></code></a> methods by default. The
<code class="docutils literal notranslate"><span class="pre">Py_ASNATIVEBYTES_ALLOW_INDEX</span></code> flag has been added to allow it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120838">gh-120838</a>: <a class="reference internal" href="../c-api/init.html#c.Py_Finalize" title="Py_Finalize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Finalize()</span></code></a> and <a class="reference internal" href="../c-api/init.html#c.Py_FinalizeEx" title="Py_FinalizeEx"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FinalizeEx()</span></code></a> now
always run with the main interpreter active.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113433">gh-113433</a>: Subinterpreters now get cleaned up automatically during runtime
finalization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119726">gh-119726</a>: Improve the speed and memory use of C function calls from JIT
code on AArch64. Patch by Diego Russo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116017">gh-116017</a>: Simplify the warmup mechanism used for “side exits” in JIT
code, resulting in slightly better performance and slightly lower memory
usage for most platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98442">gh-98442</a>: Fix too wide source locations of the cleanup instructions of a
with statement.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120754">gh-120754</a>: Reduce the number of system calls invoked when reading a whole
file (ex. <code class="docutils literal notranslate"><span class="pre">open('a.txt').read()</span></code>). For a sample program that reads the
contents of the 400+ <code class="docutils literal notranslate"><span class="pre">.rst</span></code> files in the cpython repository <code class="docutils literal notranslate"><span class="pre">Doc</span></code>
folder, there is an over 10% reduction in system call count.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119462">gh-119462</a>: Make sure that invariants of type versioning are maintained: *
Superclasses always have their version number assigned before subclasses *
The version tag is always zero if the tag is not valid. * The version tag
is always non-if the tag is valid.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120437">gh-120437</a>: Fix <code class="docutils literal notranslate"><span class="pre">_CHECK_STACK_SPACE</span></code> optimization problems introduced in
<a class="reference external" href="https://github.com/python/cpython/issues/118322">gh-118322</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120722">gh-120722</a>: Correctly set the bytecode position on return instructions
within lambdas. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120367">gh-120367</a>: Fix bug where compiler creates a redundant jump during
pseudo-op replacement. Can only happen with a synthetic AST that has a try
on the same line as the instruction following the exception handler.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120507">gh-120507</a>: Remove the <code class="docutils literal notranslate"><span class="pre">BEFORE_WITH</span></code> and <code class="docutils literal notranslate"><span class="pre">BEFORE_ASYNC_WITH</span></code>
instructions. Add the new <a class="reference internal" href="../library/dis.html#opcode-LOAD_SPECIAL"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_SPECIAL</span></code></a> instruction. Generate
code for <code class="docutils literal notranslate"><span class="pre">with</span></code> and <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">with</span></code> statements using the new instruction.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113993">gh-113993</a>: Strings interned with <a class="reference internal" href="../library/sys.html#sys.intern" title="sys.intern"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.intern()</span></code></a> are again
garbage-collected when no longer used, as per the documentation. Strings
interned with the C function <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_InternInPlace" title="PyUnicode_InternInPlace"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_InternInPlace()</span></code></a> are still
immortal. Internals of the string interning mechanism have been changed.
This may affect performance and identities of <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120485">gh-120485</a>: Add an override of <code class="docutils literal notranslate"><span class="pre">allow_reuse_port</span></code> on classes subclassing
<code class="docutils literal notranslate"><span class="pre">socketserver.TCPServer</span></code> where <code class="docutils literal notranslate"><span class="pre">allow_reuse_address</span></code> is also
overridden.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120384">gh-120384</a>: Fix an array out of bounds crash in <code class="docutils literal notranslate"><span class="pre">list_ass_subscript</span></code>,
which could be invoked via some specifically tailored input: including
concurrent modification of a list object, where one thread assigns a slice
and another clears it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120367">gh-120367</a>: Fix crash in compiler on code with redundant NOPs and JUMPs
which show up after exception handlers are moved to the end of the code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120380">gh-120380</a>: Fix Python implementation of <a class="reference internal" href="../library/pickle.html#pickle.Pickler" title="pickle.Pickler"><code class="xref py py-class docutils literal notranslate"><span class="pre">pickle.Pickler</span></code></a> for
<a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> objects when using protocol version
5. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120397">gh-120397</a>: Improve the throughput by up to two times for the
<a class="reference internal" href="../library/stdtypes.html#str.count" title="str.count"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.count()</span></code></a>, <a class="reference internal" href="../library/stdtypes.html#bytes.count" title="bytes.count"><code class="xref py py-meth docutils literal notranslate"><span class="pre">bytes.count()</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytearray.count" title="bytearray.count"><code class="xref py py-meth docutils literal notranslate"><span class="pre">bytearray.count()</span></code></a> methods
for counting single characters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120221">gh-120221</a>: Deliver real signals on Ctrl-C and Ctrl-Z in the new REPL.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120346">gh-120346</a>: Respect <span class="target" id="index-52"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHON_BASIC_REPL"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_BASIC_REPL</span></code></a> when running in interactive
inspect mode (<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-i</span></code>). Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93691">gh-93691</a>: Fix source locations of instructions generated for the iterator
of a for statement.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120198">gh-120198</a>: Fix a crash when multiple threads read and write to the same
<code class="docutils literal notranslate"><span class="pre">__class__</span></code> of an object concurrently.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120298">gh-120298</a>: Fix use-after free in <code class="docutils literal notranslate"><span class="pre">list_richcompare_impl</span></code> which can be
invoked via some specifically tailored evil input.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119666">gh-119666</a>: Fix a compiler crash in the case where two comprehensions in
class scope both reference <code class="docutils literal notranslate"><span class="pre">__class__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119726">gh-119726</a>: JIT: Re-use trampolines on AArch64 when creating stencils.
Patch by Diego Russo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120225">gh-120225</a>: Fix crash in compiler on empty block at end of exception
handler.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93691">gh-93691</a>: Fix source locations of instructions generated for with
statements.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120097">gh-120097</a>: <code class="docutils literal notranslate"><span class="pre">FrameLocalsProxy</span></code> now subclasses <code class="docutils literal notranslate"><span class="pre">collections.abc.Mapping</span></code>
and can be matched as a mapping in <code class="docutils literal notranslate"><span class="pre">match</span></code> statements</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120080">gh-120080</a>: Direct call to the <code class="xref py py-meth docutils literal notranslate"><span class="pre">int.__round__()</span></code> now accepts <code class="docutils literal notranslate"><span class="pre">None</span></code>
as a valid argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119933">gh-119933</a>: Improve <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> messages for invalid expressions in
a type parameters bound, a type parameter constraint tuple or a default
type parameter. Patch by Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119724">gh-119724</a>: Reverted improvements to error messages for <code class="docutils literal notranslate"><span class="pre">elif</span></code>/<code class="docutils literal notranslate"><span class="pre">else</span></code>
statements not matching any valid statements, which made in hard to locate
the syntax errors inside those <code class="docutils literal notranslate"><span class="pre">elif</span></code>/<code class="docutils literal notranslate"><span class="pre">else</span></code> blocks.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119879">gh-119879</a>: String search is now slightly faster for certain cases. It now
utilizes last character gap (good suffix rule) for two-way periodic
needles.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119842">gh-119842</a>: Honor <a class="reference internal" href="../c-api/veryhigh.html#c.PyOS_InputHook" title="PyOS_InputHook"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyOS_InputHook()</span></code></a> in the new REPL. Patch by Pablo
Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119180">gh-119180</a>: <a class="reference internal" href="../library/functions.html#classmethod" title="classmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">classmethod()</span></code></a> and <a class="reference internal" href="../library/functions.html#staticmethod" title="staticmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">staticmethod()</span></code></a> now wrap the
<a class="reference internal" href="../reference/datamodel.html#object.__annotations__" title="object.__annotations__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__annotations__</span></code></a> and <a class="reference internal" href="../reference/datamodel.html#object.__annotate__" title="object.__annotate__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__annotate__</span></code></a>
attributes of their underlying callable lazily. See <span class="target" id="index-53"></span><a class="pep reference external" href="https://peps.python.org/pep-0649/"><strong>PEP 649</strong></a>. Patch by
Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119821">gh-119821</a>: Fix execution of <a class="reference internal" href="../reference/executionmodel.html#annotation-scopes"><span class="std std-ref">annotation scopes</span></a>
within classes when <code class="docutils literal notranslate"><span class="pre">globals</span></code> is set to a non-dict. Patch by Jelle
Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118934">gh-118934</a>: Make <code class="docutils literal notranslate"><span class="pre">PyEval_GetLocals</span></code> return borrowed reference</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119740">gh-119740</a>: Remove the previously-deprecated delegation of <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-func docutils literal notranslate"><span class="pre">int()</span></code></a> to
<a class="reference internal" href="../reference/datamodel.html#object.__trunc__" title="object.__trunc__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__trunc__()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119689">gh-119689</a>: Generate stack effect metadata for pseudo instructions from
bytecodes.c.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109218">gh-109218</a>: <a class="reference internal" href="../library/functions.html#complex" title="complex"><code class="xref py py-func docutils literal notranslate"><span class="pre">complex()</span></code></a> accepts now a string only as a positional
argument. Passing a complex number as the “real” or “imag” argument is
deprecated; it should only be passed as a single positional argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119548">gh-119548</a>: Add a <code class="docutils literal notranslate"><span class="pre">clear</span></code> command to the REPL. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111999">gh-111999</a>: Fix the signature of <a class="reference internal" href="../library/stdtypes.html#str.format_map" title="str.format_map"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.format_map()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119560">gh-119560</a>: An invalid assert in beta 1 has been removed. The assert would
fail if <code class="docutils literal notranslate"><span class="pre">PyState_FindModule()</span></code> was used in an extension module’s init
function before the module def had been initialized.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119369">gh-119369</a>: Fix deadlock during thread deletion in free-threaded build,
which could occur when the GIL was enabled at runtime.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119525">gh-119525</a>: Fix deadlock involving <code class="docutils literal notranslate"><span class="pre">_PyType_Lookup()</span></code> cache in the
free-threaded build when the GIL is dynamically enabled at runtime.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119258">gh-119258</a>: Eliminate type version guards in the tier two interpreter.</p>
<p>Note that setting the <code class="docutils literal notranslate"><span class="pre">tp_version_tag</span></code> manually (which has never been
supported) may result in crashes.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119311">gh-119311</a>: Fix bug where names are unexpectedly mangled in the bases of
generic classes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119395">gh-119395</a>: Fix bug where names appearing after a generic class are mangled
as if they are in the generic class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119372">gh-119372</a>: Correct invalid corner cases in complex division (resulted in
<code class="docutils literal notranslate"><span class="pre">(nan+nanj)</span></code> output), e.g. <code class="docutils literal notranslate"><span class="pre">1/complex('(inf+infj)')</span></code>. Patch by
Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119180">gh-119180</a>: Evaluation of annotations is now deferred. See <span class="target" id="index-54"></span><a class="pep reference external" href="https://peps.python.org/pep-0649/"><strong>PEP 649</strong></a> for
details.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119180">gh-119180</a>: Replace <code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_ASSERTION_ERROR</span></code> opcode with
<a class="reference internal" href="../library/dis.html#opcode-LOAD_COMMON_CONSTANT"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_COMMON_CONSTANT</span></code></a> and add support for
<a class="reference internal" href="../library/exceptions.html#NotImplementedError" title="NotImplementedError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotImplementedError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119213">gh-119213</a>: Non-builtin modules built with argument clinic were crashing if
used in a subinterpreter before the main interpreter. The objects that
were causing the problem by leaking between interpreters carelessly have
been fixed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119011">gh-119011</a>: Fixes <code class="docutils literal notranslate"><span class="pre">type.__type_params__</span></code> to return an empty tuple instead
of a descriptor.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118692">gh-118692</a>: Avoid creating unnecessary <a class="reference internal" href="../library/exceptions.html#StopIteration" title="StopIteration"><code class="xref py py-exc docutils literal notranslate"><span class="pre">StopIteration</span></code></a> instances for
monitoring.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119180">gh-119180</a>: Add an <code class="docutils literal notranslate"><span class="pre">__annotate__</span></code> attribute to functions, classes, and
modules as part of <span class="target" id="index-55"></span><a class="pep reference external" href="https://peps.python.org/pep-0649/"><strong>PEP 649</strong></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119049">gh-119049</a>: Fix displaying the source line for warnings created by the C
API if the <a class="reference internal" href="../library/warnings.html#module-warnings" title="warnings: Issue warning messages and control their disposition."><code class="xref py py-mod docutils literal notranslate"><span class="pre">warnings</span></code></a> module had not yet been imported.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119057">gh-119057</a>: Improve <a class="reference internal" href="../library/exceptions.html#ZeroDivisionError" title="ZeroDivisionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ZeroDivisionError</span></code></a> error message. Now, all error
messages are harmonized: all <code class="docutils literal notranslate"><span class="pre">/</span></code>, <code class="docutils literal notranslate"><span class="pre">//</span></code>, and <code class="docutils literal notranslate"><span class="pre">%</span></code> operations just use
“division by zero” message. And <code class="docutils literal notranslate"><span class="pre">0</span> <span class="pre">**</span> <span class="pre">-1</span></code> operation uses “zero to a
negative power”.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118844">gh-118844</a>: Fix build failures when configuring with both <code class="docutils literal notranslate"><span class="pre">--disable-gil</span></code>
and <code class="docutils literal notranslate"><span class="pre">--enable-experimental-jit</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118921">gh-118921</a>: Add <code class="docutils literal notranslate"><span class="pre">copy()</span></code> method for <code class="docutils literal notranslate"><span class="pre">FrameLocalsProxy</span></code> which returns a
snapshot <code class="docutils literal notranslate"><span class="pre">dict</span></code> for local variables.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117657">gh-117657</a>: Fix data races on the field that stores a pointer to the
interpreter’s main thread that occur in free-threaded builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118750">gh-118750</a>: If the C version of the <code class="docutils literal notranslate"><span class="pre">decimal</span></code> module is available,
<code class="docutils literal notranslate"><span class="pre">int(str)</span></code> now uses it to supply an asymptotically much faster
conversion. However, this only applies if the string contains over about 2
million digits.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118767">gh-118767</a>: Using <a class="reference internal" href="../library/constants.html#NotImplemented" title="NotImplemented"><code class="xref py py-data docutils literal notranslate"><span class="pre">NotImplemented</span></code></a> in a boolean context now raises
<a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>. Contributed by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118561">gh-118561</a>: Fix race condition in free-threaded build where
<a class="reference internal" href="../library/stdtypes.html#list.extend" title="list.extend"><code class="xref py py-meth docutils literal notranslate"><span class="pre">list.extend()</span></code></a> could expose uninitialised memory to concurrent
readers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117139">gh-117139</a>: Convert the Python evaluation stack to use internal stack
references. The purpose is to support tagged pointers. In <span class="target" id="index-56"></span><a class="pep reference external" href="https://peps.python.org/pep-0703/"><strong>PEP 703</strong></a>, this
will allow for its form of deferred reference counting. For both the
default and free-threaded builds, this sets up the infrastructure for
unboxed integers in the future.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115801">gh-115801</a>: Raise <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> when passing a string to
<a class="reference internal" href="../library/difflib.html#difflib.unified_diff" title="difflib.unified_diff"><code class="xref py py-func docutils literal notranslate"><span class="pre">difflib.unified_diff()</span></code></a> and <a class="reference internal" href="../library/difflib.html#difflib.context_diff" title="difflib.context_diff"><code class="xref py py-func docutils literal notranslate"><span class="pre">difflib.context_diff()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117558">gh-117558</a>: Improve error messages when a string, bytes or bytearray object
of length 1 is expected.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117195">gh-117195</a>: Avoid assertion failure for debug builds when calling
<code class="docutils literal notranslate"><span class="pre">object.__sizeof__(1)</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116022">gh-116022</a>: Improve the <a class="reference internal" href="../reference/datamodel.html#object.__repr__" title="object.__repr__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__repr__()</span></code></a> output of
<a class="reference internal" href="../library/ast.html#ast.AST" title="ast.AST"><code class="xref py py-class docutils literal notranslate"><span class="pre">AST</span></code></a> nodes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114091">gh-114091</a>: Changed the error message for awaiting something that can’t be
awaited from “object <type> can’t be used in an await expression” to
“’<type>’ object can’t be awaited”.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113190">gh-113190</a>: <a class="reference internal" href="../c-api/init.html#c.Py_Finalize" title="Py_Finalize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Finalize()</span></code></a> now deletes all interned strings.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84978">gh-84978</a>: Add class methods <a class="reference internal" href="../library/stdtypes.html#float.from_number" title="float.from_number"><code class="xref py py-meth docutils literal notranslate"><span class="pre">float.from_number()</span></code></a> and
<a class="reference internal" href="../library/stdtypes.html#complex.from_number" title="complex.from_number"><code class="xref py py-meth docutils literal notranslate"><span class="pre">complex.from_number()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95144">gh-95144</a>: Improve the error message from <code class="docutils literal notranslate"><span class="pre">a</span> <span class="pre">in</span> <span class="pre">b</span></code> when <code class="docutils literal notranslate"><span class="pre">b</span></code> is not a
container to mention the term “container”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24766">bpo-24766</a>: Fix handling of <code class="docutils literal notranslate"><span class="pre">doc</span></code> argument to subclasses of <code class="docutils literal notranslate"><span class="pre">property</span></code>.</p></li>
</ul>
</section>
<section id="id112">
<h3>C API<a class="headerlink" href="#id112" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123961">gh-123961</a>: Convert the <a class="reference internal" href="../library/curses.html#curses-window-objects"><span class="std std-ref">curses.window</span></a> static
type exposed by the <code class="xref c c-macro docutils literal notranslate"><span class="pre">PyCursesWindow_Type</span></code> macro in
<code class="docutils literal notranslate"><span class="pre">Include/py_curses.h</span></code> to a <a class="reference internal" href="../c-api/typeobj.html#heap-types"><span class="std std-ref">heap type</span></a>. Patch by
Bénédikt Tran.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124502">gh-124502</a>: Add <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_Equal" title="PyUnicode_Equal"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_Equal()</span></code></a> function to the limited C API:
test if two strings are equal. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124296">gh-124296</a>: <a class="reference internal" href="../c-api/dict.html#c.PyDictObject" title="PyDictObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyDictObject</span></code></a> no longer maintains a private version
tag field <code class="docutils literal notranslate"><span class="pre">ma_version_tag</span></code> per <span class="target" id="index-57"></span><a class="pep reference external" href="https://peps.python.org/pep-0699/"><strong>PEP 699</strong></a>. This field was originally
added in Python 3.6 (<span class="target" id="index-58"></span><a class="pep reference external" href="https://peps.python.org/pep-0509/"><strong>PEP 509</strong></a>) and deprecated in Python 3.12.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124160">gh-124160</a>: Fix crash when importing modules containing state and
single-phase initialization in a subinterpreter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124153">gh-124153</a>: Add <a class="reference internal" href="../c-api/type.html#c.PyType_GetBaseByToken" title="PyType_GetBaseByToken"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetBaseByToken()</span></code></a> and <a class="reference internal" href="../c-api/type.html#c.Py_tp_token" title="Py_tp_token"><code class="xref c c-data docutils literal notranslate"><span class="pre">Py_tp_token</span></code></a>
slot for easier type checking, related to <span class="target" id="index-59"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a> and <span class="target" id="index-60"></span><a class="pep reference external" href="https://peps.python.org/pep-0630/"><strong>PEP 630</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124127">gh-124127</a>: In the limited C API 3.14 and newer, <a class="reference internal" href="../c-api/refcounting.html#c.Py_REFCNT" title="Py_REFCNT"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_REFCNT()</span></code></a> is now
implemented as an opaque function call to hide implementation details.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123880">gh-123880</a>: Fixed a bug that prevented circular imports of extension
modules that use single-phase initialization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123909">gh-123909</a>: <a class="reference internal" href="../c-api/type.html#c.PyType_FromSpec" title="PyType_FromSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpec()</span></code></a>, <a class="reference internal" href="../c-api/type.html#c.PyType_FromSpecWithBases" title="PyType_FromSpecWithBases"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpecWithBases()</span></code></a>
and <a class="reference internal" href="../c-api/type.html#c.PyType_FromModuleAndSpec" title="PyType_FromModuleAndSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromModuleAndSpec()</span></code></a> will now fail if the metaclass of
the new type has custom <a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_new" title="PyTypeObject.tp_new"><code class="xref c c-member docutils literal notranslate"><span class="pre">tp_new</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107954">gh-107954</a>: Add functions to configure the Python initialization
(<span class="target" id="index-61"></span><a class="pep reference external" href="https://peps.python.org/pep-0741/"><strong>PEP 741</strong></a>):</p>
<ul class="simple">
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_Create" title="PyInitConfig_Create"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_Create()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_Free" title="PyInitConfig_Free"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_Free()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_GetError" title="PyInitConfig_GetError"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_GetError()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_GetExitCode" title="PyInitConfig_GetExitCode"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_GetExitCode()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_HasOption" title="PyInitConfig_HasOption"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_HasOption()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_GetInt" title="PyInitConfig_GetInt"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_GetInt()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_GetStr" title="PyInitConfig_GetStr"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_GetStr()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_GetStrList" title="PyInitConfig_GetStrList"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_GetStrList()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_FreeStrList" title="PyInitConfig_FreeStrList"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_FreeStrList()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_SetInt" title="PyInitConfig_SetInt"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_SetInt()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_SetStr" title="PyInitConfig_SetStr"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_SetStr()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_SetStrList" title="PyInitConfig_SetStrList"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_SetStrList()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyInitConfig_AddModule" title="PyInitConfig_AddModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInitConfig_AddModule()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.Py_InitializeFromInitConfig" title="Py_InitializeFromInitConfig"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_InitializeFromInitConfig()</span></code></a></p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107954">gh-107954</a>: Add functions to get and set the current runtime Python
configuration:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyConfig_Get" title="PyConfig_Get"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyConfig_Get()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyConfig_GetInt" title="PyConfig_GetInt"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyConfig_GetInt()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyConfig_Set" title="PyConfig_Set"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyConfig_Set()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init_config.html#c.PyConfig_Names" title="PyConfig_Names"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyConfig_Names()</span></code></a></p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123465">gh-123465</a>: <a class="reference internal" href="../c-api/structures.html#c.Py_RELATIVE_OFFSET" title="Py_RELATIVE_OFFSET"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_RELATIVE_OFFSET</span></code></a> is now allowed in
<a class="reference internal" href="../c-api/structures.html#c.PyMemberDef" title="PyMemberDef"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyMemberDef</span></code></a> for the special offset member
<code class="docutils literal notranslate"><span class="pre">"__vectorcalloffset__"</span></code>, as well as the discouraged special offset
members <code class="docutils literal notranslate"><span class="pre">"__dictoffset__"</span></code> and <code class="docutils literal notranslate"><span class="pre">"__weaklistoffset__"</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100554">gh-100554</a>: Added a slot <code class="docutils literal notranslate"><span class="pre">Py_tp_vectorcall</span></code> to set
<a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_vectorcall" title="PyTypeObject.tp_vectorcall"><code class="xref c c-member docutils literal notranslate"><span class="pre">tp_vectorcall</span></code></a> via the <a class="reference internal" href="../c-api/type.html#c.PyType_FromSpec" title="PyType_FromSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpec()</span></code></a>
function family. Limited API extensions can use this feature to provide
more efficient vector call-based implementation of <code class="docutils literal notranslate"><span class="pre">__new__</span></code> and
<code class="docutils literal notranslate"><span class="pre">__init__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122854">gh-122854</a>: Add <a class="reference internal" href="../c-api/hash.html#c.Py_HashBuffer" title="Py_HashBuffer"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_HashBuffer()</span></code></a> to compute and return the hash
value of a buffer. Patch by Antoine Pitrou and Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122728">gh-122728</a>: Fix <a class="reference internal" href="../c-api/reflection.html#c.PyEval_GetLocals" title="PyEval_GetLocals"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_GetLocals()</span></code></a> to avoid <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a>
(“bad argument to internal function”). Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116622">gh-116622</a>: Make <a class="reference internal" href="../c-api/object.html#c.PyObject_Print" title="PyObject_Print"><code class="xref any c c-func docutils literal notranslate"><span class="pre">PyObject_Print</span></code></a> work around a bug in Android and
OpenBSD which prevented it from throwing an exception when trying to write
to a read-only stream.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105201">gh-105201</a>: Add <a class="reference internal" href="../c-api/iter.html#c.PyIter_NextItem" title="PyIter_NextItem"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyIter_NextItem()</span></code></a> to replace <a class="reference internal" href="../c-api/iter.html#c.PyIter_Next" title="PyIter_Next"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyIter_Next()</span></code></a>,
which has an ambiguous return value. Patch by Irit Katriel and Erlend
Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121489">gh-121489</a>: Export private <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyBytes_Join()</span></code> again.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121645">gh-121645</a>: Add <a class="reference internal" href="../c-api/bytes.html#c.PyBytes_Join" title="PyBytes_Join"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBytes_Join(sep,</span> <span class="pre">iterable)</span></code></a>
function, similar to <code class="docutils literal notranslate"><span class="pre">sep.join(iterable)</span></code> in Python. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89364">gh-89364</a>: Export the <a class="reference internal" href="../c-api/exceptions.html#c.PySignal_SetWakeupFd" title="PySignal_SetWakeupFd"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySignal_SetWakeupFd()</span></code></a> function. Previously,
the function was documented but it couldn’t be used in 3rd party code.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113993">gh-113993</a>: <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_InternInPlace" title="PyUnicode_InternInPlace"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_InternInPlace()</span></code></a> no longer prevents its
argument from being garbage collected.</p>
<p>Several functions that take <code class="docutils literal notranslate"><span class="pre">char</span> <span class="pre">*</span></code> are now documented as possibly
preventing string objects from being garbage collected; refer to their
documentation for details: <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_InternFromString" title="PyUnicode_InternFromString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_InternFromString()</span></code></a>,
<a class="reference internal" href="../c-api/dict.html#c.PyDict_SetItemString" title="PyDict_SetItemString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_SetItemString()</span></code></a>, <a class="reference internal" href="../c-api/object.html#c.PyObject_SetAttrString" title="PyObject_SetAttrString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_SetAttrString()</span></code></a>,
<a class="reference internal" href="../c-api/object.html#c.PyObject_DelAttrString" title="PyObject_DelAttrString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_DelAttrString()</span></code></a>, <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_InternFromString" title="PyUnicode_InternFromString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_InternFromString()</span></code></a>,
and <code class="docutils literal notranslate"><span class="pre">PyModule_Add*</span></code> convenience functions.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113601">gh-113601</a>: Removed debug build assertions related to interning strings,
which were falsely triggered by stable ABI extensions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112136">gh-112136</a>: Restore the private <code class="docutils literal notranslate"><span class="pre">_PyArg_Parser</span></code> structure and the private
<code class="docutils literal notranslate"><span class="pre">_PyArg_ParseTupleAndKeywordsFast()</span></code> function, previously removed in
Python 3.13 alpha 1. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120642">gh-120642</a>: Remove the private <code class="docutils literal notranslate"><span class="pre">_Py_CODEUNIT</span></code> type from the public C API.
The internal <code class="docutils literal notranslate"><span class="pre">pycore_code.h</span></code> header should now be used to get this
internal type. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120858">gh-120858</a>: <a class="reference internal" href="../c-api/dict.html#c.PyDict_Next" title="PyDict_Next"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_Next()</span></code></a> no longer locks the dictionary in the
free-threaded build. The locking needs to be done by the caller around
the entire iteration loop.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120642">gh-120642</a>: Remove the following unstable functions:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">PyUnstable_Replace_Executor()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyUnstable_SetOptimizer()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyUnstable_GetOptimizer()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyUnstable_GetExecutor()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyUnstable_Optimizer_NewCounter()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyUnstable_Optimizer_NewUOpOptimizer()</span></code></p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120389">gh-120389</a>: Add new functions to convert C <code class="docutils literal notranslate"><span class="pre"><stdint.h></span></code> numbers from/to
Python <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLong_FromInt32" title="PyLong_FromInt32"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromInt32()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLong_FromUInt32" title="PyLong_FromUInt32"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromUInt32()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLong_FromInt64" title="PyLong_FromInt64"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromInt64()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLong_FromUInt64" title="PyLong_FromUInt64"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromUInt64()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLong_AsInt32" title="PyLong_AsInt32"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsInt32()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLong_AsUInt32" title="PyLong_AsUInt32"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsUInt32()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLong_AsInt64" title="PyLong_AsInt64"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsInt64()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/long.html#c.PyLong_AsUInt64" title="PyLong_AsUInt64"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsUInt64()</span></code></a></p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120600">gh-120600</a>: In the limited C API 3.14 and newer, <a class="reference internal" href="../c-api/structures.html#c.Py_TYPE" title="Py_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_TYPE()</span></code></a> is now
implemented as an opaque function call to hide implementation details.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/70278">gh-70278</a>: <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_FromFormat" title="PyUnicode_FromFormat"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_FromFormat()</span></code></a> no longer produces the ending
<code class="docutils literal notranslate"><span class="pre">\ufffd</span></code> character for truncated C string when use precision with <code class="docutils literal notranslate"><span class="pre">%s</span></code>
and <code class="docutils literal notranslate"><span class="pre">%V</span></code>. It now truncates the string before the start of truncated
multibyte sequences.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119771">gh-119771</a>: Set <a class="reference internal" href="../library/errno.html#module-errno" title="errno: Standard errno system symbols."><code class="xref py py-data docutils literal notranslate"><span class="pre">errno</span></code></a> in <a class="reference internal" href="../c-api/complex.html#c._Py_c_pow" title="_Py_c_pow"><code class="xref c c-func docutils literal notranslate"><span class="pre">_Py_c_pow()</span></code></a> on overflows. Patch
by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119182">gh-119182</a>: Add a new <a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter" title="PyUnicodeWriter"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyUnicodeWriter</span></code></a> API to create a Python
<a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> object:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_Create" title="PyUnicodeWriter_Create"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_Create()</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_Discard" title="PyUnicodeWriter_Discard"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_Discard()</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_Finish" title="PyUnicodeWriter_Finish"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_Finish()</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteChar" title="PyUnicodeWriter_WriteChar"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteChar()</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteUTF8" title="PyUnicodeWriter_WriteUTF8"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteUTF8()</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteUCS4" title="PyUnicodeWriter_WriteUCS4"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteUCS4()</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteWideChar" title="PyUnicodeWriter_WriteWideChar"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteWideChar()</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteStr" title="PyUnicodeWriter_WriteStr"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteStr()</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteRepr" title="PyUnicodeWriter_WriteRepr"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteRepr()</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_WriteSubstring" title="PyUnicodeWriter_WriteSubstring"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_WriteSubstring()</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_Format" title="PyUnicodeWriter_Format"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_Format()</span></code></a>.</p></li>
<li><p><a class="reference internal" href="../c-api/unicode.html#c.PyUnicodeWriter_DecodeUTF8Stateful" title="PyUnicodeWriter_DecodeUTF8Stateful"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicodeWriter_DecodeUTF8Stateful()</span></code></a>.</p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119613">gh-119613</a>: Soft deprecate the <code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_MEMCPY</span></code> macro: use directly
<code class="docutils literal notranslate"><span class="pre">memcpy()</span></code> instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119775">gh-119775</a>: Creating <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_IMMUTABLETYPE" title="Py_TPFLAGS_IMMUTABLETYPE"><code class="xref c c-data docutils literal notranslate"><span class="pre">immutable</span> <span class="pre">types</span></code></a>
with mutable bases was deprecated since 3.12 and now raises a
<a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119585">gh-119585</a>: Fix crash when a thread state that was created by
<a class="reference internal" href="../c-api/init.html#c.PyGILState_Ensure" title="PyGILState_Ensure"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGILState_Ensure()</span></code></a> calls a destructor that during
<a class="reference internal" href="../c-api/init.html#c.PyThreadState_Clear" title="PyThreadState_Clear"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_Clear()</span></code></a> that calls back into
<a class="reference internal" href="../c-api/init.html#c.PyGILState_Ensure" title="PyGILState_Ensure"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGILState_Ensure()</span></code></a> and <a class="reference internal" href="../c-api/init.html#c.PyGILState_Release" title="PyGILState_Release"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGILState_Release()</span></code></a>. This might
occur when in the free-threaded build or when using thread-local variables
whose destructors call <a class="reference internal" href="../c-api/init.html#c.PyGILState_Ensure" title="PyGILState_Ensure"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGILState_Ensure()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119613">gh-119613</a>: Macros <code class="docutils literal notranslate"><span class="pre">Py_IS_NAN</span></code>, <code class="docutils literal notranslate"><span class="pre">Py_IS_INFINITY</span></code> and <code class="docutils literal notranslate"><span class="pre">Py_IS_FINITE</span></code>
are <a class="reference internal" href="../glossary.html#term-soft-deprecated"><span class="xref std std-term">soft deprecated</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119336">gh-119336</a>: Restore the removed <code class="docutils literal notranslate"><span class="pre">_PyLong_NumBits()</span></code> function. It is used
by the pywin32 project. Patch by Ethan Smith</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119344">gh-119344</a>: The critical section API is now public as part of the
non-limited C API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119333">gh-119333</a>: Add <a class="reference internal" href="../c-api/contextvars.html#c.PyContext_AddWatcher" title="PyContext_AddWatcher"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyContext_AddWatcher()</span></code></a> and
<a class="reference internal" href="../c-api/contextvars.html#c.PyContext_ClearWatcher" title="PyContext_ClearWatcher"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyContext_ClearWatcher()</span></code></a> APIs to register callbacks to receive
notification on enter and exit of context objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119247">gh-119247</a>: Added <code class="docutils literal notranslate"><span class="pre">Py_BEGIN_CRITICAL_SECTION_SEQUENCE_FAST</span></code> and
<code class="docutils literal notranslate"><span class="pre">Py_END_CRITICAL_SECTION_SEQUENCE_FAST</span></code> macros to make it possible to
use PySequence_Fast APIs safely when free-threaded, and update str.join to
work without the GIL using them.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111389">gh-111389</a>: Add <a class="reference internal" href="../c-api/hash.html#c.PyHASH_MULTIPLIER" title="PyHASH_MULTIPLIER"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyHASH_MULTIPLIER</span></code></a> constant: prime multiplier
used in string and various other hashes. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118771">gh-118771</a>: Several C declarations with names that didn’t start with the
<code class="docutils literal notranslate"><span class="pre">Py</span></code> or <code class="docutils literal notranslate"><span class="pre">_Py</span></code> prefixes, which were added by mistake in 3.13 alpha and
beta releases, were moved to internal headers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116984">gh-116984</a>: Make mimalloc includes relative to the current file to avoid
embedders or extensions needing to include <code class="docutils literal notranslate"><span class="pre">Internal/mimalloc</span></code> if they
are already including internal CPython headers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118789">gh-118789</a>: Add <a class="reference internal" href="../c-api/weakref.html#c.PyUnstable_Object_ClearWeakRefsNoCallbacks" title="PyUnstable_Object_ClearWeakRefsNoCallbacks"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_Object_ClearWeakRefsNoCallbacks()</span></code></a>, which
clears weakrefs without calling their callbacks.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118789">gh-118789</a>: Restore <code class="docutils literal notranslate"><span class="pre">_PyWeakref_ClearRef</span></code> that was previously removed in
Python 3.13 alpha 1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117511">gh-117511</a>: Make the <a class="reference internal" href="../c-api/init.html#c.PyMutex" title="PyMutex"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyMutex</span></code></a> public in the non-limited C API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116560">gh-116560</a>: Add <a class="reference internal" href="../c-api/long.html#c.PyLong_GetSign" title="PyLong_GetSign"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_GetSign()</span></code></a> function. Patch by Sergey B
Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97588">gh-97588</a>: Fix creating bitfields in <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> structures and unions.
Fields no longer overlap.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87135">gh-87135</a>: Attempting to acquire the GIL after runtime finalization has
begun in a different thread now causes the thread to hang rather than
terminate, which avoids potential crashes or memory corruption caused by
attempting to terminate a thread that is running code not specifically
designed to support termination. In most cases this hanging is harmless
since the process will soon exit anyway.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">PyThread_exit_thread</span></code> function is now deprecated. Its behavior is
inconsistent across platforms, and it can only be used safely in the
unlikely case that every function in the entire call stack has been
designed to support the platform-dependent termination mechanism. It is
recommended that users of this function change their design to not require
thread termination. In the unlikely case that thread termination is
needed and can be done safely, users may migrate to calling
platform-specific APIs such as <code class="docutils literal notranslate"><span class="pre">pthread_exit</span></code> (POSIX) or
<code class="docutils literal notranslate"><span class="pre">_endthreadex</span></code> (Windows) directly.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34008">bpo-34008</a>: Added <code class="docutils literal notranslate"><span class="pre">Py_IsInitialized</span></code> to the list of APIs that are safe to
call before the interpreter is initialized, and updated the embedding
tests to cover it.</p></li>
</ul>
</section>
<section id="id113">
<h3>Build<a class="headerlink" href="#id113" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/125269">gh-125269</a>: Fix detection of whether <code class="docutils literal notranslate"><span class="pre">-latomic</span></code> is needed when
cross-compiling CPython using the configure script.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123990">gh-123990</a>: Remove <code class="docutils literal notranslate"><span class="pre">WITH_FREELISTS</span></code> macro and <code class="docutils literal notranslate"><span class="pre">--without-freelists</span></code>
build configuration</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124102">gh-124102</a>: Update internal documentation under PCbuild, so it now
correctly states that Windows requires VS2017 or later and Python 3.10 or
later</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/124043">gh-124043</a>: Building using <a class="reference internal" href="../using/configure.html#cmdoption-with-trace-refs"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-trace-refs</span></code></a> is (temporarily)
disallowed when the GIL is disabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123418">gh-123418</a>: Updated Android build to use OpenSSL 3.0.15.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/123297">gh-123297</a>: Propagate the value of <code class="docutils literal notranslate"><span class="pre">LDFLAGS</span></code> to <code class="docutils literal notranslate"><span class="pre">LDCXXSHARED</span></code> in
<a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a>. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121634">gh-121634</a>: Allow for specifying the target compile triple for WASI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/122578">gh-122578</a>: Use WASI SDK 24 for testing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116622">gh-116622</a>: Rename build variable <code class="docutils literal notranslate"><span class="pre">MODULE_LDFLAGS</span></code> back to <code class="docutils literal notranslate"><span class="pre">LIBPYTHON</span></code>,
as it’s used by package build systems (e.g. Meson).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118943">gh-118943</a>: Fix an issue where the experimental JIT could be built several
times by the <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-all</span></code> target, leading to possible race
conditions on heavily parallelized builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121996">gh-121996</a>: Introduce ./configure –disable-safety and
–enable-slower-safety options. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120522">gh-120522</a>: Added a <a class="reference internal" href="../using/configure.html#cmdoption-with-app-store-compliance"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-app-store-compliance</span></code></a> option to patch
out known issues with macOS/iOS App Store review processes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120371">gh-120371</a>: Support WASI SDK 22 by explicitly skipping functions that are
just stubs in wasi-libc.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121731">gh-121731</a>: Fix mimalloc compile error on GNU/Hurd</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121487">gh-121487</a>: Fix deprecation warning for ATOMIC_VAR_INIT in mimalloc.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121467">gh-121467</a>: Fix a Makefile bug that prevented mimalloc header files from
being installed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121103">gh-121103</a>: On POSIX systems, excluding macOS framework installs, the lib
directory for the free-threaded build now includes a “t” suffix to avoid
conflicts with a co-located default build installation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120831">gh-120831</a>: The default minimum iOS version was increased to 13.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/121082">gh-121082</a>: Fix build failure when the developer use <code class="docutils literal notranslate"><span class="pre">--enable-pystats</span></code>
arguments in configuration command after #118450.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120671">gh-120671</a>: Fix failing configure tests due to a missing space when
appending to CFLAGS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120602">gh-120602</a>: Correctly handle LLVM installs with <code class="docutils literal notranslate"><span class="pre">LLVM_VERSION_SUFFIX</span></code>
when building with <code class="docutils literal notranslate"><span class="pre">--enable-experimental-jit</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120688">gh-120688</a>: On WASI in debug mode, Python is now built with compiler flag
<code class="docutils literal notranslate"><span class="pre">-O3</span></code> instead of <code class="docutils literal notranslate"><span class="pre">-Og</span></code>, to support more recursive calls. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118943">gh-118943</a>: Fix a possible race condition affecting parallel builds
configured with <code class="docutils literal notranslate"><span class="pre">--enable-experimental-jit</span></code>, in which
<a class="reference internal" href="../library/exceptions.html#FileNotFoundError" title="FileNotFoundError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">FileNotFoundError</span></code></a> could be caused by another process already moving
<code class="docutils literal notranslate"><span class="pre">jit_stencils.h.new</span></code> to <code class="docutils literal notranslate"><span class="pre">jit_stencils.h</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120326">gh-120326</a>: On Windows, fix build error when <code class="docutils literal notranslate"><span class="pre">--disable-gil</span></code> and
<code class="docutils literal notranslate"><span class="pre">--experimental-jit</span></code> options are combined.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/120291">gh-120291</a>: Make the <code class="docutils literal notranslate"><span class="pre">python-config</span></code> shell script compatible with
non-bash shells.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113565">gh-113565</a>: Improve <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> and <a class="reference internal" href="../library/curses.panel.html#module-curses.panel" title="curses.panel: A panel stack extension that adds depth to curses windows."><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses.panel</span></code></a> dependency checks
in <strong class="program">configure</strong>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119729">gh-119729</a>: On POSIX systems, the pkg-config (<code class="docutils literal notranslate"><span class="pre">.pc</span></code>) filenames now
include the ABI flags, which may include debug (“d”) and free-threaded
(“t”). For example: * <code class="docutils literal notranslate"><span class="pre">python-3.14.pc</span></code> (default, non-debug build) *
<code class="docutils literal notranslate"><span class="pre">python-3.14d.pc</span></code> (default, debug build) * <code class="docutils literal notranslate"><span class="pre">python-3.14t.pc</span></code>
(free-threaded build)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119400">gh-119400</a>: <code class="docutils literal notranslate"><span class="pre">make_ssl_certs</span></code>, the script that prepares certificate data
for the test suite, now allows specifying expiration dates.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115119">gh-115119</a>: Fall back to the bundled libmpdec if a system version cannot be
found.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/119132">gh-119132</a>: Update <a class="reference internal" href="../library/sys.html#sys.version" title="sys.version"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.version</span></code></a> to identify whether the build is
default build or free-threading build. Patch By Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118836">gh-118836</a>: Fix an <code class="docutils literal notranslate"><span class="pre">AssertionError</span></code> when building with
<code class="docutils literal notranslate"><span class="pre">--enable-experimental-jit</span></code> and the compiler emits a <code class="docutils literal notranslate"><span class="pre">SHT_NOTE</span></code>
section.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118943">gh-118943</a>: Fix a possible race condition affecting parallel builds
configured with <code class="docutils literal notranslate"><span class="pre">--enable-experimental-jit</span></code>, in which compilation errors
could be caused by an incompletely-generated header file.</p></li>
</ul>
</section>
</section>
<section id="python-3-13-0-beta-1">
<h2>Python 3.13.0 beta 1<a class="headerlink" href="#python-3-13-0-beta-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2024-05-08</em></p>
<section id="id114">
<h3>Security<a class="headerlink" href="#id114" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116741">gh-116741</a>: Update bundled libexpat to 2.6.2</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117233">gh-117233</a>: Detect BLAKE2, SHA3, Shake, & truncated SHA512 support in the
OpenSSL-ish libcrypto library at build time. This allows <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a>
to be used with libraries that do not to support every algorithm that
upstream OpenSSL does.</p></li>
</ul>
</section>
<section id="id115">
<h3>Core and Builtins<a class="headerlink" href="#id115" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118414">gh-118414</a>: Add instrumented opcodes to YIELD_VALUE assertion for tracing
cases.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117953">gh-117953</a>: When a builtin or extension module is imported for the first
time, while a subinterpreter is active, the module’s init function is now
run by the main interpreter first before import continues in the
subinterpreter. Consequently, single-phase init modules now fail in an
isolated subinterpreter without the init function running under that
interpreter, whereas before it would run under the subinterpreter <em>before</em>
failing, potentially leaving behind global state and callbacks and
otherwise leaving the module in an inconsistent state.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117549">gh-117549</a>: Don’t use designated initializer syntax in inline functions in
internal headers. They cause problems for C++ or MSVC users who aren’t yet
using the latest C++ standard (C++20). While internal, pycore_backoff.h,
is included (indirectly, via pycore_code.h) by some key 3rd party software
that does so for speed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95382">gh-95382</a>: Improve performance of <a class="reference internal" href="../library/json.html#json.dumps" title="json.dumps"><code class="xref py py-func docutils literal notranslate"><span class="pre">json.dumps()</span></code></a> and <a class="reference internal" href="../library/json.html#json.dump" title="json.dump"><code class="xref py py-func docutils literal notranslate"><span class="pre">json.dump()</span></code></a>
when using the argument <em>indent</em>. Depending on the data the encoding using
<a class="reference internal" href="../library/json.html#json.dumps" title="json.dumps"><code class="xref py py-func docutils literal notranslate"><span class="pre">json.dumps()</span></code></a> with <em>indent</em> can be up to 2 to 3 times faster.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116322">gh-116322</a>: In <code class="docutils literal notranslate"><span class="pre">--disable-gil</span></code> builds, the GIL will be enabled while
loading C extension modules. If the module indicates that it supports
running without the GIL, the GIL will be disabled once loading is
complete. Otherwise, the GIL will remain enabled for the remainder of the
interpreter’s lifetime. This behavior does not apply if the GIL has been
explicitly enabled or disabled with <code class="docutils literal notranslate"><span class="pre">PYTHON_GIL</span></code> or <code class="docutils literal notranslate"><span class="pre">-Xgil</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118513">gh-118513</a>: Fix incorrect <a class="reference internal" href="../library/exceptions.html#UnboundLocalError" title="UnboundLocalError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnboundLocalError</span></code></a> when two comprehensions
in the same function both reference the same name, and in one
comprehension the name is bound while in the other it’s an implicit
global.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118518">gh-118518</a>: Allow the Linux perf support to work without frame pointers
using perf’s advanced JIT support. The feature is activated when using the
<code class="docutils literal notranslate"><span class="pre">PYTHON_PERF_JIT_SUPPORT</span></code> environment variable or when running Python
with <code class="docutils literal notranslate"><span class="pre">-Xperf_jit</span></code>. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117514">gh-117514</a>: Add <code class="docutils literal notranslate"><span class="pre">sys._is_gil_enabled()</span></code> function that returns whether the
GIL is currently enabled. In the default build it always returns <code class="docutils literal notranslate"><span class="pre">True</span></code>
because the GIL is always enabled. In the free-threaded build, it may
return <code class="docutils literal notranslate"><span class="pre">True</span></code> or <code class="docutils literal notranslate"><span class="pre">False</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118164">gh-118164</a>: Break a loop between the Python implementation of the
<a class="reference internal" href="../library/decimal.html#module-decimal" title="decimal: Implementation of the General Decimal Arithmetic Specification."><code class="xref py py-mod docutils literal notranslate"><span class="pre">decimal</span></code></a> module and the Python code for integer to string
conversion. Also optimize integer to string conversion for values in the
range from 9_000 to 135_000 decimal digits.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118473">gh-118473</a>: Fix <a class="reference internal" href="../library/sys.html#sys.set_asyncgen_hooks" title="sys.set_asyncgen_hooks"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.set_asyncgen_hooks()</span></code></a> not to be partially set when
raising <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118465">gh-118465</a>: Compiler populates the new <code class="docutils literal notranslate"><span class="pre">__firstlineno__</span></code> field on a class
with the line number of the first line of the class definition.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118492">gh-118492</a>: Fix an issue where the type cache can expose a previously
accessed attribute when a finalizer is run.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117714">gh-117714</a>: update <code class="docutils literal notranslate"><span class="pre">async_generator.athrow().close()</span></code> and
<code class="docutils literal notranslate"><span class="pre">async_generator.asend().close()</span></code> to close their section of the
underlying async generator</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111201">gh-111201</a>: The <a class="reference internal" href="../glossary.html#term-interactive"><span class="xref std std-term">interactive</span></a> interpreter is now implemented in
Python, which allows for a number of new features like colors, multiline
input, history viewing, and paste mode. Contributed by Pablo Galindo,
Łukasz Langa and Lysandros Nikolaou based on code from the PyPy project.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74929">gh-74929</a>: Implement PEP 667: converted <a class="reference internal" href="../reference/datamodel.html#frame.f_locals" title="frame.f_locals"><code class="xref py py-attr docutils literal notranslate"><span class="pre">FrameType.f_locals</span></code></a> and <a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetLocals" title="PyFrame_GetLocals"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetLocals()</span></code></a> to return a
write-through proxy object when the frame refers to a function or
comprehension.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116767">gh-116767</a>: Fix crash in compiler on ‘async with’ that has many context
managers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118335">gh-118335</a>: Change how to use the tier 2 interpreter. Instead of running
Python with <code class="docutils literal notranslate"><span class="pre">-X</span> <span class="pre">uops</span></code> or setting the environment variable
<code class="docutils literal notranslate"><span class="pre">PYTHON_UOPS=1</span></code>, this choice is now made at build time by configuring
with <code class="docutils literal notranslate"><span class="pre">--enable-experimental-jit=interpreter</span></code>.</p>
<p><strong>Beware!</strong> This changes the environment variable to enable or disable
micro-ops to <code class="docutils literal notranslate"><span class="pre">PYTHON_JIT</span></code>. The old <code class="docutils literal notranslate"><span class="pre">PYTHON_UOPS</span></code> is no longer used.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118306">gh-118306</a>: Update JIT compilation to use LLVM 18</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118160">gh-118160</a>: <a class="reference internal" href="../reference/executionmodel.html#annotation-scopes"><span class="std std-ref">Annotation scopes</span></a> within classes can
now contain comprehensions. However, such comprehensions are not inlined
into their parent scope at runtime. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118272">gh-118272</a>: Fix bug where <code class="docutils literal notranslate"><span class="pre">generator.close</span></code> does not free the generator
frame’s locals.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118216">gh-118216</a>: Don’t consider <a class="reference internal" href="../library/__future__.html#module-__future__" title="__future__: Future statement definitions"><code class="xref py py-mod docutils literal notranslate"><span class="pre">__future__</span></code></a> imports with dots before the
module name.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118074">gh-118074</a>: Make sure that the Executor objects in the COLD_EXITS array
aren’t assumed to be GC-able (which would access bytes outside the
object).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107674">gh-107674</a>: Lazy load frame line number to improve performance of tracing</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118082">gh-118082</a>: Improve <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> message for imports without names,
like in <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">x</span> <span class="pre">import</span></code> and <code class="docutils literal notranslate"><span class="pre">import</span></code> cases. It now points out to users
that <a class="reference internal" href="../reference/simple_stmts.html#import"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">import</span></code></a> expects at least one name after it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118090">gh-118090</a>: Improve <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> message for empty type param
brackets.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117958">gh-117958</a>: Added a <code class="docutils literal notranslate"><span class="pre">get_jit_code()</span></code> method to access JIT compiled
machine code from the UOp Executor when the experimental JIT is enabled.
Patch by Anthony Shaw.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117901">gh-117901</a>: Add option for compiler’s codegen to save nested instruction
sequences for introspection.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116622">gh-116622</a>: Redirect stdout and stderr to system log when embedded in an
Android app.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109118">gh-109118</a>: <a class="reference internal" href="../reference/executionmodel.html#annotation-scopes"><span class="std std-ref">annotation scope</span></a> within class scopes
can now contain lambdas.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117894">gh-117894</a>: Prevent <code class="docutils literal notranslate"><span class="pre">agen.aclose()</span></code> objects being re-used after
<code class="docutils literal notranslate"><span class="pre">.throw()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117881">gh-117881</a>: prevent concurrent access to an async generator via
athrow().throw() or asend().throw()</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117536">gh-117536</a>: Fix a <a class="reference internal" href="../library/exceptions.html#RuntimeWarning" title="RuntimeWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeWarning</span></code></a> when calling
<code class="docutils literal notranslate"><span class="pre">agen.aclose().throw(Exception)</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117755">gh-117755</a>: Fix mimalloc allocator for huge memory allocation (around
8,589,934,592 GiB) on s390x. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117750">gh-117750</a>: Fix issue where an object’s dict would get out of sync with the
object’s internal values when being cleared. <code class="docutils literal notranslate"><span class="pre">obj.__dict__.clear()</span></code> now
clears the internal values, but leaves the dict attached to the object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117431">gh-117431</a>: Improve the performance of the following <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> and
<a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> methods by adapting them to the
<a class="reference internal" href="../c-api/structures.html#c.METH_FASTCALL" title="METH_FASTCALL"><code class="xref c c-macro docutils literal notranslate"><span class="pre">METH_FASTCALL</span></code></a> calling convention:</p>
<ul class="simple">
<li><p><code class="xref py py-meth docutils literal notranslate"><span class="pre">count()</span></code></p></li>
<li><p><code class="xref py py-meth docutils literal notranslate"><span class="pre">find()</span></code></p></li>
<li><p><code class="xref py py-meth docutils literal notranslate"><span class="pre">index()</span></code></p></li>
<li><p><code class="xref py py-meth docutils literal notranslate"><span class="pre">rfind()</span></code></p></li>
<li><p><code class="xref py py-meth docutils literal notranslate"><span class="pre">rindex()</span></code></p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117709">gh-117709</a>: Speed up calls to <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-func docutils literal notranslate"><span class="pre">str()</span></code></a> with positional-only argument, by
using the <span class="target" id="index-62"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a> <code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Erlend
Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117680">gh-117680</a>: Give <code class="docutils literal notranslate"><span class="pre">_PyInstructionSequence</span></code> a Python interface and use it
in tests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115776">gh-115776</a>: Statically allocated objects are, by definition, immortal so
must be marked as such regardless of whether they are in extension modules
or not.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117385">gh-117385</a>: Remove unhandled <code class="docutils literal notranslate"><span class="pre">PY_MONITORING_EVENT_BRANCH</span></code> and
<code class="docutils literal notranslate"><span class="pre">PY_MONITORING_EVENT_EXCEPTION_HANDLED</span></code> events from
<a class="reference internal" href="../library/sys.html#sys.settrace" title="sys.settrace"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.settrace()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116322">gh-116322</a>: Extension modules may indicate to the runtime that they can run
without the GIL. Multi-phase init modules do so by calling providing
<code class="docutils literal notranslate"><span class="pre">Py_MOD_GIL_NOT_USED</span></code> for the <code class="docutils literal notranslate"><span class="pre">Py_mod_gil</span></code> slot, while single-phase
init modules call <code class="docutils literal notranslate"><span class="pre">PyUnstable_Module_SetGIL(mod,</span> <span class="pre">Py_MOD_GIL_NOT_USED)</span></code>
from their init function.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116129">gh-116129</a>: Implement <span class="target" id="index-63"></span><a class="pep reference external" href="https://peps.python.org/pep-0696/"><strong>PEP 696</strong></a>, adding support for defaults on type
parameters. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93502">gh-93502</a>: Add two new functions to the C-API,
<a class="reference internal" href="../c-api/init.html#c.PyRefTracer_SetTracer" title="PyRefTracer_SetTracer"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyRefTracer_SetTracer()</span></code></a> and <a class="reference internal" href="../c-api/init.html#c.PyRefTracer_GetTracer" title="PyRefTracer_GetTracer"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyRefTracer_GetTracer()</span></code></a>, that
allows to track object creation and destruction the same way the
<a class="reference internal" href="../library/tracemalloc.html#module-tracemalloc" title="tracemalloc: Trace memory allocations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tracemalloc</span></code></a> module does. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107674">gh-107674</a>: Improved the performance of <a class="reference internal" href="../library/sys.html#sys.settrace" title="sys.settrace"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.settrace()</span></code></a> significantly</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95754">gh-95754</a>: Improve the error message when a script shadowing a module from
the standard library causes <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> to be raised. Similarly,
improve the error message when a script shadowing a third party module
attempts to access an attribute from that third party module while still
initialising.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99180">gh-99180</a>: Elide uninformative traceback indicators in <code class="docutils literal notranslate"><span class="pre">return</span></code> and
simple <code class="docutils literal notranslate"><span class="pre">assignment</span></code> statements. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105879">gh-105879</a>: Allow the <em>globals</em> and <em>locals</em> arguments to <a class="reference internal" href="../library/functions.html#exec" title="exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">exec()</span></code></a> and
<a class="reference internal" href="../library/functions.html#eval" title="eval"><code class="xref py py-func docutils literal notranslate"><span class="pre">eval()</span></code></a> to be passed as keywords.</p></li>
</ul>
</section>
<section id="id116">
<h3>Library<a class="headerlink" href="#id116" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118418">gh-118418</a>: A <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> is now emitted if you fail to pass
a value to the new <em>type_params</em> parameter of <code class="docutils literal notranslate"><span class="pre">typing._eval_type()</span></code> or
<code class="docutils literal notranslate"><span class="pre">typing.ForwardRef._evaluate()</span></code>. (Using either of these private and
undocumented functions is discouraged to begin with, but failing to pass a
value to the <code class="docutils literal notranslate"><span class="pre">type_params</span></code> parameter may lead to incorrect behaviour on
Python 3.12 or newer.)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118660">gh-118660</a>: Add an optional second type parameter to
<a class="reference internal" href="../library/typing.html#typing.ContextManager" title="typing.ContextManager"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ContextManager</span></code></a> and <a class="reference internal" href="../library/typing.html#typing.AsyncContextManager" title="typing.AsyncContextManager"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.AsyncContextManager</span></code></a>,
representing the return types of <a class="reference internal" href="../reference/datamodel.html#object.__exit__" title="object.__exit__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__exit__()</span></code></a> and
<a class="reference internal" href="../reference/datamodel.html#object.__aexit__" title="object.__aexit__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__aexit__()</span></code></a> respectively. This parameter defaults to <code class="docutils literal notranslate"><span class="pre">bool</span>
<span class="pre">|</span> <span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118650">gh-118650</a>: The <code class="docutils literal notranslate"><span class="pre">enum</span></code> module allows method named <code class="docutils literal notranslate"><span class="pre">_repr_*</span></code> to be
defined on <code class="docutils literal notranslate"><span class="pre">Enum</span></code> types.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118648">gh-118648</a>: Add type parameter defaults to <a class="reference internal" href="../library/typing.html#typing.Generator" title="typing.Generator"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Generator</span></code></a> and
<a class="reference internal" href="../library/typing.html#typing.AsyncGenerator" title="typing.AsyncGenerator"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.AsyncGenerator</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101137">gh-101137</a>: Mime type <code class="docutils literal notranslate"><span class="pre">text/x-rst</span></code> is now supported by <a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118164">gh-118164</a>: The Python implementation of the <code class="docutils literal notranslate"><span class="pre">decimal</span></code> module could
appear to hang in relatively small power cases (like <code class="docutils literal notranslate"><span class="pre">2**117</span></code>) if
context precision was set to a very high value. A different method to
check for exactly representable results is used now that doesn’t rely on
computing <code class="docutils literal notranslate"><span class="pre">10**precision</span></code> (which could be effectively too large to
compute).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111744">gh-111744</a>: <code class="docutils literal notranslate"><span class="pre">breakpoint()</span></code> and <code class="docutils literal notranslate"><span class="pre">pdb.set_trace()</span></code> now enter the debugger
immediately after the call rather than before the next line is executed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118500">gh-118500</a>: Add <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> support for zipapps</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118406">gh-118406</a>: Add signature for <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101732">gh-101732</a>: Use a Y2038 compatible openssl time function when available.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118404">gh-118404</a>: Fix <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> for non-comparable callables.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118402">gh-118402</a>: Fix <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> for the result of the
<a class="reference internal" href="../library/functools.html#functools.cmp_to_key" title="functools.cmp_to_key"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.cmp_to_key()</span></code></a> call.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116622">gh-116622</a>: On Android, <a class="reference internal" href="../library/sysconfig.html#sysconfig.get_platform" title="sysconfig.get_platform"><code class="xref any py py-func docutils literal notranslate"><span class="pre">sysconfig.get_platform</span></code></a> now returns the
format specified by <span class="target" id="index-64"></span><a class="pep reference external" href="https://peps.python.org/pep-0738/"><strong>PEP 738</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118285">gh-118285</a>: Allow to specify the signature of custom callable instances of
extension type by the <code class="docutils literal notranslate"><span class="pre">__text_signature__</span></code> attribute. Specify signatures
of <a class="reference internal" href="../library/operator.html#operator.attrgetter" title="operator.attrgetter"><code class="xref py py-class docutils literal notranslate"><span class="pre">operator.attrgetter</span></code></a>, <a class="reference internal" href="../library/operator.html#operator.itemgetter" title="operator.itemgetter"><code class="xref py py-class docutils literal notranslate"><span class="pre">operator.itemgetter</span></code></a>, and
<a class="reference internal" href="../library/operator.html#operator.methodcaller" title="operator.methodcaller"><code class="xref py py-class docutils literal notranslate"><span class="pre">operator.methodcaller</span></code></a> instances.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118314">gh-118314</a>: Fix an edge case in <a class="reference internal" href="../library/binascii.html#binascii.a2b_base64" title="binascii.a2b_base64"><code class="xref py py-func docutils literal notranslate"><span class="pre">binascii.a2b_base64()</span></code></a> strict mode,
where excessive padding is not detected when no padding is necessary.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118271">gh-118271</a>: Add the <code class="xref py py-class docutils literal notranslate"><span class="pre">PhotoImage</span></code> methods <code class="xref py py-meth docutils literal notranslate"><span class="pre">read()</span></code> to read an
image from a file and <code class="xref py py-meth docutils literal notranslate"><span class="pre">data()</span></code> to get the image data. Add
<em>background</em> and <em>grayscale</em> parameters to <code class="xref py py-class docutils literal notranslate"><span class="pre">PhotoImage</span></code> method
<code class="xref py py-meth docutils literal notranslate"><span class="pre">write()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118225">gh-118225</a>: Add the <code class="xref py py-class docutils literal notranslate"><span class="pre">PhotoImage</span></code> method <code class="xref py py-meth docutils literal notranslate"><span class="pre">copy_replace()</span></code> to
copy a region from one image to other image, possibly with pixel zooming
and/or subsampling. Add <em>from_coords</em> parameter to <code class="xref py py-class docutils literal notranslate"><span class="pre">PhotoImage</span></code>
methods <code class="xref py py-meth docutils literal notranslate"><span class="pre">copy()</span></code>, <code class="xref py py-meth docutils literal notranslate"><span class="pre">zoom()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">subsample()</span></code>. Add <em>zoom</em>
and <em>subsample</em> parameters to <code class="xref py py-class docutils literal notranslate"><span class="pre">PhotoImage</span></code> method <code class="xref py py-meth docutils literal notranslate"><span class="pre">copy()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118221">gh-118221</a>: Fix a bug where <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.iterdump" title="sqlite3.Connection.iterdump"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.iterdump()</span></code></a> could fail
if a custom <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.row_factory" title="sqlite3.Connection.row_factory"><code class="xref py py-attr docutils literal notranslate"><span class="pre">row</span> <span class="pre">factory</span></code></a> was used.
Patch by Erlend Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118013">gh-118013</a>: Fix regression introduced in <a class="reference external" href="https://github.com/python/cpython/issues/103193">gh-103193</a> that meant that calling
<a class="reference internal" href="../library/inspect.html#inspect.getattr_static" title="inspect.getattr_static"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getattr_static()</span></code></a> on an instance would cause a strong
reference to that instance’s class to persist in an internal cache in the
<a class="reference internal" href="../library/inspect.html#module-inspect" title="inspect: Extract information and source code from live objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">inspect</span></code></a> module. This caused unexpected memory consumption if the
class was dynamically created, the class held strong references to other
objects which took up a significant amount of memory, and the cache
contained the sole strong reference to the class. The fix for the
regression leads to a slowdown in <code class="xref py py-func docutils literal notranslate"><span class="pre">getattr_static()</span></code>, but the
function should still be significantly faster than it was in Python 3.11.
Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118218">gh-118218</a>: Speed up <a class="reference internal" href="../library/itertools.html#itertools.pairwise" title="itertools.pairwise"><code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.pairwise()</span></code></a> in the common case by up to
1.8x.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117486">gh-117486</a>: Improve the behavior of user-defined subclasses of
<a class="reference internal" href="../library/ast.html#ast.AST" title="ast.AST"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.AST</span></code></a>. Such classes will now require no changes in the usual
case to conform with the behavior changes of the <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> module in
Python 3.13. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90848">gh-90848</a>: Fixed <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.create_autospec" title="unittest.mock.create_autospec"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.create_autospec()</span></code></a> to configure parent
mock with keyword arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118168">gh-118168</a>: Fix incorrect argument substitution when <a class="reference internal" href="../library/typing.html#typing.Unpack" title="typing.Unpack"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Unpack</span></code></a>
is used with the builtin <a class="reference internal" href="../library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a>. <code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Unpack</span></code> now raises
<a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when used with certain invalid types. Patch by Jelle
Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118131">gh-118131</a>: Add command-line interface for the <a class="reference internal" href="../library/random.html#module-random" title="random: Generate pseudo-random numbers with various common distributions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">random</span></code></a> module. Patch
by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118107">gh-118107</a>: Fix <a class="reference internal" href="../library/zipimport.html#module-zipimport" title="zipimport: Support for importing Python modules from ZIP archives."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipimport</span></code></a> reading of ZIP64 files with file entries
that are too big or offset too far.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102511">gh-102511</a>: Fix <a class="reference internal" href="../library/os.path.html#os.path.normpath" title="os.path.normpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.normpath()</span></code></a> for UNC paths on Windows. Speed up
<a class="reference internal" href="../library/os.path.html#os.path.splitroot" title="os.path.splitroot"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.splitroot()</span></code></a> with a native implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117535">gh-117535</a>: Change the unknown filename of <a class="reference internal" href="../library/warnings.html#module-warnings" title="warnings: Issue warning messages and control their disposition."><code class="xref py py-mod docutils literal notranslate"><span class="pre">warnings</span></code></a> from <code class="docutils literal notranslate"><span class="pre">sys</span></code> to
<code class="docutils literal notranslate"><span class="pre"><sys></span></code> to clarify that it’s not a real filename.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114053">gh-114053</a>: Fix erroneous <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> when calling
<a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> on a class that made use of <span class="target" id="index-65"></span><a class="pep reference external" href="https://peps.python.org/pep-0695/"><strong>PEP 695</strong></a> type
parameters in a module that had <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">annotations</span></code> at
the top of the file. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116931">gh-116931</a>: Add parameter <em>fileobj</em> check for
<a class="reference internal" href="../library/tarfile.html#tarfile.TarFile.addfile" title="tarfile.TarFile.addfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">tarfile.TarFile.addfile()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117995">gh-117995</a>: Don’t raise <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> when a <a class="reference internal" href="../glossary.html#term-sequence"><span class="xref std std-term">sequence</span></a>
of parameters is used to bind indexed, nameless placeholders. See also
<a class="reference external" href="https://github.com/python/cpython/issues/100668">gh-100668</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/80361">gh-80361</a>: Fix TypeError in <a class="reference internal" href="../library/email.compat32-message.html#email.message.Message.get_payload" title="email.message.Message.get_payload"><code class="xref py py-func docutils literal notranslate"><span class="pre">email.message.Message.get_payload()</span></code></a> when
the charset is <span class="target" id="index-66"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2231.html"><strong>RFC 2231</strong></a> encoded.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86650">gh-86650</a>: Fix IndexError when parse some emails with invalid Message-ID
(including one-off addresses generated by Microsoft Outlook).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117691">gh-117691</a>: Improve the error messages emitted by <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a>
deprecation warnings relating to PEP 706. If a <code class="docutils literal notranslate"><span class="pre">filter</span></code> argument is not
provided to <code class="docutils literal notranslate"><span class="pre">extract()</span></code> or <code class="docutils literal notranslate"><span class="pre">extractall</span></code>, the deprecation warning now
points to the line in the user’s code where the relevant function was
called. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115874">gh-115874</a>: Fixed a possible segfault during garbage collection of
<code class="docutils literal notranslate"><span class="pre">_asyncio.FutureIter</span></code> objects. Patch by Savannah Ostrowski.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115060">gh-115060</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> by omitting an initial
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_dir" title="pathlib.Path.is_dir"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_dir()</span></code></a> call. As a result of this change,
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">glob()</span></code></a> can no longer raise <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77102">gh-77102</a>: <a class="reference internal" href="../library/site.html#module-site" title="site: Module responsible for site-specific configuration."><code class="xref py py-mod docutils literal notranslate"><span class="pre">site</span></code></a> module now parses <code class="docutils literal notranslate"><span class="pre">.pth</span></code> file with UTF-8 first,
and <a class="reference internal" href="../glossary.html#term-locale-encoding"><span class="xref std std-term">locale encoding</span></a> if <code class="docutils literal notranslate"><span class="pre">UnicodeDecodeError</span></code> happened. It
supported only locale encoding before.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/76785">gh-76785</a>: We’ve exposed the low-level <code class="xref py py-mod docutils literal notranslate"><span class="pre">_interpreters</span></code> module for the
sake of the PyPI implementation of <span class="target" id="index-67"></span><a class="pep reference external" href="https://peps.python.org/pep-0734/"><strong>PEP 734</strong></a>. It was sometimes available
as the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_xxsubinterpreters</span></code> module and was formerly used only for
testing. For the most part, it should be considered an internal module,
like <code class="xref py py-mod docutils literal notranslate"><span class="pre">_thread</span></code> and <code class="xref py py-mod docutils literal notranslate"><span class="pre">_imp</span></code>. See
<a class="reference external" href="https://discuss.python.org/t/pep-734-multiple-interpreters-in-the-stdlib/41147/26">https://discuss.python.org/t/pep-734-multiple-interpreters-in-the-stdlib/41147/26</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115060">gh-115060</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> by not scanning directories
for non-wildcard pattern segments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117727">gh-117727</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path.iterdir" title="pathlib.Path.iterdir"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.iterdir()</span></code></a> by using
<a class="reference internal" href="../library/os.html#os.scandir" title="os.scandir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.scandir()</span></code></a> internally.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117586">gh-117586</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path.walk" title="pathlib.Path.walk"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.walk()</span></code></a> by working with strings
internally.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117722">gh-117722</a>: Change the new multi-separator support in
<a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamReader.readuntil" title="asyncio.StreamReader.readuntil"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.StreamReader.readuntil()</span></code></a> to only accept tuples of separators
rather than arbitrary iterables.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117692">gh-117692</a>: Fixes a bug when <a class="reference internal" href="../library/doctest.html#doctest.DocTestFinder" title="doctest.DocTestFinder"><code class="xref py py-class docutils literal notranslate"><span class="pre">doctest.DocTestFinder</span></code></a> was failing on
wrapped <code class="docutils literal notranslate"><span class="pre">builtin_function_or_method</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117348">gh-117348</a>: Largely restored import time performance of configparser by
avoiding dataclasses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117641">gh-117641</a>: Speedup <a class="reference internal" href="../library/os.path.html#os.path.commonpath" title="os.path.commonpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.commonpath()</span></code></a> on Unix.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117663">gh-117663</a>: Fix <code class="docutils literal notranslate"><span class="pre">_simple_enum</span></code> to detect aliases when multiple arguments
are present but only one is the member value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117636">gh-117636</a>: Speedup <a class="reference internal" href="../library/os.path.html#os.path.join" title="os.path.join"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.join()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117618">gh-117618</a>: Support <code class="docutils literal notranslate"><span class="pre">package.module</span></code> as <code class="docutils literal notranslate"><span class="pre">filename</span></code> for <code class="docutils literal notranslate"><span class="pre">break</span></code>
command of <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102247">gh-102247</a>: the status codes enum with constants in http.HTTPStatus are
updated to include the names from RFC9110. This RFC includes some HTTP
statuses previously only used for WEBDAV and assigns more generic names to
them.</p>
<p>The old constants are preserved for backwards compatibility.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117607">gh-117607</a>: Speedup <a class="reference internal" href="../library/os.path.html#os.path.relpath" title="os.path.relpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.relpath()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117586">gh-117586</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> by working with strings
internally.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117225">gh-117225</a>: Add colour to doctest output. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117566">gh-117566</a>: <a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv6Address.is_loopback" title="ipaddress.IPv6Address.is_loopback"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ipaddress.IPv6Address.is_loopback()</span></code></a> will now return
<code class="docutils literal notranslate"><span class="pre">True</span></code> for IPv4-mapped loopback addresses, i.e. addresses in the
<code class="docutils literal notranslate"><span class="pre">::ffff:127.0.0.0/104</span></code> address space.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117546">gh-117546</a>: Fix issue where <a class="reference internal" href="../library/os.path.html#os.path.realpath" title="os.path.realpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.realpath()</span></code></a> stopped resolving
symlinks after encountering a symlink loop on POSIX.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116720">gh-116720</a>: Improved behavior of <a class="reference internal" href="../library/asyncio-task.html#asyncio.TaskGroup" title="asyncio.TaskGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.TaskGroup</span></code></a> when an
external cancellation collides with an internal cancellation. For example,
when two task groups are nested and both experience an exception in a
child task simultaneously, it was possible that the outer task group would
misbehave, because its internal cancellation was swallowed by the inner
task group.</p>
<p>In the case where a task group is cancelled externally and also must raise
an <a class="reference internal" href="../library/exceptions.html#ExceptionGroup" title="ExceptionGroup"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ExceptionGroup</span></code></a>, it will now call the parent task’s
<a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.cancel" title="asyncio.Task.cancel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">cancel()</span></code></a> method. This ensures that a
<a class="reference internal" href="../library/asyncio-exceptions.html#asyncio.CancelledError" title="asyncio.CancelledError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">asyncio.CancelledError</span></code></a> will be raised at the next <a class="reference internal" href="../reference/expressions.html#await"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">await</span></code></a>,
so the cancellation is not lost.</p>
<p>An added benefit of these changes is that task groups now preserve the
cancellation count (<a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.cancelling" title="asyncio.Task.cancelling"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Task.cancelling()</span></code></a>).</p>
<p>In order to handle some corner cases, <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.uncancel" title="asyncio.Task.uncancel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Task.uncancel()</span></code></a> may
now reset the undocumented <code class="docutils literal notranslate"><span class="pre">_must_cancel</span></code> flag when the cancellation
count reaches zero.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117516">gh-117516</a>: Add <a class="reference internal" href="../library/typing.html#typing.TypeIs" title="typing.TypeIs"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.TypeIs</span></code></a>, implementing <span class="target" id="index-68"></span><a class="pep reference external" href="https://peps.python.org/pep-0742/"><strong>PEP 742</strong></a>. Patch by
Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117503">gh-117503</a>: Fix support of non-ASCII user names in bytes paths in
<a class="reference internal" href="../library/os.path.html#os.path.expanduser" title="os.path.expanduser"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.expanduser()</span></code></a> on Posix.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117394">gh-117394</a>: <a class="reference internal" href="../library/os.path.html#os.path.ismount" title="os.path.ismount"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.ismount()</span></code></a> is now 2-3 times faster if the user has
permissions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117313">gh-117313</a>: Only treat <code class="docutils literal notranslate"><span class="pre">'\n'</span></code>, <code class="docutils literal notranslate"><span class="pre">'\r'</span></code> and <code class="docutils literal notranslate"><span class="pre">'\r\n'</span></code> as line separators
in re-folding the <a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a> messages. Preserve control characters
<code class="docutils literal notranslate"><span class="pre">'\v'</span></code>, <code class="docutils literal notranslate"><span class="pre">'\f'</span></code>, <code class="docutils literal notranslate"><span class="pre">'\x1c'</span></code>, <code class="docutils literal notranslate"><span class="pre">'\x1d'</span></code> and <code class="docutils literal notranslate"><span class="pre">'\x1e'</span></code> and Unicode line
separators <code class="docutils literal notranslate"><span class="pre">'\x85'</span></code>, <code class="docutils literal notranslate"><span class="pre">'\u2028'</span></code> and <code class="docutils literal notranslate"><span class="pre">'\u2029'</span></code> as is.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117142">gh-117142</a>: Convert <code class="xref py py-mod docutils literal notranslate"><span class="pre">_ctypes</span></code> to multi-phase initialisation
(<span class="target" id="index-69"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/66543">gh-66543</a>: Add the <a class="reference internal" href="../library/mimetypes.html#mimetypes.guess_file_type" title="mimetypes.guess_file_type"><code class="xref py py-func docutils literal notranslate"><span class="pre">mimetypes.guess_file_type()</span></code></a> function which works
with file path. Passing file path instead of URL in
<a class="reference internal" href="../library/mimetypes.html#mimetypes.guess_type" title="mimetypes.guess_type"><code class="xref py py-func docutils literal notranslate"><span class="pre">guess_type()</span></code></a> is <a class="reference internal" href="../glossary.html#term-soft-deprecated"><span class="xref std std-term">soft deprecated</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/68583">gh-68583</a>: webbrowser CLI: replace getopt with argparse, add long options.
Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116871">gh-116871</a>: Name suggestions for <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#ImportError" title="ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a> now only include underscored names if the original name
was underscored.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116023">gh-116023</a>: Don’t show empty fields (value <code class="docutils literal notranslate"><span class="pre">None</span></code> or <code class="docutils literal notranslate"><span class="pre">[]</span></code>) in
<a class="reference internal" href="../library/ast.html#ast.dump" title="ast.dump"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.dump()</span></code></a> by default. Add <code class="docutils literal notranslate"><span class="pre">show_empty=False</span></code> parameter to
optionally show them.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115961">gh-115961</a>: Added <code class="xref py py-attr docutils literal notranslate"><span class="pre">name</span></code> and <code class="xref py py-attr docutils literal notranslate"><span class="pre">mode</span></code> attributes for compressed
and archived file-like objects in modules <a class="reference internal" href="../library/bz2.html#module-bz2" title="bz2: Interfaces for bzip2 compression and decompression."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bz2</span></code></a>, <a class="reference internal" href="../library/lzma.html#module-lzma" title="lzma: A Python wrapper for the liblzma compression library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">lzma</span></code></a>,
<a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> and <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a>. The value of the <code class="xref py py-attr docutils literal notranslate"><span class="pre">mode</span></code>
attribute of <a class="reference internal" href="../library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">gzip.GzipFile</span></code></a> was changed from integer (<code class="docutils literal notranslate"><span class="pre">1</span></code> or
<code class="docutils literal notranslate"><span class="pre">2</span></code>) to string (<code class="docutils literal notranslate"><span class="pre">'rb'</span></code> or <code class="docutils literal notranslate"><span class="pre">'wb'</span></code>). The value of the <code class="xref py py-attr docutils literal notranslate"><span class="pre">mode</span></code>
attribute of the readable file-like object returned by
<a class="reference internal" href="../library/zipfile.html#zipfile.ZipFile.open" title="zipfile.ZipFile.open"><code class="xref py py-meth docutils literal notranslate"><span class="pre">zipfile.ZipFile.open()</span></code></a> was changed from <code class="docutils literal notranslate"><span class="pre">'r'</span></code> to <code class="docutils literal notranslate"><span class="pre">'rb'</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82062">gh-82062</a>: Fix <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> to correctly handle parameter
defaults on methods in extension modules that use names defined in the
module namespace.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83856">gh-83856</a>: Honor <a class="reference internal" href="../library/atexit.html#module-atexit" title="atexit: Register and execute cleanup functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">atexit</span></code></a> for all <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> start methods</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113081">gh-113081</a>: Print colorized exception just like built-in traceback in
<a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112855">gh-112855</a>: Speed up pickling of <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> objects. Patch
by Barney Gale.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111744">gh-111744</a>: Support opcode events in <a class="reference internal" href="../library/bdb.html#module-bdb" title="bdb: Debugger framework."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109617">gh-109617</a>: <code class="xref py py-mod docutils literal notranslate"><span class="pre">ncurses</span></code>: fixed a crash that could occur on macOS 13 or
earlier when Python was built with Apple Xcode 15’s SDK.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83151">gh-83151</a>: Enabled arbitrary statements and evaluations in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> shell
to access the local variables of the current frame, which made it possible
for multi-scope code like generators or nested function to work.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110209">gh-110209</a>: Add <a class="reference internal" href="../reference/datamodel.html#object.__class_getitem__" title="object.__class_getitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__class_getitem__()</span></code></a> to
<a class="reference internal" href="../library/types.html#types.GeneratorType" title="types.GeneratorType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GeneratorType</span></code></a> and <a class="reference internal" href="../library/types.html#types.CoroutineType" title="types.CoroutineType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.CoroutineType</span></code></a> for type
hinting purposes. Patch by James Hilton-Balfe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108191">gh-108191</a>: The <a class="reference internal" href="../library/types.html#types.SimpleNamespace" title="types.SimpleNamespace"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.SimpleNamespace</span></code></a> now accepts an optional
positional argument which specifies initial values of attributes as a dict
or an iterable of key-value pairs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/62090">gh-62090</a>: Fix assertion errors caused by whitespace in metavars or
<code class="docutils literal notranslate"><span class="pre">SUPPRESS</span></code>-ed groups in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> by simplifying usage formatting.
Patch by Ali Hamdan.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102402">gh-102402</a>: Adjust <code class="docutils literal notranslate"><span class="pre">logging.LogRecord</span></code> to use <code class="docutils literal notranslate"><span class="pre">time.time_ns()</span></code> and fix
minor bug related to floating-point math.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100242">gh-100242</a>: Bring pure Python implementation <code class="docutils literal notranslate"><span class="pre">functools.partial.__new__</span></code>
more in line with the C-implementation by not just always checking for the
presence of the attribute <code class="docutils literal notranslate"><span class="pre">'func'</span></code> on the first argument of <code class="docutils literal notranslate"><span class="pre">partial</span></code>.
Instead, both the Python version and the C version perform an
<code class="docutils literal notranslate"><span class="pre">isinstance(func,</span> <span class="pre">partial)</span></code> check on the first argument of <code class="docutils literal notranslate"><span class="pre">partial</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99730">gh-99730</a>: HEAD requests are no longer upgraded to GET request during
redirects in urllib.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/66410">gh-66410</a>: Setting the <code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code> module global <code class="xref py py-data docutils literal notranslate"><span class="pre">wantobjects</span></code>
to <code class="docutils literal notranslate"><span class="pre">2</span></code> before creating the <a class="reference internal" href="../library/tkinter.html#tkinter.Tk" title="tkinter.Tk"><code class="xref py py-class docutils literal notranslate"><span class="pre">Tk</span></code></a> object or call the
<code class="xref py py-meth docutils literal notranslate"><span class="pre">wantobjects()</span></code> method of the <code class="xref py py-class docutils literal notranslate"><span class="pre">Tk</span></code> object with argument <code class="docutils literal notranslate"><span class="pre">2</span></code>
makes now arguments to callbacks registered in the <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> module
to be passed as various Python objects (<code class="docutils literal notranslate"><span class="pre">int</span></code>, <code class="docutils literal notranslate"><span class="pre">float</span></code>, <code class="docutils literal notranslate"><span class="pre">bytes</span></code>,
<code class="docutils literal notranslate"><span class="pre">tuple</span></code>), depending on their internal representation in Tcl, instead of
always <code class="docutils literal notranslate"><span class="pre">str</span></code>. <code class="xref py py-data docutils literal notranslate"><span class="pre">tkinter.wantobjects</span></code> is now set to <code class="docutils literal notranslate"><span class="pre">2</span></code> by
default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40943">bpo-40943</a>: Fix several IndexError when parse emails with truncated
Message-ID, address, routes, etc, e.g. <code class="docutils literal notranslate"><span class="pre">example@</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39324">bpo-39324</a>: Add mime type mapping for .md <-> text/markdown</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18108">bpo-18108</a>: <a class="reference internal" href="../library/shutil.html#shutil.chown" title="shutil.chown"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.chown()</span></code></a> now supports <em>dir_fd</em> and
<em>follow_symlinks</em> keyword arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30988">bpo-30988</a>: Fix parsing of emails with invalid address headers having a
leading or trailing dot. Patch by tsufeki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32839">bpo-32839</a>: Add the <code class="xref py py-meth docutils literal notranslate"><span class="pre">after_info()</span></code> method for Tkinter widgets.</p></li>
</ul>
</section>
<section id="id117">
<h3>Documentation<a class="headerlink" href="#id117" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117928">gh-117928</a>: The minimum Sphinx version required for the documentation is
now 6.2.1.</p></li>
</ul>
</section>
<section id="id118">
<h3>Build<a class="headerlink" href="#id118" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118734">gh-118734</a>: Fixes Windows build when invoked directly (not through the
<code class="file docutils literal notranslate"><span class="pre">build.bat</span></code> script) without specifying a value for <code class="docutils literal notranslate"><span class="pre">UseTIER2</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115119">gh-115119</a>: The <code class="file docutils literal notranslate"><span class="pre">configure</span></code> option <a class="reference internal" href="../using/configure.html#cmdoption-with-system-libmpdec"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-system-libmpdec</span></code></a>
now defaults to <code class="docutils literal notranslate"><span class="pre">yes</span></code>. The bundled copy of <code class="docutils literal notranslate"><span class="pre">libmpdecimal</span></code> will be
removed in Python 3.15.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117845">gh-117845</a>: Fix building against recent libedit versions by detecting
readline hook signatures in <strong class="program">configure</strong>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116622">gh-116622</a>: A testbed project was added to run the test suite on Android.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117645">gh-117645</a>: Increase WASI stack size from 512 KiB to 8 MiB and the initial
memory from 10 MiB to 20 MiB. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115119">gh-115119</a>: <strong class="program">configure</strong> now uses <strong class="program">pkg-config</strong> to detect
<a class="reference internal" href="../library/decimal.html#module-decimal" title="decimal: Implementation of the General Decimal Arithmetic Specification."><code class="xref py py-mod docutils literal notranslate"><span class="pre">decimal</span></code></a> dependencies if the <a class="reference internal" href="../using/configure.html#cmdoption-with-system-libmpdec"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-system-libmpdec</span></code></a> option
is given.</p></li>
</ul>
</section>
<section id="id119">
<h3>Windows<a class="headerlink" href="#id119" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115119">gh-115119</a>: Update Windows installer to use libmpdecimal 4.0.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118486">gh-118486</a>: <a class="reference internal" href="../library/os.html#os.mkdir" title="os.mkdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.mkdir()</span></code></a> now accepts <em>mode</em> of <code class="docutils literal notranslate"><span class="pre">0o700</span></code> to restrict
the new directory to the current user.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118347">gh-118347</a>: Fixes launcher updates not being installed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118293">gh-118293</a>: The <code class="docutils literal notranslate"><span class="pre">multiprocessing</span></code> module now passes the
<code class="docutils literal notranslate"><span class="pre">STARTF_FORCEOFFFEEDBACK</span></code> flag when spawning processes to tell Windows
not to change the mouse cursor.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115009">gh-115009</a>: Update Windows installer to use SQLite 3.45.3.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90329">gh-90329</a>: Suppress the warning displayed on virtual environment creation
when the requested and created paths differ only by a short (8.3 style)
name. Warnings will continue to be shown if a junction or symlink in the
path caused the venv to be created in a different location than originally
requested.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117786">gh-117786</a>: Fixes virtual environments not correctly launching when created
from a Store install.</p></li>
</ul>
</section>
<section id="id120">
<h3>macOS<a class="headerlink" href="#id120" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115119">gh-115119</a>: Update macOS installer to use libmpdecimal 4.0.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114099">gh-114099</a>: iOS preprocessor symbol usage was made compatible with older
macOS SDKs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115009">gh-115009</a>: Update macOS installer to use SQLite 3.45.3.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91629">gh-91629</a>: Use <code class="file docutils literal notranslate"><span class="pre">~/.config/fish/conf.d</span></code> configs and
<strong class="program">fish_add_path</strong> to set <span class="target" id="index-70"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PATH</span></code> when installing for the
Fish shell.</p></li>
</ul>
</section>
<section id="id121">
<h3>IDLE<a class="headerlink" href="#id121" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34774">bpo-34774</a>: Use user-selected color theme for Help => IDLE Doc.</p></li>
</ul>
</section>
<section id="id122">
<h3>C API<a class="headerlink" href="#id122" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/118124">gh-118124</a>: Fix <code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_BUILD_ASSERT</span></code> and
<code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_BUILD_ASSERT_EXPR</span></code> for non-constant expressions: use
<code class="docutils literal notranslate"><span class="pre">static_assert()</span></code> on C11 and newer. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110850">gh-110850</a>: Add “Raw” variant of PyTime functions</p>
<ul class="simple">
<li><p><a class="reference internal" href="../c-api/time.html#c.PyTime_MonotonicRaw" title="PyTime_MonotonicRaw"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyTime_MonotonicRaw()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/time.html#c.PyTime_PerfCounterRaw" title="PyTime_PerfCounterRaw"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyTime_PerfCounterRaw()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/time.html#c.PyTime_TimeRaw" title="PyTime_TimeRaw"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyTime_TimeRaw()</span></code></a></p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117987">gh-117987</a>: Restore functions removed in Python 3.13 alpha 1:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../c-api/init.html#c.Py_SetPythonHome" title="Py_SetPythonHome"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetPythonHome()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init.html#c.Py_SetProgramName" title="Py_SetProgramName"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetProgramName()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init.html#c.PySys_SetArgvEx" title="PySys_SetArgvEx"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_SetArgvEx()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init.html#c.PySys_SetArgv" title="PySys_SetArgv"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_SetArgv()</span></code></a></p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117929">gh-117929</a>: Restore removed <a class="reference internal" href="../c-api/init.html#c.PyEval_InitThreads" title="PyEval_InitThreads"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_InitThreads()</span></code></a> function. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117534">gh-117534</a>: Improve validation logic in the C implementation of
<a class="reference internal" href="../library/datetime.html#datetime.datetime.fromisoformat" title="datetime.datetime.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.fromisoformat()</span></code></a> to better handle invalid years.
Patch by Vlad Efanov.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/68114">gh-68114</a>: Fixed skipitem()’s handling of the old ‘w’ and ‘w#’ formatters.
These are no longer supported and now raise an exception if used.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111997">gh-111997</a>: Add a C-API for firing monitoring events.</p></li>
</ul>
</section>
</section>
<section id="python-3-13-0-alpha-6">
<h2>Python 3.13.0 alpha 6<a class="headerlink" href="#python-3-13-0-alpha-6" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2024-04-09</em></p>
<section id="id123">
<h3>Core and Builtins<a class="headerlink" href="#id123" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117494">gh-117494</a>: Refactored the instruction sequence data structure out of
compile.c into instruction_sequence.c.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116968">gh-116968</a>: Introduce a unified 16-bit backoff counter type
(<code class="docutils literal notranslate"><span class="pre">_Py_BackoffCounter</span></code>), shared between the Tier 1 adaptive specializer
and the Tier 2 optimizer. The API used for adaptive specialization
counters is changed but the behavior is (supposed to be) identical.</p>
<p>The behavior of the Tier 2 counters is changed:</p>
<ul class="simple">
<li><p>There are no longer dynamic thresholds (we never varied these).</p></li>
<li><p>All counters now use the same exponential backoff.</p></li>
<li><p>The counter for <code class="docutils literal notranslate"><span class="pre">JUMP_BACKWARD</span></code> starts counting down from 16.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">temperature</span></code> in side exits starts counting down from 64.</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117431">gh-117431</a>: Improve the performance of the following <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> and
<a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> methods by adapting them to the
<a class="reference internal" href="../c-api/structures.html#c.METH_FASTCALL" title="METH_FASTCALL"><code class="xref c c-macro docutils literal notranslate"><span class="pre">METH_FASTCALL</span></code></a> calling convention:</p>
<ul class="simple">
<li><p><code class="xref py py-meth docutils literal notranslate"><span class="pre">endswith()</span></code></p></li>
<li><p><code class="xref py py-meth docutils literal notranslate"><span class="pre">startswith()</span></code></p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117431">gh-117431</a>: Improve the performance of the following <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> methods
by adapting them to the <a class="reference internal" href="../c-api/structures.html#c.METH_FASTCALL" title="METH_FASTCALL"><code class="xref c c-macro docutils literal notranslate"><span class="pre">METH_FASTCALL</span></code></a> calling convention:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../library/stdtypes.html#str.count" title="str.count"><code class="xref py py-meth docutils literal notranslate"><span class="pre">count()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/stdtypes.html#str.endswith" title="str.endswith"><code class="xref py py-meth docutils literal notranslate"><span class="pre">endswith()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/stdtypes.html#str.find" title="str.find"><code class="xref py py-meth docutils literal notranslate"><span class="pre">find()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/stdtypes.html#str.index" title="str.index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">index()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/stdtypes.html#str.rfind" title="str.rfind"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rfind()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/stdtypes.html#str.rindex" title="str.rindex"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rindex()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/stdtypes.html#str.startswith" title="str.startswith"><code class="xref py py-meth docutils literal notranslate"><span class="pre">startswith()</span></code></a></p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117411">gh-117411</a>: Move <code class="docutils literal notranslate"><span class="pre">PyFutureFeatures</span></code> to an internal header and make it
private.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109120">gh-109120</a>: Added handle of incorrect star expressions, e.g <code class="docutils literal notranslate"><span class="pre">f(3,</span> <span class="pre">*)</span></code>.
Patch by Grigoryev Semyon</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117266">gh-117266</a>: Fix crashes for certain user-created subclasses of
<a class="reference internal" href="../library/ast.html#ast.AST" title="ast.AST"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.AST</span></code></a>. Such classes are now expected to set the
<code class="docutils literal notranslate"><span class="pre">_field_types</span></code> attribute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99108">gh-99108</a>: Updated the <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> built-in <a class="reference external" href="https://github.com/hacl-star/hacl-star">HACL* project</a> C code
from upstream that we use for many implementations when they are not
present via OpenSSL in a given build. This also avoids the rare potential
for a C symbol name one definition rule linking issue.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117108">gh-117108</a>: Change the old space bit of objects in the young generation
from 0 to gcstate->visited, so that any objects created during GC will
have the old bit set correctly if they get moved into the old generation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117108">gh-117108</a>: The cycle GC now chooses the size of increments based on the
total heap size, instead of the rate of object creation. This ensures that
it can keep up with growing heaps.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116735">gh-116735</a>: For <code class="docutils literal notranslate"><span class="pre">INSTRUMENTED_CALL_FUNCTION_EX</span></code>, set <code class="docutils literal notranslate"><span class="pre">arg0</span></code> to
<code class="docutils literal notranslate"><span class="pre">sys.monitoring.MISSING</span></code> instead of <code class="docutils literal notranslate"><span class="pre">None</span></code> for
<a class="reference internal" href="../library/sys.monitoring.html#monitoring-event-CALL"><code class="xref std std-monitoring-event docutils literal notranslate"><span class="pre">CALL</span></code></a> event.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113964">gh-113964</a>: Starting new threads and process creation through
<a class="reference internal" href="../library/os.html#os.fork" title="os.fork"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fork()</span></code></a> are now only prevented once all non-daemon threads exit.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116626">gh-116626</a>: Ensure <code class="docutils literal notranslate"><span class="pre">INSTRUMENTED_CALL_FUNCTION_EX</span></code> always emits
<a class="reference internal" href="../library/sys.monitoring.html#monitoring-event-CALL"><code class="xref std std-monitoring-event docutils literal notranslate"><span class="pre">CALL</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116554">gh-116554</a>: <code class="docutils literal notranslate"><span class="pre">list.sort()</span></code> now exploits more cases of partial ordering,
particularly those with long descending runs with sub-runs of equal
values. Those are recognized as single runs now (previously, each block of
repeated values caused a new run to be created).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114099">gh-114099</a>: Added a Loader that can discover extension modules in an
iOS-style Frameworks folder.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115775">gh-115775</a>: Compiler populates the new <code class="docutils literal notranslate"><span class="pre">__static_attributes__</span></code> field on a
class with the names of attributes of this class which are accessed
through self.X from any function in its body.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115776">gh-115776</a>: The array of values, the <code class="docutils literal notranslate"><span class="pre">PyDictValues</span></code> struct is now
embedded in the object during allocation. This provides better performance
in the common case, and does not degrade as much when the object’s
<code class="docutils literal notranslate"><span class="pre">__dict__</span></code> is materialized.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108362">gh-108362</a>: Implement an incremental cyclic garbage collector. By
collecting the old generation in increments, there is no need for a full
heap scan. This can hugely reduce maximum pause time for programs with
large heaps.</p>
<p>Reduce the number of generations from three to two. The old generation is
split into two spaces, “visited” and “pending”.</p>
<p>Collection happens in two steps:: * An increment is formed from the young
generation and a small part of the pending space. * This increment is
scanned and the survivors moved to the end of the visited space.</p>
<p>When the collecting space becomes empty, the two spaces are swapped.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109870">gh-109870</a>: Dataclasses now calls <a class="reference internal" href="../library/functions.html#exec" title="exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">exec()</span></code></a> once per dataclass, instead
of once per method being added. This can speed up dataclass creation by
up to 20%.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97901">gh-97901</a>: Mime type <code class="docutils literal notranslate"><span class="pre">text/rtf</span></code> is now supported by <a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24612">bpo-24612</a>: Improve the <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> that happens when ‘not’ appears
after an operator. Patch by Pablo Galindo</p></li>
</ul>
</section>
<section id="id124">
<h3>Library<a class="headerlink" href="#id124" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117648">gh-117648</a>: Improve performance of <a class="reference internal" href="../library/os.path.html#os.path.join" title="os.path.join"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.join()</span></code></a> and
<a class="reference internal" href="../library/os.path.html#os.path.expanduser" title="os.path.expanduser"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.expanduser()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117584">gh-117584</a>: Raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> for non-paths in
<a class="reference internal" href="../library/os.path.html#os.path.relpath" title="os.path.relpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">posixpath.relpath</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117467">gh-117467</a>: Preserve mailbox ownership when rewriting in
<a class="reference internal" href="../library/mailbox.html#mailbox.Mailbox.flush" title="mailbox.Mailbox.flush"><code class="xref py py-func docutils literal notranslate"><span class="pre">mailbox.mbox.flush</span></code></a>. Patch by Tony
Mountifield.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114848">gh-114848</a>: Raise <a class="reference internal" href="../library/exceptions.html#FileNotFoundError" title="FileNotFoundError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">FileNotFoundError</span></code></a> when <code class="docutils literal notranslate"><span class="pre">getcwd()</span></code> returns
‘(unreachable)’, which can happen on Linux >= 2.6.36 with glibc < 2.27.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117459">gh-117459</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.asyncio.run_coroutine_threadsafe()</span></code> now keeps the
traceback of <code class="xref py py-class docutils literal notranslate"><span class="pre">CancelledError</span></code>, <a class="reference internal" href="../library/exceptions.html#TimeoutError" title="TimeoutError"><code class="xref py py-class docutils literal notranslate"><span class="pre">TimeoutError</span></code></a> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">InvalidStateError</span></code> which are raised in the coroutine.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117381">gh-117381</a>: Fix error message for <code class="xref py py-func docutils literal notranslate"><span class="pre">ntpath.commonpath()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117337">gh-117337</a>: Deprecate undocumented <code class="xref py py-func docutils literal notranslate"><span class="pre">glob.glob0()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">glob.glob1()</span></code> functions. Use <a class="reference internal" href="../library/glob.html#glob.glob" title="glob.glob"><code class="xref py py-func docutils literal notranslate"><span class="pre">glob.glob()</span></code></a> and pass a directory
to its <em>root_dir</em> argument instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117349">gh-117349</a>: Optimise several functions in <a class="reference internal" href="../library/os.path.html#module-os.path" title="os.path: Operations on pathnames."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os.path</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117348">gh-117348</a>: Refactored <code class="xref py py-meth docutils literal notranslate"><span class="pre">configparser.RawConfigParser._read()</span></code> to reduce
cyclometric complexity and improve comprehensibility.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117335">gh-117335</a>: Raise TypeError for non-sequences for
<code class="xref py py-func docutils literal notranslate"><span class="pre">ntpath.commonpath()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/66449">gh-66449</a>: <a class="reference internal" href="../library/configparser.html#configparser.ConfigParser" title="configparser.ConfigParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">configparser.ConfigParser</span></code></a> now accepts unnamed sections
before named ones, if configured to do so.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88014">gh-88014</a>: In documentation of <a class="reference internal" href="../library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">gzip.GzipFile</span></code></a> in module gzip,
explain data type of optional constructor argument <em>mtime</em>, and recommend
<code class="docutils literal notranslate"><span class="pre">mtime</span> <span class="pre">=</span> <span class="pre">0</span></code> for generating deterministic streams.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117310">gh-117310</a>: Fixed an unlikely early & extra <code class="docutils literal notranslate"><span class="pre">Py_DECREF</span></code> triggered crash
in <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> when creating a new <code class="docutils literal notranslate"><span class="pre">_ssl._SSLContext</span></code> if CPython was
built implausibly such that the default cipher list is empty <strong>or</strong> the
SSL library it was linked against reports a failure from its C
<code class="docutils literal notranslate"><span class="pre">SSL_CTX_set_cipher_list()</span></code> API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117294">gh-117294</a>: A <code class="docutils literal notranslate"><span class="pre">DocTestCase</span></code> now reports as skipped if all examples in the
doctest are skipped.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98966">gh-98966</a>: In <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a>, raise a more informative message when
<code class="docutils literal notranslate"><span class="pre">stdout=STDOUT</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117225">gh-117225</a>: doctest: only print “and X failed” when non-zero, don’t
pluralise “1 items”. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117205">gh-117205</a>: Speed up <a class="reference internal" href="../library/compileall.html#compileall.compile_dir" title="compileall.compile_dir"><code class="xref py py-func docutils literal notranslate"><span class="pre">compileall.compile_dir()</span></code></a> by 20% when using
multiprocessing by increasing <code class="docutils literal notranslate"><span class="pre">chunksize</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117178">gh-117178</a>: Fix regression in lazy loading of self-referential modules,
introduced in <a class="reference external" href="https://github.com/python/cpython/issues/114781">gh-114781</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112383">gh-112383</a>: Fix <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> module’s handling of <code class="docutils literal notranslate"><span class="pre">ENTER_EXECUTOR</span></code>
instructions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117182">gh-117182</a>: Lazy-loading of modules that modify their own <code class="docutils literal notranslate"><span class="pre">__class__</span></code> no
longer reverts the <code class="docutils literal notranslate"><span class="pre">__class__</span></code> to <a class="reference internal" href="../library/types.html#types.ModuleType" title="types.ModuleType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.ModuleType</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117084">gh-117084</a>: Fix <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a> extraction for directory entries with the
name containing backslashes on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117114">gh-117114</a>: Make <a class="reference internal" href="../library/os.path.html#os.path.isdevdrive" title="os.path.isdevdrive"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.isdevdrive()</span></code></a> available on all platforms. For
those that do not offer Dev Drives, it will always return <code class="docutils literal notranslate"><span class="pre">False</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117110">gh-117110</a>: Fix a bug that prevents subclasses of <a class="reference internal" href="../library/typing.html#typing.Any" title="typing.Any"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Any</span></code></a> to be
instantiated with arguments. Patch by Chris Fu.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109653">gh-109653</a>: Deferred select imports in importlib.metadata and
importlib.resources for a 14% speedup.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/70647">gh-70647</a>: Start the deprecation period for the current behavior of
<a class="reference internal" href="../library/datetime.html#datetime.datetime.strptime" title="datetime.datetime.strptime"><code class="xref py py-func docutils literal notranslate"><span class="pre">datetime.datetime.strptime()</span></code></a> and <a class="reference internal" href="../library/time.html#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strptime()</span></code></a> which always
fails to parse a date string with a <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> involving a day of
month such as <code class="docutils literal notranslate"><span class="pre">strptime("02-29",</span> <span class="pre">"%m-%d")</span></code> when a year is <strong>not</strong>
specified and the date happen to be February 29th. This should help avoid
users finding new bugs every four years due to a natural mistaken
assumption about the API when parsing partial date values.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116987">gh-116987</a>: Fixed <code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.findsource()</span></code> for class code objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114099">gh-114099</a>: Modify standard library to allow for iOS platform differences.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90872">gh-90872</a>: On Windows, <a class="reference internal" href="../library/subprocess.html#subprocess.Popen.wait" title="subprocess.Popen.wait"><code class="xref py py-meth docutils literal notranslate"><span class="pre">subprocess.Popen.wait()</span></code></a> no longer calls
<code class="docutils literal notranslate"><span class="pre">WaitForSingleObject()</span></code> with a negative timeout: pass <code class="docutils literal notranslate"><span class="pre">0</span></code> ms if the
timeout is negative. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116957">gh-116957</a>: configparser: Don’t leave ConfigParser values in an invalid
state (stored as a list instead of a str) after an earlier read raised
DuplicateSectionError or DuplicateOptionError.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115538">gh-115538</a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">_io.WindowsConsoleIO</span></code> now emit a warning if a boolean
value is passed as a filedescriptor argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90095">gh-90095</a>: Ignore empty lines and comments in <code class="docutils literal notranslate"><span class="pre">.pdbrc</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106531">gh-106531</a>: Refreshed zipfile._path from <a class="reference external" href="https://zipp.readthedocs.io/en/latest/history.html#v3-18-0">zipp 3.18</a>, providing
better compatibility for PyPy, better glob performance for deeply nested
zipfiles, and providing internal access to <code class="docutils literal notranslate"><span class="pre">CompleteDirs.inject</span></code> for use
in other tests (like importlib.resources).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/63207">gh-63207</a>: On Windows, <a class="reference internal" href="../library/time.html#time.time" title="time.time"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.time()</span></code></a> now uses the
<code class="docutils literal notranslate"><span class="pre">GetSystemTimePreciseAsFileTime()</span></code> clock to have a resolution better
than 1 us, instead of the <code class="docutils literal notranslate"><span class="pre">GetSystemTimeAsFileTime()</span></code> clock which has a
resolution of 15.6 ms. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116764">gh-116764</a>: Restore support of <code class="docutils literal notranslate"><span class="pre">None</span></code> and other false values in
<a class="reference internal" href="../library/urllib.parse.html#module-urllib.parse" title="urllib.parse: Parse URLs into or assemble them from components."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.parse</span></code></a> functions <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.parse_qs" title="urllib.parse.parse_qs"><code class="xref py py-func docutils literal notranslate"><span class="pre">parse_qs()</span></code></a> and
<a class="reference internal" href="../library/urllib.parse.html#urllib.parse.parse_qsl" title="urllib.parse.parse_qsl"><code class="xref py py-func docutils literal notranslate"><span class="pre">parse_qsl()</span></code></a>. Also, they now raise a TypeError for
non-zero integers and non-empty sequences.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116811">gh-116811</a>: In <code class="docutils literal notranslate"><span class="pre">PathFinder.invalidate_caches</span></code>, delegate to
<code class="docutils literal notranslate"><span class="pre">MetadataPathFinder.invalidate_caches</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116647">gh-116647</a>: Fix recursive child in dataclasses</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113171">gh-113171</a>: Fixed various false positives and false negatives in</p>
<ul class="simple">
<li><p><a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv4Address.is_private" title="ipaddress.IPv4Address.is_private"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ipaddress.IPv4Address.is_private</span></code></a> (see these docs for details)</p></li>
<li><p><a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv4Address.is_global" title="ipaddress.IPv4Address.is_global"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ipaddress.IPv4Address.is_global</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv6Address.is_private" title="ipaddress.IPv6Address.is_private"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ipaddress.IPv6Address.is_private</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv6Address.is_global" title="ipaddress.IPv6Address.is_global"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ipaddress.IPv6Address.is_global</span></code></a></p></li>
</ul>
<p>Also in the corresponding <a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv4Network" title="ipaddress.IPv4Network"><code class="xref py py-class docutils literal notranslate"><span class="pre">ipaddress.IPv4Network</span></code></a> and
<a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv6Network" title="ipaddress.IPv6Network"><code class="xref py py-class docutils literal notranslate"><span class="pre">ipaddress.IPv6Network</span></code></a> attributes.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/63283">gh-63283</a>: In <a class="reference internal" href="../library/codecs.html#module-encodings.idna" title="encodings.idna: Internationalized Domain Names implementation"><code class="xref py py-mod docutils literal notranslate"><span class="pre">encodings.idna</span></code></a>, any capitalization of the ACE prefix
(<code class="docutils literal notranslate"><span class="pre">xn--</span></code>) is now acceptable. Patch by Pepijn de Vos and Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71042">gh-71042</a>: Add <a class="reference internal" href="../library/platform.html#platform.android_ver" title="platform.android_ver"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.android_ver()</span></code></a>, which provides device and OS
information on Android.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/73468">gh-73468</a>: Added new <a class="reference internal" href="../library/math.html#math.fma" title="math.fma"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.fma()</span></code></a> function, wrapping C99’s <code class="docutils literal notranslate"><span class="pre">fma()</span></code>
operation: fused multiply-add function. Patch by Mark Dickinson and Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116608">gh-116608</a>: The <a class="reference internal" href="../library/importlib.resources.html#module-importlib.resources" title="importlib.resources: Package resource reading, opening, and access"><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib.resources</span></code></a> functions
<a class="reference internal" href="../library/importlib.resources.html#importlib.resources.is_resource" title="importlib.resources.is_resource"><code class="xref py py-func docutils literal notranslate"><span class="pre">is_resource()</span></code></a>,
<a class="reference internal" href="../library/importlib.resources.html#importlib.resources.open_binary" title="importlib.resources.open_binary"><code class="xref py py-func docutils literal notranslate"><span class="pre">open_binary()</span></code></a>,
<a class="reference internal" href="../library/importlib.resources.html#importlib.resources.open_text" title="importlib.resources.open_text"><code class="xref py py-func docutils literal notranslate"><span class="pre">open_text()</span></code></a>, <a class="reference internal" href="../library/importlib.resources.html#importlib.resources.path" title="importlib.resources.path"><code class="xref py py-func docutils literal notranslate"><span class="pre">path()</span></code></a>,
<a class="reference internal" href="../library/importlib.resources.html#importlib.resources.read_binary" title="importlib.resources.read_binary"><code class="xref py py-func docutils literal notranslate"><span class="pre">read_binary()</span></code></a>, and
<a class="reference internal" href="../library/importlib.resources.html#importlib.resources.read_text" title="importlib.resources.read_text"><code class="xref py py-func docutils literal notranslate"><span class="pre">read_text()</span></code></a> are un-deprecated, and support
subdirectories via multiple positional arguments. The
<a class="reference internal" href="../library/importlib.resources.html#importlib.resources.contents" title="importlib.resources.contents"><code class="xref py py-func docutils literal notranslate"><span class="pre">contents()</span></code></a> function also allows subdirectories,
but remains deprecated.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116484">gh-116484</a>: Change automatically generated <code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.Checkbutton</span></code>
widget names to avoid collisions with automatically generated
<code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.ttk.Checkbutton</span></code> widget names within the same parent
widget.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114314">gh-114314</a>: In <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a>, ctype data is now stored in type objects
directly rather than in a dict subclass. This is an internal change that
should not affect usage.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116401">gh-116401</a>: Fix blocking <a class="reference internal" href="../library/os.html#os.fwalk" title="os.fwalk"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fwalk()</span></code></a> and <a class="reference internal" href="../library/shutil.html#shutil.rmtree" title="shutil.rmtree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code></a> on
opening named pipe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71052">gh-71052</a>: Implement <a class="reference internal" href="../library/ctypes.html#ctypes.util.find_library" title="ctypes.util.find_library"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.util.find_library()</span></code></a> on Android.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90535">gh-90535</a>: Fix support of <em>interval</em> values > 1 in
<code class="xref py py-class docutils literal notranslate"><span class="pre">logging.TimedRotatingFileHandler</span></code> for <code class="docutils literal notranslate"><span class="pre">when='MIDNIGHT'</span></code> and
<code class="docutils literal notranslate"><span class="pre">when='Wx'</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113308">gh-113308</a>: Remove some internal protected parts from <a class="reference internal" href="../library/uuid.html#module-uuid" title="uuid: UUID objects (universally unique identifiers) according to RFC 9562"><code class="xref py py-mod docutils literal notranslate"><span class="pre">uuid</span></code></a>:
<code class="docutils literal notranslate"><span class="pre">_has_uuid_generate_time_safe</span></code>, <code class="docutils literal notranslate"><span class="pre">_netbios_getnode</span></code>,
<code class="docutils literal notranslate"><span class="pre">_ipconfig_getnode</span></code>, and <code class="docutils literal notranslate"><span class="pre">_load_system_functions</span></code>. They were unused.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115627">gh-115627</a>: Fix the <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> module error handling of connection
terminate by peer. It now throws an OSError with the appropriate error
code instead of an EOFError.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114847">gh-114847</a>: Speed up <a class="reference internal" href="../library/os.path.html#os.path.realpath" title="os.path.realpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.realpath()</span></code></a> on non-Windows platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114271">gh-114271</a>: Fix a race in <code class="docutils literal notranslate"><span class="pre">threading.Thread.join()</span></code>.</p>
<p><code class="docutils literal notranslate"><span class="pre">threading._MainThread</span></code> now always represents the main thread of the
main interpreter.</p>
<p><code class="docutils literal notranslate"><span class="pre">PyThreadState.on_delete</span></code> and <code class="docutils literal notranslate"><span class="pre">PyThreadState.on_delete_data</span></code> have been
removed.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113538">gh-113538</a>: Add <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.Server.close_clients" title="asyncio.Server.close_clients"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Server.close_clients()</span></code></a> and
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.Server.abort_clients" title="asyncio.Server.abort_clients"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Server.abort_clients()</span></code></a> methods which allow to more
forcefully close an asyncio server.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85287">gh-85287</a>: Changes Unicode codecs to return UnicodeEncodeError or
UnicodeDecodeError, rather than just UnicodeError.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113548">gh-113548</a>: <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> now allows CLI arguments to <code class="docutils literal notranslate"><span class="pre">pdb</span> <span class="pre">-m</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112948">gh-112948</a>: Make completion of <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> similar to Python REPL</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105866">gh-105866</a>: Fixed <code class="docutils literal notranslate"><span class="pre">_get_slots</span></code> bug which caused error when defining
dataclasses with slots and a weakref_slot.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96471">gh-96471</a>: Add <a class="reference internal" href="../library/asyncio-queue.html#asyncio.Queue" title="asyncio.Queue"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Queue</span></code></a> termination with
<a class="reference internal" href="../library/asyncio-queue.html#asyncio.Queue.shutdown" title="asyncio.Queue.shutdown"><code class="xref py py-meth docutils literal notranslate"><span class="pre">shutdown()</span></code></a> method.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89739">gh-89739</a>: The <a class="reference internal" href="../library/zipimport.html#module-zipimport" title="zipimport: Support for importing Python modules from ZIP archives."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipimport</span></code></a> module can now read ZIP64 files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33533">bpo-33533</a>: <a class="reference internal" href="../library/asyncio-task.html#asyncio.as_completed" title="asyncio.as_completed"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.as_completed()</span></code></a> now returns an object that is both
an asynchronous iterator and plain iterator. The new asynchronous
iteration pattern allows for easier correlation between prior tasks and
their completed results. This is a closer match to
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.as_completed" title="concurrent.futures.as_completed"><code class="xref py py-func docutils literal notranslate"><span class="pre">concurrent.futures.as_completed()</span></code></a>’s iteration pattern. Patch by
Justin Arthur.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27578">bpo-27578</a>: <a class="reference internal" href="../library/inspect.html#inspect.getsource" title="inspect.getsource"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getsource()</span></code></a> (and related functions) work with
empty module files, returning <code class="docutils literal notranslate"><span class="pre">'\n'</span></code> (or reasonable equivalent) instead
of raising <code class="docutils literal notranslate"><span class="pre">OSError</span></code>. Patch by Kernc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37141">bpo-37141</a>: Accept an iterable of separators in
<a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamReader.readuntil" title="asyncio.StreamReader.readuntil"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.StreamReader.readuntil()</span></code></a>, stopping when one of them is
encountered.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/66543">gh-66543</a>: Make <a class="reference internal" href="../library/mimetypes.html#mimetypes.guess_type" title="mimetypes.guess_type"><code class="xref py py-func docutils literal notranslate"><span class="pre">mimetypes.guess_type()</span></code></a> properly parsing of URLs with
only a host name, URLs containing fragment or query, and filenames with
only a UNC sharepoint on Windows. Based on patch by Dong-hee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15010">bpo-15010</a>: <a class="reference internal" href="../library/unittest.html#unittest.TestLoader.discover" title="unittest.TestLoader.discover"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestLoader.discover()</span></code></a> now saves the original
value of <code class="docutils literal notranslate"><span class="pre">unittest.TestLoader._top_level_dir</span></code> and restores it at the end
of the call.</p></li>
</ul>
</section>
<section id="id125">
<h3>Documentation<a class="headerlink" href="#id125" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115977">gh-115977</a>: Remove compatibility references to Emscripten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114099">gh-114099</a>: Add an iOS platform guide, and flag modules not available on
iOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91565">gh-91565</a>: Changes to documentation files and config outputs to reflect the
new location for reporting bugs - i.e. GitHub rather than bugs.python.org.</p></li>
</ul>
</section>
<section id="id126">
<h3>Tests<a class="headerlink" href="#id126" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83434">gh-83434</a>: Disable JUnit XML output (<code class="docutils literal notranslate"><span class="pre">--junit-xml=FILE</span></code> command line
option) in regrtest when hunting for reference leaks (<code class="docutils literal notranslate"><span class="pre">-R</span></code> option).
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117187">gh-117187</a>: Fix XML tests for vanilla Expat <2.6.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116333">gh-116333</a>: Tests of TLS related things (error codes, etc) were updated to
be more lenient about specific error message strings and behaviors as seen
in the BoringSSL and AWS-LC forks of OpenSSL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117089">gh-117089</a>: Consolidated tests for importlib.metadata in their own
<code class="docutils literal notranslate"><span class="pre">metadata</span></code> package.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115979">gh-115979</a>: Update test_importlib so that it passes under WASI SDK 21.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112536">gh-112536</a>: Add –tsan to test.regrtest for running TSAN tests in
reasonable execution times. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116307">gh-116307</a>: Added import helper <code class="docutils literal notranslate"><span class="pre">isolated_modules</span></code> as <code class="docutils literal notranslate"><span class="pre">CleanImport</span></code>
does not remove modules imported during the context. Use it in
importlib.resources tests to avoid leaving <code class="docutils literal notranslate"><span class="pre">mod</span></code> around to impede
importlib.metadata tests.</p></li>
</ul>
</section>
<section id="id127">
<h3>Build<a class="headerlink" href="#id127" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114736">gh-114736</a>: Have WASI builds use WASI SDK 21.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115983">gh-115983</a>: Skip building test modules that must be built as shared under
WASI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71052">gh-71052</a>: Add Android build script and instructions.</p></li>
</ul>
</section>
<section id="id128">
<h3>Windows<a class="headerlink" href="#id128" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117267">gh-117267</a>: Ensure <code class="docutils literal notranslate"><span class="pre">DirEntry.stat().st_ctime</span></code> behaves consistently with
<a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a> during the deprecation period of <code class="docutils literal notranslate"><span class="pre">st_ctime</span></code> by
containing the same value as <code class="docutils literal notranslate"><span class="pre">st_birthtime</span></code>. After the deprecation
period, <code class="docutils literal notranslate"><span class="pre">st_ctime</span></code> will be the metadata change time (or unavailable
through <code class="docutils literal notranslate"><span class="pre">DirEntry</span></code>), and only <code class="docutils literal notranslate"><span class="pre">st_birthtime</span></code> will contain the creation
time.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116195">gh-116195</a>: Improves performance of <a class="reference internal" href="../library/os.html#os.getppid" title="os.getppid"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.getppid()</span></code></a> by using an
alternate system API when available. Contributed by vxiiduu.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88494">gh-88494</a>: On Windows, <a class="reference internal" href="../library/time.html#time.monotonic" title="time.monotonic"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.monotonic()</span></code></a> now uses the
<code class="docutils literal notranslate"><span class="pre">QueryPerformanceCounter()</span></code> clock to have a resolution better than 1 us,
instead of the <code class="docutils literal notranslate"><span class="pre">GetTickCount64()</span></code> clock which has a resolution of 15.6
ms. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116773">gh-116773</a>: Fix instances of <code class="docutils literal notranslate"><span class="pre"><_overlapped.Overlapped</span> <span class="pre">object</span> <span class="pre">at</span> <span class="pre">0xXXX></span>
<span class="pre">still</span> <span class="pre">has</span> <span class="pre">pending</span> <span class="pre">operation</span> <span class="pre">at</span> <span class="pre">deallocation,</span> <span class="pre">the</span> <span class="pre">process</span> <span class="pre">may</span> <span class="pre">crash</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91227">gh-91227</a>: Fix the asyncio ProactorEventLoop implementation so that sending
a datagram to an address that is not listening does not prevent receiving
any more datagrams.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115119">gh-115119</a>: Switched from vendored <code class="docutils literal notranslate"><span class="pre">libmpdecimal</span></code> code to a
separately-hosted external package in the <code class="docutils literal notranslate"><span class="pre">cpython-source-deps</span></code>
repository when building the <code class="docutils literal notranslate"><span class="pre">_decimal</span></code> module.</p></li>
</ul>
</section>
<section id="id129">
<h3>C API<a class="headerlink" href="#id129" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117642">gh-117642</a>: Fix <span class="target" id="index-71"></span><a class="pep reference external" href="https://peps.python.org/pep-0737/"><strong>PEP 737</strong></a> implementation for <code class="docutils literal notranslate"><span class="pre">%#T</span></code> and <code class="docutils literal notranslate"><span class="pre">%#N</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87193">gh-87193</a>: <a class="reference internal" href="../c-api/bytes.html#c._PyBytes_Resize" title="_PyBytes_Resize"><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyBytes_Resize()</span></code></a> can now be called for bytes objects
with reference count > 1, including 1-byte bytes objects. It creates a new
bytes object and destroys the old one if it has reference count > 1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/117021">gh-117021</a>: Fix integer overflow in <code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsPid()</span></code> on non-Windows
64-bit platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115756">gh-115756</a>: <code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_GetFirstFree()</span></code> is an ustable API now and has
been renamed to <a class="reference internal" href="../c-api/code.html#c.PyUnstable_Code_GetFirstFree" title="PyUnstable_Code_GetFirstFree"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_Code_GetFirstFree()</span></code></a>. (Contributed by
Bogdan Romanyuk in <a class="reference external" href="https://github.com/python/cpython/issues/115781">gh-115781</a>)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116869">gh-116869</a>: Add <code class="docutils literal notranslate"><span class="pre">test_cext</span></code> test: build a C extension to check if the
Python C API emits C compiler warnings. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116869">gh-116869</a>: Make the C API compatible with
<code class="docutils literal notranslate"><span class="pre">-Werror=declaration-after-statement</span></code> compiler flag again. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116936">gh-116936</a>: Add <a class="reference internal" href="../c-api/type.html#c.PyType_GetModuleByDef" title="PyType_GetModuleByDef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetModuleByDef()</span></code></a> to the limited C API. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116809">gh-116809</a>: Restore removed private <code class="docutils literal notranslate"><span class="pre">_PyErr_ChainExceptions1()</span></code> function.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115754">gh-115754</a>: In the limited C API version 3.13, getting <code class="docutils literal notranslate"><span class="pre">Py_None</span></code>,
<code class="docutils literal notranslate"><span class="pre">Py_False</span></code>, <code class="docutils literal notranslate"><span class="pre">Py_True</span></code>, <code class="docutils literal notranslate"><span class="pre">Py_Ellipsis</span></code> and <code class="docutils literal notranslate"><span class="pre">Py_NotImplemented</span></code>
singletons is now implemented as function calls at the stable ABI level to
hide implementation details. Getting these constants still return borrowed
references. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115754">gh-115754</a>: Add <a class="reference internal" href="../c-api/object.html#c.Py_GetConstant" title="Py_GetConstant"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetConstant()</span></code></a> and
<a class="reference internal" href="../c-api/object.html#c.Py_GetConstantBorrowed" title="Py_GetConstantBorrowed"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetConstantBorrowed()</span></code></a> functions to get constants. For example,
<code class="docutils literal notranslate"><span class="pre">Py_GetConstant(Py_CONSTANT_ZERO)</span></code> returns a <a class="reference internal" href="../glossary.html#term-strong-reference"><span class="xref std std-term">strong reference</span></a> to
the constant zero. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111696">gh-111696</a>: Add support for <code class="docutils literal notranslate"><span class="pre">%T</span></code>, <code class="docutils literal notranslate"><span class="pre">%T#</span></code>, <code class="docutils literal notranslate"><span class="pre">%N</span></code> and <code class="docutils literal notranslate"><span class="pre">%N#</span></code> formats to
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_FromFormat" title="PyUnicode_FromFormat"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_FromFormat()</span></code></a>: format the fully qualified name of an
object type and of a type: call <a class="reference internal" href="../c-api/type.html#c.PyType_GetModuleName" title="PyType_GetModuleName"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetModuleName()</span></code></a>. See
<span class="target" id="index-72"></span><a class="pep reference external" href="https://peps.python.org/pep-0737/"><strong>PEP 737</strong></a> for more information. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111696">gh-111696</a>: Add <a class="reference internal" href="../c-api/type.html#c.PyType_GetModuleName" title="PyType_GetModuleName"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetModuleName()</span></code></a> function to get the type’s
module name. Equivalent to getting the <code class="docutils literal notranslate"><span class="pre">type.__module__</span></code> attribute.
Patch by Eric Snow and Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111696">gh-111696</a>: Add <a class="reference internal" href="../c-api/type.html#c.PyType_GetFullyQualifiedName" title="PyType_GetFullyQualifiedName"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetFullyQualifiedName()</span></code></a> function to get the
type’s fully qualified name. Equivalent to
<code class="docutils literal notranslate"><span class="pre">f"{type.__module__}.{type.__qualname__}"</span></code>, or <code class="docutils literal notranslate"><span class="pre">type.__qualname__</span></code> if
<code class="docutils literal notranslate"><span class="pre">type.__module__</span></code> is not a string or is equal to <code class="docutils literal notranslate"><span class="pre">"builtins"</span></code>. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85283">gh-85283</a>: The <code class="docutils literal notranslate"><span class="pre">fcntl</span></code>, <code class="docutils literal notranslate"><span class="pre">grp</span></code>, <code class="docutils literal notranslate"><span class="pre">pwd</span></code>, <code class="docutils literal notranslate"><span class="pre">termios</span></code>, <code class="docutils literal notranslate"><span class="pre">_statistics</span></code>
and <code class="docutils literal notranslate"><span class="pre">_testconsole</span></code> C extensions are now built with the <a class="reference internal" href="../c-api/stable.html#limited-c-api"><span class="std std-ref">limited C
API</span></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111140">gh-111140</a>: Add additional flags to <a class="reference internal" href="../c-api/long.html#c.PyLong_AsNativeBytes" title="PyLong_AsNativeBytes"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsNativeBytes()</span></code></a> and
<a class="reference internal" href="../c-api/long.html#c.PyLong_FromNativeBytes" title="PyLong_FromNativeBytes"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromNativeBytes()</span></code></a> to allow the caller to determine how to
handle edge cases around values that fill the entire buffer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113024">gh-113024</a>: Add <a class="reference internal" href="../c-api/hash.html#c.PyObject_GenericHash" title="PyObject_GenericHash"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GenericHash()</span></code></a> function.</p></li>
</ul>
</section>
</section>
<section id="python-3-13-0-alpha-5">
<h2>Python 3.13.0 alpha 5<a class="headerlink" href="#python-3-13-0-alpha-5" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2024-03-12</em></p>
<section id="id130">
<h3>Security<a class="headerlink" href="#id130" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115398">gh-115398</a>: Allow controlling Expat >=2.6.0 reparse deferral
(<span class="target" id="index-73"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2023-52425"><strong>CVE 2023-52425</strong></a>) by adding five new methods:</p>
<ul>
<li><p><a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParser.flush" title="xml.etree.ElementTree.XMLParser.flush"><code class="xref py py-meth docutils literal notranslate"><span class="pre">xml.etree.ElementTree.XMLParser.flush()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParser.flush" title="xml.etree.ElementTree.XMLPullParser.flush"><code class="xref py py-meth docutils literal notranslate"><span class="pre">xml.etree.ElementTree.XMLPullParser.flush()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/pyexpat.html#xml.parsers.expat.xmlparser.GetReparseDeferralEnabled" title="xml.parsers.expat.xmlparser.GetReparseDeferralEnabled"><code class="xref py py-meth docutils literal notranslate"><span class="pre">xml.parsers.expat.xmlparser.GetReparseDeferralEnabled()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/pyexpat.html#xml.parsers.expat.xmlparser.SetReparseDeferralEnabled" title="xml.parsers.expat.xmlparser.SetReparseDeferralEnabled"><code class="xref py py-meth docutils literal notranslate"><span class="pre">xml.parsers.expat.xmlparser.SetReparseDeferralEnabled()</span></code></a></p></li>
<li><p><code class="xref py py-meth docutils literal notranslate"><span class="pre">xml.sax.expatreader.ExpatParser.flush()</span></code></p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114572">gh-114572</a>: <a class="reference internal" href="../library/ssl.html#ssl.SSLContext.cert_store_stats" title="ssl.SSLContext.cert_store_stats"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.SSLContext.cert_store_stats()</span></code></a> and
<a class="reference internal" href="../library/ssl.html#ssl.SSLContext.get_ca_certs" title="ssl.SSLContext.get_ca_certs"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.SSLContext.get_ca_certs()</span></code></a> now correctly lock access to the
certificate store, when the <a class="reference internal" href="../library/ssl.html#ssl.SSLContext" title="ssl.SSLContext"><code class="xref py py-class docutils literal notranslate"><span class="pre">ssl.SSLContext</span></code></a> is shared across
multiple threads.</p></li>
</ul>
</section>
<section id="id131">
<h3>Core and Builtins<a class="headerlink" href="#id131" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116604">gh-116604</a>: Respect the status of the garbage collector when indirect calls
are made via <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_CheckSignals" title="PyErr_CheckSignals"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_CheckSignals()</span></code></a> and the evaluation breaker.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112087">gh-112087</a>: <a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> is now compatible with the implementation of
<span class="target" id="index-74"></span><a class="pep reference external" href="https://peps.python.org/pep-0703/"><strong>PEP 703</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116381">gh-116381</a>: Add specialization for <code class="docutils literal notranslate"><span class="pre">CONTAINS_OP</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116296">gh-116296</a>: Fix possible refleak in <code class="xref py py-meth docutils literal notranslate"><span class="pre">object.__reduce__()</span></code> internal
error handling.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115823">gh-115823</a>: Properly calculate error ranges in the parser when raising
<a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> exceptions caused by invalid byte sequences. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115778">gh-115778</a>: Add <code class="docutils literal notranslate"><span class="pre">tierN</span></code> annotation for instruction definition in
interpreter DSL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115733">gh-115733</a>: Fix crash when calling <code class="docutils literal notranslate"><span class="pre">next()</span></code> on exhausted list iterators.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115700">gh-115700</a>: The regen-cases build stage now works on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115347">gh-115347</a>: Fix bug where docstring was replaced by a redundant NOP when
Python is run with <code class="docutils literal notranslate"><span class="pre">-OO</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115323">gh-115323</a>: Make error message more meaningful for when
<a class="reference internal" href="../library/stdtypes.html#bytearray.extend" title="bytearray.extend"><code class="xref py py-meth docutils literal notranslate"><span class="pre">bytearray.extend()</span></code></a> is called with a <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112175">gh-112175</a>: Every <code class="docutils literal notranslate"><span class="pre">PyThreadState</span></code> now has its own <code class="docutils literal notranslate"><span class="pre">eval_breaker</span></code>,
allowing specific threads to be interrupted.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115154">gh-115154</a>: Fix a bug that was causing the <a class="reference internal" href="../library/tokenize.html#tokenize.untokenize" title="tokenize.untokenize"><code class="xref py py-func docutils literal notranslate"><span class="pre">tokenize.untokenize()</span></code></a>
function to handle unicode named literals incorrectly. Patch by Pablo
Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112433">gh-112433</a>: Add ability to force alignment of <a class="reference internal" href="../library/ctypes.html#ctypes.Structure" title="ctypes.Structure"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes.Structure</span></code></a> by
way of the new <code class="docutils literal notranslate"><span class="pre">_align_</span></code> attribute on the class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104090">gh-104090</a>: The multiprocessing resource tracker now exits with non-zero
status code if a resource leak was detected. It still exits with status
code 0 otherwise.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105858">gh-105858</a>: Improve the constructors for <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> nodes. Arguments of
list types now default to an empty list if omitted, and optional fields
default to <code class="docutils literal notranslate"><span class="pre">None</span></code>. AST nodes now have an <code class="docutils literal notranslate"><span class="pre">__annotations__</span></code> attribute
with the expected types of their attributes. Passing unrecognized extra
arguments to AST nodes is deprecated and will become an error in Python
3.15. Omitting a required argument to an AST node is deprecated and will
become an error in Python 3.15. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101860">gh-101860</a>: Expose <code class="docutils literal notranslate"><span class="pre">__name__</span></code> attribute on property.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96497">gh-96497</a>: Fix incorrect resolution of mangled class variables used in
assignment expressions in comprehensions.</p></li>
</ul>
</section>
<section id="id132">
<h3>Library<a class="headerlink" href="#id132" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116600">gh-116600</a>: Fix <a class="reference internal" href="../library/functions.html#repr" title="repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">repr()</span></code></a> for global <a class="reference internal" href="../library/enum.html#enum.Flag" title="enum.Flag"><code class="xref py py-class docutils literal notranslate"><span class="pre">Flag</span></code></a> members.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116349">gh-116349</a>: <a class="reference internal" href="../library/platform.html#platform.java_ver" title="platform.java_ver"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.java_ver()</span></code></a> is deprecated and will be removed in
3.15. It was largely untested, had a confusing API, and was only useful
for Jython support.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116143">gh-116143</a>: Fix a race in pydoc <code class="docutils literal notranslate"><span class="pre">_start_server</span></code>, eliminating a window in
which <code class="docutils literal notranslate"><span class="pre">_start_server</span></code> can return a thread that is “serving” but without
a <code class="docutils literal notranslate"><span class="pre">docserver</span></code> set.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116127">gh-116127</a>: <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a>: implement <span class="target" id="index-75"></span><a class="pep reference external" href="https://peps.python.org/pep-0705/"><strong>PEP 705</strong></a> which adds
<a class="reference internal" href="../library/typing.html#typing.ReadOnly" title="typing.ReadOnly"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.ReadOnly</span></code></a> support to <a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypedDict</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116325">gh-116325</a>: <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a>: raise <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> instead of
<a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> on forward references as empty strings.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115957">gh-115957</a>: When <code class="docutils literal notranslate"><span class="pre">asyncio.TaskGroup.create_task</span></code> is called on an inactive
<code class="docutils literal notranslate"><span class="pre">asyncio.TaskGroup</span></code>, the given coroutine will be closed (which prevents
a <code class="docutils literal notranslate"><span class="pre">RuntimeWarning</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115978">gh-115978</a>: Disable preadv(), readv(), pwritev(), and writev() on WASI.</p>
<p>Under wasmtime for WASI 0.2, these functions don’t pass test_posix
(<a class="reference external" href="https://github.com/bytecodealliance/wasmtime/issues/7830">https://github.com/bytecodealliance/wasmtime/issues/7830</a>).</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88352">gh-88352</a>: Fix the computation of the next rollover time in the
<code class="xref py py-class docutils literal notranslate"><span class="pre">logging.TimedRotatingFileHandler</span></code> handler.
<code class="xref py py-meth docutils literal notranslate"><span class="pre">computeRollover()</span></code> now always returns a timestamp larger than the
specified time and works correctly during the DST change.
<code class="xref py py-meth docutils literal notranslate"><span class="pre">doRollover()</span></code> no longer overwrite the already rolled over file,
saving from data loss when run at midnight or during repeated time at the
DST change.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87115">gh-87115</a>: Set <code class="docutils literal notranslate"><span class="pre">__main__.__spec__</span></code> to <code class="docutils literal notranslate"><span class="pre">None</span></code> when running a script with
<a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/76511">gh-76511</a>: Fix UnicodeEncodeError in <code class="xref py py-meth docutils literal notranslate"><span class="pre">email.Message.as_string()</span></code> that
results when a message that claims to be in the ascii character set
actually has non-ascii characters. Non-ascii characters are now replaced
with the U+FFFD replacement character, like in the <code class="docutils literal notranslate"><span class="pre">replace</span></code> error
handler.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89547">gh-89547</a>: Add support for nested typing special forms like
Final[ClassVar[int]].</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65824">gh-65824</a>: Improve the <code class="docutils literal notranslate"><span class="pre">less</span></code> prompt in <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116040">gh-116040</a>: [Enum] fix by-value calls when second value is falsey; e.g.
Cardinal(1, 0)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115821">gh-115821</a>: [Enum] Improve error message when calling super().__new__() in
custom __new__.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85644">gh-85644</a>: Use the <code class="docutils literal notranslate"><span class="pre">XDG_CURRENT_DESKTOP</span></code> environment variable in
<a class="reference internal" href="../library/webbrowser.html#module-webbrowser" title="webbrowser: Easy-to-use controller for web browsers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">webbrowser</span></code></a> to check desktop. Prefer it to the deprecated
<code class="docutils literal notranslate"><span class="pre">GNOME_DESKTOP_SESSION_ID</span></code> for GNOME detection.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/75988">gh-75988</a>: Fixed <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.create_autospec" title="unittest.mock.create_autospec"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.create_autospec()</span></code></a> to pass the call
through to the wrapped object to return the real result.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115881">gh-115881</a>: Fix issue where <a class="reference internal" href="../library/ast.html#ast.parse" title="ast.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.parse()</span></code></a> would incorrectly flag
conditional context managers (such as <code class="docutils literal notranslate"><span class="pre">with</span> <span class="pre">(x()</span> <span class="pre">if</span> <span class="pre">y</span> <span class="pre">else</span> <span class="pre">z()):</span> <span class="pre">...</span></code>)
as invalid syntax if <code class="docutils literal notranslate"><span class="pre">feature_version=(3,</span> <span class="pre">8)</span></code> was passed. This reverts
changes to the grammar made as part of <a class="reference external" href="https://github.com/python/cpython/issues/94949">gh-94949</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115886">gh-115886</a>: Fix silent truncation of the name with an embedded null
character in <a class="reference internal" href="../library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.SharedMemory" title="multiprocessing.shared_memory.SharedMemory"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.shared_memory.SharedMemory</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115532">gh-115532</a>: Add kernel density estimation to the statistics module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115714">gh-115714</a>: On WASI, the <a class="reference internal" href="../library/time.html#module-time" title="time: Time access and conversions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">time</span></code></a> module no longer get process time
using <code class="docutils literal notranslate"><span class="pre">times()</span></code> or <code class="docutils literal notranslate"><span class="pre">CLOCK_PROCESS_CPUTIME_ID</span></code>, system API is that is
unreliable and is likely to be removed from WASI. The affected clock
functions fall back to calling <code class="docutils literal notranslate"><span class="pre">clock()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115809">gh-115809</a>: Improve algorithm for computing which rolled-over log files to
delete in <code class="xref py py-class docutils literal notranslate"><span class="pre">logging.TimedRotatingFileHandler</span></code>. It is now reliable
for handlers without <code class="docutils literal notranslate"><span class="pre">namer</span></code> and with arbitrary deterministic <code class="docutils literal notranslate"><span class="pre">namer</span></code>
that leaves the datetime part in the file name unmodified.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74668">gh-74668</a>: <a class="reference internal" href="../library/urllib.parse.html#module-urllib.parse" title="urllib.parse: Parse URLs into or assemble them from components."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.parse</span></code></a> functions <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.parse_qs" title="urllib.parse.parse_qs"><code class="xref py py-func docutils literal notranslate"><span class="pre">parse_qs()</span></code></a> and
<a class="reference internal" href="../library/urllib.parse.html#urllib.parse.parse_qsl" title="urllib.parse.parse_qsl"><code class="xref py py-func docutils literal notranslate"><span class="pre">parse_qsl()</span></code></a> now support bytes arguments containing raw
and percent-encoded non-ASCII data.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/67044">gh-67044</a>: <a class="reference internal" href="../library/csv.html#csv.writer" title="csv.writer"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.writer()</span></code></a> now always quotes or escapes <code class="docutils literal notranslate"><span class="pre">'\r'</span></code> and
<code class="docutils literal notranslate"><span class="pre">'\n'</span></code>, regardless of <em>lineterminator</em> value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115712">gh-115712</a>: Restore support of space delimiter with
<code class="docutils literal notranslate"><span class="pre">skipinitialspace=True</span></code> in <a class="reference internal" href="../library/csv.html#module-csv" title="csv: Write and read tabular data to and from delimited files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code></a>. <a class="reference internal" href="../library/csv.html#csv.writer" title="csv.writer"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.writer()</span></code></a> now quotes
empty fields if delimiter is a space and skipinitialspace is true and
raises exception if quoting is not possible.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112364">gh-112364</a>: Fixed <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> to handle format_spec with <code class="docutils literal notranslate"><span class="pre">"</span></code>,
<code class="docutils literal notranslate"><span class="pre">'</span></code> or <code class="docutils literal notranslate"><span class="pre">\\</span></code>. Patched by Frank Hoffmann.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112997">gh-112997</a>: Stop logging potentially sensitive callback arguments in
<a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> unless debug mode is active.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114914">gh-114914</a>: Fix an issue where an abandoned <code class="xref py py-class docutils literal notranslate"><span class="pre">StreamWriter</span></code> would not
be garbage collected.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111358">gh-111358</a>: Fix a bug in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.BaseEventLoop.shutdown_default_executor()</span></code> to ensure the
timeout passed to the coroutine behaves as expected.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115618">gh-115618</a>: Fix improper decreasing the reference count for <code class="docutils literal notranslate"><span class="pre">None</span></code>
argument in <a class="reference internal" href="../library/functions.html#property" title="property"><code class="xref py py-class docutils literal notranslate"><span class="pre">property</span></code></a> methods <a class="reference internal" href="../library/functions.html#property.getter" title="property.getter"><code class="xref py py-meth docutils literal notranslate"><span class="pre">getter()</span></code></a>,
<a class="reference internal" href="../library/functions.html#property.setter" title="property.setter"><code class="xref py py-meth docutils literal notranslate"><span class="pre">setter()</span></code></a> and <a class="reference internal" href="../library/functions.html#property.deleter" title="property.deleter"><code class="xref py py-meth docutils literal notranslate"><span class="pre">deleter()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112720">gh-112720</a>: Refactor <code class="xref py py-class docutils literal notranslate"><span class="pre">dis.ArgResolver</span></code> to make it possible to
subclass and change the way jump args are interpreted.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112006">gh-112006</a>: Fix <a class="reference internal" href="../library/inspect.html#inspect.unwrap" title="inspect.unwrap"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.unwrap()</span></code></a> for types with the <code class="docutils literal notranslate"><span class="pre">__wrapper__</span></code>
data descriptor. Fix <a class="reference internal" href="../library/inspect.html#inspect.Signature.from_callable" title="inspect.Signature.from_callable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">inspect.Signature.from_callable()</span></code></a> for builtins
<a class="reference internal" href="../library/functions.html#classmethod" title="classmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">classmethod()</span></code></a> and <a class="reference internal" href="../library/functions.html#staticmethod" title="staticmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">staticmethod()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101293">gh-101293</a>: Support callables with the <code class="docutils literal notranslate"><span class="pre">__call__()</span></code> method and types with
<code class="docutils literal notranslate"><span class="pre">__new__()</span></code> and <code class="docutils literal notranslate"><span class="pre">__init__()</span></code> methods set to class methods, static
methods, bound methods, partial functions, and other types of methods and
descriptors in <a class="reference internal" href="../library/inspect.html#inspect.Signature.from_callable" title="inspect.Signature.from_callable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">inspect.Signature.from_callable()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103092">gh-103092</a>: Isolate <code class="xref py py-mod docutils literal notranslate"><span class="pre">_lsprof</span></code> (apply <span class="target" id="index-76"></span><a class="pep reference external" href="https://peps.python.org/pep-0687/"><strong>PEP 687</strong></a>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113942">gh-113942</a>: <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a> no longer skips global functions implemented as
builtin methods, such as <code class="xref py py-class docutils literal notranslate"><span class="pre">MethodDescriptorType</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">WrapperDescriptorType</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115256">gh-115256</a>: Added DeprecationWarning when accessing the tarfile attribute
of TarInfo objects. The attribute is never used internally and is only
attached to TarInfos when the tarfile is opened in write-mode, not
read-mode. The attribute creates an unnecessary reference cycle which may
cause corruption when not closing the handle after writing a tarfile.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115197">gh-115197</a>: <code class="docutils literal notranslate"><span class="pre">urllib.request</span></code> no longer resolves the hostname before
checking it against the system’s proxy bypass list on macOS and Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113812">gh-113812</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">DatagramTransport.sendto()</span></code> will now send zero-length
datagrams if called with an empty bytes object. The transport flow control
also now accounts for the datagram header when calculating the buffer
size.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114763">gh-114763</a>: Protect modules loaded with <a class="reference internal" href="../library/importlib.html#importlib.util.LazyLoader" title="importlib.util.LazyLoader"><code class="xref py py-class docutils literal notranslate"><span class="pre">importlib.util.LazyLoader</span></code></a>
from race conditions when multiple threads try to access attributes before
the loading is complete.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114709">gh-114709</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">posixpath.commonpath()</span></code> now raises a <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>
exception when passed an empty iterable. Previously, <a class="reference internal" href="../library/exceptions.html#IndexError" title="IndexError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IndexError</span></code></a> was
raised.</p>
<p><code class="xref py py-func docutils literal notranslate"><span class="pre">posixpath.commonpath()</span></code> now raises a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> exception when
passed <code class="docutils literal notranslate"><span class="pre">None</span></code>. Previously, <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> was raised.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114610">gh-114610</a>: Fix bug where <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.with_stem" title="pathlib.PurePath.with_stem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.with_stem()</span></code></a> converted a
non-empty path suffix to a stem when given an empty <em>stem</em> argument. It
now raises <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>, just like
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.with_suffix" title="pathlib.PurePath.with_suffix"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.with_suffix()</span></code></a> does when called on a path with an
empty stem, given a non-empty <em>suffix</em> argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107361">gh-107361</a>: Add <a class="reference internal" href="../library/ssl.html#ssl.VERIFY_X509_PARTIAL_CHAIN" title="ssl.VERIFY_X509_PARTIAL_CHAIN"><code class="xref py py-data docutils literal notranslate"><span class="pre">ssl.VERIFY_X509_PARTIAL_CHAIN</span></code></a> and
<code class="xref py py-data docutils literal notranslate"><span class="pre">VERIFY_X509_STRICT</span></code> to the default SSL context created with
<a class="reference internal" href="../library/ssl.html#ssl.create_default_context" title="ssl.create_default_context"><code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.create_default_context()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112281">gh-112281</a>: Allow creating <a class="reference internal" href="../library/stdtypes.html#types-union"><span class="std std-ref">union of types</span></a> for
<a class="reference internal" href="../library/typing.html#typing.Annotated" title="typing.Annotated"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Annotated</span></code></a> with unhashable metadata.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111775">gh-111775</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">importlib.resources.simple.ResourceHandle.open()</span></code> for
text mode, added missed <code class="docutils literal notranslate"><span class="pre">stream</span></code> argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90095">gh-90095</a>: Make .pdbrc and -c work with any valid pdb commands.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107625">gh-107625</a>: Raise <a class="reference internal" href="../library/configparser.html#configparser.ParsingError" title="configparser.ParsingError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">configparser.ParsingError</span></code></a> from
<a class="reference internal" href="../library/configparser.html#configparser.ConfigParser.read" title="configparser.ConfigParser.read"><code class="xref py py-meth docutils literal notranslate"><span class="pre">read()</span></code></a> and
<a class="reference internal" href="../library/configparser.html#configparser.ConfigParser.read_file" title="configparser.ConfigParser.read_file"><code class="xref py py-meth docutils literal notranslate"><span class="pre">read_file()</span></code></a> methods of
<a class="reference internal" href="../library/configparser.html#configparser.ConfigParser" title="configparser.ConfigParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">configparser.ConfigParser</span></code></a> if a key without a corresponding value
is continued (that is, followed by an indented line).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107155">gh-107155</a>: Fix incorrect output of <code class="docutils literal notranslate"><span class="pre">help(x)</span></code> where <code class="docutils literal notranslate"><span class="pre">x</span></code> is a
<a class="reference internal" href="../reference/expressions.html#lambda"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">lambda</span></code></a> function, which has an <code class="docutils literal notranslate"><span class="pre">__annotations__</span></code> dictionary
attribute with a <code class="docutils literal notranslate"><span class="pre">"return"</span></code> key.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/57141">gh-57141</a>: Add option for <em>non-shallow</em> comparisons to
<a class="reference internal" href="../library/filecmp.html#filecmp.dircmp" title="filecmp.dircmp"><code class="xref py py-class docutils literal notranslate"><span class="pre">filecmp.dircmp</span></code></a> like <a class="reference internal" href="../library/filecmp.html#filecmp.cmp" title="filecmp.cmp"><code class="xref py py-func docutils literal notranslate"><span class="pre">filecmp.cmp()</span></code></a>. Original patch by Steven
Ward. Enhanced by Tobias Rautenkranz</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69990">gh-69990</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">Profile.print_stats()</span></code> has been improved to accept multiple
sort arguments. Patched by Chiu-Hsiang Hsu and Furkan Onder.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104061">gh-104061</a>: Add <code class="xref py py-data docutils literal notranslate"><span class="pre">socket.SO_BINDTOIFINDEX</span></code> constant.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/60346">gh-60346</a>: Fix ArgumentParser inconsistent with parse_known_args.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102389">gh-102389</a>: Add <code class="docutils literal notranslate"><span class="pre">windows_31j</span></code> to aliases for <code class="docutils literal notranslate"><span class="pre">cp932</span></code> codec</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/72249">gh-72249</a>: Always include the <a class="reference internal" href="../glossary.html#term-module"><span class="xref std std-term">module</span></a> name in the <a class="reference internal" href="../library/functions.html#repr" title="repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">repr()</span></code></a> of
<a class="reference internal" href="../library/functools.html#functools.partial" title="functools.partial"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.partial()</span></code></a> objects. Patch by Furkan Onder and Anilyka
Barry.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100985">gh-100985</a>: Update HTTPSConnection to consistently wrap IPv6 Addresses when
using a proxy.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100884">gh-100884</a>: email: fix misfolding of comma in address-lists over multiple
lines in combination with unicode encoding.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95782">gh-95782</a>: Fix <code class="xref py py-func docutils literal notranslate"><span class="pre">io.BufferedReader.tell()</span></code>,
<code class="xref py py-func docutils literal notranslate"><span class="pre">io.BufferedReader.seek()</span></code>, <code class="xref py py-func docutils literal notranslate"><span class="pre">_pyio.BufferedReader.tell()</span></code>,
<code class="xref py py-func docutils literal notranslate"><span class="pre">io.BufferedRandom.tell()</span></code>, <code class="xref py py-func docutils literal notranslate"><span class="pre">io.BufferedRandom.seek()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">_pyio.BufferedRandom.tell()</span></code> being able to return negative offsets.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96310">gh-96310</a>: Fix a traceback in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> when all options in a
mutually exclusive group are suppressed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93205">gh-93205</a>: Fixed a bug in
<a class="reference internal" href="../library/logging.handlers.html#logging.handlers.TimedRotatingFileHandler" title="logging.handlers.TimedRotatingFileHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.handlers.TimedRotatingFileHandler</span></code></a> where multiple rotating
handler instances pointing to files with the same name but different
extensions would conflict and not delete the correct files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31116">bpo-31116</a>: Add Z85 encoding to <code class="docutils literal notranslate"><span class="pre">base64</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44865">bpo-44865</a>: Add missing call to localization function in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43952">bpo-43952</a>: Fix <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.connection.Listener.accept" title="multiprocessing.connection.Listener.accept"><code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.connection.Listener.accept()</span></code></a> to
accept empty bytes as authkey. Not accepting empty bytes as key causes it
to hang indefinitely.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42125">bpo-42125</a>: linecache: get module name from <code class="docutils literal notranslate"><span class="pre">__spec__</span></code> if available. This
allows getting source code for the <code class="docutils literal notranslate"><span class="pre">__main__</span></code> module when a custom
loader is used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41122">bpo-41122</a>: Failing to pass arguments properly to
<a class="reference internal" href="../library/functools.html#functools.singledispatchmethod" title="functools.singledispatchmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.singledispatchmethod()</span></code></a> now throws a TypeError instead of
hitting an index out of bounds internally.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40818">bpo-40818</a>: The asyncio REPL now runs <a class="reference internal" href="../library/sys.html#sys.__interactivehook__" title="sys.__interactivehook__"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.__interactivehook__</span></code></a> on
startup. The default implementation of <a class="reference internal" href="../library/sys.html#sys.__interactivehook__" title="sys.__interactivehook__"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.__interactivehook__</span></code></a>
provides auto-completion to the asyncio REPL. Patch contributed by Rémi
Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33775">bpo-33775</a>: Add ‘default’ and ‘version’ help text for localization in
argparse.</p></li>
</ul>
</section>
<section id="id133">
<h3>Documentation<a class="headerlink" href="#id133" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115399">gh-115399</a>: Document <span class="target" id="index-77"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2023-52425"><strong>CVE 2023-52425</strong></a> of Expat <2.6.0 under “XML
vulnerabilities”.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109653">gh-109653</a>: Improve import time of <a class="reference internal" href="../library/uuid.html#module-uuid" title="uuid: UUID objects (universally unique identifiers) according to RFC 9562"><code class="xref py py-mod docutils literal notranslate"><span class="pre">uuid</span></code></a> on Linux.</p></li>
</ul>
</section>
<section id="id134">
<h3>Tests<a class="headerlink" href="#id134" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71052">gh-71052</a>: Add test exclusions to support running the test suite on
Android.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71052">gh-71052</a>: Enable <code class="docutils literal notranslate"><span class="pre">test_concurrent_futures</span></code> on platforms that support
threading but not multiprocessing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115796">gh-115796</a>: Make ‘_testinternalcapi.assemble_code_object’ construct the
exception table for the code object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115720">gh-115720</a>: Leak tests (<code class="docutils literal notranslate"><span class="pre">-R</span></code>, <code class="docutils literal notranslate"><span class="pre">--huntrleaks</span></code>) now show a summary of the
number of leaks found in each iteration.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115122">gh-115122</a>: Add <code class="docutils literal notranslate"><span class="pre">--bisect</span></code> option to regrtest test runner: run failed
tests with <code class="docutils literal notranslate"><span class="pre">test.bisect_cmd</span></code> to identify failing tests. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115596">gh-115596</a>: Fix <code class="docutils literal notranslate"><span class="pre">ProgramPriorityTests</span></code> in <code class="docutils literal notranslate"><span class="pre">test_os</span></code> permanently
changing the process priority.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115556">gh-115556</a>: On Windows, commas passed in arguments to
<code class="docutils literal notranslate"><span class="pre">Tools\buildbot\test.bat</span></code> and <code class="docutils literal notranslate"><span class="pre">PCbuild\\rt.bat</span></code> are now properly
handled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115420">gh-115420</a>: Fix translation of exception handler targets by
<code class="docutils literal notranslate"><span class="pre">_testinternalcapi.optimize_cfg</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115376">gh-115376</a>: Fix segfault in <code class="docutils literal notranslate"><span class="pre">_testinternalcapi.compiler_codegen</span></code> on bad
input.</p></li>
</ul>
</section>
<section id="id135">
<h3>Build<a class="headerlink" href="#id135" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116313">gh-116313</a>: Get WASI builds to work under wasmtime 18 w/ WASI 0.2/preview2
primitives.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71052">gh-71052</a>: Change Android’s <a class="reference internal" href="../library/sys.html#sys.platform" title="sys.platform"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.platform</span></code></a> from <code class="docutils literal notranslate"><span class="pre">"linux"</span></code> to
<code class="docutils literal notranslate"><span class="pre">"android"</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116117">gh-116117</a>: Backport <code class="docutils literal notranslate"><span class="pre">libb2</span></code>’s PR #42 to fix compiling CPython on 32-bit
Windows with <code class="docutils literal notranslate"><span class="pre">clang-cl</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71052">gh-71052</a>: Fix several Android build issues</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114099">gh-114099</a>: A testbed project was added to run the test suite on iOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115350">gh-115350</a>: Fix building ctypes module with -DWIN32_LEAN_AND_MEAN defined</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111225">gh-111225</a>: Link extension modules against libpython on Android.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115737">gh-115737</a>: The install name for libPython is now correctly set for
non-framework macOS builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114099">gh-114099</a>: Makefile targets were added to support compiling an
iOS-compatible framework build.</p></li>
</ul>
</section>
<section id="id136">
<h3>Windows<a class="headerlink" href="#id136" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116012">gh-116012</a>: Ensure the value of <code class="docutils literal notranslate"><span class="pre">GetLastError()</span></code> is preserved across GIL
operations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115582">gh-115582</a>: Building extensions intended for free-threaded builds of
CPython now require compiling with <code class="docutils literal notranslate"><span class="pre">/DPy_GIL_DISABLED</span></code> manually when
using a regular install. This is expected to change in future releases.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115554">gh-115554</a>: The installer now has more strict rules about updating the
<a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a>. In general, most users only have a single launcher
installed and will see no difference. When multiple launchers have been
installed, the option to install the launcher is disabled until all but
one have been removed. Downgrading the launcher (which was never allowed)
is now more obviously blocked.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115543">gh-115543</a>: <a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a> can now detect Python 3.13 when installed from
the Microsoft Store, and will install Python 3.12 by default when
<span class="target" id="index-78"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYLAUNCHER_ALLOW_INSTALL</span></code> is set.</p></li>
</ul>
</section>
<section id="id137">
<h3>macOS<a class="headerlink" href="#id137" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/116145">gh-116145</a>: Update macOS installer to Tcl/Tk 8.6.14.</p></li>
</ul>
</section>
<section id="id138">
<h3>IDLE<a class="headerlink" href="#id138" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88516">gh-88516</a>: On macOS show a proxy icon in the title bar of editor windows to
match platform behaviour.</p></li>
</ul>
</section>
<section id="id139">
<h3>Tools/Demos<a class="headerlink" href="#id139" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100176">gh-100176</a>: Remove outdated Tools/{io,cc,string}bench</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45101">bpo-45101</a>: Add consistency in usage message IO between 2 versions of
python-config.</p></li>
</ul>
</section>
<section id="id140">
<h3>C API<a class="headerlink" href="#id140" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114626">gh-114626</a>: Add again <code class="docutils literal notranslate"><span class="pre">_PyCFunctionFastWithKeywords</span></code> name, removed in
Python 3.13 alpha 4 by mistake. Keep the old private
<code class="docutils literal notranslate"><span class="pre">_PyCFunctionFastWithKeywords</span></code> name (Python 3.7) as an alias to the new
public name <code class="docutils literal notranslate"><span class="pre">PyCFunctionFastWithKeywords</span></code> (Python 3.13a4). Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111418">gh-111418</a>: Add <a class="reference internal" href="../c-api/hash.html#c.PyHASH_MODULUS" title="PyHASH_MODULUS"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyHASH_MODULUS</span></code></a>, <a class="reference internal" href="../c-api/hash.html#c.PyHASH_BITS" title="PyHASH_BITS"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyHASH_BITS</span></code></a>,
<a class="reference internal" href="../c-api/hash.html#c.PyHASH_INF" title="PyHASH_INF"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyHASH_INF</span></code></a> and <a class="reference internal" href="../c-api/hash.html#c.PyHASH_IMAG" title="PyHASH_IMAG"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyHASH_IMAG</span></code></a> C macros. Patch by
Sergey B Kirpichev.</p></li>
</ul>
</section>
</section>
<section id="python-3-13-0-alpha-4">
<h2>Python 3.13.0 alpha 4<a class="headerlink" href="#python-3-13-0-alpha-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2024-02-15</em></p>
<section id="id141">
<h3>Security<a class="headerlink" href="#id141" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115399">gh-115399</a>: Update bundled libexpat to 2.6.0</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115243">gh-115243</a>: Fix possible crashes in <a class="reference internal" href="../library/collections.html#collections.deque.index" title="collections.deque.index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">collections.deque.index()</span></code></a> when
the deque is concurrently modified.</p></li>
</ul>
</section>
<section id="id142">
<h3>Core and Builtins<a class="headerlink" href="#id142" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112087">gh-112087</a>: For an empty reverse iterator for list will be reduced to
<a class="reference internal" href="../library/functions.html#reversed" title="reversed"><code class="xref py py-func docutils literal notranslate"><span class="pre">reversed()</span></code></a>. Patch by Donghee Na</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114570">gh-114570</a>: Add <a class="reference internal" href="../library/exceptions.html#PythonFinalizationError" title="PythonFinalizationError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PythonFinalizationError</span></code></a> exception. This exception
derived from <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> is raised when an operation is blocked
during the <a class="reference internal" href="../glossary.html#term-interpreter-shutdown"><span class="xref std std-term">Python finalization</span></a>. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114695">gh-114695</a>: Add <a class="reference internal" href="../library/sys.html#sys._clear_internal_caches" title="sys._clear_internal_caches"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._clear_internal_caches()</span></code></a>, which clears all
internal performance-related caches (and deprecate the less-general
<a class="reference internal" href="../library/sys.html#sys._clear_type_cache" title="sys._clear_type_cache"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._clear_type_cache()</span></code></a> function).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114828">gh-114828</a>: Fix compilation crashes in uncommon code examples using
<a class="reference internal" href="../library/functions.html#super" title="super"><code class="xref py py-func docutils literal notranslate"><span class="pre">super()</span></code></a> inside a comprehension in a class body.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112069">gh-112069</a>: Adapt <a class="reference internal" href="../library/stdtypes.html#set" title="set"><code class="xref py py-class docutils literal notranslate"><span class="pre">set</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#frozenset" title="frozenset"><code class="xref py py-class docutils literal notranslate"><span class="pre">frozenset</span></code></a> methods to Argument
Clinic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115011">gh-115011</a>: Setters for members with an unsigned integer type now support
the same range of valid values for objects that has a
<a class="reference internal" href="../reference/datamodel.html#object.__index__" title="object.__index__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__index__()</span></code></a> method as for <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114887">gh-114887</a>: Changed socket type validation in
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.create_datagram_endpoint" title="asyncio.loop.create_datagram_endpoint"><code class="xref py py-meth docutils literal notranslate"><span class="pre">create_datagram_endpoint()</span></code></a> to accept all non-stream
sockets. This fixes a regression in compatibility with raw sockets.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114944">gh-114944</a>: Fixes a race between <code class="docutils literal notranslate"><span class="pre">PyParkingLot_Park</span></code> and
<code class="docutils literal notranslate"><span class="pre">_PyParkingLot_UnparkAll</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113462">gh-113462</a>: Limit the number of versions that a single class can use.
Prevents a few wayward classes using up all the version numbers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/76763">gh-76763</a>: The <a class="reference internal" href="../library/functions.html#chr" title="chr"><code class="xref py py-func docutils literal notranslate"><span class="pre">chr()</span></code></a> builtin function now always raises
<a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> for values outside the valid range. Previously it raised
<a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> for very large or small values.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114806">gh-114806</a>: No longer specialize calls to classes, if those classes have
metaclasses. Fixes bug where the <code class="docutils literal notranslate"><span class="pre">__call__</span></code> method of the metaclass was
not being called.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107944">gh-107944</a>: Improve error message for function calls with bad keyword
arguments via getargs</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112529">gh-112529</a>: The free-threaded build no longer allocates space for the
<code class="docutils literal notranslate"><span class="pre">PyGC_Head</span></code> structure in objects that support cyclic garbage collection.
A number of other fields and data structures are used as replacements,
including <code class="docutils literal notranslate"><span class="pre">ob_gc_bits</span></code>, <code class="docutils literal notranslate"><span class="pre">ob_tid</span></code>, and mimalloc internal data
structures.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114456">gh-114456</a>: Lower the recursion limit under a debug build of WASI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114083">gh-114083</a>: Compiler applies folding of LOAD_CONST with following
instruction in a separate pass before other optimisations. This enables
jump threading in certain circumstances.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114388">gh-114388</a>: Fix a <a class="reference internal" href="../library/exceptions.html#RuntimeWarning" title="RuntimeWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeWarning</span></code></a> emitted when assign an integer-like
value that is not an instance of <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> to an attribute that
corresponds to a C struct member of <a class="reference internal" href="../c-api/structures.html#pymemberdef-types"><span class="std std-ref">type</span></a> T_UINT
and T_ULONG. Fix a double <a class="reference internal" href="../library/exceptions.html#RuntimeWarning" title="RuntimeWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeWarning</span></code></a> emitted when assign a
negative integer value to an attribute that corresponds to a C struct
member of type T_UINT.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114265">gh-114265</a>: Compiler propagates line numbers before optimization, leading
to more optimization opportunities and removing the need for the
<code class="docutils literal notranslate"><span class="pre">guarantee_lineno_for_exits</span></code> hack.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112529">gh-112529</a>: The free-threaded build now has its own thread-safe GC
implementation that uses mimalloc to find GC tracked objects. It is
non-generational, unlike the existing GC implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114050">gh-114050</a>: Fix segmentation fault caused by an incorrect format string in
<code class="docutils literal notranslate"><span class="pre">TypeError</span></code> exception when more than two arguments are passed to
<code class="docutils literal notranslate"><span class="pre">int</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112354">gh-112354</a>: The <code class="docutils literal notranslate"><span class="pre">END_FOR</span></code> instruction now pops only one value. This is to
better support side exits in loops.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113884">gh-113884</a>: Make <a class="reference internal" href="../library/queue.html#queue.SimpleQueue" title="queue.SimpleQueue"><code class="xref py py-class docutils literal notranslate"><span class="pre">queue.SimpleQueue</span></code></a> thread safe when the GIL is
disabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114058">gh-114058</a>: Implement the foundations of the Tier 2 redundancy eliminator.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113939">gh-113939</a>: frame.clear(): Clear frame.f_locals as well, and not only the
fast locals. This is relevant once frame.f_locals was accessed, which
would contain also references to all the locals.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112050">gh-112050</a>: Convert <a class="reference internal" href="../library/collections.html#collections.deque" title="collections.deque"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.deque</span></code></a> to use Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112050">gh-112050</a>: Make methods on <a class="reference internal" href="../library/collections.html#collections.deque" title="collections.deque"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.deque</span></code></a> thread-safe when the
GIL is disabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113464">gh-113464</a>: Add an option (<code class="docutils literal notranslate"><span class="pre">--enable-experimental-jit</span></code> for
<code class="docutils literal notranslate"><span class="pre">configure</span></code>-based builds or <code class="docutils literal notranslate"><span class="pre">--experimental-jit</span></code> for <code class="docutils literal notranslate"><span class="pre">PCbuild</span></code>-based
ones) to build an <em>experimental</em> just-in-time compiler, based on
<a class="reference external" href="https://fredrikbk.com/publications/copy-and-patch.pdf">copy-and-patch</a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113055">gh-113055</a>: Make interp->obmalloc a pointer. For interpreters that share
state with the main interpreter, this points to the same static memory
structure. For interpreters with their own obmalloc state, it is heap
allocated. Add free_obmalloc_arenas() which will free the obmalloc arenas
and radix tree structures for interpreters with their own obmalloc state.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/55664">gh-55664</a>: Add warning when creating <a class="reference internal" href="../library/functions.html#type" title="type"><code class="xref py py-class docutils literal notranslate"><span class="pre">type</span></code></a> using a namespace
dictionary with non-string keys. Patched by Daniel Urban and Furkan Onder.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104530">gh-104530</a>: Use native Win32 condition variables.</p></li>
</ul>
</section>
<section id="id143">
<h3>Library<a class="headerlink" href="#id143" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115392">gh-115392</a>: Fix a bug in <a class="reference internal" href="../library/doctest.html#module-doctest" title="doctest: Test pieces of code within docstrings."><code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code></a> where incorrect line numbers would
be reported for decorated functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114563">gh-114563</a>: Fix several <a class="reference internal" href="../library/functions.html#format" title="format"><code class="xref py py-func docutils literal notranslate"><span class="pre">format()</span></code></a> bugs when using the C implementation
of <a class="reference internal" href="../library/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal notranslate"><span class="pre">Decimal</span></code></a>: * memory leak in some rare cases when using
the <code class="docutils literal notranslate"><span class="pre">z</span></code> format option (coerce negative 0) * incorrect output when
applying the <code class="docutils literal notranslate"><span class="pre">z</span></code> format option to type <code class="docutils literal notranslate"><span class="pre">F</span></code> (fixed-point with capital
<code class="docutils literal notranslate"><span class="pre">NAN</span></code> / <code class="docutils literal notranslate"><span class="pre">INF</span></code>) * incorrect output when applying the <code class="docutils literal notranslate"><span class="pre">#</span></code> format
option (alternate form)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102840">gh-102840</a>: Fix confused traceback when floordiv, mod, or divmod operations
happens between instances of <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a> and
<a class="reference internal" href="../library/functions.html#complex" title="complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">complex</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115165">gh-115165</a>: Most exceptions are now ignored when attempting to set the
<code class="docutils literal notranslate"><span class="pre">__orig_class__</span></code> attribute on objects returned when calling
<a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> generic aliases (including generic aliases created using
<a class="reference internal" href="../library/typing.html#typing.Annotated" title="typing.Annotated"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Annotated</span></code></a>). Previously only <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> was
ignored. Patch by Dave Shawley.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112903">gh-112903</a>: Fix “issubclass() arg 1 must be a class” errors in certain
cases of multiple inheritance with generic aliases (regression in early
3.13 alpha releases).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115133">gh-115133</a>: Fix tests for <a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLPullParser" title="xml.etree.ElementTree.XMLPullParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">XMLPullParser</span></code></a>
with Expat 2.6.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115059">gh-115059</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">io.BufferedRandom.read1()</span></code> now flushes the underlying
write buffer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79382">gh-79382</a>: Trailing <code class="docutils literal notranslate"><span class="pre">**</span></code> no longer allows to match files and non-existing
paths in recursive <a class="reference internal" href="../library/glob.html#glob.glob" title="glob.glob"><code class="xref py py-func docutils literal notranslate"><span class="pre">glob()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/67837">gh-67837</a>: Avoid race conditions in the creation of directories during
concurrent extraction in <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> and <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115060">gh-115060</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> by removing redundant regex
matching.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97928">gh-97928</a>: Partially revert the behavior of <code class="xref py py-meth docutils literal notranslate"><span class="pre">tkinter.Text.count()</span></code>. By
default it preserves the behavior of older Python versions, except that
setting <code class="docutils literal notranslate"><span class="pre">wantobjects</span></code> to 0 no longer has effect. Add a new parameter
<em>return_ints</em>: specifying <code class="docutils literal notranslate"><span class="pre">return_ints=True</span></code> makes <code class="docutils literal notranslate"><span class="pre">Text.count()</span></code>
always returning the single count as an integer instead of a 1-tuple or
<code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114628">gh-114628</a>: When csv.Error is raised when handling TypeError, do not print
the TypeError traceback.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85984">gh-85984</a>: Added <code class="docutils literal notranslate"><span class="pre">_POSIX_VDISABLE</span></code> from C’s <code class="docutils literal notranslate"><span class="pre"><unistd.h></span></code> to
<a class="reference internal" href="../library/termios.html#module-termios" title="termios: POSIX style tty control. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">termios</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114965">gh-114965</a>: Update bundled pip to 24.0</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114959">gh-114959</a>: <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> no longer ignores errors when trying to extract
a directory on top of a file.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114894">gh-114894</a>: Add <a class="reference internal" href="../library/array.html#array.array.clear" title="array.array.clear"><code class="xref py py-meth docutils literal notranslate"><span class="pre">array.array.clear()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114071">gh-114071</a>: Support tuple subclasses using auto() for enum member value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109475">gh-109475</a>: Fix support of explicit option value “–” in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>
(e.g. <code class="docutils literal notranslate"><span class="pre">--option=--</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/49766">gh-49766</a>: Fix <a class="reference internal" href="../library/datetime.html#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a>-<a class="reference internal" href="../library/datetime.html#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a>
comparison. Now the special comparison methods like <code class="docutils literal notranslate"><span class="pre">__eq__</span></code> and
<code class="docutils literal notranslate"><span class="pre">__lt__</span></code> return <a class="reference internal" href="../library/constants.html#NotImplemented" title="NotImplemented"><code class="xref py py-data docutils literal notranslate"><span class="pre">NotImplemented</span></code></a> if one of comparands is
<code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code> and other is <code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code> instead of ignoring the
time part and the time zone or forcefully return “not equal” or raise
<a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>. It makes comparison of <code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code> subclasses more symmetric and allows to change the
default behavior by overriding the special comparison methods in
subclasses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110190">gh-110190</a>: Fix ctypes structs with array on Windows ARM64 platform by
setting <code class="docutils literal notranslate"><span class="pre">MAX_STRUCT_SIZE</span></code> to 32 in stgdict. Patch by Diego Russo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114678">gh-114678</a>: Ensure that deprecation warning for ‘N’ specifier in
<a class="reference internal" href="../library/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal notranslate"><span class="pre">Decimal</span></code></a> format is not raised for cases where ‘N’ appears
in other places in the format specifier. Based on patch by Stefan Krah.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/70303">gh-70303</a>: Return both files and directories from <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a>
if a pattern ends with “<code class="docutils literal notranslate"><span class="pre">**</span></code>”. Previously only directories were
returned.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109653">gh-109653</a>: Improve import time of <a class="reference internal" href="../library/importlib.metadata.html#module-importlib.metadata" title="importlib.metadata: Accessing package metadata"><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib.metadata</span></code></a> and
<a class="reference internal" href="../library/email.utils.html#module-email.utils" title="email.utils: Miscellaneous email package utilities."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email.utils</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113280">gh-113280</a>: Fix a leak of open socket in rare cases when error occurred in
<a class="reference internal" href="../library/ssl.html#ssl.SSLSocket" title="ssl.SSLSocket"><code class="xref py py-class docutils literal notranslate"><span class="pre">ssl.SSLSocket</span></code></a> creation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77749">gh-77749</a>: <a class="reference internal" href="../library/email.policy.html#email.policy.EmailPolicy.fold" title="email.policy.EmailPolicy.fold"><code class="xref py py-meth docutils literal notranslate"><span class="pre">email.policy.EmailPolicy.fold()</span></code></a> now always encodes
non-ASCII characters in headers if <a class="reference internal" href="../library/email.policy.html#email.policy.EmailPolicy.utf8" title="email.policy.EmailPolicy.utf8"><code class="xref py py-attr docutils literal notranslate"><span class="pre">utf8</span></code></a>
is false.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83383">gh-83383</a>: Synchronization of the <a class="reference internal" href="../library/dbm.html#module-dbm.dumb" title="dbm.dumb: Portable implementation of the simple DBM interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.dumb</span></code></a> database is now no-op if
there was no modification since opening or last synchronization. The
directory file for a newly created empty <a class="reference internal" href="../library/dbm.html#module-dbm.dumb" title="dbm.dumb: Portable implementation of the simple DBM interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.dumb</span></code></a> database is now
created immediately after opening instead of deferring this until
synchronizing or closing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91602">gh-91602</a>: Add <em>filter</em> keyword-only parameter to
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.iterdump" title="sqlite3.Connection.iterdump"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.iterdump()</span></code></a> for filtering database objects to
dump. Patch by Mariusz Felisiak.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112451">gh-112451</a>: Prohibit subclassing pure-Python <a class="reference internal" href="../library/datetime.html#datetime.timezone" title="datetime.timezone"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.timezone</span></code></a>.
This is consistent with C-extension implementation. Patch by Mariusz
Felisiak.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69893">gh-69893</a>: Add the <code class="xref py py-meth docutils literal notranslate"><span class="pre">close()</span></code> method for the iterator returned by
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.iterparse" title="xml.etree.ElementTree.iterparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">xml.etree.ElementTree.iterparse()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109653">gh-109653</a>: Reduce the import time of <a class="reference internal" href="../library/threading.html#module-threading" title="threading: Thread-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code></a> module by ~50%.
Patch by Daniel Hollas.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114492">gh-114492</a>: Make the result of <a class="reference internal" href="../library/termios.html#termios.tcgetattr" title="termios.tcgetattr"><code class="xref py py-func docutils literal notranslate"><span class="pre">termios.tcgetattr()</span></code></a> reproducible on
Alpine Linux. Previously it could leave a random garbage in some fields.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114315">gh-114315</a>: Make <a class="reference internal" href="../library/threading.html#threading.Lock" title="threading.Lock"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.Lock</span></code></a> a real class, not a factory
function. Add <code class="docutils literal notranslate"><span class="pre">__new__</span></code> to <code class="docutils literal notranslate"><span class="pre">_thread.lock</span></code> type.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100414">gh-100414</a>: Add <a class="reference internal" href="../library/dbm.html#module-dbm.sqlite3" title="dbm.sqlite3: SQLite backend for dbm (All)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.sqlite3</span></code></a> as a backend to <a class="reference internal" href="../library/dbm.html#module-dbm" title="dbm: Interfaces to various Unix "database" formats."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm</span></code></a>, and make it
the new default <code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm</span></code> backend. Patch by Raymond Hettinger and Erlend
E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113267">gh-113267</a>: Revert changes in <a class="reference external" href="https://github.com/python/cpython/issues/106584">gh-106584</a> which made calls of
<code class="docutils literal notranslate"><span class="pre">TestResult</span></code> methods <code class="docutils literal notranslate"><span class="pre">startTest()</span></code> and <code class="docutils literal notranslate"><span class="pre">stopTest()</span></code> unbalanced.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/75128">gh-75128</a>: Ignore an <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.BaseEventLoop.create_server()</span></code> when IPv6 is available but the
interface cannot actually support it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114423">gh-114423</a>: <code class="docutils literal notranslate"><span class="pre">_DummyThread</span></code> entries in <code class="docutils literal notranslate"><span class="pre">threading._active</span></code> are now
automatically removed when the related thread dies.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114257">gh-114257</a>: Dismiss the <code class="xref py py-exc docutils literal notranslate"><span class="pre">FileNotFound</span></code> error in
<a class="reference internal" href="../library/ctypes.html#ctypes.util.find_library" title="ctypes.util.find_library"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.util.find_library()</span></code></a> and just return <code class="docutils literal notranslate"><span class="pre">None</span></code> on Linux.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114321">gh-114321</a>: Expose more platform specific constants in the <a class="reference internal" href="../library/fcntl.html#module-fcntl" title="fcntl: The fcntl() and ioctl() system calls. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">fcntl</span></code></a>
module on Linux, macOS, FreeBSD and NetBSD.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114328">gh-114328</a>: The <a class="reference internal" href="../library/tty.html#tty.setcbreak" title="tty.setcbreak"><code class="xref py py-func docutils literal notranslate"><span class="pre">tty.setcbreak()</span></code></a> and new <a class="reference internal" href="../library/tty.html#tty.cfmakecbreak" title="tty.cfmakecbreak"><code class="xref py py-func docutils literal notranslate"><span class="pre">tty.cfmakecbreak()</span></code></a> no
longer clears the terminal input ICRLF flag. This fixes a regression
introduced in 3.12 that no longer matched how OSes define cbreak mode in
their <code class="docutils literal notranslate"><span class="pre">stty(1)</span></code> manual pages.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114281">gh-114281</a>: Remove type hints from <code class="docutils literal notranslate"><span class="pre">Lib/asyncio/staggered.py</span></code>. The
annotations in the <a class="reference external" href="https://github.com/python/typeshed">typeshed</a>
project should be used instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101438">gh-101438</a>: Avoid reference cycle in ElementTree.iterparse. The iterator
returned by <code class="docutils literal notranslate"><span class="pre">ElementTree.iterparse</span></code> may hold on to a file descriptor.
The reference cycle prevented prompt clean-up of the file descriptor if
the returned iterator was not exhausted.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114198">gh-114198</a>: The signature for the <code class="docutils literal notranslate"><span class="pre">__replace__</span></code> method on
<a class="reference internal" href="../library/dataclasses.html#module-dataclasses" title="dataclasses: Generate special methods on user-defined classes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dataclasses</span></code></a> now has the first argument named <code class="docutils literal notranslate"><span class="pre">self</span></code>, rather than
<code class="docutils literal notranslate"><span class="pre">obj</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104522">gh-104522</a>: <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> raised when run a subprocess now only has
<em>filename</em> attribute set to <em>cwd</em> if the error was caused by a failed
attempt to change the current directory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114149">gh-114149</a>: Enum: correctly handle tuple subclasses in custom <code class="docutils literal notranslate"><span class="pre">__new__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83648">gh-83648</a>: Support deprecation of options, positional arguments and
subcommands in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114087">gh-114087</a>: Speed up <code class="docutils literal notranslate"><span class="pre">dataclasses.asdict</span></code> up to 1.35x.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109534">gh-109534</a>: Fix a reference leak in
<code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.selector_events.BaseSelectorEventLoop</span></code> when SSL handshakes
fail. Patch contributed by Jamie Phan.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79634">gh-79634</a>: Accept <a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like objects</span></a> as patterns
in <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> and <a class="reference internal" href="../library/pathlib.html#pathlib.Path.rglob" title="pathlib.Path.rglob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rglob()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112202">gh-112202</a>: Ensure that a <a class="reference internal" href="../library/asyncio-sync.html#asyncio.Condition.notify" title="asyncio.Condition.notify"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.Condition.notify()</span></code></a> call does not
get lost if the awakened <code class="docutils literal notranslate"><span class="pre">Task</span></code> is simultaneously cancelled or
encounters any other error.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113951">gh-113951</a>: Fix the behavior of <code class="docutils literal notranslate"><span class="pre">tag_unbind()</span></code> methods of
<code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.Text</span></code> and <code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.Canvas</span></code> classes with three
arguments. Previously, <code class="docutils literal notranslate"><span class="pre">widget.tag_unbind(tag,</span> <span class="pre">sequence,</span> <span class="pre">funcid)</span></code>
destroyed the current binding for <em>sequence</em>, leaving <em>sequence</em> unbound,
and deleted the <em>funcid</em> command. Now it removes only <em>funcid</em> from the
binding for <em>sequence</em>, keeping other commands, and deletes the <em>funcid</em>
command. It leaves <em>sequence</em> unbound only if <em>funcid</em> was the last bound
command.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97959">gh-97959</a>: Fix rendering class methods, bound methods, method and function
aliases in <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a>. Class methods no longer have “method of
builtins.type instance” note. Corresponding notes are now added for class
and unbound methods. Method and function aliases now have references to
the module or the class where the origin was defined if it differs from
the current. Bound methods are now listed in the static methods section.
Methods of builtin classes are now supported as well as methods of Python
classes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113796">gh-113796</a>: Add more validation checks in the <a class="reference internal" href="../library/csv.html#csv.Dialect" title="csv.Dialect"><code class="xref py py-class docutils literal notranslate"><span class="pre">csv.Dialect</span></code></a>
constructor. <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> is now raised if the same character is used
in different roles.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113732">gh-113732</a>: Fix support of <a class="reference internal" href="../library/csv.html#csv.QUOTE_NOTNULL" title="csv.QUOTE_NOTNULL"><code class="xref py py-data docutils literal notranslate"><span class="pre">QUOTE_NOTNULL</span></code></a> and
<a class="reference internal" href="../library/csv.html#csv.QUOTE_STRINGS" title="csv.QUOTE_STRINGS"><code class="xref py py-data docutils literal notranslate"><span class="pre">QUOTE_STRINGS</span></code></a> in <a class="reference internal" href="../library/csv.html#csv.reader" title="csv.reader"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.reader()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113225">gh-113225</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path.walk" title="pathlib.Path.walk"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.walk()</span></code></a> by using
<a class="reference internal" href="../library/os.html#os.DirEntry.path" title="os.DirEntry.path"><code class="xref py py-attr docutils literal notranslate"><span class="pre">os.DirEntry.path</span></code></a> where possible.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89039">gh-89039</a>: When replace() method is called on a subclass of datetime, date
or time, properly call derived constructor. Previously, only the base
class’s constructor was called.</p>
<p>Also, make sure to pass non-zero fold values when creating subclasses in
various methods. Previously, fold was silently ignored.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112919">gh-112919</a>: Speed-up <a class="reference internal" href="../library/datetime.html#datetime.datetime.replace" title="datetime.datetime.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">datetime.datetime.replace()</span></code></a>,
<a class="reference internal" href="../library/datetime.html#datetime.date.replace" title="datetime.date.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">datetime.date.replace()</span></code></a> and <a class="reference internal" href="../library/datetime.html#datetime.time.replace" title="datetime.time.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">datetime.time.replace()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/59013">gh-59013</a>: Set breakpoint on the first executable line of the function,
instead of the line of function definition when the user do <code class="docutils literal notranslate"><span class="pre">break</span> <span class="pre">func</span></code>
using <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112343">gh-112343</a>: Improve handling of pdb convenience variables to avoid
replacing string contents.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112240">gh-112240</a>: Add option to calendar module CLI to specify the weekday to
start each week. Patch by Steven Ward.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111741">gh-111741</a>: Recognise <code class="docutils literal notranslate"><span class="pre">image/webp</span></code> as a standard format in the
<a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/43457">gh-43457</a>: Fix the <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> widget method <code class="xref py py-meth docutils literal notranslate"><span class="pre">wm_attributes()</span></code>. It
now accepts the attribute name without the minus prefix to get window
attributes and allows to specify attributes and values to set as keyword
arguments. Add new optional keyword argument <em>return_python_dict</em>: calling
<code class="docutils literal notranslate"><span class="pre">w.wm_attributes(return_python_dict=True)</span></code> returns the attributes as a
dict instead of a tuple. Calling <code class="docutils literal notranslate"><span class="pre">w.wm_attributes()</span></code> now returns a tuple
instead of string if <em>wantobjects</em> was set to 0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82626">gh-82626</a>: Many functions now emit a warning if a boolean value is passed
as a file descriptor argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111051">gh-111051</a>: Added check for file modification during debugging with
<a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110345">gh-110345</a>: Show the Tcl/Tk patchlevel (rather than version) in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">tkinter._test()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/38807">gh-38807</a>: Fix race condition in <a class="reference internal" href="../library/trace.html#module-trace" title="trace: Trace or track Python statement execution."><code class="xref py py-mod docutils literal notranslate"><span class="pre">trace</span></code></a>. Instead of checking if a
directory exists and creating it, directly call <a class="reference internal" href="../library/os.html#os.makedirs" title="os.makedirs"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.makedirs()</span></code></a> with
the kwarg <code class="docutils literal notranslate"><span class="pre">exist_ok=True</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/75705">gh-75705</a>: Set unixfrom envelope in <a class="reference internal" href="../library/mailbox.html#mailbox.mbox" title="mailbox.mbox"><code class="xref py py-class docutils literal notranslate"><span class="pre">mailbox.mbox</span></code></a> and
<a class="reference internal" href="../library/mailbox.html#mailbox.MMDF" title="mailbox.MMDF"><code class="xref py py-class docutils literal notranslate"><span class="pre">mailbox.MMDF</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106233">gh-106233</a>: Fix stacklevel in <code class="docutils literal notranslate"><span class="pre">InvalidTZPathWarning</span></code> during
<a class="reference internal" href="../library/zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a> module import.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105102">gh-105102</a>: Allow <a class="reference internal" href="../library/ctypes.html#ctypes.Union" title="ctypes.Union"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.Union</span></code></a> to be nested in
<a class="reference internal" href="../library/ctypes.html#ctypes.Structure" title="ctypes.Structure"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.Structure</span></code></a> when the system endianness is the opposite of
the classes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104282">gh-104282</a>: Fix null pointer dereference in
<code class="xref py py-func docutils literal notranslate"><span class="pre">lzma._decode_filter_properties()</span></code> due to improper handling of BCJ
filters with properties of zero length. Patch by Radislav Chugunov.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96471">gh-96471</a>: Add <a class="reference internal" href="../library/queue.html#queue.Queue" title="queue.Queue"><code class="xref py py-class docutils literal notranslate"><span class="pre">queue.Queue</span></code></a> termination with
<a class="reference internal" href="../library/queue.html#queue.Queue.shutdown" title="queue.Queue.shutdown"><code class="xref py py-meth docutils literal notranslate"><span class="pre">shutdown()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101599">gh-101599</a>: Changed argparse flag options formatting to remove redundancy.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85984">gh-85984</a>: Add POSIX pseudo-terminal functions <a class="reference internal" href="../library/os.html#os.posix_openpt" title="os.posix_openpt"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.posix_openpt()</span></code></a>,
<a class="reference internal" href="../library/os.html#os.grantpt" title="os.grantpt"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.grantpt()</span></code></a>, <a class="reference internal" href="../library/os.html#os.unlockpt" title="os.unlockpt"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.unlockpt()</span></code></a>, and <a class="reference internal" href="../library/os.html#os.ptsname" title="os.ptsname"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.ptsname()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102512">gh-102512</a>: When <a class="reference internal" href="../library/os.html#os.fork" title="os.fork"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fork()</span></code></a> is called from a foreign thread (aka
<code class="docutils literal notranslate"><span class="pre">_DummyThread</span></code>), the type of the thread in a child process is changed to
<code class="docutils literal notranslate"><span class="pre">_MainThread</span></code>. Also changed its name and daemonic status, it can be now
joined.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88569">gh-88569</a>: Add <a class="reference internal" href="../library/os.path.html#os.path.isreserved" title="os.path.isreserved"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.isreserved()</span></code></a>, which identifies reserved
pathnames such as “NUL”, “AUX” and “CON”. This function is only available
on Windows.</p>
<p>Deprecate <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.is_reserved" title="pathlib.PurePath.is_reserved"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.is_reserved()</span></code></a>.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38364">bpo-38364</a>: The <code class="docutils literal notranslate"><span class="pre">inspect</span></code> functions <code class="docutils literal notranslate"><span class="pre">isgeneratorfunction</span></code>,
<code class="docutils literal notranslate"><span class="pre">iscoroutinefunction</span></code>, <code class="docutils literal notranslate"><span class="pre">isasyncgenfunction</span></code> now support
<code class="docutils literal notranslate"><span class="pre">functools.partialmethod</span></code> wrapped functions the same way they support
<code class="docutils literal notranslate"><span class="pre">functools.partial</span></code>.</p></li>
</ul>
</section>
<section id="id144">
<h3>Documentation<a class="headerlink" href="#id144" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115233">gh-115233</a>: Fix an example for <a class="reference internal" href="../library/logging.html#logging.LoggerAdapter" title="logging.LoggerAdapter"><code class="xref py py-class docutils literal notranslate"><span class="pre">LoggerAdapter</span></code></a> in the
Logging Cookbook.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114123">gh-114123</a>: Move the <a class="reference internal" href="../library/csv.html#module-csv" title="csv: Write and read tabular data to and from delimited files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code></a> module docstring to the <code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code> module
instead of reexporting it from the internal <code class="xref py py-mod docutils literal notranslate"><span class="pre">_csv</span></code> module, and
remove <code class="docutils literal notranslate"><span class="pre">__doc__</span></code> from <code class="docutils literal notranslate"><span class="pre">csv.__all__</span></code>.</p>
<p>Move <code class="xref py py-attr docutils literal notranslate"><span class="pre">csv.__version__</span></code> to the <code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code> module instead of
reexporting it from the internal <code class="xref py py-mod docutils literal notranslate"><span class="pre">_csv</span></code> module, and remove
<code class="docutils literal notranslate"><span class="pre">__version__</span></code> from <code class="docutils literal notranslate"><span class="pre">csv.__all__</span></code>.</p>
</li>
</ul>
</section>
<section id="id145">
<h3>Tests<a class="headerlink" href="#id145" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114099">gh-114099</a>: Added test exclusions required to run the test suite on iOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105089">gh-105089</a>: Fix
<code class="docutils literal notranslate"><span class="pre">test.test_zipfile.test_core.TestWithDirectory.test_create_directory_with_write</span></code>
test in AIX by doing a bitwise AND of 0xFFFF on mode , so that it will be
in sync with <code class="docutils literal notranslate"><span class="pre">zinfo.external_attr</span></code></p></li>
</ul>
</section>
<section id="id146">
<h3>Build<a class="headerlink" href="#id146" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115167">gh-115167</a>: Avoid vendoring <code class="docutils literal notranslate"><span class="pre">vcruntime140_threads.dll</span></code> when building with
Visual Studio 2022 version 17.8.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113632">gh-113632</a>: Promote WASI to a tier 2 platform and drop Emscripten from tier
3 in configure.ac.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114099">gh-114099</a>: configure and Makefile were refactored to accommodate framework
builds on Apple platforms other than macOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114875">gh-114875</a>: Add <code class="xref c c-func docutils literal notranslate"><span class="pre">getgrent()</span></code> as a prerequisite for building the
<a class="reference internal" href="../library/grp.html#module-grp" title="grp: The group database (getgrnam() and friends). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">grp</span></code></a> module.</p></li>
</ul>
</section>
<section id="id147">
<h3>Windows<a class="headerlink" href="#id147" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115049">gh-115049</a>: Fixes <code class="docutils literal notranslate"><span class="pre">py.exe</span></code> launcher failing when run as users without
user profiles.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115009">gh-115009</a>: Update Windows installer to use SQLite 3.45.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109991">gh-109991</a>: Update Windows build to use OpenSSL 3.0.13.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111239">gh-111239</a>: Update Windows builds to use zlib v1.3.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100107">gh-100107</a>: The <code class="docutils literal notranslate"><span class="pre">py.exe</span></code> launcher will no longer attempt to run the
Microsoft Store redirector when launching a script containing a
<code class="docutils literal notranslate"><span class="pre">/usr/bin/env</span></code> shebang</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112984">gh-112984</a>: Adds free-threaded binaries to Windows installer as an optional
component.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89240">gh-89240</a>: Allows <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> to create pools of greater than 62
processes.</p></li>
</ul>
</section>
<section id="id148">
<h3>macOS<a class="headerlink" href="#id148" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115009">gh-115009</a>: Update macOS installer to use SQLite 3.45.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109991">gh-109991</a>: Update macOS installer to use OpenSSL 3.0.13.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114490">gh-114490</a>: Add Mach-O linkage support for <a class="reference internal" href="../library/platform.html#platform.architecture" title="platform.architecture"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.architecture()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87804">gh-87804</a>: On macOS the result of <code class="docutils literal notranslate"><span class="pre">os.statvfs</span></code> and <code class="docutils literal notranslate"><span class="pre">os.fstatvfs</span></code> now
correctly report the size of very large disks, in previous versions the
reported number of blocks was wrong for disks with at least 2**32 blocks.</p></li>
</ul>
</section>
<section id="id149">
<h3>IDLE<a class="headerlink" href="#id149" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96905">gh-96905</a>: In idlelib code, stop redefining built-ins ‘dict’ and ‘object’.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103820">gh-103820</a>: Revise IDLE bindings so that events from mouse button 4/5 on
non-X11 windowing systems (i.e. Win32 and Aqua) are not mistaken for
scrolling.</p></li>
</ul>
</section>
<section id="id150">
<h3>Tools/Demos<a class="headerlink" href="#id150" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113516">gh-113516</a>: Don’t set <code class="docutils literal notranslate"><span class="pre">LDSHARED</span></code> when building for WASI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109991">gh-109991</a>: Update GitHub CI workflows to use OpenSSL 3.0.13 and
multissltests to use 1.1.1w, 3.0.13, 3.1.5, and 3.2.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/115015">gh-115015</a>: Fix a bug in Argument Clinic that generated incorrect code for
methods with no parameters that use the <a class="reference internal" href="../c-api/structures.html#meth-method-meth-fastcall-meth-keywords"><span class="std std-ref">METH_METHOD | METH_FASTCALL
| METH_KEYWORDS</span></a> calling
convention. Only the positional parameter count was checked; any keyword
argument passed would be silently accepted.</p></li>
</ul>
</section>
<section id="id151">
<h3>C API<a class="headerlink" href="#id151" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111140">gh-111140</a>: Adds <a class="reference internal" href="../c-api/long.html#c.PyLong_AsNativeBytes" title="PyLong_AsNativeBytes"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsNativeBytes()</span></code></a>,
<a class="reference internal" href="../c-api/long.html#c.PyLong_FromNativeBytes" title="PyLong_FromNativeBytes"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromNativeBytes()</span></code></a> and
<a class="reference internal" href="../c-api/long.html#c.PyLong_FromUnsignedNativeBytes" title="PyLong_FromUnsignedNativeBytes"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromUnsignedNativeBytes()</span></code></a> functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114685">gh-114685</a>: <a class="reference internal" href="../c-api/buffer.html#c.PyBuffer_FillInfo" title="PyBuffer_FillInfo"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBuffer_FillInfo()</span></code></a> now raises a <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> if
called with <a class="reference internal" href="../c-api/memoryview.html#c.PyBUF_READ" title="PyBUF_READ"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyBUF_READ</span></code></a> or <a class="reference internal" href="../c-api/memoryview.html#c.PyBUF_WRITE" title="PyBUF_WRITE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyBUF_WRITE</span></code></a> as flags.
These flags should only be used with the <code class="docutils literal notranslate"><span class="pre">PyMemoryView_*</span></code> C API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114685">gh-114685</a>: <a class="reference internal" href="../c-api/buffer.html#c.PyObject_GetBuffer" title="PyObject_GetBuffer"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GetBuffer()</span></code></a> now raises a <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> if
called with <a class="reference internal" href="../c-api/memoryview.html#c.PyBUF_READ" title="PyBUF_READ"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyBUF_READ</span></code></a> or <a class="reference internal" href="../c-api/memoryview.html#c.PyBUF_WRITE" title="PyBUF_WRITE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyBUF_WRITE</span></code></a> as flags.
These flags should only be used with the <code class="docutils literal notranslate"><span class="pre">PyMemoryView_*</span></code> C API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114626">gh-114626</a>: Add <code class="docutils literal notranslate"><span class="pre">PyCFunctionFast</span></code> and <code class="docutils literal notranslate"><span class="pre">PyCFunctionFastWithKeywords</span></code>
typedefs (identical to the existing <code class="docutils literal notranslate"><span class="pre">_PyCFunctionFast</span></code> and
<code class="docutils literal notranslate"><span class="pre">_PyCFunctionFastWithKeywords</span></code> typedefs, just without a leading <code class="docutils literal notranslate"><span class="pre">_</span></code>
prefix).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114329">gh-114329</a>: Add <a class="reference internal" href="../c-api/list.html#c.PyList_GetItemRef" title="PyList_GetItemRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyList_GetItemRef()</span></code></a>, which is similar to
<a class="reference internal" href="../c-api/list.html#c.PyList_GetItem" title="PyList_GetItem"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyList_GetItem()</span></code></a> but returns a <a class="reference internal" href="../glossary.html#term-strong-reference"><span class="xref std std-term">strong reference</span></a> instead of
a <a class="reference internal" href="../glossary.html#term-borrowed-reference"><span class="xref std std-term">borrowed reference</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110850">gh-110850</a>: Add PyTime C API:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../c-api/time.html#c.PyTime_t" title="PyTime_t"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyTime_t</span></code></a> type.</p></li>
<li><p><a class="reference internal" href="../c-api/time.html#c.PyTime_MIN" title="PyTime_MIN"><code class="xref c c-var docutils literal notranslate"><span class="pre">PyTime_MIN</span></code></a> and <a class="reference internal" href="../c-api/time.html#c.PyTime_MAX" title="PyTime_MAX"><code class="xref c c-var docutils literal notranslate"><span class="pre">PyTime_MAX</span></code></a> constants.</p></li>
<li><p><a class="reference internal" href="../c-api/time.html#c.PyTime_AsSecondsDouble" title="PyTime_AsSecondsDouble"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyTime_AsSecondsDouble()</span></code></a>,
<a class="reference internal" href="../c-api/time.html#c.PyTime_Monotonic" title="PyTime_Monotonic"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyTime_Monotonic()</span></code></a>, <a class="reference internal" href="../c-api/time.html#c.PyTime_PerfCounter" title="PyTime_PerfCounter"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyTime_PerfCounter()</span></code></a>, and
<a class="reference internal" href="../c-api/time.html#c.PyTime_Time" title="PyTime_Time"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyTime_Time()</span></code></a> functions.</p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112066">gh-112066</a>: Add <a class="reference internal" href="../c-api/dict.html#c.PyDict_SetDefaultRef" title="PyDict_SetDefaultRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_SetDefaultRef()</span></code></a>: insert a key and value into
a dictionary if the key is not already present. This is similar to
<a class="reference internal" href="../library/stdtypes.html#dict.setdefault" title="dict.setdefault"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.setdefault()</span></code></a>, but returns an integer value indicating if the
key was already present. It is also similar to
<a class="reference internal" href="../c-api/dict.html#c.PyDict_SetDefault" title="PyDict_SetDefault"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_SetDefault()</span></code></a>, but returns a strong reference instead of a
borrowed reference.</p></li>
</ul>
</section>
</section>
<section id="python-3-13-0-alpha-3">
<h2>Python 3.13.0 alpha 3<a class="headerlink" href="#python-3-13-0-alpha-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2024-01-17</em></p>
<section id="id152">
<h3>Security<a class="headerlink" href="#id152" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113659">gh-113659</a>: Skip <code class="docutils literal notranslate"><span class="pre">.pth</span></code> files with names starting with a dot or hidden
file attribute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112302">gh-112302</a>: Created a Software Bill-of-Materials document and tooling for
tracking dependencies.</p></li>
</ul>
</section>
<section id="id153">
<h3>Core and Builtins<a class="headerlink" href="#id153" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107901">gh-107901</a>: Compiler duplicates basic blocks that have an eval breaker
check, no line number, and multiple predecessors.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107901">gh-107901</a>: A jump leaving an exception handler back to normal code no
longer checks the eval breaker.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113655">gh-113655</a>: Set the C recursion limit to 4000 on Windows, and 10000 on
Linux/OSX. This seems to be near the sweet spot to maintain safety, but
not compromise backwards compatibility.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113710">gh-113710</a>: Add typed stack effects to the interpreter DSL, along with
various instruction annotations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77046">gh-77046</a>: On Windows, file descriptors wrapping Windows handles are now
created non inheritable by default (<span class="target" id="index-79"></span><a class="pep reference external" href="https://peps.python.org/pep-0446/"><strong>PEP 446</strong></a>). Patch by Zackery Spytz
and Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113853">gh-113853</a>: Guarantee that all executors make progress. This then
guarantees that tier 2 execution always makes progress.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113753">gh-113753</a>: Fix an issue where the finalizer of <code class="docutils literal notranslate"><span class="pre">PyAsyncGenASend</span></code> objects
might not be called if they were allocated from a free list.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107901">gh-107901</a>: Compiler changed so that synthetic jumps which are not at loop
end no longer check the eval breaker.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113703">gh-113703</a>: Fix a regression in the <a class="reference internal" href="../library/codeop.html#module-codeop" title="codeop: Compile (possibly incomplete) Python code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">codeop</span></code></a> module that was causing
it to incorrectly identify incomplete f-strings. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89811">gh-89811</a>: Check for a valid <code class="docutils literal notranslate"><span class="pre">tp_version_tag</span></code> before performing bytecode
specializations that rely on this value being usable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111488">gh-111488</a>: Changed error message in case of no ‘in’ keyword after ‘for’ in
list comprehensions</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113657">gh-113657</a>: Fix an issue that caused important instruction pointer updates
to be optimized out of tier two traces.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113603">gh-113603</a>: Fixed bug where a redundant NOP is not removed, causing an
assertion to fail in the compiler in debug mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113602">gh-113602</a>: Fix an error that was causing the parser to try to overwrite
existing errors and crashing in the process. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113486">gh-113486</a>: No longer issue spurious <code class="docutils literal notranslate"><span class="pre">PY_UNWIND</span></code> events for optimized
calls to classes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113297">gh-113297</a>: Fix segfault in the compiler on with statement with 19 context
managers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113212">gh-113212</a>: Improve <a class="reference internal" href="../library/functions.html#super" title="super"><code class="xref py py-class docutils literal notranslate"><span class="pre">super</span></code></a> error messages.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111375">gh-111375</a>: Only use <code class="docutils literal notranslate"><span class="pre">NULL</span></code> in the exception stack to indicate an
exception was handled. Patch by Carey Metcalfe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112215">gh-112215</a>: Increase the C recursion limit by a factor of 3 for non-debug
builds, except for webassembly and s390 platforms which are unchanged.
This mitigates some regressions in 3.12 with deep recursion mixing builtin
(C) and Python code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113054">gh-113054</a>: Fixed bug where a redundant NOP is not removed, causing an
assertion to fail in the compiler in debug mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106905">gh-106905</a>: Use per AST-parser state rather than global state to track
recursion depth within the AST parser to prevent potential race condition
due to simultaneous parsing.</p>
<p>The issue primarily showed up in 3.11 by multithreaded users of
<a class="reference internal" href="../library/ast.html#ast.parse" title="ast.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.parse()</span></code></a>. In 3.12 a change to when garbage collection can be
triggered prevented the race condition from occurring.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108866">gh-108866</a>: Change the API and contract of <code class="docutils literal notranslate"><span class="pre">_PyExecutorObject</span></code> to return
the next_instr pointer, instead of the frame, and to always execute at
least one instruction.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90350">gh-90350</a>: Optimize builtin functions <a class="reference internal" href="../library/functions.html#min" title="min"><code class="xref py py-func docutils literal notranslate"><span class="pre">min()</span></code></a> and <a class="reference internal" href="../library/functions.html#max" title="max"><code class="xref py py-func docutils literal notranslate"><span class="pre">max()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112943">gh-112943</a>: Correctly compute end column offsets for multiline tokens in
the <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a> module. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112125">gh-112125</a>: Fix <code class="docutils literal notranslate"><span class="pre">None.__ne__(None)</span></code> returning <code class="docutils literal notranslate"><span class="pre">NotImplemented</span></code> instead
of <code class="docutils literal notranslate"><span class="pre">False</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74616">gh-74616</a>: <a class="reference internal" href="../library/functions.html#input" title="input"><code class="xref py py-func docutils literal notranslate"><span class="pre">input()</span></code></a> now raises a ValueError when output on the
terminal if the prompt contains embedded null characters instead of
silently truncating it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112716">gh-112716</a>: Fix SystemError in the <code class="docutils literal notranslate"><span class="pre">import</span></code> statement and in
<code class="docutils literal notranslate"><span class="pre">__reduce__()</span></code> methods of builtin types when <code class="docutils literal notranslate"><span class="pre">__builtins__</span></code> is not a
dict.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112730">gh-112730</a>: Use color to highlight error locations in tracebacks. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112625">gh-112625</a>: Fixes a bug where a bytearray object could be cleared while
iterating over an argument in the <code class="docutils literal notranslate"><span class="pre">bytearray.join()</span></code> method that could
result in reading memory after it was freed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112660">gh-112660</a>: Do not clear unexpected errors during formatting error messages
for ImportError and AttributeError for modules.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105967">gh-105967</a>: Workaround a bug in Apple’s macOS platform zlib library where
<a class="reference internal" href="../library/zlib.html#zlib.crc32" title="zlib.crc32"><code class="xref py py-func docutils literal notranslate"><span class="pre">zlib.crc32()</span></code></a> and <a class="reference internal" href="../library/binascii.html#binascii.crc32" title="binascii.crc32"><code class="xref py py-func docutils literal notranslate"><span class="pre">binascii.crc32()</span></code></a> could produce incorrect
results on multi-gigabyte inputs. Including when using <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a> on
zips containing large data.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95754">gh-95754</a>: Provide a better error message when accessing invalid attributes
on partially initialized modules. The origin of the module being accessed
is now included in the message to help with the common issue of shadowing
other modules.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112217">gh-112217</a>: Add check for the type of <code class="docutils literal notranslate"><span class="pre">__cause__</span></code> returned from calling
the type <code class="docutils literal notranslate"><span class="pre">T</span></code> in <code class="docutils literal notranslate"><span class="pre">raise</span> <span class="pre">from</span> <span class="pre">T</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111058">gh-111058</a>: Change coro.cr_frame/gen.gi_frame to return <code class="docutils literal notranslate"><span class="pre">None</span></code> after the
coroutine/generator has been closed. This fixes a bug where
<a class="reference internal" href="../library/inspect.html#inspect.getcoroutinestate" title="inspect.getcoroutinestate"><code class="xref py py-func docutils literal notranslate"><span class="pre">getcoroutinestate()</span></code></a> and <a class="reference internal" href="../library/inspect.html#inspect.getgeneratorstate" title="inspect.getgeneratorstate"><code class="xref py py-func docutils literal notranslate"><span class="pre">getgeneratorstate()</span></code></a>
return the wrong state for a closed coroutine/generator.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112388">gh-112388</a>: Fix an error that was causing the parser to try to overwrite
tokenizer errors. Patch by pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112387">gh-112387</a>: Fix error positions for decoded strings with backwards tokenize
errors. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99606">gh-99606</a>: Make code generated for an empty f-string identical to the code
of an empty normal string.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112367">gh-112367</a>: Avoid undefined behaviour when using the perf trampolines by
not freeing the code arenas until shutdown. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112320">gh-112320</a>: The Tier 2 translator now tracks the confidence level for
staying “on trace” (i.e. not exiting back to the Tier 1 interpreter) for
branch instructions based on the number of bits set in the branch
“counter”. Trace translation ends when the confidence drops below 1/3rd.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109598">gh-109598</a>:
<a class="reference internal" href="../c-api/complex.html#c.PyComplex_RealAsDouble" title="PyComplex_RealAsDouble"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyComplex_RealAsDouble()</span></code></a>/<a class="reference internal" href="../c-api/complex.html#c.PyComplex_ImagAsDouble" title="PyComplex_ImagAsDouble"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyComplex_ImagAsDouble()</span></code></a> now
tries to convert an object to a <a class="reference internal" href="../library/functions.html#complex" title="complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">complex</span></code></a> instance using its
<code class="docutils literal notranslate"><span class="pre">__complex__()</span></code> method before falling back to the <code class="docutils literal notranslate"><span class="pre">__float__()</span></code>
method. Patch by Sergey B Kirpichev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94606">gh-94606</a>: Fix UnicodeEncodeError when <code class="xref py py-func docutils literal notranslate"><span class="pre">email.message.get_payload()</span></code>
reads a message with a Unicode surrogate character and the message content
is not well-formed for surrogateescape encoding. Patch by Sidney
Markowitz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21861">bpo-21861</a>: Use the object’s actual class name in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">_io.FileIO.__repr__()</span></code>, <code class="xref py py-meth docutils literal notranslate"><span class="pre">_io._WindowsConsoleIO()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">_io.TextIOWrapper.__repr__()</span></code>, to make these methods subclass
friendly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45369">bpo-45369</a>: Remove LibreSSL workarounds as per <span class="target" id="index-80"></span><a class="pep reference external" href="https://peps.python.org/pep-0644/"><strong>PEP 644</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34392">bpo-34392</a>: Added <a class="reference internal" href="../library/sys.html#sys._is_interned" title="sys._is_interned"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._is_interned()</span></code></a>.</p></li>
</ul>
</section>
<section id="id154">
<h3>Library<a class="headerlink" href="#id154" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114077">gh-114077</a>: Fix possible <a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> in
<a class="reference internal" href="../library/socket.html#socket.socket.sendfile" title="socket.socket.sendfile"><code class="xref py py-meth docutils literal notranslate"><span class="pre">socket.socket.sendfile()</span></code></a> when pass <em>count</em> larger than 2 GiB on
32-bit platform.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111803">gh-111803</a>: <a class="reference internal" href="../library/plistlib.html#module-plistlib" title="plistlib: Generate and parse Apple plist files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">plistlib</span></code></a> now supports loading more deeply nested lists
in binary format.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114014">gh-114014</a>: Fixed a bug in <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a> where an invalid
string using <code class="docutils literal notranslate"><span class="pre">d</span></code> in the decimals part creates a different error compared
to other invalid letters/characters. Patch by Jeremiah Gabriel Pascual.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108364">gh-108364</a>: <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.iterdump" title="sqlite3.Connection.iterdump"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.iterdump()</span></code></a> now ensures that foreign
key support is disabled before dumping the database schema, if there is
any foreign key violation. Patch by Erlend E. Aasland and Mariusz
Felisiak.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113971">gh-113971</a>: The <a class="reference internal" href="../library/zipfile.html#zipfile.ZipInfo" title="zipfile.ZipInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">zipfile.ZipInfo</span></code></a> previously protected
<code class="docutils literal notranslate"><span class="pre">._compresslevel</span></code> attribute has been made public as <code class="docutils literal notranslate"><span class="pre">.compress_level</span></code>
with the old <code class="docutils literal notranslate"><span class="pre">_compresslevel</span></code> name remaining available as a property to
retain compatibility.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113877">gh-113877</a>: Fix <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> method <code class="docutils literal notranslate"><span class="pre">winfo_pathname()</span></code> on 64-bit
Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113868">gh-113868</a>: Added <a class="reference internal" href="../library/mmap.html#mmap.MAP_NORESERVE" title="mmap.MAP_NORESERVE"><code class="xref py py-data docutils literal notranslate"><span class="pre">mmap.MAP_NORESERVE</span></code></a>, <a class="reference internal" href="../library/mmap.html#mmap.MAP_NOEXTEND" title="mmap.MAP_NOEXTEND"><code class="xref py py-data docutils literal notranslate"><span class="pre">mmap.MAP_NOEXTEND</span></code></a>,
<a class="reference internal" href="../library/mmap.html#mmap.MAP_HASSEMAPHORE" title="mmap.MAP_HASSEMAPHORE"><code class="xref py py-data docutils literal notranslate"><span class="pre">mmap.MAP_HASSEMAPHORE</span></code></a>, <a class="reference internal" href="../library/mmap.html#mmap.MAP_NOCACHE" title="mmap.MAP_NOCACHE"><code class="xref py py-data docutils literal notranslate"><span class="pre">mmap.MAP_NOCACHE</span></code></a>,
<a class="reference internal" href="../library/mmap.html#mmap.MAP_JIT" title="mmap.MAP_JIT"><code class="xref py py-data docutils literal notranslate"><span class="pre">mmap.MAP_JIT</span></code></a>, <a class="reference internal" href="../library/mmap.html#mmap.MAP_RESILIENT_CODESIGN" title="mmap.MAP_RESILIENT_CODESIGN"><code class="xref py py-data docutils literal notranslate"><span class="pre">mmap.MAP_RESILIENT_CODESIGN</span></code></a>,
<a class="reference internal" href="../library/mmap.html#mmap.MAP_RESILIENT_MEDIA" title="mmap.MAP_RESILIENT_MEDIA"><code class="xref py py-data docutils literal notranslate"><span class="pre">mmap.MAP_RESILIENT_MEDIA</span></code></a>, <a class="reference internal" href="../library/mmap.html#mmap.MAP_32BIT" title="mmap.MAP_32BIT"><code class="xref py py-data docutils literal notranslate"><span class="pre">mmap.MAP_32BIT</span></code></a>,
<a class="reference internal" href="../library/mmap.html#mmap.MAP_TRANSLATED_ALLOW_EXECUTE" title="mmap.MAP_TRANSLATED_ALLOW_EXECUTE"><code class="xref py py-data docutils literal notranslate"><span class="pre">mmap.MAP_TRANSLATED_ALLOW_EXECUTE</span></code></a>, <a class="reference internal" href="../library/mmap.html#mmap.MAP_UNIX03" title="mmap.MAP_UNIX03"><code class="xref py py-data docutils literal notranslate"><span class="pre">mmap.MAP_UNIX03</span></code></a> and
<a class="reference internal" href="../library/mmap.html#mmap.MAP_TPRO" title="mmap.MAP_TPRO"><code class="xref py py-data docutils literal notranslate"><span class="pre">mmap.MAP_TPRO</span></code></a>. All of them are <code class="docutils literal notranslate"><span class="pre">mmap(2)</span></code> flags on macOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113848">gh-113848</a>: <a class="reference internal" href="../library/asyncio-task.html#asyncio.TaskGroup" title="asyncio.TaskGroup"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.TaskGroup()</span></code></a> and <a class="reference internal" href="../library/asyncio-task.html#asyncio.timeout" title="asyncio.timeout"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.timeout()</span></code></a> context
managers now handle <a class="reference internal" href="../library/asyncio-exceptions.html#asyncio.CancelledError" title="asyncio.CancelledError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">CancelledError</span></code></a> subclasses as well as
exact <code class="xref py py-exc docutils literal notranslate"><span class="pre">CancelledError</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113661">gh-113661</a>: unittest runner: Don’t exit 5 if tests were skipped. The
intention of exiting 5 was to detect issues where the test suite wasn’t
discovered at all. If we skipped tests, it was correctly discovered.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96037">gh-96037</a>: Insert <a class="reference internal" href="../library/exceptions.html#TimeoutError" title="TimeoutError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TimeoutError</span></code></a> in the context of the exception that
was raised during exiting an expired <a class="reference internal" href="../library/asyncio-task.html#asyncio.timeout" title="asyncio.timeout"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.timeout()</span></code></a> block.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113781">gh-113781</a>: Silence unraisable AttributeError when warnings are emitted
during Python finalization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113238">gh-113238</a>: Add <code class="docutils literal notranslate"><span class="pre">Anchor</span></code> to <code class="docutils literal notranslate"><span class="pre">importlib.resources</span></code> (in order for the
code to comply with the documentation)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111693">gh-111693</a>: <a class="reference internal" href="../library/asyncio-sync.html#asyncio.Condition.wait" title="asyncio.Condition.wait"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.Condition.wait()</span></code></a> now re-raises the same
<code class="xref py py-exc docutils literal notranslate"><span class="pre">CancelledError</span></code> instance that may have caused it to be interrupted.
Fixed race condition in <a class="reference internal" href="../library/asyncio-sync.html#asyncio.Semaphore.acquire" title="asyncio.Semaphore.acquire"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.Semaphore.acquire()</span></code></a> when interrupted
with a <code class="xref py py-exc docutils literal notranslate"><span class="pre">CancelledError</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113791">gh-113791</a>: Add <code class="docutils literal notranslate"><span class="pre">CLOCK_MONOTONIC_RAW_APPROX</span></code> and
<code class="docutils literal notranslate"><span class="pre">CLOCK_UPTIME_RAW_APPROX</span></code> to <a class="reference internal" href="../library/time.html#module-time" title="time: Time access and conversions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">time</span></code></a> on macOS. These are clocks
available on macOS 10.12 or later.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112932">gh-112932</a>: Restore the ability for <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a> to <code class="docutils literal notranslate"><span class="pre">extractall</span></code> from
zip files with a “/” directory entry in them as is commonly added to zips
by some wiki or bug tracker data exporters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113568">gh-113568</a>: Raise deprecation warnings from <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> and
not its private base class <code class="docutils literal notranslate"><span class="pre">PurePathBase</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113594">gh-113594</a>: Fix <a class="reference internal" href="../library/exceptions.html#UnicodeEncodeError" title="UnicodeEncodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeEncodeError</span></code></a> in <a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a> when re-fold
lines that contain unknown-8bit encoded part followed by non-unknown-8bit
encoded part.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113538">gh-113538</a>: In <code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.StreamReaderProtocol.connection_made()</span></code>, there
is callback that logs an error if the task wrapping the “connected
callback” fails. This callback would itself fail if the task was
cancelled. Prevent this by checking whether the task was cancelled first.
If so, close the transport but don’t log an error.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113626">gh-113626</a>: Add support for the <em>allow_code</em> argument in the <a class="reference internal" href="../library/marshal.html#module-marshal" title="marshal: Convert Python objects to streams of bytes and back (with different constraints)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">marshal</span></code></a>
module. Passing <code class="docutils literal notranslate"><span class="pre">allow_code=False</span></code> prevents serialization and
de-serialization of code objects which is incompatible between Python
versions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85567">gh-85567</a>: Fix resource warnings for unclosed files in <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a> and
<a class="reference internal" href="../library/pickletools.html#module-pickletools" title="pickletools: Contains extensive comments about the pickle protocols and pickle-machine opcodes, as well as some useful functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickletools</span></code></a> command line interfaces.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113537">gh-113537</a>: Support loads <code class="docutils literal notranslate"><span class="pre">str</span></code> in <a class="reference internal" href="../library/plistlib.html#plistlib.loads" title="plistlib.loads"><code class="xref py py-func docutils literal notranslate"><span class="pre">plistlib.loads()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89850">gh-89850</a>: Add default implementations of
<a class="reference internal" href="../library/pickle.html#pickle.Pickler.persistent_id" title="pickle.Pickler.persistent_id"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pickle.Pickler.persistent_id()</span></code></a> and
<a class="reference internal" href="../library/pickle.html#pickle.Unpickler.persistent_load" title="pickle.Unpickler.persistent_load"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pickle.Unpickler.persistent_load()</span></code></a> methods in the C implementation.
Calling <code class="docutils literal notranslate"><span class="pre">super().persistent_id()</span></code> and <code class="docutils literal notranslate"><span class="pre">super().persistent_load()</span></code> in
subclasses of the C implementation of <a class="reference internal" href="../library/pickle.html#pickle.Pickler" title="pickle.Pickler"><code class="xref py py-class docutils literal notranslate"><span class="pre">pickle.Pickler</span></code></a> and
<a class="reference internal" href="../library/pickle.html#pickle.Unpickler" title="pickle.Unpickler"><code class="xref py py-class docutils literal notranslate"><span class="pre">pickle.Unpickler</span></code></a> classes no longer causes infinite recursion.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113569">gh-113569</a>: Indicate if there were no actual calls in unittest
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.Mock.assert_has_calls" title="unittest.mock.Mock.assert_has_calls"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assert_has_calls()</span></code></a> failure.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101225">gh-101225</a>: Increase the backlog for
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.connection.Listener" title="multiprocessing.connection.Listener"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.connection.Listener</span></code></a> objects created by
<code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing.manager</span></code> and <code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing.resource_sharer</span></code>
to significantly reduce the risk of getting a connection refused error
when creating a <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.connection.Connection" title="multiprocessing.connection.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.connection.Connection</span></code></a> to them.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113568">gh-113568</a>: Raise audit events from <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> and not its
private base class <code class="docutils literal notranslate"><span class="pre">PathBase</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113543">gh-113543</a>: Make sure that <code class="docutils literal notranslate"><span class="pre">webbrowser.MacOSXOSAScript</span></code> sends
<code class="docutils literal notranslate"><span class="pre">webbrowser.open</span></code> audit event.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113028">gh-113028</a>: When a second reference to a string appears in the input to
<a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a>, and the Python implementation is in use, we are guaranteed
that a single copy gets pickled and a single object is shared when
reloaded. Previously, in protocol 0, when a string contained certain
characters (e.g. newline) it resulted in duplicate objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113421">gh-113421</a>: Fix multiprocessing logger for <code class="docutils literal notranslate"><span class="pre">%(filename)s</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111784">gh-111784</a>: Fix segfaults in the <code class="docutils literal notranslate"><span class="pre">_elementtree</span></code> module. Fix first
segfault during deallocation of <code class="docutils literal notranslate"><span class="pre">_elementtree.XMLParser</span></code> instances by
keeping strong reference to <code class="docutils literal notranslate"><span class="pre">pyexpat</span></code> module in module state for capsule
lifetime. Fix second segfault which happens in the same deallocation
process by keeping strong reference to <code class="docutils literal notranslate"><span class="pre">_elementtree</span></code> module in
<code class="docutils literal notranslate"><span class="pre">XMLParser</span></code> structure for <code class="docutils literal notranslate"><span class="pre">_elementtree</span></code> module lifetime.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113407">gh-113407</a>: Fix import of <a class="reference internal" href="../library/unittest.mock.html#module-unittest.mock" title="unittest.mock: Mock object library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest.mock</span></code></a> when CPython is built
without docstrings.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113320">gh-113320</a>: Fix regression in Python 3.12 where <a class="reference internal" href="../library/typing.html#typing.Protocol" title="typing.Protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">Protocol</span></code></a>
classes that were not marked as <a class="reference internal" href="../library/typing.html#typing.runtime_checkable" title="typing.runtime_checkable"><code class="xref py py-func docutils literal notranslate"><span class="pre">runtime-checkable</span></code></a> would be unnecessarily introspected,
potentially causing exceptions to be raised if the protocol had
problematic members. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/53502">gh-53502</a>: Add a new option <code class="docutils literal notranslate"><span class="pre">aware_datetime</span></code> in <a class="reference internal" href="../library/plistlib.html#module-plistlib" title="plistlib: Generate and parse Apple plist files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">plistlib</span></code></a> to loads
or dumps aware datetime.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113358">gh-113358</a>: Fix rendering tracebacks with exceptions with a broken
__getattr__</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113214">gh-113214</a>: Fix an <code class="docutils literal notranslate"><span class="pre">AttributeError</span></code> during asyncio SSL protocol aborts in
SSL-over-SSL scenarios.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113246">gh-113246</a>: Update bundled pip to 23.3.2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87264">gh-87264</a>: Fixed tarfile list() method to show file type.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112182">gh-112182</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.futures.Future.set_exception()</span></code> now transforms
<a class="reference internal" href="../library/exceptions.html#StopIteration" title="StopIteration"><code class="xref py py-exc docutils literal notranslate"><span class="pre">StopIteration</span></code></a> into <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> instead of hanging or other
misbehavior. Patch contributed by Jamie Phan.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113225">gh-113225</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> by using
<a class="reference internal" href="../library/os.html#os.DirEntry.path" title="os.DirEntry.path"><code class="xref py py-attr docutils literal notranslate"><span class="pre">os.DirEntry.path</span></code></a> where possible.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113149">gh-113149</a>: Improve error message when a JSON array or object contains a
trailing comma. Patch by Carson Radtke.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113117">gh-113117</a>: The <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module can now use the
<a class="reference internal" href="../library/os.html#os.posix_spawn" title="os.posix_spawn"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.posix_spawn()</span></code></a> function with <code class="docutils literal notranslate"><span class="pre">close_fds=True</span></code> on platforms where
<code class="docutils literal notranslate"><span class="pre">posix_spawn_file_actions_addclosefrom_np</span></code> is available. Patch by Jakub
Kulik.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113199">gh-113199</a>: Make <code class="docutils literal notranslate"><span class="pre">http.client.HTTPResponse.read1</span></code> and
<code class="docutils literal notranslate"><span class="pre">http.client.HTTPResponse.readline</span></code> close IO after reading all data when
content length is known. Patch by Illia Volochii.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113191">gh-113191</a>: Add support of <a class="reference internal" href="../library/os.html#os.fchmod" title="os.fchmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fchmod()</span></code></a> and a file descriptor in
<a class="reference internal" href="../library/os.html#os.chmod" title="os.chmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.chmod()</span></code></a> on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113188">gh-113188</a>: Fix <a class="reference internal" href="../library/shutil.html#shutil.copymode" title="shutil.copymode"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copymode()</span></code></a> and <a class="reference internal" href="../library/shutil.html#shutil.copystat" title="shutil.copystat"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copystat()</span></code></a> on
Windows. Previously they worked differently if <em>dst</em> is a symbolic link:
they modified the permission bits of <em>dst</em> itself rather than the file it
points to if <em>follow_symlinks</em> is true or <em>src</em> is not a symbolic link,
and did not modify the permission bits if <em>follow_symlinks</em> is false and
<em>src</em> is a symbolic link.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113119">gh-113119</a>: <a class="reference internal" href="../library/os.html#os.posix_spawn" title="os.posix_spawn"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.posix_spawn()</span></code></a> now accepts <code class="docutils literal notranslate"><span class="pre">env=None</span></code>, which makes
the newly spawned process use the current process environment. Patch by
Jakub Kulik.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113202">gh-113202</a>: Add a <code class="docutils literal notranslate"><span class="pre">strict</span></code> option to <code class="docutils literal notranslate"><span class="pre">batched()</span></code> in the <code class="docutils literal notranslate"><span class="pre">itertools</span></code>
module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/61648">gh-61648</a>: Detect line numbers of properties in doctests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113175">gh-113175</a>: Sync with importlib_metadata 7.0, including improved type
annotations, fixed issue with symlinked packages in
<code class="docutils literal notranslate"><span class="pre">package_distributions</span></code>, added <code class="docutils literal notranslate"><span class="pre">EntryPoints.__repr__</span></code>, introduced the
<code class="docutils literal notranslate"><span class="pre">diagnose</span></code> script, added <code class="docutils literal notranslate"><span class="pre">Distribution.origin</span></code> property, and removed
deprecated <code class="docutils literal notranslate"><span class="pre">EntryPoint</span></code> access by numeric index (tuple behavior).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/59616">gh-59616</a>: Add support of <a class="reference internal" href="../library/os.html#os.lchmod" title="os.lchmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.lchmod()</span></code></a> and the <em>follow_symlinks</em>
argument in <a class="reference internal" href="../library/os.html#os.chmod" title="os.chmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.chmod()</span></code></a> on Windows. Note that the default value of
<em>follow_symlinks</em> in <code class="xref py py-func docutils literal notranslate"><span class="pre">os.lchmod()</span></code> is <code class="docutils literal notranslate"><span class="pre">False</span></code> on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112559">gh-112559</a>: <a class="reference internal" href="../library/signal.html#signal.signal" title="signal.signal"><code class="xref py py-func docutils literal notranslate"><span class="pre">signal.signal()</span></code></a> and <a class="reference internal" href="../library/signal.html#signal.getsignal" title="signal.getsignal"><code class="xref py py-func docutils literal notranslate"><span class="pre">signal.getsignal()</span></code></a> no longer
call <code class="docutils literal notranslate"><span class="pre">repr</span></code> on callable handlers. <a class="reference internal" href="../library/asyncio-runner.html#asyncio.run" title="asyncio.run"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.run()</span></code></a> and
<a class="reference internal" href="../library/asyncio-runner.html#asyncio.Runner.run" title="asyncio.Runner.run"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Runner.run()</span></code></a> no longer call <code class="docutils literal notranslate"><span class="pre">repr</span></code> on the task results.
Patch by Yilei Yang.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112962">gh-112962</a>: <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> module functions add cache information to the
<a class="reference internal" href="../library/dis.html#dis.Instruction" title="dis.Instruction"><code class="xref py py-class docutils literal notranslate"><span class="pre">Instruction</span></code></a> instance rather than creating fake
<a class="reference internal" href="../library/dis.html#dis.Instruction" title="dis.Instruction"><code class="xref py py-class docutils literal notranslate"><span class="pre">Instruction</span></code></a> instances to represent the cache entries.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112989">gh-112989</a>: Reduce overhead to connect sockets with <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>
SelectorEventLoop.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112970">gh-112970</a>: Use <code class="xref c c-func docutils literal notranslate"><span class="pre">closefrom()</span></code> on Linux where available (e.g.
glibc-2.34), rather than only FreeBSD.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110190">gh-110190</a>: Fix ctypes structs with array on PPC64LE platform by setting
<code class="docutils literal notranslate"><span class="pre">MAX_STRUCT_SIZE</span></code> to 64 in stgdict. Patch by Diego Russo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112540">gh-112540</a>: The statistics.geometric_mean() function now returns zero for
datasets containing a zero. Formerly, it would raise an exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87286">gh-87286</a>: Added <code class="xref py py-const docutils literal notranslate"><span class="pre">LOG_FTP</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">LOG_NETINFO</span></code>,
<code class="xref py py-const docutils literal notranslate"><span class="pre">LOG_REMOTEAUTH</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">LOG_INSTALL</span></code>, <code class="xref py py-const docutils literal notranslate"><span class="pre">LOG_RAS</span></code>, and
<code class="xref py py-const docutils literal notranslate"><span class="pre">LOG_LAUNCHD</span></code> tot the <a class="reference internal" href="../library/syslog.html#module-syslog" title="syslog: An interface to the Unix syslog library routines. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">syslog</span></code></a> module, all of them constants
on used on macOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112800">gh-112800</a>: Fix <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> <code class="docutils literal notranslate"><span class="pre">SubprocessTransport.close()</span></code> not to throw
<code class="docutils literal notranslate"><span class="pre">PermissionError</span></code> when used with setuid executables.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/51944">gh-51944</a>: Add the following constants to the <a class="reference internal" href="../library/termios.html#module-termios" title="termios: POSIX style tty control. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">termios</span></code></a> module. These
values are present in macOS system headers: <code class="docutils literal notranslate"><span class="pre">ALTWERASE</span></code>, <code class="docutils literal notranslate"><span class="pre">B14400</span></code>,
<code class="docutils literal notranslate"><span class="pre">B28800</span></code>, <code class="docutils literal notranslate"><span class="pre">B7200</span></code>, <code class="docutils literal notranslate"><span class="pre">B76800</span></code>, <code class="docutils literal notranslate"><span class="pre">CCAR_OFLOW</span></code>, <code class="docutils literal notranslate"><span class="pre">CCTS_OFLOW</span></code>,
<code class="docutils literal notranslate"><span class="pre">CDSR_OFLOW</span></code>, <code class="docutils literal notranslate"><span class="pre">CDTR_IFLOW</span></code>, <code class="docutils literal notranslate"><span class="pre">CIGNORE</span></code>, <code class="docutils literal notranslate"><span class="pre">CRTS_IFLOW</span></code>, <code class="docutils literal notranslate"><span class="pre">EXTPROC</span></code>,
<code class="docutils literal notranslate"><span class="pre">IUTF8</span></code>, <code class="docutils literal notranslate"><span class="pre">MDMBUF</span></code>, <code class="docutils literal notranslate"><span class="pre">NL2</span></code>, <code class="docutils literal notranslate"><span class="pre">NL3</span></code>, <code class="docutils literal notranslate"><span class="pre">NOKERNINFO</span></code>, <code class="docutils literal notranslate"><span class="pre">ONOEOT</span></code>,
<code class="docutils literal notranslate"><span class="pre">OXTABS</span></code>, <code class="docutils literal notranslate"><span class="pre">VDSUSP</span></code>, <code class="docutils literal notranslate"><span class="pre">VSTATUS</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79325">gh-79325</a>: Fix an infinite recursion error in
<a class="reference internal" href="../library/tempfile.html#tempfile.TemporaryDirectory" title="tempfile.TemporaryDirectory"><code class="xref py py-func docutils literal notranslate"><span class="pre">tempfile.TemporaryDirectory()</span></code></a> cleanup on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94692">gh-94692</a>: <a class="reference internal" href="../library/shutil.html#shutil.rmtree" title="shutil.rmtree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code></a> now only catches OSError exceptions.
Previously a symlink attack resistant version of <code class="docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code> could
ignore or pass to the error handler arbitrary exception when invalid
arguments were provided.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112736">gh-112736</a>: The use of del-safe symbols in <code class="docutils literal notranslate"><span class="pre">subprocess</span></code> was refactored to
allow for use in cross-platform build environments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112727">gh-112727</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path.absolute" title="pathlib.Path.absolute"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.absolute()</span></code></a>. Patch by Barney Gale.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74690">gh-74690</a>: Speedup <a class="reference internal" href="../library/functions.html#issubclass" title="issubclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">issubclass()</span></code></a> checks against simple
<a class="reference internal" href="../library/typing.html#typing.runtime_checkable" title="typing.runtime_checkable"><code class="xref py py-func docutils literal notranslate"><span class="pre">runtime-checkable</span> <span class="pre">protocols</span></code></a> by around
6%. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74690">gh-74690</a>: Speedup <a class="reference internal" href="../library/functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal notranslate"><span class="pre">isinstance()</span></code></a> checks by roughly 20% for
<a class="reference internal" href="../library/typing.html#typing.runtime_checkable" title="typing.runtime_checkable"><code class="xref py py-func docutils literal notranslate"><span class="pre">runtime-checkable</span> <span class="pre">protocols</span></code></a> that only
have one callable member. Speedup <a class="reference internal" href="../library/functions.html#issubclass" title="issubclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">issubclass()</span></code></a> checks for these
protocols by roughly 10%. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112645">gh-112645</a>: Remove deprecation error on passing <code class="docutils literal notranslate"><span class="pre">onerror</span></code> to
<a class="reference internal" href="../library/shutil.html#shutil.rmtree" title="shutil.rmtree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112640">gh-112640</a>: Add <code class="docutils literal notranslate"><span class="pre">kwdefaults</span></code> parameter to <a class="reference internal" href="../library/types.html#types.FunctionType" title="types.FunctionType"><code class="xref py py-data docutils literal notranslate"><span class="pre">types.FunctionType</span></code></a> to
set default keyword argument values.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112622">gh-112622</a>: Ensure <code class="docutils literal notranslate"><span class="pre">name</span></code> parameter is passed to event loop in
<a class="reference internal" href="../library/asyncio-task.html#asyncio.create_task" title="asyncio.create_task"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.create_task()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112618">gh-112618</a>: Fix a caching bug relating to <a class="reference internal" href="../library/typing.html#typing.Annotated" title="typing.Annotated"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Annotated</span></code></a>.
<code class="docutils literal notranslate"><span class="pre">Annotated[str,</span> <span class="pre">True]</span></code> is no longer identical to <code class="docutils literal notranslate"><span class="pre">Annotated[str,</span> <span class="pre">1]</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112334">gh-112334</a>: Fixed a performance regression in 3.12’s <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> on
Linux where it would no longer use the fast-path <code class="docutils literal notranslate"><span class="pre">vfork()</span></code> system call
when it could have due to a logic bug, instead falling back to the safe
but slower <code class="docutils literal notranslate"><span class="pre">fork()</span></code>.</p>
<p>Also fixed a second 3.12.0 potential security bug. If a value of
<code class="docutils literal notranslate"><span class="pre">extra_groups=[]</span></code> was passed to <a class="reference internal" href="../library/subprocess.html#subprocess.Popen" title="subprocess.Popen"><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess.Popen</span></code></a> or related APIs,
the underlying <code class="docutils literal notranslate"><span class="pre">setgroups(0,</span> <span class="pre">NULL)</span></code> system call to clear the groups list
would not be made in the child process prior to <code class="docutils literal notranslate"><span class="pre">exec()</span></code>.</p>
<p>This was identified via code inspection in the process of fixing the first
bug.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110190">gh-110190</a>: Fix ctypes structs with array on Arm platform by setting
<code class="docutils literal notranslate"><span class="pre">MAX_STRUCT_SIZE</span></code> to 32 in stgdict. Patch by Diego Russo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81194">gh-81194</a>: Fix a crash in <a class="reference internal" href="../library/socket.html#socket.if_indextoname" title="socket.if_indextoname"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.if_indextoname()</span></code></a> with specific value
(UINT_MAX). Fix an integer overflow in <a class="reference internal" href="../library/socket.html#socket.if_indextoname" title="socket.if_indextoname"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.if_indextoname()</span></code></a> on
64-bit non-Windows platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112578">gh-112578</a>: Fix a spurious <a class="reference internal" href="../library/exceptions.html#RuntimeWarning" title="RuntimeWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeWarning</span></code></a> when executing the
<a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112516">gh-112516</a>: Update the bundled copy of pip to version 23.3.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112510">gh-112510</a>: Add <a class="reference internal" href="../library/readline.html#readline.backend" title="readline.backend"><code class="xref py py-data docutils literal notranslate"><span class="pre">readline.backend</span></code></a> for the backend readline uses
(<code class="docutils literal notranslate"><span class="pre">editline</span></code> or <code class="docutils literal notranslate"><span class="pre">readline</span></code>)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112328">gh-112328</a>: [Enum] Make <code class="docutils literal notranslate"><span class="pre">EnumDict</span></code>, <code class="docutils literal notranslate"><span class="pre">EnumDict.member_names</span></code>,
<code class="docutils literal notranslate"><span class="pre">EnumType._add_alias_</span></code> and <code class="docutils literal notranslate"><span class="pre">EnumType._add_value_alias_</span></code> public.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112509">gh-112509</a>: Fix edge cases that could cause a key to be present in both the
<code class="docutils literal notranslate"><span class="pre">__required_keys__</span></code> and <code class="docutils literal notranslate"><span class="pre">__optional_keys__</span></code> attributes of a
<a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypedDict</span></code></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101336">gh-101336</a>: Add <code class="docutils literal notranslate"><span class="pre">keep_alive</span></code> keyword parameter for
<code class="xref py py-meth docutils literal notranslate"><span class="pre">AbstractEventLoop.create_server()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">BaseEventLoop.create_server()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/63284">gh-63284</a>: Added support for TLS-PSK (pre-shared key) mode to the
<a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112414">gh-112414</a>: Fix regression in Python 3.12 where calling <a class="reference internal" href="../library/functions.html#repr" title="repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">repr()</span></code></a> on a
module that had been imported using a custom <a class="reference internal" href="../glossary.html#term-loader"><span class="xref std std-term">loader</span></a> could fail
with <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a>. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112358">gh-112358</a>: Revert change to <a class="reference internal" href="../library/struct.html#struct.Struct" title="struct.Struct"><code class="xref py py-class docutils literal notranslate"><span class="pre">struct.Struct</span></code></a> initialization that
broke some cases of subclassing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112405">gh-112405</a>: Optimize <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.relative_to" title="pathlib.PurePath.relative_to"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.relative_to()</span></code></a>. Patch by Alex
Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94722">gh-94722</a>: Fix bug where comparison between instances of
<a class="reference internal" href="../library/doctest.html#doctest.DocTest" title="doctest.DocTest"><code class="xref py py-class docutils literal notranslate"><span class="pre">DocTest</span></code></a> fails if one of them has <code class="docutils literal notranslate"><span class="pre">None</span></code> as its lineno.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112361">gh-112361</a>: Speed up a small handful of <a class="reference internal" href="../library/pathlib.html#module-pathlib" title="pathlib: Object-oriented filesystem paths"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pathlib</span></code></a> methods by removing
some temporary objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112345">gh-112345</a>: Improve error message when trying to call <a class="reference internal" href="../library/functions.html#issubclass" title="issubclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">issubclass()</span></code></a>
against a <a class="reference internal" href="../library/typing.html#typing.Protocol" title="typing.Protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Protocol</span></code></a> that has non-method members. Patch by
Randolf Scholz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112137">gh-112137</a>: Change <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> output to display no-lineno as “–” instead
of “None”.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112332">gh-112332</a>: Deprecate the <code class="docutils literal notranslate"><span class="pre">exc_type</span></code> field of
<a class="reference internal" href="../library/traceback.html#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">traceback.TracebackException</span></code></a>. Add <code class="docutils literal notranslate"><span class="pre">exc_type_str</span></code> to replace it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81620">gh-81620</a>: Add extra tests for <a class="reference internal" href="../library/random.html#random.binomialvariate" title="random.binomialvariate"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.binomialvariate()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112292">gh-112292</a>: Fix a crash in <a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a> when imported from a sub
interpreter. Patch by Anthony Shaw</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77621">gh-77621</a>: Slightly improve the import time of the <a class="reference internal" href="../library/pathlib.html#module-pathlib" title="pathlib: Object-oriented filesystem paths"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pathlib</span></code></a> module by
deferring some imports. Patch by Barney Gale.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112137">gh-112137</a>: Change <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> output to display logical labels for jump
targets instead of offsets.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112139">gh-112139</a>: Add <code class="xref py py-meth docutils literal notranslate"><span class="pre">Signature.format()</span></code> to format signatures to string
with extra options. And use it in <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a> to render more readable
signatures that have new lines between parameters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112105">gh-112105</a>: Make <a class="reference internal" href="../library/readline.html#readline.set_completer_delims" title="readline.set_completer_delims"><code class="xref py py-func docutils literal notranslate"><span class="pre">readline.set_completer_delims()</span></code></a> work with libedit</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106922">gh-106922</a>: Display multiple lines with <code class="docutils literal notranslate"><span class="pre">traceback</span></code> when errors span
multiple lines.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111874">gh-111874</a>: When creating a <a class="reference internal" href="../library/typing.html#typing.NamedTuple" title="typing.NamedTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NamedTuple</span></code></a> class, ensure
<a class="reference internal" href="../reference/datamodel.html#object.__set_name__" title="object.__set_name__"><code class="xref py py-func docutils literal notranslate"><span class="pre">__set_name__()</span></code></a> is called on all objects that define
<code class="docutils literal notranslate"><span class="pre">__set_name__</span></code> and exist in the values of the <code class="docutils literal notranslate"><span class="pre">NamedTuple</span></code> class’s
class dictionary. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/68166">gh-68166</a>: Add support of the “vsapi” element type in
<a class="reference internal" href="../library/tkinter.ttk.html#tkinter.ttk.Style.element_create" title="tkinter.ttk.Style.element_create"><code class="xref py py-meth docutils literal notranslate"><span class="pre">tkinter.ttk.Style.element_create()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110275">gh-110275</a>: Named tuple’s methods <code class="docutils literal notranslate"><span class="pre">_replace()</span></code> and <code class="docutils literal notranslate"><span class="pre">__replace__()</span></code> now
raise TypeError instead of ValueError for invalid keyword arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99367">gh-99367</a>: Do not mangle <code class="docutils literal notranslate"><span class="pre">sys.path[0]</span></code> in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> if safe_path is set</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111615">gh-111615</a>: Fix a regression caused by a fix to <a class="reference external" href="https://github.com/python/cpython/issues/93162">gh-93162</a> whereby you
couldn’t configure a <code class="xref py py-class docutils literal notranslate"><span class="pre">QueueHandler</span></code> without specifying handlers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/75666">gh-75666</a>: Fix the behavior of <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> widget’s <code class="docutils literal notranslate"><span class="pre">unbind()</span></code> method
with two arguments. Previously, <code class="docutils literal notranslate"><span class="pre">widget.unbind(sequence,</span> <span class="pre">funcid)</span></code>
destroyed the current binding for <em>sequence</em>, leaving <em>sequence</em> unbound,
and deleted the <em>funcid</em> command. Now it removes only <em>funcid</em> from the
binding for <em>sequence</em>, keeping other commands, and deletes the <em>funcid</em>
command. It leaves <em>sequence</em> unbound only if <em>funcid</em> was the last bound
command.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/67790">gh-67790</a>: Implement basic formatting support (minimum width, alignment,
fill) for <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111049">gh-111049</a>: Fix crash during garbage collection of the <a class="reference internal" href="../library/io.html#io.BytesIO" title="io.BytesIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.BytesIO</span></code></a>
buffer object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102980">gh-102980</a>: Redirect the output of <code class="docutils literal notranslate"><span class="pre">interact</span></code> command of <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> to
the same channel as the debugger. Add tests and improve docs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102988">gh-102988</a>: <a class="reference internal" href="../library/email.utils.html#email.utils.getaddresses" title="email.utils.getaddresses"><code class="xref py py-func docutils literal notranslate"><span class="pre">email.utils.getaddresses()</span></code></a> and
<a class="reference internal" href="../library/email.utils.html#email.utils.parseaddr" title="email.utils.parseaddr"><code class="xref py py-func docutils literal notranslate"><span class="pre">email.utils.parseaddr()</span></code></a> now return <code class="docutils literal notranslate"><span class="pre">('',</span> <span class="pre">'')</span></code> 2-tuples in more
situations where invalid email addresses are encountered instead of
potentially inaccurate values. Add optional <em>strict</em> parameter to these
two functions: use <code class="docutils literal notranslate"><span class="pre">strict=False</span></code> to get the old behavior, accept
malformed inputs. <code class="docutils literal notranslate"><span class="pre">getattr(email.utils,</span> <span class="pre">'supports_strict_parsing',</span>
<span class="pre">False)</span></code> can be use to check if the <em>strict</em> parameter is available. Patch
by Thomas Dwyer and Victor Stinner to improve the <span class="target" id="index-81"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2023-27043"><strong>CVE 2023-27043</strong></a> fix.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/52161">gh-52161</a>: <a class="reference internal" href="../library/cmd.html#cmd.Cmd.do_help" title="cmd.Cmd.do_help"><code class="xref py py-meth docutils literal notranslate"><span class="pre">cmd.Cmd.do_help()</span></code></a> now cleans docstrings with
<a class="reference internal" href="../library/inspect.html#inspect.cleandoc" title="inspect.cleandoc"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.cleandoc()</span></code></a> before writing them. Patch by Filip Łapkiewicz.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82300">gh-82300</a>: Add <code class="docutils literal notranslate"><span class="pre">track</span></code> parameter to
<a class="reference internal" href="../library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.SharedMemory" title="multiprocessing.shared_memory.SharedMemory"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.shared_memory.SharedMemory</span></code></a> that allows using
shared memory blocks without having to register with the POSIX resource
tracker that automatically releases them upon process exit.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110109">gh-110109</a>: Add private <code class="docutils literal notranslate"><span class="pre">pathlib._PurePathBase</span></code> class: a base class for
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> that omits certain magic methods. It may be made
public (along with <code class="docutils literal notranslate"><span class="pre">_PathBase</span></code>) in future.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109858">gh-109858</a>: Protect <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a> from “quoted-overlap” zipbomb. It now
raises BadZipFile when try to read an entry that overlaps with other entry
or central directory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109786">gh-109786</a>: Fix possible reference leaks and crash when re-enter the
<code class="docutils literal notranslate"><span class="pre">__next__()</span></code> method of <a class="reference internal" href="../library/itertools.html#itertools.pairwise" title="itertools.pairwise"><code class="xref py py-class docutils literal notranslate"><span class="pre">itertools.pairwise</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91539">gh-91539</a>: Small (10 - 20%) and trivial performance improvement of
<code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.getproxies_environment()</span></code>, typically useful when there
are many environment variables to go over.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103363">gh-103363</a>: Add <em>follow_symlinks</em> keyword-only argument to
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.owner" title="pathlib.Path.owner"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.owner()</span></code></a> and <a class="reference internal" href="../library/pathlib.html#pathlib.Path.group" title="pathlib.Path.group"><code class="xref py py-meth docutils literal notranslate"><span class="pre">group()</span></code></a>, defaulting to
<code class="docutils literal notranslate"><span class="pre">True</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102130">gh-102130</a>: Support tab completion in <a class="reference internal" href="../library/cmd.html#module-cmd" title="cmd: Build line-oriented command interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">cmd</span></code></a> for <code class="docutils literal notranslate"><span class="pre">editline</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99437">gh-99437</a>: <a class="reference internal" href="../library/runpy.html#runpy.run_path" title="runpy.run_path"><code class="xref py py-func docutils literal notranslate"><span class="pre">runpy.run_path()</span></code></a> now decodes path-like objects, making
sure __file__ and sys.argv[0] of the module being run are always strings.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104003">gh-104003</a>: Add <a class="reference internal" href="../library/warnings.html#warnings.deprecated" title="warnings.deprecated"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.deprecated()</span></code></a>, a decorator to mark deprecated
functions to static type checkers and to warn on usage of deprecated
classes and functions. See <span class="target" id="index-82"></span><a class="pep reference external" href="https://peps.python.org/pep-0702/"><strong>PEP 702</strong></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103708">gh-103708</a>: Make hardcoded python name, a configurable parameter so that
different implementations of python can override it instead of making huge
diffs in sysconfig.py</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/66515">gh-66515</a>: <a class="reference internal" href="../library/mailbox.html#mailbox.MH" title="mailbox.MH"><code class="xref py py-class docutils literal notranslate"><span class="pre">mailbox.MH</span></code></a> now supports folders that do not contain a
<code class="docutils literal notranslate"><span class="pre">.mh_sequences</span></code> file (e.g. Claws Mail IMAP-cache folders). Patch by
Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83162">gh-83162</a>: Renamed <code class="xref py py-exc docutils literal notranslate"><span class="pre">re.error</span></code> to <code class="xref py py-exc docutils literal notranslate"><span class="pre">PatternError</span></code> for clarity, and
kept <code class="xref py py-exc docutils literal notranslate"><span class="pre">re.error</span></code> for backward compatibility. Patch by Matthias
Bussonnier and Adam Chhina.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91133">gh-91133</a>: Fix a bug in <a class="reference internal" href="../library/tempfile.html#tempfile.TemporaryDirectory" title="tempfile.TemporaryDirectory"><code class="xref py py-class docutils literal notranslate"><span class="pre">tempfile.TemporaryDirectory</span></code></a> cleanup, which
now no longer dereferences symlinks when working around file system
permission errors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43153">bpo-43153</a>: On Windows, <code class="docutils literal notranslate"><span class="pre">tempfile.TemporaryDirectory</span></code> previously masked a
<code class="docutils literal notranslate"><span class="pre">PermissionError</span></code> with <code class="docutils literal notranslate"><span class="pre">NotADirectoryError</span></code> during directory cleanup.
It now correctly raises <code class="docutils literal notranslate"><span class="pre">PermissionError</span></code> if errors are not ignored.
Patch by Andrei Kulakov and Ken Jin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32731">bpo-32731</a>: <a class="reference internal" href="../library/getpass.html#getpass.getuser" title="getpass.getuser"><code class="xref py py-func docutils literal notranslate"><span class="pre">getpass.getuser()</span></code></a> now raises <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> for all
failures rather than <a class="reference internal" href="../library/exceptions.html#ImportError" title="ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a> on systems lacking the <a class="reference internal" href="../library/pwd.html#module-pwd" title="pwd: The password database (getpwnam() and friends). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pwd</span></code></a>
module or <a class="reference internal" href="../library/exceptions.html#KeyError" title="KeyError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyError</span></code></a> if the password database is empty.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34321">bpo-34321</a>: <a class="reference internal" href="../library/mmap.html#mmap.mmap" title="mmap.mmap"><code class="xref py py-class docutils literal notranslate"><span class="pre">mmap.mmap</span></code></a> now has a <em>trackfd</em> parameter on Unix; if it
is <code class="docutils literal notranslate"><span class="pre">False</span></code>, the file descriptor specified by <em>fileno</em> will not be
duplicated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35332">bpo-35332</a>: The <a class="reference internal" href="../library/shutil.html#shutil.rmtree" title="shutil.rmtree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code></a> function now ignores errors when
calling <a class="reference internal" href="../library/os.html#os.close" title="os.close"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.close()</span></code></a> when <em>ignore_errors</em> is <code class="docutils literal notranslate"><span class="pre">True</span></code>, and
<a class="reference internal" href="../library/os.html#os.close" title="os.close"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.close()</span></code></a> no longer retried after error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35928">bpo-35928</a>: <a class="reference internal" href="../library/io.html#io.TextIOWrapper" title="io.TextIOWrapper"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.TextIOWrapper</span></code></a> now correctly handles the decoding
buffer after <code class="docutils literal notranslate"><span class="pre">read()</span></code> and <code class="docutils literal notranslate"><span class="pre">write()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26791">bpo-26791</a>: <a class="reference internal" href="../library/shutil.html#shutil.move" title="shutil.move"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.move()</span></code></a> now moves a symlink into a directory when
that directory is the target of the symlink. This provides the same
behavior as the mv shell command. The previous behavior raised an
exception. Patch by Jeffrey Kintscher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41422">bpo-41422</a>: Fixed memory leaks of <a class="reference internal" href="../library/pickle.html#pickle.Pickler" title="pickle.Pickler"><code class="xref py py-class docutils literal notranslate"><span class="pre">pickle.Pickler</span></code></a> and
<a class="reference internal" href="../library/pickle.html#pickle.Unpickler" title="pickle.Unpickler"><code class="xref py py-class docutils literal notranslate"><span class="pre">pickle.Unpickler</span></code></a> involving cyclic references via the internal
memo mapping.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19821">bpo-19821</a>: The <code class="xref py py-func docutils literal notranslate"><span class="pre">pydoc.ispackage()</span></code> function has been deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40262">bpo-40262</a>: The <code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.SSLSocket.recv_into()</span></code> method no longer requires
the <em>buffer</em> argument to implement <code class="docutils literal notranslate"><span class="pre">__len__</span></code> and supports buffers with
arbitrary item size.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39912">bpo-39912</a>: <a class="reference internal" href="../library/warnings.html#warnings.filterwarnings" title="warnings.filterwarnings"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.filterwarnings()</span></code></a> and
<a class="reference internal" href="../library/warnings.html#warnings.simplefilter" title="warnings.simplefilter"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.simplefilter()</span></code></a> now raise appropriate exceptions instead of
<code class="docutils literal notranslate"><span class="pre">AssertionError</span></code>. Patch contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37260">bpo-37260</a>: Fixed a race condition in <a class="reference internal" href="../library/shutil.html#shutil.rmtree" title="shutil.rmtree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code></a> in which
directory entries removed by another process or thread while
<code class="docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code> is running can cause it to raise FileNotFoundError.
Patch by Jeffrey Kintscher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36959">bpo-36959</a>: Fix some error messages for invalid ISO format string
combinations in <code class="docutils literal notranslate"><span class="pre">strptime()</span></code> that referred to directives not contained
in the format string. Patch by Gordon P. Hemsley.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18060">bpo-18060</a>: Fixed a class inheritance issue that can cause segfaults when
deriving two or more levels of subclasses from a base class of Structure
or Union.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29779">bpo-29779</a>: Add a new <span class="target" id="index-83"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHON_HISTORY"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_HISTORY</span></code></a> environment variable to set
the location of a <code class="docutils literal notranslate"><span class="pre">.python_history</span></code> file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21360">bpo-21360</a>: <a class="reference internal" href="../library/mailbox.html#mailbox.Maildir" title="mailbox.Maildir"><code class="xref py py-class docutils literal notranslate"><span class="pre">mailbox.Maildir</span></code></a> now ignores files with a leading dot.</p></li>
</ul>
</section>
<section id="id155">
<h3>Documentation<a class="headerlink" href="#id155" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111699">gh-111699</a>: Relocate <code class="docutils literal notranslate"><span class="pre">smtpd</span></code> deprecation notice to its own section rather
than under <code class="docutils literal notranslate"><span class="pre">locale</span></code> in What’s New in Python 3.12 document</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110746">gh-110746</a>: Improved markup for valid options/values for methods
ttk.treeview.column and ttk.treeview.heading, and for Layouts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95649">gh-95649</a>: Document that the <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> module contains code taken from
<a class="reference external" href="https://github.com/MagicStack/uvloop/tree/v0.16.0">v0.16.0 of the uvloop project</a>, as well as the
required MIT licensing information.</p></li>
</ul>
</section>
<section id="id156">
<h3>Tests<a class="headerlink" href="#id156" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111798">gh-111798</a>: Disable <code class="docutils literal notranslate"><span class="pre">test_super_deep()</span></code> from <code class="docutils literal notranslate"><span class="pre">test_call</span></code> under pydebug
builds on WASI; the stack depth is too small to make the test useful.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111801">gh-111801</a>: Lower the recursion limit in <code class="docutils literal notranslate"><span class="pre">test_isinstance</span></code> for
<code class="docutils literal notranslate"><span class="pre">test_infinitely_many_bases()</span></code>. This prevents a stack overflow on a
pydebug build of WASI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111802">gh-111802</a>: Specify a low recursion depth for <code class="docutils literal notranslate"><span class="pre">test_bad_getattr()</span></code> in
<code class="docutils literal notranslate"><span class="pre">test.pickletester</span></code> to avoid exhausting the stack under a pydebug build
for WASI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/44626">gh-44626</a>: Fix <a class="reference internal" href="../library/os.path.html#os.path.isabs" title="os.path.isabs"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.isabs()</span></code></a> incorrectly returning <code class="docutils literal notranslate"><span class="pre">True</span></code> when
given a path that starts with exactly one (back)slash on Windows.</p>
<p>Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PureWindowsPath.is_absolute()</span></code> incorrectly returning
<code class="docutils literal notranslate"><span class="pre">False</span></code> for some paths beginning with two (back)slashes.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113633">gh-113633</a>: Use module state for the _testcapi extension module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109980">gh-109980</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_tarfile_vs_tar</span></code> in <code class="docutils literal notranslate"><span class="pre">test_shutil</span></code> for macOS, where
system tar can include more information in the archive than
<a class="reference internal" href="../library/shutil.html#shutil.make_archive" title="shutil.make_archive"><code class="xref py py-mod docutils literal notranslate"><span class="pre">shutil.make_archive</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112769">gh-112769</a>: The tests now correctly compare zlib version when
<a class="reference internal" href="../library/zlib.html#zlib.ZLIB_RUNTIME_VERSION" title="zlib.ZLIB_RUNTIME_VERSION"><code class="xref py py-const docutils literal notranslate"><span class="pre">zlib.ZLIB_RUNTIME_VERSION</span></code></a> contains non-integer suffixes. For
example zlib-ng defines the version as <code class="docutils literal notranslate"><span class="pre">1.3.0.zlib-ng</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112334">gh-112334</a>: Adds a regression test to verify that <code class="docutils literal notranslate"><span class="pre">vfork()</span></code> is used when
expected by <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> on vfork enabled POSIX systems (Linux).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108927">gh-108927</a>: Fixed order dependence in running tests in the same process
when a test that has submodules (e.g. test_importlib) follows a test that
imports its submodule (e.g. test_importlib.util) and precedes a test (e.g.
test_unittest or test_compileall) that uses that submodule.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40648">bpo-40648</a>: Test modes that file can get with chmod() on Windows.</p></li>
</ul>
</section>
<section id="id157">
<h3>Build<a class="headerlink" href="#id157" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114013">gh-114013</a>: Fix <code class="docutils literal notranslate"><span class="pre">Tools/wasm/wasi.py</span></code> to not include the path to
<code class="docutils literal notranslate"><span class="pre">python.wasm</span></code> as part of <code class="docutils literal notranslate"><span class="pre">HOSTRUNNER</span></code>. The environment variable is
meant to specify how to run the WASI host only, having <code class="docutils literal notranslate"><span class="pre">python.wasm</span></code> and
relevant flags appended to the <code class="docutils literal notranslate"><span class="pre">HOSTRUNNER</span></code>. This fixes <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span></code>
work.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113258">gh-113258</a>: Changed the Windows build to write out generated frozen modules
into the build tree instead of the source tree.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112305">gh-112305</a>: Fixed the <code class="docutils literal notranslate"><span class="pre">check-clean-src</span></code> step performed on out of tree
builds to detect errant <code class="docutils literal notranslate"><span class="pre">$(srcdir)/Python/frozen_modules/*.h</span></code> files and
recommend appropriate source tree cleanup steps to get a working build
again.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112536">gh-112536</a>: Add support for thread sanitizer (TSAN)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112867">gh-112867</a>: Fix the build for the case that WITH_PYMALLOC_RADIX_TREE=0 set.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103065">gh-103065</a>: Introduce <code class="docutils literal notranslate"><span class="pre">Tools/wasm/wasi.py</span></code> to simplify doing a WASI
build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11102">bpo-11102</a>: The <a class="reference internal" href="../library/os.html#os.major" title="os.major"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.major()</span></code></a>, <a class="reference internal" href="../library/os.html#os.makedev" title="os.makedev"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.makedev()</span></code></a>, and <a class="reference internal" href="../library/os.html#os.minor" title="os.minor"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.minor()</span></code></a>
functions are now available on HP-UX v3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36351">bpo-36351</a>: Do not set ipv6type when cross-compiling.</p></li>
</ul>
</section>
<section id="id158">
<h3>Windows<a class="headerlink" href="#id158" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/114096">gh-114096</a>: Process privileges that are activated for creating directory
junctions are now restored afterwards, avoiding behaviour changes in other
parts of the program.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111877">gh-111877</a>: <a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a> calls were returning incorrect time values for
files that could not be accessed directly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111973">gh-111973</a>: Update Windows installer to use SQLite 3.44.2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113009">gh-113009</a>: <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a>: On Windows, fix a race condition in
<code class="docutils literal notranslate"><span class="pre">Process.terminate()</span></code>: no longer set the <code class="docutils literal notranslate"><span class="pre">returncode</span></code> attribute to
always call <code class="docutils literal notranslate"><span class="pre">WaitForSingleObject()</span></code> in <code class="docutils literal notranslate"><span class="pre">Process.wait()</span></code>. Previously,
sometimes the process was still running after <code class="docutils literal notranslate"><span class="pre">TerminateProcess()</span></code> even
if <code class="docutils literal notranslate"><span class="pre">GetExitCodeProcess()</span></code> is not <code class="docutils literal notranslate"><span class="pre">STILL_ACTIVE</span></code>. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86179">gh-86179</a>: Fixes path calculations when launching Python on Windows through
a symlink.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71383">gh-71383</a>: Update Tcl/Tk in Windows installer to 8.6.13 with a patch to
suppress incorrect ThemeChanged warnings.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111650">gh-111650</a>: Ensures the <code class="docutils literal notranslate"><span class="pre">Py_GIL_DISABLED</span></code> preprocessor variable is
defined in <code class="file docutils literal notranslate"><span class="pre">pyconfig.h</span></code> so that extension modules written in C are
able to use it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112278">gh-112278</a>: Reduce the time cost for some functions in <a class="reference internal" href="../library/platform.html#module-platform" title="platform: Retrieves as much platform identifying data as possible."><code class="xref py py-mod docutils literal notranslate"><span class="pre">platform</span></code></a> on
Windows if current user has no permission to the WMI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/73427">gh-73427</a>: Deprecate <a class="reference internal" href="../library/sys.html#sys._enablelegacywindowsfsencoding" title="sys._enablelegacywindowsfsencoding"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._enablelegacywindowsfsencoding()</span></code></a>. Use
<span class="target" id="index-84"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONLEGACYWINDOWSFSENCODING"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONLEGACYWINDOWSFSENCODING</span></code></a> instead. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87868">gh-87868</a>: Correctly sort and remove duplicate environment variables in
<code class="xref py py-func docutils literal notranslate"><span class="pre">_winapi.CreateProcess()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37308">bpo-37308</a>: Fix mojibake in <a class="reference internal" href="../library/mmap.html#mmap.mmap" title="mmap.mmap"><code class="xref py py-class docutils literal notranslate"><span class="pre">mmap.mmap</span></code></a> when using a non-ASCII
<em>tagname</em> argument on Windows.</p></li>
</ul>
</section>
<section id="id159">
<h3>macOS<a class="headerlink" href="#id159" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113666">gh-113666</a>: Add the following constants to module <a class="reference internal" href="../library/stat.html#module-stat" title="stat: Utilities for interpreting the results of os.stat(), os.lstat() and os.fstat()."><code class="xref py py-mod docutils literal notranslate"><span class="pre">stat</span></code></a>:
<code class="docutils literal notranslate"><span class="pre">UF_SETTABLE</span></code>, <code class="docutils literal notranslate"><span class="pre">UF_TRACKED</span></code>, <code class="docutils literal notranslate"><span class="pre">UF_DATAVAULT</span></code>, <code class="docutils literal notranslate"><span class="pre">SF_SUPPORTED</span></code>,
<code class="docutils literal notranslate"><span class="pre">SF_SETTABLE</span></code>, <code class="docutils literal notranslate"><span class="pre">SF_SYNTHETIC</span></code>, <code class="docutils literal notranslate"><span class="pre">SF_RESTRICTED</span></code>, <code class="docutils literal notranslate"><span class="pre">SF_FIRMLINK</span></code> and
<code class="docutils literal notranslate"><span class="pre">SF_DATALESS</span></code>. The values <code class="docutils literal notranslate"><span class="pre">UF_SETTABLE</span></code>, <code class="docutils literal notranslate"><span class="pre">SF_SUPPORTED</span></code>,
<code class="docutils literal notranslate"><span class="pre">SF_SETTABLE</span></code> and <code class="docutils literal notranslate"><span class="pre">SF_SYNTHETIC</span></code> are only available on macOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113536">gh-113536</a>: <a class="reference internal" href="../library/os.html#os.waitid" title="os.waitid"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.waitid()</span></code></a> is now available on macOS</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110459">gh-110459</a>: Running <code class="docutils literal notranslate"><span class="pre">configure</span> <span class="pre">...</span> <span class="pre">--with-openssl-rpath=X/Y/Z</span></code> no longer
fails to detect OpenSSL on macOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74573">gh-74573</a>: Document that <a class="reference internal" href="../library/dbm.html#module-dbm.ndbm" title="dbm.ndbm: The New Database Manager (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.ndbm</span></code></a> can silently corrupt DBM files on
updates when exceeding undocumented platform limits, and can crash
(segmentation fault) when reading such a corrupted file. (FB8919203)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65701">gh-65701</a>: The <strong class="program">freeze</strong> tool doesn’t work with framework builds of
Python. Document this and bail out early when running the tool with such a
build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87277">gh-87277</a>: webbrowser: Don’t look for X11 browsers on macOS. Those are
generally not used and probing for them can result in starting XQuartz
even if it isn’t used otherwise.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111973">gh-111973</a>: Update macOS installer to use SQLite 3.44.2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108269">gh-108269</a>: Set <code class="docutils literal notranslate"><span class="pre">CFBundleAllowMixedLocalizations</span></code> to true in the
Info.plist for the framework, embedded Python.app and IDLE.app with
framework installs on macOS. This allows applications to pick up the
user’s preferred locale when that’s different from english.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102362">gh-102362</a>: Make sure the result of <code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_plaform()</span></code> includes
at least a major and minor versions, even if <code class="docutils literal notranslate"><span class="pre">MACOSX_DEPLOYMENT_TARGET</span></code>
is set to only a major version during build to match the format expected
by pip.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110017">gh-110017</a>: Disable a signal handling stress test on macOS due to a bug in
macOS (FB13453490).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110820">gh-110820</a>: Make sure the preprocessor definitions for
<code class="docutils literal notranslate"><span class="pre">ALIGNOF_MAX_ALIGN_T</span></code>, <code class="docutils literal notranslate"><span class="pre">SIZEOF_LONG_DOUBLE</span></code> and
<code class="docutils literal notranslate"><span class="pre">HAVE_GCC_ASM_FOR_X64</span></code> are correct for Universal 2 builds on macOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109981">gh-109981</a>: Use <code class="docutils literal notranslate"><span class="pre">/dev/fd</span></code> on macOS to determine the number of open files
in <code class="docutils literal notranslate"><span class="pre">test.support.os_helper.fd_count</span></code> to avoid a crash with “guarded”
file descriptors when probing for open files.</p></li>
</ul>
</section>
<section id="id160">
<h3>IDLE<a class="headerlink" href="#id160" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/72284">gh-72284</a>: Improve the lists of features, editor key bindings, and shell
key bingings in the IDLE doc.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113903">gh-113903</a>: Fix rare failure of test.test_idle, in test_configdialog.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113729">gh-113729</a>: Fix the “Help -> IDLE Doc” menu bug in 3.11.7 and 3.12.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/113269">gh-113269</a>: Fix test_editor hang on macOS Catalina.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112898">gh-112898</a>: Fix processing unsaved files when quitting IDLE on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13586">bpo-13586</a>: Enter the selected text when opening the “Replace” dialog.</p></li>
</ul>
</section>
<section id="id161">
<h3>C API<a class="headerlink" href="#id161" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106560">gh-106560</a>: Fix redundant declarations in the public C API. Declare
PyBool_Type, PyLong_Type and PySys_Audit() only once. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112438">gh-112438</a>: Fix support of format units “es”, “et”, “es#”, and “et#” in
nested tuples in <a class="reference internal" href="../c-api/arg.html#c.PyArg_ParseTuple" title="PyArg_ParseTuple"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_ParseTuple()</span></code></a>-like functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111545">gh-111545</a>: Add <a class="reference internal" href="../c-api/hash.html#c.Py_HashPointer" title="Py_HashPointer"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_HashPointer()</span></code></a> function to hash a pointer. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65210">gh-65210</a>: Change the declaration of the <em>keywords</em> parameter of
<a class="reference internal" href="../c-api/arg.html#c.PyArg_ParseTupleAndKeywords" title="PyArg_ParseTupleAndKeywords"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_ParseTupleAndKeywords()</span></code></a> and
<a class="reference internal" href="../c-api/arg.html#c.PyArg_VaParseTupleAndKeywords" title="PyArg_VaParseTupleAndKeywords"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_VaParseTupleAndKeywords()</span></code></a> for better compatibility with C++.</p></li>
</ul>
</section>
</section>
<section id="python-3-13-0-alpha-2">
<h2>Python 3.13.0 alpha 2<a class="headerlink" href="#python-3-13-0-alpha-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2023-11-22</em></p>
<section id="id162">
<h3>Core and Builtins<a class="headerlink" href="#id162" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112243">gh-112243</a>: Don’t include comments in f-string debug expressions. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112287">gh-112287</a>: Slightly optimize the Tier 2 (uop) interpreter by only loading
<code class="docutils literal notranslate"><span class="pre">oparg</span></code> and <code class="docutils literal notranslate"><span class="pre">operand</span></code> when needed. Also double the trace size limit
again, to 512 this time.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112266">gh-112266</a>: Change docstrings of <a class="reference internal" href="../reference/datamodel.html#object.__dict__" title="object.__dict__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__dict__</span></code></a> and
<code class="xref py py-attr docutils literal notranslate"><span class="pre">__weakref__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111807">gh-111807</a>: Lower the max parser stack depth to 1000 under WASI debug
builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111798">gh-111798</a>: When Python is built in debug mode, set the C recursion limit
to 500 instead of 1500. A debug build is likely built with low
optimization level which implies higher stack memory usage than a release
build. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106529">gh-106529</a>: Enable translating unspecialized <code class="docutils literal notranslate"><span class="pre">FOR_ITER</span></code> to Tier 2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111916">gh-111916</a>: Make hashlib related modules thread-safe without the GIL</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81137">gh-81137</a>: Deprecate assignment to a function’s <code class="docutils literal notranslate"><span class="pre">__code__</span></code> field when the
new code object is of a mismatched type (e.g., from a generator to a plain
function).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79932">gh-79932</a>: Raise exception if <a class="reference internal" href="../reference/datamodel.html#frame.clear" title="frame.clear"><code class="xref py py-meth docutils literal notranslate"><span class="pre">frame.clear()</span></code></a> is called on a suspended
frame.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81925">gh-81925</a>: Implement native thread ids for GNU KFreeBSD.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111843">gh-111843</a>: Use exponential backoff to reduce the number of failed tier 2
optimization attempts by over 99%.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110829">gh-110829</a>: Joining a thread now ensures the underlying OS thread has
exited. This is required for safer fork() in multi-threaded processes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109369">gh-109369</a>: Make sure that tier 2 traces are de-optimized if the code is
instrumented</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111772">gh-111772</a>: Specialize slot loads and stores for _Py_T_OBJECT as well as
Py_T_OBJECT_EX</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111666">gh-111666</a>: Speed up <a class="reference internal" href="../library/exceptions.html#BaseExceptionGroup.derive" title="BaseExceptionGroup.derive"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BaseExceptionGroup.derive()</span></code></a>,
<a class="reference internal" href="../library/exceptions.html#BaseExceptionGroup.subgroup" title="BaseExceptionGroup.subgroup"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BaseExceptionGroup.subgroup()</span></code></a>, and <a class="reference internal" href="../library/exceptions.html#BaseExceptionGroup.split" title="BaseExceptionGroup.split"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BaseExceptionGroup.split()</span></code></a>
by changing how they parse passed arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111654">gh-111654</a>: Fix runtime crash when some error happens in opcode
<code class="docutils literal notranslate"><span class="pre">LOAD_FROM_DICT_OR_DEREF</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111623">gh-111623</a>: Add support for sharing tuples between interpreters using the
cross-interpreter API. Patch by Anthony Shaw.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111354">gh-111354</a>: The oparg of <a class="reference internal" href="../library/dis.html#opcode-YIELD_VALUE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">YIELD_VALUE</span></code></a> is now <code class="docutils literal notranslate"><span class="pre">1</span></code> if the
instruction is part of a yield-from or await, and <code class="docutils literal notranslate"><span class="pre">0</span></code> otherwise.</p>
<p>The SUSPENDED frame state is now split into <code class="docutils literal notranslate"><span class="pre">SUSPENDED</span></code> and
<code class="docutils literal notranslate"><span class="pre">SUSPENDED_YIELD_FROM</span></code>. This simplifies the code in <code class="docutils literal notranslate"><span class="pre">_PyGen_yf</span></code>.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111520">gh-111520</a>: Merge the Tier 1 (bytecode) and Tier 2 (micro-ops) interpreters
together, moving the Tier 2 interpreter loop and switch into
<code class="docutils literal notranslate"><span class="pre">_PyEval_EvalFrameDefault()</span></code> in <code class="docutils literal notranslate"><span class="pre">Python/ceval.c</span></code>. The
<code class="docutils literal notranslate"><span class="pre">Python/executor.c</span></code> file is gone. Also the <code class="docutils literal notranslate"><span class="pre">TIER_ONE</span></code> and <code class="docutils literal notranslate"><span class="pre">TIER_TWO</span></code>
macros are now handled by the code generator.</p>
<p><strong>Beware!</strong> This changes the environment variables to enable micro-ops and
their debugging to <code class="docutils literal notranslate"><span class="pre">PYTHON_UOPS</span></code> and <code class="docutils literal notranslate"><span class="pre">PYTHON_LLTRACE</span></code>.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109181">gh-109181</a>: Speed up <code class="xref py py-class docutils literal notranslate"><span class="pre">Traceback</span></code> object creation by lazily compute
the line number. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111420">gh-111420</a>: Allow type comments in parenthesized <code class="docutils literal notranslate"><span class="pre">with</span></code> statements</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111438">gh-111438</a>: Add support for sharing floats between interpreters using the
cross-interpreter API. Patch by Anthony Shaw.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111435">gh-111435</a>: Add support for sharing of <code class="docutils literal notranslate"><span class="pre">True</span></code> and <code class="docutils literal notranslate"><span class="pre">False</span></code> between
interpreters using the cross-interpreter API. Patch by Anthony Shaw.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102388">gh-102388</a>: Fix a bug where <code class="docutils literal notranslate"><span class="pre">iso2022_jp_3</span></code> and <code class="docutils literal notranslate"><span class="pre">iso2022_jp_2004</span></code> codecs
read out of bounds</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111366">gh-111366</a>: Fix an issue in the <a class="reference internal" href="../library/codeop.html#module-codeop" title="codeop: Compile (possibly incomplete) Python code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">codeop</span></code></a> that was causing
<a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> exceptions raised in the presence of invalid syntax to
not contain precise error messages. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111380">gh-111380</a>: Fix a bug that was causing <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a> to appear twice
when parsing if invalid syntax is encountered later. Patch by Pablo
galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111374">gh-111374</a>: Added a new environment variable
<span class="target" id="index-85"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHON_FROZEN_MODULES"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_FROZEN_MODULES</span></code></a>. It determines whether or not frozen
modules are ignored by the import machinery, equivalent of the <a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span>
<span class="pre">frozen_modules</span></code></a> command-line option.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111354">gh-111354</a>: Remove <code class="docutils literal notranslate"><span class="pre">oparg</span></code> from <a class="reference internal" href="../library/dis.html#opcode-YIELD_VALUE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">YIELD_VALUE</span></code></a>. Change <code class="docutils literal notranslate"><span class="pre">oparg</span></code>
of <a class="reference internal" href="../library/dis.html#opcode-RESUME"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">RESUME</span></code></a> to include information about the except-depth. These
changes make it possible to simplify the code in generator close.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94438">gh-94438</a>: Fix a regression that prevented jumping across <code class="docutils literal notranslate"><span class="pre">is</span> <span class="pre">None</span></code> and
<code class="docutils literal notranslate"><span class="pre">is</span> <span class="pre">not</span> <span class="pre">None</span></code> when debugging. Patch by Savannah Ostrowski.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/67224">gh-67224</a>: Show source lines in tracebacks when using the <code class="docutils literal notranslate"><span class="pre">-c</span></code> option
when running Python. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111123">gh-111123</a>: Fix a bug where a <a class="reference internal" href="../reference/simple_stmts.html#global"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">global</span></code></a> declaration in an
<a class="reference internal" href="../reference/compound_stmts.html#except"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">except</span></code></a> block is rejected when the global is used in the
<a class="reference internal" href="../reference/compound_stmts.html#else"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">else</span></code></a> block.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110938">gh-110938</a>: Fix error messages for indented blocks with functions and
classes with generic type parameters. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109214">gh-109214</a>: Remove unnecessary instruction pointer updates before returning
from frames.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110912">gh-110912</a>: Correctly display the traceback for <a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a>
exceptions using the <a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> module. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109894">gh-109894</a>: Fixed crash due to improperly initialized static
<a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a> in subinterpreter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110892">gh-110892</a>: Return <code class="docutils literal notranslate"><span class="pre">NULL</span></code> for <code class="docutils literal notranslate"><span class="pre">PyTrace_RETURN</span></code> events caused by an
exception</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110864">gh-110864</a>: Fix argument parsing by <code class="docutils literal notranslate"><span class="pre">_PyArg_UnpackKeywordsWithVararg</span></code> for
functions defining pos-or-keyword, vararg, and kw-only parameters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109094">gh-109094</a>: Replace <code class="docutils literal notranslate"><span class="pre">prev_instr</span></code> on the interpreter frame by
<code class="docutils literal notranslate"><span class="pre">instr_ptr</span></code> which points to the beginning of the instruction that is
currently executing (or will execute once the frame resumes).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110805">gh-110805</a>: Allow the repl to show source code and complete tracebacks.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110722">gh-110722</a>: Add <span class="target" id="index-86"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON_PRESITE=package.module</span></code> to import a module
early in the interpreter lifecycle before <code class="docutils literal notranslate"><span class="pre">site.py</span></code> is executed. Python
needs to be <a class="reference internal" href="../using/configure.html#debug-build"><span class="std std-ref">built in debug mode</span></a> for this option to
exist.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110481">gh-110481</a>: Implement biased reference counting in <code class="docutils literal notranslate"><span class="pre">--disable-gil</span></code>
builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110543">gh-110543</a>: Fix regression in Python 3.12 where
<code class="xref py py-meth docutils literal notranslate"><span class="pre">types.CodeType.replace()</span></code> would produce a broken code object if
called on a module or class code object that contains a comprehension.
Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89519">gh-89519</a>: Removed chained <a class="reference internal" href="../library/functions.html#classmethod" title="classmethod"><code class="xref py py-class docutils literal notranslate"><span class="pre">classmethod</span></code></a> descriptors (introduced in
<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19072">bpo-19072</a>). This can no longer be used to wrap other descriptors
such as <a class="reference internal" href="../library/functions.html#property" title="property"><code class="xref py py-class docutils literal notranslate"><span class="pre">property</span></code></a>. The core design of this feature was flawed and
caused a number of downstream problems. To “pass-through” a
<a class="reference internal" href="../library/functions.html#classmethod" title="classmethod"><code class="xref py py-class docutils literal notranslate"><span class="pre">classmethod</span></code></a>, consider using the <code class="xref py py-attr docutils literal notranslate"><span class="pre">__wrapped__</span></code> attribute
that was added in Python 3.10.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103615">gh-103615</a>: Use local events for opcode tracing</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46657">bpo-46657</a>: Add mimalloc memory allocator support.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106718">gh-106718</a>: When PyConfig.stdlib_dir is explicitly set, it’s now respected
and won’t be overridden by PyConfig.home.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106905">gh-106905</a>: Fix incorrect SystemError about AST constructor recursion depth
mismatch.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100445">gh-100445</a>: Improve error message for unterminated strings with escapes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45759">bpo-45759</a>: Improved error messages for <code class="docutils literal notranslate"><span class="pre">elif</span></code>/<code class="docutils literal notranslate"><span class="pre">else</span></code> statements not
matching any valid statements. Patch by Jeremiah Vivian.</p></li>
</ul>
</section>
<section id="id163">
<h3>Library<a class="headerlink" href="#id163" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111942">gh-111942</a>: Fix SystemError in the TextIOWrapper constructor with
non-encodable “errors” argument in non-debug mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111995">gh-111995</a>: Added the <code class="docutils literal notranslate"><span class="pre">NI_IDN</span></code> constant to the <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> module when
present in C at build time for use with <a class="reference internal" href="../library/socket.html#socket.getnameinfo" title="socket.getnameinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.getnameinfo()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109538">gh-109538</a>: Issue warning message instead of having <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-class docutils literal notranslate"><span class="pre">RuntimeError</span></code></a>
be displayed when event loop has already been closed at
<code class="xref py py-meth docutils literal notranslate"><span class="pre">StreamWriter.__del__()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111942">gh-111942</a>: Fix crashes in <a class="reference internal" href="../library/io.html#io.TextIOWrapper.reconfigure" title="io.TextIOWrapper.reconfigure"><code class="xref py py-meth docutils literal notranslate"><span class="pre">io.TextIOWrapper.reconfigure()</span></code></a> when pass
invalid arguments, e.g. non-string encoding.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111460">gh-111460</a>: <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a>: restore wide character support (including
<a class="reference internal" href="../library/curses.html#curses.unget_wch" title="curses.unget_wch"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.unget_wch()</span></code></a> and <a class="reference internal" href="../library/curses.html#curses.window.get_wch" title="curses.window.get_wch"><code class="xref py py-meth docutils literal notranslate"><span class="pre">get_wch()</span></code></a>) on macOS,
which was unavailable due to a regression in Python 3.12.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103791">gh-103791</a>: <a class="reference internal" href="../library/contextlib.html#contextlib.suppress" title="contextlib.suppress"><code class="xref py py-class docutils literal notranslate"><span class="pre">contextlib.suppress</span></code></a> now supports suppressing
exceptions raised as part of a <a class="reference internal" href="../library/exceptions.html#BaseExceptionGroup" title="BaseExceptionGroup"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BaseExceptionGroup</span></code></a>, in addition to
the recent support for <a class="reference internal" href="../library/exceptions.html#ExceptionGroup" title="ExceptionGroup"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ExceptionGroup</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111835">gh-111835</a>: The <a class="reference internal" href="../library/mmap.html#mmap.mmap" title="mmap.mmap"><code class="xref py py-class docutils literal notranslate"><span class="pre">mmap.mmap</span></code></a> class now has an
<a class="reference internal" href="../library/mmap.html#mmap.mmap.seekable" title="mmap.mmap.seekable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">seekable()</span></code></a> method that can be used when a seekable
file-like object is required. The <a class="reference internal" href="../library/mmap.html#mmap.mmap.seek" title="mmap.mmap.seek"><code class="xref py py-meth docutils literal notranslate"><span class="pre">seek()</span></code></a> method now
returns the new absolute position. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111804">gh-111804</a>: Remove posix.fallocate() under WASI as the underlying
posix_fallocate() is not available in WASI preview2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111841">gh-111841</a>: Fix truncating arguments on an embedded null character in
<a class="reference internal" href="../library/os.html#os.putenv" title="os.putenv"><code class="xref py py-meth docutils literal notranslate"><span class="pre">os.putenv()</span></code></a> and <a class="reference internal" href="../library/os.html#os.unsetenv" title="os.unsetenv"><code class="xref py py-meth docutils literal notranslate"><span class="pre">os.unsetenv()</span></code></a> on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111768">gh-111768</a>: <a class="reference internal" href="../library/wsgiref.html#wsgiref.util.is_hop_by_hop" title="wsgiref.util.is_hop_by_hop"><code class="xref py py-func docutils literal notranslate"><span class="pre">wsgiref.util.is_hop_by_hop()</span></code></a> is now exposed correctly in
<code class="docutils literal notranslate"><span class="pre">__all__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/80731">gh-80731</a>: Avoid executing the default function in <a class="reference internal" href="../library/cmd.html#cmd.Cmd" title="cmd.Cmd"><code class="xref py py-class docutils literal notranslate"><span class="pre">cmd.Cmd</span></code></a> in an
except block</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111541">gh-111541</a>: Fix <a class="reference internal" href="../library/doctest.html#module-doctest" title="doctest: Test pieces of code within docstrings."><code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code></a> for <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> not-builtin
subclasses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111719">gh-111719</a>: Add extra argument validation for <code class="docutils literal notranslate"><span class="pre">alias</span></code> command in
<a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111482">gh-111482</a>: <a class="reference internal" href="../library/time.html#module-time" title="time: Time access and conversions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">time</span></code></a>: Make <a class="reference internal" href="../library/time.html#time.clock_gettime" title="time.clock_gettime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.clock_gettime()</span></code></a> and
<a class="reference internal" href="../library/time.html#time.clock_gettime_ns" title="time.clock_gettime_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.clock_gettime_ns()</span></code></a> functions up to 2x faster by faster calling
convention. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110894">gh-110894</a>: Call loop exception handler for exceptions in
<code class="docutils literal notranslate"><span class="pre">client_connected_cb</span></code> of <a class="reference internal" href="../library/asyncio-stream.html#asyncio.start_server" title="asyncio.start_server"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.start_server()</span></code></a> so that
applications can handle it. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111531">gh-111531</a>: Fix reference leaks in <code class="docutils literal notranslate"><span class="pre">bind_class()</span></code> and <code class="docutils literal notranslate"><span class="pre">bind_all()</span></code>
methods of <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> widgets.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111246">gh-111246</a>: <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.create_unix_server" title="asyncio.loop.create_unix_server"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.create_unix_server()</span></code></a> will now automatically
remove the Unix socket when the server is closed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111356">gh-111356</a>: Added <a class="reference internal" href="../library/io.html#io.text_encoding" title="io.text_encoding"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.text_encoding()</span></code></a>, <a class="reference internal" href="../library/io.html#io.DEFAULT_BUFFER_SIZE" title="io.DEFAULT_BUFFER_SIZE"><code class="xref py py-data docutils literal notranslate"><span class="pre">io.DEFAULT_BUFFER_SIZE</span></code></a>,
and <a class="reference internal" href="../library/io.html#io.IncrementalNewlineDecoder" title="io.IncrementalNewlineDecoder"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.IncrementalNewlineDecoder</span></code></a> to <code class="docutils literal notranslate"><span class="pre">io.__all__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/66425">gh-66425</a>: Remove the code to set the REMOTE_HOST header from wsgiref
module, as it is unreachable. This header is used for performance reasons,
which is not necessary in the wsgiref module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111429">gh-111429</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.relative_to" title="pathlib.PurePath.relative_to"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.relative_to()</span></code></a> and
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.is_relative_to" title="pathlib.PurePath.is_relative_to"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_relative_to()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111342">gh-111342</a>: Fixed typo in <a class="reference internal" href="../library/math.html#math.sumprod" title="math.sumprod"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.sumprod()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/68166">gh-68166</a>: Remove mention of not supported “vsapi” element type in
<a class="reference internal" href="../library/tkinter.ttk.html#tkinter.ttk.Style.element_create" title="tkinter.ttk.Style.element_create"><code class="xref py py-meth docutils literal notranslate"><span class="pre">tkinter.ttk.Style.element_create()</span></code></a>. Add tests for
<code class="docutils literal notranslate"><span class="pre">element_create()</span></code> and other <code class="docutils literal notranslate"><span class="pre">ttk.Style</span></code> methods. Add examples for
<code class="docutils literal notranslate"><span class="pre">element_create()</span></code> in the documentation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111388">gh-111388</a>: Add <code class="docutils literal notranslate"><span class="pre">show_group</span></code> parameter to
<a class="reference internal" href="../library/traceback.html#traceback.format_exception_only" title="traceback.format_exception_only"><code class="xref py py-func docutils literal notranslate"><span class="pre">traceback.format_exception_only()</span></code></a>, which allows to format
<a class="reference internal" href="../library/exceptions.html#ExceptionGroup" title="ExceptionGroup"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ExceptionGroup</span></code></a> instances.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79033">gh-79033</a>: Another attempt at fixing <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.Server.wait_closed" title="asyncio.Server.wait_closed"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.Server.wait_closed()</span></code></a>. It
now blocks until both conditions are true: the server is closed, <em>and</em>
there are no more active connections. (This means that in some cases where
in 3.12.0 this function would <em>incorrectly</em> have returned immediately, it
will now block; in particular, when there are no active connections but
the server hasn’t been closed yet.)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111259">gh-111259</a>: Optimize recursive wildcards in <a class="reference internal" href="../library/pathlib.html#module-pathlib" title="pathlib: Object-oriented filesystem paths"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pathlib</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111295">gh-111295</a>: Fix <a class="reference internal" href="../library/time.html#module-time" title="time: Time access and conversions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">time</span></code></a> not checking for errors when initializing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111253">gh-111253</a>: Add error checking during <code class="xref py py-mod docutils literal notranslate"><span class="pre">_socket</span></code> module init.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111251">gh-111251</a>: Fix <code class="xref py py-mod docutils literal notranslate"><span class="pre">_blake2</span></code> not checking for errors when initializing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111233">gh-111233</a>: Fix <a class="reference internal" href="../library/select.html#module-select" title="select: Wait for I/O completion on multiple streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">select</span></code></a> not checking for errors when initializing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111230">gh-111230</a>: Fix <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> not checking for errors when initializing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111174">gh-111174</a>: Fix crash in <a class="reference internal" href="../library/io.html#io.BytesIO.getbuffer" title="io.BytesIO.getbuffer"><code class="xref py py-meth docutils literal notranslate"><span class="pre">io.BytesIO.getbuffer()</span></code></a> called repeatedly for
empty BytesIO.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111187">gh-111187</a>: Postpone removal version for locale.getdefaultlocale() to
Python 3.15.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111159">gh-111159</a>: Fix <a class="reference internal" href="../library/doctest.html#module-doctest" title="doctest: Test pieces of code within docstrings."><code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code></a> output comparison for exceptions with notes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110910">gh-110910</a>: Fix invalid state handling in <a class="reference internal" href="../library/asyncio-task.html#asyncio.TaskGroup" title="asyncio.TaskGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.TaskGroup</span></code></a> and
<a class="reference internal" href="../library/asyncio-task.html#asyncio.Timeout" title="asyncio.Timeout"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Timeout</span></code></a>. They now raise proper RuntimeError if they are
improperly used and are left in consistent state after this.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111092">gh-111092</a>: Make turtledemo run without default root enabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110944">gh-110944</a>: Support alias and convenience vars for <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> completion</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110745">gh-110745</a>: Added <em>newline</em> parameter to <a class="reference internal" href="../library/pathlib.html#pathlib.Path.read_text" title="pathlib.Path.read_text"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.read_text()</span></code></a>.
Patch by Junya Okabe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84583">gh-84583</a>: Make <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> enter post-mortem mode even for
<a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/80675">gh-80675</a>: Set <code class="docutils literal notranslate"><span class="pre">f_trace_lines</span> <span class="pre">=</span> <span class="pre">True</span></code> on all frames upon
<a class="reference internal" href="../library/pdb.html#pdb.set_trace" title="pdb.set_trace"><code class="xref py py-func docutils literal notranslate"><span class="pre">pdb.set_trace()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110771">gh-110771</a>: Expose the setup and cleanup portions of
<code class="docutils literal notranslate"><span class="pre">asyncio.run_forever()</span></code> as the standalone methods
<code class="docutils literal notranslate"><span class="pre">asyncio.run_forever_setup()</span></code> and <code class="docutils literal notranslate"><span class="pre">asyncio.run_forever_cleanup()</span></code>.
This allows for tighter integration with GUI event loops.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110774">gh-110774</a>: Support setting the <a class="reference internal" href="../library/asyncio-runner.html#asyncio.Runner" title="asyncio.Runner"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Runner</span></code></a> loop_factory kwarg
in <a class="reference internal" href="../library/unittest.html#unittest.IsolatedAsyncioTestCase" title="unittest.IsolatedAsyncioTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.IsolatedAsyncioTestCase</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110392">gh-110392</a>: Fix <a class="reference internal" href="../library/tty.html#tty.setraw" title="tty.setraw"><code class="xref py py-func docutils literal notranslate"><span class="pre">tty.setraw()</span></code></a> and <a class="reference internal" href="../library/tty.html#tty.setcbreak" title="tty.setcbreak"><code class="xref py py-func docutils literal notranslate"><span class="pre">tty.setcbreak()</span></code></a>: previously
they returned partially modified list of the original tty attributes.
<a class="reference internal" href="../library/tty.html#tty.cfmakeraw" title="tty.cfmakeraw"><code class="xref py py-func docutils literal notranslate"><span class="pre">tty.cfmakeraw()</span></code></a> and <a class="reference internal" href="../library/tty.html#tty.cfmakecbreak" title="tty.cfmakecbreak"><code class="xref py py-func docutils literal notranslate"><span class="pre">tty.cfmakecbreak()</span></code></a> now make a copy of the
list of special characters before modifying it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/59013">gh-59013</a>: Make line number of function breakpoint more precise in
<a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88434">gh-88434</a>: Emit deprecation warning for non-integer numbers in
<a class="reference internal" href="../library/gettext.html#module-gettext" title="gettext: Multilingual internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gettext</span></code></a> functions and methods that consider plural forms even if
the translation was not found.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110395">gh-110395</a>: Ensure that <a class="reference internal" href="../library/select.html#select.kqueue" title="select.kqueue"><code class="xref py py-func docutils literal notranslate"><span class="pre">select.kqueue()</span></code></a> objects correctly appear as
closed in forked children, to prevent operations on an invalid file
descriptor.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110196">gh-110196</a>: Add <code class="docutils literal notranslate"><span class="pre">__reduce__</span></code> method to <code class="xref py py-class docutils literal notranslate"><span class="pre">IPv6Address</span></code> in order to
keep <code class="docutils literal notranslate"><span class="pre">scope_id</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109747">gh-109747</a>: Improve errors for unsupported look-behind patterns. Now
re.error is raised instead of OverflowError or RuntimeError for too large
width of look-behind pattern.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109466">gh-109466</a>: Add the <a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv4Address.ipv6_mapped" title="ipaddress.IPv4Address.ipv6_mapped"><code class="xref py py-attr docutils literal notranslate"><span class="pre">ipaddress.IPv4Address.ipv6_mapped</span></code></a> property,
which returns the IPv4-mapped IPv6 address.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85098">gh-85098</a>: Implement the CLI of the <a class="reference internal" href="../library/symtable.html#module-symtable" title="symtable: Interface to the compiler's internal symbol tables."><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code></a> module and improve the
repr of <a class="reference internal" href="../library/symtable.html#symtable.Symbol" title="symtable.Symbol"><code class="xref py py-class docutils literal notranslate"><span class="pre">Symbol</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108791">gh-108791</a>: Improved error handling in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> command line interface,
making it produce more concise error messages.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105931">gh-105931</a>: Change <a class="reference internal" href="../library/compileall.html#module-compileall" title="compileall: Tools for byte-compiling all Python source files in a directory tree."><code class="xref py py-mod docutils literal notranslate"><span class="pre">compileall</span></code></a> to only strip the stripdir prefix from
the full path recorded in the compiled <code class="docutils literal notranslate"><span class="pre">.pyc</span></code> file, when the prefix
matches the start of the full path in its entirety. When the prefix does
not match, no stripping is performed and a warning to this effect is
displayed.</p>
<p>Previously all path components of the stripdir prefix that matched the
full path were removed, while those that did not match were left alone
(including ones interspersed between matching components).</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107431">gh-107431</a>: Make the <code class="docutils literal notranslate"><span class="pre">DictProxy</span></code> and <code class="docutils literal notranslate"><span class="pre">ListProxy</span></code> types in
<a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing.managers" title="multiprocessing.managers: Share data between process with shared objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing.managers</span></code></a> <a class="reference internal" href="../library/stdtypes.html#types-genericalias"><span class="std std-ref">Generic Alias
Types</span></a> for <code class="docutils literal notranslate"><span class="pre">[]</span></code> use in typing contexts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/72904">gh-72904</a>: Add <a class="reference internal" href="../library/glob.html#glob.translate" title="glob.translate"><code class="xref py py-func docutils literal notranslate"><span class="pre">glob.translate()</span></code></a>. This function converts a pathname
with shell-style wildcards to a regular expression.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90026">gh-90026</a>: Define <code class="docutils literal notranslate"><span class="pre">USE_XATTRS</span></code> on Cygwin so that XATTR-related functions
in the <a class="reference internal" href="../library/os.html#module-os" title="os: Miscellaneous operating system interfaces."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os</span></code></a> module become available.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90890">gh-90890</a>: New methods <a class="reference internal" href="../library/mailbox.html#mailbox.Maildir.get_info" title="mailbox.Maildir.get_info"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mailbox.Maildir.get_info()</span></code></a>,
<a class="reference internal" href="../library/mailbox.html#mailbox.Maildir.set_info" title="mailbox.Maildir.set_info"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mailbox.Maildir.set_info()</span></code></a>, <a class="reference internal" href="../library/mailbox.html#mailbox.Maildir.get_flags" title="mailbox.Maildir.get_flags"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mailbox.Maildir.get_flags()</span></code></a>,
<a class="reference internal" href="../library/mailbox.html#mailbox.Maildir.set_flags" title="mailbox.Maildir.set_flags"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mailbox.Maildir.set_flags()</span></code></a>, <a class="reference internal" href="../library/mailbox.html#mailbox.Maildir.add_flag" title="mailbox.Maildir.add_flag"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mailbox.Maildir.add_flag()</span></code></a>,
<a class="reference internal" href="../library/mailbox.html#mailbox.Maildir.remove_flag" title="mailbox.Maildir.remove_flag"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mailbox.Maildir.remove_flag()</span></code></a>. These methods speed up accessing a
message’s info and/or flags and are useful when it is not necessary to
access the message’s contents, as when iterating over a Maildir to find
messages with specific flags.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102956">gh-102956</a>: Fix returning of empty byte strings after seek in zipfile
module</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102895">gh-102895</a>: Added a parameter <code class="docutils literal notranslate"><span class="pre">local_exit</span></code> for <a class="reference internal" href="../library/code.html#code.interact" title="code.interact"><code class="xref py py-func docutils literal notranslate"><span class="pre">code.interact()</span></code></a> to
prevent <code class="docutils literal notranslate"><span class="pre">exit()</span></code> and <code class="docutils literal notranslate"><span class="pre">quit</span></code> from closing <code class="docutils literal notranslate"><span class="pre">sys.stdin</span></code> and raise
<code class="docutils literal notranslate"><span class="pre">SystemExit</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97928">gh-97928</a>: Change the behavior of <code class="xref py py-meth docutils literal notranslate"><span class="pre">tkinter.Text.count()</span></code>. It now always
returns an integer if one or less counting options are specified.
Previously it could return a single count as a 1-tuple, an integer (only
if option <code class="docutils literal notranslate"><span class="pre">"update"</span></code> was specified) or <code class="docutils literal notranslate"><span class="pre">None</span></code> if no items found. The
result is now the same if <code class="docutils literal notranslate"><span class="pre">wantobjects</span></code> is set to <code class="docutils literal notranslate"><span class="pre">0</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96954">gh-96954</a>: Switch the storage of the unicode codepoint names to use a
different data-structure, a <a class="reference external" href="https://en.wikipedia.org/wiki/Deterministic_acyclic_finite_state_automaton">directed acyclic word graph</a>.
This makes the unicodedata shared library about 440 KiB smaller.
Contributed by Carl Friedrich Bolz-Tereick using code from the PyPy
project.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/73561">gh-73561</a>: Omit the interface scope from an IPv6 address when used as Host
header by <a class="reference internal" href="../library/http.client.html#module-http.client" title="http.client: HTTP and HTTPS protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.client</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86826">gh-86826</a>: <code class="xref py py-mod docutils literal notranslate"><span class="pre">zipinfo</span></code> now supports the full range of values in the TZ
string determined by RFC 8536 and detects all invalid formats. Both Python
and C implementations now raise exceptions of the same type on invalid
data.</p></li>
</ul>
</section>
<section id="id164">
<h3>Tests<a class="headerlink" href="#id164" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111808">gh-111808</a>: Make the default value of <code class="docutils literal notranslate"><span class="pre">test.support.infinite_recursion()</span></code>
to be conditional based on whether optimizations were used when compiling
the interpreter. This helps with platforms like WASI whose stack size is
greatly restricted in debug builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110722">gh-110722</a>: Gathering line coverage of standard libraries within the
regression test suite is now precise, as well as much faster. Patch by
Łukasz Langa.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110367">gh-110367</a>: Make regrtest <code class="docutils literal notranslate"><span class="pre">--verbose3</span></code> option compatible with
<code class="docutils literal notranslate"><span class="pre">--huntrleaks</span> <span class="pre">-jN</span></code> options. The <code class="docutils literal notranslate"><span class="pre">./python</span> <span class="pre">-m</span> <span class="pre">test</span> <span class="pre">-j1</span> <span class="pre">-R</span> <span class="pre">3:3</span>
<span class="pre">--verbose3</span></code> command now works as expected. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111165">gh-111165</a>: Remove no longer used functions <code class="docutils literal notranslate"><span class="pre">run_unittest()</span></code> and
<code class="docutils literal notranslate"><span class="pre">run_doctest()</span></code> from the <a class="reference internal" href="../library/test.html#module-test.support" title="test.support: Support for Python's regression test suite."><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110932">gh-110932</a>: Fix regrtest if the <code class="docutils literal notranslate"><span class="pre">SOURCE_DATE_EPOCH</span></code> environment variable
is defined: use the variable value as the random seed. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110995">gh-110995</a>: test_gdb: Fix detection of gdb built without Python scripting
support. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110918">gh-110918</a>: Test case matching patterns specified by options <code class="docutils literal notranslate"><span class="pre">--match</span></code>,
<code class="docutils literal notranslate"><span class="pre">--ignore</span></code>, <code class="docutils literal notranslate"><span class="pre">--matchfile</span></code> and <code class="docutils literal notranslate"><span class="pre">--ignorefile</span></code> are now tested in the
order of specification, and the last match determines whether the test
case be run or ignored.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108747">gh-108747</a>: Add unit test for <code class="docutils literal notranslate"><span class="pre">usercustomize</span></code> and <code class="docutils literal notranslate"><span class="pre">sitecustomize</span></code> hooks
from <a class="reference internal" href="../library/site.html#module-site" title="site: Module responsible for site-specific configuration."><code class="xref py py-class docutils literal notranslate"><span class="pre">site</span></code></a>.</p></li>
</ul>
</section>
<section id="id165">
<h3>Build<a class="headerlink" href="#id165" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96954">gh-96954</a>: Make <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-unicodedata</span></code> work for out-of-tree builds of
CPython.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112088">gh-112088</a>: Add <code class="docutils literal notranslate"><span class="pre">Tools/build/regen-configure.sh</span></code> script to regenerate the
<code class="docutils literal notranslate"><span class="pre">configure</span></code> with an Ubuntu container image. The
<code class="docutils literal notranslate"><span class="pre">quay.io/tiran/cpython_autoconf:271</span></code> container image
(<a class="reference external" href="https://github.com/tiran/cpython_autoconf">tiran/cpython_autoconf</a>) is
no longer used. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111046">gh-111046</a>: For wasi-threads, memory is now exported to fix compatibility
issues with some wasm runtimes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110828">gh-110828</a>: AIX 32bit needs <code class="docutils literal notranslate"><span class="pre">-latomic</span></code> to build the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_testcapi</span></code>
extension module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85283">gh-85283</a>: The <code class="docutils literal notranslate"><span class="pre">errno</span></code>, <code class="docutils literal notranslate"><span class="pre">md5</span></code>, <code class="docutils literal notranslate"><span class="pre">resource</span></code>, <code class="docutils literal notranslate"><span class="pre">winsound</span></code>,
<code class="docutils literal notranslate"><span class="pre">_ctypes_test</span></code>, <code class="docutils literal notranslate"><span class="pre">_multiprocessing.posixshmem</span></code>, <code class="docutils literal notranslate"><span class="pre">_scproxy</span></code>,
<code class="docutils literal notranslate"><span class="pre">_stat</span></code>, <code class="docutils literal notranslate"><span class="pre">_testimportmultiple</span></code> and <code class="docutils literal notranslate"><span class="pre">_uuid</span></code> C extensions are now
built with the <a class="reference internal" href="../c-api/stable.html#limited-c-api"><span class="std std-ref">limited C API</span></a>. Patch by Victor
Stinner.</p></li>
</ul>
</section>
<section id="id166">
<h3>Windows<a class="headerlink" href="#id166" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111856">gh-111856</a>: Fixes <a class="reference internal" href="../library/os.html#os.fstat" title="os.fstat"><code class="xref py py-func docutils literal notranslate"><span class="pre">fstat()</span></code></a> on file systems that do not support
file ID requests. This includes FAT32 and exFAT.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111293">gh-111293</a>: Fix <a class="reference internal" href="../library/os.html#os.DirEntry.inode" title="os.DirEntry.inode"><code class="xref py py-data docutils literal notranslate"><span class="pre">os.DirEntry.inode</span></code></a> dropping higher 64 bits of a file
id on some filesystems on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110913">gh-110913</a>: WindowsConsoleIO now correctly chunks large buffers without
splitting up UTF-8 sequences.</p></li>
</ul>
</section>
<section id="id167">
<h3>macOS<a class="headerlink" href="#id167" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/59703">gh-59703</a>: For macOS framework builds, in <code class="docutils literal notranslate"><span class="pre">getpath.c</span></code> use the system
<code class="docutils literal notranslate"><span class="pre">dladdr</span></code> function to find the path to the shared library rather than
depending on deprecated macOS APIs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110950">gh-110950</a>: Update macOS installer to include an upstream Tcl/Tk fix for
the <code class="docutils literal notranslate"><span class="pre">Secure</span> <span class="pre">coding</span> <span class="pre">is</span> <span class="pre">not</span> <span class="pre">enabled</span> <span class="pre">for</span> <span class="pre">restorable</span> <span class="pre">state!</span></code> warning
encountered in Tkinter on macOS 14 Sonoma.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111015">gh-111015</a>: Ensure that IDLE.app and Python Launcher.app are installed with
appropriate permissions on macOS builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/71383">gh-71383</a>: Update macOS installer to include an upstream Tcl/Tk fix for the
<code class="docutils literal notranslate"><span class="pre">ttk::ThemeChanged</span></code> error encountered in Tkinter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92603">gh-92603</a>: Update macOS installer to include a fix accepted by upstream
Tcl/Tk for a crash encountered after the first <a class="reference internal" href="../library/tkinter.html#tkinter.Tk" title="tkinter.Tk"><code class="xref py py-meth docutils literal notranslate"><span class="pre">tkinter.Tk()</span></code></a> instance
is destroyed.</p></li>
</ul>
</section>
<section id="id168">
<h3>IDLE<a class="headerlink" href="#id168" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35668">bpo-35668</a>: Add docstrings to the IDLE debugger module. Fix two bugs:
initialize <code class="docutils literal notranslate"><span class="pre">Idb.botframe</span></code> (should be in Bdb); in <code class="docutils literal notranslate"><span class="pre">Idb.in_rpc_code</span></code>,
check whether <code class="docutils literal notranslate"><span class="pre">prev_frame</span></code> is <code class="docutils literal notranslate"><span class="pre">None</span></code> before trying to use it. Greatly
expand test_debugger.</p></li>
</ul>
</section>
<section id="id169">
<h3>Tools/Demos<a class="headerlink" href="#id169" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111903">gh-111903</a>: Argument Clinic now supports the <code class="docutils literal notranslate"><span class="pre">@critical_section</span></code>
directive that instructs Argument Clinic to generate a critical section
around the function call, which locks the <code class="docutils literal notranslate"><span class="pre">self</span></code> object in
<code class="docutils literal notranslate"><span class="pre">--disable-gil</span></code> builds. Patch by Sam Gross.</p></li>
</ul>
</section>
<section id="id170">
<h3>C API<a class="headerlink" href="#id170" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112026">gh-112026</a>: Add again the private <code class="docutils literal notranslate"><span class="pre">_PyThreadState_UncheckedGet()</span></code>
function as an alias to the new public
<a class="reference internal" href="../c-api/init.html#c.PyThreadState_GetUnchecked" title="PyThreadState_GetUnchecked"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_GetUnchecked()</span></code></a> function. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112026">gh-112026</a>: Restore the removed <code class="docutils literal notranslate"><span class="pre">_PyDict_GetItemStringWithError()</span></code>
function. It is used by numpy. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112026">gh-112026</a>: Restore removed private C API functions, macros and structures
which have no simple replacement for now:</p>
<ul class="simple">
<li><p>_PyDict_GetItem_KnownHash()</p></li>
<li><p>_PyDict_NewPresized()</p></li>
<li><p>_PyHASH_BITS</p></li>
<li><p>_PyHASH_IMAG</p></li>
<li><p>_PyHASH_INF</p></li>
<li><p>_PyHASH_MODULUS</p></li>
<li><p>_PyHASH_MULTIPLIER</p></li>
<li><p>_PyLong_Copy()</p></li>
<li><p>_PyLong_FromDigits()</p></li>
<li><p>_PyLong_New()</p></li>
<li><p>_PyLong_Sign()</p></li>
<li><p>_PyObject_CallMethodId()</p></li>
<li><p>_PyObject_CallMethodNoArgs()</p></li>
<li><p>_PyObject_CallMethodOneArg()</p></li>
<li><p>_PyObject_CallOneArg()</p></li>
<li><p>_PyObject_EXTRA_INIT</p></li>
<li><p>_PyObject_FastCallDict()</p></li>
<li><p>_PyObject_GetAttrId()</p></li>
<li><p>_PyObject_Vectorcall()</p></li>
<li><p>_PyObject_VectorcallMethod()</p></li>
<li><p>_PyStack_AsDict()</p></li>
<li><p>_PyThread_CurrentFrames()</p></li>
<li><p>_PyUnicodeWriter structure</p></li>
<li><p>_PyUnicodeWriter_Dealloc()</p></li>
<li><p>_PyUnicodeWriter_Finish()</p></li>
<li><p>_PyUnicodeWriter_Init()</p></li>
<li><p>_PyUnicodeWriter_Prepare()</p></li>
<li><p>_PyUnicodeWriter_PrepareKind()</p></li>
<li><p>_PyUnicodeWriter_WriteASCIIString()</p></li>
<li><p>_PyUnicodeWriter_WriteChar()</p></li>
<li><p>_PyUnicodeWriter_WriteLatin1String()</p></li>
<li><p>_PyUnicodeWriter_WriteStr()</p></li>
<li><p>_PyUnicodeWriter_WriteSubstring()</p></li>
<li><p>_PyUnicode_AsString()</p></li>
<li><p>_PyUnicode_FromId()</p></li>
<li><p>_PyVectorcall_Function()</p></li>
<li><p>_Py_IDENTIFIER()</p></li>
<li><p>_Py_c_abs()</p></li>
<li><p>_Py_c_diff()</p></li>
<li><p>_Py_c_neg()</p></li>
<li><p>_Py_c_pow()</p></li>
<li><p>_Py_c_prod()</p></li>
<li><p>_Py_c_quot()</p></li>
<li><p>_Py_c_sum()</p></li>
<li><p>_Py_static_string()</p></li>
<li><p>_Py_static_string_init()</p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/112026">gh-112026</a>: Add again <code class="docutils literal notranslate"><span class="pre"><ctype.h></span></code> and <code class="docutils literal notranslate"><span class="pre"><unistd.h></span></code> includes in
<code class="docutils literal notranslate"><span class="pre">Python.h</span></code>, but don’t include them in the limited C API version 3.13 and
newer. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111956">gh-111956</a>: Add internal-only one-time initialization API: <code class="docutils literal notranslate"><span class="pre">_PyOnceFlag</span></code>
and <code class="docutils literal notranslate"><span class="pre">_PyOnceFlag_CallOnce</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111262">gh-111262</a>: Add <a class="reference internal" href="../c-api/dict.html#c.PyDict_Pop" title="PyDict_Pop"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_Pop()</span></code></a> and <a class="reference internal" href="../c-api/dict.html#c.PyDict_PopString" title="PyDict_PopString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_PopString()</span></code></a>
functions: remove a key from a dictionary and optionally return the
removed value. This is similar to <a class="reference internal" href="../library/stdtypes.html#dict.pop" title="dict.pop"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.pop()</span></code></a>, but without the
default value and not raising <a class="reference internal" href="../library/exceptions.html#KeyError" title="KeyError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyError</span></code></a> if the key missing. Patch by
Stefan Behnel and Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111863">gh-111863</a>: Rename <code class="docutils literal notranslate"><span class="pre">Py_NOGIL</span></code> to <code class="docutils literal notranslate"><span class="pre">Py_GIL_DISABLED</span></code>. Patch by Hugo van
Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111138">gh-111138</a>: Add <a class="reference internal" href="../c-api/list.html#c.PyList_Extend" title="PyList_Extend"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyList_Extend()</span></code></a> and <a class="reference internal" href="../c-api/list.html#c.PyList_Clear" title="PyList_Clear"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyList_Clear()</span></code></a>
functions: similar to Python <code class="docutils literal notranslate"><span class="pre">list.extend()</span></code> and <code class="docutils literal notranslate"><span class="pre">list.clear()</span></code>
methods. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108765">gh-108765</a>: On Windows, <code class="docutils literal notranslate"><span class="pre">Python.h</span></code> no longer includes the <code class="docutils literal notranslate"><span class="pre"><stddef.h></span></code>
standard header file. If needed, it should now be included explicitly.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111569">gh-111569</a>: Implement “Python Critical Sections” from <span class="target" id="index-87"></span><a class="pep reference external" href="https://peps.python.org/pep-0703/"><strong>PEP 703</strong></a>. These are
macros to help replace the GIL with per-object locks in the
<code class="docutils literal notranslate"><span class="pre">--disable-gil</span></code> build of CPython. The macros are no-ops in the default
build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/111506">gh-111506</a>: In the limited C API version 3.13, <a class="reference internal" href="../c-api/refcounting.html#c.Py_SET_REFCNT" title="Py_SET_REFCNT"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SET_REFCNT()</span></code></a>
function is now implemented as an opaque function call. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108082">gh-108082</a>: Add <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_FormatUnraisable" title="PyErr_FormatUnraisable"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_FormatUnraisable()</span></code></a> function.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110964">gh-110964</a>: Move the undocumented private _PyArg functions and
_PyArg_Parser structure to internal C API (<code class="docutils literal notranslate"><span class="pre">pycore_modsupport.h</span></code>). Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110815">gh-110815</a>: Support non-ASCII keyword names in
<a class="reference internal" href="../c-api/arg.html#c.PyArg_ParseTupleAndKeywords" title="PyArg_ParseTupleAndKeywords"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_ParseTupleAndKeywords()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109587">gh-109587</a>: Introduced <code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_PerfTrampoline_CompileCode()</span></code>,
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_PerfTrampoline_SetPersistAfterFork()</span></code> and
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_CopyPerfMapFile()</span></code>. These functions allow extension
modules to initialize trampolines eagerly, after the application is
“warmed up”. This makes it possible to have perf-trampolines running in an
always-enabled fashion.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85283">gh-85283</a>: Add the <a class="reference internal" href="../c-api/sys.html#c.PySys_Audit" title="PySys_Audit"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_Audit()</span></code></a> function to the limited C API.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85283">gh-85283</a>: Add <a class="reference internal" href="../c-api/memory.html#c.PyMem_RawMalloc" title="PyMem_RawMalloc"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMem_RawMalloc()</span></code></a>, <a class="reference internal" href="../c-api/memory.html#c.PyMem_RawCalloc" title="PyMem_RawCalloc"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMem_RawCalloc()</span></code></a>,
<a class="reference internal" href="../c-api/memory.html#c.PyMem_RawRealloc" title="PyMem_RawRealloc"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMem_RawRealloc()</span></code></a> and <a class="reference internal" href="../c-api/memory.html#c.PyMem_RawFree" title="PyMem_RawFree"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMem_RawFree()</span></code></a> to the limited C
API. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106672">gh-106672</a>: Functions <a class="reference internal" href="../c-api/dict.html#c.PyDict_GetItem" title="PyDict_GetItem"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_GetItem()</span></code></a>,
<a class="reference internal" href="../c-api/dict.html#c.PyDict_GetItemString" title="PyDict_GetItemString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_GetItemString()</span></code></a>, <a class="reference internal" href="../c-api/mapping.html#c.PyMapping_HasKey" title="PyMapping_HasKey"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMapping_HasKey()</span></code></a>,
<a class="reference internal" href="../c-api/mapping.html#c.PyMapping_HasKeyString" title="PyMapping_HasKeyString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMapping_HasKeyString()</span></code></a>, <a class="reference internal" href="../c-api/object.html#c.PyObject_HasAttr" title="PyObject_HasAttr"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_HasAttr()</span></code></a>,
<a class="reference internal" href="../c-api/object.html#c.PyObject_HasAttrString" title="PyObject_HasAttrString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_HasAttrString()</span></code></a>, and <a class="reference internal" href="../c-api/sys.html#c.PySys_GetObject" title="PySys_GetObject"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_GetObject()</span></code></a>, which
clear all errors occurred during calling the function, report now them
using <a class="reference internal" href="../library/sys.html#sys.unraisablehook" title="sys.unraisablehook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.unraisablehook()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/67565">gh-67565</a>: Remove redundant C-contiguity check in <code class="file docutils literal notranslate"><span class="pre">getargs.c</span></code>,
<a class="reference internal" href="../library/binascii.html#module-binascii" title="binascii: Tools for converting between binary and various ASCII-encoded binary representations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">binascii</span></code></a>, <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> and Argument Clinic. Patched by Stefan Krah
and Furkan Onder</p></li>
</ul>
</section>
</section>
<section id="python-3-13-0-alpha-1">
<h2>Python 3.13.0 alpha 1<a class="headerlink" href="#python-3-13-0-alpha-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2023-10-13</em></p>
<section id="id171">
<h3>Security<a class="headerlink" href="#id171" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108310">gh-108310</a>: Fixed an issue where instances of <a class="reference internal" href="../library/ssl.html#ssl.SSLSocket" title="ssl.SSLSocket"><code class="xref py py-class docutils literal notranslate"><span class="pre">ssl.SSLSocket</span></code></a> were
vulnerable to a bypass of the TLS handshake and included protections (like
certificate verification) and treating sent unencrypted data as if it were
post-handshake TLS encrypted data. Security issue reported as
<span class="target" id="index-88"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2023-40217"><strong>CVE 2023-40217</strong></a> by Aapo Oksman. Patch by Gregory P. Smith.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107774">gh-107774</a>: PEP 669 specifies that <code class="docutils literal notranslate"><span class="pre">sys.monitoring.register_callback</span></code>
will generate an audit event. Pre-releases of Python 3.12 did not generate
the audit event. This is now fixed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102988">gh-102988</a>: Reverted the <a class="reference internal" href="../library/email.utils.html#module-email.utils" title="email.utils: Miscellaneous email package utilities."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email.utils</span></code></a> security improvement change
released in 3.12beta4 that unintentionally caused
<a class="reference internal" href="../library/email.utils.html#email.utils.getaddresses" title="email.utils.getaddresses"><code class="xref py py-mod docutils literal notranslate"><span class="pre">email.utils.getaddresses</span></code></a> to fail to parse email addresses with a
comma in the quoted name field. See <a class="reference external" href="https://github.com/python/cpython/issues/106669">gh-106669</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99108">gh-99108</a>: Refresh our new HACL* built-in <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> code from
upstream. Built-in SHA2 should be faster and an issue with SHA3 on 32-bit
platforms is fixed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102509">gh-102509</a>: Start initializing <code class="docutils literal notranslate"><span class="pre">ob_digit</span></code> during creation of
<a class="reference internal" href="../c-api/long.html#c.PyLongObject" title="PyLongObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyLongObject</span></code></a> objects. Patch by Illia Volochii.</p></li>
</ul>
</section>
<section id="id172">
<h3>Core and Builtins<a class="headerlink" href="#id172" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110782">gh-110782</a>: Fix crash when <a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeVar</span></code></a> is constructed with a
keyword argument. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110752">gh-110752</a>: Reset <code class="docutils literal notranslate"><span class="pre">ceval.eval_breaker</span></code> in <code class="xref py py-func docutils literal notranslate"><span class="pre">interpreter_clear()</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110721">gh-110721</a>: Use the <a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> implementation for the default
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_Display()</span></code> functionality. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110696">gh-110696</a>: Fix incorrect error message for invalid argument unpacking.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104169">gh-104169</a>: Split the tokenizer into two separate directories: - One part
includes the actual lexeme producing logic and lives in <code class="docutils literal notranslate"><span class="pre">Parser/lexer</span></code>.
- The second part wraps the lexer according to the different tokenization
modes we have (string, utf-8, file, interactive, readline) and lives in
<code class="docutils literal notranslate"><span class="pre">Parser/tokenizer</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110688">gh-110688</a>: Remove undocumented <code class="docutils literal notranslate"><span class="pre">test_c_api</span></code> method from <a class="reference internal" href="../library/stdtypes.html#set" title="set"><code class="xref py py-class docutils literal notranslate"><span class="pre">set</span></code></a>,
which was only defined for testing purposes under <code class="docutils literal notranslate"><span class="pre">Py_DEBUG</span></code>. Now we
have proper CAPI tests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104584">gh-104584</a>: Fix a reference leak when running with <span class="target" id="index-89"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONUOPS</span></code> or
<a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">uops</span></code></a> enabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110514">gh-110514</a>: Add <code class="docutils literal notranslate"><span class="pre">PY_THROW</span></code> to <a class="reference internal" href="../library/sys.html#sys.setprofile" title="sys.setprofile"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.setprofile()</span></code></a> events</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110489">gh-110489</a>: Optimise <a class="reference internal" href="../library/math.html#math.ceil" title="math.ceil"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.ceil()</span></code></a> when the input is exactly a float,
resulting in about a 10% improvement.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110455">gh-110455</a>: Guard <code class="docutils literal notranslate"><span class="pre">assert(tstate->thread_id</span> <span class="pre">></span> <span class="pre">0)</span></code> with <code class="docutils literal notranslate"><span class="pre">#ifndef</span>
<span class="pre">HAVE_PTHREAD_STUBS</span></code>. This allows for for pydebug builds to work under
WASI which (currently) lacks thread support.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110309">gh-110309</a>: Remove unnecessary empty constant nodes in the ast of f-string
specs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110259">gh-110259</a>: Correctly identify the format spec in f-strings (with single or
triple quotes) that have multiple lines in the expression part and include
a formatting spec. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110237">gh-110237</a>: Fix missing error checks for calls to <code class="docutils literal notranslate"><span class="pre">PyList_Append</span></code> in
<code class="docutils literal notranslate"><span class="pre">_PyEval_MatchClass</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110164">gh-110164</a>: regrtest: If the <code class="docutils literal notranslate"><span class="pre">SOURCE_DATE_EPOCH</span></code> environment variable is
defined, regrtest now disables tests randomization. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109889">gh-109889</a>: Fix the compiler’s redundant NOP detection algorithm to skip
over NOPs with no line number when looking for the next instruction’s
lineno.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109853">gh-109853</a>: <code class="docutils literal notranslate"><span class="pre">sys.path[0]</span></code> is now set correctly for subinterpreters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109923">gh-109923</a>: Set line number on the <code class="docutils literal notranslate"><span class="pre">POP_TOP</span></code> that follows a
<code class="docutils literal notranslate"><span class="pre">RETURN_GENERATOR</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105716">gh-105716</a>: Subinterpreters now correctly handle the case where they have
threads running in the background. Before, such threads would interfere
with cleaning up and destroying them, as well as prevent running another
script.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109369">gh-109369</a>: The internal eval_breaker and supporting flags, plus the
monitoring version have been merged into a single atomic integer to speed
up checks.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109823">gh-109823</a>: Fix bug where compiler does not adjust labels when removing an
empty basic block which is a jump target.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109793">gh-109793</a>: The main thread no longer exits prematurely when a
subinterpreter is cleaned up during runtime finalization. The bug was a
problem particularly because, when triggered, the Python process would
always return with a 0 exitcode, even if it failed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109719">gh-109719</a>: Fix missing jump target labels when compiler reorders cold/warm
blocks.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109595">gh-109595</a>: Add <a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">cpu_count</span></code></a> command line option to
override return results of <a class="reference internal" href="../library/os.html#os.cpu_count" title="os.cpu_count"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.cpu_count()</span></code></a> and
<a class="reference internal" href="../library/os.html#os.process_cpu_count" title="os.process_cpu_count"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.process_cpu_count()</span></code></a>. This option is useful for users who need to
limit CPU resources of a container system without having to modify the
container (application code). Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109627">gh-109627</a>: Fix bug where the compiler does not assign a new jump target
label to a duplicated small exit block.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109596">gh-109596</a>: Fix some tokens in the grammar that were incorrectly marked as
soft keywords. Also fix some repeated rule names and ensure that repeated
rules are not allowed. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109496">gh-109496</a>: On a Python built in debug mode, <a class="reference internal" href="../c-api/refcounting.html#c.Py_DECREF" title="Py_DECREF"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_DECREF()</span></code></a> now
calls <code class="docutils literal notranslate"><span class="pre">_Py_NegativeRefcount()</span></code> if the object is a dangling pointer to
deallocated memory: memory filled with <code class="docutils literal notranslate"><span class="pre">0xDD</span></code> “dead byte” by the debug
hook on memory allocators. The fix is to check the reference count
<em>before</em> checking for <code class="docutils literal notranslate"><span class="pre">_Py_IsImmortal()</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107265">gh-107265</a>: Deopt opcodes hidden by the executor when base opcode is needed</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109371">gh-109371</a>: Deopted instructions correctly for tool initialization and
modified the incorrect assertion in instrumentation, when a previous tool
already sets INSTRUCTION events</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105658">gh-105658</a>: Fix bug where the line trace of an except block ending with a
conditional includes an excess event with the line of the conditional
expression.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109219">gh-109219</a>: Fix compiling type param scopes that use a name which is also
free in an inner scope.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109351">gh-109351</a>: Fix crash when compiling an invalid AST involving a named
(walrus) expression.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109341">gh-109341</a>: Fix crash when compiling an invalid AST involving a
<a class="reference internal" href="../library/ast.html#ast.TypeAlias" title="ast.TypeAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.TypeAlias</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109195">gh-109195</a>: Fix source location for the <code class="docutils literal notranslate"><span class="pre">LOAD_*</span></code> instruction preceding a
<code class="docutils literal notranslate"><span class="pre">LOAD_SUPER_ATTR</span></code> to load the <code class="docutils literal notranslate"><span class="pre">super</span></code> global (or shadowing variable)
so that it encompasses only the name <code class="docutils literal notranslate"><span class="pre">super</span></code> and not the following
parentheses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109256">gh-109256</a>: Opcode IDs for specialized opcodes are allocated in their own
range to improve stability of the IDs for the ‘real’ opcodes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109216">gh-109216</a>: Fix possible memory leak in <a class="reference internal" href="../library/dis.html#opcode-BUILD_MAP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">BUILD_MAP</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109207">gh-109207</a>: Fix a SystemError in <code class="docutils literal notranslate"><span class="pre">__repr__</span></code> of symtable entry object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109179">gh-109179</a>: Fix bug where the C traceback display drops notes from
<a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109118">gh-109118</a>: Disallow nested scopes (lambdas, generator expressions, and
comprehensions) within PEP 695 annotation scopes that are nested within
classes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109156">gh-109156</a>: Add tests for de-instrumenting instructions while keeping the
instrumentation for lines</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109114">gh-109114</a>: Relax the detection of the error message for invalid lambdas
inside f-strings to not search for arbitrary replacement fields to avoid
false positives. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105848">gh-105848</a>: Add a new <a class="reference internal" href="../library/dis.html#opcode-CALL_KW"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL_KW</span></code></a> opcode, used for calls containing
keyword arguments. Also, fix a possible crash when jumping over method
calls in a debugger.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109052">gh-109052</a>: Use the base opcode when comparing code objects to avoid
interference from instrumentation</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109118">gh-109118</a>: Fix interpreter crash when a NameError is raised inside the
type parameters of a generic class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88943">gh-88943</a>: Improve syntax error for non-ASCII character that follows a
numerical literal. It now points on the invalid non-ASCII character, not
on the valid numerical literal.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108976">gh-108976</a>: Fix crash that occurs after de-instrumenting a code object in a
monitoring callback.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108732">gh-108732</a>: Make iteration variables of module- and class-scoped
comprehensions visible to pdb and other tools that use <code class="docutils literal notranslate"><span class="pre">frame.f_locals</span></code>
again.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108959">gh-108959</a>: Fix caret placement for error locations for subscript and
binary operations that involve non-semantic parentheses and spaces. Patch
by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104584">gh-104584</a>: Fix a crash when running with <span class="target" id="index-90"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONUOPS</span></code> or
<a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">uops</span></code></a> enabled and an error occurs during optimization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108727">gh-108727</a>: Define <code class="docutils literal notranslate"><span class="pre">tp_dealloc</span></code> for <code class="docutils literal notranslate"><span class="pre">CounterOptimizer_Type</span></code>. This fixes
a segfault on deallocation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108520">gh-108520</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.synchronize.SemLock.__setstate__()</span></code> to
properly initialize
<code class="xref py py-attr docutils literal notranslate"><span class="pre">multiprocessing.synchronize.SemLock._is_fork_ctx</span></code>. This fixes a
regression when passing a SemLock across nested processes.</p>
<p>Rename <code class="xref py py-attr docutils literal notranslate"><span class="pre">multiprocessing.synchronize.SemLock.is_fork_ctx</span></code> to
<code class="xref py py-attr docutils literal notranslate"><span class="pre">multiprocessing.synchronize.SemLock._is_fork_ctx</span></code> to avoid exposing
it as public API.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108654">gh-108654</a>: Restore locals shadowed by an inlined comprehension if the
comprehension raises an exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108488">gh-108488</a>: Change the initialization of inline cache entries so that the
cache entry for <code class="docutils literal notranslate"><span class="pre">JUMP_BACKWARD</span></code> is initialized to zero, instead of the
<code class="docutils literal notranslate"><span class="pre">adaptive_counter_warmup()</span></code> value used for all other instructions. This
counter, unique among instructions, counts up from zero.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108716">gh-108716</a>: Turn off deep-freezing of code objects. Modules are still
frozen, so that a file system search is not needed for common modules.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108614">gh-108614</a>: Add RESUME_CHECK instruction, to avoid having to handle
instrumentation, signals, and contexts switches in the tier 2 execution
engine.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108487">gh-108487</a>: Move an assert that would cause a spurious crash in a devious
case that should only trigger deoptimization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106176">gh-106176</a>: Use a <code class="docutils literal notranslate"><span class="pre">WeakValueDictionary</span></code> to track the lists containing the
modules each thread is currently importing. This helps avoid a reference
leak from keeping the list around longer than necessary. Weakrefs are used
as GC can’t interrupt the cleanup.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105481">gh-105481</a>: The regen-opcode build stage was removed and its work is now
done in regen-cases.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107901">gh-107901</a>: Fix missing line number on <a class="reference internal" href="../library/dis.html#opcode-JUMP_BACKWARD"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_BACKWARD</span></code></a> at the end
of a for loop.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108113">gh-108113</a>: The <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a> built-in can now accept a new flag,
<code class="docutils literal notranslate"><span class="pre">ast.PyCF_OPTIMIZED_AST</span></code>, which is similar to <code class="docutils literal notranslate"><span class="pre">ast.PyCF_ONLY_AST</span></code>
except that the returned <code class="docutils literal notranslate"><span class="pre">AST</span></code> is optimized according to the value of
the <code class="docutils literal notranslate"><span class="pre">optimize</span></code> argument.</p>
<p><a class="reference internal" href="../library/ast.html#ast.parse" title="ast.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.parse()</span></code></a> now accepts an optional argument <code class="docutils literal notranslate"><span class="pre">optimize</span></code> which is
passed on to the <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a> built-in. This makes it possible to
obtain an optimized <code class="docutils literal notranslate"><span class="pre">AST</span></code>.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107971">gh-107971</a>: Opcode IDs are generated from bytecodes.c instead of being hard
coded in opcode.py.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107944">gh-107944</a>: Improve error message for function calls with bad keyword
arguments. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108390">gh-108390</a>: Raise an exception when setting a non-local event (<code class="docutils literal notranslate"><span class="pre">RAISE</span></code>,
<code class="docutils literal notranslate"><span class="pre">EXCEPTION_HANDLED</span></code>, etc.) in <code class="docutils literal notranslate"><span class="pre">sys.monitoring.set_local_events</span></code>.</p>
<p>Fixes crash when tracing in recursive calls to Python classes.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108035">gh-108035</a>: Remove the <code class="docutils literal notranslate"><span class="pre">_PyCFrame</span></code> struct, moving the pointer to the
current interpreter frame back to the threadstate, as it was for 3.10 and
earlier. The <code class="docutils literal notranslate"><span class="pre">_PyCFrame</span></code> existed as a performance optimization for
tracing. Since PEP 669 has been implemented, this optimization no longer
applies.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91051">gh-91051</a>: Fix abort / segfault when using all eight type watcher slots, on
platforms where <code class="docutils literal notranslate"><span class="pre">char</span></code> is signed by default.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106581">gh-106581</a>: Fix possible assertion failures and missing instrumentation
events when <span class="target" id="index-91"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONUOPS</span></code> or <a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">uops</span></code></a> is enabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107526">gh-107526</a>: Revert converting <code class="docutils literal notranslate"><span class="pre">vars</span></code>, <code class="docutils literal notranslate"><span class="pre">dir</span></code>, <code class="docutils literal notranslate"><span class="pre">next</span></code>, <code class="docutils literal notranslate"><span class="pre">getattr</span></code>, and
<code class="docutils literal notranslate"><span class="pre">iter</span></code> to argument clinic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84805">gh-84805</a>: Autogenerate signature for <a class="reference internal" href="../c-api/structures.html#c.METH_NOARGS" title="METH_NOARGS"><code class="xref c c-macro docutils literal notranslate"><span class="pre">METH_NOARGS</span></code></a> and
<a class="reference internal" href="../c-api/structures.html#c.METH_O" title="METH_O"><code class="xref c c-macro docutils literal notranslate"><span class="pre">METH_O</span></code></a> extension functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107758">gh-107758</a>: Make the <code class="docutils literal notranslate"><span class="pre">dump_stack()</span></code> routine used by the <code class="docutils literal notranslate"><span class="pre">lltrace</span></code>
feature (low-level interpreter debugging) robust against recursion by
ensuring that it never calls a <code class="docutils literal notranslate"><span class="pre">__repr__</span></code> method implemented in Python.
Also make the similar output for Tier-2 uops appear on <code class="docutils literal notranslate"><span class="pre">stdout</span></code> (instead
of <code class="docutils literal notranslate"><span class="pre">stderr</span></code>), to match the <code class="docutils literal notranslate"><span class="pre">lltrace</span></code> code in ceval.c.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107659">gh-107659</a>: Add docstrings for <a class="reference internal" href="../library/ctypes.html#ctypes.pointer" title="ctypes.pointer"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.pointer()</span></code></a> and
<a class="reference internal" href="../library/ctypes.html#ctypes.POINTER" title="ctypes.POINTER"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.POINTER()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105848">gh-105848</a>: Modify the bytecode so that the actual callable for a
<a class="reference internal" href="../library/dis.html#opcode-CALL"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL</span></code></a> is at a consistent position on the stack (regardless of
whether or not bound-method-calling optimizations are active).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107674">gh-107674</a>: Fixed performance regression in <code class="docutils literal notranslate"><span class="pre">sys.settrace</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107724">gh-107724</a>: In pre-release versions of 3.12, up to rc1, the sys.monitoring
callback function for the <code class="docutils literal notranslate"><span class="pre">PY_THROW</span></code> event was missing the third,
exception argument. That is now fixed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84436">gh-84436</a>: Skip reference count modifications for many known immortal
objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107596">gh-107596</a>: Specialize subscripting <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> objects by <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>
indexes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107080">gh-107080</a>: Trace refs builds (<code class="docutils literal notranslate"><span class="pre">--with-trace-refs</span></code>) were crashing when
used with isolated subinterpreters. The problematic global state has been
isolated to each interpreter. Other fixing the crashes, this change does
not affect users.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107557">gh-107557</a>: Generate the cases needed for the barebones tier 2 abstract
interpreter for optimization passes in CPython.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106608">gh-106608</a>: Make <code class="docutils literal notranslate"><span class="pre">_PyUOpExecutorObject</span></code> variable length.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100964">gh-100964</a>: Clear generators’ exception state after <code class="docutils literal notranslate"><span class="pre">return</span></code> to break
reference cycles.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107455">gh-107455</a>: Improve error messages when converting an incompatible type to
<a class="reference internal" href="../library/ctypes.html#ctypes.c_char_p" title="ctypes.c_char_p"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.c_char_p</span></code></a>, <a class="reference internal" href="../library/ctypes.html#ctypes.c_wchar_p" title="ctypes.c_wchar_p"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.c_wchar_p</span></code></a> and
<a class="reference internal" href="../library/ctypes.html#ctypes.c_void_p" title="ctypes.c_void_p"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.c_void_p</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107263">gh-107263</a>: Increase C recursion limit for functions other than the main
interpreter from 800 to 1500. This should allow functions like
<code class="docutils literal notranslate"><span class="pre">list.__repr__</span></code> and <code class="docutils literal notranslate"><span class="pre">json.dumps</span></code> to handle all the inputs that they
could prior to 3.12</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104584">gh-104584</a>: Fix an issue which caused incorrect inline caches to be read
when running with <span class="target" id="index-92"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONUOPS</span></code> or <a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">uops</span></code></a> enabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104432">gh-104432</a>: Fix potential unaligned memory access on C APIs involving
returned sequences of <code class="docutils literal notranslate"><span class="pre">char</span> <span class="pre">*</span></code> pointers within the <a class="reference internal" href="../library/grp.html#module-grp" title="grp: The group database (getgrnam() and friends). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">grp</span></code></a> and
<a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> modules. These were revealed using a
<code class="docutils literal notranslate"><span class="pre">-fsaniziter=alignment</span></code> build on ARM macOS. Patch by Christopher Chavez.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106078">gh-106078</a>: Isolate <code class="xref py py-mod docutils literal notranslate"><span class="pre">_decimal</span></code> (apply <span class="target" id="index-93"></span><a class="pep reference external" href="https://peps.python.org/pep-0687/"><strong>PEP 687</strong></a>). Patch by Charlie
Zhao.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106898">gh-106898</a>: Add the exception as the third argument to <code class="docutils literal notranslate"><span class="pre">PY_UNIND</span></code>
callbacks in <code class="docutils literal notranslate"><span class="pre">sys.monitoring</span></code>. This makes the <code class="docutils literal notranslate"><span class="pre">PY_UNWIND</span></code> callback
consistent with the other exception handling callbacks.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106895">gh-106895</a>: Raise a <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> when a monitoring callback function
returns <code class="docutils literal notranslate"><span class="pre">DISABLE</span></code> for events that cannot be disabled locally.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106897">gh-106897</a>: Add a <code class="docutils literal notranslate"><span class="pre">RERAISE</span></code> event to <code class="docutils literal notranslate"><span class="pre">sys.monitoring</span></code>, which occurs
when an exception is reraise, either explicitly by a plain <code class="docutils literal notranslate"><span class="pre">raise</span></code>
statement, or implicitly in an <code class="docutils literal notranslate"><span class="pre">except</span></code> or <code class="docutils literal notranslate"><span class="pre">finally</span></code> block.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77377">gh-77377</a>: Ensure that multiprocessing synchronization objects created in a
fork context are not sent to a different process created in a spawn
context. This changes a segfault into an actionable RuntimeError in the
parent process.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106931">gh-106931</a>: Statically allocated string objects are now interned globally
instead of per-interpreter. This fixes a situation where such a string
would only be interned in a single interpreter. Normal string objects are
unaffected.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104621">gh-104621</a>: Unsupported modules now always fail to be imported.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107122">gh-107122</a>: Add <a class="reference internal" href="../library/dbm.html#dbm.ndbm.ndbm.clear" title="dbm.ndbm.ndbm.clear"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dbm.ndbm.ndbm.clear()</span></code></a> to <a class="reference internal" href="../library/dbm.html#module-dbm.ndbm" title="dbm.ndbm: The New Database Manager (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.ndbm</span></code></a>. Patch By
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107122">gh-107122</a>: Add <a class="reference internal" href="../library/dbm.html#dbm.gnu.gdbm.clear" title="dbm.gnu.gdbm.clear"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dbm.gnu.gdbm.clear()</span></code></a> to <a class="reference internal" href="../library/dbm.html#module-dbm.gnu" title="dbm.gnu: GNU database manager (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.gnu</span></code></a>. Patch By
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107015">gh-107015</a>: The ASYNC and AWAIT tokens are removed from the Grammar, which
removes the possibility of making <code class="docutils literal notranslate"><span class="pre">async</span></code> and <code class="docutils literal notranslate"><span class="pre">await</span></code> soft keywords
when using <code class="docutils literal notranslate"><span class="pre">feature_version<7</span></code> in <a class="reference internal" href="../library/ast.html#ast.parse" title="ast.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.parse()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106917">gh-106917</a>: Fix classmethod-style <a class="reference internal" href="../library/functions.html#super" title="super"><code class="xref py py-func docutils literal notranslate"><span class="pre">super()</span></code></a> method calls (i.e., where
the second argument to <a class="reference internal" href="../library/functions.html#super" title="super"><code class="xref py py-func docutils literal notranslate"><span class="pre">super()</span></code></a>, or the implied second argument drawn
from <code class="docutils literal notranslate"><span class="pre">self/cls</span></code> in the case of zero-arg super, is a type) when the
target of the call is not a classmethod.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105699">gh-105699</a>: Python no longer crashes due an infrequent race when
initializing per-interpreter interned strings. The crash would manifest
when the interpreter was finalized.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105699">gh-105699</a>: Python no longer crashes due to an infrequent race in setting
<code class="docutils literal notranslate"><span class="pre">Py_FileSystemDefaultEncoding</span></code> and <code class="docutils literal notranslate"><span class="pre">Py_FileSystemDefaultEncodeErrors</span></code>
(both deprecated), when simultaneously initializing two isolated
subinterpreters. Now they are only set during runtime initialization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106908">gh-106908</a>: Fix various hangs, reference leaks, test failures, and
tracing/introspection bugs when running with <span class="target" id="index-94"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONUOPS</span></code> or
<a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">uops</span></code></a> enabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106092">gh-106092</a>: Fix a segmentation fault caused by a use-after-free bug in
<code class="docutils literal notranslate"><span class="pre">frame_dealloc</span></code> when the trashcan delays the deallocation of a
<code class="docutils literal notranslate"><span class="pre">PyFrameObject</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106485">gh-106485</a>: Reduce the number of materialized instances dictionaries by
dematerializing them when possible.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106719">gh-106719</a>: No longer suppress arbitrary errors in the <code class="docutils literal notranslate"><span class="pre">__annotations__</span></code>
getter and setter in the type and module types.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106723">gh-106723</a>: Propagate <code class="docutils literal notranslate"><span class="pre">frozen_modules</span></code> to multiprocessing spawned process
interpreters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104909">gh-104909</a>: Split <code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_ATTR_INSTANCE_VALUE</span></code> into micro-ops.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104909">gh-104909</a>: Split <a class="reference internal" href="../library/dis.html#opcode-LOAD_GLOBAL"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_GLOBAL</span></code></a> specializations into micro-ops.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106597">gh-106597</a>: A new debug structure of offsets has been added to the
<code class="docutils literal notranslate"><span class="pre">_PyRuntimeState</span></code> that will help out-of-process debuggers and profilers
to obtain the offsets to relevant interpreter structures in a way that is
agnostic of how Python was compiled and that doesn’t require copying the
headers. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106487">gh-106487</a>: Allow the <em>count</em> argument of <a class="reference internal" href="../library/stdtypes.html#str.replace" title="str.replace"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.replace()</span></code></a> to be a
keyword. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96844">gh-96844</a>: Improve error message of <a class="reference internal" href="../library/stdtypes.html#list.remove" title="list.remove"><code class="xref py py-meth docutils literal notranslate"><span class="pre">list.remove()</span></code></a>. Patch by Donghee
Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81283">gh-81283</a>: Compiler now strips indents from docstrings. It reduces <code class="docutils literal notranslate"><span class="pre">pyc</span></code>
file size 5% when the module is heavily documented. This change affects to
<code class="docutils literal notranslate"><span class="pre">__doc__</span></code> so tools like doctest will be affected.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106396">gh-106396</a>: When the format specification of an f-string expression is
empty, the parser now generates an empty <a class="reference internal" href="../library/ast.html#ast.JoinedStr" title="ast.JoinedStr"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.JoinedStr</span></code></a> node for
it instead of an one-element <a class="reference internal" href="../library/ast.html#ast.JoinedStr" title="ast.JoinedStr"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.JoinedStr</span></code></a> with an empty string
<a class="reference internal" href="../library/ast.html#ast.Constant" title="ast.Constant"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Constant</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100288">gh-100288</a>: Specialize <a class="reference internal" href="../library/dis.html#opcode-LOAD_ATTR"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_ATTR</span></code></a> for non-descriptors on the
class. Adds <code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES</span></code> and
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_ATTR_NONDESCRIPTOR_NO_DICT</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106008">gh-106008</a>: Fix possible reference leaks when failing to optimize
comparisons with <a class="reference internal" href="../library/constants.html#None" title="None"><code class="xref py py-const docutils literal notranslate"><span class="pre">None</span></code></a> in the bytecode compiler.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106145">gh-106145</a>: Make <code class="docutils literal notranslate"><span class="pre">end_lineno</span></code> and <code class="docutils literal notranslate"><span class="pre">end_col_offset</span></code> required on
<code class="docutils literal notranslate"><span class="pre">type_param</span></code> ast nodes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106213">gh-106213</a>: Changed the way that Emscripten call trampolines work for
compatibility with Wasm/JS Promise integration.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106182">gh-106182</a>: <a class="reference internal" href="../library/sys.html#sys.getfilesystemencoding" title="sys.getfilesystemencoding"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.getfilesystemencoding()</span></code></a> and
<a class="reference internal" href="../library/sys.html#sys.getfilesystemencodeerrors" title="sys.getfilesystemencodeerrors"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sys.getfilesystemencodeerrors</span></code></a> now return interned Unicode object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106210">gh-106210</a>: Removed Emscripten import trampoline as it was no longer
necessary for Pyodide.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104584">gh-104584</a>: Added a new, experimental, tracing optimizer and interpreter
(a.k.a. “tier 2”). This currently pessimizes, so don’t use yet – this is
infrastructure so we can experiment with optimizing passes. To enable it,
pass <code class="docutils literal notranslate"><span class="pre">-Xuops</span></code> or set <code class="docutils literal notranslate"><span class="pre">PYTHONUOPS=1</span></code>. To get debug output, set
<code class="docutils literal notranslate"><span class="pre">PYTHONUOPSDEBUG=N</span></code> where <code class="docutils literal notranslate"><span class="pre">N</span></code> is a debug level (0-4, where 0 is no
debug output and 4 is excessively verbose).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105775">gh-105775</a>: <a class="reference internal" href="../library/dis.html#opcode-LOAD_CLOSURE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_CLOSURE</span></code></a> is now a pseudo-op.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105730">gh-105730</a>: Allow any callable other than type objects as the condition
predicate in <a class="reference internal" href="../library/exceptions.html#BaseExceptionGroup.split" title="BaseExceptionGroup.split"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BaseExceptionGroup.split()</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#BaseExceptionGroup.subgroup" title="BaseExceptionGroup.subgroup"><code class="xref py py-meth docutils literal notranslate"><span class="pre">BaseExceptionGroup.subgroup()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105979">gh-105979</a>: Fix crash in <code class="xref py py-func docutils literal notranslate"><span class="pre">_imp.get_frozen_object()</span></code> due to improper
exception handling.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106003">gh-106003</a>: Add a new <a class="reference internal" href="../library/dis.html#opcode-TO_BOOL"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">TO_BOOL</span></code></a> instruction, which performs boolean
conversions for <a class="reference internal" href="../library/dis.html#opcode-POP_JUMP_IF_TRUE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">POP_JUMP_IF_TRUE</span></code></a>, <a class="reference internal" href="../library/dis.html#opcode-POP_JUMP_IF_FALSE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">POP_JUMP_IF_FALSE</span></code></a>,
and <a class="reference internal" href="../library/dis.html#opcode-UNARY_NOT"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">UNARY_NOT</span></code></a> (which all expect exact <a class="reference internal" href="../library/functions.html#bool" title="bool"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a> values now).
Also, modify the oparg of <a class="reference internal" href="../library/dis.html#opcode-COMPARE_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">COMPARE_OP</span></code></a> to include an optional
“boolean conversion” flag.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98931">gh-98931</a>: Ensure custom <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> error messages are raised for
invalid imports with multiple targets. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105724">gh-105724</a>: Improve <code class="docutils literal notranslate"><span class="pre">assert</span></code> error messages by providing exact error
range.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105908">gh-105908</a>: Fixed bug where <a class="reference external" href="https://github.com/python/cpython/issues/99111">gh-99111</a> breaks future import
<code class="docutils literal notranslate"><span class="pre">barry_as_FLUFL</span></code> in the Python REPL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105840">gh-105840</a>: Fix possible crashes when specializing function calls with too
many <code class="docutils literal notranslate"><span class="pre">__defaults__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105831">gh-105831</a>: Fix an f-string bug, where using a debug expression (the <code class="docutils literal notranslate"><span class="pre">=</span></code>
sign) that appears in the last line of a file results to the debug buffer
that holds the expression text being one character too small.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105800">gh-105800</a>: Correctly issue <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a> in f-strings if invalid
sequences are used. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105340">gh-105340</a>: Include the comprehension iteration variable in <code class="docutils literal notranslate"><span class="pre">locals()</span></code>
inside a module- or class-scope comprehension.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105331">gh-105331</a>: Raise <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> if the <code class="docutils literal notranslate"><span class="pre">delay</span></code> argument to
<a class="reference internal" href="../library/asyncio-task.html#asyncio.sleep" title="asyncio.sleep"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.sleep()</span></code></a> is a NaN (matching <a class="reference internal" href="../library/time.html#time.sleep" title="time.sleep"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.sleep()</span></code></a>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105587">gh-105587</a>: The runtime can’t guarantee that immortal objects will not be
mutated by Extensions. Thus, this modifies _PyStaticObject_CheckRefcnt to
warn instead of asserting.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105564">gh-105564</a>: Don’t include artificil newlines in the <code class="docutils literal notranslate"><span class="pre">line</span></code> attribute of
tokens in the APIs of the <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a> module. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105549">gh-105549</a>: Tokenize separately <code class="docutils literal notranslate"><span class="pre">NUMBER</span></code> and <code class="docutils literal notranslate"><span class="pre">NAME</span></code> tokens that are not
ambiguous. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105588">gh-105588</a>: Fix an issue that could result in crashes when compiling
malformed <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> nodes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100987">gh-100987</a>: Allow objects other than code objects as the “executable” in
internal frames. In the long term, this can help tools like Cython and
PySpy interact more efficiently. In the shorter term, it allows us to
perform some optimizations more simply.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix bugs in the <a class="reference internal" href="../library/builtins.html#module-builtins" title="builtins: The module that provides the built-in namespace."><code class="xref py py-mod docutils literal notranslate"><span class="pre">builtins</span></code></a> module where exceptions could
end up being overwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix bug in the compiler where an exception could end up being
overwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Improve error handling in <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_BuildEncodingMap" title="PyUnicode_BuildEncodingMap"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_BuildEncodingMap()</span></code></a>
where an exception could end up being overwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105486">gh-105486</a>: Change the repr of <code class="docutils literal notranslate"><span class="pre">ParamSpec</span></code> list of args in
<code class="docutils literal notranslate"><span class="pre">types.GenericAlias</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105678">gh-105678</a>: Break the <code class="docutils literal notranslate"><span class="pre">MAKE_FUNCTION</span></code> instruction into two parts,
<code class="docutils literal notranslate"><span class="pre">MAKE_FUNCTION</span></code> which makes the function and <code class="docutils literal notranslate"><span class="pre">SET_FUNCTION_ATTRIBUTE</span></code>
which sets the attributes on the function. This makes the stack effect of
<code class="docutils literal notranslate"><span class="pre">MAKE_FUNCTION</span></code> regular to ease optimization and code generation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105435">gh-105435</a>: Fix spurious newline character if file ends on a comment
without a newline. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105390">gh-105390</a>: Correctly raise <a class="reference internal" href="../library/tokenize.html#tokenize.TokenError" title="tokenize.TokenError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">tokenize.TokenError</span></code></a> exceptions instead
of <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> for tokenize errors such as incomplete input. Patch
by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105259">gh-105259</a>: Don’t include newline character for trailing <code class="docutils literal notranslate"><span class="pre">NEWLINE</span></code> tokens
emitted in the <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a> module. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104635">gh-104635</a>: Eliminate redundant <a class="reference internal" href="../library/dis.html#opcode-STORE_FAST"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">STORE_FAST</span></code></a> instructions in the
compiler. Patch by Donghee Na and Carl Meyer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105324">gh-105324</a>: Fix the main function of the <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a> module when
reading from <code class="docutils literal notranslate"><span class="pre">sys.stdin</span></code>. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/33092">gh-33092</a>: Simplify and speed up interpreter for f-strings. Removes
<code class="docutils literal notranslate"><span class="pre">FORMAT_VALUE</span></code> opcode. Add <code class="docutils literal notranslate"><span class="pre">CONVERT_VALUE</span></code>, <code class="docutils literal notranslate"><span class="pre">FORMAT_SIMPLE</span></code> and
<code class="docutils literal notranslate"><span class="pre">FORMAT_WITH_SPEC</span></code> opcode. Compiler emits more efficient sequence for
each format expression.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105229">gh-105229</a>: Remove remaining two-codeunit superinstructions. All remaining
superinstructions only take a single codeunit, simplifying instrumentation
and quickening.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105235">gh-105235</a>: Prevent out-of-bounds memory access during <code class="docutils literal notranslate"><span class="pre">mmap.find()</span></code>
calls.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98963">gh-98963</a>: Restore the ability for a subclass of <a class="reference internal" href="../library/functions.html#property" title="property"><code class="xref py py-class docutils literal notranslate"><span class="pre">property</span></code></a> to
define <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> or otherwise be dict-less by ignoring failures to set
a docstring on such a class. This behavior had regressed in 3.12beta1.
An <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> where there had not previously been one was
disruptive to existing code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104812">gh-104812</a>: The “pending call” machinery now works for all interpreters,
not just the main interpreter, and runs in all threads, not just the main
thread. Some calls are still only done in the main thread, ergo in the
main interpreter. This change does not affect signal handling nor the
existing public C-API (<code class="docutils literal notranslate"><span class="pre">Py_AddPendingCall()</span></code>), which both still only
target the main thread. The new functionality is meant strictly for
internal use for now, since consequences of its use are not well
understood yet outside some very restricted cases. This change brings the
capability in line with the intention when the state was made
per-interpreter several years ago.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105194">gh-105194</a>: Do not escape with backslashes f-string format specifiers.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105229">gh-105229</a>: Replace some dynamic superinstructions with single instruction
equivalents.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105162">gh-105162</a>: Fixed bug in generator.close()/throw() where an inner iterator
would be ignored when the outer iterator was instrumented.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105164">gh-105164</a>: Ensure annotations are set up correctly if the only annotation
in a block is within a <a class="reference internal" href="../reference/compound_stmts.html#match"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">match</span></code></a> block. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105148">gh-105148</a>: Make <code class="docutils literal notranslate"><span class="pre">_PyASTOptimizeState</span></code> internal to ast_opt.c. Make
<code class="docutils literal notranslate"><span class="pre">_PyAST_Optimize</span></code> take two integers instead of a pointer to this struct.
This avoids the need to include pycore_compile.h in ast_opt.c.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104799">gh-104799</a>: Attributes of <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> nodes that are lists now default to
the empty list if omitted. This means that some code that previously
raised <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when the AST node was used will now proceed with
the empty list instead. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105111">gh-105111</a>: Remove the old trashcan macros <code class="docutils literal notranslate"><span class="pre">Py_TRASHCAN_SAFE_BEGIN</span></code> and
<code class="docutils literal notranslate"><span class="pre">Py_TRASHCAN_SAFE_END</span></code>. They should be replaced by the new macros
<code class="docutils literal notranslate"><span class="pre">Py_TRASHCAN_BEGIN</span></code> and <code class="docutils literal notranslate"><span class="pre">Py_TRASHCAN_END</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105035">gh-105035</a>: Fix <a class="reference internal" href="../library/functions.html#super" title="super"><code class="xref py py-func docutils literal notranslate"><span class="pre">super()</span></code></a> calls on types with custom
<a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_getattro" title="PyTypeObject.tp_getattro"><code class="xref c c-member docutils literal notranslate"><span class="pre">tp_getattro</span></code></a> implementation (e.g. meta-types.)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105017">gh-105017</a>: Show CRLF lines in the tokenize string attribute in both NL and
NEWLINE tokens. Patch by Marta Gómez.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105013">gh-105013</a>: Fix handling of multiline parenthesized lambdas in
<a class="reference internal" href="../library/inspect.html#inspect.getsource" title="inspect.getsource"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getsource()</span></code></a>. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105017">gh-105017</a>: Do not include an additional final <code class="docutils literal notranslate"><span class="pre">NL</span></code> token when parsing
files having CRLF lines. Patch by Marta Gómez.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104976">gh-104976</a>: Ensure that trailing <code class="docutils literal notranslate"><span class="pre">DEDENT</span></code> <code class="xref py py-class docutils literal notranslate"><span class="pre">tokenize.TokenInfo</span></code>
objects emitted by the <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a> module are reported as in Python
3.11. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104972">gh-104972</a>: Ensure that the <code class="docutils literal notranslate"><span class="pre">line</span></code> attribute in
<code class="xref py py-class docutils literal notranslate"><span class="pre">tokenize.TokenInfo</span></code> objects in the <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a> module are
always correct. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104955">gh-104955</a>: Fix signature for the new <a class="reference internal" href="../reference/datamodel.html#object.__release_buffer__" title="object.__release_buffer__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__release_buffer__()</span></code></a>
slot. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104690">gh-104690</a>: Starting new threads and process creation through
<a class="reference internal" href="../library/os.html#os.fork" title="os.fork"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fork()</span></code></a> during interpreter shutdown (such as from <a class="reference internal" href="../library/atexit.html#module-atexit" title="atexit: Register and execute cleanup functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">atexit</span></code></a>
handlers) is no longer supported. It can lead to race condition between
the main Python runtime thread freeing thread states while internal
<a class="reference internal" href="../library/threading.html#module-threading" title="threading: Thread-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code></a> routines are trying to allocate and use the state of just
created threads. Or forked children trying to use the mid-shutdown runtime
and thread state in the child process.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104879">gh-104879</a>: Fix crash when accessing the <code class="docutils literal notranslate"><span class="pre">__module__</span></code> attribute of type
aliases defined outside a module. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104825">gh-104825</a>: Tokens emitted by the <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a> module do not include an
implicit <code class="docutils literal notranslate"><span class="pre">\n</span></code> character in the <code class="docutils literal notranslate"><span class="pre">line</span></code> attribute anymore. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104770">gh-104770</a>: If a generator returns a value upon being closed, the value is
now returned by <a class="reference internal" href="../reference/expressions.html#generator.close" title="generator.close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">generator.close()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89091">gh-89091</a>: Raise <a class="reference internal" href="../library/exceptions.html#RuntimeWarning" title="RuntimeWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeWarning</span></code></a> for unawaited async generator
methods like <a class="reference internal" href="../reference/expressions.html#agen.asend" title="agen.asend"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asend()</span></code></a>, <a class="reference internal" href="../reference/expressions.html#agen.athrow" title="agen.athrow"><code class="xref py py-meth docutils literal notranslate"><span class="pre">athrow()</span></code></a> and
<a class="reference internal" href="../reference/expressions.html#agen.aclose" title="agen.aclose"><code class="xref py py-meth docutils literal notranslate"><span class="pre">aclose()</span></code></a>. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96663">gh-96663</a>: Add a better, more introspect-able error message when setting
attributes on classes without a <code class="docutils literal notranslate"><span class="pre">__dict__</span></code> and no slot member for the
attribute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93627">gh-93627</a>: Update the Python pickle module implementation to match the C
implementation of the pickle module. For objects setting reduction methods
like <a class="reference internal" href="../library/pickle.html#object.__reduce_ex__" title="object.__reduce_ex__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__reduce_ex__()</span></code></a> or <a class="reference internal" href="../library/pickle.html#object.__reduce__" title="object.__reduce__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__reduce__()</span></code></a> to
<code class="docutils literal notranslate"><span class="pre">None</span></code>, pickling will result in a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101006">gh-101006</a>: Improve error handling when read <a class="reference internal" href="../library/marshal.html#module-marshal" title="marshal: Convert Python objects to streams of bytes and back (with different constraints)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">marshal</span></code></a> data.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91095">gh-91095</a>: Specializes calls to most Python classes. Specifically, any
class that inherits from <code class="docutils literal notranslate"><span class="pre">object</span></code>, or another Python class, and does not
override <code class="docutils literal notranslate"><span class="pre">__new__</span></code>.</p>
<p>The specialized instruction does the following:</p>
<ol class="arabic simple">
<li><p>Creates the object (by calling <code class="docutils literal notranslate"><span class="pre">object.__new__</span></code>)</p></li>
<li><p>Pushes a shim frame to the frame stack (to cleanup after <code class="docutils literal notranslate"><span class="pre">__init__</span></code>)</p></li>
<li><p>Pushes the frame for <code class="docutils literal notranslate"><span class="pre">__init__</span></code> to the frame stack</p></li>
</ol>
<p>Speeds up the instantiation of most Python classes.</p>
</li>
</ul>
</section>
<section id="id173">
<h3>Library<a class="headerlink" href="#id173" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110786">gh-110786</a>: <a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a>’s CLI now ignores <a class="reference internal" href="../library/exceptions.html#BrokenPipeError" title="BrokenPipeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BrokenPipeError</span></code></a>,
making it exit normally if its output is being piped and the pipe closes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103480">gh-103480</a>: The <a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a> module is now a package, instead of a
single-file module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110733">gh-110733</a>: Micro-optimization: Avoid calling <code class="docutils literal notranslate"><span class="pre">min()</span></code>, <code class="docutils literal notranslate"><span class="pre">max()</span></code> in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">BaseEventLoop._run_once()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94597">gh-94597</a>: Added <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.EventLoop" title="asyncio.EventLoop"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.EventLoop</span></code></a> for use with the
<a class="reference internal" href="../library/asyncio-runner.html#asyncio.run" title="asyncio.run"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.run()</span></code></a> <em>loop_factory</em> kwarg to avoid calling the asyncio
policy system.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110682">gh-110682</a>: <a class="reference internal" href="../library/typing.html#typing.runtime_checkable" title="typing.runtime_checkable"><code class="xref py py-func docutils literal notranslate"><span class="pre">runtime-checkable</span> <span class="pre">protocols</span></code></a>
used to consider <code class="docutils literal notranslate"><span class="pre">__match_args__</span></code> a protocol member in
<code class="docutils literal notranslate"><span class="pre">__instancecheck__</span></code> if it was present on the protocol. Now, this
attribute is ignored if it is present.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110488">gh-110488</a>: Fix a couple of issues in <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.with_name" title="pathlib.PurePath.with_name"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.with_name()</span></code></a>: a
single dot was incorrectly considered a valid name, and in
<code class="xref py py-class docutils literal notranslate"><span class="pre">PureWindowsPath</span></code>, a name with an NTFS alternate data stream, like
<code class="docutils literal notranslate"><span class="pre">a:b</span></code>, was incorrectly considered invalid.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110590">gh-110590</a>: Fix a bug in <code class="xref py py-meth docutils literal notranslate"><span class="pre">_sre.compile()</span></code> where <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> would
be overwritten by <a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> when the <em>code</em> argument was a list
of non-ints.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65052">gh-65052</a>: Prevent <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> from crashing when trying to display
undisplayable objects</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110519">gh-110519</a>: Deprecation warning about non-integer number in <a class="reference internal" href="../library/gettext.html#module-gettext" title="gettext: Multilingual internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gettext</span></code></a>
now always refers to the line in the user code where gettext function or
method is used. Previously it could refer to a line in <code class="docutils literal notranslate"><span class="pre">gettext</span></code> code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89902">gh-89902</a>: Deprecate non-standard format specifier “N” for
<a class="reference internal" href="../library/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal notranslate"><span class="pre">decimal.Decimal</span></code></a>. It was not documented and only supported in the
C implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110378">gh-110378</a>: <a class="reference internal" href="../library/contextlib.html#contextlib.contextmanager" title="contextlib.contextmanager"><code class="xref py py-func docutils literal notranslate"><span class="pre">contextmanager()</span></code></a> and
<a class="reference internal" href="../library/contextlib.html#contextlib.asynccontextmanager" title="contextlib.asynccontextmanager"><code class="xref py py-func docutils literal notranslate"><span class="pre">asynccontextmanager()</span></code></a> context managers now close an
invalid underlying generator object that yields more then one value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106670">gh-106670</a>: In <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>, set convenience variable <code class="docutils literal notranslate"><span class="pre">$_exception</span></code> for
post mortem debugging.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110365">gh-110365</a>: Fix <a class="reference internal" href="../library/termios.html#termios.tcsetattr" title="termios.tcsetattr"><code class="xref py py-func docutils literal notranslate"><span class="pre">termios.tcsetattr()</span></code></a> bug that was overwriting existing
errors during parsing integers from <code class="docutils literal notranslate"><span class="pre">term</span></code> list.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109653">gh-109653</a>: Slightly improve the import time of several standard-library
modules by deferring imports of <a class="reference internal" href="../library/warnings.html#module-warnings" title="warnings: Issue warning messages and control their disposition."><code class="xref py py-mod docutils literal notranslate"><span class="pre">warnings</span></code></a> within those modules.
Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110273">gh-110273</a>: <a class="reference internal" href="../library/dataclasses.html#dataclasses.replace" title="dataclasses.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.replace()</span></code></a> now raises TypeError instead of
ValueError if specify keyword argument for a field declared with
init=False or miss keyword argument for required InitVar field.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110249">gh-110249</a>: Add <code class="docutils literal notranslate"><span class="pre">--inline-caches</span></code> flag to <code class="docutils literal notranslate"><span class="pre">dis</span></code> command line.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109653">gh-109653</a>: Fix a Python 3.12 regression in the import time of
<a class="reference internal" href="../library/random.html#module-random" title="random: Generate pseudo-random numbers with various common distributions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">random</span></code></a>. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110222">gh-110222</a>: Add support of struct sequence objects in <a class="reference internal" href="../library/copy.html#copy.replace" title="copy.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.replace()</span></code></a>.
Patched by Xuehai Pan.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109649">gh-109649</a>: <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a>, <a class="reference internal" href="../library/concurrent.futures.html#module-concurrent.futures" title="concurrent.futures: Execute computations concurrently using threads or processes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures</span></code></a>,
<a class="reference internal" href="../library/compileall.html#module-compileall" title="compileall: Tools for byte-compiling all Python source files in a directory tree."><code class="xref py py-mod docutils literal notranslate"><span class="pre">compileall</span></code></a>: Replace <a class="reference internal" href="../library/os.html#os.cpu_count" title="os.cpu_count"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.cpu_count()</span></code></a> with
<a class="reference internal" href="../library/os.html#os.process_cpu_count" title="os.process_cpu_count"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.process_cpu_count()</span></code></a> to select the default number of worker
threads and processes. Get the CPU affinity if supported. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110150">gh-110150</a>: Fix base case handling in statistics.quantiles. Now allows a
single data point.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110036">gh-110036</a>: On Windows, multiprocessing <code class="docutils literal notranslate"><span class="pre">Popen.terminate()</span></code> now catches
<a class="reference internal" href="../library/exceptions.html#PermissionError" title="PermissionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PermissionError</span></code></a> and get the process exit code. If the process is
still running, raise again the <a class="reference internal" href="../library/exceptions.html#PermissionError" title="PermissionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PermissionError</span></code></a>. Otherwise, the
process terminated as expected: store its exit code. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110038">gh-110038</a>: Fixed an issue that caused <code class="xref py py-meth docutils literal notranslate"><span class="pre">KqueueSelector.select()</span></code> to not
return all the ready events in some cases when a file descriptor is
registered for both read and write.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110045">gh-110045</a>: Update the <a class="reference internal" href="../library/symtable.html#module-symtable" title="symtable: Interface to the compiler's internal symbol tables."><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code></a> module to support the new scopes
introduced by <span class="target" id="index-95"></span><a class="pep reference external" href="https://peps.python.org/pep-0695/"><strong>PEP 695</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88402">gh-88402</a>: Add new variables to <a class="reference internal" href="../library/sysconfig.html#sysconfig.get_config_vars" title="sysconfig.get_config_vars"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sysconfig.get_config_vars()</span></code></a> on
Windows: <code class="docutils literal notranslate"><span class="pre">LIBRARY</span></code>, <code class="docutils literal notranslate"><span class="pre">LDLIBRARY</span></code>, <code class="docutils literal notranslate"><span class="pre">LIBDIR</span></code>, <code class="docutils literal notranslate"><span class="pre">SOABI</span></code>, and
<code class="docutils literal notranslate"><span class="pre">Py_NOGIL</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109631">gh-109631</a>: <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> functions such as <a class="reference internal" href="../library/re.html#re.findall" title="re.findall"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.findall()</span></code></a>,
<a class="reference internal" href="../library/re.html#re.split" title="re.split"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.split()</span></code></a>, <a class="reference internal" href="../library/re.html#re.search" title="re.search"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.search()</span></code></a> and <a class="reference internal" href="../library/re.html#re.sub" title="re.sub"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.sub()</span></code></a> which perform short
repeated matches can now be interrupted by user.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109653">gh-109653</a>: Reduce the import time of <a class="reference internal" href="../library/email.utils.html#module-email.utils" title="email.utils: Miscellaneous email package utilities."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email.utils</span></code></a> by around 43%.
This results in the import time of <a class="reference internal" href="../library/email.message.html#module-email.message" title="email.message: The base class representing email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email.message</span></code></a> falling by around
18%, which in turn reduces the import time of <a class="reference internal" href="../library/importlib.metadata.html#module-importlib.metadata" title="importlib.metadata: Accessing package metadata"><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib.metadata</span></code></a> by
around 6%. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109818">gh-109818</a>: Fix <a class="reference internal" href="../library/reprlib.html#reprlib.recursive_repr" title="reprlib.recursive_repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">reprlib.recursive_repr()</span></code></a> not copying
<code class="docutils literal notranslate"><span class="pre">__type_params__</span></code> from decorated function.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109047">gh-109047</a>: <a class="reference internal" href="../library/concurrent.futures.html#module-concurrent.futures" title="concurrent.futures: Execute computations concurrently using threads or processes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures</span></code></a>: The <em>executor manager thread</em> now
catches exceptions when adding an item to the <em>call queue</em>. During Python
finalization, creating a new thread can now raise <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a>.
Catch the exception and call <code class="docutils literal notranslate"><span class="pre">terminate_broken()</span></code> in this case. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109782">gh-109782</a>: Ensure the signature of <a class="reference internal" href="../library/os.path.html#os.path.isdir" title="os.path.isdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.isdir()</span></code></a> is identical on
all platforms. Patch by Amin Alaee.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109653">gh-109653</a>: Improve import time of <a class="reference internal" href="../library/functools.html#module-functools" title="functools: Higher-order functions and operations on callable objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">functools</span></code></a> by around 13%. Patch by
Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109590">gh-109590</a>: <a class="reference internal" href="../library/shutil.html#shutil.which" title="shutil.which"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.which()</span></code></a> will prefer files with an extension in
<code class="docutils literal notranslate"><span class="pre">PATHEXT</span></code> if the given mode includes <code class="docutils literal notranslate"><span class="pre">os.X_OK</span></code> on win32. If no
<code class="docutils literal notranslate"><span class="pre">PATHEXT</span></code> match is found, a file without an extension in <code class="docutils literal notranslate"><span class="pre">PATHEXT</span></code> can
be returned. This change will have <a class="reference internal" href="../library/shutil.html#shutil.which" title="shutil.which"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.which()</span></code></a> act more similarly
to previous behavior in Python 3.11.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109653">gh-109653</a>: Reduce the import time of <a class="reference internal" href="../library/enum.html#module-enum" title="enum: Implementation of an enumeration class."><code class="xref py py-mod docutils literal notranslate"><span class="pre">enum</span></code></a> by over 50%. Patch by
Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109593">gh-109593</a>: Avoid deadlocking on a reentrant call to the multiprocessing
resource tracker. Such a reentrant call, though unlikely, can happen if a
GC pass invokes the finalizer for a multiprocessing object such as
SemLock.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109653">gh-109653</a>: Reduce the import time of <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> by around a third.
Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109649">gh-109649</a>: Add <a class="reference internal" href="../library/os.html#os.process_cpu_count" title="os.process_cpu_count"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.process_cpu_count()</span></code></a> function to get the number of
logical CPUs usable by the calling thread of the current process. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74481">gh-74481</a>: Add <code class="docutils literal notranslate"><span class="pre">set_error_mode</span></code> related constants in <code class="docutils literal notranslate"><span class="pre">msvcrt</span></code> module in
Python debug build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109613">gh-109613</a>: Fix <a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a> and <a class="reference internal" href="../library/os.html#os.DirEntry.stat" title="os.DirEntry.stat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">os.DirEntry.stat()</span></code></a>: check for
exceptions. Previously, on Python built in debug mode, these functions
could trigger a fatal Python error (and abort the process) when a function
succeeded with an exception set. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109599">gh-109599</a>: Expose the type of PyCapsule objects as <code class="docutils literal notranslate"><span class="pre">types.CapsuleType</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109109">gh-109109</a>: You can now get the raw TLS certificate chains from TLS
connections via <a class="reference internal" href="../library/ssl.html#ssl.SSLSocket.get_verified_chain" title="ssl.SSLSocket.get_verified_chain"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.SSLSocket.get_verified_chain()</span></code></a> and
<a class="reference internal" href="../library/ssl.html#ssl.SSLSocket.get_unverified_chain" title="ssl.SSLSocket.get_unverified_chain"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.SSLSocket.get_unverified_chain()</span></code></a> methods.</p>
<p>Contributed by Mateusz Nowak.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109559">gh-109559</a>: Update <a class="reference internal" href="../library/unicodedata.html#module-unicodedata" title="unicodedata: Access the Unicode Database."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unicodedata</span></code></a> database to Unicode 15.1.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109543">gh-109543</a>: Remove unnecessary <a class="reference internal" href="../library/functions.html#hasattr" title="hasattr"><code class="xref py py-func docutils literal notranslate"><span class="pre">hasattr()</span></code></a> check during
<a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.TypedDict</span></code></a> creation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109495">gh-109495</a>: Remove unnecessary extra <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> in
<a class="reference internal" href="../library/datetime.html#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a>'s pure python implementation to reduce memory
size, as they are defined in the superclass. Patch by James Hilton-Balfe</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109461">gh-109461</a>: <a class="reference internal" href="../library/logging.html#module-logging" title="logging: Flexible event logging system for applications."><code class="xref py py-mod docutils literal notranslate"><span class="pre">logging</span></code></a>: Use a context manager for lock acquisition.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109096">gh-109096</a>: <a class="reference internal" href="../library/http.server.html#http.server.CGIHTTPRequestHandler" title="http.server.CGIHTTPRequestHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.server.CGIHTTPRequestHandler</span></code></a> has been deprecated
for removal in 3.15. Its design is old and the web world has long since
moved beyond CGI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109409">gh-109409</a>: Fix error when it was possible to inherit a frozen dataclass
from multiple parents some of which were possibly not frozen.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109375">gh-109375</a>: The <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> <code class="docutils literal notranslate"><span class="pre">alias</span></code> command now prevents registering
aliases without arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109319">gh-109319</a>: Deprecate the <code class="docutils literal notranslate"><span class="pre">dis.HAVE_ARGUMENT</span></code> field in favour of
<code class="docutils literal notranslate"><span class="pre">dis.hasarg</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107219">gh-107219</a>: Fix a race condition in <code class="docutils literal notranslate"><span class="pre">concurrent.futures</span></code>. When a process
in the process pool was terminated abruptly (while the future was running
or pending), close the connection write end. If the call queue is blocked
on sending bytes to a worker process, closing the connection write end
interrupts the send, so the queue can be closed. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/66143">gh-66143</a>: The <a class="reference internal" href="../library/codecs.html#codecs.CodecInfo" title="codecs.CodecInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">codecs.CodecInfo</span></code></a> object has been made copyable and
pickleable. Patched by Robert Lehmann and Furkan Onder.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109187">gh-109187</a>: <a class="reference internal" href="../library/pathlib.html#pathlib.Path.resolve" title="pathlib.Path.resolve"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.resolve()</span></code></a> now treats symlink loops like
other errors: in strict mode, <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> is raised, and in non-strict
mode, no exception is raised.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/50644">gh-50644</a>: Attempts to pickle or create a shallow or deep copy of
<a class="reference internal" href="../library/codecs.html#module-codecs" title="codecs: Encode and decode data and streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">codecs</span></code></a> streams now raise a TypeError. Previously, copying failed
with a RecursionError, while pickling produced wrong results that
eventually caused unpickling to fail with a RecursionError.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109174">gh-109174</a>: Add support of <a class="reference internal" href="../library/types.html#types.SimpleNamespace" title="types.SimpleNamespace"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.SimpleNamespace</span></code></a> in
<a class="reference internal" href="../library/copy.html#copy.replace" title="copy.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.replace()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109164">gh-109164</a>: <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>: Replace <a class="reference internal" href="../library/getopt.html#module-getopt" title="getopt: Portable parser for command line options; support both short and long option names."><code class="xref py py-mod docutils literal notranslate"><span class="pre">getopt</span></code></a> with <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> for
parsing command line arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109151">gh-109151</a>: Enable <code class="docutils literal notranslate"><span class="pre">readline</span></code> editing features in the <a class="reference internal" href="../library/sqlite3.html#sqlite3-cli"><span class="std std-ref">sqlite3
command-line interface</span></a> (<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">sqlite3</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108987">gh-108987</a>: Fix <a class="reference internal" href="../library/_thread.html#thread.start_new_thread" title="_thread.start_new_thread"><code class="xref py py-func docutils literal notranslate"><span class="pre">_thread.start_new_thread()</span></code></a> race condition. If a
thread is created during Python finalization, the newly spawned thread now
exits immediately instead of trying to access freed memory and lead to a
crash. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108682">gh-108682</a>: Enum: require <code class="docutils literal notranslate"><span class="pre">names=()</span></code> or <code class="docutils literal notranslate"><span class="pre">type=...</span></code> to create an empty
enum using the functional syntax.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109033">gh-109033</a>: Exceptions raised by os.utime builtin function now include the
related filename</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108843">gh-108843</a>: Fix an issue in <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> when unparsing f-strings
containing many quote types.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108469">gh-108469</a>: <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> now supports new <a class="reference internal" href="../glossary.html#term-f-string"><span class="xref std std-term">f-string</span></a> syntax
introduced in Python 3.12. Note that the <a class="reference internal" href="../glossary.html#term-f-string"><span class="xref std std-term">f-string</span></a> quotes are
reselected for simplicity under the new syntax. (Patch by Steven Sun)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108751">gh-108751</a>: Add <a class="reference internal" href="../library/copy.html#copy.replace" title="copy.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.replace()</span></code></a> function which allows to create a
modified copy of an object. It supports named tuples, dataclasses, and
many other objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108682">gh-108682</a>: Enum: raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> if <code class="docutils literal notranslate"><span class="pre">super().__new__()</span></code> is called
from a custom <code class="docutils literal notranslate"><span class="pre">__new__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108278">gh-108278</a>: Deprecate passing the callback callable by keyword for the
following <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> APIs:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.set_authorizer" title="sqlite3.Connection.set_authorizer"><code class="xref py py-meth docutils literal notranslate"><span class="pre">set_authorizer()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.set_progress_handler" title="sqlite3.Connection.set_progress_handler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">set_progress_handler()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.set_trace_callback" title="sqlite3.Connection.set_trace_callback"><code class="xref py py-meth docutils literal notranslate"><span class="pre">set_trace_callback()</span></code></a></p></li>
</ul>
<p>The affected parameters will become positional-only in Python 3.15.</p>
<p>Patch by Erlend E. Aasland.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105829">gh-105829</a>: Fix concurrent.futures.ProcessPoolExecutor deadlock</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108295">gh-108295</a>: Fix crashes related to use of weakrefs on
<a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.TypeVar</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108463">gh-108463</a>: Make expressions/statements work as expected in pdb</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108277">gh-108277</a>: Add <a class="reference internal" href="../library/os.html#os.timerfd_create" title="os.timerfd_create"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.timerfd_create()</span></code></a>, <a class="reference internal" href="../library/os.html#os.timerfd_settime" title="os.timerfd_settime"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.timerfd_settime()</span></code></a>,
<a class="reference internal" href="../library/os.html#os.timerfd_gettime" title="os.timerfd_gettime"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.timerfd_gettime()</span></code></a>, <a class="reference internal" href="../library/os.html#os.timerfd_settime_ns" title="os.timerfd_settime_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.timerfd_settime_ns()</span></code></a>, and
<a class="reference internal" href="../library/os.html#os.timerfd_gettime_ns" title="os.timerfd_gettime_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.timerfd_gettime_ns()</span></code></a> to provide a low level interface for Linux’s
timer notification file descriptor.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107811">gh-107811</a>: <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a>: extraction of members with overly large UID or
GID (e.g. on an OS with 32-bit <code class="xref c c-type docutils literal notranslate"><span class="pre">id_t</span></code>) now fails in the same way
as failing to set the ID.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/64662">gh-64662</a>: Fix support for virtual tables in
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.iterdump" title="sqlite3.Connection.iterdump"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.iterdump()</span></code></a>. Patch by Aviv Palivoda.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108111">gh-108111</a>: Fix a regression introduced in <a class="reference external" href="https://github.com/python/cpython/issues/101251">gh-101251</a> for 3.12, resulting in
an incorrect offset calculation in <code class="xref py py-meth docutils literal notranslate"><span class="pre">gzip.GzipFile.seek()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108294">gh-108294</a>: <a class="reference internal" href="../library/time.html#time.sleep" title="time.sleep"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.sleep()</span></code></a> now raises an auditing event.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108278">gh-108278</a>: Deprecate passing name, number of arguments, and the callable
as keyword arguments, for the following <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> APIs:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.create_function" title="sqlite3.Connection.create_function"><code class="xref py py-meth docutils literal notranslate"><span class="pre">create_function()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.create_aggregate" title="sqlite3.Connection.create_aggregate"><code class="xref py py-meth docutils literal notranslate"><span class="pre">create_aggregate()</span></code></a></p></li>
</ul>
<p>The affected parameters will become positional-only in Python 3.15.</p>
<p>Patch by Erlend E. Aasland.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108322">gh-108322</a>: Speed-up NormalDist.samples() by using the inverse CDF method
instead of calling random.gauss().</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83417">gh-83417</a>: Add the ability for venv to create a <code class="docutils literal notranslate"><span class="pre">.gitignore</span></code> file which
causes the created environment to be ignored by Git. It is on by default
when venv is called via its CLI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105736">gh-105736</a>: Harmonized the pure Python version of
<a class="reference internal" href="../library/collections.html#collections.OrderedDict" title="collections.OrderedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">OrderedDict</span></code></a> with the C version. Now, both versions
set up their internal state in <code class="docutils literal notranslate"><span class="pre">__new__</span></code>. Formerly, the pure Python
version did the set up in <code class="docutils literal notranslate"><span class="pre">__init__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108083">gh-108083</a>: Fix bugs in the constructor of <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> and
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.close" title="sqlite3.Connection.close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.close()</span></code></a> where exceptions could be leaked. Patch
by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107932">gh-107932</a>: Fix <code class="docutils literal notranslate"><span class="pre">dis</span></code> module to properly report and display bytecode that
do not have source lines.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105539">gh-105539</a>: <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> now emits an <a class="reference internal" href="../library/exceptions.html#ResourceWarning" title="ResourceWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ResourceWarning</span></code></a> if a
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> object is not <code class="xref py py-meth docutils literal notranslate"><span class="pre">closed</span></code> explicitly. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107995">gh-107995</a>: The <code class="docutils literal notranslate"><span class="pre">__module__</span></code> attribute on instances of
<a class="reference internal" href="../library/functools.html#functools.cached_property" title="functools.cached_property"><code class="xref py py-class docutils literal notranslate"><span class="pre">functools.cached_property</span></code></a> is now set to the name of the module in
which the cached_property is defined, rather than “functools”. This means
that doctests in <code class="docutils literal notranslate"><span class="pre">cached_property</span></code> docstrings are now properly collected
by the <a class="reference internal" href="../library/doctest.html#module-doctest" title="doctest: Test pieces of code within docstrings."><code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code></a> module. Patch by Tyler Smart.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107963">gh-107963</a>: Fix <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.set_forkserver_preload" title="multiprocessing.set_forkserver_preload"><code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocessing.set_forkserver_preload()</span></code></a> to check the
given list of modules names. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106242">gh-106242</a>: Fixes <a class="reference internal" href="../library/os.path.html#os.path.normpath" title="os.path.normpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.normpath()</span></code></a> to handle embedded null
characters without truncating the path.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81555">gh-81555</a>: <a class="reference internal" href="../library/xml.dom.minidom.html#module-xml.dom.minidom" title="xml.dom.minidom: Minimal Document Object Model (DOM) implementation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.dom.minidom</span></code></a> now only quotes <code class="docutils literal notranslate"><span class="pre">"</span></code> in attributes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/50002">gh-50002</a>: <a class="reference internal" href="../library/xml.dom.minidom.html#module-xml.dom.minidom" title="xml.dom.minidom: Minimal Document Object Model (DOM) implementation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.dom.minidom</span></code></a> now preserves whitespaces in attributes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93057">gh-93057</a>: Passing more than one positional argument to
<a class="reference internal" href="../library/sqlite3.html#sqlite3.connect" title="sqlite3.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">sqlite3.connect()</span></code></a> and the <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> constructor is
deprecated. The remaining parameters will become keyword-only in Python
3.15. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/76913">gh-76913</a>: Add <em>merge_extra</em> parameter/feature to
<a class="reference internal" href="../library/logging.html#logging.LoggerAdapter" title="logging.LoggerAdapter"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.LoggerAdapter</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107913">gh-107913</a>: Fix possible losses of <code class="docutils literal notranslate"><span class="pre">errno</span></code> and <code class="docutils literal notranslate"><span class="pre">winerror</span></code> values in
<a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> exceptions if they were cleared or modified by the cleanup
code before creating the exception object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107845">gh-107845</a>: <a class="reference internal" href="../library/tarfile.html#tarfile.data_filter" title="tarfile.data_filter"><code class="xref py py-func docutils literal notranslate"><span class="pre">tarfile.data_filter()</span></code></a> now takes the location of symlinks
into account when determining their target, so it will no longer reject
some valid tarballs with <code class="docutils literal notranslate"><span class="pre">LinkOutsideDestinationError</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107812">gh-107812</a>: Extend socket’s netlink support to the FreeBSD platform.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107805">gh-107805</a>: Fix signatures of module-level generated functions in
<a class="reference internal" href="../library/turtle.html#module-turtle" title="turtle: An educational framework for simple graphics applications"><code class="xref py py-mod docutils literal notranslate"><span class="pre">turtle</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107782">gh-107782</a>: <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a> is now able to show signatures which are not
representable in Python, e.g. for <code class="docutils literal notranslate"><span class="pre">getattr</span></code> and <code class="docutils literal notranslate"><span class="pre">dict.pop</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/56166">gh-56166</a>: Deprecate passing optional arguments <em>maxsplit</em>, <em>count</em> and
<em>flags</em> in module-level functions <a class="reference internal" href="../library/re.html#re.split" title="re.split"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.split()</span></code></a>, <a class="reference internal" href="../library/re.html#re.sub" title="re.sub"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.sub()</span></code></a> and
<a class="reference internal" href="../library/re.html#re.subn" title="re.subn"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.subn()</span></code></a> as positional. They should only be passed by keyword.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107710">gh-107710</a>: Speed up <a class="reference internal" href="../library/logging.html#logging.getHandlerNames" title="logging.getHandlerNames"><code class="xref py py-func docutils literal notranslate"><span class="pre">logging.getHandlerNames()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107715">gh-107715</a>: Fix <a class="reference internal" href="../library/doctest.html#doctest.DocTestFinder.find" title="doctest.DocTestFinder.find"><code class="xref py py-meth docutils literal notranslate"><span class="pre">doctest.DocTestFinder.find()</span></code></a> in presence of class
names with special characters. Patch by Gertjan van Zwieten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100814">gh-100814</a>: Passing a callable object as an option value to a Tkinter image
now raises the expected TclError instead of an AttributeError.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/72684">gh-72684</a>: Add <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> widget methods: <code class="xref py py-meth docutils literal notranslate"><span class="pre">tk_busy_hold()</span></code>,
<code class="xref py py-meth docutils literal notranslate"><span class="pre">tk_busy_configure()</span></code>, <code class="xref py py-meth docutils literal notranslate"><span class="pre">tk_busy_cget()</span></code>,
<code class="xref py py-meth docutils literal notranslate"><span class="pre">tk_busy_forget()</span></code>, <code class="xref py py-meth docutils literal notranslate"><span class="pre">tk_busy_current()</span></code>, and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">tk_busy_status()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106684">gh-106684</a>: Raise <a class="reference internal" href="../library/exceptions.html#ResourceWarning" title="ResourceWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ResourceWarning</span></code></a> when <a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamWriter" title="asyncio.StreamWriter"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.StreamWriter</span></code></a>
is not closed leading to memory leaks. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107465">gh-107465</a>: Add <a class="reference internal" href="../library/pathlib.html#pathlib.Path.from_uri" title="pathlib.Path.from_uri"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.from_uri()</span></code></a> classmethod.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107077">gh-107077</a>: Seems that in some conditions, OpenSSL will return
<code class="docutils literal notranslate"><span class="pre">SSL_ERROR_SYSCALL</span></code> instead of <code class="docutils literal notranslate"><span class="pre">SSL_ERROR_SSL</span></code> when a certification
verification has failed, but the error parameters will still contain
<code class="docutils literal notranslate"><span class="pre">ERR_LIB_SSL</span></code> and <code class="docutils literal notranslate"><span class="pre">SSL_R_CERTIFICATE_VERIFY_FAILED</span></code>. We are now
detecting this situation and raising the appropriate
<code class="docutils literal notranslate"><span class="pre">ssl.SSLCertVerificationError</span></code>. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107576">gh-107576</a>: Fix <a class="reference internal" href="../library/types.html#types.get_original_bases" title="types.get_original_bases"><code class="xref py py-func docutils literal notranslate"><span class="pre">types.get_original_bases()</span></code></a> to only return
<code class="xref py py-attr docutils literal notranslate"><span class="pre">__orig_bases__</span></code> if it is present on <code class="docutils literal notranslate"><span class="pre">cls</span></code> directly. Patch by
James Hilton-Balfe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105481">gh-105481</a>: Remove <code class="docutils literal notranslate"><span class="pre">opcode.is_pseudo</span></code>, <code class="docutils literal notranslate"><span class="pre">opcode.MIN_PSEUDO_OPCODE</span></code> and
<code class="docutils literal notranslate"><span class="pre">opcode.MAX_PSEUDO_OPCODE</span></code>, which were added in 3.12, were never
documented and were not intended to be used externally.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105481">gh-105481</a>: <code class="xref py py-data docutils literal notranslate"><span class="pre">opcode.ENABLE_SPECIALIZATION</span></code> (which was added in 3.12
but never documented or intended for external usage) is moved to
<code class="xref py py-data docutils literal notranslate"><span class="pre">_opcode.ENABLE_SPECIALIZATION</span></code> where tests can access it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107396">gh-107396</a>: tarfiles; Fixed use before assignment of self.exception for
gzip decompression</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107409">gh-107409</a>: Set <code class="xref py py-attr docutils literal notranslate"><span class="pre">__wrapped__</span></code> attribute in
<a class="reference internal" href="../library/reprlib.html#reprlib.recursive_repr" title="reprlib.recursive_repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">reprlib.recursive_repr()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107406">gh-107406</a>: Implement new <code class="xref py py-meth docutils literal notranslate"><span class="pre">__repr__()</span></code> method for
<a class="reference internal" href="../library/struct.html#struct.Struct" title="struct.Struct"><code class="xref py py-class docutils literal notranslate"><span class="pre">struct.Struct</span></code></a>. Now it returns <code class="docutils literal notranslate"><span class="pre">Struct(<format</span> <span class="pre">repr>)</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107369">gh-107369</a>: Optimize <a class="reference internal" href="../library/textwrap.html#textwrap.indent" title="textwrap.indent"><code class="xref py py-func docutils literal notranslate"><span class="pre">textwrap.indent()</span></code></a>. It is ~30% faster for large
input. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/78722">gh-78722</a>: Fix issue where <a class="reference internal" href="../library/pathlib.html#pathlib.Path.iterdir" title="pathlib.Path.iterdir"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.iterdir()</span></code></a> did not raise
<a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> until iterated.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105578">gh-105578</a>: Deprecate <a class="reference internal" href="../library/typing.html#typing.AnyStr" title="typing.AnyStr"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.AnyStr</span></code></a> in favor of the new Type
Parameter syntax. See PEP 695.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/62519">gh-62519</a>: Make <a class="reference internal" href="../library/gettext.html#gettext.pgettext" title="gettext.pgettext"><code class="xref py py-func docutils literal notranslate"><span class="pre">gettext.pgettext()</span></code></a> search plural definitions when
translation is not found.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107089">gh-107089</a>: Shelves opened with <a class="reference internal" href="../library/shelve.html#shelve.open" title="shelve.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">shelve.open()</span></code></a> have a much faster
<code class="xref py py-meth docutils literal notranslate"><span class="pre">clear()</span></code> method. Patch by James Cave.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82500">gh-82500</a>: Fix overflow on 32-bit systems with <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>
<a class="reference internal" href="../library/os.html#os.sendfile" title="os.sendfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.sendfile()</span></code></a> implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83006">gh-83006</a>: Document behavior of <a class="reference internal" href="../library/shutil.html#shutil.disk_usage" title="shutil.disk_usage"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.disk_usage()</span></code></a> for non-mounted
filesystems on Unix.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65495">gh-65495</a>: Use lowercase <code class="docutils literal notranslate"><span class="pre">mail</span> <span class="pre">from</span></code> and <code class="docutils literal notranslate"><span class="pre">rcpt</span> <span class="pre">to</span></code> in
<code class="xref py py-class docutils literal notranslate"><span class="pre">smptlib.SMTP</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106186">gh-106186</a>: Do not report <code class="docutils literal notranslate"><span class="pre">MultipartInvariantViolationDefect</span></code> defect when
the <a class="reference internal" href="../library/email.parser.html#email.parser.Parser" title="email.parser.Parser"><code class="xref py py-class docutils literal notranslate"><span class="pre">email.parser.Parser</span></code></a> class is used to parse emails with
<code class="docutils literal notranslate"><span class="pre">headersonly=True</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105002">gh-105002</a>: Fix invalid result from <code class="xref py py-meth docutils literal notranslate"><span class="pre">PurePath.relative_to()</span></code> method
when attempting to walk a “<code class="docutils literal notranslate"><span class="pre">..</span></code>” segment in <em>other</em> with <em>walk_up</em>
enabled. A <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> exception is now raised in this case.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106739">gh-106739</a>: Add the <code class="docutils literal notranslate"><span class="pre">rtype_cache</span></code> to the warning message (as an addition
to the type of leaked objects and the number of leaked objects already
included in the message) to make debugging leaked objects easier when the
multiprocessing resource tracker process finds leaked objects at shutdown.
This helps more quickly identify what was leaked and/or why the leaked
object was not properly cleaned up.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106751">gh-106751</a>: Optimize <code class="xref py py-meth docutils literal notranslate"><span class="pre">SelectSelector.select()</span></code> for many iteration case.
Patch By Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106751">gh-106751</a>: Optimize <code class="xref py py-meth docutils literal notranslate"><span class="pre">_PollLikeSelector.select()</span></code> for many iteration
case.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106751">gh-106751</a>: Optimize <code class="xref py py-meth docutils literal notranslate"><span class="pre">KqueueSelector.select()</span></code> for many iteration case.
Patch By Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106831">gh-106831</a>: Fix potential missing <code class="docutils literal notranslate"><span class="pre">NULL</span></code> check of <code class="docutils literal notranslate"><span class="pre">d2i_SSL_SESSION</span></code>
result in <code class="docutils literal notranslate"><span class="pre">_ssl.c</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105481">gh-105481</a>: The various opcode lists in the <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> module are now
generated from bytecodes.c instead of explicitly constructed in opcode.py.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106727">gh-106727</a>: Make <a class="reference internal" href="../library/inspect.html#inspect.getsource" title="inspect.getsource"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getsource()</span></code></a> smarter for class for same name
definitions</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106789">gh-106789</a>: Remove import of <a class="reference internal" href="../library/pprint.html#module-pprint" title="pprint: Data pretty printer."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pprint</span></code></a> from <a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105726">gh-105726</a>: Added <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> to
<a class="reference internal" href="../library/contextlib.html#contextlib.AbstractContextManager" title="contextlib.AbstractContextManager"><code class="xref py py-class docutils literal notranslate"><span class="pre">contextlib.AbstractContextManager</span></code></a> and
<a class="reference internal" href="../library/contextlib.html#contextlib.AbstractAsyncContextManager" title="contextlib.AbstractAsyncContextManager"><code class="xref py py-class docutils literal notranslate"><span class="pre">contextlib.AbstractAsyncContextManager</span></code></a> so that child classes can
use <code class="docutils literal notranslate"><span class="pre">__slots__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106774">gh-106774</a>: Update the bundled copy of pip to version 23.2.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106751">gh-106751</a>: <a class="reference internal" href="../library/selectors.html#module-selectors" title="selectors: High-level I/O multiplexing."><code class="xref py py-mod docutils literal notranslate"><span class="pre">selectors</span></code></a>: Optimize <code class="docutils literal notranslate"><span class="pre">EpollSelector.select()</span></code> code by
moving some code outside of the loop.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106752">gh-106752</a>: Fixed several bugs in zipfile.Path, including: in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">zipfile.Path.match()</span></code>, Windows separators are no longer honored (and
never were meant to be); Fixed <code class="docutils literal notranslate"><span class="pre">name</span></code>/<code class="docutils literal notranslate"><span class="pre">suffix</span></code>/<code class="docutils literal notranslate"><span class="pre">suffixes</span></code>/<code class="docutils literal notranslate"><span class="pre">stem</span></code>
operations when no filename is present and the Path is not at the root of
the zipfile; Reworked glob for performance and more correct matching
behavior.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105293">gh-105293</a>: Remove call to <code class="docutils literal notranslate"><span class="pre">SSL_CTX_set_session_id_context</span></code> during client
side context creation in the <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106734">gh-106734</a>: Disable tab completion in multiline mode of <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105481">gh-105481</a>: Expose opcode metadata through <code class="xref py py-mod docutils literal notranslate"><span class="pre">_opcode</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106670">gh-106670</a>: Add the new <code class="docutils literal notranslate"><span class="pre">exceptions</span></code> command to the Pdb debugger. It
makes it possible to move between chained exceptions when using post
mortem debugging.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106602">gh-106602</a>: Add __copy__ and __deepcopy__ in <a class="reference internal" href="../library/enum.html#module-enum" title="enum: Implementation of an enumeration class."><code class="xref py py-mod docutils literal notranslate"><span class="pre">enum</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106664">gh-106664</a>: <a class="reference internal" href="../library/selectors.html#module-selectors" title="selectors: High-level I/O multiplexing."><code class="xref py py-mod docutils literal notranslate"><span class="pre">selectors</span></code></a>: Add <code class="docutils literal notranslate"><span class="pre">_SelectorMapping.get()</span></code> method and
optimize <code class="docutils literal notranslate"><span class="pre">_SelectorMapping.__getitem__()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106628">gh-106628</a>: Speed up parsing of emails by about 20% by not compiling a new
regular expression for every single email.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89427">gh-89427</a>: Set the environment variable <code class="docutils literal notranslate"><span class="pre">VIRTUAL_ENV_PROMPT</span></code> at
<a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a> activation, even when <code class="docutils literal notranslate"><span class="pre">VIRTUAL_ENV_DISABLE_PROMPT</span></code> is set.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106530">gh-106530</a>: Revert a change to <a class="reference internal" href="../library/colorsys.html#colorsys.rgb_to_hls" title="colorsys.rgb_to_hls"><code class="xref py py-func docutils literal notranslate"><span class="pre">colorsys.rgb_to_hls()</span></code></a> that caused
division by zero for certain almost-white inputs. Patch by Terry Jan
Reedy.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106584">gh-106584</a>: Fix exit code for <code class="docutils literal notranslate"><span class="pre">unittest</span></code> if all tests are skipped. Patch
by Egor Eliseev.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106566">gh-106566</a>: Optimize <code class="docutils literal notranslate"><span class="pre">(?!)</span></code> (pattern which always fails) in regular
expressions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106554">gh-106554</a>: <a class="reference internal" href="../library/selectors.html#module-selectors" title="selectors: High-level I/O multiplexing."><code class="xref py py-mod docutils literal notranslate"><span class="pre">selectors</span></code></a>: Reduce Selector overhead by using a
<code class="docutils literal notranslate"><span class="pre">dict.get()</span></code> to lookup file descriptors.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106558">gh-106558</a>: Remove ref cycle in callers of
<code class="xref py py-func docutils literal notranslate"><span class="pre">convert_to_error()</span></code> by deleting <code class="docutils literal notranslate"><span class="pre">result</span></code>
from scope in a <code class="docutils literal notranslate"><span class="pre">finally</span></code> block.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100502">gh-100502</a>: Add <code class="xref py py-attr docutils literal notranslate"><span class="pre">pathlib.PurePath.pathmod</span></code> class attribute that
stores the implementation of <a class="reference internal" href="../library/os.path.html#module-os.path" title="os.path: Operations on pathnames."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os.path</span></code></a> used for low-level path
operations: either <code class="docutils literal notranslate"><span class="pre">posixpath</span></code> or <code class="docutils literal notranslate"><span class="pre">ntpath</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106527">gh-106527</a>: Reduce overhead to add and remove <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> readers and
writers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106524">gh-106524</a>: Fix crash in <code class="xref py py-func docutils literal notranslate"><span class="pre">_sre.template()</span></code> with templates containing
invalid group indices.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106531">gh-106531</a>: Removed <code class="docutils literal notranslate"><span class="pre">_legacy</span></code> and the names it provided from
<code class="docutils literal notranslate"><span class="pre">importlib.resources</span></code>: <code class="docutils literal notranslate"><span class="pre">Resource</span></code>, <code class="docutils literal notranslate"><span class="pre">contents</span></code>, <code class="docutils literal notranslate"><span class="pre">is_resource</span></code>,
<code class="docutils literal notranslate"><span class="pre">open_binary</span></code>, <code class="docutils literal notranslate"><span class="pre">open_text</span></code>, <code class="docutils literal notranslate"><span class="pre">path</span></code>, <code class="docutils literal notranslate"><span class="pre">read_binary</span></code>, and
<code class="docutils literal notranslate"><span class="pre">read_text</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106052">gh-106052</a>: <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> module: fix the matching of possessive quantifiers in
the case of a subpattern containing backtracking.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106510">gh-106510</a>: Improve debug output for atomic groups in regular expressions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106503">gh-106503</a>: Fix ref cycle in <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio._SelectorSocketTransport</span></code> by
removing <code class="docutils literal notranslate"><span class="pre">_write_ready</span></code> in <code class="docutils literal notranslate"><span class="pre">close</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105497">gh-105497</a>: Fix flag mask inversion when unnamed flags exist.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90876">gh-90876</a>: Prevent <code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing.spawn</span></code> from failing to <em>import</em> in
environments where <code class="docutils literal notranslate"><span class="pre">sys.executable</span></code> is <code class="docutils literal notranslate"><span class="pre">None</span></code>. This regressed in 3.11
with the addition of support for path-like objects in multiprocessing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106403">gh-106403</a>: Instances of <a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeVar</span></code></a>,
<a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ParamSpec</span></code></a>, <a class="reference internal" href="../library/typing.html#typing.ParamSpecArgs" title="typing.ParamSpecArgs"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ParamSpecArgs</span></code></a>,
<a class="reference internal" href="../library/typing.html#typing.ParamSpecKwargs" title="typing.ParamSpecKwargs"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ParamSpecKwargs</span></code></a>, and <a class="reference internal" href="../library/typing.html#typing.TypeVarTuple" title="typing.TypeVarTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeVarTuple</span></code></a> once
again support weak references, fixing a regression introduced in Python
3.12.0 beta 1. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89812">gh-89812</a>: Add private <code class="docutils literal notranslate"><span class="pre">pathlib._PathBase</span></code> class, which provides
experimental support for virtual filesystems, and may be made public in a
future version of Python.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106292">gh-106292</a>: Check for an instance-dict cached value in the <code class="xref py py-meth docutils literal notranslate"><span class="pre">__get__()</span></code>
method of <a class="reference internal" href="../library/functools.html#functools.cached_property" title="functools.cached_property"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.cached_property()</span></code></a>. This better matches the
pre-3.12 behavior and improves compatibility for users subclassing
<a class="reference internal" href="../library/functools.html#functools.cached_property" title="functools.cached_property"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.cached_property()</span></code></a> and adding a <code class="xref py py-meth docutils literal notranslate"><span class="pre">__set__()</span></code> method.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106350">gh-106350</a>: Detect possible memory allocation failure in the libtommath
function <code class="xref c c-func docutils literal notranslate"><span class="pre">mp_init()</span></code> used by the <code class="docutils literal notranslate"><span class="pre">_tkinter</span></code> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106330">gh-106330</a>: Fix incorrect matching of empty paths in
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.match" title="pathlib.PurePath.match"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.match()</span></code></a>. This bug was introduced in Python 3.12.0
beta 1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106309">gh-106309</a>: Deprecate <a class="reference internal" href="../library/typing.html#typing.no_type_check_decorator" title="typing.no_type_check_decorator"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.no_type_check_decorator()</span></code></a>. No major type
checker ever added support for this decorator. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102541">gh-102541</a>: Make <code class="xref py py-func docutils literal notranslate"><span class="pre">pydoc.doc()</span></code> catch bad module <a class="reference internal" href="../library/exceptions.html#ImportError" title="ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a> when
output stream is not <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106263">gh-106263</a>: Fix crash when calling <code class="docutils literal notranslate"><span class="pre">repr</span></code> with a manually constructed
SignalDict object. Patch by Charlie Zhao.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106236">gh-106236</a>: Replace <code class="docutils literal notranslate"><span class="pre">assert</span></code> statements with <code class="docutils literal notranslate"><span class="pre">raise</span> <span class="pre">RuntimeError</span></code> in
<a class="reference internal" href="../library/threading.html#module-threading" title="threading: Thread-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code></a>, so that <code class="docutils literal notranslate"><span class="pre">_DummyThread</span></code> cannot be joined even with
<code class="docutils literal notranslate"><span class="pre">-OO</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106238">gh-106238</a>: Fix rare concurrency bug in lock acquisition by the logging
package.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106152">gh-106152</a>: Added PY_THROW event hook for <a class="reference internal" href="../library/profile.html#module-cProfile" title="cProfile"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cProfile</span></code></a> for generators</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106075">gh-106075</a>: Added <code class="docutils literal notranslate"><span class="pre">asyncio.taskgroups.__all__</span></code> to <code class="docutils literal notranslate"><span class="pre">asyncio.__all__</span></code> for
export in star imports.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104527">gh-104527</a>: Zipapp will now skip over appending an archive to itself.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106046">gh-106046</a>: Improve the error message from <a class="reference internal" href="../library/os.html#os.fspath" title="os.fspath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fspath()</span></code></a> if called on
an object where <code class="docutils literal notranslate"><span class="pre">__fspath__</span></code> is set to <code class="docutils literal notranslate"><span class="pre">None</span></code>. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105987">gh-105987</a>: Fix crash due to improper reference counting in <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>
eager task factory internal routines.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105974">gh-105974</a>: Fix bug where a <a class="reference internal" href="../library/typing.html#typing.Protocol" title="typing.Protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Protocol</span></code></a> class that had one or
more non-callable members would raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when
<a class="reference internal" href="../library/functions.html#issubclass" title="issubclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">issubclass()</span></code></a> was called against it, even if it defined a custom
<code class="docutils literal notranslate"><span class="pre">__subclasshook__</span></code> method. The behaviour in Python 3.11 and lower –
which has now been restored – was not to raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> in these
situations if a custom <code class="docutils literal notranslate"><span class="pre">__subclasshook__</span></code> method was defined. Patch by
Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96145">gh-96145</a>: Reverted addition of <code class="docutils literal notranslate"><span class="pre">json.AttrDict</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89812">gh-89812</a>: Add <a class="reference internal" href="../library/pathlib.html#pathlib.UnsupportedOperation" title="pathlib.UnsupportedOperation"><code class="xref py py-exc docutils literal notranslate"><span class="pre">pathlib.UnsupportedOperation</span></code></a>, which is raised instead
of <a class="reference internal" href="../library/exceptions.html#NotImplementedError" title="NotImplementedError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotImplementedError</span></code></a> when a path operation isn’t supported.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105808">gh-105808</a>: Fix a regression introduced in <a class="reference external" href="https://github.com/python/cpython/issues/101251">gh-101251</a> for 3.12, causing
<code class="xref py py-meth docutils literal notranslate"><span class="pre">gzip.GzipFile.flush()</span></code> to not flush the compressor (nor pass along
the <code class="docutils literal notranslate"><span class="pre">zip_mode</span></code> argument).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105481">gh-105481</a>: <a class="reference internal" href="../library/dis.html#dis.stack_effect" title="dis.stack_effect"><code class="xref py py-func docutils literal notranslate"><span class="pre">stack_effect()</span></code></a> no longer raises an exception if an
<code class="docutils literal notranslate"><span class="pre">oparg</span></code> is provided for an <code class="docutils literal notranslate"><span class="pre">opcode</span></code> that doesn’t use its arg, or when
it is not provided for an <code class="docutils literal notranslate"><span class="pre">opcode</span></code> that does use it. In the latter case,
the stack effect is returned for <code class="docutils literal notranslate"><span class="pre">oparg=0</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104799">gh-104799</a>: Enable <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> to unparse function and class
definitions created without the new <code class="docutils literal notranslate"><span class="pre">type_params</span></code> field from <span class="target" id="index-96"></span><a class="pep reference external" href="https://peps.python.org/pep-0695/"><strong>PEP 695</strong></a>.
Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105793">gh-105793</a>: Add <em>follow_symlinks</em> keyword-only argument to
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_dir" title="pathlib.Path.is_dir"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.is_dir()</span></code></a> and <a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_file" title="pathlib.Path.is_file"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_file()</span></code></a>, defaulting
to <code class="docutils literal notranslate"><span class="pre">True</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105570">gh-105570</a>: Deprecate two methods of creating <a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypedDict</span></code></a>
classes with 0 fields using the functional syntax: <code class="docutils literal notranslate"><span class="pre">TD</span> <span class="pre">=</span>
<span class="pre">TypedDict("TD")</span></code> and <code class="docutils literal notranslate"><span class="pre">TD</span> <span class="pre">=</span> <span class="pre">TypedDict("TD",</span> <span class="pre">None)</span></code>. Both will be
disallowed in Python 3.15. To create a <code class="docutils literal notranslate"><span class="pre">TypedDict</span></code> class with 0 fields,
either use <code class="docutils literal notranslate"><span class="pre">class</span> <span class="pre">TD(TypedDict):</span> <span class="pre">pass</span></code> or <code class="docutils literal notranslate"><span class="pre">TD</span> <span class="pre">=</span> <span class="pre">TypedDict("TD",</span> <span class="pre">{})</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105745">gh-105745</a>: Fix <code class="docutils literal notranslate"><span class="pre">webbrowser.Konqueror.open</span></code> method.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105733">gh-105733</a>: <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a>: Deprecate undocumented
<code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.SetPointerType()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.ARRAY()</span></code> functions. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105687">gh-105687</a>: Remove deprecated <code class="docutils literal notranslate"><span class="pre">re.template</span></code>, <code class="docutils literal notranslate"><span class="pre">re.T</span></code>, <code class="docutils literal notranslate"><span class="pre">re.TEMPLATE</span></code>,
<code class="docutils literal notranslate"><span class="pre">sre_constans.SRE_FLAG_TEMPLATE</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105684">gh-105684</a>: Supporting <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.set_name" title="asyncio.Task.set_name"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Task.set_name()</span></code></a> is now mandatory for
third party task implementations. The undocumented <code class="xref py py-func docutils literal notranslate"><span class="pre">_set_task_name()</span></code>
function (deprecated since 3.8) has been removed. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix a bug in <code class="xref c c-func docutils literal notranslate"><span class="pre">_Unpickler_SetInputStream()</span></code> where an
exception could end up being overwritten in case of failure.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105626">gh-105626</a>: Change the default return value of
<a class="reference internal" href="../library/http.client.html#http.client.HTTPConnection.get_proxy_response_headers" title="http.client.HTTPConnection.get_proxy_response_headers"><code class="xref py py-meth docutils literal notranslate"><span class="pre">http.client.HTTPConnection.get_proxy_response_headers()</span></code></a> to be
<code class="docutils literal notranslate"><span class="pre">None</span></code> and not <code class="docutils literal notranslate"><span class="pre">{}</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix bugs in <a class="reference internal" href="../library/sys.html#module-sys" title="sys: Access system-specific parameters and functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sys</span></code></a> where exceptions could end up being
overwritten because of deferred error handling.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105605">gh-105605</a>: Harden <code class="xref py py-mod docutils literal notranslate"><span class="pre">pyexpat</span></code> error handling during module
initialisation to prevent exceptions from possibly being overwritten, and
objects from being dereferenced twice.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix bug in <a class="reference internal" href="../library/decimal.html#module-decimal" title="decimal: Implementation of the General Decimal Arithmetic Specification."><code class="xref py py-mod docutils literal notranslate"><span class="pre">decimal</span></code></a> where an exception could end up being
overwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix bugs in <code class="xref py py-mod docutils literal notranslate"><span class="pre">_datetime</span></code> where exceptions could be
overwritten in case of module initialisation failure.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix bugs in <code class="xref py py-mod docutils literal notranslate"><span class="pre">_ssl</span></code> initialisation which could lead to
leaked references and overwritten exceptions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix a bug in <a class="reference internal" href="../library/array.html#array.array" title="array.array"><code class="xref py py-class docutils literal notranslate"><span class="pre">array.array</span></code></a> where an exception could end
up being overwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix bugs in <code class="xref py py-mod docutils literal notranslate"><span class="pre">_ctypes</span></code> where exceptions could end up being
overwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix a bug in the <a class="reference internal" href="../library/posix.html#module-posix" title="posix: The most common POSIX system calls (normally used via module os). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">posix</span></code></a> module where an exception could
be overwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix bugs in <code class="xref py py-mod docutils literal notranslate"><span class="pre">_elementtree</span></code> where exceptions could be
overwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix bugs in <a class="reference internal" href="../library/zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a> where exceptions could be
overwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix bugs in <a class="reference internal" href="../library/errno.html#module-errno" title="errno: Standard errno system symbols."><code class="xref py py-mod docutils literal notranslate"><span class="pre">errno</span></code></a> where exceptions could be overwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105566">gh-105566</a>: Deprecate creating a <a class="reference internal" href="../library/typing.html#typing.NamedTuple" title="typing.NamedTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NamedTuple</span></code></a> class using
keyword arguments to denote the fields (<code class="docutils literal notranslate"><span class="pre">NT</span> <span class="pre">=</span> <span class="pre">NamedTuple("NT",</span> <span class="pre">x=int,</span>
<span class="pre">y=str)</span></code>). This will be disallowed in Python 3.15. Use the class-based
syntax or the functional syntax instead.</p>
<p>Two methods of creating <code class="docutils literal notranslate"><span class="pre">NamedTuple</span></code> classes with 0 fields using the
functional syntax are also deprecated, and will be disallowed in Python
3.15: <code class="docutils literal notranslate"><span class="pre">NT</span> <span class="pre">=</span> <span class="pre">NamedTuple("NT")</span></code> and <code class="docutils literal notranslate"><span class="pre">NT</span> <span class="pre">=</span> <span class="pre">NamedTuple("NT",</span> <span class="pre">None)</span></code>. To
create a <code class="docutils literal notranslate"><span class="pre">NamedTuple</span></code> class with 0 fields, either use <code class="docutils literal notranslate"><span class="pre">class</span>
<span class="pre">NT(NamedTuple):</span> <span class="pre">pass</span></code> or <code class="docutils literal notranslate"><span class="pre">NT</span> <span class="pre">=</span> <span class="pre">NamedTuple("NT",</span> <span class="pre">[])</span></code>.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105545">gh-105545</a>: Remove deprecated in 3.11 <code class="docutils literal notranslate"><span class="pre">webbrowser.MacOSXOSAScript._name</span></code>
attribute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105497">gh-105497</a>: Fix flag inversion when alias/mask members exist.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105509">gh-105509</a>: <a class="reference internal" href="../library/typing.html#typing.Annotated" title="typing.Annotated"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Annotated</span></code></a> is now implemented as an instance of
<code class="docutils literal notranslate"><span class="pre">typing._SpecialForm</span></code> rather than a class. This should have no
user-facing impact for users of the <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> module public API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix bugs in <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a> where exceptions could be
overwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/70303">gh-70303</a>: Emit <a class="reference internal" href="../library/exceptions.html#FutureWarning" title="FutureWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">FutureWarning</span></code></a> from <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> and
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.rglob" title="pathlib.Path.rglob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rglob()</span></code></a> if the given pattern ends with “<code class="docutils literal notranslate"><span class="pre">**</span></code>”. In a
future Python release, patterns with this ending will match both files and
directories. Add a trailing slash to only match directories.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix a bug in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> where an exception could be
overwritten in the <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.create_collation" title="sqlite3.Connection.create_collation"><code class="xref py py-meth docutils literal notranslate"><span class="pre">collation</span></code></a>
callback.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105382">gh-105382</a>: Remove <em>cafile</em>, <em>capath</em> and <em>cadefault</em> parameters of the
<a class="reference internal" href="../library/urllib.request.html#urllib.request.urlopen" title="urllib.request.urlopen"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.urlopen()</span></code></a> function, deprecated in Python 3.6. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105376">gh-105376</a>: <a class="reference internal" href="../library/logging.html#module-logging" title="logging: Flexible event logging system for applications."><code class="xref py py-mod docutils literal notranslate"><span class="pre">logging</span></code></a>: Remove undocumented and untested
<code class="docutils literal notranslate"><span class="pre">Logger.warn()</span></code> and <code class="docutils literal notranslate"><span class="pre">LoggerAdapter.warn()</span></code> methods and
<code class="docutils literal notranslate"><span class="pre">logging.warn()</span></code> function. Deprecated since Python 3.3, they were
aliases to the <a class="reference internal" href="../library/logging.html#logging.Logger.warning" title="logging.Logger.warning"><code class="xref py py-meth docutils literal notranslate"><span class="pre">logging.Logger.warning()</span></code></a> method,
<code class="xref py py-meth docutils literal notranslate"><span class="pre">logging.LoggerAdapter.warning()</span></code> method and <a class="reference internal" href="../library/logging.html#logging.warning" title="logging.warning"><code class="xref py py-func docutils literal notranslate"><span class="pre">logging.warning()</span></code></a>
function. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105332">gh-105332</a>: Revert pickling method from by-name back to by-value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104554">gh-104554</a>: Add RTSPS scheme support in urllib.parse</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105292">gh-105292</a>: Add option to <a class="reference internal" href="../library/traceback.html#traceback.format_exception_only" title="traceback.format_exception_only"><code class="xref py py-func docutils literal notranslate"><span class="pre">traceback.format_exception_only()</span></code></a> to
recurse into the nested exception of a <a class="reference internal" href="../library/exceptions.html#BaseExceptionGroup" title="BaseExceptionGroup"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BaseExceptionGroup</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105280">gh-105280</a>: Fix bug where <code class="docutils literal notranslate"><span class="pre">isinstance([],</span> <span class="pre">collections.abc.Mapping)</span></code> could
evaluate to <code class="docutils literal notranslate"><span class="pre">True</span></code> if garbage collection happened at the wrong time. The
bug was caused by changes to the implementation of
<a class="reference internal" href="../library/typing.html#typing.Protocol" title="typing.Protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Protocol</span></code></a> in Python 3.12.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/80480">gh-80480</a>: <a class="reference internal" href="../library/array.html#module-array" title="array: Space efficient arrays of uniformly typed numeric values."><code class="xref py py-mod docutils literal notranslate"><span class="pre">array</span></code></a>: Add <code class="docutils literal notranslate"><span class="pre">'w'</span></code> typecode that represents <code class="docutils literal notranslate"><span class="pre">Py_UCS4</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105239">gh-105239</a>: Fix longstanding bug where <code class="docutils literal notranslate"><span class="pre">issubclass(object,</span>
<span class="pre">typing.Protocol)</span></code> would evaluate to <code class="docutils literal notranslate"><span class="pre">True</span></code> in some edge cases. Patch by
Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104310">gh-104310</a>: In the beta 1 release we added a utility function for extension
module authors, to use when testing their module for support in multiple
interpreters or under a per-interpreter GIL. The name of that function
has changed from <code class="docutils literal notranslate"><span class="pre">allowing_all_extensions</span></code> to
<code class="docutils literal notranslate"><span class="pre">_incompatible_extension_module_restrictions</span></code>. The default for the
“disable_check” argument has change from <code class="docutils literal notranslate"><span class="pre">True</span></code> to <code class="docutils literal notranslate"><span class="pre">False</span></code>, to better
match the new function name.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105080">gh-105080</a>: Fixed inconsistent signature on derived classes for
<a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105144">gh-105144</a>: Fix a recent regression in the <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> module. The
regression meant that doing <code class="docutils literal notranslate"><span class="pre">class</span> <span class="pre">Foo(X,</span> <span class="pre">typing.Protocol)</span></code>, where <code class="docutils literal notranslate"><span class="pre">X</span></code>
was a class that had <a class="reference internal" href="../library/abc.html#abc.ABCMeta" title="abc.ABCMeta"><code class="xref py py-class docutils literal notranslate"><span class="pre">abc.ABCMeta</span></code></a> as its metaclass, would then
cause subsequent <code class="docutils literal notranslate"><span class="pre">isinstance(1,</span> <span class="pre">X)</span></code> calls to erroneously raise
<a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/62948">gh-62948</a>: The <a class="reference internal" href="../library/io.html#io.IOBase" title="io.IOBase"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.IOBase</span></code></a> finalizer now logs the <code class="docutils literal notranslate"><span class="pre">close()</span></code> method
errors with <a class="reference internal" href="../library/sys.html#sys.unraisablehook" title="sys.unraisablehook"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.unraisablehook</span></code></a>. Previously, errors were ignored
silently by default, and only logged in <a class="reference internal" href="../library/devmode.html#devmode"><span class="std std-ref">Python Development Mode</span></a> or on <a class="reference internal" href="../using/configure.html#debug-build"><span class="std std-ref">Python built on debug mode</span></a>. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105096">gh-105096</a>: <a class="reference internal" href="../library/wave.html#module-wave" title="wave: Provide an interface to the WAV sound format."><code class="xref py py-mod docutils literal notranslate"><span class="pre">wave</span></code></a>: Deprecate the <code class="docutils literal notranslate"><span class="pre">getmark()</span></code>, <code class="docutils literal notranslate"><span class="pre">setmark()</span></code> and
<code class="docutils literal notranslate"><span class="pre">getmarkers()</span></code> methods of the <a class="reference internal" href="../library/wave.html#wave.Wave_read" title="wave.Wave_read"><code class="xref py py-class docutils literal notranslate"><span class="pre">wave.Wave_read</span></code></a> and
<a class="reference internal" href="../library/wave.html#wave.Wave_write" title="wave.Wave_write"><code class="xref py py-class docutils literal notranslate"><span class="pre">wave.Wave_write</span></code></a> classes. They will be removed in Python 3.15.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104992">gh-104992</a>: Remove the untested and undocumented
<code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestProgram.usageExit()</span></code> method, deprecated in Python 3.11.
Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104996">gh-104996</a>: Improve performance of <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> initialisation
by deferring joining of paths when multiple arguments are given.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101588">gh-101588</a>: Deprecate undocumented copy/deepcopy/pickle support for
itertools.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103631">gh-103631</a>: Fix <code class="docutils literal notranslate"><span class="pre">pathlib.PurePosixPath(pathlib.PureWindowsPath(...))</span></code> not
converting path separators to restore 3.11 compatible behavior.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104947">gh-104947</a>: Make comparisons between <a class="reference internal" href="../library/pathlib.html#pathlib.PureWindowsPath" title="pathlib.PureWindowsPath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PureWindowsPath</span></code></a>
objects consistent across Windows and Posix to match 3.11 behavior.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-97"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">audioop</span></code> module, deprecated in
Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-98"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">aifc</span></code> module, deprecated in
Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-99"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">uu</span></code> module, deprecated in Python
3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104935">gh-104935</a>: Fix bugs with the interaction between
<a class="reference internal" href="../library/typing.html#typing.runtime_checkable" title="typing.runtime_checkable"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.runtime_checkable()</span></code></a> and <a class="reference internal" href="../library/typing.html#typing.Generic" title="typing.Generic"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Generic</span></code></a> that were
introduced by the <span class="target" id="index-100"></span><a class="pep reference external" href="https://peps.python.org/pep-0695/"><strong>PEP 695</strong></a> implementation. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-101"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">crypt</span></code> module and its private
<code class="xref py py-mod docutils literal notranslate"><span class="pre">_crypt</span></code> extension, deprecated in Python 3.11. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-102"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">nis</span></code> module, deprecated in Python
3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104898">gh-104898</a>: Add missing <a class="reference internal" href="../reference/datamodel.html#object.__slots__" title="object.__slots__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__slots__</span></code></a> to <a class="reference internal" href="../library/os.html#os.PathLike" title="os.PathLike"><code class="xref py py-class docutils literal notranslate"><span class="pre">os.PathLike</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-103"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">xdrlib</span></code> module, deprecated in
Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-104"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">nntplib</span></code> module, deprecated in
Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104886">gh-104886</a>: Remove the undocumented
<code class="xref py py-class docutils literal notranslate"><span class="pre">configparser.LegacyInterpolation</span></code> class, deprecated in the
docstring since Python 3.2, and with a deprecation warning since Python
3.11. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104786">gh-104786</a>: Remove kwargs-based <a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypedDict</span></code></a> creation</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104876">gh-104876</a>: Remove the <code class="xref py py-meth docutils literal notranslate"><span class="pre">turtle.RawTurtle.settiltangle()</span></code> method,
deprecated in docs since Python 3.1 and with a deprecation warning since
Python 3.11. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-105"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Removed the <code class="xref py py-mod docutils literal notranslate"><span class="pre">msilib</span></code> package, deprecated in
Python 3.11.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-106"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">spwd</span></code> module, deprecated in
Python 3.11: the <a class="extlink-pypi reference external" href="https://pypi.org/project/python-pam/">python-pam</a> project can be used instead. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/75552">gh-75552</a>: Removed the <code class="docutils literal notranslate"><span class="pre">tkinter.tix</span></code> module, deprecated since Python 3.6.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-107"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">chunk</span></code> module, deprecated in
Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-108"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">mailcap</span></code> module, deprecated in
Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-109"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">sunau</span></code> module, deprecated in
Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104780">gh-104780</a>: <span class="target" id="index-110"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">ossaudiodev</span></code> module, deprecated
in Python 3.11. Patch Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-111"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">pipes</span></code> module, deprecated in
Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104873">gh-104873</a>: Add <a class="reference internal" href="../library/typing.html#typing.get_protocol_members" title="typing.get_protocol_members"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_protocol_members()</span></code></a> to return the set of
members defining a <a class="reference internal" href="../library/typing.html#typing.Protocol" title="typing.Protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Protocol</span></code></a>. Add
<a class="reference internal" href="../library/typing.html#typing.is_protocol" title="typing.is_protocol"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.is_protocol()</span></code></a> to check whether a class is a
<a class="reference internal" href="../library/typing.html#typing.Protocol" title="typing.Protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Protocol</span></code></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104874">gh-104874</a>: Document the <code class="docutils literal notranslate"><span class="pre">__name__</span></code> and <code class="docutils literal notranslate"><span class="pre">__supertype__</span></code> attributes of
<a class="reference internal" href="../library/typing.html#typing.NewType" title="typing.NewType"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NewType</span></code></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104835">gh-104835</a>: Removed the following <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> functions, deprecated in
Python 3.11:</p>
<ul class="simple">
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.findTestCases()</span></code></p></li>
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.makeSuite()</span></code></p></li>
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.getTestCaseNames()</span></code></p></li>
</ul>
<p>Use <a class="reference internal" href="../library/unittest.html#unittest.TestLoader" title="unittest.TestLoader"><code class="xref py py-class docutils literal notranslate"><span class="pre">TestLoader</span></code></a> methods instead:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../library/unittest.html#unittest.TestLoader.loadTestsFromModule" title="unittest.TestLoader.loadTestsFromModule"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestLoader.loadTestsFromModule()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/unittest.html#unittest.TestLoader.loadTestsFromTestCase" title="unittest.TestLoader.loadTestsFromTestCase"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestLoader.loadTestsFromTestCase()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/unittest.html#unittest.TestLoader.getTestCaseNames" title="unittest.TestLoader.getTestCaseNames"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestLoader.getTestCaseNames()</span></code></a></p></li>
</ul>
<p>Patch by Hugo van Kemenade.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104804">gh-104804</a>: Remove the untested and undocumented <a class="reference internal" href="../library/webbrowser.html#module-webbrowser" title="webbrowser: Easy-to-use controller for web browsers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">webbrowser</span></code></a>
<code class="xref py py-class docutils literal notranslate"><span class="pre">MacOSX</span></code> class, deprecated in Python 3.11. Patch by Hugo van
Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83863">gh-83863</a>: Support for using <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> objects as context
managers has been removed. Before Python 3.9, exiting the context manager
marked a path as “closed”, which caused some (but not all!) methods to
raise when called. Since Python 3.9, using a path as a context manager
does nothing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104799">gh-104799</a>: Adjust the location of the (see <span class="target" id="index-112"></span><a class="pep reference external" href="https://peps.python.org/pep-0695/"><strong>PEP 695</strong></a>) <code class="docutils literal notranslate"><span class="pre">type_params</span></code>
field on <a class="reference internal" href="../library/ast.html#ast.ClassDef" title="ast.ClassDef"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.ClassDef</span></code></a>, <a class="reference internal" href="../library/ast.html#ast.AsyncFunctionDef" title="ast.AsyncFunctionDef"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.AsyncFunctionDef</span></code></a>, and
<a class="reference internal" href="../library/ast.html#ast.FunctionDef" title="ast.FunctionDef"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.FunctionDef</span></code></a> to better preserve backward compatibility. Patch
by Jelle Zijlstra</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104797">gh-104797</a>: Allow <a class="reference internal" href="../library/typing.html#typing.Protocol" title="typing.Protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Protocol</span></code></a> classes to inherit from
<a class="reference internal" href="../library/collections.abc.html#collections.abc.Buffer" title="collections.abc.Buffer"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.Buffer</span></code></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104783">gh-104783</a>: Remove <code class="docutils literal notranslate"><span class="pre">locale.resetlocale()</span></code> function deprecated in Python
3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104780">gh-104780</a>: Remove the <code class="docutils literal notranslate"><span class="pre">2to3</span></code> program and the <code class="xref py py-mod docutils literal notranslate"><span class="pre">lib2to3</span></code> module,
deprecated in Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-113"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">telnetlib</span></code> module, deprecated in
Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-114"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">imghdr</span></code> module, deprecated in
Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-115"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">cgi</span></code> and <code class="xref py py-mod docutils literal notranslate"><span class="pre">cgitb</span></code> modules,
deprecated in Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104773">gh-104773</a>: <span class="target" id="index-116"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>: Remove the <code class="xref py py-mod docutils literal notranslate"><span class="pre">sndhdr</span></code> module, deprecated in
Python 3.11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104372">gh-104372</a>: On Linux where <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> can use the <code class="docutils literal notranslate"><span class="pre">vfork()</span></code>
syscall for faster spawning, prevent the parent process from blocking
other threads by dropping the GIL while it waits for the vfork’ed child
process <code class="docutils literal notranslate"><span class="pre">exec()</span></code> outcome. This prevents spawning a binary from a slow
filesystem from blocking the rest of the application.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99108">gh-99108</a>: We now release the GIL around built-in <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a>
computations of reasonable size for the SHA families and MD5 hash
functions, matching what our OpenSSL backed hash computations already
does.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102613">gh-102613</a>: Improve performance of <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> when expanding
a pattern with a non-terminal “<code class="docutils literal notranslate"><span class="pre">**</span></code>” component by filtering walked paths
through a regular expression, rather than calling <a class="reference internal" href="../library/os.html#os.scandir" title="os.scandir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.scandir()</span></code></a> more
than once on each directory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104399">gh-104399</a>: Prepare the <code class="docutils literal notranslate"><span class="pre">_tkinter</span></code> module for building with Tcl 9.0 and
future libtommath by replacing usage of deprecated functions
<code class="xref c c-func docutils literal notranslate"><span class="pre">mp_to_unsigned_bin_n()</span></code> and <code class="xref c c-func docutils literal notranslate"><span class="pre">mp_unsigned_bin_size()</span></code> when
necessary.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102676">gh-102676</a>: Add fields <code class="docutils literal notranslate"><span class="pre">start_offset</span></code>, <code class="docutils literal notranslate"><span class="pre">cache_offset</span></code>, <code class="docutils literal notranslate"><span class="pre">end_offset</span></code>,
<code class="docutils literal notranslate"><span class="pre">baseopname</span></code>, <code class="docutils literal notranslate"><span class="pre">baseopcode</span></code>, <code class="docutils literal notranslate"><span class="pre">jump_target</span></code> and <code class="docutils literal notranslate"><span class="pre">oparg</span></code> to
<a class="reference internal" href="../library/dis.html#dis.Instruction" title="dis.Instruction"><code class="xref py py-class docutils literal notranslate"><span class="pre">dis.Instruction</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103558">gh-103558</a>: Fixed <code class="docutils literal notranslate"><span class="pre">parent</span></code> argument validation mechanism of
<a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>. Improved test coverage.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103464">gh-103464</a>: Provide helpful usage messages when parsing incorrect
<a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> commands.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103384">gh-103384</a>: Generalize the regex pattern <code class="docutils literal notranslate"><span class="pre">BaseConfigurator.INDEX_PATTERN</span></code>
to allow spaces and non-alphanumeric characters in keys.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103124">gh-103124</a>: Added multiline statement support for <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101162">gh-101162</a>: Forbid using <code class="xref py py-func docutils literal notranslate"><span class="pre">builtins.issubclass()</span></code> with
<a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a> as the first argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103200">gh-103200</a>: Fix cache repopulation semantics of
zipimport.invalidate_caches(). The cache is now repopulated upon
retrieving files with an invalid cache, not when the cache is invalidated.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100061">gh-100061</a>: Fix a bug that causes wrong matches for regular expressions
with possessive qualifier.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77609">gh-77609</a>: Add <em>follow_symlinks</em> argument to <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> and
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.rglob" title="pathlib.Path.rglob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rglob()</span></code></a>, defaulting to false.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102541">gh-102541</a>: Hide traceback in <a class="reference internal" href="../library/functions.html#help" title="help"><code class="xref py py-func docutils literal notranslate"><span class="pre">help()</span></code></a> prompt, when import failed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102120">gh-102120</a>: Added a stream mode to <code class="docutils literal notranslate"><span class="pre">tarfile</span></code> that allows for reading
archives without caching info about the inner files.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102029">gh-102029</a>: Deprecate passing any arguments to <a class="reference internal" href="../library/threading.html#threading.RLock" title="threading.RLock"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.RLock()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88233">gh-88233</a>: Refactored <code class="docutils literal notranslate"><span class="pre">zipfile._strip_extra</span></code> to use higher level
abstractions for extras instead of a heavy-state loop.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102024">gh-102024</a>: Reduce calls of <code class="docutils literal notranslate"><span class="pre">_idle_semaphore.release()</span></code> in
<code class="xref py py-func docutils literal notranslate"><span class="pre">concurrent.futures.thread._worker()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/73435">gh-73435</a>: Add support for recursive wildcards in
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.match" title="pathlib.PurePath.match"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.match()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84867">gh-84867</a>: <a class="reference internal" href="../library/unittest.html#unittest.TestLoader" title="unittest.TestLoader"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TestLoader</span></code></a> no longer loads test cases from
exact <a class="reference internal" href="../library/unittest.html#unittest.TestCase" title="unittest.TestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TestCase</span></code></a> and <a class="reference internal" href="../library/unittest.html#unittest.FunctionTestCase" title="unittest.FunctionTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.FunctionTestCase</span></code></a>
classes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99203">gh-99203</a>: Restore following CPython <= 3.10.5 behavior of
<a class="reference internal" href="../library/shutil.html#shutil.make_archive" title="shutil.make_archive"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.make_archive()</span></code></a>: do not create an empty archive if
<code class="docutils literal notranslate"><span class="pre">root_dir</span></code> is not a directory, and, in that case, raise
<a class="reference internal" href="../library/exceptions.html#FileNotFoundError" title="FileNotFoundError"><code class="xref py py-class docutils literal notranslate"><span class="pre">FileNotFoundError</span></code></a> or <a class="reference internal" href="../library/exceptions.html#NotADirectoryError" title="NotADirectoryError"><code class="xref py py-class docutils literal notranslate"><span class="pre">NotADirectoryError</span></code></a> regardless of
<code class="docutils literal notranslate"><span class="pre">format</span></code> choice. Beyond the brought-back behavior, the function may now
also raise these exceptions in <code class="docutils literal notranslate"><span class="pre">dry_run</span></code> mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/80480">gh-80480</a>: Emit <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> for <a class="reference internal" href="../library/array.html#module-array" title="array: Space efficient arrays of uniformly typed numeric values."><code class="xref py py-mod docutils literal notranslate"><span class="pre">array</span></code></a>’s <code class="docutils literal notranslate"><span class="pre">'u'</span></code> type
code, deprecated in docs since Python 3.3.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94924">gh-94924</a>: <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.create_autospec" title="unittest.mock.create_autospec"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.create_autospec()</span></code></a> now properly returns
coroutine functions compatible with <a class="reference internal" href="../library/inspect.html#inspect.iscoroutinefunction" title="inspect.iscoroutinefunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.iscoroutinefunction()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94777">gh-94777</a>: Fix hanging <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> <code class="docutils literal notranslate"><span class="pre">ProcessPoolExecutor</span></code> when
a child process crashes while data is being written in the call queue.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92871">gh-92871</a>: Remove the <code class="docutils literal notranslate"><span class="pre">typing.io</span></code> and <code class="docutils literal notranslate"><span class="pre">typing.re</span></code> namespaces,
deprecated since Python 3.8. All items are still available from the main
<a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43633">bpo-43633</a>: Improve the textual representation of IPv4-mapped IPv6
addresses (<span class="target" id="index-117"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4291.html"><strong>RFC 4291</strong></a> Sections 2.2, 2.5.5.2) in <a class="reference internal" href="../library/ipaddress.html#module-ipaddress" title="ipaddress: IPv4/IPv6 manipulation library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress</span></code></a>. Patch
by Oleksandr Pavliuk.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44850">bpo-44850</a>: Improve performance of <a class="reference internal" href="../library/operator.html#operator.methodcaller" title="operator.methodcaller"><code class="xref py py-func docutils literal notranslate"><span class="pre">operator.methodcaller()</span></code></a> using the
<span class="target" id="index-118"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a> <code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> convention. Patch by Anthony Lee and Pieter
Eendebak.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44185">bpo-44185</a>: <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.mock_open" title="unittest.mock.mock_open"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.mock_open()</span></code></a> will call the <code class="xref py py-func docutils literal notranslate"><span class="pre">close()</span></code>
method of the file handle mock when it is exiting from the context
manager. Patch by Samet Yaslan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40988">bpo-40988</a>: Improve performance of <a class="reference internal" href="../library/functools.html#functools.singledispatchmethod" title="functools.singledispatchmethod"><code class="xref py py-class docutils literal notranslate"><span class="pre">functools.singledispatchmethod</span></code></a>
by caching the generated dispatch wrapper. Optimization suggested by
frederico. Patch by @mental32, Alex Waygood and Pieter Eendebak.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41768">bpo-41768</a>: <a class="reference internal" href="../library/unittest.mock.html#module-unittest.mock" title="unittest.mock: Mock object library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest.mock</span></code></a> speccing no longer calls class properties.
Patch by Melanie Witt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18319">bpo-18319</a>: Ensure <code class="docutils literal notranslate"><span class="pre">gettext(msg)</span></code> retrieve translations even if a plural
form exists. In other words: <code class="docutils literal notranslate"><span class="pre">gettext(msg)</span> <span class="pre">==</span> <span class="pre">ngettext(msg,</span> <span class="pre">'',</span> <span class="pre">1)</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17013">bpo-17013</a>: Add <code class="docutils literal notranslate"><span class="pre">ThreadingMock</span></code> to <a class="reference internal" href="../library/unittest.mock.html#module-unittest.mock" title="unittest.mock: Mock object library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest.mock</span></code></a> that can be used
to create Mock objects that can wait until they are called. Patch by
Karthikeyan Singaravelan and Mario Corchero.</p></li>
</ul>
</section>
<section id="id174">
<h3>Documentation<a class="headerlink" href="#id174" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109209">gh-109209</a>: The minimum Sphinx version required for the documentation is
now 4.2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108826">gh-108826</a>: <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> module command-line interface is now mentioned in
documentation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107305">gh-107305</a>: Add documentation for <a class="reference internal" href="../c-api/init.html#c.PyInterpreterConfig" title="PyInterpreterConfig"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyInterpreterConfig</span></code></a> and
<a class="reference internal" href="../c-api/init.html#c.Py_NewInterpreterFromConfig" title="Py_NewInterpreterFromConfig"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_NewInterpreterFromConfig()</span></code></a>. Also clarify some of the nearby
docs relative to per-interpreter GIL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107008">gh-107008</a>: Document the <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> module variables
<a class="reference internal" href="../library/curses.html#curses.LINES" title="curses.LINES"><code class="xref py py-const docutils literal notranslate"><span class="pre">LINES</span></code></a> and <a class="reference internal" href="../library/curses.html#curses.COLS" title="curses.COLS"><code class="xref py py-const docutils literal notranslate"><span class="pre">COLS</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106948">gh-106948</a>: Add a number of standard external names to <code class="docutils literal notranslate"><span class="pre">nitpick_ignore</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106232">gh-106232</a>: Make timeit doc command lines compatible with Windows by using
double quotes for arguments. This works on linux and macOS also.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105172">gh-105172</a>: Fixed <a class="reference internal" href="../library/functools.html#functools.lru_cache" title="functools.lru_cache"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.lru_cache()</span></code></a> docstring accounting for
<code class="docutils literal notranslate"><span class="pre">typed</span></code> argument’s different handling of str and int. Patch by Bar
Harel.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105052">gh-105052</a>: Update <code class="docutils literal notranslate"><span class="pre">timeit</span></code> doc to specify that time in seconds is just
the default.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89455">gh-89455</a>: Add missing documentation for the <code class="docutils literal notranslate"><span class="pre">max_group_depth</span></code> and
<code class="docutils literal notranslate"><span class="pre">max_group_width</span></code> parameters and the <code class="docutils literal notranslate"><span class="pre">exceptions</span></code> attribute of the
<a class="reference internal" href="../library/traceback.html#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">traceback.TracebackException</span></code></a> class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89412">gh-89412</a>: Add missing documentation for the <code class="docutils literal notranslate"><span class="pre">end_lineno</span></code> and
<code class="docutils literal notranslate"><span class="pre">end_offset</span></code> attributes of the <a class="reference internal" href="../library/traceback.html#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">traceback.TracebackException</span></code></a>
class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104943">gh-104943</a>: Remove mentions of old Python versions in
<a class="reference internal" href="../library/typing.html#typing.NamedTuple" title="typing.NamedTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NamedTuple</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/54738">gh-54738</a>: Add documentation on how to localize the <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102823">gh-102823</a>: Document the return type of <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">//</span> <span class="pre">y</span></code> when <code class="docutils literal notranslate"><span class="pre">x</span></code> and <code class="docutils literal notranslate"><span class="pre">y</span></code>
have type <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102759">gh-102759</a>: Align function signature for <code class="docutils literal notranslate"><span class="pre">functools.reduce</span></code> in
documentation and docstring with the C implementation.</p></li>
</ul>
</section>
<section id="id175">
<h3>Tests<a class="headerlink" href="#id175" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110647">gh-110647</a>: Fix test_stress_modifying_handlers() of test_signal. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103053">gh-103053</a>: Fix test_tools.test_freeze on FreeBSD: run “make distclean”
instead of “make clean” in the copied source directory to remove also the
“python” program. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110167">gh-110167</a>: Fix a deadlock in test_socket when server fails with a timeout
but the client is still running in its thread. Don’t hold a lock to call
cleanup functions in doCleanups(). One of the cleanup function waits until
the client completes, whereas the client could deadlock if it called
addCleanup() in such situation. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110388">gh-110388</a>: Add tests for <a class="reference internal" href="../library/tty.html#module-tty" title="tty: Utility functions that perform common terminal control operations. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tty</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81002">gh-81002</a>: Add tests for <a class="reference internal" href="../library/termios.html#module-termios" title="termios: POSIX style tty control. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">termios</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110367">gh-110367</a>: regrtest: When using worker processes (-jN) with –verbose3
option, regrtest can now display the worker output even if a worker
process does crash. Previously, sys.stdout and sys.stderr were replaced
and so the worker output was lost on a crash. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110267">gh-110267</a>: Add tests for pickling and copying PyStructSequence objects.
Patched by Xuehai Pan.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110171">gh-110171</a>: <code class="docutils literal notranslate"><span class="pre">libregrtest</span></code> now always sets and shows <code class="docutils literal notranslate"><span class="pre">random.seed</span></code>, so
tests are more reproducible. Use <code class="docutils literal notranslate"><span class="pre">--randseed</span></code> flag to pass the explicit
random seed for tests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110152">gh-110152</a>: Remove <code class="docutils literal notranslate"><span class="pre">Tools/scripts/run_tests.py</span></code> and <code class="docutils literal notranslate"><span class="pre">make</span>
<span class="pre">hostrunnertest</span></code>. Just run <code class="docutils literal notranslate"><span class="pre">./python</span> <span class="pre">-m</span> <span class="pre">test</span> <span class="pre">--slow-ci</span></code>, <code class="docutils literal notranslate"><span class="pre">make</span>
<span class="pre">buildbottest</span></code> or <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span></code> instead. Python test runner (regrtest) now
handles cross-compilation and HOSTRUNNER. It also adds options to Python
such fast <code class="docutils literal notranslate"><span class="pre">-u</span> <span class="pre">-E</span> <span class="pre">-W</span> <span class="pre">default</span> <span class="pre">-bb</span></code> when <code class="docutils literal notranslate"><span class="pre">--fast-ci</span></code> or <code class="docutils literal notranslate"><span class="pre">--slow-ci</span></code>
option is used. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110031">gh-110031</a>: Skip test_threading tests using thread+fork if Python is built
with Address Sanitizer (ASAN). Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110088">gh-110088</a>: Fix test_asyncio timeouts: don’t measure the maximum duration,
a test should not measure a CI performance. Only measure the minimum
duration when a task has a timeout or delay. Add <code class="docutils literal notranslate"><span class="pre">CLOCK_RES</span></code> to
<code class="docutils literal notranslate"><span class="pre">test_asyncio.utils</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109974">gh-109974</a>: Fix race conditions in test_threading lock tests. Wait until a
condition is met rather than using <a class="reference internal" href="../library/time.html#time.sleep" title="time.sleep"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.sleep()</span></code></a> with a hardcoded
number of seconds. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110033">gh-110033</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_interprocess_signal()</span></code> of <code class="docutils literal notranslate"><span class="pre">test_signal</span></code>. Make
sure that the <code class="docutils literal notranslate"><span class="pre">subprocess.Popen</span></code> object is deleted before the test
raising an exception in a signal handler. Otherwise, <code class="docutils literal notranslate"><span class="pre">Popen.__del__()</span></code>
can get the exception which is logged as <code class="docutils literal notranslate"><span class="pre">Exception</span> <span class="pre">ignored</span> <span class="pre">in:</span> <span class="pre">...</span></code> and
the test fails. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109594">gh-109594</a>: Fix test_timeout() of test_concurrent_futures.test_wait. Remove
the future which may or may not complete depending if it takes longer than
the timeout or not. Keep the second future which does not complete before
wait() timeout. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109972">gh-109972</a>: Split test_gdb.py file into a test_gdb package made of multiple
tests, so tests can now be run in parallel. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109566">gh-109566</a>: regrtest: When <code class="docutils literal notranslate"><span class="pre">--fast-ci</span></code> or <code class="docutils literal notranslate"><span class="pre">--slow-ci</span></code> option is used,
regrtest now replaces the current process with a new process to add <code class="docutils literal notranslate"><span class="pre">-u</span>
<span class="pre">-W</span> <span class="pre">default</span> <span class="pre">-bb</span> <span class="pre">-E</span></code> options to Python. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109748">gh-109748</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_zippath_from_non_installed_posix()</span></code> of test_venv:
don’t copy <code class="docutils literal notranslate"><span class="pre">__pycache__/</span></code> sub-directories, because they can be modified
by other Python tests running in parallel. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109739">gh-109739</a>: regrtest: Fix reference leak check on Windows. Disable the load
tracker on Windows in the reference leak check mode (-R option). Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109276">gh-109276</a>: regrtest: When a test fails with “env changed” and the –rerun
option is used, the test is now re-run in verbose mode in a fresh process.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103053">gh-103053</a>: Skip test_freeze_simple_script() of test_tools.test_freeze if
Python is built with <code class="docutils literal notranslate"><span class="pre">./configure</span> <span class="pre">--enable-optimizations</span></code>, which means
with Profile Guided Optimization (PGO): it just makes the test too slow.
The freeze tool is tested by many other CIs with other (faster) compiler
flags. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109580">gh-109580</a>: Skip <code class="docutils literal notranslate"><span class="pre">test_perf_profiler</span></code> if Python is built with ASAN, MSAN
or UBSAN sanitizer. Python does crash randomly in this test on such build.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109566">gh-109566</a>: regrtest: Add <code class="docutils literal notranslate"><span class="pre">--fast-ci</span></code> and <code class="docutils literal notranslate"><span class="pre">--slow-ci</span></code> options.
<code class="docutils literal notranslate"><span class="pre">--fast-ci</span></code> uses a default timeout of 10 minutes and <code class="docutils literal notranslate"><span class="pre">-u</span> <span class="pre">all,-cpu</span></code>
(skip slowest tests). <code class="docutils literal notranslate"><span class="pre">--slow-ci</span></code> uses a default timeout of 20 minutes
and <code class="docutils literal notranslate"><span class="pre">-u</span> <span class="pre">all</span></code> (run all tests). Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109425">gh-109425</a>: libregrtest now decodes stdout of test worker processes with
the “backslashreplace” error handler to log corrupted stdout, instead of
failing with an error and not logging the stdout. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109396">gh-109396</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_socket.test_hmac_sha1()</span></code> in FIPS mode. Use a longer
key: FIPS mode requires at least of at least 112 bits. The previous key
was only 32 bits. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104736">gh-104736</a>: Fix test_gdb on Python built with LLVM clang 16 on Linux
ppc64le (ex: Fedora 38). Search patterns in gdb “bt” command output to
detect when gdb fails to retrieve the traceback. For example, skip a test
if <code class="docutils literal notranslate"><span class="pre">Backtrace</span> <span class="pre">stopped:</span> <span class="pre">frame</span> <span class="pre">did</span> <span class="pre">not</span> <span class="pre">save</span> <span class="pre">the</span> <span class="pre">PC</span></code> is found. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109276">gh-109276</a>: libregrtest now calls <a class="reference internal" href="../library/random.html#random.seed" title="random.seed"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.seed()</span></code></a> before running each
test file when <code class="docutils literal notranslate"><span class="pre">-r/--randomize</span></code> command line option is used. Moreover,
it’s also called in worker processes. It should help to make tests more
deterministic. Previously, it was only called once in the main process
before running all test files and it was not called in worker processes.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109276">gh-109276</a>: libregrtest now uses a separated file descriptor to write test
result as JSON. Previously, if a test wrote debug messages late around the
JSON, the main test process failed to parse JSON. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108996">gh-108996</a>: Fix and enable <code class="docutils literal notranslate"><span class="pre">test_msvcrt</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109237">gh-109237</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_site.test_underpth_basic()</span></code> when the working
directory contains at least one non-ASCII character: encode the <code class="docutils literal notranslate"><span class="pre">._pth</span></code>
file to UTF-8 and enable the UTF-8 Mode to use UTF-8 for the child process
stdout. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109230">gh-109230</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_pyexpat.test_exception()</span></code>: it can now be run from a
directory different than Python source code directory. Before, the test
failed in this case. Skip the test if Modules/pyexpat.c source is not
available. Skip also the test on Python implementations other than
CPython. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108996">gh-108996</a>: Add tests for <code class="docutils literal notranslate"><span class="pre">msvcrt</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109015">gh-109015</a>: Fix test_asyncio, test_imaplib and test_socket tests on FreeBSD
if the TCP blackhole is enabled (<code class="docutils literal notranslate"><span class="pre">sysctl</span> <span class="pre">net.inet.tcp.blackhole</span></code>). Skip
the few tests which failed with <code class="docutils literal notranslate"><span class="pre">ETIMEDOUT</span></code> which such non standard
configuration. Currently, the <a class="reference external" href="https://reviews.freebsd.org/D41751">FreeBSD GCP image enables TCP and UDP
blackhole</a> (<code class="docutils literal notranslate"><span class="pre">sysctl</span>
<span class="pre">net.inet.tcp.blackhole=2</span></code> and <code class="docutils literal notranslate"><span class="pre">sysctl</span> <span class="pre">net.inet.udp.blackhole=1</span></code>).
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91960">gh-91960</a>: Skip <code class="docutils literal notranslate"><span class="pre">test_gdb</span></code> if gdb is unable to retrieve Python frame
objects: if a frame is <code class="docutils literal notranslate"><span class="pre"><optimized</span> <span class="pre">out></span></code>. When Python is built with
“clang -Og”, gdb can fail to retrieve the <em>frame</em> parameter of
<code class="docutils literal notranslate"><span class="pre">_PyEval_EvalFrameDefault()</span></code>. In this case, tests like <code class="docutils literal notranslate"><span class="pre">py_bt()</span></code> are
likely to fail. Without getting access to Python frames, <code class="docutils literal notranslate"><span class="pre">python-gdb.py</span></code>
is mostly clueless on retrieving the Python traceback. Moreover,
<code class="docutils literal notranslate"><span class="pre">test_gdb</span></code> is no longer skipped on macOS if Python is built with Clang.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108962">gh-108962</a>: Skip <code class="docutils literal notranslate"><span class="pre">test_tempfile.test_flags()</span></code> if <code class="docutils literal notranslate"><span class="pre">chflags()</span></code> fails with
“OSError: [Errno 45] Operation not supported” (ex: on FreeBSD 13). Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91960">gh-91960</a>: FreeBSD 13.2 CI coverage for pull requests is now provided by
Cirrus-CI (a hosted CI service that supports Linux, macOS, Windows, and
FreeBSD).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89392">gh-89392</a>: Removed support of <code class="docutils literal notranslate"><span class="pre">test_main()</span></code> function in tests. They now
always use normal unittest test runner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108851">gh-108851</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_tomllib</span></code> recursion tests for WASI buildbots: reduce
the recursion limit and compute the maximum nested array/dict depending on
the current available recursion limit. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108851">gh-108851</a>: Add <code class="docutils literal notranslate"><span class="pre">get_recursion_available()</span></code> and <code class="docutils literal notranslate"><span class="pre">get_recursion_depth()</span></code>
functions to the <a class="reference internal" href="../library/test.html#module-test.support" title="test.support: Support for Python's regression test suite."><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support</span></code></a> module. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108834">gh-108834</a>: Add <code class="docutils literal notranslate"><span class="pre">--fail-rerun</span> <span class="pre">option</span></code> option to regrtest: if a test
failed when then passed when rerun in verbose mode, exit the process with
exit code 2 (error), instead of exit code 0 (success). Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108834">gh-108834</a>: Rename regrtest <code class="docutils literal notranslate"><span class="pre">--verbose2</span></code> option (<code class="docutils literal notranslate"><span class="pre">-w</span></code>) to <code class="docutils literal notranslate"><span class="pre">--rerun</span></code>.
Keep <code class="docutils literal notranslate"><span class="pre">--verbose2</span></code> as a deprecated alias. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108834">gh-108834</a>: When regrtest reruns failed tests in verbose mode (<code class="docutils literal notranslate"><span class="pre">./python</span>
<span class="pre">-m</span> <span class="pre">test</span> <span class="pre">--rerun</span></code>), tests are now rerun in fresh worker processes rather
than being executed in the main process. If a test does crash or is killed
by a timeout, the main process can detect and handle the killed worker
process. Tests are rerun in parallel if the <code class="docutils literal notranslate"><span class="pre">-jN</span></code> option is used to run
tests in parallel. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108822">gh-108822</a>: <code class="docutils literal notranslate"><span class="pre">regrtest</span></code> now computes statistics on all tests: successes,
failures and skipped. <code class="docutils literal notranslate"><span class="pre">test_netrc</span></code>, <code class="docutils literal notranslate"><span class="pre">test_pep646_syntax</span></code> and
<code class="docutils literal notranslate"><span class="pre">test_xml_etree</span></code> now return results in their <code class="docutils literal notranslate"><span class="pre">test_main()</span></code> function.
Patch by Victor Stinner and Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108794">gh-108794</a>: The <a class="reference internal" href="../library/doctest.html#doctest.DocTestRunner.run" title="doctest.DocTestRunner.run"><code class="xref py py-meth docutils literal notranslate"><span class="pre">doctest.DocTestRunner.run()</span></code></a> method now counts the
number of skipped tests. Add <a class="reference internal" href="../library/doctest.html#doctest.DocTestRunner.skips" title="doctest.DocTestRunner.skips"><code class="xref py py-attr docutils literal notranslate"><span class="pre">doctest.DocTestRunner.skips</span></code></a> and
<a class="reference internal" href="../library/doctest.html#doctest.TestResults.skipped" title="doctest.TestResults.skipped"><code class="xref py py-attr docutils literal notranslate"><span class="pre">doctest.TestResults.skipped</span></code></a> attributes. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108388">gh-108388</a>: Convert test_concurrent_futures to a package of 7 sub-tests.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108388">gh-108388</a>: Split test_multiprocessing_fork,
test_multiprocessing_forkserver and test_multiprocessing_spawn into test
packages. Each package is made of 4 sub-tests: processes, threads, manager
and misc. It allows running more tests in parallel and so reduce the total
test duration. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105776">gh-105776</a>: Fix test_cppext when the C compiler command <code class="docutils literal notranslate"><span class="pre">-std=c11</span></code>
option: remove <code class="docutils literal notranslate"><span class="pre">-std=</span></code> options from the compiler command. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107652">gh-107652</a>: Set up CIFuzz to run fuzz targets in GitHub Actions. Patch by
Illia Volochii.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107237">gh-107237</a>: <code class="docutils literal notranslate"><span class="pre">test_logging</span></code>: Fix <code class="docutils literal notranslate"><span class="pre">test_udp_reconnection()</span></code> by increasing
the timeout from 100 ms to 5 minutes (LONG_TIMEOUT). Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107178">gh-107178</a>: Add the C API test for functions in the Mapping Protocol, the
Sequence Protocol and some functions in the Object Protocol.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106714">gh-106714</a>: test_capi: Fix test_no_FatalError_infinite_loop() to no longer
write a coredump, by using test.support.SuppressCrashReport. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104090">gh-104090</a>: Avoid creating a reference to the test object in
<a class="reference internal" href="../library/unittest.html#unittest.TestResult.collectedDurations" title="unittest.TestResult.collectedDurations"><code class="xref py py-meth docutils literal notranslate"><span class="pre">collectedDurations()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106752">gh-106752</a>: Moved tests for <code class="docutils literal notranslate"><span class="pre">zipfile.Path</span></code> into
<code class="docutils literal notranslate"><span class="pre">Lib/test/test_zipfile/_path</span></code>. Made <code class="docutils literal notranslate"><span class="pre">zipfile._path</span></code> a package.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106690">gh-106690</a>: Add .coveragerc to cpython repository for use with coverage
package.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101634">gh-101634</a>: When running the Python test suite with <code class="docutils literal notranslate"><span class="pre">-jN</span></code> option, if a
worker stdout cannot be decoded from the locale encoding report a failed
testn so the exitcode is non-zero. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105084">gh-105084</a>: When the Python build is configured <code class="docutils literal notranslate"><span class="pre">--with-wheel-pkg-dir</span></code>,
tests requiring the <code class="docutils literal notranslate"><span class="pre">setuptools</span></code> and <code class="docutils literal notranslate"><span class="pre">wheel</span></code> wheels will search for
the wheels in <code class="docutils literal notranslate"><span class="pre">WHEEL_PKG_DIR</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81005">gh-81005</a>: String tests are modified to reflect that <code class="docutils literal notranslate"><span class="pre">str</span></code> and
<code class="docutils literal notranslate"><span class="pre">unicode</span></code> are merged in Python 3. Patch by Daniel Fortunov.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103186">gh-103186</a>: Suppress and assert expected RuntimeWarnings in
test_sys_settrace.py</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69714">gh-69714</a>: Add additional tests to <a class="reference internal" href="../library/calendar.html#module-calendar" title="calendar: Functions for working with calendars, including some emulation of the Unix cal program."><code class="xref py py-mod docutils literal notranslate"><span class="pre">calendar</span></code></a> to achieve full test
coverage.</p></li>
</ul>
</section>
<section id="id176">
<h3>Build<a class="headerlink" href="#id176" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103053">gh-103053</a>: “make check-clean-src” now also checks if the “python” program
is found in the source directory: fail with an error if it does exist.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109191">gh-109191</a>: Fix compile error when building with recent versions of
libedit.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110276">gh-110276</a>: No longer ignore <span class="target" id="index-119"></span><a class="reference internal" href="../using/configure.html#envvar-PROFILE_TASK"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PROFILE_TASK</span></code></a> failure silently:
command used by Profile Guided Optimization (PGO). Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109566">gh-109566</a>: Remove <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">testall</span></code> target: use <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">buildbottest</span></code>
instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109740">gh-109740</a>: The experimental <code class="docutils literal notranslate"><span class="pre">--disable-gil</span></code> configure flag now includes
“t” (for “threaded”) in extension ABI tags.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109054">gh-109054</a>: Fix building the <code class="docutils literal notranslate"><span class="pre">_testcapi</span></code> extension on Linux AArch64 which
requires linking to libatomic when <code class="docutils literal notranslate"><span class="pre"><cpython/pyatomic.h></span></code> is used: the
<code class="docutils literal notranslate"><span class="pre">_Py_atomic_or_uint64()</span></code> function requires libatomic
<code class="docutils literal notranslate"><span class="pre">__atomic_fetch_or_8()</span></code> on this platform. The configure script now
checks if linking to libatomic is needed and generates a new LIBATOMIC
variable used to build the _testcapi extension. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/63760">gh-63760</a>: Fix Solaris build: no longer redefine the <code class="docutils literal notranslate"><span class="pre">gethostname()</span></code>
function. Solaris defines the function since 2005. Patch by Victor
Stinner, original patch by Jakub Kulík.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108740">gh-108740</a>: Fix a race condition in <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-all</span></code>. The
<code class="docutils literal notranslate"><span class="pre">deepfreeze.c</span></code> source and files generated by Argument Clinic are now
generated or updated before generating “global objects”. Previously, some
identifiers may miss depending on the order in which these files were
generated. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108634">gh-108634</a>: Python built with <code class="file docutils literal notranslate"><span class="pre">configure</span></code> <a class="reference internal" href="../using/configure.html#cmdoption-with-trace-refs"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-trace-refs</span></code></a>
(tracing references) is now ABI compatible with Python release build and
<a class="reference internal" href="../using/configure.html#debug-build"><span class="std std-ref">debug build</span></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85283">gh-85283</a>: The <code class="docutils literal notranslate"><span class="pre">_stat</span></code> C extension is now built with the <a class="reference internal" href="../c-api/stable.html#limited-c-api"><span class="std std-ref">limited C
API</span></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108447">gh-108447</a>: Fix x86_64 GNU/Hurd build</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107814">gh-107814</a>: When calling <code class="docutils literal notranslate"><span class="pre">find_python.bat</span></code> with <code class="docutils literal notranslate"><span class="pre">-q</span></code> it did not
properly silence the output of nuget. That is now fixed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105481">gh-105481</a>: Remove the make target <code class="docutils literal notranslate"><span class="pre">regen-opcode-targets</span></code>, merge its work
into <code class="docutils literal notranslate"><span class="pre">regen-opcode</span></code> which repeats most of the calculation. This
simplifies the code for the build and reduces code duplication.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106881">gh-106881</a>: Check for <code class="docutils literal notranslate"><span class="pre">linux/limits.h</span></code> before including it in
<code class="docutils literal notranslate"><span class="pre">Modules/posixmodule.c</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95855">gh-95855</a>: Refactor platform triplet detection code and add detection for
MIPS soft float and musl libc.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106962">gh-106962</a>: Detect MPI compilers in <code class="file docutils literal notranslate"><span class="pre">configure</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106118">gh-106118</a>: Fix compilation for platforms without <code class="xref py py-data docutils literal notranslate"><span class="pre">O_CLOEXEC</span></code>. The
issue was introduced with Python 3.12b1 in <a class="reference external" href="https://github.com/python/cpython/issues/103295">gh-103295</a>. Patch by Erlend
Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105875">gh-105875</a>: SQLite 3.15.2 or newer is required to build the <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>
extension module. Patch by Erlend Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90005">gh-90005</a>: Fix a regression in <code class="file docutils literal notranslate"><span class="pre">configure</span></code> where we could end up
unintentionally linking with <code class="docutils literal notranslate"><span class="pre">libbsd</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102404">gh-102404</a>: Document how to perform a WASI build on Linux. Also add
Tools/wasm/build_wasi.sh as a reference implementation of the docs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89886">gh-89886</a>: Autoconf 2.71 and aclocal 1.16.4 is now required to regenerate
<code class="file docutils literal notranslate"><span class="pre">configure</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104692">gh-104692</a>: Include <code class="docutils literal notranslate"><span class="pre">commoninstall</span></code> as a prerequisite for <code class="docutils literal notranslate"><span class="pre">bininstall</span></code></p>
<p>This ensures that <code class="docutils literal notranslate"><span class="pre">commoninstall</span></code> is completed before <code class="docutils literal notranslate"><span class="pre">bininstall</span></code> is
started when parallel builds are used (<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">-j</span> <span class="pre">install</span></code>), and so the
<code class="docutils literal notranslate"><span class="pre">python3</span></code> symlink is only installed after all standard library modules
are installed.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101538">gh-101538</a>: Add experimental wasi-threads support. Patch by Takashi
Yamamoto.</p></li>
</ul>
</section>
<section id="id177">
<h3>Windows<a class="headerlink" href="#id177" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110437">gh-110437</a>: Allows overriding the source of VC redistributables so that
releases can be guaranteed to never downgrade between updates.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109286">gh-109286</a>: Update Windows installer to use SQLite 3.43.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82367">gh-82367</a>: <a class="reference internal" href="../library/os.path.html#os.path.realpath" title="os.path.realpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.realpath()</span></code></a> now resolves MS-DOS style file names
even if the file is not accessible. Patch by Moonsik Park.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109991">gh-109991</a>: Update Windows build to use OpenSSL 3.0.11.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106242">gh-106242</a>: Fixes <a class="reference internal" href="../library/os.path.html#os.path.realpath" title="os.path.realpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">realpath()</span></code></a> to behave consistently when
passed a path containing an embedded null character on Windows. In strict
mode, it now raises <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> instead of the unexpected
<a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>, and in non-strict mode will make the path absolute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83180">gh-83180</a>: Changes the <a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a> to prefer an active virtual
environment when the launched script has a shebang line using a Unix-like
virtual command, even if the command requests a specific version of
Python.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106844">gh-106844</a>: Fix integer overflow and truncating by the null character in
<code class="xref py py-func docutils literal notranslate"><span class="pre">_winapi.LCMapStringEx()</span></code> which affects <code class="xref py py-func docutils literal notranslate"><span class="pre">ntpath.normcase()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105436">gh-105436</a>: Ensure that an empty environment block is terminated by two
null characters, as is required by Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105146">gh-105146</a>: Updated the links at the end of the installer to point to
Discourse rather than the mailing lists.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103646">gh-103646</a>: When installed from the Microsoft Store, <code class="docutils literal notranslate"><span class="pre">pip</span></code> no longer
defaults to per-user installs. However, as the install directory is
unwritable, it should automatically decide to do a per-user install
anyway. This should resolve issues when <code class="docutils literal notranslate"><span class="pre">pip</span></code> is passed an option that
conflicts with <code class="docutils literal notranslate"><span class="pre">--user</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88745">gh-88745</a>: Improve performance of <a class="reference internal" href="../library/shutil.html#shutil.copy2" title="shutil.copy2"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copy2()</span></code></a> by using the
operating system’s <code class="docutils literal notranslate"><span class="pre">CopyFile2</span></code> function. This may result in subtle
changes to metadata copied along with some files, bringing them in line
with normal OS behavior.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104820">gh-104820</a>: Fixes <a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">stat()</span></code></a> and related functions on file systems
that do not support file ID requests. This includes FAT32 and exFAT.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104803">gh-104803</a>: Add <a class="reference internal" href="../library/os.path.html#os.path.isdevdrive" title="os.path.isdevdrive"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.isdevdrive()</span></code></a> to detect whether a path is on a
Windows Dev Drive. Returns <code class="docutils literal notranslate"><span class="pre">False</span></code> on platforms that do not support Dev
Drive, and is absent on non-Windows platforms.</p></li>
</ul>
</section>
<section id="id178">
<h3>macOS<a class="headerlink" href="#id178" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109286">gh-109286</a>: Update macOS installer to use SQLite 3.43.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109991">gh-109991</a>: Update macOS installer to use OpenSSL 3.0.11.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99079">gh-99079</a>: Update macOS installer to use OpenSSL 3.0.9.</p></li>
</ul>
</section>
<section id="id179">
<h3>IDLE<a class="headerlink" href="#id179" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104719">gh-104719</a>: Remove IDLE’s modification of tokenize.tabsize and test other
uses of tokenize data and methods.</p></li>
</ul>
</section>
<section id="id180">
<h3>Tools/Demos<a class="headerlink" href="#id180" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109991">gh-109991</a>: Update GitHub CI workflows to use OpenSSL 3.0.11 and
multissltests to use 1.1.1w, 3.0.11, and 3.1.3.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108494">gh-108494</a>: <a class="reference external" href="https://devguide.python.org/development-tools/clinic/">Argument Clinic</a> now has a
partial support of the <a class="reference internal" href="../c-api/stable.html#limited-c-api"><span class="std std-ref">Limited API</span></a>: see
<a class="reference external" href="https://devguide.python.org/development-tools/clinic/#clinic-howto-limited-capi">documentation in the Python Developer’s Guide</a>
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107704">gh-107704</a>: It is now possible to deprecate passing keyword arguments for
keyword-or-positional parameters with Argument Clinic, using the new <code class="docutils literal notranslate"><span class="pre">/</span>
<span class="pre">[from</span> <span class="pre">X.Y]</span></code> syntax. (To be read as <em>“positional-only from Python version
X.Y”</em>.) See <a class="reference external" href="https://devguide.python.org/development-tools/clinic/#clinic-howto-deprecate-keyword">documentation in the Python Developer’s Guide</a>
for more information.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107880">gh-107880</a>: Argument Clinic can now clone <code class="xref py py-meth docutils literal notranslate"><span class="pre">__init__()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">__new__()</span></code> methods.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104683">gh-104683</a>: Add <code class="docutils literal notranslate"><span class="pre">--exclude</span></code> option to Argument Clinic CLI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95065">gh-95065</a>: Argument Clinic now supports overriding automatically generated
signature by using directive <code class="docutils literal notranslate"><span class="pre">@text_signature</span></code>. See <a class="reference external" href="https://devguide.python.org/development-tools/clinic/#clinic-howto-override-signature">documentation in
the Python Developer’s Guide</a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107609">gh-107609</a>: Fix duplicate module check in Argument Clinic. Previously, a
duplicate definition would incorrectly be silently accepted. Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107467">gh-107467</a>: The Argument Clinic command-line tool now prints to stderr
instead of stdout on failure.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106970">gh-106970</a>: Fix bugs in the Argument Clinic <code class="docutils literal notranslate"><span class="pre">destination</span> <span class="pre"><name></span> <span class="pre">clear</span></code>
command; the destination buffers would never be cleared, and the
<code class="docutils literal notranslate"><span class="pre">destination</span></code> directive parser would simply continue to the fault
handler after processing the command. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106706">gh-106706</a>: Change bytecode syntax for families to remove redundant name
matching pseudo syntax.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106359">gh-106359</a>: Argument Clinic now explicitly forbids “kwarg splats” in
function calls used as annotations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103186">gh-103186</a>: <code class="docutils literal notranslate"><span class="pre">freeze</span></code> now fetches <code class="docutils literal notranslate"><span class="pre">CONFIG_ARGS</span></code> from the original
CPython instance the Makefile uses to call utility scripts. Patch by
Ijtaba Hussain.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95065">gh-95065</a>: It is now possible to deprecate passing parameters positionally
with Argument Clinic, using the new <code class="docutils literal notranslate"><span class="pre">*</span> <span class="pre">[from</span> <span class="pre">X.Y]</span></code> syntax. (To be read
as <em>“keyword-only from Python version X.Y”</em>.) See <a class="reference external" href="https://devguide.python.org/development-tools/clinic/#clinic-howto-deprecate-positional">documentation in the
Python Developer’s Guide</a>
for more information. Patch by Erlend E. Aasland with help from Alex
Waygood, Nikita Sobolev, and Serhiy Storchaka.</p></li>
</ul>
</section>
<section id="id181">
<h3>C API<a class="headerlink" href="#id181" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85283">gh-85283</a>: If the <a class="reference internal" href="../c-api/stable.html#c.Py_LIMITED_API" title="Py_LIMITED_API"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_LIMITED_API</span></code></a> macro is defined,
<code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_BUILD_CORE</span></code>, <code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_BUILD_CORE_BUILTIN</span></code> and
<code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_BUILD_CORE_MODULE</span></code> macros are now undefined by
<code class="docutils literal notranslate"><span class="pre"><Python.h></span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110289">gh-110289</a>: Add <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_EqualToUTF8AndSize" title="PyUnicode_EqualToUTF8AndSize"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_EqualToUTF8AndSize()</span></code></a> and
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_EqualToUTF8" title="PyUnicode_EqualToUTF8"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_EqualToUTF8()</span></code></a> functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110235">gh-110235</a>: Raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> for duplicate/unknown fields in
<code class="docutils literal notranslate"><span class="pre">PyStructSequence</span></code> constructor. Patched by Xuehai Pan.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/110014">gh-110014</a>: Remove undocumented <code class="docutils literal notranslate"><span class="pre">PY_TIMEOUT_MAX</span></code> constant from the
limited C API. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/109521">gh-109521</a>: <a class="reference internal" href="../c-api/import.html#c.PyImport_GetImporter" title="PyImport_GetImporter"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_GetImporter()</span></code></a> now sets RuntimeError if it
fails to get <a class="reference internal" href="../library/sys.html#sys.path_hooks" title="sys.path_hooks"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path_hooks</span></code></a> or <a class="reference internal" href="../library/sys.html#sys.path_importer_cache" title="sys.path_importer_cache"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path_importer_cache</span></code></a> or
they are not list and dict correspondingly. Previously it could return
NULL without setting error in obscure cases, crash or raise SystemError if
these attributes have wrong type.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108724">gh-108724</a>: Add <a class="reference internal" href="../c-api/init.html#c.PyMutex" title="PyMutex"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyMutex</span></code></a> internal-only lightweight locking API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85283">gh-85283</a>: Add <a class="reference internal" href="../c-api/sys.html#c.PySys_AuditTuple" title="PySys_AuditTuple"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_AuditTuple()</span></code></a> function: similar to
<a class="reference internal" href="../c-api/sys.html#c.PySys_Audit" title="PySys_Audit"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_Audit()</span></code></a>, but pass event arguments as a Python <a class="reference internal" href="../library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a>
object. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108867">gh-108867</a>: Add <a class="reference internal" href="../c-api/init.html#c.PyThreadState_GetUnchecked" title="PyThreadState_GetUnchecked"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_GetUnchecked()</span></code></a> function: similar to
<a class="reference internal" href="../c-api/init.html#c.PyThreadState_Get" title="PyThreadState_Get"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_Get()</span></code></a>, but don’t kill the process with a fatal
error if it is NULL. The caller is responsible to check if the result is
NULL. Previously, the function was private and known as
<code class="docutils literal notranslate"><span class="pre">_PyThreadState_UncheckedGet()</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108765">gh-108765</a>: <code class="docutils literal notranslate"><span class="pre">Python.h</span></code> no longer includes the <code class="docutils literal notranslate"><span class="pre"><ctype.h></span></code> standard
header file. If needed, it should now be included explicitly. For example,
it provides <code class="docutils literal notranslate"><span class="pre">isalpha()</span></code> and <code class="docutils literal notranslate"><span class="pre">tolower()</span></code> functions which are locale
dependent. Python provides locale independent functions, like
<code class="xref c c-func docutils literal notranslate"><span class="pre">Py_ISALPHA()</span></code> and <code class="xref c c-func docutils literal notranslate"><span class="pre">Py_TOLOWER()</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108765">gh-108765</a>: <code class="docutils literal notranslate"><span class="pre">Python.h</span></code> no longer includes the <code class="docutils literal notranslate"><span class="pre"><unistd.h></span></code> standard
header file. If needed, it should now be included explicitly. For example,
it provides the functions: <code class="docutils literal notranslate"><span class="pre">close()</span></code>, <code class="docutils literal notranslate"><span class="pre">getpagesize()</span></code>, <code class="docutils literal notranslate"><span class="pre">getpid()</span></code>
and <code class="docutils literal notranslate"><span class="pre">sysconf()</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108765">gh-108765</a>: <code class="docutils literal notranslate"><span class="pre">Python.h</span></code> no longer includes the <code class="docutils literal notranslate"><span class="pre"><ieeefp.h></span></code> standard
header. It was included for the <code class="docutils literal notranslate"><span class="pre">finite()</span></code> function which is now
provided by the <code class="docutils literal notranslate"><span class="pre"><math.h></span></code> header. It should now be included explicitly
if needed. Remove also the <code class="docutils literal notranslate"><span class="pre">HAVE_IEEEFP_H</span></code> macro. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108765">gh-108765</a>: <code class="docutils literal notranslate"><span class="pre">Python.h</span></code> no longer includes these standard header files:
<code class="docutils literal notranslate"><span class="pre"><time.h></span></code>, <code class="docutils literal notranslate"><span class="pre"><sys/select.h></span></code> and <code class="docutils literal notranslate"><span class="pre"><sys/time.h></span></code>. If needed, they
should now be included explicitly. For example, <code class="docutils literal notranslate"><span class="pre"><time.h></span></code> provides the
<code class="docutils literal notranslate"><span class="pre">clock()</span></code> and <code class="docutils literal notranslate"><span class="pre">gmtime()</span></code> functions, <code class="docutils literal notranslate"><span class="pre"><sys/select.h></span></code> provides the
<code class="docutils literal notranslate"><span class="pre">select()</span></code> function, and <code class="docutils literal notranslate"><span class="pre"><sys/time.h></span></code> provides the <code class="docutils literal notranslate"><span class="pre">futimes()</span></code>,
<code class="docutils literal notranslate"><span class="pre">gettimeofday()</span></code> and <code class="docutils literal notranslate"><span class="pre">setitimer()</span></code> functions. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108511">gh-108511</a>: Add functions <a class="reference internal" href="../c-api/object.html#c.PyObject_HasAttrWithError" title="PyObject_HasAttrWithError"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_HasAttrWithError()</span></code></a>,
<a class="reference internal" href="../c-api/object.html#c.PyObject_HasAttrStringWithError" title="PyObject_HasAttrStringWithError"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_HasAttrStringWithError()</span></code></a>,
<a class="reference internal" href="../c-api/mapping.html#c.PyMapping_HasKeyWithError" title="PyMapping_HasKeyWithError"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMapping_HasKeyWithError()</span></code></a> and
<a class="reference internal" href="../c-api/mapping.html#c.PyMapping_HasKeyStringWithError" title="PyMapping_HasKeyStringWithError"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMapping_HasKeyStringWithError()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107073">gh-107073</a>: Add <a class="reference internal" href="../c-api/object.html#c.PyObject_VisitManagedDict" title="PyObject_VisitManagedDict"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_VisitManagedDict()</span></code></a> and
<a class="reference internal" href="../c-api/object.html#c.PyObject_ClearManagedDict" title="PyObject_ClearManagedDict"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_ClearManagedDict()</span></code></a> functions which must be called by the
traverse and clear functions of a type using
<a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_MANAGED_DICT" title="Py_TPFLAGS_MANAGED_DICT"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_MANAGED_DICT</span></code></a> flag. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108634">gh-108634</a>: Python built with <code class="file docutils literal notranslate"><span class="pre">configure</span></code> <a class="reference internal" href="../using/configure.html#cmdoption-with-trace-refs"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-trace-refs</span></code></a>
(tracing references) now supports the <a class="reference internal" href="../c-api/stable.html#limited-c-api"><span class="std std-ref">Limited API</span></a>.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108014">gh-108014</a>: Add <a class="reference internal" href="../c-api/long.html#c.PyLong_AsInt" title="PyLong_AsInt"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsInt()</span></code></a> function: similar to
<a class="reference internal" href="../c-api/long.html#c.PyLong_AsLong" title="PyLong_AsLong"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsLong()</span></code></a>, but store the result in a C <span class="c-expr sig sig-inline c"><span class="kt">int</span></span> instead
of a C <span class="c-expr sig sig-inline c"><span class="kt">long</span></span>. Previously, it was known as the private function
<code class="xref c c-func docutils literal notranslate"><span class="pre">_PyLong_AsInt()</span></code> (with an underscore prefix). Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108314">gh-108314</a>: Add <a class="reference internal" href="../c-api/dict.html#c.PyDict_ContainsString" title="PyDict_ContainsString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_ContainsString()</span></code></a> function: same as
<a class="reference internal" href="../c-api/dict.html#c.PyDict_Contains" title="PyDict_Contains"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_Contains()</span></code></a>, but <em>key</em> is specified as a <span class="c-expr sig sig-inline c"><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="p">*</span></span> UTF-8 encoded bytes string, rather than a <span class="c-expr sig sig-inline c"><a class="reference internal" href="../c-api/structures.html#c.PyObject" title="PyObject"><span class="n">PyObject</span></a><span class="p">*</span></span>.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108337">gh-108337</a>: Add atomic operations on additional data types in pyatomic.h.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/108014">gh-108014</a>: Add <a class="reference internal" href="../c-api/init.html#c.Py_IsFinalizing" title="Py_IsFinalizing"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_IsFinalizing()</span></code></a> function: check if the main
Python interpreter is <a class="reference internal" href="../glossary.html#term-interpreter-shutdown"><span class="xref std std-term">shutting down</span></a>. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107916">gh-107916</a>: C API functions <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_SetFromErrnoWithFilename" title="PyErr_SetFromErrnoWithFilename"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_SetFromErrnoWithFilename()</span></code></a>,
<a class="reference internal" href="../c-api/exceptions.html#c.PyErr_SetExcFromWindowsErrWithFilename" title="PyErr_SetExcFromWindowsErrWithFilename"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_SetExcFromWindowsErrWithFilename()</span></code></a> and
<a class="reference internal" href="../c-api/exceptions.html#c.PyErr_SetFromWindowsErrWithFilename" title="PyErr_SetFromWindowsErrWithFilename"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_SetFromWindowsErrWithFilename()</span></code></a> save now the error code
before calling <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_DecodeFSDefault" title="PyUnicode_DecodeFSDefault"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_DecodeFSDefault()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107915">gh-107915</a>: Such C API functions as <code class="docutils literal notranslate"><span class="pre">PyErr_SetString()</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyErr_Format()</span></code>, <code class="docutils literal notranslate"><span class="pre">PyErr_SetFromErrnoWithFilename()</span></code> and many others
no longer crash or ignore errors if it failed to format the error message
or decode the filename. Instead, they keep a corresponding error.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107810">gh-107810</a>: Improve <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> for uses of
<a class="reference internal" href="../c-api/type.html#c.PyType_Spec" title="PyType_Spec"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyType_Spec</span></code></a> with metaclasses that have custom <code class="docutils literal notranslate"><span class="pre">tp_new</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107249">gh-107249</a>: Implement the <a class="reference internal" href="../c-api/intro.html#c.Py_UNUSED" title="Py_UNUSED"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_UNUSED</span></code></a> macro for Windows MSVC
compiler. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/107226">gh-107226</a>: <a class="reference internal" href="../c-api/module.html#c.PyModule_AddObjectRef" title="PyModule_AddObjectRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_AddObjectRef()</span></code></a> is now only available in the
limited API version 3.10 or later.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106320">gh-106320</a>: Remove private <code class="docutils literal notranslate"><span class="pre">_PyUnicode_AsString()</span></code> alias to
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_AsUTF8" title="PyUnicode_AsUTF8"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsUTF8()</span></code></a>. It was kept for backward compatibility with
Python 3.0 - 3.2. The <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_AsUTF8" title="PyUnicode_AsUTF8"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsUTF8()</span></code></a> is available since Python
3.3. The <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_AsUTF8String" title="PyUnicode_AsUTF8String"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsUTF8String()</span></code></a> function can be used to keep
compatibility with Python 3.2 and older. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106572">gh-106572</a>: Convert <a class="reference internal" href="../c-api/object.html#c.PyObject_DelAttr" title="PyObject_DelAttr"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_DelAttr()</span></code></a> and
<a class="reference internal" href="../c-api/object.html#c.PyObject_DelAttrString" title="PyObject_DelAttrString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_DelAttrString()</span></code></a> macros to functions. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106307">gh-106307</a>: Add <a class="reference internal" href="../c-api/mapping.html#c.PyMapping_GetOptionalItem" title="PyMapping_GetOptionalItem"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMapping_GetOptionalItem()</span></code></a> function.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106521">gh-106521</a>: Add <a class="reference internal" href="../c-api/object.html#c.PyObject_GetOptionalAttr" title="PyObject_GetOptionalAttr"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GetOptionalAttr()</span></code></a> and
<a class="reference internal" href="../c-api/object.html#c.PyObject_GetOptionalAttrString" title="PyObject_GetOptionalAttrString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GetOptionalAttrString()</span></code></a> functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106320">gh-106320</a>: Remove <code class="docutils literal notranslate"><span class="pre">_PyInterpreterState_Get()</span></code> alias to
<a class="reference internal" href="../c-api/init.html#c.PyInterpreterState_Get" title="PyInterpreterState_Get"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInterpreterState_Get()</span></code></a> which was kept for backward
compatibility with Python 3.8. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106316">gh-106316</a>: Remove <code class="docutils literal notranslate"><span class="pre">cpython/pytime.h</span></code> header file: it only contained
private functions. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106023">gh-106023</a>: Remove private <code class="docutils literal notranslate"><span class="pre">_PyObject_FastCall()</span></code> function: use
<code class="docutils literal notranslate"><span class="pre">PyObject_Vectorcall()</span></code> which is available since Python 3.8
(<span class="target" id="index-120"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>). Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106168">gh-106168</a>: If Python is built in <a class="reference internal" href="../using/configure.html#debug-build"><span class="std std-ref">debug mode</span></a> or
<a class="reference internal" href="../using/configure.html#cmdoption-with-assertions"><code class="xref std std-option docutils literal notranslate"><span class="pre">with</span> <span class="pre">assertions</span></code></a>, <a class="reference internal" href="../c-api/tuple.html#c.PyTuple_SET_ITEM" title="PyTuple_SET_ITEM"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyTuple_SET_ITEM()</span></code></a>
and <a class="reference internal" href="../c-api/list.html#c.PyList_SET_ITEM" title="PyList_SET_ITEM"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyList_SET_ITEM()</span></code></a> now check the index argument with an
assertion. If the assertion fails, make sure that the size is set before.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106084">gh-106084</a>: Remove the old aliases to functions calling functions which
were kept for backward compatibility with Python 3.8 provisional API:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">_PyObject_CallMethodNoArgs()</span></code>: use <code class="docutils literal notranslate"><span class="pre">PyObject_CallMethodNoArgs()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_PyObject_CallMethodOneArg()</span></code>: use <code class="docutils literal notranslate"><span class="pre">PyObject_CallMethodOneArg()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_PyObject_CallOneArg()</span></code>: use <code class="docutils literal notranslate"><span class="pre">PyObject_CallOneArg()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_PyObject_FastCallDict()</span></code>: use <code class="docutils literal notranslate"><span class="pre">PyObject_VectorcallDict()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_PyObject_Vectorcall()</span></code>: use <code class="docutils literal notranslate"><span class="pre">PyObject_Vectorcall()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_PyObject_VectorcallMethod()</span></code>: use <code class="docutils literal notranslate"><span class="pre">PyObject_VectorcallMethod()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_PyVectorcall_Function()</span></code>: use <code class="docutils literal notranslate"><span class="pre">PyVectorcall_Function()</span></code></p></li>
</ul>
<p>Just remove the underscore prefix to update your code. Patch by Victor
Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/106004">gh-106004</a>: Adds <a class="reference internal" href="../c-api/dict.html#c.PyDict_GetItemRef" title="PyDict_GetItemRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_GetItemRef()</span></code></a> and
<a class="reference internal" href="../c-api/dict.html#c.PyDict_GetItemStringRef" title="PyDict_GetItemStringRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_GetItemStringRef()</span></code></a> functions: similar to
<a class="reference internal" href="../c-api/dict.html#c.PyDict_GetItemWithError" title="PyDict_GetItemWithError"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_GetItemWithError()</span></code></a> but returning a <a class="reference internal" href="../glossary.html#term-strong-reference"><span class="xref std std-term">strong reference</span></a>
instead of a <a class="reference internal" href="../glossary.html#term-borrowed-reference"><span class="xref std std-term">borrowed reference</span></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105927">gh-105927</a>: Deprecate the <a class="reference internal" href="../c-api/weakref.html#c.PyWeakref_GetObject" title="PyWeakref_GetObject"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyWeakref_GetObject()</span></code></a> and
<a class="reference internal" href="../c-api/weakref.html#c.PyWeakref_GET_OBJECT" title="PyWeakref_GET_OBJECT"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyWeakref_GET_OBJECT()</span></code></a> functions: use the new
<a class="reference internal" href="../c-api/weakref.html#c.PyWeakref_GetRef" title="PyWeakref_GetRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyWeakref_GetRef()</span></code></a> function instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105927">gh-105927</a>: Add <a class="reference internal" href="../c-api/weakref.html#c.PyWeakref_GetRef" title="PyWeakref_GetRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyWeakref_GetRef()</span></code></a> function: similar to
<a class="reference internal" href="../c-api/weakref.html#c.PyWeakref_GetObject" title="PyWeakref_GetObject"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyWeakref_GetObject()</span></code></a> but returns a <a class="reference internal" href="../glossary.html#term-strong-reference"><span class="xref std std-term">strong reference</span></a>, or
<code class="docutils literal notranslate"><span class="pre">NULL</span></code> if the referent is no longer live. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105922">gh-105922</a>: Add <a class="reference internal" href="../c-api/import.html#c.PyImport_AddModuleRef" title="PyImport_AddModuleRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_AddModuleRef()</span></code></a>: similar to
<a class="reference internal" href="../c-api/import.html#c.PyImport_AddModule" title="PyImport_AddModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_AddModule()</span></code></a>, but return a <a class="reference internal" href="../glossary.html#term-strong-reference"><span class="xref std std-term">strong reference</span></a>
instead of a <a class="reference internal" href="../glossary.html#term-borrowed-reference"><span class="xref std std-term">borrowed reference</span></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105227">gh-105227</a>: The new <a class="reference internal" href="../c-api/type.html#c.PyType_GetDict" title="PyType_GetDict"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetDict()</span></code></a> provides the dictionary for
the given type object that is normally exposed by <code class="docutils literal notranslate"><span class="pre">cls.__dict__</span></code>.
Normally it’s sufficient to use <a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_dict" title="PyTypeObject.tp_dict"><code class="xref c c-member docutils literal notranslate"><span class="pre">tp_dict</span></code></a>, but for
the static builtin types <code class="xref c c-member docutils literal notranslate"><span class="pre">tp_dict</span></code> is now always <code class="docutils literal notranslate"><span class="pre">NULL</span></code>.
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetDict()</span></code> provides the correct dict object instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105375">gh-105375</a>: Fix a bug in <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_WarnExplicit" title="PyErr_WarnExplicit"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_WarnExplicit()</span></code></a> where an exception
could end up being overwritten if the API failed internally.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105603">gh-105603</a>: We’ve renamed the new (in 3.12) <code class="docutils literal notranslate"><span class="pre">PyInterpreterConfig.own_gil</span></code>
to <code class="docutils literal notranslate"><span class="pre">PyInterpreterConfig.gil</span></code> and changed the meaning of the value from
“bool” to an integer with supported values of
<code class="docutils literal notranslate"><span class="pre">PyInterpreterConfig_DEFAULT_GIL</span></code>, <code class="docutils literal notranslate"><span class="pre">PyInterpreterConfig_SHARED_GIL</span></code>,
and <code class="docutils literal notranslate"><span class="pre">PyInterpreterConfig_OWN_GIL</span></code>. The default is “shared”.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105387">gh-105387</a>: In the limited C API version 3.12, <a class="reference internal" href="../c-api/refcounting.html#c.Py_INCREF" title="Py_INCREF"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_INCREF()</span></code></a> and
<a class="reference internal" href="../c-api/refcounting.html#c.Py_DECREF" title="Py_DECREF"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_DECREF()</span></code></a> functions are now implemented as opaque function calls
to hide implementation details. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105396">gh-105396</a>: Deprecate the <a class="reference internal" href="../c-api/import.html#c.PyImport_ImportModuleNoBlock" title="PyImport_ImportModuleNoBlock"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModuleNoBlock()</span></code></a> function
which is just an alias to <a class="reference internal" href="../c-api/import.html#c.PyImport_ImportModule" title="PyImport_ImportModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModule()</span></code></a> since Python
3.3. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103968">gh-103968</a>: <a class="reference internal" href="../c-api/type.html#c.PyType_FromMetaclass" title="PyType_FromMetaclass"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromMetaclass()</span></code></a> now allows metaclasses with
<code class="docutils literal notranslate"><span class="pre">tp_new</span></code> set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105268">gh-105268</a>: Remove the old private, undocumented and untested
<code class="docutils literal notranslate"><span class="pre">_PyGC_FINALIZED()</span></code> macro which was kept for backward compatibility with
Python 3.8 and older. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105182">gh-105182</a>: Remove <code class="docutils literal notranslate"><span class="pre">PyEval_AcquireLock()</span></code> and <code class="docutils literal notranslate"><span class="pre">PyEval_ReleaseLock()</span></code>
functions, deprecated in Python 3.2. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105182">gh-105182</a>: Remove <code class="docutils literal notranslate"><span class="pre">PyEval_InitThreads()</span></code> and
<code class="docutils literal notranslate"><span class="pre">PyEval_ThreadsInitialized()</span></code> functions, deprecated in Python 3.9. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105145">gh-105145</a>: Deprecate old Python initialization functions:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../c-api/sys.html#c.PySys_ResetWarnOptions" title="PySys_ResetWarnOptions"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_ResetWarnOptions()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init.html#c.Py_GetExecPrefix" title="Py_GetExecPrefix"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetExecPrefix()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init.html#c.Py_GetPath" title="Py_GetPath"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetPath()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init.html#c.Py_GetPrefix" title="Py_GetPrefix"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetPrefix()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init.html#c.Py_GetProgramFullPath" title="Py_GetProgramFullPath"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetProgramFullPath()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init.html#c.Py_GetProgramName" title="Py_GetProgramName"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetProgramName()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/init.html#c.Py_GetPythonHome" title="Py_GetPythonHome"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetPythonHome()</span></code></a></p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85275">gh-85275</a>: <code class="docutils literal notranslate"><span class="pre">PyObject_AsCharBuffer()</span></code>, <code class="docutils literal notranslate"><span class="pre">PyObject_AsReadBuffer()</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyObject_CheckReadBuffer()</span></code>, and <code class="docutils literal notranslate"><span class="pre">PyObject_AsWriteBuffer()</span></code> are
removed. Please migrate to new buffer protocol;
<a class="reference internal" href="../c-api/buffer.html#c.PyObject_GetBuffer" title="PyObject_GetBuffer"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GetBuffer()</span></code></a> and <a class="reference internal" href="../c-api/buffer.html#c.PyBuffer_Release" title="PyBuffer_Release"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBuffer_Release()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105156">gh-105156</a>: Deprecate the old <code class="docutils literal notranslate"><span class="pre">Py_UNICODE</span></code> and <code class="docutils literal notranslate"><span class="pre">PY_UNICODE_TYPE</span></code> types:
use directly the <code class="xref c c-type docutils literal notranslate"><span class="pre">wchar_t</span></code> type instead. Since Python 3.3,
<code class="docutils literal notranslate"><span class="pre">Py_UNICODE</span></code> and <code class="docutils literal notranslate"><span class="pre">PY_UNICODE_TYPE</span></code> are just aliases to
<code class="xref c c-type docutils literal notranslate"><span class="pre">wchar_t</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105145">gh-105145</a>: Remove the following old functions to configure the Python
initialization, deprecated in Python 3.11:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">PySys_AddWarnOptionUnicode()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PySys_AddWarnOption()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PySys_AddXOption()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PySys_HasWarnOptions()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PySys_SetArgvEx()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PySys_SetArgv()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PySys_SetPath()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Py_SetPath()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Py_SetProgramName()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Py_SetPythonHome()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Py_SetStandardStreamEncoding()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_Py_SetProgramFullPath()</span></code></p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105107">gh-105107</a>: Remove functions deprecated in Python 3.9.</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">PyEval_CallObject()</span></code>, <code class="docutils literal notranslate"><span class="pre">PyEval_CallObjectWithKeywords()</span></code>: use
<a class="reference internal" href="../c-api/call.html#c.PyObject_CallNoArgs" title="PyObject_CallNoArgs"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_CallNoArgs()</span></code></a> and <a class="reference internal" href="../c-api/call.html#c.PyObject_Call" title="PyObject_Call"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_Call()</span></code></a> (positional
arguments must not be <em>NULL</em>) instead.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyEval_CallFunction()</span></code>: use <a class="reference internal" href="../c-api/call.html#c.PyObject_CallFunction" title="PyObject_CallFunction"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_CallFunction()</span></code></a> instead.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyEval_CallMethod()</span></code>: use <a class="reference internal" href="../c-api/call.html#c.PyObject_CallMethod" title="PyObject_CallMethod"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_CallMethod()</span></code></a> instead.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyCFunction_Call()</span></code>: use <a class="reference internal" href="../c-api/call.html#c.PyObject_Call" title="PyObject_Call"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_Call()</span></code></a> instead.</p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105115">gh-105115</a>: <code class="docutils literal notranslate"><span class="pre">PyTypeObject.tp_bases</span></code> (and <code class="docutils literal notranslate"><span class="pre">tp_mro</span></code>) for builtin static
types are now shared by all interpreters, whereas in 3.12-beta1 they were
stored on <code class="docutils literal notranslate"><span class="pre">PyInterpreterState</span></code>. Also note that now the tuples are
immortal objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/105071">gh-105071</a>: Add <code class="docutils literal notranslate"><span class="pre">PyUnstable_Exc_PrepReraiseStar</span></code> to the unstable C api to
expose the implementation of <a class="reference internal" href="../reference/compound_stmts.html#except-star"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">except*</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104922">gh-104922</a>: <code class="docutils literal notranslate"><span class="pre">PY_SSIZE_T_CLEAN</span></code> is no longer required to use <code class="docutils literal notranslate"><span class="pre">'#'</span></code>
formats in APIs like <a class="reference internal" href="../c-api/arg.html#c.PyArg_ParseTuple" title="PyArg_ParseTuple"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_ParseTuple()</span></code></a> and
<a class="reference internal" href="../c-api/arg.html#c.Py_BuildValue" title="Py_BuildValue"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_BuildValue()</span></code></a>. They uses <code class="docutils literal notranslate"><span class="pre">Py_ssize_t</span></code> for <code class="docutils literal notranslate"><span class="pre">'#'</span></code> regardless
<code class="docutils literal notranslate"><span class="pre">PY_SSIZE_T_CLEAN</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104584">gh-104584</a>: Add an unstable C API for hooking in an optimizer. This is
mainly internal, but marked “unstable” to allow third-party
experimentation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104668">gh-104668</a>: Don’t call <a class="reference internal" href="../c-api/veryhigh.html#c.PyOS_InputHook" title="PyOS_InputHook"><code class="xref c c-var docutils literal notranslate"><span class="pre">PyOS_InputHook</span></code></a> or
<a class="reference internal" href="../c-api/veryhigh.html#c.PyOS_ReadlineFunctionPointer" title="PyOS_ReadlineFunctionPointer"><code class="xref c c-var docutils literal notranslate"><span class="pre">PyOS_ReadlineFunctionPointer</span></code></a> in subinterpreters, since it’s
generally difficult to avoid using global state in their registered
callbacks. This also avoids situations where extensions may find
themselves running in a subinterpreter they don’t support (or haven’t yet
been loaded in).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42327">bpo-42327</a>: Add <a class="reference internal" href="../c-api/module.html#c.PyModule_Add" title="PyModule_Add"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_Add()</span></code></a> function: similar to
<a class="reference internal" href="../c-api/module.html#c.PyModule_AddObjectRef" title="PyModule_AddObjectRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_AddObjectRef()</span></code></a> and <a class="reference internal" href="../c-api/module.html#c.PyModule_AddObject" title="PyModule_AddObject"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_AddObject()</span></code></a>, but
always steals a reference to the value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40309">bpo-40309</a>: Properly handle trailing spaces before closing parenthesis in
<a class="reference internal" href="../c-api/arg.html#c.Py_BuildValue" title="Py_BuildValue"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_BuildValue()</span></code></a> format strings.</p></li>
</ul>
</section>
</section>
<section id="python-3-12-0-beta-1">
<h2>Python 3.12.0 beta 1<a class="headerlink" href="#python-3-12-0-beta-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2023-05-22</em></p>
<section id="id182">
<h3>Security<a class="headerlink" href="#id182" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99889">gh-99889</a>: Fixed a security in flaw in <code class="xref py py-func docutils literal notranslate"><span class="pre">uu.decode()</span></code> that could allow
for directory traversal based on the input if no <code class="docutils literal notranslate"><span class="pre">out_file</span></code> was
specified.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104049">gh-104049</a>: Do not expose the local on-disk location in directory indexes
produced by <code class="xref py py-class docutils literal notranslate"><span class="pre">http.client.SimpleHTTPRequestHandler</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99108">gh-99108</a>: Upgrade built-in <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> SHA3 implementation to a
verified implementation from the <code class="docutils literal notranslate"><span class="pre">HACL*</span></code> project. Used when OpenSSL is
not present or lacks SHA3.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102153">gh-102153</a>: <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlsplit" title="urllib.parse.urlsplit"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlsplit()</span></code></a> now strips leading C0 control and
space characters following the specification for URLs defined by WHATWG in
response to <span class="target" id="index-121"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2023-24329"><strong>CVE 2023-24329</strong></a>. Patch by Illia Volochii.</p></li>
</ul>
</section>
<section id="id183">
<h3>Core and Builtins<a class="headerlink" href="#id183" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102856">gh-102856</a>: Implement PEP 701 changes in the <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a> module. Patch
by Marta Gómez Macías and Pablo Galindo Salgado</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104615">gh-104615</a>: Fix wrong ordering of assignments in code like <code class="docutils literal notranslate"><span class="pre">a,</span> <span class="pre">a</span> <span class="pre">=</span> <span class="pre">x,</span> <span class="pre">y</span></code>.
Contributed by Carl Meyer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104572">gh-104572</a>: Improve syntax error message for invalid constructs in
<span class="target" id="index-122"></span><a class="pep reference external" href="https://peps.python.org/pep-0695/"><strong>PEP 695</strong></a> contexts and in annotations when <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span>
<span class="pre">annotations</span></code> is active.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104482">gh-104482</a>: Fix three error handling bugs in ast.c’s validation of pattern
matching statements.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102818">gh-102818</a>: Do not add a frame to the traceback in the <code class="docutils literal notranslate"><span class="pre">sys.setprofile</span></code>
and <code class="docutils literal notranslate"><span class="pre">sys.settrace</span></code> trampoline functions. This ensures that frames are
not duplicated if an exception is raised in the callback function, and
ensures that frames are not omitted if a C callback is used and that does
not add the frame.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104405">gh-104405</a>: Fix an issue where some <a class="reference internal" href="../glossary.html#term-bytecode"><span class="xref std std-term">bytecode</span></a> instructions could
ignore <span class="target" id="index-123"></span><a class="pep reference external" href="https://peps.python.org/pep-0523/"><strong>PEP 523</strong></a> when “inlining” calls.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103082">gh-103082</a>: Change behavior of <code class="docutils literal notranslate"><span class="pre">sys.monitoring.events.LINE</span></code> events in
<code class="docutils literal notranslate"><span class="pre">sys.monitoring</span></code>: Line events now occur when a new line is reached
dynamically, instead of using a static approximation, as before. This
makes the behavior very similar to that of “line” events in
<code class="docutils literal notranslate"><span class="pre">sys.settrace</span></code>. This should ease porting of tools from 3.11 to 3.12.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104263">gh-104263</a>: Fix <code class="docutils literal notranslate"><span class="pre">float("nan")</span></code> to produce a quiet NaN on platforms (like
MIPS) where the meaning of the signalling / quiet bit is inverted from its
usual meaning. Also introduce a new macro <code class="docutils literal notranslate"><span class="pre">Py_INFINITY</span></code> matching C99’s
<code class="docutils literal notranslate"><span class="pre">INFINITY</span></code>, and refactor internals to rely on C99’s <code class="docutils literal notranslate"><span class="pre">NAN</span></code> and
<code class="docutils literal notranslate"><span class="pre">INFINITY</span></code> macros instead of hard-coding bit patterns for infinities and
NaNs. Thanks Sebastian Berg.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99113">gh-99113</a>: Multi-phase init extension modules may now indicate that they
support running in subinterpreters that have their own GIL. This is done
by using <code class="docutils literal notranslate"><span class="pre">Py_MOD_PER_INTERPRETER_GIL_SUPPORTED</span></code> as the value for the
<code class="docutils literal notranslate"><span class="pre">Py_mod_multiple_interpreters</span></code> module def slot. Otherwise the module,
by default, cannot be imported in such subinterpreters. (This does not
affect the main interpreter or subinterpreters that do not have their own
GIL.) In addition to the isolation that multi-phase init already normally
requires, support for per-interpreter GIL involves one additional
constraint: thread-safety. If the module has external (linked)
dependencies and those libraries have any state that isn’t thread-safe
then the module must do the additional work to add thread-safety. This
should be an uncommon case.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99113">gh-99113</a>: The GIL is now (optionally) per-interpreter. This is the
fundamental change for PEP 684. This is all made possible by virtue of
the isolated state of each interpreter in the process. The behavior of
the main interpreter remains unchanged. Likewise, interpreters created
using <code class="docutils literal notranslate"><span class="pre">Py_NewInterpreter()</span></code> are not affected. To get an interpreter
with its own GIL, call <code class="docutils literal notranslate"><span class="pre">Py_NewInterpreterFromConfig()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104108">gh-104108</a>: Multi-phase init extension modules may now indicate whether or
not they actually support multiple interpreters. By default such modules
are expected to support use in multiple interpreters. In the uncommon
case that one does not, it may use the new
<code class="docutils literal notranslate"><span class="pre">Py_mod_multiple_interpreters</span></code> module def slot. A value of <code class="docutils literal notranslate"><span class="pre">0</span></code> means
the module does not support them. <code class="docutils literal notranslate"><span class="pre">1</span></code> means it does. The default is
<code class="docutils literal notranslate"><span class="pre">1</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104142">gh-104142</a>: Fix an issue where <a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> or <a class="reference internal" href="../library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> repetition
could fail to respect <span class="target" id="index-124"></span><a class="pep reference external" href="https://peps.python.org/pep-0683/"><strong>PEP 683</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104078">gh-104078</a>: Improve the performance of <a class="reference internal" href="../c-api/object.html#c.PyObject_HasAttrString" title="PyObject_HasAttrString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_HasAttrString()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104066">gh-104066</a>: Improve the performance of <a class="reference internal" href="../library/functions.html#hasattr" title="hasattr"><code class="xref py py-func docutils literal notranslate"><span class="pre">hasattr()</span></code></a> for module objects
with a missing attribute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104028">gh-104028</a>: Reduce object creation while calling callback function from gc.
Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104018">gh-104018</a>: Disallow the “z” format specifier in %-format of bytes objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102213">gh-102213</a>: Fix performance loss when accessing an object’s attributes with
<code class="docutils literal notranslate"><span class="pre">__getattr__</span></code> defined.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103895">gh-103895</a>: Improve handling of edge cases in showing
<code class="docutils literal notranslate"><span class="pre">Exception.__notes__</span></code>. Ensures that the messages always end with a
newline and that string/bytes are not exploded over multiple lines. Patch
by Carey Metcalfe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103907">gh-103907</a>: Don’t modify the refcounts of known immortal objects
(<a class="reference internal" href="../library/constants.html#True" title="True"><code class="xref py py-const docutils literal notranslate"><span class="pre">True</span></code></a>, <a class="reference internal" href="../library/constants.html#False" title="False"><code class="xref py py-const docutils literal notranslate"><span class="pre">False</span></code></a>, and <a class="reference internal" href="../library/constants.html#None" title="None"><code class="xref py py-const docutils literal notranslate"><span class="pre">None</span></code></a>) in the main interpreter
loop.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103899">gh-103899</a>: Provide a helpful hint in the <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> message when
accidentally calling a <a class="reference internal" href="../glossary.html#term-module"><span class="xref std std-term">module</span></a> object that has a callable attribute
of the same name (such as <a class="reference internal" href="../library/dis.html#dis.dis" title="dis.dis"><code class="xref py py-func docutils literal notranslate"><span class="pre">dis.dis()</span></code></a> or <a class="reference internal" href="../library/datetime.html#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103845">gh-103845</a>: Remove both line and instruction instrumentation before adding
new ones for monitoring, to avoid newly added instrumentation being
removed immediately.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103763">gh-103763</a>: Implement <span class="target" id="index-125"></span><a class="pep reference external" href="https://peps.python.org/pep-0695/"><strong>PEP 695</strong></a>, adding syntactic support for generic
classes, generic functions, and type aliases.</p>
<p>A new <code class="docutils literal notranslate"><span class="pre">type</span> <span class="pre">X</span> <span class="pre">=</span> <span class="pre">...</span></code> syntax is added for type aliases, which resolves at
runtime to an instance of the new class <code class="docutils literal notranslate"><span class="pre">typing.TypeAliasType</span></code>. The
value is lazily evaluated and is accessible through the <code class="docutils literal notranslate"><span class="pre">.__value__</span></code>
attribute. This is implemented as a new AST node <code class="docutils literal notranslate"><span class="pre">ast.TypeAlias</span></code>.</p>
<p>New syntax (<code class="docutils literal notranslate"><span class="pre">class</span> <span class="pre">X[T]:</span> <span class="pre">...</span></code>, <code class="docutils literal notranslate"><span class="pre">def</span> <span class="pre">func[T]():</span> <span class="pre">...</span></code>) is added for
defining generic functions and classes. This is implemented as a new
<code class="docutils literal notranslate"><span class="pre">type_params</span></code> attribute on the AST nodes for classes and functions. This
node holds instances of the new AST classes <code class="docutils literal notranslate"><span class="pre">ast.TypeVar</span></code>,
<code class="docutils literal notranslate"><span class="pre">ast.ParamSpec</span></code>, and <code class="docutils literal notranslate"><span class="pre">ast.TypeVarTuple</span></code>.</p>
<p><code class="docutils literal notranslate"><span class="pre">typing.TypeVar</span></code>, <code class="docutils literal notranslate"><span class="pre">typing.ParamSpec</span></code>, <code class="docutils literal notranslate"><span class="pre">typing.ParamSpecArgs</span></code>,
<code class="docutils literal notranslate"><span class="pre">typing.ParamSpecKwargs</span></code>, <code class="docutils literal notranslate"><span class="pre">typing.TypeVarTuple</span></code>, and
<code class="docutils literal notranslate"><span class="pre">typing.Generic</span></code> are now implemented in C rather than Python.</p>
<p>There are new bytecode instructions <code class="docutils literal notranslate"><span class="pre">LOAD_LOCALS</span></code>,
<code class="docutils literal notranslate"><span class="pre">LOAD_CLASSDICT_OR_GLOBAL</span></code>, and <code class="docutils literal notranslate"><span class="pre">LOAD_CLASSDICT_OR_DEREF</span></code> to support
correct resolution of names in class namespaces.</p>
<p>Patch by Eric Traut, Larry Hastings, and Jelle Zijlstra.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103801">gh-103801</a>: Adds three minor linting fixes to the wasm module caught that
were caught by ruff.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103793">gh-103793</a>: Optimized asyncio Task creation by deferring expensive string
formatting (task name generation) from Task creation to the first time
<code class="docutils literal notranslate"><span class="pre">get_name</span></code> is called. This makes asyncio benchmarks up to 5% faster.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102310">gh-102310</a>: Change the error range for invalid bytes literals.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103590">gh-103590</a>: Do not wrap a single exception raised from a <code class="docutils literal notranslate"><span class="pre">try-except*</span></code>
construct in an <a class="reference internal" href="../library/exceptions.html#ExceptionGroup" title="ExceptionGroup"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ExceptionGroup</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103650">gh-103650</a>: Change the perf map format to remove the ‘0x’ prefix from the
addresses</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102856">gh-102856</a>: Implement the required C tokenizer changes for PEP 701. Patch
by Pablo Galindo Salgado, Lysandros Nikolaou, Batuhan Taskaya, Marta Gómez
Macías and sunmy2019.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100530">gh-100530</a>: Clarify the error message raised when the called part of a
class pattern isn’t actually a class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101517">gh-101517</a>: Fix bug in line numbers of instructions emitted for
<a class="reference internal" href="../reference/compound_stmts.html#except-star"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">except*</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103492">gh-103492</a>: Clarify <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a> with literal <code class="docutils literal notranslate"><span class="pre">is</span></code> comparison by
specifying which literal is problematic, since comparisons using <code class="docutils literal notranslate"><span class="pre">is</span></code>
with e.g. <code class="docutils literal notranslate"><span class="pre">None</span></code> and bool literals are idiomatic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87729">gh-87729</a>: Add <a class="reference internal" href="../library/dis.html#opcode-LOAD_SUPER_ATTR"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_SUPER_ATTR</span></code></a> (and a specialization for
<code class="docutils literal notranslate"><span class="pre">super().method()</span></code>) to speed up <code class="docutils literal notranslate"><span class="pre">super().method()</span></code> and
<code class="docutils literal notranslate"><span class="pre">super().attr</span></code>. This makes <code class="docutils literal notranslate"><span class="pre">super().method()</span></code> roughly 2.3x faster and
brings it within 20% of the performance of a simple method call. Patch by
Vladimir Matveev and Carl Meyer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103488">gh-103488</a>: Change the internal offset distinguishing yield and return
target addresses, so that the instruction pointer is correct for exception
handling and other stack unwinding.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82012">gh-82012</a>: The bitwise inversion operator (<code class="docutils literal notranslate"><span class="pre">~</span></code>) on bool is deprecated. It
returns the bitwise inversion of the underlying <code class="docutils literal notranslate"><span class="pre">int</span></code> representation
such that <code class="docutils literal notranslate"><span class="pre">bool(~True)</span> <span class="pre">==</span> <span class="pre">True</span></code>, which can be confusing. Use <code class="docutils literal notranslate"><span class="pre">not</span></code> for
logical negation of bools. In the rare case that you really need the
bitwise inversion of the underlying <code class="docutils literal notranslate"><span class="pre">int</span></code>, convert to int explicitly
<code class="docutils literal notranslate"><span class="pre">~int(x)</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77757">gh-77757</a>: Exceptions raised in a typeobject’s <code class="docutils literal notranslate"><span class="pre">__set_name__</span></code> method are
no longer wrapped by a <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a>. Context information is added
to the exception as a <span class="target" id="index-126"></span><a class="pep reference external" href="https://peps.python.org/pep-0678/"><strong>PEP 678</strong></a> note.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103333">gh-103333</a>: <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> now retains the <code class="docutils literal notranslate"><span class="pre">name</span></code> attribute when
pickled and unpickled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103242">gh-103242</a>: Migrate <a class="reference internal" href="../library/ssl.html#ssl.SSLContext.set_ecdh_curve" title="ssl.SSLContext.set_ecdh_curve"><code class="xref py py-meth docutils literal notranslate"><span class="pre">set_ecdh_curve()</span></code></a> method not to
use deprecated OpenSSL APIs. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103323">gh-103323</a>: We’ve replaced our use of <code class="docutils literal notranslate"><span class="pre">_PyRuntime.tstate_current</span></code> with a
thread-local variable. This is a fairly low-level implementation detail,
and there should be no change in behavior.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84436">gh-84436</a>: The implementation of PEP-683 which adds Immortal Objects by
using a fixed reference count that skips reference counting to make
objects truly immutable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102700">gh-102700</a>: Allow built-in modules to be submodules. This allows submodules
to be statically linked into a CPython binary.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103082">gh-103082</a>: Implement <span class="target" id="index-127"></span><a class="pep reference external" href="https://peps.python.org/pep-0669/"><strong>PEP 669</strong></a> Low Impact Monitoring for CPython.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88691">gh-88691</a>: Reduce the number of inline <a class="reference internal" href="../library/dis.html#opcode-CACHE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CACHE</span></code></a> entries for
<a class="reference internal" href="../library/dis.html#opcode-CALL"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102500">gh-102500</a>: Make the buffer protocol accessible in Python code using the
new <code class="docutils literal notranslate"><span class="pre">__buffer__</span></code> and <code class="docutils literal notranslate"><span class="pre">__release_buffer__</span></code> magic methods. See
<span class="target" id="index-128"></span><a class="pep reference external" href="https://peps.python.org/pep-0688/"><strong>PEP 688</strong></a> for details. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97933">gh-97933</a>: <span class="target" id="index-129"></span><a class="pep reference external" href="https://peps.python.org/pep-0709/"><strong>PEP 709</strong></a>: inline list, dict and set comprehensions to improve
performance and reduce bytecode size.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99184">gh-99184</a>: Bypass instance attribute access of <code class="docutils literal notranslate"><span class="pre">__name__</span></code> in <code class="docutils literal notranslate"><span class="pre">repr</span></code> of
<a class="reference internal" href="../library/weakref.html#weakref.ref" title="weakref.ref"><code class="xref py py-class docutils literal notranslate"><span class="pre">weakref.ref</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98003">gh-98003</a>: Complex function calls are now faster and consume no C stack
space.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39610">bpo-39610</a>: <code class="docutils literal notranslate"><span class="pre">len()</span></code> for 0-dimensional <a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a> objects (such
as <code class="docutils literal notranslate"><span class="pre">memoryview(ctypes.c_uint8(42))</span></code>) now raises a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>.
Previously this returned <code class="docutils literal notranslate"><span class="pre">1</span></code>, which was not consistent with
<code class="docutils literal notranslate"><span class="pre">mem_0d[0]</span></code> raising an <a class="reference internal" href="../library/exceptions.html#IndexError" title="IndexError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IndexError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31821">bpo-31821</a>: Fix <code class="xref py py-func docutils literal notranslate"><span class="pre">pause_reading()</span></code> to work when called from
<code class="xref py py-func docutils literal notranslate"><span class="pre">connection_made()</span></code> in <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>.</p></li>
</ul>
</section>
<section id="id184">
<h3>Library<a class="headerlink" href="#id184" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104600">gh-104600</a>: <a class="reference internal" href="../library/functools.html#functools.update_wrapper" title="functools.update_wrapper"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.update_wrapper()</span></code></a> now sets the
<code class="docutils literal notranslate"><span class="pre">__type_params__</span></code> attribute (added by <span class="target" id="index-130"></span><a class="pep reference external" href="https://peps.python.org/pep-0695/"><strong>PEP 695</strong></a>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104340">gh-104340</a>: When an <code class="docutils literal notranslate"><span class="pre">asyncio</span></code> pipe protocol loses its connection due to
an error, and the caller doesn’t await <code class="docutils literal notranslate"><span class="pre">wait_closed()</span></code> on the
corresponding <code class="docutils literal notranslate"><span class="pre">StreamWriter</span></code>, don’t log a warning about an exception
that was never retrieved. After all, according to the
<code class="docutils literal notranslate"><span class="pre">StreamWriter.close()</span></code> docs, the <code class="docutils literal notranslate"><span class="pre">wait_closed()</span></code> call is optional
(“not mandatory”).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104555">gh-104555</a>: Fix issue where an <a class="reference internal" href="../library/functions.html#issubclass" title="issubclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">issubclass()</span></code></a> check comparing a class
<code class="docutils literal notranslate"><span class="pre">X</span></code> against a <a class="reference internal" href="../library/typing.html#typing.runtime_checkable" title="typing.runtime_checkable"><code class="xref py py-func docutils literal notranslate"><span class="pre">runtime-checkable</span> <span class="pre">protocol</span></code></a> <code class="docutils literal notranslate"><span class="pre">Y</span></code> with non-callable members would not
cause <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> to be raised if an <a class="reference internal" href="../library/functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal notranslate"><span class="pre">isinstance()</span></code></a> call had
previously been made comparing an instance of <code class="docutils literal notranslate"><span class="pre">X</span></code> to <code class="docutils literal notranslate"><span class="pre">Y</span></code>. This issue
was present in edge cases on Python 3.11, but became more prominent in
3.12 due to some unrelated changes that were made to runtime-checkable
protocols. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104372">gh-104372</a>: Refactored the <code class="docutils literal notranslate"><span class="pre">_posixsubprocess</span></code> internals to avoid Python C
API usage between fork and exec when marking <code class="docutils literal notranslate"><span class="pre">pass_fds=</span></code> file
descriptors inheritable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104484">gh-104484</a>: Added <em>case_sensitive</em> argument to
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.match" title="pathlib.PurePath.match"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.match()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/75367">gh-75367</a>: Fix data descriptor detection in
<a class="reference internal" href="../library/inspect.html#inspect.getattr_static" title="inspect.getattr_static"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getattr_static()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104536">gh-104536</a>: Fix a race condition in the internal
<code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing.process</span></code> cleanup logic that could manifest as an
unintended <code class="docutils literal notranslate"><span class="pre">AttributeError</span></code> when calling <code class="docutils literal notranslate"><span class="pre">process.close()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103857">gh-103857</a>: Update datetime deprecations’ stracktrace to point to the
calling line</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101520">gh-101520</a>: Move the core functionality of the <code class="docutils literal notranslate"><span class="pre">tracemalloc</span></code> module in
the <code class="docutils literal notranslate"><span class="pre">Python/</span></code> folder, leaving just the module wrapper in <code class="docutils literal notranslate"><span class="pre">Modules/</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104392">gh-104392</a>: Remove undocumented and unused <code class="docutils literal notranslate"><span class="pre">_paramspec_tvars</span></code> attribute
from some classes in <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102613">gh-102613</a>: Fix issue where <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> raised
<a class="reference internal" href="../library/exceptions.html#RecursionError" title="RecursionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RecursionError</span></code></a> when walking deep directory trees.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103000">gh-103000</a>: Improve performance of <a class="reference internal" href="../library/dataclasses.html#dataclasses.asdict" title="dataclasses.asdict"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.asdict()</span></code></a> for the
common case where <em>dict_factory</em> is <code class="docutils literal notranslate"><span class="pre">dict</span></code>. Patch by David C Ellis.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104301">gh-104301</a>: Allow leading whitespace in disambiguated statements in
<a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104139">gh-104139</a>: Teach <code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.unsplit()</span></code> to retain the <code class="docutils literal notranslate"><span class="pre">"//"</span></code> when
assembling <code class="docutils literal notranslate"><span class="pre">itms-services://?action=generate-bugs</span></code> style <a class="reference external" href="https://support.apple.com/en-gb/guide/deployment/depce7cefc4d/web">Apple Platform
Deployment</a>
URLs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104307">gh-104307</a>: <a class="reference internal" href="../library/socket.html#socket.getnameinfo" title="socket.getnameinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.getnameinfo()</span></code></a> now releases the GIL while
contacting the DNS server</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104310">gh-104310</a>: Users may now use <code class="docutils literal notranslate"><span class="pre">importlib.util.allowing_all_extensions()</span></code>
(a context manager) to temporarily disable the strict compatibility checks
for importing extension modules in subinterpreters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87695">gh-87695</a>: Fix issue where <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> raised <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>
when it encountered a symlink to an overly long path.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104265">gh-104265</a>: Prevent possible crash by disallowing instantiation of the
<code class="xref py py-class docutils literal notranslate"><span class="pre">_csv.Reader</span></code> and <code class="xref py py-class docutils literal notranslate"><span class="pre">_csv.Writer</span></code> types. The regression was
introduced in 3.10.0a4 with PR 23224 (<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14935">bpo-14935</a>). Patch by Radislav
Chugunov.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102613">gh-102613</a>: Improve performance of <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> when expanding
recursive wildcards (”<code class="docutils literal notranslate"><span class="pre">**</span></code>”) by merging adjacent wildcards and
de-duplicating results only when necessary.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65772">gh-65772</a>: Remove unneeded comments and code in turtle.py.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90208">gh-90208</a>: Fixed issue where <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> returned incomplete
results when it encountered a <a class="reference internal" href="../library/exceptions.html#PermissionError" title="PermissionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PermissionError</span></code></a>. This method now
suppresses all <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> exceptions, except those raised from calling
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_dir" title="pathlib.Path.is_dir"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_dir()</span></code></a> on the top-level path.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104144">gh-104144</a>: Optimize <a class="reference internal" href="../library/asyncio-task.html#asyncio.TaskGroup" title="asyncio.TaskGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.TaskGroup</span></code></a> when using
<a class="reference internal" href="../library/asyncio-task.html#asyncio.eager_task_factory" title="asyncio.eager_task_factory"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.eager_task_factory()</span></code></a>. Skip scheduling a done callback if a
TaskGroup task completes eagerly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104144">gh-104144</a>: Optimize <a class="reference internal" href="../library/asyncio-task.html#asyncio.gather" title="asyncio.gather"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.gather()</span></code></a> when using
<a class="reference internal" href="../library/asyncio-task.html#asyncio.eager_task_factory" title="asyncio.eager_task_factory"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.eager_task_factory()</span></code></a> to complete eagerly if all fututres
completed eagerly. Avoid scheduling done callbacks for futures that
complete eagerly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104114">gh-104114</a>: Fix issue where <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> returns paths using
the case of non-wildcard segments for corresponding path segments, rather
than the real filesystem case.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104104">gh-104104</a>: Improve performance of <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> by using
<a class="reference internal" href="../library/re.html#re.IGNORECASE" title="re.IGNORECASE"><code class="xref py py-const docutils literal notranslate"><span class="pre">re.IGNORECASE</span></code></a> to implement case-insensitive matching.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104102">gh-104102</a>: Improve performance of <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> when
evaluating patterns that contain <code class="docutils literal notranslate"><span class="pre">'../'</span></code> segments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103822">gh-103822</a>: Update the return type of <code class="docutils literal notranslate"><span class="pre">weekday</span></code> to the newly added Day
attribute</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103629">gh-103629</a>: Update the <code class="docutils literal notranslate"><span class="pre">repr</span></code> of <a class="reference internal" href="../library/typing.html#typing.Unpack" title="typing.Unpack"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Unpack</span></code></a> according to
<span class="target" id="index-131"></span><a class="pep reference external" href="https://peps.python.org/pep-0692/"><strong>PEP 692</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103963">gh-103963</a>: Make <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> display the names of the args for
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL_INTRINSIC_*</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104035">gh-104035</a>: Do not ignore user-defined <code class="docutils literal notranslate"><span class="pre">__getstate__</span></code> and
<code class="docutils literal notranslate"><span class="pre">__setstate__</span></code> methods for slotted frozen dataclasses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103987">gh-103987</a>: In <a class="reference internal" href="../library/mmap.html#module-mmap" title="mmap: Interface to memory-mapped files for Unix and Windows."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mmap</span></code></a>, fix several bugs that could lead to access to
memory-mapped files after they have been invalidated.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103977">gh-103977</a>: Improve import time of <a class="reference internal" href="../library/platform.html#module-platform" title="platform: Retrieves as much platform identifying data as possible."><code class="xref py py-mod docutils literal notranslate"><span class="pre">platform</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88773">gh-88773</a>: Added <a class="reference internal" href="../library/turtle.html#turtle.teleport" title="turtle.teleport"><code class="xref py py-func docutils literal notranslate"><span class="pre">turtle.teleport()</span></code></a> to the <a class="reference internal" href="../library/turtle.html#module-turtle" title="turtle: An educational framework for simple graphics applications"><code class="xref py py-mod docutils literal notranslate"><span class="pre">turtle</span></code></a> module to
move a turtle to a new point without tracing a line, visible or invisible.
Patch by Liam Gersten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103935">gh-103935</a>: Use <a class="reference internal" href="../library/io.html#io.open_code" title="io.open_code"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.open_code()</span></code></a> for files to be executed instead of
raw <a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/68968">gh-68968</a>: Fixed garbled output of <a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertEqual" title="unittest.TestCase.assertEqual"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertEqual()</span></code></a>
when an input lacks final newline.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100370">gh-100370</a>: Fix potential <a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> in
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.blobopen" title="sqlite3.Connection.blobopen"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.blobopen()</span></code></a> for 32-bit builds. Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102628">gh-102628</a>: Substitute CTRL-D with CTRL-Z in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> CLI banner when
running on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103636">gh-103636</a>: Module-level attributes <code class="docutils literal notranslate"><span class="pre">January</span></code> and <code class="docutils literal notranslate"><span class="pre">February</span></code> are
deprecated from <a class="reference internal" href="../library/calendar.html#module-calendar" title="calendar: Functions for working with calendars, including some emulation of the Unix cal program."><code class="xref py py-mod docutils literal notranslate"><span class="pre">calendar</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103583">gh-103583</a>: Isolate <code class="xref py py-mod docutils literal notranslate"><span class="pre">_multibytecodec</span></code> and codecs extension modules.
Patches by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103848">gh-103848</a>: Add checks to ensure that <code class="docutils literal notranslate"><span class="pre">[</span></code> bracketed <code class="docutils literal notranslate"><span class="pre">]</span></code> hosts found by
<a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlsplit" title="urllib.parse.urlsplit"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlsplit()</span></code></a> are of IPv6 or IPvFuture format.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103872">gh-103872</a>: Update the bundled copy of pip to version 23.1.2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99944">gh-99944</a>: Make <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> display the value of oparg of
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">KW_NAMES</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74940">gh-74940</a>: The C.UTF-8 locale is no longer converted to en_US.UTF-8,
enabling the use of UTF-8 encoding on systems which have no locales
installed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103861">gh-103861</a>: Fix <code class="docutils literal notranslate"><span class="pre">zipfile.Zipfile</span></code> creating invalid zip files when
<code class="docutils literal notranslate"><span class="pre">force_zip64</span></code> was used to add files to them. Patch by Carey Metcalfe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103857">gh-103857</a>: Deprecated <a class="reference internal" href="../library/datetime.html#datetime.datetime.utcnow" title="datetime.datetime.utcnow"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.utcnow()</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.datetime.utcfromtimestamp" title="datetime.datetime.utcfromtimestamp"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.utcfromtimestamp()</span></code></a>. (Patch by Paul Ganssle)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103839">gh-103839</a>: Avoid compilation error due to tommath.h not being found when
building Tkinter against Tcl 8.7 built with bundled libtommath.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103791">gh-103791</a>: <a class="reference internal" href="../library/contextlib.html#contextlib.suppress" title="contextlib.suppress"><code class="xref py py-class docutils literal notranslate"><span class="pre">contextlib.suppress</span></code></a> now supports suppressing
exceptions raised as part of an <a class="reference internal" href="../library/exceptions.html#ExceptionGroup" title="ExceptionGroup"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ExceptionGroup</span></code></a>. If other exceptions
exist on the group, they are re-raised in a group that does not contain
the suppressed exceptions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90750">gh-90750</a>: Use <a class="reference internal" href="../library/datetime.html#datetime.datetime.fromisocalendar" title="datetime.datetime.fromisocalendar"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.fromisocalendar()</span></code></a> in the
implementation of <a class="reference internal" href="../library/datetime.html#datetime.datetime.strptime" title="datetime.datetime.strptime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.strptime()</span></code></a>, which should now
accept only valid ISO dates. (Patch by Paul Ganssle)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103685">gh-103685</a>: Prepare <code class="xref py py-meth docutils literal notranslate"><span class="pre">tkinter.Menu.index()</span></code> for Tk 8.7 so that it does
not raise <code class="docutils literal notranslate"><span class="pre">TclError:</span> <span class="pre">expected</span> <span class="pre">integer</span> <span class="pre">but</span> <span class="pre">got</span> <span class="pre">""</span></code> when it should return
<code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81403">gh-81403</a>: <a class="reference internal" href="../library/urllib.request.html#urllib.request.CacheFTPHandler" title="urllib.request.CacheFTPHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">urllib.request.CacheFTPHandler</span></code></a> no longer raises
<code class="xref py py-class docutils literal notranslate"><span class="pre">URLError</span></code> if a cached FTP instance is reused. ftplib’s endtransfer
method calls voidresp to drain the connection to handle FTP instance reuse
properly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103699">gh-103699</a>: Add <code class="docutils literal notranslate"><span class="pre">__orig_bases__</span></code> to non-generic TypedDicts, call-based
TypedDicts, and call-based NamedTuples. Other TypedDicts and NamedTuples
already had the attribute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103693">gh-103693</a>: Add convenience variable feature to <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92248">gh-92248</a>: Deprecate <code class="docutils literal notranslate"><span class="pre">type</span></code>, <code class="docutils literal notranslate"><span class="pre">choices</span></code>, and <code class="docutils literal notranslate"><span class="pre">metavar</span></code> parameters of
<code class="docutils literal notranslate"><span class="pre">argparse.BooleanOptionalAction</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89415">gh-89415</a>: Add <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> constants for source-specific multicast. Patch
by Reese Hyde.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103673">gh-103673</a>: <a class="reference internal" href="../library/socketserver.html#module-socketserver" title="socketserver: A framework for network servers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socketserver</span></code></a> gains <code class="docutils literal notranslate"><span class="pre">ForkingUnixStreamServer</span></code> and
<code class="docutils literal notranslate"><span class="pre">ForkingUnixDatagramServer</span></code> classes. Patch by Jay Berry.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103636">gh-103636</a>: Added Enum for months and days in the calendar module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84976">gh-84976</a>: Create a new <code class="docutils literal notranslate"><span class="pre">Lib/_pydatetime.py</span></code> file that defines the Python
version of the <code class="docutils literal notranslate"><span class="pre">datetime</span></code> module, and make <code class="docutils literal notranslate"><span class="pre">datetime</span></code> import the
contents of the new library only if the C implementation is missing.
Currently, the full Python implementation is defined and then deleted if
the C implementation is not available, slowing down <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">datetime</span></code>
unnecessarily.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103596">gh-103596</a>: Attributes/methods are no longer shadowed by same-named enum
members, although they may be shadowed by enum.property’s.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103584">gh-103584</a>: Updated <code class="docutils literal notranslate"><span class="pre">importlib.metadata</span></code> with changes from
<code class="docutils literal notranslate"><span class="pre">importlib_metadata</span></code> 5.2 through 6.5.0, including: Support
<code class="docutils literal notranslate"><span class="pre">installed-files.txt</span></code> for <code class="docutils literal notranslate"><span class="pre">Distribution.files</span></code> when present.
<code class="docutils literal notranslate"><span class="pre">PackageMetadata</span></code> now stipulates an additional <code class="docutils literal notranslate"><span class="pre">get</span></code> method allowing
for easy querying of metadata keys that may not be present.
<code class="docutils literal notranslate"><span class="pre">packages_distributions</span></code> now honors packages and modules with Python
modules that not <code class="docutils literal notranslate"><span class="pre">.py</span></code> sources (e.g. <code class="docutils literal notranslate"><span class="pre">.pyc</span></code>, <code class="docutils literal notranslate"><span class="pre">.so</span></code>). Expand protocol
for <code class="docutils literal notranslate"><span class="pre">PackageMetadata.get_all</span></code> to match the upstream implementation of
<code class="docutils literal notranslate"><span class="pre">email.message.Message.get_all</span></code> in python/typeshed#9620. Deprecated use
of <code class="docutils literal notranslate"><span class="pre">Distribution</span></code> without defining abstract methods. Deprecated
expectation that <code class="docutils literal notranslate"><span class="pre">PackageMetadata.__getitem__</span></code> will return <code class="docutils literal notranslate"><span class="pre">None</span></code> for
missing keys. In the future, it will raise a <code class="docutils literal notranslate"><span class="pre">KeyError</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103578">gh-103578</a>: Fixed a bug where <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> crashes when reading source file
with different encoding by replacing <a class="reference internal" href="../library/io.html#io.open" title="io.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.open()</span></code></a> with
<a class="reference internal" href="../library/io.html#io.open_code" title="io.open_code"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.open_code()</span></code></a>. The new method would also call into the hook set by
<a class="reference internal" href="../c-api/file.html#c.PyFile_SetOpenCodeHook" title="PyFile_SetOpenCodeHook"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFile_SetOpenCodeHook()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103556">gh-103556</a>: Now creating <a class="reference internal" href="../library/inspect.html#inspect.Signature" title="inspect.Signature"><code class="xref py py-class docutils literal notranslate"><span class="pre">inspect.Signature</span></code></a> objects with
positional-only parameter with a default followed by a
positional-or-keyword parameter without one is impossible.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103559">gh-103559</a>: Update the bundled copy of pip to version 23.1.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103548">gh-103548</a>: Improve performance of <a class="reference internal" href="../library/pathlib.html#pathlib.Path.absolute" title="pathlib.Path.absolute"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.absolute()</span></code></a> and
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.cwd" title="pathlib.Path.cwd"><code class="xref py py-meth docutils literal notranslate"><span class="pre">cwd()</span></code></a> by joining paths only when necessary. Also
improve performance of <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.is_absolute" title="pathlib.PurePath.is_absolute"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.is_absolute()</span></code></a> on Posix by
skipping path parsing and normalization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103538">gh-103538</a>: Remove <code class="docutils literal notranslate"><span class="pre">_tkinter</span></code> module code guarded by definition of the
<code class="docutils literal notranslate"><span class="pre">TK_AQUA</span></code> macro which was only needed for Tk 8.4.7 or earlier and was
never actually defined by any build system or documented for manual use.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103533">gh-103533</a>: Update <a class="reference internal" href="../library/profile.html#module-cProfile" title="cProfile"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cProfile</span></code></a> to use PEP 669 API</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103525">gh-103525</a>: Fix misleading exception message when mixed <code class="docutils literal notranslate"><span class="pre">str</span></code> and
<code class="docutils literal notranslate"><span class="pre">bytes</span></code> arguments are supplied to <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> and
<a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">Path</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103489">gh-103489</a>: Add <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.getconfig" title="sqlite3.Connection.getconfig"><code class="xref py py-meth docutils literal notranslate"><span class="pre">getconfig()</span></code></a> and
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.setconfig" title="sqlite3.Connection.setconfig"><code class="xref py py-meth docutils literal notranslate"><span class="pre">setconfig()</span></code></a> to <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">Connection</span></code></a> to
make configuration changes to a database connection. Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103365">gh-103365</a>: Set default Flag boundary to <code class="docutils literal notranslate"><span class="pre">STRICT</span></code> and fix bitwise
operations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103472">gh-103472</a>: Avoid a potential <a class="reference internal" href="../library/exceptions.html#ResourceWarning" title="ResourceWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ResourceWarning</span></code></a> in
<a class="reference internal" href="../library/http.client.html#http.client.HTTPConnection" title="http.client.HTTPConnection"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.client.HTTPConnection</span></code></a> by closing the proxy / tunnel’s
CONNECT response explicitly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103462">gh-103462</a>: Fixed an issue with using
<a class="reference internal" href="../library/asyncio-protocol.html#asyncio.WriteTransport.writelines" title="asyncio.WriteTransport.writelines"><code class="xref py py-meth docutils literal notranslate"><span class="pre">writelines()</span></code></a> in <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> to send very
large payloads that exceed the amount of data that can be written in one
call to <a class="reference internal" href="../library/socket.html#socket.socket.send" title="socket.socket.send"><code class="xref py py-meth docutils literal notranslate"><span class="pre">socket.socket.send()</span></code></a> or <a class="reference internal" href="../library/socket.html#socket.socket.sendmsg" title="socket.socket.sendmsg"><code class="xref py py-meth docutils literal notranslate"><span class="pre">socket.socket.sendmsg()</span></code></a>,
resulting in the remaining buffer being left unwritten.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103449">gh-103449</a>: Fix a bug in doc string generation in
<a class="reference internal" href="../library/dataclasses.html#dataclasses.dataclass" title="dataclasses.dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.dataclass()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103092">gh-103092</a>: Isolate <code class="xref py py-mod docutils literal notranslate"><span class="pre">_collections</span></code> (apply <span class="target" id="index-132"></span><a class="pep reference external" href="https://peps.python.org/pep-0687/"><strong>PEP 687</strong></a>). Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103357">gh-103357</a>: Added support for <a class="reference internal" href="../library/logging.html#logging.Formatter" title="logging.Formatter"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.Formatter</span></code></a> <code class="docutils literal notranslate"><span class="pre">defaults</span></code>
parameter to <a class="reference internal" href="../library/logging.config.html#logging.config.dictConfig" title="logging.config.dictConfig"><code class="xref py py-func docutils literal notranslate"><span class="pre">logging.config.dictConfig()</span></code></a> and
<a class="reference internal" href="../library/logging.config.html#logging.config.fileConfig" title="logging.config.fileConfig"><code class="xref py py-func docutils literal notranslate"><span class="pre">logging.config.fileConfig()</span></code></a>. Patch by Bar Harel.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103092">gh-103092</a>: Adapt the <a class="reference internal" href="../library/winreg.html#module-winreg" title="winreg: Routines and objects for manipulating the Windows registry. (Windows)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">winreg</span></code></a> extension module to <span class="target" id="index-133"></span><a class="pep reference external" href="https://peps.python.org/pep-0687/"><strong>PEP 687</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74690">gh-74690</a>: The performance of <a class="reference internal" href="../library/functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal notranslate"><span class="pre">isinstance()</span></code></a> checks against
<a class="reference internal" href="../library/typing.html#typing.runtime_checkable" title="typing.runtime_checkable"><code class="xref py py-func docutils literal notranslate"><span class="pre">runtime-checkable</span> <span class="pre">protocols</span></code></a> has been
considerably improved for protocols that only have a few members. To
achieve this improvement, several internal implementation details of the
<a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> module have been refactored, including
<code class="docutils literal notranslate"><span class="pre">typing._ProtocolMeta.__instancecheck__</span></code>,
<code class="docutils literal notranslate"><span class="pre">typing._is_callable_members_only</span></code>, and <code class="docutils literal notranslate"><span class="pre">typing._get_protocol_attrs</span></code>.
Patches by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74690">gh-74690</a>: The members of a runtime-checkable protocol are now considered
“frozen” at runtime as soon as the class has been created. See
<a class="reference internal" href="3.12.html#whatsnew-typing-py312"><span class="std std-ref">“What’s new in Python 3.12”</span></a> for more
details.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103256">gh-103256</a>: Fixed a bug that caused <a class="reference internal" href="../library/hmac.html#module-hmac" title="hmac: Keyed-Hashing for Message Authentication (HMAC) implementation"><code class="xref py py-mod docutils literal notranslate"><span class="pre">hmac</span></code></a> to raise an exception when
the requested hash algorithm was not available in OpenSSL despite being
available separately as part of <code class="docutils literal notranslate"><span class="pre">hashlib</span></code> itself. It now falls back
properly to the built-in. This could happen when, for example, your
OpenSSL does not include SHA3 support and you want to compute
<code class="docutils literal notranslate"><span class="pre">hmac.digest(b'K',</span> <span class="pre">b'M',</span> <span class="pre">'sha3_256')</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102778">gh-102778</a>: Support <code class="docutils literal notranslate"><span class="pre">sys.last_exc</span></code> in <a class="reference internal" href="../library/idle.html#module-idlelib" title="idlelib: Implementation package for the IDLE shell/editor."><code class="xref py py-mod docutils literal notranslate"><span class="pre">idlelib</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103285">gh-103285</a>: Improve performance of <a class="reference internal" href="../library/ast.html#ast.get_source_segment" title="ast.get_source_segment"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.get_source_segment()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103225">gh-103225</a>: Fix a bug in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> when displaying line numbers of
module-level source code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103092">gh-103092</a>: Adapt the <a class="reference internal" href="../library/msvcrt.html#module-msvcrt" title="msvcrt: Miscellaneous useful routines from the MS VC++ runtime. (Windows)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">msvcrt</span></code></a> extension module to <span class="target" id="index-134"></span><a class="pep reference external" href="https://peps.python.org/pep-0687/"><strong>PEP 687</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103092">gh-103092</a>: Adapt the <a class="reference internal" href="../library/winsound.html#module-winsound" title="winsound: Access to the sound-playing machinery for Windows. (Windows)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">winsound</span></code></a> extension module to <span class="target" id="index-135"></span><a class="pep reference external" href="https://peps.python.org/pep-0687/"><strong>PEP 687</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93910">gh-93910</a>: Remove deprecation of enum <code class="docutils literal notranslate"><span class="pre">member.member</span></code> access.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102978">gh-102978</a>: Fixes <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.patch" title="unittest.mock.patch"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.patch()</span></code></a> not enforcing function
signatures for methods decorated with <code class="docutils literal notranslate"><span class="pre">@classmethod</span></code> or
<code class="docutils literal notranslate"><span class="pre">@staticmethod</span></code> when patch is called with <code class="docutils literal notranslate"><span class="pre">autospec=True</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103092">gh-103092</a>: Isolate <code class="xref py py-mod docutils literal notranslate"><span class="pre">_socket</span></code> (apply <span class="target" id="index-136"></span><a class="pep reference external" href="https://peps.python.org/pep-0687/"><strong>PEP 687</strong></a>). Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100479">gh-100479</a>: Add <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.with_segments" title="pathlib.PurePath.with_segments"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.with_segments()</span></code></a>, which creates a
path object from arguments. This method is called whenever a derivative
path is created, such as from <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.parent" title="pathlib.PurePath.parent"><code class="xref py py-attr docutils literal notranslate"><span class="pre">pathlib.PurePath.parent</span></code></a>. Subclasses
may override this method to share information between path objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103220">gh-103220</a>: Fix issue where <a class="reference internal" href="../library/os.path.html#os.path.join" title="os.path.join"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.join()</span></code></a> added a slash when joining
onto an incomplete UNC drive with a trailing slash on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103204">gh-103204</a>: Fixes <a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a> accepting HTTP requests with HTTP
version numbers preceded by ‘+’, or ‘-’, or with digit-separating ‘_’
characters. The length of the version numbers is also constrained.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/75586">gh-75586</a>: Fix various Windows-specific issues with <code class="docutils literal notranslate"><span class="pre">shutil.which</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103193">gh-103193</a>: Improve performance of <a class="reference internal" href="../library/inspect.html#inspect.getattr_static" title="inspect.getattr_static"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getattr_static()</span></code></a>. Patch by
Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103176">gh-103176</a>: <a class="reference internal" href="../library/sys.html#sys._current_exceptions" title="sys._current_exceptions"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._current_exceptions()</span></code></a> now returns a mapping from
thread-id to an exception instance, rather than to a <code class="docutils literal notranslate"><span class="pre">(typ,</span> <span class="pre">exc,</span> <span class="pre">tb)</span></code>
tuple.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103143">gh-103143</a>: Polish the help messages and docstrings of <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103015">gh-103015</a>: Add <em>entrypoint</em> keyword-only parameter to
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.load_extension" title="sqlite3.Connection.load_extension"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.load_extension()</span></code></a>, for overriding the SQLite
extension entry point. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103000">gh-103000</a>: Improve performance of <a class="reference internal" href="../library/dataclasses.html#dataclasses.astuple" title="dataclasses.astuple"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.astuple()</span></code></a> and
<a class="reference internal" href="../library/dataclasses.html#dataclasses.asdict" title="dataclasses.asdict"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.asdict()</span></code></a> in cases where the contents are common Python
types.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102953">gh-102953</a>: The extraction methods in <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a>, and
<a class="reference internal" href="../library/shutil.html#shutil.unpack_archive" title="shutil.unpack_archive"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.unpack_archive()</span></code></a>, have a new a <em>filter</em> argument that allows
limiting tar features than may be surprising or dangerous, such as
creating files outside the destination directory. See
<a class="reference internal" href="../library/tarfile.html#tarfile-extraction-filter"><span class="std std-ref">Extraction filters</span></a> for details.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97696">gh-97696</a>: Implemented an eager task factory in asyncio. When used as a
task factory on an event loop, it performs eager execution of coroutines.
Coroutines that are able to complete synchronously (e.g. return or raise
without blocking) are returned immediately as a finished task, and the
task is never scheduled to the event loop. If the coroutine blocks, the
(pending) task is scheduled and returned.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81079">gh-81079</a>: Add <em>case_sensitive</em> keyword-only argument to
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> and <a class="reference internal" href="../library/pathlib.html#pathlib.Path.rglob" title="pathlib.Path.rglob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rglob()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101819">gh-101819</a>: Isolate the <a class="reference internal" href="../library/io.html#module-io" title="io: Core tools for working with streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">io</span></code></a> extension module by applying <span class="target" id="index-137"></span><a class="pep reference external" href="https://peps.python.org/pep-0687/"><strong>PEP 687</strong></a>.
Patch by Kumar Aditya, Victor Stinner, and Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91896">gh-91896</a>: Deprecate <a class="reference internal" href="../library/collections.abc.html#collections.abc.ByteString" title="collections.abc.ByteString"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.ByteString</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101362">gh-101362</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> construction by omitting the
path anchor from the internal list of path parts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102114">gh-102114</a>: Functions in the <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> module that accept a source code
string as argument now print a more concise traceback when the string
contains a syntax or indentation error.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/62432">gh-62432</a>: The <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> runner will now exit with status code 5 if
no tests were run. It is common for test runner misconfiguration to fail
to find any tests, this should be an error.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/78079">gh-78079</a>: Fix incorrect normalization of UNC device path roots, and
partial UNC share path roots, in <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a>. Pathlib no
longer appends a trailing slash to such paths.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85984">gh-85984</a>: Add <a class="reference internal" href="../library/tty.html#tty.cfmakeraw" title="tty.cfmakeraw"><code class="xref py py-func docutils literal notranslate"><span class="pre">tty.cfmakeraw()</span></code></a> and <a class="reference internal" href="../library/tty.html#tty.cfmakecbreak" title="tty.cfmakecbreak"><code class="xref py py-func docutils literal notranslate"><span class="pre">tty.cfmakecbreak()</span></code></a> to
<a class="reference internal" href="../library/tty.html#module-tty" title="tty: Utility functions that perform common terminal control operations. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tty</span></code></a> and modernize, the behavior of <a class="reference internal" href="../library/tty.html#tty.setraw" title="tty.setraw"><code class="xref py py-func docutils literal notranslate"><span class="pre">tty.setraw()</span></code></a> and
<a class="reference internal" href="../library/tty.html#tty.setcbreak" title="tty.setcbreak"><code class="xref py py-func docutils literal notranslate"><span class="pre">tty.setcbreak()</span></code></a> to use POSIX.1-2017 Chapter 11 “General Terminal
Interface” flag masks by default.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101688">gh-101688</a>: Implement <a class="reference internal" href="../library/types.html#types.get_original_bases" title="types.get_original_bases"><code class="xref py py-func docutils literal notranslate"><span class="pre">types.get_original_bases()</span></code></a> to provide further
introspection for types.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101640">gh-101640</a>: <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser" title="argparse.ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a> now catches errors when
writing messages, such as when <a class="reference internal" href="../library/sys.html#sys.stderr" title="sys.stderr"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.stderr</span></code></a> is <code class="docutils literal notranslate"><span class="pre">None</span></code>. Patch by
Oleg Iarygin.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83861">gh-83861</a>: Fix datetime.astimezone method return value when invoked on a
naive datetime instance that represents local time falling in a timezone
transition gap. PEP 495 requires that instances with fold=1 produce
earlier times than those with fold=0 in this case.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89550">gh-89550</a>: Decrease execution time of some <a class="reference internal" href="../library/gzip.html#module-gzip" title="gzip: Interfaces for gzip compression and decompression using file objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gzip</span></code></a> file writes by 15%
by adding more appropriate buffering.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95299">gh-95299</a>: Remove the bundled setuptools wheel from <code class="docutils literal notranslate"><span class="pre">ensurepip</span></code>, and stop
installing setuptools in environments created by <code class="docutils literal notranslate"><span class="pre">venv</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99353">gh-99353</a>: Respect the <a class="reference internal" href="../library/http.client.html#http.client.HTTPConnection" title="http.client.HTTPConnection"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.client.HTTPConnection</span></code></a> <code class="docutils literal notranslate"><span class="pre">.debuglevel</span></code>
flag in <code class="xref py py-class docutils literal notranslate"><span class="pre">urllib.request.AbstractHTTPHandler</span></code> when its constructor
parameter <code class="docutils literal notranslate"><span class="pre">debuglevel</span></code> is not set. And do the same for <code class="docutils literal notranslate"><span class="pre">*HTTPS*</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98040">gh-98040</a>: Remove the long-deprecated <code class="docutils literal notranslate"><span class="pre">imp</span></code> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97850">gh-97850</a>: Deprecate <code class="xref py py-func docutils literal notranslate"><span class="pre">pkgutil.find_loader()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">pkgutil.get_loader()</span></code> in favor of <a class="reference internal" href="../library/importlib.html#importlib.util.find_spec" title="importlib.util.find_spec"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.util.find_spec()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94473">gh-94473</a>: Flatten arguments in <code class="xref py py-meth docutils literal notranslate"><span class="pre">tkinter.Canvas.coords()</span></code>. It now
accepts not only <code class="docutils literal notranslate"><span class="pre">x1,</span> <span class="pre">y1,</span> <span class="pre">x2,</span> <span class="pre">y2,</span> <span class="pre">...</span></code> and <code class="docutils literal notranslate"><span class="pre">[x1,</span> <span class="pre">y1,</span> <span class="pre">x2,</span> <span class="pre">y2,</span> <span class="pre">...]</span></code>,
but also <code class="docutils literal notranslate"><span class="pre">(x1,</span> <span class="pre">y1),</span> <span class="pre">(x2,</span> <span class="pre">y2),</span> <span class="pre">...</span></code> and <code class="docutils literal notranslate"><span class="pre">[(x1,</span> <span class="pre">y1),</span> <span class="pre">(x2,</span> <span class="pre">y2),</span> <span class="pre">...]</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98040">gh-98040</a>: Remove more deprecated importlib APIs: <code class="docutils literal notranslate"><span class="pre">find_loader()</span></code>,
<code class="docutils literal notranslate"><span class="pre">find_module()</span></code>, <code class="docutils literal notranslate"><span class="pre">importlib.abc.Finder</span></code>, <code class="docutils literal notranslate"><span class="pre">pkgutil.ImpImporter</span></code>,
<code class="docutils literal notranslate"><span class="pre">pkgutil.ImpLoader</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96522">gh-96522</a>: Fix potential deadlock in pty.spawn()</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96534">gh-96534</a>: Support divert(4) added in FreeBSD 14.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87474">gh-87474</a>: Fix potential file descriptor leaks in
<a class="reference internal" href="../library/subprocess.html#subprocess.Popen" title="subprocess.Popen"><code class="xref py py-class docutils literal notranslate"><span class="pre">subprocess.Popen</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94906">gh-94906</a>: Support multiple steps in <a class="reference internal" href="../library/math.html#math.nextafter" title="math.nextafter"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.nextafter()</span></code></a>. Patch by
Shantanu Jain and Matthias Gorgens.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/51574">gh-51574</a>: Make <a class="reference internal" href="../library/tempfile.html#tempfile.mkdtemp" title="tempfile.mkdtemp"><code class="xref py py-func docutils literal notranslate"><span class="pre">tempfile.mkdtemp()</span></code></a> return absolute paths when its
<em>dir</em> parameter is relative.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94518">gh-94518</a>: Convert private <code class="xref py py-meth docutils literal notranslate"><span class="pre">_posixsubprocess.fork_exec()</span></code> to use
Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92184">gh-92184</a>: When creating zip files using <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a>, <code class="docutils literal notranslate"><span class="pre">os.altsep</span></code>, if
not <code class="docutils literal notranslate"><span class="pre">None</span></code>, will always be treated as a path separator even when it is
not <code class="docutils literal notranslate"><span class="pre">/</span></code>. Patch by Carey Metcalfe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46797">bpo-46797</a>: Deprecation warnings are now emitted for <code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Num</span></code>,
<code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Bytes</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Str</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">ast.NameConstant</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Ellipsis</span></code>. These have been documented as deprecated since
Python 3.8, and will be removed in Python 3.14.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44844">bpo-44844</a>: Enables <a class="reference internal" href="../library/webbrowser.html#module-webbrowser" title="webbrowser: Easy-to-use controller for web browsers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">webbrowser</span></code></a> to detect and launch Microsoft Edge
browser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45606">bpo-45606</a>: Fixed the bug in <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> – previously a
dangling symlink would not be found by this method when the pattern is an
exact match, but would be found when the pattern contains a wildcard or
the recursive wildcard (<code class="docutils literal notranslate"><span class="pre">**</span></code>). With this change, a dangling symlink will
be found in both cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23041">bpo-23041</a>: Add <a class="reference internal" href="../library/csv.html#csv.QUOTE_STRINGS" title="csv.QUOTE_STRINGS"><code class="xref py py-const docutils literal notranslate"><span class="pre">QUOTE_STRINGS</span></code></a> and <a class="reference internal" href="../library/csv.html#csv.QUOTE_NOTNULL" title="csv.QUOTE_NOTNULL"><code class="xref py py-const docutils literal notranslate"><span class="pre">QUOTE_NOTNULL</span></code></a>
to the suite of <a class="reference internal" href="../library/csv.html#module-csv" title="csv: Write and read tabular data to and from delimited files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code></a> module quoting styles.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24964">bpo-24964</a>: Added
<a class="reference internal" href="../library/http.client.html#http.client.HTTPConnection.get_proxy_response_headers" title="http.client.HTTPConnection.get_proxy_response_headers"><code class="xref py py-meth docutils literal notranslate"><span class="pre">http.client.HTTPConnection.get_proxy_response_headers()</span></code></a> that
provides access to the HTTP headers on a proxy server response to the
<code class="docutils literal notranslate"><span class="pre">CONNECT</span></code> request.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17258">bpo-17258</a>: <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> now supports stronger HMAC algorithms
for inter-process connection authentication rather than only HMAC-MD5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39744">bpo-39744</a>: Make <a class="reference internal" href="../library/asyncio-subprocess.html#asyncio.subprocess.Process.communicate" title="asyncio.subprocess.Process.communicate"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.subprocess.Process.communicate()</span></code></a> close the
subprocess’s stdin even when called with <code class="docutils literal notranslate"><span class="pre">input=None</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22708">bpo-22708</a>: http.client CONNECT method tunnel improvements: Use HTTP 1.1
protocol; send a matching Host: header with CONNECT, if one is not
provided; convert IDN domain names to Punycode. Patch by Michael Handler.</p></li>
</ul>
</section>
<section id="id185">
<h3>Documentation<a class="headerlink" href="#id185" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/67056">gh-67056</a>: Document that the effect of registering or unregistering an
<a class="reference internal" href="../library/atexit.html#module-atexit" title="atexit: Register and execute cleanup functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">atexit</span></code></a> cleanup function from within a registered cleanup function
is undefined.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103629">gh-103629</a>: Mention the new way of typing <code class="docutils literal notranslate"><span class="pre">**kwargs</span></code> with <code class="docutils literal notranslate"><span class="pre">Unpack</span></code> and
<code class="docutils literal notranslate"><span class="pre">TypedDict</span></code> introduced in <span class="target" id="index-138"></span><a class="pep reference external" href="https://peps.python.org/pep-0692/"><strong>PEP 692</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/48241">gh-48241</a>: Clarifying documentation about the url parameter to
urllib.request.urlopen and urllib.request.Request needing to be encoded
properly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86094">gh-86094</a>: Add support for Unicode Path Extra Field in ZipFile. Patch by
Yeojin Kim and Andrea Giudiceandrea</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99202">gh-99202</a>: Fix extension type from documentation for compiling in C++20
mode</p></li>
</ul>
</section>
<section id="id186">
<h3>Tests<a class="headerlink" href="#id186" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104494">gh-104494</a>: Update <code class="docutils literal notranslate"><span class="pre">test_pack_configure_in</span></code> and
<code class="docutils literal notranslate"><span class="pre">test_place_configure_in</span></code> for changes to error message formatting in Tk
8.7.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104461">gh-104461</a>: Run test_configure_screen on X11 only, since the <code class="docutils literal notranslate"><span class="pre">DISPLAY</span></code>
environment variable and <code class="docutils literal notranslate"><span class="pre">-screen</span></code> option for toplevels are not useful
on Tk for Win32 or Aqua.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86275">gh-86275</a>: Added property-based tests to the <a class="reference internal" href="../library/zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a> tests, along
with stubs for the <code class="docutils literal notranslate"><span class="pre">hypothesis</span></code> interface. (Patch by Paul Ganssle)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103329">gh-103329</a>: Regression tests for the behaviour of
<code class="docutils literal notranslate"><span class="pre">unittest.mock.PropertyMock</span></code> were added.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102795">gh-102795</a>: fix use of poll in test_epoll’s test_control_and_wait</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/75729">gh-75729</a>: Fix the <a class="reference internal" href="../library/os.html#os.spawnl" title="os.spawnl"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.spawn*</span></code></a> tests failing on Windows
when the working directory or interpreter path contains spaces.</p></li>
</ul>
</section>
<section id="id187">
<h3>Build<a class="headerlink" href="#id187" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101282">gh-101282</a>: BOLT optimization is now applied to the libpython shared
library if building a shared library. BOLT instrumentation and application
settings can now be influenced via the <code class="docutils literal notranslate"><span class="pre">BOLT_INSTRUMENT_FLAGS</span></code> and
<code class="docutils literal notranslate"><span class="pre">BOLT_APPLY_FLAGS</span></code> configure variables.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99017">gh-99017</a>: <code class="docutils literal notranslate"><span class="pre">PYTHON_FOR_REGEN</span></code> now require Python 3.10 or newer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104490">gh-104490</a>: Define <code class="docutils literal notranslate"><span class="pre">.PHONY</span></code> / virtual make targets consistently and
properly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104106">gh-104106</a>: Add gcc fallback of mkfifoat/mknodat for macOS. Patch by
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103532">gh-103532</a>: The <code class="docutils literal notranslate"><span class="pre">TKINTER_PROTECT_LOADTK</span></code> macro is no longer defined or
used in the <code class="docutils literal notranslate"><span class="pre">_tkinter</span></code> module. It was previously only defined when
building against Tk 8.4.13 and older, but Tk older than 8.5.12 has been
unsupported since <a class="reference external" href="https://github.com/python/cpython/issues/91152">gh-91152</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99069">gh-99069</a>: Extended workaround defining <code class="docutils literal notranslate"><span class="pre">static_assert</span></code> when missing from
the libc headers to all clang and gcc builds. In particular, this fixes
building on macOS <= 10.10.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100220">gh-100220</a>: Changed the default value of the <code class="docutils literal notranslate"><span class="pre">SHELL</span></code> Makefile variable
from <code class="docutils literal notranslate"><span class="pre">/bin/sh</span></code> to <code class="docutils literal notranslate"><span class="pre">/bin/sh</span> <span class="pre">-e</span></code> to ensure that complex recipes
correctly fail after an error. Previously, <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> could fail to
install some files and yet return a successful result.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90656">gh-90656</a>: Add platform triplets for 64-bit LoongArch:</p>
<ul class="simple">
<li><p>loongarch64-linux-gnusf</p></li>
<li><p>loongarch64-linux-gnuf32</p></li>
<li><p>loongarch64-linux-gnu</p></li>
</ul>
<p>Patch by Zhang Na.</p>
</li>
</ul>
</section>
<section id="id188">
<h3>Windows<a class="headerlink" href="#id188" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104623">gh-104623</a>: Update Windows installer to use SQLite 3.42.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82814">gh-82814</a>: Fix a potential <code class="docutils literal notranslate"><span class="pre">[Errno</span> <span class="pre">13]</span> <span class="pre">Permission</span> <span class="pre">denied</span></code> when using
<a class="reference internal" href="../library/shutil.html#shutil.copystat" title="shutil.copystat"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copystat()</span></code></a> within Windows Subsystem for Linux (WSL) on a
mounted filesystem by adding <code class="docutils literal notranslate"><span class="pre">errno.EACCES</span></code> to the list of ignored
errors within the internal implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103088">gh-103088</a>: Fix virtual environment <code class="file docutils literal notranslate"><span class="pre">activate</span></code> script having
incorrect line endings for Cygwin.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103088">gh-103088</a>: Fixes venvs not working in bash on Windows across different
disks</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102997">gh-102997</a>: Update Windows installer to use SQLite 3.41.2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88013">gh-88013</a>: Fixed a bug where <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> was raised when calling
<code class="xref py py-func docutils literal notranslate"><span class="pre">ntpath.realpath()</span></code> with a bytes parameter in some cases.</p></li>
</ul>
</section>
<section id="id189">
<h3>macOS<a class="headerlink" href="#id189" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99834">gh-99834</a>: Update macOS installer to Tcl/Tk 8.6.13.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104623">gh-104623</a>: Update macOS installer to SQLite 3.42.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103545">gh-103545</a>: Add <code class="docutils literal notranslate"><span class="pre">os.PRIO_DARWIN_THREAD</span></code>, <code class="docutils literal notranslate"><span class="pre">os.PRIO_DARWIN_PROCESS</span></code>,
<code class="docutils literal notranslate"><span class="pre">os.PRIO_DARWIN_BG</span></code> and <code class="docutils literal notranslate"><span class="pre">os.PRIO_DARWIN_NONUI</span></code>. These can be used with
<code class="docutils literal notranslate"><span class="pre">os.setpriority</span></code> to run the process at a lower priority and make use of
the efficiency cores on Apple Silicon systems.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104180">gh-104180</a>: Support reading SOCKS proxy configuration from macOS System
Configuration. Patch by Sam Schott.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/60436">gh-60436</a>: update curses textbox to additionally handle backspace using the
<code class="docutils literal notranslate"><span class="pre">curses.ascii.DEL</span></code> key press.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102997">gh-102997</a>: Update macOS installer to SQLite 3.41.2.</p></li>
</ul>
</section>
<section id="id190">
<h3>IDLE<a class="headerlink" href="#id190" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104499">gh-104499</a>: Fix completions for Tk Aqua 8.7 (currently blank).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104496">gh-104496</a>: About prints both tcl and tk versions if different (expected
someday).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88496">gh-88496</a>: Fix IDLE test hang on macOS.</p></li>
</ul>
</section>
<section id="id191">
<h3>Tools/Demos<a class="headerlink" href="#id191" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104389">gh-104389</a>: Argument Clinic C converters now accept the <code class="docutils literal notranslate"><span class="pre">unused</span></code> keyword,
for wrapping a parameter with <a class="reference internal" href="../c-api/intro.html#c.Py_UNUSED" title="Py_UNUSED"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_UNUSED</span></code></a>. Patch by Erlend E.
Aasland.</p></li>
</ul>
</section>
<section id="id192">
<h3>C API<a class="headerlink" href="#id192" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101291">gh-101291</a>: Added unstable C API for extracting the value of “compact”
integers: <a class="reference internal" href="../c-api/long.html#c.PyUnstable_Long_IsCompact" title="PyUnstable_Long_IsCompact"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_Long_IsCompact()</span></code></a> and
<a class="reference internal" href="../c-api/long.html#c.PyUnstable_Long_CompactValue" title="PyUnstable_Long_CompactValue"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_Long_CompactValue()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/104109">gh-104109</a>: We’ve added <code class="docutils literal notranslate"><span class="pre">Py_NewInterpreterFromConfig()</span></code> and
<code class="docutils literal notranslate"><span class="pre">PyInterpreterConfig</span></code> to the public C-API (but not the stable ABI; not
yet at least). The new function may be used to create a new interpreter
with various features configured. The function was added to support PEP
684 (per-interpreter GIL).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103968">gh-103968</a>: <a class="reference internal" href="../c-api/type.html#c.PyType_FromSpec" title="PyType_FromSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpec()</span></code></a> and its variants now allow creating
classes whose metaclass overrides <a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_new" title="PyTypeObject.tp_new"><code class="xref c c-member docutils literal notranslate"><span class="pre">tp_new</span></code></a>. The
<code class="docutils literal notranslate"><span class="pre">tp_new</span></code> is ignored. This behavior is deprecated and will be disallowed
in 3.14+. The new <a class="reference internal" href="../c-api/type.html#c.PyType_FromMetaclass" title="PyType_FromMetaclass"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromMetaclass()</span></code></a> already disallows it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103743">gh-103743</a>: Add <a class="reference internal" href="../c-api/gcsupport.html#c.PyUnstable_Object_GC_NewWithExtraData" title="PyUnstable_Object_GC_NewWithExtraData"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_Object_GC_NewWithExtraData()</span></code></a> function
that can be used to allocate additional memory after an object for data
not managed by Python.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103295">gh-103295</a>: Introduced <a class="reference internal" href="../c-api/perfmaps.html#c.PyUnstable_WritePerfMapEntry" title="PyUnstable_WritePerfMapEntry"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_WritePerfMapEntry()</span></code></a>,
<a class="reference internal" href="../c-api/perfmaps.html#c.PyUnstable_PerfMapState_Init" title="PyUnstable_PerfMapState_Init"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_PerfMapState_Init()</span></code></a> and
<a class="reference internal" href="../c-api/perfmaps.html#c.PyUnstable_PerfMapState_Fini" title="PyUnstable_PerfMapState_Fini"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnstable_PerfMapState_Fini()</span></code></a>. These allow extension modules (JIT
compilers in particular) to write to perf-map files in a thread safe
manner. The <a class="reference internal" href="../howto/perf_profiling.html"><span class="doc">Python support for the Linux perf profiler</span></a> also uses these APIs to write
entries in the perf-map file.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103509">gh-103509</a>: Added C API for extending types whose instance memory layout is
opaque: <a class="reference internal" href="../c-api/type.html#c.PyType_Spec.basicsize" title="PyType_Spec.basicsize"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyType_Spec.basicsize</span></code></a> can now be zero or negative,
<a class="reference internal" href="../c-api/object.html#c.PyObject_GetTypeData" title="PyObject_GetTypeData"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GetTypeData()</span></code></a> can be used to get subclass-specific data,
and <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_ITEMS_AT_END" title="Py_TPFLAGS_ITEMS_AT_END"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_ITEMS_AT_END</span></code></a> can be used to safely extend
variable-size objects. See <span class="target" id="index-139"></span><a class="pep reference external" href="https://peps.python.org/pep-0697/"><strong>PEP 697</strong></a> for details.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103091">gh-103091</a>: Add a new C-API function to eagerly assign a version tag to a
PyTypeObject: <code class="docutils literal notranslate"><span class="pre">PyUnstable_Type_AssignVersionTag()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101408">gh-101408</a>: <a class="reference internal" href="../c-api/gcsupport.html#c.PyObject_GC_Resize" title="PyObject_GC_Resize"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyObject_GC_Resize</span></code></a> should calculate preheader size
if needed. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98836">gh-98836</a>: Add support of more formatting options (left aligning, octals,
uppercase hexadecimals, <code class="xref c c-type docutils literal notranslate"><span class="pre">intmax_t</span></code>, <code class="xref c c-type docutils literal notranslate"><span class="pre">ptrdiff_t</span></code>,
<code class="xref c c-type docutils literal notranslate"><span class="pre">wchar_t</span></code> C strings, variable width and precision) in
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_FromFormat" title="PyUnicode_FromFormat"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_FromFormat()</span></code></a> and <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_FromFormatV" title="PyUnicode_FromFormatV"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_FromFormatV()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96803">gh-96803</a>: Add unstable C-API functions to get the code object, lasti and
line number from the internal <code class="docutils literal notranslate"><span class="pre">_PyInterpreterFrame</span></code> in the limited API.
The functions are:</p>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">PyCodeObject</span> <span class="pre">*</span> <span class="pre">PyUnstable_InterpreterFrame_GetCode(struct</span> <span class="pre">_PyInterpreterFrame</span> <span class="pre">*frame)</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">int</span> <span class="pre">PyUnstable_InterpreterFrame_GetLasti(struct</span> <span class="pre">_PyInterpreterFrame</span> <span class="pre">*frame)</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">int</span> <span class="pre">PyUnstable_InterpreterFrame_GetLine(struct</span> <span class="pre">_PyInterpreterFrame</span> <span class="pre">*frame)</span></code></p></li>
</ul>
</li>
</ul>
</section>
</section>
<section id="python-3-12-0-alpha-7">
<h2>Python 3.12.0 alpha 7<a class="headerlink" href="#python-3-12-0-alpha-7" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2023-04-04</em></p>
<section id="id193">
<h3>Core and Builtins<a class="headerlink" href="#id193" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102192">gh-102192</a>: Deprecated <code class="docutils literal notranslate"><span class="pre">_PyErr_ChainExceptions</span></code> in favour of
<code class="docutils literal notranslate"><span class="pre">_PyErr_ChainExceptions1</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89987">gh-89987</a>: Reduce the number of inline <a class="reference internal" href="../library/dis.html#opcode-CACHE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CACHE</span></code></a> entries for
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">BINARY_SUBSCR</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102859">gh-102859</a>: Removed <code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_IF_FALSE_OR_POP</span></code> and
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_IF_TRUE_OR_POP</span></code> instructions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101975">gh-101975</a>: Fixed <code class="docutils literal notranslate"><span class="pre">stacktop</span></code> value on tracing entries to avoid corruption
on garbage collection.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102778">gh-102778</a>: Add <a class="reference internal" href="../library/sys.html#sys.last_exc" title="sys.last_exc"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.last_exc</span></code></a> and deprecate <a class="reference internal" href="../library/sys.html#sys.last_type" title="sys.last_type"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.last_type</span></code></a>,
<a class="reference internal" href="../library/sys.html#sys.last_value" title="sys.last_value"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.last_value</span></code></a> and <a class="reference internal" href="../library/sys.html#sys.last_traceback" title="sys.last_traceback"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.last_traceback</span></code></a>, which hold the same
information in its legacy form.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100982">gh-100982</a>: Replace all occurrences of <code class="docutils literal notranslate"><span class="pre">COMPARE_AND_BRANCH</span></code> with
<a class="reference internal" href="../library/dis.html#opcode-COMPARE_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">COMPARE_OP</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102701">gh-102701</a>: Fix overflow when creating very large dict.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102755">gh-102755</a>: Add <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_DisplayException" title="PyErr_DisplayException"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_DisplayException()</span></code></a> which takes just an
exception instance, to replace the legacy <code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_Display()</span></code> which
takes the <code class="docutils literal notranslate"><span class="pre">(typ,</span> <span class="pre">exc,</span> <span class="pre">tb)</span></code> triplet.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102594">gh-102594</a>: Add note to exception raised in <code class="docutils literal notranslate"><span class="pre">PyErr_SetObject</span></code> when
normalization fails.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90997">gh-90997</a>: Shrink the number of inline <a class="reference internal" href="../library/dis.html#opcode-CACHE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CACHE</span></code></a> entries used by
<a class="reference internal" href="../library/dis.html#opcode-LOAD_GLOBAL"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_GLOBAL</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102491">gh-102491</a>: Improve import time of <code class="docutils literal notranslate"><span class="pre">platform</span></code> by removing IronPython
version parsing. The IronPython version parsing was not functional (see
<a class="reference external" href="https://github.com/IronLanguages/ironpython3/issues/1667">https://github.com/IronLanguages/ironpython3/issues/1667</a>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101291">gh-101291</a>: Rearrage bits in first field (after header) of PyLongObject. *
Bits 0 and 1: 1 - sign. I.e. 0 for positive numbers, 1 for zero and 2 for
negative numbers. * Bit 2 reserved (probably for the immortal bit) * Bits
3+ the unsigned size.</p>
<p>This makes a few operations slightly more efficient, and will enable a
more compact and faster 2s-complement representation of most ints in
future.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102397">gh-102397</a>: Fix segfault from race condition in signal handling during
garbage collection. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102406">gh-102406</a>: <a class="reference internal" href="../library/codecs.html#module-codecs" title="codecs: Encode and decode data and streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">codecs</span></code></a> encoding/decoding errors now get the context
information (which operation and which codecs) attached as <span class="target" id="index-140"></span><a class="pep reference external" href="https://peps.python.org/pep-0678/"><strong>PEP 678</strong></a>
notes instead of through chaining a new instance of the exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102281">gh-102281</a>: Fix potential nullptr dereference and use of uninitialized
memory in fileutils. Patch by Max Bachmann.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102300">gh-102300</a>: Reuse operands with refcount of 1 in float specializations of
BINARY_OP.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102213">gh-102213</a>: Fix performance loss when accessing an object’s attributes with
<code class="docutils literal notranslate"><span class="pre">__getattr__</span></code> defined.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102255">gh-102255</a>: Improve build support for the Xbox. Patch by Max Bachmann.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102027">gh-102027</a>: Fix SSE2 and SSE3 detection in <code class="docutils literal notranslate"><span class="pre">_blake2</span></code> internal module.
Patch by Max Bachmann.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101865">gh-101865</a>: Deprecate <code class="docutils literal notranslate"><span class="pre">co_lnotab</span></code> in code objects, schedule it for
removal in Python 3.14</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Adapt <code class="xref py py-mod docutils literal notranslate"><span class="pre">_pickle</span></code> to <span class="target" id="index-141"></span><a class="pep reference external" href="https://peps.python.org/pep-0687/"><strong>PEP 687</strong></a>. Patch by Mohamed Koubaa
and Erlend Aasland.</p></li>
</ul>
</section>
<section id="id194">
<h3>Library<a class="headerlink" href="#id194" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103085">gh-103085</a>: Pure python <a class="reference internal" href="../library/locale.html#locale.getencoding" title="locale.getencoding"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.getencoding()</span></code></a> will not warn
deprecation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103068">gh-103068</a>: It’s no longer possible to register conditional breakpoints in
<a class="reference internal" href="../library/pdb.html#pdb.Pdb" title="pdb.Pdb"><code class="xref py py-class docutils literal notranslate"><span class="pre">Pdb</span></code></a> that raise <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>. Patch by Tian Gao.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102549">gh-102549</a>: Don’t ignore exceptions in member type creation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103056">gh-103056</a>: Ensure final <code class="docutils literal notranslate"><span class="pre">_generate_next_value_</span></code> is a <code class="docutils literal notranslate"><span class="pre">staticmethod</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103046">gh-103046</a>: Display current line label correctly in <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> when
<code class="docutils literal notranslate"><span class="pre">show_caches</span></code> is False and <code class="docutils literal notranslate"><span class="pre">lasti</span></code> points to a CACHE entry.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102433">gh-102433</a>: <a class="reference internal" href="../library/functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal notranslate"><span class="pre">isinstance()</span></code></a> checks against <a class="reference internal" href="../library/typing.html#typing.runtime_checkable" title="typing.runtime_checkable"><code class="xref py py-func docutils literal notranslate"><span class="pre">runtime-checkable</span>
<span class="pre">protocols</span></code></a> now use
<a class="reference internal" href="../library/inspect.html#inspect.getattr_static" title="inspect.getattr_static"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getattr_static()</span></code></a> rather than <a class="reference internal" href="../library/functions.html#hasattr" title="hasattr"><code class="xref py py-func docutils literal notranslate"><span class="pre">hasattr()</span></code></a> to lookup
whether attributes exist. This means that descriptors and
<a class="reference internal" href="../reference/datamodel.html#object.__getattr__" title="object.__getattr__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__getattr__()</span></code></a> methods are no longer unexpectedly evaluated
during <code class="docutils literal notranslate"><span class="pre">isinstance()</span></code> checks against runtime-checkable protocols.
However, it may also mean that some objects which used to be considered
instances of a runtime-checkable protocol may no longer be considered
instances of that protocol on Python 3.12+, and vice versa. Most users are
unlikely to be affected by this change. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103023">gh-103023</a>: It’s no longer possible to register expressions to display in
<a class="reference internal" href="../library/pdb.html#pdb.Pdb" title="pdb.Pdb"><code class="xref py py-class docutils literal notranslate"><span class="pre">Pdb</span></code></a> that raise <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>. Patch by Tian Gao.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102947">gh-102947</a>: Improve traceback when <a class="reference internal" href="../library/dataclasses.html#dataclasses.fields" title="dataclasses.fields"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.fields()</span></code></a> is called on
a non-dataclass. Patch by Alex Waygood</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102780">gh-102780</a>: The <a class="reference internal" href="../library/asyncio-task.html#asyncio.Timeout" title="asyncio.Timeout"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Timeout</span></code></a> context manager now works reliably
even when performing cleanup due to task cancellation. Previously it
could raise a <a class="reference internal" href="../library/asyncio-exceptions.html#asyncio.CancelledError" title="asyncio.CancelledError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">CancelledError</span></code></a> instead of an
<a class="reference internal" href="../library/asyncio-exceptions.html#asyncio.TimeoutError" title="asyncio.TimeoutError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TimeoutError</span></code></a> in such cases.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102871">gh-102871</a>: Remove support for obsolete browsers from <a class="reference internal" href="../library/webbrowser.html#module-webbrowser" title="webbrowser: Easy-to-use controller for web browsers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">webbrowser</span></code></a>.
Removed browsers include Grail, Mosaic, Netscape, Galeon, Skipstone,
Iceape, Firebird, and Firefox versions 35 and below.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102839">gh-102839</a>: Improve performance of <a class="reference internal" href="../library/math.html#math.log" title="math.log"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.log()</span></code></a> arguments handling by
removing the argument clinic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102828">gh-102828</a>: Add the <code class="docutils literal notranslate"><span class="pre">onexc</span></code> arg to <a class="reference internal" href="../library/shutil.html#shutil.rmtree" title="shutil.rmtree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code></a>, which is like
<code class="docutils literal notranslate"><span class="pre">onerror</span></code> but expects an exception instance rather than an exc_info
tuple. Deprecate <code class="docutils literal notranslate"><span class="pre">onerror</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88965">gh-88965</a>: typing: Fix a bug relating to substitution in custom classes
generic over a <a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-class docutils literal notranslate"><span class="pre">ParamSpec</span></code></a>. Previously, if the
<code class="docutils literal notranslate"><span class="pre">ParamSpec</span></code> was substituted with a parameters list that itself contained
a <a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypeVar</span></code></a>, the <code class="docutils literal notranslate"><span class="pre">TypeVar</span></code> in the parameters list could
not be subsequently substituted. This is now fixed.</p>
<p>Patch by Nikita Sobolev.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/76846">gh-76846</a>: Fix issue where <code class="docutils literal notranslate"><span class="pre">__new__()</span></code> and <code class="docutils literal notranslate"><span class="pre">__init__()</span></code> methods of
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> and <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">Path</span></code></a> subclasses were not
called in some circumstances.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/78530">gh-78530</a>: <a class="reference internal" href="../library/asyncio-task.html#asyncio.wait" title="asyncio.wait"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.wait()</span></code></a> now accepts generators yielding tasks.
Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102748">gh-102748</a>: <a class="reference internal" href="../library/asyncio-task.html#asyncio.iscoroutine" title="asyncio.iscoroutine"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.iscoroutine()</span></code></a> now returns <code class="docutils literal notranslate"><span class="pre">False</span></code> for
generators as <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> does not support legacy generator-based
coroutines. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102670">gh-102670</a>: Optimized fmean(), correlation(), covariance(), and
linear_regression() using the new math.sumprod() function.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102615">gh-102615</a>: Typing: Improve the <code class="docutils literal notranslate"><span class="pre">repr</span></code> of generic aliases for classes
generic over a <a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-class docutils literal notranslate"><span class="pre">ParamSpec</span></code></a>. (Use square brackets to
represent a parameter list.)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100112">gh-100112</a>: <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.get_coro" title="asyncio.Task.get_coro"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Task.get_coro()</span></code></a> now always returns a coroutine
when wrapping an awaitable object. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102578">gh-102578</a>: Speed up setting or deleting mutable attributes on
non-dataclass subclasses of frozen dataclasses. Due to the implementation
of <code class="docutils literal notranslate"><span class="pre">__setattr__</span></code> and <code class="docutils literal notranslate"><span class="pre">__delattr__</span></code> for frozen dataclasses, this
previously had a time complexity of <em>O</em>(<em>n</em>). It now has a time
complexity of <em>O</em>(1).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102519">gh-102519</a>: Add <a class="reference internal" href="../library/os.html#os.listdrives" title="os.listdrives"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.listdrives()</span></code></a>, <a class="reference internal" href="../library/os.html#os.listvolumes" title="os.listvolumes"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.listvolumes()</span></code></a> and
<a class="reference internal" href="../library/os.html#os.listmounts" title="os.listmounts"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.listmounts()</span></code></a> functions on Windows for enumerating drives, volumes
and mount points</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74468">gh-74468</a>: Attribute name of the extracted <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> file object now
holds filename of itself rather than of the archive it is contained in.
Patch by Oleg Iarygin.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102378">gh-102378</a>: Private helper method
<code class="docutils literal notranslate"><span class="pre">inspect._signature_strip_non_python_syntax</span></code> will no longer strip <code class="docutils literal notranslate"><span class="pre">/</span></code>
from the input string.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79940">gh-79940</a>: Add <a class="reference internal" href="../library/inspect.html#inspect.getasyncgenstate" title="inspect.getasyncgenstate"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getasyncgenstate()</span></code></a> and
<a class="reference internal" href="../library/inspect.html#inspect.getasyncgenlocals" title="inspect.getasyncgenlocals"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getasyncgenlocals()</span></code></a>. Patch by Thomas Krennwallner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102103">gh-102103</a>: Add <code class="docutils literal notranslate"><span class="pre">module</span></code> argument to <a class="reference internal" href="../library/dataclasses.html#dataclasses.make_dataclass" title="dataclasses.make_dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.make_dataclass()</span></code></a>
and make classes produced by it pickleable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102069">gh-102069</a>: Fix <code class="docutils literal notranslate"><span class="pre">__weakref__</span></code> descriptor generation for custom
dataclasses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102038">gh-102038</a>: Skip a <code class="docutils literal notranslate"><span class="pre">stat</span></code> in <a class="reference internal" href="../library/site.html#module-site" title="site: Module responsible for site-specific configuration."><code class="xref py py-mod docutils literal notranslate"><span class="pre">site</span></code></a> if we have already found a
<code class="docutils literal notranslate"><span class="pre">pyvenv.cfg</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98886">gh-98886</a>: Fix issues when defining dataclasses that have fields with
specific underscore names that aren’t clearly reserved by
<a class="reference internal" href="../library/dataclasses.html#module-dataclasses" title="dataclasses: Generate special methods on user-defined classes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dataclasses</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101673">gh-101673</a>: Fix a <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> bug where <code class="docutils literal notranslate"><span class="pre">ll</span></code> clears the changes to local
variables.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101313">gh-101313</a>: Added -h and –help arguments to the webbrowser CLI</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100372">gh-100372</a>: <a class="reference internal" href="../library/ssl.html#ssl.SSLContext.load_verify_locations" title="ssl.SSLContext.load_verify_locations"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.SSLContext.load_verify_locations()</span></code></a> no longer
incorrectly accepts some cases of trailing data when parsing DER.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89727">gh-89727</a>: Fix pathlib.Path.walk RecursionError on deep directory trees by
rewriting it using iteration instead of recursion.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100131">gh-100131</a>: Added an optional <code class="docutils literal notranslate"><span class="pre">delete</span></code> keyword argument to
<a class="reference internal" href="../library/tempfile.html#tempfile.TemporaryDirectory" title="tempfile.TemporaryDirectory"><code class="xref py py-class docutils literal notranslate"><span class="pre">tempfile.TemporaryDirectory</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/48330">gh-48330</a>: Added <code class="docutils literal notranslate"><span class="pre">--durations</span></code> command line option, showing the N slowest
test cases. <a class="reference internal" href="../library/unittest.html#unittest.TextTestRunner" title="unittest.TextTestRunner"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TextTestRunner</span></code></a> and
<a class="reference internal" href="../library/unittest.html#unittest.TextTestResult" title="unittest.TextTestResult"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TextTestResult</span></code></a> constructors accept a new <em>durations</em>
keyword argument. Subclasses should take this into account or accept
<code class="docutils literal notranslate"><span class="pre">**kwargs</span></code>. Added <a class="reference internal" href="../library/unittest.html#unittest.TestResult.addDuration" title="unittest.TestResult.addDuration"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestResult.addDuration()</span></code></a> method and
<a class="reference internal" href="../library/unittest.html#unittest.TestResult.collectedDurations" title="unittest.TestResult.collectedDurations"><code class="xref py py-attr docutils literal notranslate"><span class="pre">unittest.TestResult.collectedDurations</span></code></a> attribute.</p>
<p>(Contributed by Giampaolo Rodola)</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98169">gh-98169</a>: Fix <a class="reference internal" href="../library/dataclasses.html#dataclasses.astuple" title="dataclasses.astuple"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.astuple()</span></code></a> crash when
<a class="reference internal" href="../library/collections.html#collections.defaultdict" title="collections.defaultdict"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.defaultdict</span></code></a> is present in the attributes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96931">gh-96931</a>: Fix incorrect results from <a class="reference internal" href="../library/ssl.html#ssl.SSLSocket.shared_ciphers" title="ssl.SSLSocket.shared_ciphers"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.SSLSocket.shared_ciphers()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95495">gh-95495</a>: When built against OpenSSL 3.0, the <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> module had a bug
where it reported unauthenticated EOFs (i.e. without close_notify) as a
clean TLS-level EOF. It now raises <a class="reference internal" href="../library/ssl.html#ssl.SSLEOFError" title="ssl.SSLEOFError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SSLEOFError</span></code></a>, matching the
behavior in previous versions of OpenSSL. The
<a class="reference internal" href="../library/ssl.html#ssl.SSLContext.options" title="ssl.SSLContext.options"><code class="xref py py-attr docutils literal notranslate"><span class="pre">options</span></code></a> attribute on <a class="reference internal" href="../library/ssl.html#ssl.SSLContext" title="ssl.SSLContext"><code class="xref py py-class docutils literal notranslate"><span class="pre">SSLContext</span></code></a> also
no longer includes <a class="reference internal" href="../library/ssl.html#ssl.OP_IGNORE_UNEXPECTED_EOF" title="ssl.OP_IGNORE_UNEXPECTED_EOF"><code class="xref py py-const docutils literal notranslate"><span class="pre">OP_IGNORE_UNEXPECTED_EOF</span></code></a> by default. This
option may be set to specify the previous OpenSSL 3.0 behavior.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94684">gh-94684</a>: Now <a class="reference internal" href="../library/uuid.html#uuid.uuid3" title="uuid.uuid3"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid.uuid3()</span></code></a> and <a class="reference internal" href="../library/uuid.html#uuid.uuid5" title="uuid.uuid5"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid.uuid5()</span></code></a> functions support
<a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> objects as their <em>name</em> argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94440">gh-94440</a>: Fix a <code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures.process</span></code> bug where
<code class="docutils literal notranslate"><span class="pre">ProcessPoolExecutor</span></code> shutdown could hang after a future has been
quickly submitted and canceled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/72346">gh-72346</a>: Added deprecation warning to <em>isdst</em> parameter of
<a class="reference internal" href="../library/email.utils.html#email.utils.localtime" title="email.utils.localtime"><code class="xref py py-func docutils literal notranslate"><span class="pre">email.utils.localtime()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36305">bpo-36305</a>: Fix handling of Windows filenames that resemble drives, such as
<code class="docutils literal notranslate"><span class="pre">./a:b</span></code>, in <a class="reference internal" href="../library/pathlib.html#module-pathlib" title="pathlib: Object-oriented filesystem paths"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pathlib</span></code></a>.</p></li>
</ul>
</section>
<section id="id195">
<h3>Documentation<a class="headerlink" href="#id195" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/103112">gh-103112</a>: Add docstring to <a class="reference internal" href="../library/http.client.html#http.client.HTTPResponse.read" title="http.client.HTTPResponse.read"><code class="xref py py-meth docutils literal notranslate"><span class="pre">http.client.HTTPResponse.read()</span></code></a> to fix
<code class="docutils literal notranslate"><span class="pre">pydoc</span></code> output.</p></li>
</ul>
</section>
<section id="id196">
<h3>Tests<a class="headerlink" href="#id196" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102980">gh-102980</a>: Improve test coverage on <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102537">gh-102537</a>: Adjust the error handling strategy in
<code class="docutils literal notranslate"><span class="pre">test_zoneinfo.TzPathTest.python_tzpath_context</span></code>. Patch by Paul Ganssle.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101377">gh-101377</a>: Improved test_locale_calendar_formatweekday of calendar.</p></li>
</ul>
</section>
<section id="id197">
<h3>Build<a class="headerlink" href="#id197" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102973">gh-102973</a>: Add a dev container (along with accompanying Dockerfile) for
development purposes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102711">gh-102711</a>: Fix <code class="docutils literal notranslate"><span class="pre">-Wstrict-prototypes</span></code> compiler warnings.</p></li>
</ul>
</section>
<section id="id198">
<h3>Windows<a class="headerlink" href="#id198" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102690">gh-102690</a>: Update <a class="reference internal" href="../library/webbrowser.html#module-webbrowser" title="webbrowser: Easy-to-use controller for web browsers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">webbrowser</span></code></a> to fall back to Microsoft Edge instead
of Internet Explorer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99726">gh-99726</a>: Improves correctness of stat results for Windows, and uses
faster API when available</p></li>
</ul>
</section>
<section id="id199">
<h3>Tools/Demos<a class="headerlink" href="#id199" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102809">gh-102809</a>: <code class="docutils literal notranslate"><span class="pre">Misc/gdbinit</span></code> was removed.</p></li>
</ul>
</section>
<section id="id200">
<h3>C API<a class="headerlink" href="#id200" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102013">gh-102013</a>: Add a new (unstable) C-API function for iterating over GC’able
objects using a callback: <code class="docutils literal notranslate"><span class="pre">PyUnstable_VisitObjects</span></code>.</p></li>
</ul>
</section>
</section>
<section id="python-3-12-0-alpha-6">
<h2>Python 3.12.0 alpha 6<a class="headerlink" href="#python-3-12-0-alpha-6" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2023-03-07</em></p>
<section id="id201">
<h3>Security<a class="headerlink" href="#id201" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99108">gh-99108</a>: Replace builtin hashlib implementations of MD5 and SHA1 with
verified ones from the HACL* project.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101727">gh-101727</a>: Updated the OpenSSL version used in Windows and macOS binary
release builds to 1.1.1t to address <span class="target" id="index-142"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2023-0286"><strong>CVE 2023-0286</strong></a>, <span class="target" id="index-143"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2022-4303"><strong>CVE 2022-4303</strong></a>,
and <span class="target" id="index-144"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2022-4303"><strong>CVE 2022-4303</strong></a> per <a class="reference external" href="https://openssl-library.org/news/secadv/20230207.txt">the OpenSSL 2023-02-07 security advisory</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99108">gh-99108</a>: Replace the builtin <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> implementations of SHA2-384
and SHA2-512 originally from LibTomCrypt with formally verified,
side-channel resistant code from the <a class="reference external" href="https://github.com/hacl-star/hacl-star/">HACL*</a> project. The builtins remain a
fallback only used when OpenSSL does not provide them.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101283">gh-101283</a>: <a class="reference internal" href="../library/subprocess.html#subprocess.Popen" title="subprocess.Popen"><code class="xref py py-class docutils literal notranslate"><span class="pre">subprocess.Popen</span></code></a> now uses a safer approach to find
<code class="docutils literal notranslate"><span class="pre">cmd.exe</span></code> when launching with <code class="docutils literal notranslate"><span class="pre">shell=True</span></code>. Patch by Eryk Sun, based
on a patch by Oleg Iarygin.</p></li>
</ul>
</section>
<section id="id202">
<h3>Core and Builtins<a class="headerlink" href="#id202" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102493">gh-102493</a>: Fix regression in semantics of normalisation in
<code class="docutils literal notranslate"><span class="pre">PyErr_SetObject</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102416">gh-102416</a>: Do not memoize incorrectly automatically generated loop rules
in the parser. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102356">gh-102356</a>: Fix a bug that caused a crash when deallocating deeply nested
filter objects. Patch by Marta Gómez Macías.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102336">gh-102336</a>: Cleanup Windows 7 specific special handling. Patch by Max
Bachmann.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102250">gh-102250</a>: Fixed a segfault occurring when the interpreter calls a
<code class="docutils literal notranslate"><span class="pre">__bool__</span></code> method that raises.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102126">gh-102126</a>: Fix deadlock at shutdown when clearing thread states if any
finalizer tries to acquire the runtime head lock. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102027">gh-102027</a>: Use <code class="docutils literal notranslate"><span class="pre">GetCurrentProcessId</span></code> on Windows when <code class="docutils literal notranslate"><span class="pre">getpid</span></code> is
unavailable. Patch by Max Bachmann.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102056">gh-102056</a>: Fix error handling bugs in interpreter’s exception printing
code, which could cause a crash on infinite recursion.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100982">gh-100982</a>: Restrict the scope of the <code class="xref std std-opcode docutils literal notranslate"><span class="pre">FOR_ITER_RANGE</span></code> instruction
to the scope of the original <a class="reference internal" href="../library/dis.html#opcode-FOR_ITER"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">FOR_ITER</span></code></a> instruction, to allow
instrumentation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101967">gh-101967</a>: Fix possible segfault in <code class="docutils literal notranslate"><span class="pre">positional_only_passed_as_keyword</span></code>
function, when new list created.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101952">gh-101952</a>: Fix possible segfault in <code class="docutils literal notranslate"><span class="pre">BUILD_SET</span></code> opcode, when new set
created.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74895">gh-74895</a>: <a class="reference internal" href="../library/socket.html#socket.getaddrinfo" title="socket.getaddrinfo"><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket.getaddrinfo</span></code></a> no longer raises
<a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-class docutils literal notranslate"><span class="pre">OverflowError</span></code></a> for <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> <strong>port</strong> values outside of the C
long range. Out of range values are left up to the underlying string based
C library API to report. A <a class="reference internal" href="../library/socket.html#socket.gaierror" title="socket.gaierror"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket.gaierror</span></code></a> <code class="docutils literal notranslate"><span class="pre">SAI_SERVICE</span></code> may
occur instead, or no error at all as not all platform C libraries generate
an error.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101799">gh-101799</a>: Add <a class="reference internal" href="../library/dis.html#opcode-CALL_INTRINSIC_2"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL_INTRINSIC_2</span></code></a> and use it instead of
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">PREP_RERAISE_STAR</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101857">gh-101857</a>: Fix xattr support detection on Linux systems by widening the
check to linux, not just glibc. This fixes support for musl.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84783">gh-84783</a>: Make the slice object hashable. Patch by Will Bradshaw and
Furkan Onder.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87849">gh-87849</a>: Change the <code class="docutils literal notranslate"><span class="pre">SEND</span></code> instruction to leave the receiver on the
stack. This allows the specialized form of <code class="docutils literal notranslate"><span class="pre">SEND</span></code> to skip the chain of C
calls and jump directly to the <code class="docutils literal notranslate"><span class="pre">RESUME</span></code> in the generator or coroutine.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101765">gh-101765</a>: Fix SystemError / segmentation fault in iter <code class="docutils literal notranslate"><span class="pre">__reduce__</span></code>
when internal access of <code class="docutils literal notranslate"><span class="pre">builtins.__dict__</span></code> keys mutates the iter
object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101430">gh-101430</a>: Update <a class="reference internal" href="../library/tracemalloc.html#module-tracemalloc" title="tracemalloc: Trace memory allocations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tracemalloc</span></code></a> to handle presize of object properly.
Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101696">gh-101696</a>: Invalidate type version tag in <code class="docutils literal notranslate"><span class="pre">_PyStaticType_Dealloc</span></code> for
static types, avoiding bug where a false cache hit could crash the
interpreter. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101632">gh-101632</a>: Adds a new <code class="xref std std-opcode docutils literal notranslate"><span class="pre">RETURN_CONST</span></code> instruction.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100719">gh-100719</a>: Remove gi_code field from generator (and coroutine and async
generator) objects as it is redundant. The frame already includes a
reference to the code object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98627">gh-98627</a>: When an interpreter is configured to check (and only then),
importing an extension module will now fail when the extension does not
support multiple interpreters (i.e. doesn’t implement PEP 489 multi-phase
init). This does not apply to the main interpreter, nor to subinterpreters
created with <code class="docutils literal notranslate"><span class="pre">Py_NewInterpreter()</span></code>.</p></li>
</ul>
</section>
<section id="id203">
<h3>Library<a class="headerlink" href="#id203" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102302">gh-102302</a>: Micro-optimise hashing of <a class="reference internal" href="../library/inspect.html#inspect.Parameter" title="inspect.Parameter"><code class="xref py py-class docutils literal notranslate"><span class="pre">inspect.Parameter</span></code></a>, reducing
the time it takes to hash an instance by around 40%.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101979">gh-101979</a>: Fix a bug where parentheses in the <code class="docutils literal notranslate"><span class="pre">metavar</span></code> argument to
<a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser.add_argument" title="argparse.ArgumentParser.add_argument"><code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.ArgumentParser.add_argument()</span></code></a> were dropped. Patch by Yeojin
Kim.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91038">gh-91038</a>: <a class="reference internal" href="../library/platform.html#platform.platform" title="platform.platform"><code class="xref py py-meth docutils literal notranslate"><span class="pre">platform.platform()</span></code></a> now has boolean default arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81652">gh-81652</a>: Add <a class="reference internal" href="../library/mmap.html#mmap.MAP_ALIGNED_SUPER" title="mmap.MAP_ALIGNED_SUPER"><code class="xref py py-const docutils literal notranslate"><span class="pre">mmap.MAP_ALIGNED_SUPER</span></code></a> FreeBSD and
<a class="reference internal" href="../library/mmap.html#mmap.MAP_CONCEAL" title="mmap.MAP_CONCEAL"><code class="xref py py-const docutils literal notranslate"><span class="pre">mmap.MAP_CONCEAL</span></code></a> OpenBSD constants to <a class="reference internal" href="../library/mmap.html#module-mmap" title="mmap: Interface to memory-mapped files for Unix and Windows."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mmap</span></code></a>. Patch by
Yeojin Kim.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102179">gh-102179</a>: Fix <a class="reference internal" href="../library/os.html#os.dup2" title="os.dup2"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.dup2()</span></code></a> error message for negative fds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101961">gh-101961</a>: For the binary mode, <code class="xref py py-func docutils literal notranslate"><span class="pre">fileinput.hookcompressed()</span></code> doesn’t
set the <code class="docutils literal notranslate"><span class="pre">encoding</span></code> value even if the value is <code class="docutils literal notranslate"><span class="pre">None</span></code>. Patch by Gihwan
Kim.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101936">gh-101936</a>: The default value of <code class="docutils literal notranslate"><span class="pre">fp</span></code> becomes <a class="reference internal" href="../library/io.html#io.BytesIO" title="io.BytesIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.BytesIO</span></code></a> if
<a class="reference internal" href="../library/urllib.error.html#urllib.error.HTTPError" title="urllib.error.HTTPError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">HTTPError</span></code></a> is initialized without a designated <code class="docutils literal notranslate"><span class="pre">fp</span></code>
parameter. Patch by Long Vo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101566">gh-101566</a>: In zipfile, sync Path with <a class="reference external" href="https://zipp.readthedocs.io/en/latest/history.html#v3-14-0">zipp 3.14</a>, including
fix for extractall on the underlying zipfile after being wrapped in
<code class="docutils literal notranslate"><span class="pre">Path</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97930">gh-97930</a>: Apply changes from <a class="reference external" href="https://importlib-resources.readthedocs.io/en/latest/history.html#v5-12-0">importlib_resources 5.12</a>,
including fix for <code class="docutils literal notranslate"><span class="pre">MultiplexedPath</span></code> to support directories in multiple
namespaces (python/importlib_resources#265).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101997">gh-101997</a>: Upgrade pip wheel bundled with ensurepip (pip 23.0.1)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99108">gh-99108</a>: The built-in extension modules for <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> SHA2
algorithms, used when OpenSSL does not provide them, now live in a single
internal <code class="docutils literal notranslate"><span class="pre">_sha2</span></code> module instead of separate <code class="docutils literal notranslate"><span class="pre">_sha256</span></code> and <code class="docutils literal notranslate"><span class="pre">_sha512</span></code>
modules.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101892">gh-101892</a>: Callable iterators no longer raise <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-class docutils literal notranslate"><span class="pre">SystemError</span></code></a> when
the callable object exhausts the iterator but forgets to either return a
sentinel value or raise <a class="reference internal" href="../library/exceptions.html#StopIteration" title="StopIteration"><code class="xref py py-class docutils literal notranslate"><span class="pre">StopIteration</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87634">gh-87634</a>: Remove locking behavior from <a class="reference internal" href="../library/functools.html#functools.cached_property" title="functools.cached_property"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.cached_property()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97786">gh-97786</a>: Fix potential undefined behaviour in corner cases of
floating-point-to-time conversions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101517">gh-101517</a>: Fixed bug where <a class="reference internal" href="../library/bdb.html#module-bdb" title="bdb: Debugger framework."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bdb</span></code></a> looks up the source line with
<a class="reference internal" href="../library/linecache.html#module-linecache" title="linecache: Provides random access to individual lines from text files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">linecache</span></code></a> with a <code class="docutils literal notranslate"><span class="pre">lineno=None</span></code>, which causes it to fail with an
unhandled exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101773">gh-101773</a>: Optimize <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a> for small components. The
private argument <code class="docutils literal notranslate"><span class="pre">_normalize</span></code> of the <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a>
constructor has been removed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101693">gh-101693</a>: In <a class="reference internal" href="../library/sqlite3.html#sqlite3.Cursor.execute" title="sqlite3.Cursor.execute"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Cursor.execute()</span></code></a>, <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> is
now emitted when <a class="reference internal" href="../library/sqlite3.html#sqlite3-placeholders"><span class="std std-ref">named placeholders</span></a> are used
together with parameters supplied as a <a class="reference internal" href="../glossary.html#term-sequence"><span class="xref std std-term">sequence</span></a> instead of as a
<a class="reference internal" href="../library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a>. Starting from Python 3.14, using named placeholders with
parameters supplied as a sequence will raise a
<a class="reference internal" href="../library/sqlite3.html#sqlite3.ProgrammingError" title="sqlite3.ProgrammingError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ProgrammingError</span></code></a>. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101446">gh-101446</a>: Change repr of <a class="reference internal" href="../library/collections.html#collections.OrderedDict" title="collections.OrderedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.OrderedDict</span></code></a> to use regular
dictionary formatting instead of pairs of keys and values.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101362">gh-101362</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> construction by handling
arguments more uniformly. When a <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> argument is
supplied, we use its string representation rather than joining its parts
with <a class="reference internal" href="../library/os.path.html#os.path.join" title="os.path.join"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.join()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101362">gh-101362</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> construction by calling
<a class="reference internal" href="../library/os.path.html#os.path.join" title="os.path.join"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.join()</span></code></a> only when two or more arguments are given.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101362">gh-101362</a>: Speed up <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> construction by running the path
flavour compatibility check only when pathlib is imported.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85984">gh-85984</a>: Refactored the implementation of <a class="reference internal" href="../library/pty.html#pty.fork" title="pty.fork"><code class="xref py py-func docutils literal notranslate"><span class="pre">pty.fork()</span></code></a> to use
<a class="reference internal" href="../library/os.html#os.login_tty" title="os.login_tty"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.login_tty()</span></code></a>.</p>
<p>A <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> is now raised by <code class="docutils literal notranslate"><span class="pre">pty.master_open()</span></code> and
<code class="docutils literal notranslate"><span class="pre">pty.slave_open()</span></code>. They were undocumented and deprecated long long ago
in the docstring in favor of <a class="reference internal" href="../library/pty.html#pty.openpty" title="pty.openpty"><code class="xref py py-func docutils literal notranslate"><span class="pre">pty.openpty()</span></code></a>.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101561">gh-101561</a>: Add a new decorator <a class="reference internal" href="../library/typing.html#typing.override" title="typing.override"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.override()</span></code></a>. See <span class="target" id="index-145"></span><a class="pep reference external" href="https://peps.python.org/pep-0698/"><strong>PEP 698</strong></a> for
details. Patch by Steven Troxler.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/63301">gh-63301</a>: Set exit code when <a class="reference internal" href="../library/tabnanny.html#module-tabnanny" title="tabnanny: Tool for detecting white space related problems in Python source files in a directory tree."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tabnanny</span></code></a> CLI exits on error.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101360">gh-101360</a>: Fix anchor matching in <code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PureWindowsPath.match()</span></code>.
Path and pattern anchors are now matched with <a class="reference internal" href="../library/fnmatch.html#module-fnmatch" title="fnmatch: Unix shell style filename pattern matching."><code class="xref py py-mod docutils literal notranslate"><span class="pre">fnmatch</span></code></a>, just like
other path parts. This allows patterns such as <code class="docutils literal notranslate"><span class="pre">"*:/Users/*"</span></code> to be
matched.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101277">gh-101277</a>: Remove global state from <a class="reference internal" href="../library/itertools.html#module-itertools" title="itertools: Functions creating iterators for efficient looping."><code class="xref py py-mod docutils literal notranslate"><span class="pre">itertools</span></code></a> module (<span class="target" id="index-146"></span><a class="pep reference external" href="https://peps.python.org/pep-0687/"><strong>PEP 687</strong></a>).
Patches by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100809">gh-100809</a>: Fix handling of drive-relative paths (like ‘C:’ and ‘C:foo’) in
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.absolute" title="pathlib.Path.absolute"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.absolute()</span></code></a>. This method now uses the OS API to retrieve
the correct current working directory for the drive.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99138">gh-99138</a>: Apply <span class="target" id="index-147"></span><a class="pep reference external" href="https://peps.python.org/pep-0687/"><strong>PEP 687</strong></a> to <a class="reference internal" href="../library/zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a>. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96764">gh-96764</a>: <a class="reference internal" href="../library/asyncio-task.html#asyncio.wait_for" title="asyncio.wait_for"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.wait_for()</span></code></a> now uses <a class="reference internal" href="../library/asyncio-task.html#asyncio.timeout" title="asyncio.timeout"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.timeout()</span></code></a> as its
underlying implementation. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88233">gh-88233</a>: Correctly preserve “extra” fields in <code class="docutils literal notranslate"><span class="pre">zipfile</span></code> regardless of
their ordering relative to a zip64 “extra.”</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23224">bpo-23224</a>: Fix segfaults when creating <a class="reference internal" href="../library/lzma.html#lzma.LZMADecompressor" title="lzma.LZMADecompressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">lzma.LZMADecompressor</span></code></a> and
<a class="reference internal" href="../library/bz2.html#bz2.BZ2Decompressor" title="bz2.BZ2Decompressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">bz2.BZ2Decompressor</span></code></a> objects without calling <code class="docutils literal notranslate"><span class="pre">__init__()</span></code>, and
fix leakage of locks and internal buffers when calling the <code class="docutils literal notranslate"><span class="pre">__init__()</span></code>
methods of <a class="reference internal" href="../library/lzma.html#lzma.LZMADecompressor" title="lzma.LZMADecompressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">lzma.LZMADecompressor</span></code></a>, <a class="reference internal" href="../library/lzma.html#lzma.LZMACompressor" title="lzma.LZMACompressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">lzma.LZMACompressor</span></code></a>,
<a class="reference internal" href="../library/bz2.html#bz2.BZ2Compressor" title="bz2.BZ2Compressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">bz2.BZ2Compressor</span></code></a>, and <a class="reference internal" href="../library/bz2.html#bz2.BZ2Decompressor" title="bz2.BZ2Decompressor"><code class="xref py py-class docutils literal notranslate"><span class="pre">bz2.BZ2Decompressor</span></code></a> objects
multiple times.</p></li>
</ul>
</section>
<section id="id204">
<h3>Documentation<a class="headerlink" href="#id204" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85417">gh-85417</a>: Update <a class="reference internal" href="../library/cmath.html#module-cmath" title="cmath: Mathematical functions for complex numbers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">cmath</span></code></a> documentation to clarify behaviour on branch
cuts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97725">gh-97725</a>: Fix <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.print_stack" title="asyncio.Task.print_stack"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Task.print_stack()</span></code></a> description for
<code class="docutils literal notranslate"><span class="pre">file=None</span></code>. Patch by Oleg Iarygin.</p></li>
</ul>
</section>
<section id="id205">
<h3>Tests<a class="headerlink" href="#id205" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102019">gh-102019</a>: Fix deadlock on shutdown if <code class="docutils literal notranslate"><span class="pre">test_current_{exception,frames}</span></code>
fails. Patch by Jacob Bower.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85984">gh-85984</a>: Utilize new “winsize” functions from termios in pty tests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89792">gh-89792</a>: <code class="docutils literal notranslate"><span class="pre">test_tools</span></code> now copies up to 10x less source data to a
temporary directory during the <code class="docutils literal notranslate"><span class="pre">freeze</span></code> test by ignoring git metadata
and other artifacts. It also limits its python build parallelism based on
os.cpu_count instead of hard coding it as 8 cores.</p></li>
</ul>
</section>
<section id="id206">
<h3>Build<a class="headerlink" href="#id206" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99942">gh-99942</a>: On Android, in a static build, python-config in embed mode no
longer incorrectly reports a library to link to.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99942">gh-99942</a>: On Android, python.pc now correctly reports the library to link
to, the same as python-config.sh.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100221">gh-100221</a>: Fix creating install directories in <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">sharedinstall</span></code> if
they exist outside <code class="docutils literal notranslate"><span class="pre">DESTDIR</span></code> already.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96821">gh-96821</a>: Explicitly mark C extension modules that need defined signed
integer overflow, and add a configure option
<a class="reference internal" href="../using/configure.html#cmdoption-with-strict-overflow"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-strict-overflow</span></code></a>. Patch by Matthias Görgens and Shantanu
Jain.</p></li>
</ul>
</section>
<section id="id207">
<h3>Windows<a class="headerlink" href="#id207" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/102344">gh-102344</a>: Implement <code class="docutils literal notranslate"><span class="pre">winreg.QueryValue</span></code> using <code class="docutils literal notranslate"><span class="pre">QueryValueEx</span></code> and
<code class="docutils literal notranslate"><span class="pre">winreg.SetValue</span></code> using <code class="docutils literal notranslate"><span class="pre">SetValueEx</span></code>. Patch by Max Bachmann.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101881">gh-101881</a>: Handle read and write operations on non-blocking pipes properly
on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101881">gh-101881</a>: Add support for the os.get_blocking() and os.set_blocking()
functions on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101849">gh-101849</a>: Ensures installer will correctly upgrade existing <code class="docutils literal notranslate"><span class="pre">py.exe</span></code>
launcher installs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101763">gh-101763</a>: Updates copy of libffi bundled with Windows installs to 3.4.4.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101759">gh-101759</a>: Update Windows installer to SQLite 3.40.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101614">gh-101614</a>: Correctly handle extensions built against debug binaries that
reference <code class="docutils literal notranslate"><span class="pre">python3_d.dll</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101196">gh-101196</a>: The functions <code class="docutils literal notranslate"><span class="pre">os.path.isdir</span></code>, <code class="docutils literal notranslate"><span class="pre">os.path.isfile</span></code>,
<code class="docutils literal notranslate"><span class="pre">os.path.islink</span></code> and <code class="docutils literal notranslate"><span class="pre">os.path.exists</span></code> are now 13% to 28% faster on
Windows, by making fewer Win32 API calls.</p></li>
</ul>
</section>
<section id="id208">
<h3>macOS<a class="headerlink" href="#id208" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101759">gh-101759</a>: Update macOS installer to SQLite 3.40.1.</p></li>
</ul>
</section>
<section id="id209">
<h3>C API<a class="headerlink" href="#id209" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101907">gh-101907</a>: Removes use of non-standard C++ extension in public header
files.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99293">gh-99293</a>: Document that the Py_TPFLAGS_VALID_VERSION_TAG is an internal
feature, should not be used, and will be removed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101578">gh-101578</a>: Add <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_GetRaisedException" title="PyErr_GetRaisedException"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_GetRaisedException()</span></code></a> and
<a class="reference internal" href="../c-api/exceptions.html#c.PyErr_SetRaisedException" title="PyErr_SetRaisedException"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_SetRaisedException()</span></code></a> for saving and restoring the current
exception. These functions return and accept a single exception object,
rather than the triple arguments of the now-deprecated
<a class="reference internal" href="../c-api/exceptions.html#c.PyErr_Fetch" title="PyErr_Fetch"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_Fetch()</span></code></a> and <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_Restore" title="PyErr_Restore"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_Restore()</span></code></a>. This is less error
prone and a bit more efficient.</p>
<p>Add <a class="reference internal" href="../c-api/exceptions.html#c.PyException_GetArgs" title="PyException_GetArgs"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyException_GetArgs()</span></code></a> and <a class="reference internal" href="../c-api/exceptions.html#c.PyException_SetArgs" title="PyException_SetArgs"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyException_SetArgs()</span></code></a> as
convenience functions for retrieving and modifying the
<a class="reference internal" href="../library/exceptions.html#BaseException.args" title="BaseException.args"><code class="xref py py-attr docutils literal notranslate"><span class="pre">args</span></code></a> passed to the exception’s constructor.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91744">gh-91744</a>: Introduced the <em>Unstable C API tier</em>, marking APi that is
allowed to change in minor releases without a deprecation period. See
<span class="target" id="index-148"></span><a class="pep reference external" href="https://peps.python.org/pep-0689/"><strong>PEP 689</strong></a> for details.</p></li>
</ul>
</section>
</section>
<section id="python-3-12-0-alpha-5">
<h2>Python 3.12.0 alpha 5<a class="headerlink" href="#python-3-12-0-alpha-5" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2023-02-07</em></p>
<section id="id210">
<h3>Security<a class="headerlink" href="#id210" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99108">gh-99108</a>: Replace the builtin <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> implementations of SHA2-224
and SHA2-256 originally from LibTomCrypt with formally verified,
side-channel resistant code from the <a class="reference external" href="https://github.com/hacl-star/hacl-star/">HACL*</a> project. The builtins remain a
fallback only used when OpenSSL does not provide them.</p></li>
</ul>
</section>
<section id="id212">
<h3>Core and Builtins<a class="headerlink" href="#id212" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92173">gh-92173</a>: Fix the <code class="docutils literal notranslate"><span class="pre">defs</span></code> and <code class="docutils literal notranslate"><span class="pre">kwdefs</span></code> arguments to
<a class="reference internal" href="../c-api/veryhigh.html#c.PyEval_EvalCodeEx" title="PyEval_EvalCodeEx"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_EvalCodeEx()</span></code></a> and a reference leak in that function.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/59956">gh-59956</a>: The GILState API is now partially compatible with
subinterpreters. Previously, <code class="docutils literal notranslate"><span class="pre">PyThreadState_GET()</span></code> and
<code class="docutils literal notranslate"><span class="pre">PyGILState_GetThisThreadState()</span></code> would get out of sync, causing
inconsistent behavior and crashes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101400">gh-101400</a>: Fix wrong lineno in exception message on <a class="reference internal" href="../reference/simple_stmts.html#continue"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">continue</span></code></a> or
<a class="reference internal" href="../reference/simple_stmts.html#break"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">break</span></code></a> which are not in a loop. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101372">gh-101372</a>: Fix <a class="reference internal" href="../library/unicodedata.html#unicodedata.is_normalized" title="unicodedata.is_normalized"><code class="xref py py-func docutils literal notranslate"><span class="pre">is_normalized()</span></code></a> to properly handle the
UCD 3.2.0 cases. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101266">gh-101266</a>: Fix <a class="reference internal" href="../library/sys.html#sys.getsizeof" title="sys.getsizeof"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.getsizeof()</span></code></a> reporting for <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>
subclasses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101291">gh-101291</a>: Refactor the <code class="docutils literal notranslate"><span class="pre">PyLongObject</span></code> struct into a normal Python
object header and a <code class="docutils literal notranslate"><span class="pre">PyLongValue</span></code> struct.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101046">gh-101046</a>: Fix a possible memory leak in the parser when raising
<a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a>. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101037">gh-101037</a>: Fix potential memory underallocation issue for instances of
<a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> subclasses with value zero.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100762">gh-100762</a>: Record the (virtual) exception block depth in the oparg of
<a class="reference internal" href="../library/dis.html#opcode-YIELD_VALUE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">YIELD_VALUE</span></code></a>. Use this to avoid the expensive <code class="docutils literal notranslate"><span class="pre">throw()</span></code> when
closing generators (and coroutines) that can be closed trivially.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100982">gh-100982</a>: Adds a new <code class="xref std std-opcode docutils literal notranslate"><span class="pre">COMPARE_AND_BRANCH</span></code> instruction. This is a
bit more efficient when performing a comparison immediately followed by a
branch, and restores the design intent of PEP 659 that specializations are
local to a single instruction.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100942">gh-100942</a>: Fixed segfault in property.getter/setter/deleter that occurred
when a property subclass overrode the <code class="docutils literal notranslate"><span class="pre">__new__</span></code> method to return a
non-property instance.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100923">gh-100923</a>: Remove the <code class="docutils literal notranslate"><span class="pre">mask</span></code> cache entry for the <a class="reference internal" href="../library/dis.html#opcode-COMPARE_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">COMPARE_OP</span></code></a>
instruction and embed the mask into the oparg.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100892">gh-100892</a>: Fix race while iterating over thread states in clearing
<a class="reference internal" href="../library/threading.html#threading.local" title="threading.local"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.local</span></code></a>. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91351">gh-91351</a>: Fix a case where re-entrant imports could corrupt the import
deadlock detection code and cause a <a class="reference internal" href="../library/exceptions.html#KeyError" title="KeyError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyError</span></code></a> to be raised out of
<code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib/_bootstrap</span></code>. In addition to the straightforward cases,
this could also happen when garbage collection leads to a warning being
emitted – as happens when it collects an open socket or file)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100726">gh-100726</a>: Optimize construction of <code class="docutils literal notranslate"><span class="pre">range</span></code> object for medium size
integers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100712">gh-100712</a>: Added option to build cpython with specialization disabled, by
setting <code class="docutils literal notranslate"><span class="pre">ENABLE_SPECIALIZATION=False</span></code> in <code class="xref py py-mod docutils literal notranslate"><span class="pre">opcode</span></code>, followed by
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-all</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32780">bpo-32780</a>: Inter-field padding is now inserted into the PEP3118 format
strings obtained from <a class="reference internal" href="../library/ctypes.html#ctypes.Structure" title="ctypes.Structure"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.Structure</span></code></a> objects, reflecting their
true representation in memory.</p></li>
</ul>
</section>
<section id="id213">
<h3>Library<a class="headerlink" href="#id213" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101541">gh-101541</a>: [Enum] - fix psuedo-flag creation</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101570">gh-101570</a>: Upgrade pip wheel bundled with ensurepip (pip 23.0)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101323">gh-101323</a>: Fix a bug where errors where not thrown by
zlib._ZlibDecompressor if encountered during decompressing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101317">gh-101317</a>: Add <em>ssl_shutdown_timeout</em> parameter for
<a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamWriter.start_tls" title="asyncio.StreamWriter.start_tls"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.StreamWriter.start_tls()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101326">gh-101326</a>: Fix regression when passing <code class="docutils literal notranslate"><span class="pre">None</span></code> as second or third
argument to <code class="docutils literal notranslate"><span class="pre">FutureIter.throw</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92123">gh-92123</a>: Adapt the <code class="docutils literal notranslate"><span class="pre">_elementtree</span></code> extension module to multi-phase init
(<span class="target" id="index-149"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>). Patches by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100795">gh-100795</a>: Avoid potential unexpected <code class="docutils literal notranslate"><span class="pre">freeaddrinfo</span></code> call (double free)
in <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> when when a libc <code class="docutils literal notranslate"><span class="pre">getaddrinfo()</span></code> implementation leaves
garbage in an output pointer when returning an error. Original patch by
Sergey G. Brester.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101143">gh-101143</a>: Remove unused references to <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.TimerHandle" title="asyncio.TimerHandle"><code class="xref py py-class docutils literal notranslate"><span class="pre">TimerHandle</span></code></a> in
<code class="docutils literal notranslate"><span class="pre">asyncio.base_events.BaseEventLoop._add_callback</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101144">gh-101144</a>: Make <a class="reference internal" href="../library/zipfile.html#zipfile.Path.open" title="zipfile.Path.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">zipfile.Path.open()</span></code></a> and
<a class="reference internal" href="../library/zipfile.html#zipfile.Path.read_text" title="zipfile.Path.read_text"><code class="xref py py-func docutils literal notranslate"><span class="pre">zipfile.Path.read_text()</span></code></a> also accept <code class="docutils literal notranslate"><span class="pre">encoding</span></code> as a positional
argument. This was the behavior in Python 3.9 and earlier. 3.10
introduced a regression where supplying it as a positional argument would
lead to a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94518">gh-94518</a>: Group-related variables of <code class="docutils literal notranslate"><span class="pre">_posixsubprocess</span></code> module are
renamed to stress that supplementary group affinity is added to a fork,
not replace the inherited ones. Patch by Oleg Iarygin.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101015">gh-101015</a>: Fix <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> on <code class="docutils literal notranslate"><span class="pre">'*tuple[...]'</span></code> and
<code class="docutils literal notranslate"><span class="pre">*tuple[...]</span></code>. It must not drop the <code class="docutils literal notranslate"><span class="pre">Unpack</span></code> part.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101000">gh-101000</a>: Add <a class="reference internal" href="../library/os.path.html#os.path.splitroot" title="os.path.splitroot"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.splitroot()</span></code></a>, which splits a path into a
3-item tuple <code class="docutils literal notranslate"><span class="pre">(drive,</span> <span class="pre">root,</span> <span class="pre">tail)</span></code>. This new function is used by
<a class="reference internal" href="../library/pathlib.html#module-pathlib" title="pathlib: Object-oriented filesystem paths"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pathlib</span></code></a> to improve the performance of path construction by up to a
third.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100573">gh-100573</a>: Fix a Windows <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> bug with named pipes where a
client doing <code class="docutils literal notranslate"><span class="pre">os.stat()</span></code> on the pipe would cause an error in the server
that disabled serving future requests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/39615">gh-39615</a>: <a class="reference internal" href="../library/warnings.html#warnings.warn" title="warnings.warn"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.warn()</span></code></a> now has the ability to skip stack frames
based on code filename prefix rather than only a numeric <code class="docutils literal notranslate"><span class="pre">stacklevel</span></code>
via the new <code class="docutils literal notranslate"><span class="pre">skip_file_prefixes</span></code> keyword argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100750">gh-100750</a>: pass encoding kwarg to subprocess in platform</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100160">gh-100160</a>: Emit a deprecation warning in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.DefaultEventLoopPolicy.get_event_loop()</span></code> if there is no
current event loop set and it decides to create one.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96290">gh-96290</a>: Fix handling of partial and invalid UNC drives in
<code class="docutils literal notranslate"><span class="pre">ntpath.splitdrive()</span></code>, and in <code class="docutils literal notranslate"><span class="pre">ntpath.normpath()</span></code> on non-Windows
systems. Paths such as ‘\server’ and ‘\’ are now considered by
<code class="docutils literal notranslate"><span class="pre">splitdrive()</span></code> to contain only a drive, and consequently are not
modified by <code class="docutils literal notranslate"><span class="pre">normpath()</span></code> on non-Windows systems. The behaviour of
<code class="docutils literal notranslate"><span class="pre">normpath()</span></code> on Windows systems is unaffected, as native OS APIs are
used. Patch by Eryk Sun, with contributions by Barney Gale.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99952">gh-99952</a>: Fix a reference undercounting issue in <a class="reference internal" href="../library/ctypes.html#ctypes.Structure" title="ctypes.Structure"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.Structure</span></code></a>
with <code class="docutils literal notranslate"><span class="pre">from_param()</span></code> results larger than a C pointer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/67790">gh-67790</a>: Add float-style formatting support for
<a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a> instances.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99266">gh-99266</a>: Preserve more detailed error messages in <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86682">gh-86682</a>: Ensure runtime-created collections have the correct module name
using the newly added (internal) <a class="reference internal" href="../library/sys.html#sys._getframemodulename" title="sys._getframemodulename"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys._getframemodulename()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88597">gh-88597</a>: <a class="reference internal" href="../library/uuid.html#module-uuid" title="uuid: UUID objects (universally unique identifiers) according to RFC 9562"><code class="xref py py-mod docutils literal notranslate"><span class="pre">uuid</span></code></a> now has a command line interface. Try <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span>
<span class="pre">uuid</span> <span class="pre">-h</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/60580">gh-60580</a>: <code class="xref py py-data docutils literal notranslate"><span class="pre">ctypes.wintypes.BYTE</span></code> definition changed from
<a class="reference internal" href="../library/ctypes.html#ctypes.c_byte" title="ctypes.c_byte"><code class="xref py py-data docutils literal notranslate"><span class="pre">c_byte</span></code></a> to <a class="reference internal" href="../library/ctypes.html#ctypes.c_ubyte" title="ctypes.c_ubyte"><code class="xref py py-data docutils literal notranslate"><span class="pre">c_ubyte</span></code></a> to match Windows SDK.
Patch by Anatoly Techtonik and Oleg Iarygin.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94518">gh-94518</a>: <code class="docutils literal notranslate"><span class="pre">_posixsubprocess</span></code> now initializes all UID and GID variables
using a reserved <code class="docutils literal notranslate"><span class="pre">-1</span></code> value instead of a separate flag. Patch by Oleg
Iarygin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38941">bpo-38941</a>: The <a class="reference internal" href="../library/xml.etree.elementtree.html#module-xml.etree.ElementTree" title="xml.etree.ElementTree: Implementation of the ElementTree API."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree.ElementTree</span></code></a> module now emits
<a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> when testing the truth value of an
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.Element" title="xml.etree.ElementTree.Element"><code class="xref py py-class docutils literal notranslate"><span class="pre">xml.etree.ElementTree.Element</span></code></a>. Before, the Python implementation
emitted <a class="reference internal" href="../library/exceptions.html#FutureWarning" title="FutureWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">FutureWarning</span></code></a>, and the C implementation emitted nothing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40077">bpo-40077</a>: Convert <code class="xref py py-mod docutils literal notranslate"><span class="pre">elementtree</span></code> types to heap types. Patch by Erlend
E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29847">bpo-29847</a>: Fix a bug where <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> accepted and ignored
keyword arguments. Patch provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77772">gh-77772</a>: <a class="reference internal" href="../library/ctypes.html#ctypes.CDLL" title="ctypes.CDLL"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.CDLL</span></code></a>, <a class="reference internal" href="../library/ctypes.html#ctypes.OleDLL" title="ctypes.OleDLL"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.OleDLL</span></code></a>,
<a class="reference internal" href="../library/ctypes.html#ctypes.WinDLL" title="ctypes.WinDLL"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.WinDLL</span></code></a>, and <a class="reference internal" href="../library/ctypes.html#ctypes.PyDLL" title="ctypes.PyDLL"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.PyDLL</span></code></a> now accept
<a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like objects</span></a> as their <code class="docutils literal notranslate"><span class="pre">name</span></code> argument.
Patch by Robert Hoelzl.</p></li>
</ul>
</section>
<section id="id214">
<h3>Documentation<a class="headerlink" href="#id214" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88324">gh-88324</a>: Reword <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> to emphasize default behavior of
<em>stdin</em>, <em>stdout</em>, and <em>stderr</em> arguments. Remove inaccurate statement
about child file handle inheritance.</p></li>
</ul>
</section>
<section id="id215">
<h3>Tests<a class="headerlink" href="#id215" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101334">gh-101334</a>: <code class="docutils literal notranslate"><span class="pre">test_tarfile</span></code> has been updated to pass when run as a high
UID.</p></li>
</ul>
</section>
<section id="id216">
<h3>Build<a class="headerlink" href="#id216" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101282">gh-101282</a>: Update BOLT configuration not to use deprecated usage of
<code class="docutils literal notranslate"><span class="pre">--split</span> <span class="pre">functions</span></code>. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101522">gh-101522</a>: Allow overriding Windows dependencies versions and paths using
MSBuild properties.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77532">gh-77532</a>: Minor fixes to allow building with <code class="docutils literal notranslate"><span class="pre">PlatformToolset=ClangCL</span></code>
on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101152">gh-101152</a>: In accordance with <span class="target" id="index-150"></span><a class="pep reference external" href="https://peps.python.org/pep-0699/"><strong>PEP 699</strong></a>, the <code class="docutils literal notranslate"><span class="pre">ma_version_tag</span></code> field in
<a class="reference internal" href="../c-api/dict.html#c.PyDictObject" title="PyDictObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyDictObject</span></code></a> is deprecated for extension modules. Accessing this
field will generate a compiler warning at compile time. This field will be
removed in Python 3.14.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100340">gh-100340</a>: Allows -Wno-int-conversion for wasm-sdk 17 and onwards, thus
enables building WASI builds once against the latest sdk.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101060">gh-101060</a>: Conditionally add <code class="docutils literal notranslate"><span class="pre">-fno-reorder-blocks-and-partition</span></code> in
configure. Effectively fixes <code class="docutils literal notranslate"><span class="pre">--enable-bolt</span></code> when using Clang, as this
appears to be a GCC-only flag.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98705">gh-98705</a>: <code class="docutils literal notranslate"><span class="pre">__bool__</span></code> is defined in AIX system header files which breaks
the build in AIX, so undefine it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98636">gh-98636</a>: Fix a regression in detecting <code class="docutils literal notranslate"><span class="pre">gdbm_compat</span></code> library for the
<code class="docutils literal notranslate"><span class="pre">_gdbm</span></code> module build.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96305">gh-96305</a>: <code class="docutils literal notranslate"><span class="pre">_aix_support</span></code> now uses a simple code to get platform details
rather than the now non-existent <code class="docutils literal notranslate"><span class="pre">_bootsubprocess</span></code> during bootstrap.</p></li>
</ul>
</section>
<section id="id217">
<h3>Windows<a class="headerlink" href="#id217" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101543">gh-101543</a>: Ensure the install path in the registry is only used when the
standard library hasn’t been located in any other way.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101467">gh-101467</a>: The <code class="docutils literal notranslate"><span class="pre">py.exe</span></code> launcher now correctly filters when only a
single runtime is installed. It also correctly handles prefix matches on
tags so that <code class="docutils literal notranslate"><span class="pre">-3.1</span></code> does not match <code class="docutils literal notranslate"><span class="pre">3.11</span></code>, but would still match
<code class="docutils literal notranslate"><span class="pre">3.1-32</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99834">gh-99834</a>: Updates bundled copy of Tcl/Tk to 8.6.13.0</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/101135">gh-101135</a>: Restore ability to launch older 32-bit versions from the
<code class="file docutils literal notranslate"><span class="pre">py.exe</span></code> launcher when both 32-bit and 64-bit installs of the same
version are available.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82052">gh-82052</a>: Fixed an issue where writing more than 32K of Unicode output to
the console screen in one go can result in mojibake.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100320">gh-100320</a>: Ensures the <code class="docutils literal notranslate"><span class="pre">PythonPath</span></code> registry key from an install is used
when launching from a different copy of Python that relies on an existing
install to provide a copy of its modules and standard library.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100247">gh-100247</a>: Restores support for the <code class="file docutils literal notranslate"><span class="pre">py.exe</span></code> launcher finding
shebang commands in its configuration file using the full command name.</p></li>
</ul>
</section>
</section>
<section id="python-3-12-0-alpha-4">
<h2>Python 3.12.0 alpha 4<a class="headerlink" href="#python-3-12-0-alpha-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2023-01-10</em></p>
<section id="id218">
<h3>Core and Builtins<a class="headerlink" href="#id218" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100776">gh-100776</a>: Fix misleading default value in <a class="reference internal" href="../library/functions.html#input" title="input"><code class="xref py py-func docutils literal notranslate"><span class="pre">input()</span></code></a>’s
<code class="docutils literal notranslate"><span class="pre">__text_signature__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99005">gh-99005</a>: Remove <code class="xref std std-opcode docutils literal notranslate"><span class="pre">UNARY_POSITIVE</span></code>, <code class="xref std std-opcode docutils literal notranslate"><span class="pre">ASYNC_GEN_WRAP</span></code> and
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">LIST_TO_TUPLE</span></code>, replacing them with intrinsics.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99005">gh-99005</a>: Add new <a class="reference internal" href="../library/dis.html#opcode-CALL_INTRINSIC_1"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL_INTRINSIC_1</span></code></a> instruction. Remove
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">IMPORT_STAR</span></code>, <code class="xref std std-opcode docutils literal notranslate"><span class="pre">PRINT_EXPR</span></code> and
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">STOPITERATION_ERROR</span></code>, replacing them with the
<a class="reference internal" href="../library/dis.html#opcode-CALL_INTRINSIC_1"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL_INTRINSIC_1</span></code></a> instruction.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100288">gh-100288</a>: Remove the LOAD_ATTR_METHOD_WITH_DICT specialized instruction.
Stats show it is not useful.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100720">gh-100720</a>: Added <code class="docutils literal notranslate"><span class="pre">_PyFrame_NumSlotsForCodeObject</span></code>, which returns the
number of slots needed in a frame for a given code object.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100719">gh-100719</a>: Removed the co_nplaincellvars field from the code object, as it
is redundant.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100637">gh-100637</a>: Fix <code class="xref py py-func docutils literal notranslate"><span class="pre">int.__sizeof__()</span></code> calculation to include the 1-element
<code class="docutils literal notranslate"><span class="pre">ob_digit</span></code> array for <code class="docutils literal notranslate"><span class="pre">0</span></code> and <code class="docutils literal notranslate"><span class="pre">False</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100649">gh-100649</a>: Update the native_thread_id field of PyThreadState after fork.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100126">gh-100126</a>: Fix an issue where “incomplete” frames could be briefly visible
to C code while other frames are being torn down, possibly resulting in
corruption or hard crashes of the interpreter while running finalizers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87447">gh-87447</a>: Fix <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> on comprehension rebind checking with
names that are not actually redefined.</p>
<p>Now reassigning <code class="docutils literal notranslate"><span class="pre">b</span></code> in <code class="docutils literal notranslate"><span class="pre">[(b</span> <span class="pre">:=</span> <span class="pre">1)</span> <span class="pre">for</span> <span class="pre">a,</span> <span class="pre">b.prop</span> <span class="pre">in</span> <span class="pre">some_iter]</span></code> is
allowed. Reassigning <code class="docutils literal notranslate"><span class="pre">a</span></code> is still disallowed as per <span class="target" id="index-151"></span><a class="pep reference external" href="https://peps.python.org/pep-0572/"><strong>PEP 572</strong></a>.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100268">gh-100268</a>: Add <a class="reference internal" href="../library/stdtypes.html#int.is_integer" title="int.is_integer"><code class="xref py py-meth docutils literal notranslate"><span class="pre">int.is_integer()</span></code></a> to improve duck type compatibility
between <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> and <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100425">gh-100425</a>: Improve the accuracy of <code class="docutils literal notranslate"><span class="pre">sum()</span></code> with compensated summation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100374">gh-100374</a>: Fix incorrect result and delay in <a class="reference internal" href="../library/socket.html#socket.getfqdn" title="socket.getfqdn"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.getfqdn()</span></code></a>. Patch
by Dominic Socular.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100357">gh-100357</a>: Convert <code class="docutils literal notranslate"><span class="pre">vars</span></code>, <code class="docutils literal notranslate"><span class="pre">dir</span></code>, <code class="docutils literal notranslate"><span class="pre">next</span></code>, <code class="docutils literal notranslate"><span class="pre">getattr</span></code>, and <code class="docutils literal notranslate"><span class="pre">iter</span></code>
to argument clinic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100117">gh-100117</a>: Improve the output of <a class="reference internal" href="../reference/datamodel.html#codeobject.co_lines" title="codeobject.co_lines"><code class="xref py py-meth docutils literal notranslate"><span class="pre">codeobject.co_lines()</span></code></a> by emitting
only one entry for each line range.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90043">gh-90043</a>: Handle NaNs when specializing <a class="reference internal" href="../library/dis.html#opcode-COMPARE_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">COMPARE_OP</span></code></a> for
<a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> values.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100222">gh-100222</a>: Redefine the <code class="docutils literal notranslate"><span class="pre">_Py_CODEUNIT</span></code> typedef as a union to describe
its layout to the C compiler, avoiding type punning and improving clarity.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99955">gh-99955</a>: Internal compiler functions (in compile.c) now consistently
return -1 on error and 0 on success.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100188">gh-100188</a>: The <code class="docutils literal notranslate"><span class="pre">BINARY_SUBSCR_LIST_INT</span></code> and <code class="docutils literal notranslate"><span class="pre">BINARY_SUBSCR_TUPLE_INT</span></code>
instructions are no longer used for negative integers because those
instructions always miss when encountering negative integers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99110">gh-99110</a>: Initialize frame->previous in frameobject.c to fix a
segmentation fault when accessing frames created by <code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_New()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94155">gh-94155</a>: Improved the hashing algorithm for code objects, mitigating some
hash collisions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99540">gh-99540</a>: <code class="docutils literal notranslate"><span class="pre">None</span></code> now hashes to a constant value. This is not a
requirements change.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100143">gh-100143</a>: When built with <code class="docutils literal notranslate"><span class="pre">--enable-pystats</span></code>, stats collection is now
off by default. To enable it early at startup, pass the <code class="docutils literal notranslate"><span class="pre">-Xpystats</span></code>
flag. Stats are now always dumped, even if switched off.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100146">gh-100146</a>: Improve <code class="docutils literal notranslate"><span class="pre">BUILD_LIST</span></code> opcode so that it works similarly to the
<code class="docutils literal notranslate"><span class="pre">BUILD_TUPLE</span></code> opcode, by stealing references from the stack rather than
repeatedly using stack operations to set list elements. Implementation
details are in a new private API <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyList_FromArraySteal()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100110">gh-100110</a>: Specialize <code class="docutils literal notranslate"><span class="pre">FOR_ITER</span></code> for tuples.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100050">gh-100050</a>: Honor existing errors obtained when searching for mismatching
parentheses in the tokenizer. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92216">gh-92216</a>: Improve the performance of <a class="reference internal" href="../library/functions.html#hasattr" title="hasattr"><code class="xref py py-func docutils literal notranslate"><span class="pre">hasattr()</span></code></a> for type objects with
a missing attribute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99582">gh-99582</a>: Freeze <a class="reference internal" href="../library/zipimport.html#module-zipimport" title="zipimport: Support for importing Python modules from ZIP archives."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipimport</span></code></a> module into <code class="docutils literal notranslate"><span class="pre">_bootstrap_python</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99554">gh-99554</a>: Pack debugging location tables more efficiently during bytecode
compilation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98522">gh-98522</a>: Add an internal version number to code objects, to give better
versioning of inner functions and comprehensions, and thus better
specialization of those functions. This change is invisible to both Python
and C extensions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94603">gh-94603</a>: Improve performance of <code class="docutils literal notranslate"><span class="pre">list.pop</span></code> for small lists.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89051">gh-89051</a>: Add <a class="reference internal" href="../library/ssl.html#ssl.OP_LEGACY_SERVER_CONNECT" title="ssl.OP_LEGACY_SERVER_CONNECT"><code class="xref py py-const docutils literal notranslate"><span class="pre">ssl.OP_LEGACY_SERVER_CONNECT</span></code></a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32782">bpo-32782</a>: <code class="docutils literal notranslate"><span class="pre">ctypes</span></code> arrays of length 0 now report a correct itemsize
when a <code class="docutils literal notranslate"><span class="pre">memoryview</span></code> is constructed from them, rather than always giving
a value of 0.</p></li>
</ul>
</section>
<section id="id219">
<h3>Library<a class="headerlink" href="#id219" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100833">gh-100833</a>: Speed up <a class="reference internal" href="../library/math.html#math.fsum" title="math.fsum"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.fsum()</span></code></a> by removing defensive <code class="docutils literal notranslate"><span class="pre">volatile</span></code>
qualifiers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100805">gh-100805</a>: Modify <a class="reference internal" href="../library/random.html#random.choice" title="random.choice"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.choice()</span></code></a> implementation to once again work
with NumPy arrays.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100813">gh-100813</a>: Add <code class="xref py py-const docutils literal notranslate"><span class="pre">socket.IP_PKTINFO</span></code> constant.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100792">gh-100792</a>: Make <a class="reference internal" href="../library/email.compat32-message.html#email.message.Message.__contains__" title="email.message.Message.__contains__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">email.message.Message.__contains__()</span></code></a> twice as fast.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91851">gh-91851</a>: Microoptimizations for <a class="reference internal" href="../library/fractions.html#fractions.Fraction.__round__" title="fractions.Fraction.__round__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">fractions.Fraction.__round__()</span></code></a>,
<a class="reference internal" href="../library/fractions.html#fractions.Fraction.__ceil__" title="fractions.Fraction.__ceil__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">fractions.Fraction.__ceil__()</span></code></a> and
<a class="reference internal" href="../library/fractions.html#fractions.Fraction.__floor__" title="fractions.Fraction.__floor__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">fractions.Fraction.__floor__()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90104">gh-90104</a>: Avoid RecursionError on <code class="docutils literal notranslate"><span class="pre">repr</span></code> if a dataclass field definition
has a cyclic reference.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100689">gh-100689</a>: Fix crash in <code class="xref py py-mod docutils literal notranslate"><span class="pre">pyexpat</span></code> by statically allocating
<code class="docutils literal notranslate"><span class="pre">PyExpat_CAPI</span></code> capsule.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100740">gh-100740</a>: Fix <code class="docutils literal notranslate"><span class="pre">unittest.mock.Mock</span></code> not respecting the spec for
attribute names prefixed with <code class="docutils literal notranslate"><span class="pre">assert</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91219">gh-91219</a>: Change <code class="docutils literal notranslate"><span class="pre">SimpleHTTPRequestHandler</span></code> to support subclassing to
provide a different set of index file names instead of using <code class="docutils literal notranslate"><span class="pre">__init__</span></code>
parameters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100690">gh-100690</a>: <code class="docutils literal notranslate"><span class="pre">Mock</span></code> objects which are not unsafe will now raise an
<code class="docutils literal notranslate"><span class="pre">AttributeError</span></code> when accessing an attribute that matches the name of an
assertion but without the prefix <code class="docutils literal notranslate"><span class="pre">assert_</span></code>, e.g. accessing
<code class="docutils literal notranslate"><span class="pre">called_once</span></code> instead of <code class="docutils literal notranslate"><span class="pre">assert_called_once</span></code>. This is in addition to
this already happening for accessing attributes with prefixes <code class="docutils literal notranslate"><span class="pre">assert</span></code>,
<code class="docutils literal notranslate"><span class="pre">assret</span></code>, <code class="docutils literal notranslate"><span class="pre">asert</span></code>, <code class="docutils literal notranslate"><span class="pre">aseert</span></code>, and <code class="docutils literal notranslate"><span class="pre">assrt</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89727">gh-89727</a>: Simplify and optimize <a class="reference internal" href="../library/os.html#os.walk" title="os.walk"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.walk()</span></code></a> by using
<a class="reference internal" href="../library/functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal notranslate"><span class="pre">isinstance()</span></code></a> checks to check the top of the stack.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100485">gh-100485</a>: Add math.sumprod() to compute the sum of products.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86508">gh-86508</a>: Fix <a class="reference internal" href="../library/asyncio-stream.html#asyncio.open_connection" title="asyncio.open_connection"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.open_connection()</span></code></a> to skip binding to local
addresses of different family. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97930">gh-97930</a>: <code class="docutils literal notranslate"><span class="pre">importlib.resources.files</span></code> now accepts a module as an anchor
instead of only accepting packages. If a module is passed, resources are
resolved adjacent to that module (in the same package or at the package
root). The parameter was renamed from <code class="docutils literal notranslate"><span class="pre">package</span></code> to <code class="docutils literal notranslate"><span class="pre">anchor</span></code> with a
compatibility shim for those passing by keyword. Additionally, the new
<code class="docutils literal notranslate"><span class="pre">anchor</span></code> parameter is now optional and will default to the caller’s
module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100585">gh-100585</a>: Fixed a bug where importlib.resources.as_file was leaving file
pointers open</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100562">gh-100562</a>: Improve performance of <a class="reference internal" href="../library/pathlib.html#pathlib.Path.absolute" title="pathlib.Path.absolute"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.absolute()</span></code></a> by nearly
2x. This comes at the cost of a performance regression in
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.cwd" title="pathlib.Path.cwd"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.cwd()</span></code></a>, which is generally used less frequently in user
code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100519">gh-100519</a>: Small simplification of <code class="xref py py-func docutils literal notranslate"><span class="pre">http.cookiejar.eff_request_host()</span></code>
that improves readability and better matches the RFC wording.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100287">gh-100287</a>: Fix the interaction of <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.seal" title="unittest.mock.seal"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.seal()</span></code></a> with
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.AsyncMock" title="unittest.mock.AsyncMock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.AsyncMock</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100488">gh-100488</a>: Add <code class="xref py py-meth docutils literal notranslate"><span class="pre">Fraction.is_integer()</span></code> to check whether a
<a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a> is an integer. This improves duck type
compatibility with <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> and <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100474">gh-100474</a>: <a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a> now checks that an index page is actually a
regular file before trying to serve it. This avoids issues with
directories named <code class="docutils literal notranslate"><span class="pre">index.html</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100363">gh-100363</a>: Speed up <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.get_running_loop" title="asyncio.get_running_loop"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.get_running_loop()</span></code></a> by removing redundant
<code class="docutils literal notranslate"><span class="pre">getpid</span></code> checks. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/78878">gh-78878</a>: Fix crash when creating an instance of <code class="xref py py-class docutils literal notranslate"><span class="pre">_ctypes.CField</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100348">gh-100348</a>: Fix ref cycle in <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio._SelectorSocketTransport</span></code> by
removing <code class="docutils literal notranslate"><span class="pre">_read_ready_cb</span></code> in <code class="docutils literal notranslate"><span class="pre">close</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100344">gh-100344</a>: Provide C implementation for <a class="reference internal" href="../library/asyncio-task.html#asyncio.current_task" title="asyncio.current_task"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.current_task()</span></code></a> for a
4x-6x speedup.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100272">gh-100272</a>: Fix JSON serialization of OrderedDict. It now preserves the
order of keys.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83076">gh-83076</a>: Instantiation of <code class="docutils literal notranslate"><span class="pre">Mock()</span></code> and <code class="docutils literal notranslate"><span class="pre">AsyncMock()</span></code> is now 3.8x
faster.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100234">gh-100234</a>: Set a default value of 1.0 for the <code class="docutils literal notranslate"><span class="pre">lambd</span></code> parameter in
random.expovariate().</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100228">gh-100228</a>: A <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> may be raised when <a class="reference internal" href="../library/os.html#os.fork" title="os.fork"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fork()</span></code></a>
or <a class="reference internal" href="../library/os.html#os.forkpty" title="os.forkpty"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.forkpty()</span></code></a> is called from multi-threaded processes. Forking
with threads is unsafe and can cause deadlocks, crashes and subtle
problems. Lack of a warning does not indicate that the fork call was
actually safe, as Python may not be aware of all threads.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100039">gh-100039</a>: Improve signatures for enums and flags.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100133">gh-100133</a>: Fix regression in <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> where a subprocess would
sometimes lose data received from pipe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44592">bpo-44592</a>: Fixes inconsistent handling of case sensitivity of
<em>extrasaction</em> arg in <a class="reference internal" href="../library/csv.html#csv.DictWriter" title="csv.DictWriter"><code class="xref py py-class docutils literal notranslate"><span class="pre">csv.DictWriter</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100098">gh-100098</a>: Fix <code class="docutils literal notranslate"><span class="pre">tuple</span></code> subclasses being cast to <code class="docutils literal notranslate"><span class="pre">tuple</span></code> when used as
enum values.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85432">gh-85432</a>: Rename the <em>fmt</em> parameter of the pure-Python implementation of
<a class="reference internal" href="../library/datetime.html#datetime.time.strftime" title="datetime.time.strftime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.time.strftime()</span></code></a> to <em>format</em>. Rename the <em>t</em> parameter of
<a class="reference internal" href="../library/datetime.html#datetime.datetime.fromtimestamp" title="datetime.datetime.fromtimestamp"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.fromtimestamp()</span></code></a> to <em>timestamp</em>. These changes mean
the parameter names in the pure-Python implementation now match the
parameter names in the C implementation. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98778">gh-98778</a>: Update <a class="reference internal" href="../library/urllib.error.html#urllib.error.HTTPError" title="urllib.error.HTTPError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">HTTPError</span></code></a> to be initialized
properly, even if the <code class="docutils literal notranslate"><span class="pre">fp</span></code> is <code class="docutils literal notranslate"><span class="pre">None</span></code>. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99925">gh-99925</a>: Unify error messages in JSON serialization between
<code class="docutils literal notranslate"><span class="pre">json.dumps(float('nan'),</span> <span class="pre">allow_nan=False)</span></code> and
<code class="docutils literal notranslate"><span class="pre">json.dumps(float('nan'),</span> <span class="pre">allow_nan=False,</span> <span class="pre">indent=<SOMETHING>)</span></code>. Now
both include the representation of the value that could not be serialized.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89727">gh-89727</a>: Fix issue with <a class="reference internal" href="../library/os.html#os.walk" title="os.walk"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.walk()</span></code></a> where a <a class="reference internal" href="../library/exceptions.html#RecursionError" title="RecursionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RecursionError</span></code></a>
would occur on deep directory structures by adjusting the implementation
of <a class="reference internal" href="../library/os.html#os.walk" title="os.walk"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.walk()</span></code></a> to be iterative instead of recursive.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94943">gh-94943</a>: Add <a class="reference internal" href="../howto/enum.html#enum-dataclass-support"><span class="std std-ref">Dataclass support</span></a> to the <a class="reference internal" href="../library/enum.html#enum.Enum" title="enum.Enum"><code class="xref py py-class docutils literal notranslate"><span class="pre">Enum</span></code></a>
<a class="reference internal" href="../library/enum.html#enum.Enum.__repr__" title="enum.Enum.__repr__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__repr__()</span></code></a>. When inheriting from a
<a class="reference internal" href="../library/dataclasses.html#dataclasses.dataclass" title="dataclasses.dataclass"><code class="xref py py-class docutils literal notranslate"><span class="pre">dataclass</span></code></a>, only show the field names in the value
section of the member <a class="reference internal" href="../library/functions.html#repr" title="repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">repr()</span></code></a>, and not the dataclass’ class name.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83035">gh-83035</a>: Fix <a class="reference internal" href="../library/inspect.html#inspect.getsource" title="inspect.getsource"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getsource()</span></code></a> handling of decorator calls with
nested parentheses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99576">gh-99576</a>: Fix <code class="docutils literal notranslate"><span class="pre">.save()</span></code> method for <code class="docutils literal notranslate"><span class="pre">LWPCookieJar</span></code> and
<code class="docutils literal notranslate"><span class="pre">MozillaCookieJar</span></code>: saved file was not truncated on repeated save.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94912">gh-94912</a>: Add <a class="reference internal" href="../library/inspect.html#inspect.markcoroutinefunction" title="inspect.markcoroutinefunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.markcoroutinefunction()</span></code></a> decorator which
manually marks a function as a coroutine for the benefit of
<code class="xref py py-func docutils literal notranslate"><span class="pre">iscoroutinefunction()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99509">gh-99509</a>: Add <span class="target" id="index-152"></span><a class="pep reference external" href="https://peps.python.org/pep-0585/"><strong>PEP 585</strong></a> support for
<code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.queues.Queue</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99482">gh-99482</a>: Remove <code class="docutils literal notranslate"><span class="pre">Jython</span></code> partial compatibility code from several stdlib
modules.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99433">gh-99433</a>: Fix <a class="reference internal" href="../library/doctest.html#module-doctest" title="doctest: Test pieces of code within docstrings."><code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code></a> failure on <a class="reference internal" href="../library/types.html#types.MethodWrapperType" title="types.MethodWrapperType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.MethodWrapperType</span></code></a>
in modules.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85267">gh-85267</a>: Several improvements to <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a>’s handling of
<code class="docutils literal notranslate"><span class="pre">__text_signature</span></code>. - Fixes a case where <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a>
dropped parameters - Fixes a case where <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> raised
<a class="reference internal" href="../library/tokenize.html#tokenize.TokenError" title="tokenize.TokenError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">tokenize.TokenError</span></code></a> - Allows <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> to
understand defaults involving binary operations of constants -
<a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> is documented as only raising <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>
or <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>, but sometimes raised <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a>. These
cases now raise <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> - Removed a dead code path</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91166">gh-91166</a>: <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> is optimized to avoid excessive copying when
writing to socket and use <a class="reference internal" href="../library/socket.html#socket.socket.sendmsg" title="socket.socket.sendmsg"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sendmsg()</span></code></a> if the platform
supports it. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98030">gh-98030</a>: Add missing TCP socket options from Linux: <code class="docutils literal notranslate"><span class="pre">TCP_MD5SIG</span></code>,
<code class="docutils literal notranslate"><span class="pre">TCP_THIN_LINEAR_TIMEOUTS</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_THIN_DUPACK</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_REPAIR</span></code>,
<code class="docutils literal notranslate"><span class="pre">TCP_REPAIR_QUEUE</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_QUEUE_SEQ</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_REPAIR_OPTIONS</span></code>,
<code class="docutils literal notranslate"><span class="pre">TCP_TIMESTAMP</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_CC_INFO</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_SAVE_SYN</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_SAVED_SYN</span></code>,
<code class="docutils literal notranslate"><span class="pre">TCP_REPAIR_WINDOW</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_FASTOPEN_CONNECT</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_ULP</span></code>,
<code class="docutils literal notranslate"><span class="pre">TCP_MD5SIG_EXT</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_FASTOPEN_KEY</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_FASTOPEN_NO_COOKIE</span></code>,
<code class="docutils literal notranslate"><span class="pre">TCP_ZEROCOPY_RECEIVE</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_INQ</span></code>, <code class="docutils literal notranslate"><span class="pre">TCP_TX_DELAY</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88500">gh-88500</a>: Reduced the memory usage of <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.unquote" title="urllib.parse.unquote"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.unquote()</span></code></a> and
<a class="reference internal" href="../library/urllib.parse.html#urllib.parse.unquote_to_bytes" title="urllib.parse.unquote_to_bytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.unquote_to_bytes()</span></code></a> on large values.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96127">gh-96127</a>: <code class="docutils literal notranslate"><span class="pre">inspect.signature</span></code> was raising <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> on call with
mock objects. Now it correctly returns <code class="docutils literal notranslate"><span class="pre">(*args,</span> <span class="pre">**kwargs)</span></code> as inferred
signature.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95882">gh-95882</a>: Fix a 3.11 regression in
<a class="reference internal" href="../library/contextlib.html#contextlib.asynccontextmanager" title="contextlib.asynccontextmanager"><code class="xref py py-func docutils literal notranslate"><span class="pre">asynccontextmanager()</span></code></a>, which caused it to propagate
exceptions with incorrect tracebacks and fix a 3.11 regression in
<a class="reference internal" href="../library/contextlib.html#contextlib.contextmanager" title="contextlib.contextmanager"><code class="xref py py-func docutils literal notranslate"><span class="pre">contextmanager()</span></code></a>, which caused it to propagate
exceptions with incorrect tracebacks for <a class="reference internal" href="../library/exceptions.html#StopIteration" title="StopIteration"><code class="xref py py-exc docutils literal notranslate"><span class="pre">StopIteration</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/78707">gh-78707</a>: Deprecate passing more than one positional argument to
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.relative_to" title="pathlib.PurePath.relative_to"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.relative_to()</span></code></a> and
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.is_relative_to" title="pathlib.PurePath.is_relative_to"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_relative_to()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92122">gh-92122</a>: Fix reStructuredText syntax errors in docstrings in the
<a class="reference internal" href="../library/enum.html#module-enum" title="enum: Implementation of an enumeration class."><code class="xref py py-mod docutils literal notranslate"><span class="pre">enum</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91851">gh-91851</a>: Optimize the <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fraction</span></code></a> arithmetics for small
components.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24132">bpo-24132</a>: Make <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> and <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">Path</span></code></a>
subclassable (private to start). Previously, attempting to instantiate a
subclass resulted in an <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> being raised. Patch by
Barney Gale.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40447">bpo-40447</a>: Accept <a class="reference internal" href="../library/os.html#os.PathLike" title="os.PathLike"><code class="xref py py-class docutils literal notranslate"><span class="pre">os.PathLike</span></code></a> (such as <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a>) in
the <code class="docutils literal notranslate"><span class="pre">stripdir</span></code> arguments of <a class="reference internal" href="../library/compileall.html#compileall.compile_file" title="compileall.compile_file"><code class="xref py py-meth docutils literal notranslate"><span class="pre">compileall.compile_file()</span></code></a> and
<a class="reference internal" href="../library/compileall.html#compileall.compile_dir" title="compileall.compile_dir"><code class="xref py py-meth docutils literal notranslate"><span class="pre">compileall.compile_dir()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36880">bpo-36880</a>: Fix a reference counting issue when a <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> callback
with return type <a class="reference internal" href="../library/ctypes.html#ctypes.py_object" title="ctypes.py_object"><code class="xref py py-class docutils literal notranslate"><span class="pre">py_object</span></code></a> returns <code class="docutils literal notranslate"><span class="pre">None</span></code>, which could
cause crashes.</p></li>
</ul>
</section>
<section id="id220">
<h3>Documentation<a class="headerlink" href="#id220" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100616">gh-100616</a>: Document existing <code class="docutils literal notranslate"><span class="pre">attr</span></code> parameter to
<a class="reference internal" href="../library/curses.html#curses.window.vline" title="curses.window.vline"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.window.vline()</span></code></a> function in <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100472">gh-100472</a>: Remove claim in documentation that the <code class="docutils literal notranslate"><span class="pre">stripdir</span></code>,
<code class="docutils literal notranslate"><span class="pre">prependdir</span></code> and <code class="docutils literal notranslate"><span class="pre">limit_sl_dest</span></code> parameters of
<a class="reference internal" href="../library/compileall.html#compileall.compile_dir" title="compileall.compile_dir"><code class="xref py py-func docutils literal notranslate"><span class="pre">compileall.compile_dir()</span></code></a> and <a class="reference internal" href="../library/compileall.html#compileall.compile_file" title="compileall.compile_file"><code class="xref py py-func docutils literal notranslate"><span class="pre">compileall.compile_file()</span></code></a> could
be <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25377">bpo-25377</a>: Clarify use of octal format of mode argument in help(os.chmod)
as well as help(os.fchmod)</p></li>
</ul>
</section>
<section id="id221">
<h3>Tests<a class="headerlink" href="#id221" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100454">gh-100454</a>: Start running SSL tests with OpenSSL 3.1.0-beta1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100086">gh-100086</a>: The Python test runner (libregrtest) now logs Python build
information like “debug” vs “release” build, or LTO and PGO optimizations.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93018">gh-93018</a>: Make two tests forgiving towards host system libexpat with
backported security fixes applied.</p></li>
</ul>
</section>
<section id="id222">
<h3>Build<a class="headerlink" href="#id222" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100540">gh-100540</a>: Removed the <code class="docutils literal notranslate"><span class="pre">--with-system-ffi</span></code> <code class="docutils literal notranslate"><span class="pre">configure</span></code> option;
<code class="docutils literal notranslate"><span class="pre">libffi</span></code> must now always be supplied by the system on all non-Windows
platforms. The option has had no effect on non-Darwin platforms for
several releases, and in 3.11 only had the non-obvious effect of invoking
<code class="docutils literal notranslate"><span class="pre">pkg-config</span></code> to find <code class="docutils literal notranslate"><span class="pre">libffi</span></code> and never setting
<code class="docutils literal notranslate"><span class="pre">-DUSING_APPLE_OS_LIBFFI</span></code>. Now on Darwin platforms <code class="docutils literal notranslate"><span class="pre">configure</span></code> will
first check for the OS <code class="docutils literal notranslate"><span class="pre">libffi</span></code> and then fall back to the same
processing as other platforms if it is not found.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88267">gh-88267</a>: Avoid exporting Python symbols in linked Windows applications
when the core is built as static.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41916">bpo-41916</a>: Allow override of ac_cv_cxx_thread so that cross compiled
python can set -pthread for CXX.</p></li>
</ul>
</section>
<section id="id223">
<h3>Windows<a class="headerlink" href="#id223" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100180">gh-100180</a>: Update Windows installer to OpenSSL 1.1.1s</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99191">gh-99191</a>: Use <code class="docutils literal notranslate"><span class="pre">_MSVC_LANG</span> <span class="pre">>=</span> <span class="pre">202002L</span></code> instead of less-precise <code class="docutils literal notranslate"><span class="pre">_MSC_VER</span>
<span class="pre">>=1929</span></code> to more accurately test for C++20 support in
<code class="file docutils literal notranslate"><span class="pre">PC/_wmimodule.cpp</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79218">gh-79218</a>: Define <code class="docutils literal notranslate"><span class="pre">MS_WIN64</span></code> for Mingw-w64 64bit, fix cython compilation
failure.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99941">gh-99941</a>: Ensure that <a class="reference internal" href="../library/asyncio-protocol.html#asyncio.Protocol.data_received" title="asyncio.Protocol.data_received"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.Protocol.data_received()</span></code></a> receives an
immutable <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> object (as documented), instead of
<a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43984">bpo-43984</a>: <a class="reference internal" href="../library/winreg.html#winreg.SetValueEx" title="winreg.SetValueEx"><code class="xref py py-meth docutils literal notranslate"><span class="pre">winreg.SetValueEx()</span></code></a> now leaves the target value untouched
in the case of conversion errors. Previously, <code class="docutils literal notranslate"><span class="pre">-1</span></code> would be written in
case of such errors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34816">bpo-34816</a>: <code class="docutils literal notranslate"><span class="pre">hasattr(ctypes.windll,</span> <span class="pre">'nonexistant')</span></code> now returns <code class="docutils literal notranslate"><span class="pre">False</span></code>
instead of raising <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>.</p></li>
</ul>
</section>
<section id="id224">
<h3>macOS<a class="headerlink" href="#id224" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100180">gh-100180</a>: Update macOS installer to OpenSSL 1.1.1s</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100540">gh-100540</a>: Removed obsolete <code class="docutils literal notranslate"><span class="pre">dlfcn.h</span></code> shim from the <code class="docutils literal notranslate"><span class="pre">_ctypes</span></code>
extension module, which has not been necessary since Mac OS X 10.2.</p></li>
</ul>
</section>
<section id="id225">
<h3>Tools/Demos<a class="headerlink" href="#id225" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45256">bpo-45256</a>: Fix a bug that caused an <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> to be raised in
<code class="docutils literal notranslate"><span class="pre">python-gdb.py</span></code> when <code class="docutils literal notranslate"><span class="pre">py-locals</span></code> is used without a frame.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100342">gh-100342</a>: Add missing <code class="docutils literal notranslate"><span class="pre">NULL</span></code> check for possible allocation failure in
<code class="docutils literal notranslate"><span class="pre">*args</span></code> parsing in Argument Clinic.</p></li>
</ul>
</section>
<section id="id226">
<h3>C API<a class="headerlink" href="#id226" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99947">gh-99947</a>: Raising SystemError on import will now have its cause be set to
the original unexpected exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99240">gh-99240</a>: In argument parsing, after deallocating newly allocated memory,
reset its pointer to NULL.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98724">gh-98724</a>: The <a class="reference internal" href="../c-api/refcounting.html#c.Py_CLEAR" title="Py_CLEAR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_CLEAR</span></code></a>, <a class="reference internal" href="../c-api/refcounting.html#c.Py_SETREF" title="Py_SETREF"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_SETREF</span></code></a> and
<a class="reference internal" href="../c-api/refcounting.html#c.Py_XSETREF" title="Py_XSETREF"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_XSETREF</span></code></a> macros now only evaluate their arguments once. If an
argument has side effects, these side effects are no longer duplicated.
Patch by Victor Stinner.</p></li>
</ul>
</section>
</section>
<section id="python-3-12-0-alpha-3">
<h2>Python 3.12.0 alpha 3<a class="headerlink" href="#python-3-12-0-alpha-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2022-12-06</em></p>
<section id="id227">
<h3>Security<a class="headerlink" href="#id227" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100001">gh-100001</a>: <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">http.server</span></code> no longer allows terminal control
characters sent within a garbage request to be printed to the stderr
server log.</p>
<p>This is done by changing the <a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a>
<code class="xref py py-class docutils literal notranslate"><span class="pre">BaseHTTPRequestHandler</span></code> <code class="docutils literal notranslate"><span class="pre">.log_message</span></code> method to replace control
characters with a <code class="samp docutils literal notranslate"><span class="pre">\x</span><em><span class="pre">HH</span></em></code> hex escape before printing.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87604">gh-87604</a>: Avoid publishing list of active per-interpreter audit hooks via
the <a class="reference internal" href="../library/gc.html#module-gc" title="gc: Interface to the cycle-detecting garbage collector."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gc</span></code></a> module</p></li>
</ul>
</section>
<section id="id228">
<h3>Core and Builtins<a class="headerlink" href="#id228" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99891">gh-99891</a>: Fix a bug in the tokenizer that could cause infinite recursion
when showing syntax warnings that happen in the first line of the source.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91054">gh-91054</a>: Add <a class="reference internal" href="../c-api/code.html#c.PyCode_AddWatcher" title="PyCode_AddWatcher"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_AddWatcher()</span></code></a> and
<a class="reference internal" href="../c-api/code.html#c.PyCode_ClearWatcher" title="PyCode_ClearWatcher"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_ClearWatcher()</span></code></a> APIs to register callbacks to receive
notification on creation and destruction of code objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99729">gh-99729</a>: Fix an issue that could cause frames to be visible to Python
code as they are being torn down, possibly leading to memory corruption or
hard crashes of the interpreter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99708">gh-99708</a>: Fix bug where compiler crashes on an if expression with an empty
body block.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99578">gh-99578</a>: Fix a reference bug in <code class="xref py py-func docutils literal notranslate"><span class="pre">_imp.create_builtin()</span></code> after the
creation of the first sub-interpreter for modules <code class="docutils literal notranslate"><span class="pre">builtins</span></code> and
<code class="docutils literal notranslate"><span class="pre">sys</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99581">gh-99581</a>: Fixed a bug that was causing a buffer overflow if the tokenizer
copies a line missing the newline character from a file that is as long as
the available tokenizer buffer. Patch by Pablo galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99553">gh-99553</a>: Fix bug where an <a class="reference internal" href="../library/exceptions.html#ExceptionGroup" title="ExceptionGroup"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ExceptionGroup</span></code></a> subclass can wrap a
<a class="reference internal" href="../library/exceptions.html#BaseException" title="BaseException"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BaseException</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99547">gh-99547</a>: Add a function to os.path to check if a path is a junction:
isjunction. Add similar functionality to pathlib.Path as is_junction.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99370">gh-99370</a>: Fix zip path for venv created from a non-installed python on
POSIX platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99377">gh-99377</a>: Add audit events for thread creation and clear operations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98686">gh-98686</a>: Remove the <code class="docutils literal notranslate"><span class="pre">BINARY_OP_GENERIC</span></code> and <code class="docutils literal notranslate"><span class="pre">COMPARE_OP_GENERIC</span></code>
“specializations”.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99298">gh-99298</a>: Remove the remaining error paths for attribute specializations,
and refuse to specialize attribute accesses on types that haven’t had
<a class="reference internal" href="../c-api/type.html#c.PyType_Ready" title="PyType_Ready"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_Ready()</span></code></a> called on them yet.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99127">gh-99127</a>: Allow some features of <a class="reference internal" href="../library/syslog.html#module-syslog" title="syslog: An interface to the Unix syslog library routines. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">syslog</span></code></a> to the main interpreter
only. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91053">gh-91053</a>: Optimizing interpreters and JIT compilers may need to invalidate
internal metadata when functions are modified. This change adds the
ability to provide a callback that will be invoked each time a function is
created, modified, or destroyed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90994">gh-90994</a>: Improve error messages when there’s a syntax error with call
arguments. The following three cases are covered: - No value is assigned
to a named argument, eg <code class="docutils literal notranslate"><span class="pre">foo(a=)</span></code>. - A value is assigned to a star
argument, eg <code class="docutils literal notranslate"><span class="pre">foo(*args=[0])</span></code>. - A value is assigned to a double-star
keyword argument, eg <code class="docutils literal notranslate"><span class="pre">foo(**kwarg={'a':</span> <span class="pre">0})</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45026">bpo-45026</a>: Optimize the <a class="reference internal" href="../library/stdtypes.html#range" title="range"><code class="xref py py-class docutils literal notranslate"><span class="pre">range</span></code></a> object iterator. It is now smaller,
faster iteration of ranges containing large numbers. Smaller pickles,
faster unpickling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31718">bpo-31718</a>: Raise <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> when
methods of uninitialized <a class="reference internal" href="../library/io.html#io.IncrementalNewlineDecoder" title="io.IncrementalNewlineDecoder"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.IncrementalNewlineDecoder</span></code></a> objects are
called. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38031">bpo-38031</a>: Fix a possible assertion failure in <a class="reference internal" href="../library/io.html#io.FileIO" title="io.FileIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.FileIO</span></code></a> when the
opener returns an invalid file descriptor.</p></li>
</ul>
</section>
<section id="id229">
<h3>Library<a class="headerlink" href="#id229" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/100001">gh-100001</a>: Also escape s in the http.server
BaseHTTPRequestHandler.log_message so that it is technically possible to
parse the line and reconstruct what the original data was. Without this a
xHH is ambiguous as to if it is a hex replacement we put in or the
characters r”x” came through in the original request line.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99957">gh-99957</a>: Add <code class="docutils literal notranslate"><span class="pre">frozen_default</span></code> parameter to
<a class="reference internal" href="../library/typing.html#typing.dataclass_transform" title="typing.dataclass_transform"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.dataclass_transform()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79033">gh-79033</a>: Fix <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.Server.wait_closed" title="asyncio.Server.wait_closed"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.Server.wait_closed()</span></code></a> to actually do what the
docs promise – wait for all existing connections to complete, after
closing the server.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/51524">gh-51524</a>: Fix bug when calling trace.CoverageResults with valid infile.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99645">gh-99645</a>: Fix a bug in handling class cleanups in
<a class="reference internal" href="../library/unittest.html#unittest.TestCase" title="unittest.TestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TestCase</span></code></a>. Now <code class="docutils literal notranslate"><span class="pre">addClassCleanup()</span></code> uses separate lists
for different <code class="docutils literal notranslate"><span class="pre">TestCase</span></code> subclasses, and <code class="docutils literal notranslate"><span class="pre">doClassCleanups()</span></code> only
cleans up the particular class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99508">gh-99508</a>: Fix <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> in <code class="docutils literal notranslate"><span class="pre">Lib/importlib/_bootstrap_external.py</span></code>
while calling <code class="docutils literal notranslate"><span class="pre">_imp.source_hash()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/66285">gh-66285</a>: Fix <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> to not share event loop and signal wakeupfd
in forked processes. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97001">gh-97001</a>: Release the GIL when calling termios APIs to avoid blocking
threads.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92647">gh-92647</a>: Use final status of an enum to determine lookup or creation
branch of functional API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99388">gh-99388</a>: Add <em>loop_factory</em> parameter to <a class="reference internal" href="../library/asyncio-runner.html#asyncio.run" title="asyncio.run"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.run()</span></code></a> to allow
specifying a custom event loop factory. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99341">gh-99341</a>: Fix <a class="reference internal" href="../library/ast.html#ast.increment_lineno" title="ast.increment_lineno"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.increment_lineno()</span></code></a> to also cover
<a class="reference internal" href="../library/ast.html#ast.TypeIgnore" title="ast.TypeIgnore"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.TypeIgnore</span></code></a> when changing line numbers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99382">gh-99382</a>: Check the number of arguments in substitution in user generics
containing a <a class="reference internal" href="../library/typing.html#typing.TypeVarTuple" title="typing.TypeVarTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypeVarTuple</span></code></a> and one or more
<a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypeVar</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99379">gh-99379</a>: Fix substitution of <a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-class docutils literal notranslate"><span class="pre">ParamSpec</span></code></a> followed by
<a class="reference internal" href="../library/typing.html#typing.TypeVarTuple" title="typing.TypeVarTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypeVarTuple</span></code></a> in generic aliases.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99344">gh-99344</a>: Fix substitution of <a class="reference internal" href="../library/typing.html#typing.TypeVarTuple" title="typing.TypeVarTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypeVarTuple</span></code></a> and
<a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-class docutils literal notranslate"><span class="pre">ParamSpec</span></code></a> together in user generics.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99284">gh-99284</a>: Remove <code class="docutils literal notranslate"><span class="pre">_use_broken_old_ctypes_structure_semantics_</span></code> old
untested and undocumented hack from <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99201">gh-99201</a>: Fix <a class="reference internal" href="../library/exceptions.html#IndexError" title="IndexError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IndexError</span></code></a> when initializing the config variables on
Windows if <code class="docutils literal notranslate"><span class="pre">HAVE_DYNAMIC_LOADING</span></code> is not set.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99240">gh-99240</a>: Fix double-free bug in Argument Clinic <code class="docutils literal notranslate"><span class="pre">str_converter</span></code> by
extracting memory clean up to a new <code class="docutils literal notranslate"><span class="pre">post_parsing</span></code> section.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/64490">gh-64490</a>: Fix refcount error when arguments are packed to tuple in
Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99029">gh-99029</a>: <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.relative_to" title="pathlib.PurePath.relative_to"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.relative_to()</span></code></a> now treats naked Windows
drive paths as relative. This brings its behaviour in line with other
parts of pathlib.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98253">gh-98253</a>: The implementation of the typing module is now more resilient to
reference leaks in binary extension modules.</p>
<p>Previously, a reference leak in a typed C API-based extension module could
leak internals of the typing module, which could in turn introduce leaks
in essentially any other package with typed function signatures. Although
the typing package is not the original source of the problem, such
non-local dependences exacerbate debugging of large-scale projects, and
the implementation was therefore changed to reduce harm by providing
better isolation.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98458">gh-98458</a>: Fix infinite loop in unittest when a self-referencing chained
exception is raised</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93453">gh-93453</a>: <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.get_event_loop" title="asyncio.get_event_loop"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.get_event_loop()</span></code></a> and many other <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>
functions like <a class="reference internal" href="../library/asyncio-future.html#asyncio.ensure_future" title="asyncio.ensure_future"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.ensure_future()</span></code></a>, <a class="reference internal" href="../library/asyncio-task.html#asyncio.shield" title="asyncio.shield"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.shield()</span></code></a> or
<a class="reference internal" href="../library/asyncio-task.html#asyncio.gather" title="asyncio.gather"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.gather()</span></code></a>, and also the
<code class="xref py py-meth docutils literal notranslate"><span class="pre">get_event_loop()</span></code> method of
<code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.BaseDefaultEventLoopPolicy</span></code> now raise a
<a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> if called when there is no running event loop and the
current event loop was not set. Previously they implicitly created and set
a new current event loop. <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> is no longer emitted
if there is no running event loop but the current event loop was set.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97966">gh-97966</a>: On <code class="docutils literal notranslate"><span class="pre">uname_result</span></code>, restored expectation that <code class="docutils literal notranslate"><span class="pre">_fields</span></code> and
<code class="docutils literal notranslate"><span class="pre">_asdict</span></code> would include all six properties including <code class="docutils literal notranslate"><span class="pre">processor</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98248">gh-98248</a>: Provide informative error messages in <a class="reference internal" href="../library/struct.html#struct.pack" title="struct.pack"><code class="xref py py-func docutils literal notranslate"><span class="pre">struct.pack()</span></code></a> when
its integral arguments are not in range.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98108">gh-98108</a>: <code class="docutils literal notranslate"><span class="pre">zipfile.Path</span></code> is now pickleable if its initialization
parameters were pickleable (e.g. for file system paths).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98098">gh-98098</a>: Created packages from zipfile and test_zipfile modules,
separating <code class="docutils literal notranslate"><span class="pre">zipfile.Path</span></code> functionality.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/82836">gh-82836</a>: Fix <a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv4Address.is_private" title="ipaddress.IPv4Address.is_private"><code class="xref py py-attr docutils literal notranslate"><span class="pre">is_private</span></code></a> properties in the
<a class="reference internal" href="../library/ipaddress.html#module-ipaddress" title="ipaddress: IPv4/IPv6 manipulation library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress</span></code></a> module. Previously non-private networks (0.0.0.0/0) would
return <code class="docutils literal notranslate"><span class="pre">True</span></code> from this method; now they correctly return <code class="docutils literal notranslate"><span class="pre">False</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96828">gh-96828</a>: Add an <a class="reference internal" href="../library/ssl.html#ssl.OP_ENABLE_KTLS" title="ssl.OP_ENABLE_KTLS"><code class="xref py py-const docutils literal notranslate"><span class="pre">OP_ENABLE_KTLS</span></code></a> option for enabling the use
of the kernel TLS (kTLS). Patch by Illia Volochii.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88863">gh-88863</a>: To avoid apparent memory leaks when
<a class="reference internal" href="../library/asyncio-stream.html#asyncio.open_connection" title="asyncio.open_connection"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.open_connection()</span></code></a> raises, break reference cycles generated
by local exception and future instances (which has exception instance as
its member var). Patch by Dong Uk, Kang.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91078">gh-91078</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">TarFile.next()</span></code> now returns <code class="docutils literal notranslate"><span class="pre">None</span></code> when called on an
empty tarfile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47220">bpo-47220</a>: Document the optional <em>callback</em> parameter of
<code class="xref py py-class docutils literal notranslate"><span class="pre">WeakMethod</span></code>. Patch by Géry Ogam.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44817">bpo-44817</a>: Ignore WinError 53 (ERROR_BAD_NETPATH), 65
(ERROR_NETWORK_ACCESS_DENIED) and 161 (ERROR_BAD_PATHNAME) when using
ntpath.realpath().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41260">bpo-41260</a>: Rename the <em>fmt</em> parameter of the pure Python implementation of
<a class="reference internal" href="../library/datetime.html#datetime.date.strftime" title="datetime.date.strftime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.date.strftime()</span></code></a> to <em>format</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15999">bpo-15999</a>: All built-in functions now accept arguments of any type instead
of just <code class="docutils literal notranslate"><span class="pre">bool</span></code> and <code class="docutils literal notranslate"><span class="pre">int</span></code> for boolean parameters.</p></li>
</ul>
</section>
<section id="id230">
<h3>Documentation<a class="headerlink" href="#id230" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99931">gh-99931</a>: Use <a class="reference external" href="https://sphinxext-opengraph.readthedocs.io/">sphinxext-opengraph</a> to generate <a class="reference external" href="https://ogp.me/">OpenGraph
metadata</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89682">gh-89682</a>: Reworded docstring of the default <code class="docutils literal notranslate"><span class="pre">__contains__</span></code> to clarify
that it returns a <a class="reference internal" href="../library/functions.html#bool" title="bool"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88330">gh-88330</a>: Improved the description of what a resource is in
importlib.resources docs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92892">gh-92892</a>: Document that calling variadic functions with ctypes requires
special care on macOS/arm64 (and possibly other platforms).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41825">bpo-41825</a>: Restructured the documentation for the <a class="reference internal" href="../library/os.html#os.wait" title="os.wait"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.wait*</span></code></a> family of functions, and improved the docs for
<a class="reference internal" href="../library/os.html#os.waitid" title="os.waitid"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.waitid()</span></code></a> with more explanation of the possible argument
constants.</p></li>
</ul>
</section>
<section id="id231">
<h3>Tests<a class="headerlink" href="#id231" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99892">gh-99892</a>: Skip test_normalization() of test_unicodedata if it fails to
download NormalizationTest.txt file from pythontest.net. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99934">gh-99934</a>: Correct test_marsh on (32 bit) x86: test_deterministic sets was
failing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99741">gh-99741</a>: We’ve implemented multi-phase init (PEP 489/630/687) for the
internal (for testing) _xxsubinterpreters module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99659">gh-99659</a>: Optional big memory tests in <code class="docutils literal notranslate"><span class="pre">test_sqlite3</span></code> now catch the
correct <code class="xref py py-exc docutils literal notranslate"><span class="pre">sqlite.DataError</span></code> exception type in case of too large
strings and/or blobs passed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99593">gh-99593</a>: Cover the Unicode C API with tests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96002">gh-96002</a>: Add functional test for Argument Clinic.</p></li>
</ul>
</section>
<section id="id232">
<h3>Build<a class="headerlink" href="#id232" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99086">gh-99086</a>: Fix <code class="docutils literal notranslate"><span class="pre">-Wimplicit-int</span></code>, <code class="docutils literal notranslate"><span class="pre">-Wstrict-prototypes</span></code>, and
<code class="docutils literal notranslate"><span class="pre">-Wimplicit-function-declaration</span></code> compiler warnings in
<strong class="program">configure</strong> checks.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99337">gh-99337</a>: Fix a compilation issue with GCC 12 on macOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99289">gh-99289</a>: Add a <code class="docutils literal notranslate"><span class="pre">COMPILEALL_OPTS</span></code> variable in Makefile to override
<a class="reference internal" href="../library/compileall.html#module-compileall" title="compileall: Tools for byte-compiling all Python source files in a directory tree."><code class="xref py py-mod docutils literal notranslate"><span class="pre">compileall</span></code></a> options (default: <code class="docutils literal notranslate"><span class="pre">-j0</span></code>) in <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>. Also
merged the <code class="docutils literal notranslate"><span class="pre">compileall</span></code> commands into a single command building .pyc
files for the all optimization levels (0, 1, 2) at once. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98872">gh-98872</a>: Fix a possible fd leak in <code class="docutils literal notranslate"><span class="pre">Programs/_freeze_module.c</span></code>
introduced in Python 3.11.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88226">gh-88226</a>: Always define <code class="docutils literal notranslate"><span class="pre">TARGET_*</span></code> labels in <code class="docutils literal notranslate"><span class="pre">Python/ceval.c</span></code>, even if
<code class="docutils literal notranslate"><span class="pre">USE_COMPUTED_GOTOS</span></code> is disabled. This allows breakpoints to be set at
those labels in (for instance) <code class="docutils literal notranslate"><span class="pre">gdb</span></code>.</p></li>
</ul>
</section>
<section id="id233">
<h3>Windows<a class="headerlink" href="#id233" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99345">gh-99345</a>: Use faster initialization functions to detect install location
for Windows Store package</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98629">gh-98629</a>: Fix initialization of <a class="reference internal" href="../library/sys.html#sys.version" title="sys.version"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.version</span></code></a> and <code class="docutils literal notranslate"><span class="pre">sys._git</span></code> on
Windows</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99442">gh-99442</a>: Fix handling in <a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a> when <code class="docutils literal notranslate"><span class="pre">argv[0]</span></code> does not
include a file extension.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40882">bpo-40882</a>: Fix a memory leak in
<a class="reference internal" href="../library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.SharedMemory" title="multiprocessing.shared_memory.SharedMemory"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.shared_memory.SharedMemory</span></code></a> on Windows.</p></li>
</ul>
</section>
<section id="id234">
<h3>macOS<a class="headerlink" href="#id234" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87235">gh-87235</a>: On macOS <code class="docutils literal notranslate"><span class="pre">python3</span> <span class="pre">/dev/fd/9</span> <span class="pre">9</path/to/script.py</span></code> failed for
any script longer than a couple of bytes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98940">gh-98940</a>: Fix <code class="docutils literal notranslate"><span class="pre">Mac/Extras.install.py</span></code> file filter bug.</p></li>
</ul>
</section>
<section id="id235">
<h3>Tools/Demos<a class="headerlink" href="#id235" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/64490">gh-64490</a>: Argument Clinic varargs bugfixes</p>
<ul>
<li><p>Fix out-of-bounds error in <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyArg_UnpackKeywordsWithVararg()</span></code>.</p></li>
<li><p>Fix incorrect check which allowed more than one varargs in clinic.py.</p></li>
<li><p>Fix miscalculation of <code class="docutils literal notranslate"><span class="pre">noptargs</span></code> in generated code.</p></li>
<li><p>Do not generate <code class="docutils literal notranslate"><span class="pre">noptargs</span></code> when there is a vararg argument and no optional argument.</p></li>
</ul>
</li>
</ul>
</section>
<section id="id236">
<h3>C API<a class="headerlink" href="#id236" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98680">gh-98680</a>: <code class="docutils literal notranslate"><span class="pre">PyBUF_*</span></code> constants were marked as part of Limited API of
Python 3.11+. These were available in 3.11.0 with
<a class="reference internal" href="../c-api/stable.html#c.Py_LIMITED_API" title="Py_LIMITED_API"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_LIMITED_API</span></code></a> defined for 3.11, and are necessary to use the
buffer API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99612">gh-99612</a>: Fix <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_DecodeUTF8Stateful" title="PyUnicode_DecodeUTF8Stateful"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_DecodeUTF8Stateful()</span></code></a> for ASCII-only data:
<code class="docutils literal notranslate"><span class="pre">*consumed</span></code> was not set.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/47146">gh-47146</a>: The <code class="docutils literal notranslate"><span class="pre">structmember.h</span></code> header is deprecated. Its non-deprecated
contents are now available just by including <code class="docutils literal notranslate"><span class="pre">Python.h</span></code>, with a <code class="docutils literal notranslate"><span class="pre">Py_</span></code>
prefix added if it was missing. (Deprecated contents are
<a class="reference internal" href="../c-api/structures.html#c.T_OBJECT" title="T_OBJECT"><code class="xref c c-macro docutils literal notranslate"><span class="pre">T_OBJECT</span></code></a>, <a class="reference internal" href="../c-api/structures.html#c.T_NONE" title="T_NONE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">T_NONE</span></code></a>, and no-op flags.) Patch by Petr
Viktorin, based on earlier work by Alexander Belopolsky and Matthias
Braun.</p></li>
</ul>
</section>
</section>
<section id="python-3-12-0-alpha-2">
<h2>Python 3.12.0 alpha 2<a class="headerlink" href="#python-3-12-0-alpha-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2022-11-14</em></p>
<section id="id237">
<h3>Security<a class="headerlink" href="#id237" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98433">gh-98433</a>: The IDNA codec decoder used on DNS hostnames by <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> or
<a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> related name resolution functions no longer involves a
quadratic algorithm. This prevents a potential CPU denial of service if an
out-of-spec excessive length hostname involving bidirectional characters
were decoded. Some protocols such as <a class="reference internal" href="../library/urllib.html#module-urllib" title="urllib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib</span></code></a> http <code class="samp docutils literal notranslate"><span class="pre">3</span><em><span class="pre">xx</span></em></code>
redirects potentially allow for an attacker to supply such a name.</p>
<p>Individual labels within an IDNA encoded DNS name will now raise an error
early during IDNA decoding if they are longer than 1024 unicode characters
given that each decoded DNS label must be 63 or fewer characters and the
entire decoded DNS name is limited to 255. Only an application presenting
a hostname or label consisting primarily of <span class="target" id="index-153"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3454.html"><strong>RFC 3454</strong></a> section 3.1
“Nothing” characters to be removed would run into of this new limit. See
also <span class="target" id="index-154"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5894.html"><strong>RFC 5894</strong></a> section 6 and <span class="target" id="index-155"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3491.html"><strong>RFC 3491</strong></a>.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98739">gh-98739</a>: Update bundled libexpat to 2.5.0</p></li>
</ul>
</section>
<section id="id238">
<h3>Core and Builtins<a class="headerlink" href="#id238" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81057">gh-81057</a>: The docs clearly say that <code class="docutils literal notranslate"><span class="pre">PyImport_Inittab</span></code>,
<a class="reference internal" href="../c-api/import.html#c.PyImport_AppendInittab" title="PyImport_AppendInittab"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_AppendInittab()</span></code></a>, and <a class="reference internal" href="../c-api/import.html#c.PyImport_ExtendInittab" title="PyImport_ExtendInittab"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ExtendInittab()</span></code></a>
should not be used after <a class="reference internal" href="../c-api/init.html#c.Py_Initialize" title="Py_Initialize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Initialize()</span></code></a> has been called. We now
enforce this for the two functions. Additionally, the runtime now uses an
internal copy of <code class="docutils literal notranslate"><span class="pre">PyImport_Inittab</span></code>, to guard against modification.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99298">gh-99298</a>: Fix an issue that could potentially cause incorrect error
handling for some bytecode instructions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99254">gh-99254</a>: The compiler now removes all unused constants from code objects
(except the first one, which may be a docstring).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99205">gh-99205</a>: Fix an issue that prevented <a class="reference internal" href="../c-api/init.html#c.PyThreadState" title="PyThreadState"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyThreadState</span></code></a> and
<a class="reference internal" href="../c-api/init.html#c.PyInterpreterState" title="PyInterpreterState"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyInterpreterState</span></code></a> memory from being freed properly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81057">gh-81057</a>: The 18 global C variables holding the state of the allocators
have been moved to <code class="docutils literal notranslate"><span class="pre">_PyRuntimeState</span></code>. This is a strictly internal
change with no change in behavior.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99181">gh-99181</a>: Fix failure in <a class="reference internal" href="../reference/compound_stmts.html#except-star"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">except*</span></code></a> with unhashable
exceptions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99204">gh-99204</a>: Fix calculation of <code class="xref py py-data docutils literal notranslate"><span class="pre">sys._base_executable</span></code> when inside a
POSIX virtual environment using copies of the python binary when the base
installation does not provide the executable name used by the venv.
Calculation will fall back to alternative names (“python<MAJOR>”,
“python<MAJOR>.<MINOR>”).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96055">gh-96055</a>: Update <a class="reference internal" href="../library/faulthandler.html#module-faulthandler" title="faulthandler: Dump the Python traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">faulthandler</span></code></a> to emit an error message with the
proper unexpected signal number. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99153">gh-99153</a>: Fix location of <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> for a <a class="reference internal" href="../reference/compound_stmts.html#try"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">try</span></code></a> block
with both <a class="reference internal" href="../reference/compound_stmts.html#except"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">except</span></code></a> and <a class="reference internal" href="../reference/compound_stmts.html#except-star"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">except*</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98686">gh-98686</a>: Merge the adaptive opcode logic into each instruction’s
unquickened variant, and merge the logic in <code class="docutils literal notranslate"><span class="pre">EXTENDED_ARG_QUICK</span></code> into
<a class="reference internal" href="../library/dis.html#opcode-EXTENDED_ARG"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">EXTENDED_ARG</span></code></a>. With these changes, the quickening that happens at
code object creation is now only responsible for initializing warmup
counters and inserting superinstructions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99103">gh-99103</a>: Fix the error reporting positions of specialized traceback
anchors when the source line contains Unicode characters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99139">gh-99139</a>: Improve the error suggestion for <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> exceptions for
instances. Now if a <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> is raised in a method and the
instance has an attribute that’s exactly equal to the name in the
exception, the suggestion will include <code class="docutils literal notranslate"><span class="pre">self.<NAME></span></code> instead of the
closest match in the method scope. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98401">gh-98401</a>: Octal escapes with value larger than <code class="docutils literal notranslate"><span class="pre">0o377</span></code> (ex: <code class="docutils literal notranslate"><span class="pre">"\477"</span></code>),
deprecated in Python 3.11, now produce a <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a>, instead of
<a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a>. In a future Python version they will be
eventually a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98401">gh-98401</a>: A backslash-character pair that is not a valid escape sequence
now generates a <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a>, instead of
<a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a>. For example, <code class="docutils literal notranslate"><span class="pre">re.compile("\d+\.\d+")</span></code> now
emits a <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a> (<code class="docutils literal notranslate"><span class="pre">"\d"</span></code> is an invalid escape sequence), use
raw strings for regular expression: <code class="docutils literal notranslate"><span class="pre">re.compile(r"\d+\.\d+")</span></code>. In a
future Python version, <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> will eventually be raised,
instead of <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96793">gh-96793</a>: Handle StopIteration and StopAsyncIteration raised in generator
or coroutines in the bytecode, rather than in wrapping C code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98931">gh-98931</a>: Improve the <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> error message when the user types
<code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">x</span> <span class="pre">from</span> <span class="pre">y</span></code> instead of <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">y</span> <span class="pre">import</span> <span class="pre">x</span></code>. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98852">gh-98852</a>: Fix subscription of type aliases containing bare generic types
or types like <a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypeVar</span></code></a>: for example <code class="docutils literal notranslate"><span class="pre">tuple[A,</span> <span class="pre">T][int]</span></code>
and <code class="docutils literal notranslate"><span class="pre">tuple[TypeVar,</span> <span class="pre">T][int]</span></code>, where <code class="docutils literal notranslate"><span class="pre">A</span></code> is a generic type, and <code class="docutils literal notranslate"><span class="pre">T</span></code>
is a type variable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98925">gh-98925</a>: Lower the recursion depth for marshal on WASI to support
(in-development) wasmtime 2.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98783">gh-98783</a>: Fix multiple crashes in debug mode when <code class="docutils literal notranslate"><span class="pre">str</span></code> subclasses are
used instead of <code class="docutils literal notranslate"><span class="pre">str</span></code> itself.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98811">gh-98811</a>: Use complete source locations to simplify detection of
<code class="docutils literal notranslate"><span class="pre">__future__</span></code> imports which are not at the beginning of the file. Also
corrects the offset in the exception raised in one case, which was off by
one and impeded highlighting.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96793">gh-96793</a>: Add specialization of <a class="reference internal" href="../library/dis.html#opcode-FOR_ITER"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">FOR_ITER</span></code></a> for generators. Saves
multiple layers of dispatch and checking to get from the
<a class="reference internal" href="../library/dis.html#opcode-FOR_ITER"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">FOR_ITER</span></code></a> instruction in the caller to the <a class="reference internal" href="../library/dis.html#opcode-RESUME"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">RESUME</span></code></a> in
the generator.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98762">gh-98762</a>: Fix source locations of <a class="reference internal" href="../reference/compound_stmts.html#match"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">match</span></code></a> sub-patterns.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98586">gh-98586</a>: Added the methods <a class="reference internal" href="../c-api/call.html#c.PyObject_Vectorcall" title="PyObject_Vectorcall"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_Vectorcall()</span></code></a> and
<a class="reference internal" href="../c-api/call.html#c.PyObject_VectorcallMethod" title="PyObject_VectorcallMethod"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_VectorcallMethod()</span></code></a> to the <a class="reference internal" href="../c-api/stable.html#stable"><span class="std std-ref">Limited API</span></a>
along with the auxiliary macro constant
<a class="reference internal" href="../c-api/call.html#c.PY_VECTORCALL_ARGUMENTS_OFFSET" title="PY_VECTORCALL_ARGUMENTS_OFFSET"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PY_VECTORCALL_ARGUMENTS_OFFSET</span></code></a>.</p>
<p>The availability of these functions enables more efficient <span class="target" id="index-156"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
vector calls from binary extension modules that avoid argument
boxing/unboxing overheads.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99257">gh-99257</a>: Fix an issue where member descriptors (such as those for
<a class="reference internal" href="../reference/datamodel.html#object.__slots__" title="object.__slots__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__slots__</span></code></a>) could behave incorrectly or crash instead of
raising a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when accessed via an instance of an invalid
type.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93143">gh-93143</a>: Rather than changing <code class="xref py py-attr docutils literal notranslate"><span class="pre">co_code</span></code>, the
interpreter will now display a <a class="reference internal" href="../library/exceptions.html#RuntimeWarning" title="RuntimeWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeWarning</span></code></a> and assign
<a class="reference internal" href="../library/constants.html#None" title="None"><code class="xref py py-const docutils literal notranslate"><span class="pre">None</span></code></a> to any fast locals that are left unbound after jumps or
<a class="reference internal" href="../reference/simple_stmts.html#del"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">del</span></code></a> statements executed while tracing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96421">gh-96421</a>: When calling into Python code from C code, through
<a class="reference internal" href="../c-api/veryhigh.html#c.PyEval_EvalFrameEx" title="PyEval_EvalFrameEx"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_EvalFrameEx()</span></code></a> or a related C-API function, a shim frame in
inserted into the call stack. This occurs in the
<code class="docutils literal notranslate"><span class="pre">_PyEval_EvalFrameDefault()</span></code> function. The extra frame should be
invisible to all Python and most C extensions, but out-of-process
profilers and debuggers need to be aware of it. These shim frames can be
detected by checking <code class="docutils literal notranslate"><span class="pre">frame->owner</span> <span class="pre">==</span> <span class="pre">FRAME_OWNED_BY_CSTACK</span></code>.</p>
<p>Extensions implementing their own interpreters using PEP 523 need to be
aware of this shim frame and the changes to the semantics of
<a class="reference internal" href="../library/dis.html#opcode-RETURN_VALUE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">RETURN_VALUE</span></code></a>, <a class="reference internal" href="../library/dis.html#opcode-YIELD_VALUE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">YIELD_VALUE</span></code></a>, and
<a class="reference internal" href="../library/dis.html#opcode-RETURN_GENERATOR"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">RETURN_GENERATOR</span></code></a>, which now clear the frame.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98415">gh-98415</a>: Fix detection of MAC addresses for <a class="reference internal" href="../library/uuid.html#module-uuid" title="uuid: UUID objects (universally unique identifiers) according to RFC 9562"><code class="xref py py-mod docutils literal notranslate"><span class="pre">uuid</span></code></a> on certain OSs.
Patch by Chaim Sanders</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98686">gh-98686</a>: Quicken all code objects, and specialize adaptive bytecode
instructions more aggressively.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92119">gh-92119</a>: Print exception class name instead of its string representation
when raising errors from <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> calls.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91058">gh-91058</a>: <a class="reference internal" href="../library/exceptions.html#ImportError" title="ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a> raised from failed <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre"><module></span> <span class="pre">import</span>
<span class="pre"><name></span></code> now include suggestions for the value of <code class="docutils literal notranslate"><span class="pre"><name></span></code> based on the
available names in <code class="docutils literal notranslate"><span class="pre"><module></span></code>. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96793">gh-96793</a>: The <a class="reference internal" href="../library/dis.html#opcode-FOR_ITER"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">FOR_ITER</span></code></a> now leaves the iterator on the stack on
termination of the loop. This is to assist specialization of loops for
generators.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90716">gh-90716</a>: Add _pylong.py module. It includes asymptotically faster
algorithms that can be used for operations on integers with many digits.
It is used by longobject.c to speed up some operations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95389">gh-95389</a>: Expose <a class="reference internal" href="../library/socket.html#socket.ETH_P_ALL" title="socket.ETH_P_ALL"><code class="xref py py-const docutils literal notranslate"><span class="pre">ETH_P_ALL</span></code></a> and some of the
<a class="reference internal" href="../library/socket.html#socket-ethernet-types"><span class="std std-ref">ETHERTYPE_* constants</span></a> in <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a>.
Patch by Noam Cohen.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93696">gh-93696</a>: Allow <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> to locate source for frozen modules in the
standard library.</p></li>
</ul>
</section>
<section id="id239">
<h3>Library<a class="headerlink" href="#id239" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99418">gh-99418</a>: Fix bug in <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlparse" title="urllib.parse.urlparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlparse()</span></code></a> that causes URL schemes
that begin with a digit, a plus sign, or a minus sign to be parsed
incorrectly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94597">gh-94597</a>: Deprecate <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.AbstractChildWatcher</span></code> to be removed in
Python 3.14. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99305">gh-99305</a>: Improve performance of <a class="reference internal" href="../library/secrets.html#secrets.token_hex" title="secrets.token_hex"><code class="xref py py-func docutils literal notranslate"><span class="pre">secrets.token_hex()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74044">gh-74044</a>: Fixed bug where <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> reported incorrect
arguments for decorated methods.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99275">gh-99275</a>: Fix <code class="docutils literal notranslate"><span class="pre">SystemError</span></code> in <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> when exception was not set
during <code class="docutils literal notranslate"><span class="pre">__initsubclass__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99277">gh-99277</a>: Remove older version of
<code class="docutils literal notranslate"><span class="pre">_SSLProtocolTransport.get_write_buffer_limits</span></code> in
<code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio.sslproto</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99248">gh-99248</a>: fix negative numbers failing in verify()</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99155">gh-99155</a>: Fix <a class="reference internal" href="../library/statistics.html#statistics.NormalDist" title="statistics.NormalDist"><code class="xref py py-class docutils literal notranslate"><span class="pre">statistics.NormalDist</span></code></a> pickle with <code class="docutils literal notranslate"><span class="pre">0</span></code> and <code class="docutils literal notranslate"><span class="pre">1</span></code>
protocols.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93464">gh-93464</a>: <code class="docutils literal notranslate"><span class="pre">enum.auto()</span></code> is now correctly activated when combined with
other assignment values. E.g. <code class="docutils literal notranslate"><span class="pre">ONE</span> <span class="pre">=</span> <span class="pre">auto(),</span> <span class="pre">'some</span> <span class="pre">text'</span></code> will now
evaluate as <code class="docutils literal notranslate"><span class="pre">(1,</span> <span class="pre">'some</span> <span class="pre">text')</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99134">gh-99134</a>: Update the bundled copy of pip to version 22.3.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92584">gh-92584</a>: Remove the <code class="docutils literal notranslate"><span class="pre">distutils</span></code> package. It was deprecated in Python
3.10 by <span class="target" id="index-157"></span><a class="pep reference external" href="https://peps.python.org/pep-0632/"><strong>PEP 632</strong></a> “Deprecate distutils module”. For projects still using
<code class="docutils literal notranslate"><span class="pre">distutils</span></code> and cannot be updated to something else, the <code class="docutils literal notranslate"><span class="pre">setuptools</span></code>
project can be installed: it still provides <code class="docutils literal notranslate"><span class="pre">distutils</span></code>. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98999">gh-98999</a>: Now <code class="xref py py-mod docutils literal notranslate"><span class="pre">_pyio</span></code> is consistent with <code class="xref py py-mod docutils literal notranslate"><span class="pre">_io</span></code> in raising
<code class="docutils literal notranslate"><span class="pre">ValueError</span></code> when executing methods over closed buffers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83004">gh-83004</a>: Clean up refleak on failed module initialisation in
<code class="xref py py-mod docutils literal notranslate"><span class="pre">_zoneinfo</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83004">gh-83004</a>: Clean up refleaks on failed module initialisation in
<code class="xref py py-mod docutils literal notranslate"><span class="pre">_pickle</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83004">gh-83004</a>: Clean up refleak on failed module initialisation in <code class="xref py py-mod docutils literal notranslate"><span class="pre">_io</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98897">gh-98897</a>: Fix memory leak in <a class="reference internal" href="../library/math.html#math.dist" title="math.dist"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.dist()</span></code></a> when both points don’t have
the same dimension. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98878">gh-98878</a>: Use the frame bound builtins when offering a name suggestion in
<a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> to prevent crashing when <code class="docutils literal notranslate"><span class="pre">__builtins__</span></code> is not a dict.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98139">gh-98139</a>: In <code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib._bootstrap</span></code>, enhance namespace package repr
to <code class="docutils literal notranslate"><span class="pre"><module</span> <span class="pre">'x'</span> <span class="pre">(namespace)</span> <span class="pre">from</span> <span class="pre">['path']></span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90352">gh-90352</a>: Fix <code class="docutils literal notranslate"><span class="pre">_SelectorDatagramTransport</span></code> to inherit from
<a class="reference internal" href="../library/asyncio-protocol.html#asyncio.DatagramTransport" title="asyncio.DatagramTransport"><code class="xref py py-class docutils literal notranslate"><span class="pre">DatagramTransport</span></code></a> in <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>. Patch by Kumar
Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98793">gh-98793</a>: Fix argument typechecks in <code class="xref py py-func docutils literal notranslate"><span class="pre">_overlapped.WSAConnect()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">_overlapped.Overlapped.WSASendTo()</span></code> functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98744">gh-98744</a>: Prevent crashing in <a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> when retrieving the
byte-offset for some source files that contain certain unicode characters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98740">gh-98740</a>: Fix internal error in the <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> module which in very rare
circumstances prevented compilation of a regular expression containing a
<a class="reference internal" href="../library/re.html#re-conditional-expression"><span class="std std-ref">conditional expression</span></a> without the
“else” branch.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98703">gh-98703</a>: Fix <a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamWriter.drain" title="asyncio.StreamWriter.drain"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.StreamWriter.drain()</span></code></a> to call
<code class="docutils literal notranslate"><span class="pre">protocol.connection_lost</span></code> callback only once on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98624">gh-98624</a>: Add a mutex to unittest.mock.NonCallableMock to protect
concurrent access to mock attributes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98658">gh-98658</a>: The <a class="reference internal" href="../library/array.html#array.array" title="array.array"><code class="xref py py-class docutils literal notranslate"><span class="pre">array.array</span></code></a> class now supports subscripting, making
it a <a class="reference internal" href="../glossary.html#term-generic-type"><span class="xref std std-term">generic type</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98284">gh-98284</a>: Improved <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypeError</span></code></a> message for undefined abstract
methods of a <a class="reference internal" href="../library/abc.html#abc.ABC" title="abc.ABC"><code class="xref py py-class docutils literal notranslate"><span class="pre">abc.ABC</span></code></a> instance. The names of the missing methods
are surrounded by single-quotes to highlight them.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96151">gh-96151</a>: Allow <code class="docutils literal notranslate"><span class="pre">BUILTINS</span></code> to be a valid field name for frozen
dataclasses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98086">gh-98086</a>: Make sure <code class="docutils literal notranslate"><span class="pre">patch.dict()</span></code> can be applied on async functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/72719">gh-72719</a>: Remove modules <code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncore</span></code> and <code class="xref py py-mod docutils literal notranslate"><span class="pre">asynchat</span></code>, which were
deprecated by <span class="target" id="index-158"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96192">gh-96192</a>: Fix handling of <code class="docutils literal notranslate"><span class="pre">bytes</span></code> <a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like objects</span></a> in <code class="xref py py-func docutils literal notranslate"><span class="pre">os.ismount()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94172">gh-94172</a>: <a class="reference internal" href="../library/ftplib.html#module-ftplib" title="ftplib: FTP protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftplib</span></code></a>: Remove the <code class="docutils literal notranslate"><span class="pre">FTP_TLS.ssl_version</span></code> class
attribute: use the <em>context</em> parameter instead. Patch by Victor Stinner</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94172">gh-94172</a>: Remove the <em>keyfile</em> and <em>certfile</em> parameters from the
<a class="reference internal" href="../library/ftplib.html#module-ftplib" title="ftplib: FTP protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftplib</span></code></a>, <a class="reference internal" href="../library/imaplib.html#module-imaplib" title="imaplib: IMAP4 protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">imaplib</span></code></a>, <a class="reference internal" href="../library/poplib.html#module-poplib" title="poplib: POP3 protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">poplib</span></code></a> and <a class="reference internal" href="../library/smtplib.html#module-smtplib" title="smtplib: SMTP protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">smtplib</span></code></a> modules,
and the <em>key_file</em>, <em>cert_file</em> and <em>check_hostname</em> parameters from the
<a class="reference internal" href="../library/http.client.html#module-http.client" title="http.client: HTTP and HTTPS protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.client</span></code></a> module, all deprecated since Python 3.6. Use the
<em>context</em> parameter (<em>ssl_context</em> in <a class="reference internal" href="../library/imaplib.html#module-imaplib" title="imaplib: IMAP4 protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">imaplib</span></code></a>) instead. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83638">gh-83638</a>: Add the <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.autocommit" title="sqlite3.Connection.autocommit"><code class="xref py py-attr docutils literal notranslate"><span class="pre">autocommit</span></code></a> attribute to
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> and the <em>autocommit</em> parameter to
<a class="reference internal" href="../library/sqlite3.html#sqlite3.connect" title="sqlite3.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">sqlite3.connect()</span></code></a> to control <span class="target" id="index-159"></span><a class="pep reference external" href="https://peps.python.org/pep-0249/"><strong>PEP 249</strong></a>-compliant <a class="reference internal" href="../library/sqlite3.html#sqlite3-transaction-control-autocommit"><span class="std std-ref">transaction
handling</span></a>. Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92452">gh-92452</a>: Fixed a race condition that could cause
<a class="reference internal" href="../library/sysconfig.html#sysconfig.get_config_var" title="sysconfig.get_config_var"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_config_var()</span></code></a> to incorrectly return <a class="reference internal" href="../library/constants.html#None" title="None"><code class="xref py py-const docutils literal notranslate"><span class="pre">None</span></code></a> in
multi-threaded programs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91803">gh-91803</a>: Fix an error when using a method of objects mocked with
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.create_autospec" title="unittest.mock.create_autospec"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.create_autospec()</span></code></a> after it was sealed with
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.seal" title="unittest.mock.seal"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.seal()</span></code></a> function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38523">bpo-38523</a>: <a class="reference internal" href="../library/shutil.html#shutil.copytree" title="shutil.copytree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copytree()</span></code></a> now applies the
<em>ignore_dangling_symlinks</em> argument recursively.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40358">bpo-40358</a>: Add walk_up argument in <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.relative_to" title="pathlib.PurePath.relative_to"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.relative_to()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36267">bpo-36267</a>: Fix IndexError in <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser" title="argparse.ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a> when a
<code class="docutils literal notranslate"><span class="pre">store_true</span></code> action is given an explicit argument.</p></li>
</ul>
</section>
<section id="id240">
<h3>Documentation<a class="headerlink" href="#id240" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98832">gh-98832</a>: Changes wording of docstring for <a class="reference internal" href="../library/pathlib.html#pathlib.Path.iterdir" title="pathlib.Path.iterdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">pathlib.Path.iterdir()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97966">gh-97966</a>: Update uname docs to clarify the special nature of the platform
attribute and to indicate when it became late-bound.</p></li>
</ul>
</section>
<section id="id241">
<h3>Tests<a class="headerlink" href="#id241" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98903">gh-98903</a>: The Python test suite now fails with exit code 4 if no tests
ran. It should help detecting typos in test names and test methods.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98713">gh-98713</a>: Fix a bug in the <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> tests where a test relying on
CPython-specific implementation details was not decorated with
<code class="docutils literal notranslate"><span class="pre">@cpython_only</span></code> and was not skipped on other implementations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87390">gh-87390</a>: Add tests for star-unpacking with PEP 646, and some other
miscellaneous PEP 646 tests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96853">gh-96853</a>: Added explicit coverage of <code class="docutils literal notranslate"><span class="pre">Py_Initialize</span></code> (and hence
<code class="docutils literal notranslate"><span class="pre">Py_InitializeEx</span></code>) back to the embedding tests (all other embedding
tests migrated to <code class="docutils literal notranslate"><span class="pre">Py_InitializeFromConfig</span></code> in Python 3.11)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34272">bpo-34272</a>: Some C API tests were moved into the new Lib/test/test_capi/
directory.</p></li>
</ul>
</section>
<section id="id242">
<h3>Build<a class="headerlink" href="#id242" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99086">gh-99086</a>: Fix <code class="docutils literal notranslate"><span class="pre">-Wimplicit-int</span></code> compiler warning in <strong class="program">configure</strong>
check for <code class="docutils literal notranslate"><span class="pre">PTHREAD_SCOPE_SYSTEM</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/99016">gh-99016</a>: Fix build with <code class="docutils literal notranslate"><span class="pre">PYTHON_FOR_REGEN=python3.8</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97731">gh-97731</a>: Specify the full path to the source location for <code class="docutils literal notranslate"><span class="pre">make</span>
<span class="pre">docclean</span></code> (needed for cross-builds).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98949">gh-98949</a>: Drop unused build dependency on <code class="docutils literal notranslate"><span class="pre">readelf</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98989">gh-98989</a>: Use <code class="docutils literal notranslate"><span class="pre">python3.11</span></code>, if available, for regeneration and freezing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98831">gh-98831</a>: Add new tooling, in <code class="docutils literal notranslate"><span class="pre">Tools/cases_generator</span></code>, to generate the
interpreter switch statement from a list of opcode definitions. This only
affects adding, modifying or removing instruction definitions. The
instruction definitions now live in <code class="docutils literal notranslate"><span class="pre">Python/bytecodes.c</span></code>, in the form of
a <a class="reference external" href="https://github.com/faster-cpython/ideas/blob/main/3.12/interpreter_definition.md">custom DSL (under development)</a>.
The tooling reads this file and writes <code class="docutils literal notranslate"><span class="pre">Python/generated_cases.c.h</span></code>,
which is then included by <code class="docutils literal notranslate"><span class="pre">Python/ceval.c</span></code> to provide most of the cases
of the main interpreter switch.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98817">gh-98817</a>: Remove PCbuild/lib.pyproj: it’s not used for anything, is only a
minor convenience for Visual Studio users (who probably mostly don’t even
know about it), and it takes a lot of maintenance effort to keep updated.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98776">gh-98776</a>: Fix <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-test-levenshtein</span></code> for out-of-tree builds.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98707">gh-98707</a>: Don’t use vendored <code class="docutils literal notranslate"><span class="pre">libmpdec</span></code> headers if
<a class="reference internal" href="../using/configure.html#cmdoption-with-system-libmpdec"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-system-libmpdec</span></code></a> is passed to <strong class="program">configure</strong>. Don’t
use vendored <code class="docutils literal notranslate"><span class="pre">libexpat</span></code> headers if <a class="reference internal" href="../using/configure.html#cmdoption-with-system-expat"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-system-expat</span></code></a> is
passed to <strong class="program">configure</strong>.</p></li>
</ul>
</section>
<section id="id243">
<h3>Windows<a class="headerlink" href="#id243" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98689">gh-98689</a>: Update Windows builds to zlib v1.2.13. v1.2.12 has
<span class="target" id="index-160"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2022-37434"><strong>CVE 2022-37434</strong></a>, but the vulnerable <code class="docutils literal notranslate"><span class="pre">inflateGetHeader</span></code> API is not used
by Python.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98790">gh-98790</a>: Assumes that a missing <code class="docutils literal notranslate"><span class="pre">DLLs</span></code> directory means that standard
extension modules are in the executable’s directory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98745">gh-98745</a>: Update <code class="file docutils literal notranslate"><span class="pre">py.exe</span></code> launcher to install 3.11 by default and
3.12 on request.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98692">gh-98692</a>: Fix the <a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a> ignoring unrecognized shebang lines
instead of treating them as local paths</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94328">gh-94328</a>: Update Windows installer to use SQLite 3.39.4.</p></li>
</ul>
</section>
<section id="id244">
<h3>macOS<a class="headerlink" href="#id244" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94328">gh-94328</a>: Update macOS installer to SQLite 3.39.4.</p></li>
</ul>
</section>
<section id="id245">
<h3>C API<a class="headerlink" href="#id245" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98724">gh-98724</a>: The <a class="reference internal" href="../c-api/refcounting.html#c.Py_CLEAR" title="Py_CLEAR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_CLEAR</span></code></a>, <a class="reference internal" href="../c-api/refcounting.html#c.Py_SETREF" title="Py_SETREF"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_SETREF</span></code></a> and
<a class="reference internal" href="../c-api/refcounting.html#c.Py_XSETREF" title="Py_XSETREF"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_XSETREF</span></code></a> macros now only evaluate their argument once. If the
argument has side effects, these side effects are no longer duplicated.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98978">gh-98978</a>: Fix use-after-free in <code class="docutils literal notranslate"><span class="pre">Py_SetPythonHome(NULL)</span></code>,
<code class="docutils literal notranslate"><span class="pre">Py_SetProgramName(NULL)</span></code> and <code class="docutils literal notranslate"><span class="pre">_Py_SetProgramFullPath(NULL)</span></code> function
calls. Issue reported by Benedikt Reinartz. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98410">gh-98410</a>: Add <code class="docutils literal notranslate"><span class="pre">getbufferproc</span></code> and <code class="docutils literal notranslate"><span class="pre">releasebufferproc</span></code> to the stable
API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98610">gh-98610</a>: Some configurable capabilities of sub-interpreters have changed.
They always allow subprocesses (<a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a>) now, whereas before
subprocesses could be optionally disallowed for a sub-interpreter. Instead
<code class="xref py py-func docutils literal notranslate"><span class="pre">os.exec()</span></code> can now be disallowed. Disallowing daemon threads is now
supported. Disallowing all threads is still allowed, but is never done by
default. Note that the optional restrictions are only available through
<code class="docutils literal notranslate"><span class="pre">_Py_NewInterpreterFromConfig()</span></code>, which isn’t a public API. They do not
affect the main interpreter, nor <a class="reference internal" href="../c-api/init.html#c.Py_NewInterpreter" title="Py_NewInterpreter"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_NewInterpreter()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98608">gh-98608</a>: A <code class="docutils literal notranslate"><span class="pre">_PyInterpreterConfig</span></code> has been added and
<code class="docutils literal notranslate"><span class="pre">_Py_NewInterpreter()</span></code> has been renamed to
<code class="docutils literal notranslate"><span class="pre">_Py_NewInterpreterFromConfig()</span></code>. The “isolated_subinterpreters”
argument is now a granular config that captures the previous behavior.
Note that this is all “private” API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96853">gh-96853</a>: <code class="docutils literal notranslate"><span class="pre">Py_InitializeEx</span></code> now correctly calls <code class="docutils literal notranslate"><span class="pre">PyConfig_Clear</span></code> after
initializing the interpreter (the omission didn’t cause a memory leak only
because none of the dynamically allocated config fields are populated by
the wrapper function)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91248">gh-91248</a>: Add <a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetVar" title="PyFrame_GetVar"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetVar()</span></code></a> and <a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetVarString" title="PyFrame_GetVarString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetVarString()</span></code></a>
functions to get a frame variable by its name. Patch by Victor Stinner.</p></li>
</ul>
</section>
</section>
<section id="python-3-12-0-alpha-1">
<h2>Python 3.12.0 alpha 1<a class="headerlink" href="#python-3-12-0-alpha-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2022-10-25</em></p>
<section id="id246">
<h3>Security<a class="headerlink" href="#id246" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97616">gh-97616</a>: Fix multiplying a list by an integer (<code class="docutils literal notranslate"><span class="pre">list</span> <span class="pre">*=</span> <span class="pre">int</span></code>): detect
the integer overflow when the new allocated length is close to the maximum
size. Issue reported by Jordan Limor. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97514">gh-97514</a>: On Linux the <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> module returns to using
filesystem backed unix domain sockets for communication with the
<em>forkserver</em> process instead of the Linux abstract socket namespace. Only
code that chooses to use the <a class="reference internal" href="../library/multiprocessing.html#multiprocessing-start-methods"><span class="std std-ref">“forkserver” start method</span></a> is affected.</p>
<p>Abstract sockets have no permissions and could allow any user on the
system in the same <a class="reference external" href="https://man7.org/linux/man-pages/man7/network_namespaces.7.html">network namespace</a> (often
the whole system) to inject code into the multiprocessing <em>forkserver</em>
process. This was a potential privilege escalation. Filesystem based
socket permissions restrict this to the <em>forkserver</em> process user as was
the default in Python 3.8 and earlier.</p>
<p>This prevents Linux <span class="target" id="index-161"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2022-42919"><strong>CVE 2022-42919</strong></a>.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87389">gh-87389</a>: <a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a>: Fix an open redirection vulnerability in the
HTTP server when an URI path starts with <code class="docutils literal notranslate"><span class="pre">//</span></code>. Vulnerability
discovered, and initial fix proposed, by Hamza Avvan.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79096">gh-79096</a>: LWPCookieJar and MozillaCookieJar create files with file mode
600 instead of 644 (Microsoft Windows is not affected)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92888">gh-92888</a>: Fix <code class="docutils literal notranslate"><span class="pre">memoryview</span></code> use after free when accessing the backing
buffer in certain cases.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/68966">gh-68966</a>: The deprecated mailcap module now refuses to inject unsafe text
(filenames, MIME types, parameters) into shell commands. Instead of using
such text, it will warn and act as if a match was not found (or for test
commands, as if the test failed).</p></li>
</ul>
</section>
<section id="id247">
<h3>Core and Builtins<a class="headerlink" href="#id247" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98374">gh-98374</a>: Suppress ImportError for invalid query for help() command. Patch
by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98461">gh-98461</a>: Fix source location in bytecode for list, set and dict
comprehensions as well as generator expressions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98354">gh-98354</a>: Added unicode check for <code class="docutils literal notranslate"><span class="pre">name</span></code> attribute of <code class="docutils literal notranslate"><span class="pre">spec</span></code> argument
passed in <code class="xref py py-func docutils literal notranslate"><span class="pre">_imp.create_builtin()</span></code> function.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98398">gh-98398</a>: Fix source location of ‘assert’ bytecodes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98390">gh-98390</a>: Fix location of sub-expressions of boolean expressions, by
reducing their scope to that of the sub-expression.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98254">gh-98254</a>: Modules from the standard library are now potentially suggested
as part of the error messages displayed by the interpreter when an
<a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> is raised to the top level. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97997">gh-97997</a>: Add running column offset to the tokenizer state to avoid
calculating AST column information with pointer arithmetic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97973">gh-97973</a>: Modify the tokenizer to return all necessary information the
parser needs to set location information in the AST nodes, so that the
parser does not have to calculate those doing pointer arithmetic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96078">gh-96078</a>: <a class="reference internal" href="../library/os.html#os.sched_yield" title="os.sched_yield"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.sched_yield()</span></code></a> now release the GIL while calling
sched_yield(2). Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97955">gh-97955</a>: Migrate <a class="reference internal" href="../library/zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a> to Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97912">gh-97912</a>: The compiler now avoids quadratic behavior when finding which
instructions should use the <a class="reference internal" href="../library/dis.html#opcode-LOAD_FAST_CHECK"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_FAST_CHECK</span></code></a> opcode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97002">gh-97002</a>: Fix an issue where several frame objects could be backed by the
same interpreter frame, possibly leading to corrupted memory and hard
crashes of the interpreter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97943">gh-97943</a>: Bugfix: <a class="reference internal" href="../c-api/function.html#c.PyFunction_GetAnnotations" title="PyFunction_GetAnnotations"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFunction_GetAnnotations()</span></code></a> should return a
borrowed reference. It was returning a new reference.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97922">gh-97922</a>: The Garbage Collector now runs only on the eval breaker
mechanism of the Python bytecode evaluation loop instead on object
allocations. The GC can also run when <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_CheckSignals" title="PyErr_CheckSignals"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_CheckSignals()</span></code></a> is
called so C extensions that need to run for a long time without executing
any Python code also have a chance to execute the GC periodically.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65961">gh-65961</a>: When <code class="docutils literal notranslate"><span class="pre">__package__</span></code> is different than <code class="docutils literal notranslate"><span class="pre">__spec__.parent</span></code>,
raise a <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> instead of <code class="docutils literal notranslate"><span class="pre">ImportWarning</span></code>.</p>
<p>Also remove <code class="docutils literal notranslate"><span class="pre">importlib.util.set_package()</span></code> which was scheduled for
removal.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97850">gh-97850</a>: Long deprecated, <code class="docutils literal notranslate"><span class="pre">module_repr()</span></code> should now be completely
eradicated.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86298">gh-86298</a>: In cases where <code class="docutils literal notranslate"><span class="pre">warnings.warn_explicit()</span></code> consults the
module’s loader, an <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> is issued when <code class="docutils literal notranslate"><span class="pre">m.__loader__</span></code>
differs from <code class="docutils literal notranslate"><span class="pre">m.__spec__.loader</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97779">gh-97779</a>: Ensure that all Python frame objects are backed by “complete”
frames.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91052">gh-91052</a>: Add API for subscribing to modification events on selected
dictionaries.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97752">gh-97752</a>: Fix possible data corruption or crashes when accessing the
<code class="docutils literal notranslate"><span class="pre">f_back</span></code> member of newly-created generator or coroutine frames.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97591">gh-97591</a>: Fixed a missing incref/decref pair in
<code class="docutils literal notranslate"><span class="pre">Exception.__setstate__()</span></code>. Patch by Ofey Chan.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97670">gh-97670</a>: Remove the <code class="xref py py-func docutils literal notranslate"><span class="pre">sys.getdxp()</span></code> function and the
<code class="docutils literal notranslate"><span class="pre">Tools/scripts/analyze_dxp.py</span></code> script. DXP stands for “dynamic execution
pairs”. They were related to <code class="docutils literal notranslate"><span class="pre">DYNAMIC_EXECUTION_PROFILE</span></code> and <code class="docutils literal notranslate"><span class="pre">DXPAIRS</span></code>
macros which have been removed in Python 3.11. Python can now be built
with <a class="reference internal" href="../using/configure.html#cmdoption-enable-pystats"><code class="xref std std-option docutils literal notranslate"><span class="pre">./configure</span> <span class="pre">--enable-pystats</span></code></a> to gather
statistics on Python opcodes. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94526">gh-94526</a>: Fix the Python path configuration used to initialized
<a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a> at Python startup. Paths are no longer encoded to
UTF-8/strict to avoid encoding errors if it contains surrogate characters
(bytes paths are decoded with the surrogateescape error handler). Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96670">gh-96670</a>: The parser now raises <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> when parsing source
code containing null bytes. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96975">gh-96975</a>: Fix a crash occurring when <a class="reference internal" href="../c-api/reflection.html#c.PyEval_GetFrame" title="PyEval_GetFrame"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_GetFrame()</span></code></a> is called
while the topmost Python frame is in a partially-initialized state.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96848">gh-96848</a>: Fix command line parsing: reject <a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span> <span class="pre">int_max_str_digits</span></code></a> option with no value (invalid) when the
<span class="target" id="index-162"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONINTMAXSTRDIGITS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONINTMAXSTRDIGITS</span></code></a> environment variable is set to a valid
limit. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95921">gh-95921</a>: Fix overly-broad source position information for chained
comparisons used as branching conditions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96821">gh-96821</a>: Fix undefined behaviour in <code class="docutils literal notranslate"><span class="pre">audioop.c</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96821">gh-96821</a>: Fix undefined behaviour in <code class="docutils literal notranslate"><span class="pre">_testcapimodule.c</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95778">gh-95778</a>: When <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> is raised if an integer is larger than
the limit, mention the <a class="reference internal" href="../library/sys.html#sys.set_int_max_str_digits" title="sys.set_int_max_str_digits"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.set_int_max_str_digits()</span></code></a> function in the
error message. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96387">gh-96387</a>: At Python exit, sometimes a thread holding the GIL can wait
forever for a thread (usually a daemon thread) which requested to drop the
GIL, whereas the thread already exited. To fix the race condition, the
thread which requested the GIL drop now resets its request before exiting.
Issue discovered and analyzed by Mingliang ZHAO. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96864">gh-96864</a>: Fix a possible assertion failure, fatal error, or
<a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> if a line tracing event raises an exception while
opcode tracing is enabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95778">gh-95778</a>: The <code class="docutils literal notranslate"><span class="pre">PyLong_FromString</span></code> function was refactored to make it
more maintainable and extensible.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96678">gh-96678</a>: Fix undefined behaviour in C code of null pointer arithmetic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96754">gh-96754</a>: Make sure that all frame objects created are created from valid
interpreter frames. Prevents the possibility of invalid frames in
backtraces and signal handlers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90997">gh-90997</a>: Improve the performance of reading and writing inline bytecode
caches on some platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96751">gh-96751</a>: Remove dead code from <code class="docutils literal notranslate"><span class="pre">CALL_FUNCTION_EX</span></code> opcode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90751">gh-90751</a>: <a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a> now supports half-floats. Patch by Donghee
Na and Antoine Pitrou.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96678">gh-96678</a>: Fix case of undefined behavior in ceval.c</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/64373">gh-64373</a>: Convert <code class="xref py py-mod docutils literal notranslate"><span class="pre">_functools</span></code> to argument clinic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96641">gh-96641</a>: Do not expose <code class="docutils literal notranslate"><span class="pre">KeyWrapper</span></code> in <code class="xref py py-mod docutils literal notranslate"><span class="pre">_functools</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96636">gh-96636</a>: Ensure that tracing, <code class="docutils literal notranslate"><span class="pre">sys.setrace()</span></code>, is turned on
immediately. In pre-release versions of 3.11, some tracing events might
have been lost when turning on tracing in a <code class="docutils literal notranslate"><span class="pre">__del__</span></code> method or
interrupt.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96572">gh-96572</a>: Fix use after free in trace refs build mode. Patch by Kumar
Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96611">gh-96611</a>: When loading a file with invalid UTF-8 inside a multi-line
string, a correct SyntaxError is emitted.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96612">gh-96612</a>: Make sure that incomplete frames do not show up in tracemalloc
traces.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90230">gh-90230</a>: Fix compiler warnings and test failures when building with
<code class="docutils literal notranslate"><span class="pre">--enable-pystats</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96587">gh-96587</a>: Correctly raise <code class="docutils literal notranslate"><span class="pre">SyntaxError</span></code> on exception groups (<span class="target" id="index-163"></span><a class="pep reference external" href="https://peps.python.org/pep-0654/"><strong>PEP 654</strong></a>)
on python versions prior to 3.11</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96569">gh-96569</a>: Remove two cases of undefined behavior, by adding NULL checks.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96582">gh-96582</a>: Fix possible <code class="docutils literal notranslate"><span class="pre">NULL</span></code> pointer dereference in
<code class="docutils literal notranslate"><span class="pre">_PyThread_CurrentFrames</span></code>. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91079">gh-91079</a>: Separate Python recursion checking from C recursion checking
which reduces the chance of C stack overflow and allows the recursion
limit to be increased safely.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93911">gh-93911</a>: Fix an issue that could prevent <a class="reference internal" href="../library/dis.html#opcode-LOAD_ATTR"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_ATTR</span></code></a> from
specializing properly when accessing properties.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96348">gh-96348</a>: Emit a DeprecationWarning when <a class="reference internal" href="../reference/expressions.html#generator.throw" title="generator.throw"><code class="xref py py-meth docutils literal notranslate"><span class="pre">throw()</span></code></a>,
<a class="reference internal" href="../reference/datamodel.html#coroutine.throw" title="coroutine.throw"><code class="xref py py-meth docutils literal notranslate"><span class="pre">throw()</span></code></a> or <a class="reference internal" href="../reference/expressions.html#agen.athrow" title="agen.athrow"><code class="xref py py-meth docutils literal notranslate"><span class="pre">athrow()</span></code></a> are called with more than
one argument.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95196">gh-95196</a>: Disable incorrect pickling of the C implemented classmethod
descriptors.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96364">gh-96364</a>: Fix text signatures of <code class="docutils literal notranslate"><span class="pre">list.__getitem__</span></code> and
<code class="docutils literal notranslate"><span class="pre">dict.__getitem__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96352">gh-96352</a>: Fix <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> missing <code class="docutils literal notranslate"><span class="pre">name</span></code> and <code class="docutils literal notranslate"><span class="pre">obj</span></code>
attributes in <a class="reference internal" href="../reference/datamodel.html#object.__getattribute__" title="object.__getattribute__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">object.__getattribute__()</span></code></a>. Patch by Philip Georgi.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93554">gh-93554</a>: Change the jump opcodes so that all conditional jumps are
forward jumps. Backward jumps are converted by the assembler into a
conditional forward jump whose target is the fallthrough block (and with a
reversed condition), followed by an unconditional backward jump. For
example:</p>
<p><code class="docutils literal notranslate"><span class="pre">POP_JUMP_IF_TRUE</span> <span class="pre">BACKWARD_TARGET</span></code> becomes <code class="docutils literal notranslate"><span class="pre">POP_JUMP_IF_FALSE</span>
<span class="pre">NEXT_BLOCK;</span> <span class="pre">JUMP</span> <span class="pre">BACKWARD_TARGET</span></code>.</p>
<p>All the directed conditional jump opcodes were removed:
<code class="docutils literal notranslate"><span class="pre">POP_JUMP_FORWARD_IF_TRUE</span></code>, <code class="docutils literal notranslate"><span class="pre">POP_JUMP_BACKWARD_IF_TRUE</span></code>,
<code class="docutils literal notranslate"><span class="pre">POP_JUMP_FORWARD_IF_FALSE</span></code>, <code class="docutils literal notranslate"><span class="pre">POP_JUMP_BACKWARD_IF_FALSE</span></code>,
<code class="docutils literal notranslate"><span class="pre">POP_JUMP_FORWARD_IF_NONE</span></code>, <code class="docutils literal notranslate"><span class="pre">POP_JUMP_BACKWARD_IF_NONE</span></code>,
<code class="docutils literal notranslate"><span class="pre">POP_JUMP_FORWARD_IF_NOT_NONE</span></code>, <code class="docutils literal notranslate"><span class="pre">POP_JUMP_BACKWARD_IF_NOT_NONE</span></code>.</p>
<p>The corresponding opcodes without direction are no longer
pseudo-instructions, and they implement the forward conditional jumps.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96268">gh-96268</a>: Loading a file with invalid UTF-8 will now report the broken
character at the correct location.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96237">gh-96237</a>: The internal field <code class="docutils literal notranslate"><span class="pre">_PyInterpreterFrame.f_func</span></code> is renamed to
<code class="docutils literal notranslate"><span class="pre">_PyInterpreterFrame.f_funcobj</span></code> and may be any object. The <code class="docutils literal notranslate"><span class="pre">f_globals</span></code>
and <code class="docutils literal notranslate"><span class="pre">f_builtin</span></code> fields may hold junk values.</p>
<p>It is safest to treat the <code class="docutils literal notranslate"><span class="pre">_PyInterpreterFrame</span></code> struct as opaque.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96187">gh-96187</a>: Fixed a bug that caused <code class="docutils literal notranslate"><span class="pre">_PyCode_GetExtra</span></code> to return garbage
for negative indexes. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96143">gh-96143</a>: Add a new <code class="docutils literal notranslate"><span class="pre">-X</span> <span class="pre">perf</span></code> Python command line option as well as
<a class="reference internal" href="../library/sys.html#sys.activate_stack_trampoline" title="sys.activate_stack_trampoline"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.activate_stack_trampoline()</span></code></a> and
<a class="reference internal" href="../library/sys.html#sys.deactivate_stack_trampoline" title="sys.deactivate_stack_trampoline"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.deactivate_stack_trampoline()</span></code></a> function in the <a class="reference internal" href="../library/sys.html#module-sys" title="sys: Access system-specific parameters and functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sys</span></code></a> module
that allows to set/unset the interpreter in a way that the Linux <code class="docutils literal notranslate"><span class="pre">perf</span></code>
profiler can detect Python calls. The new
<a class="reference internal" href="../library/sys.html#sys.is_stack_trampoline_active" title="sys.is_stack_trampoline_active"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.is_stack_trampoline_active()</span></code></a> function allows to query the state
of the perf trampoline. Design by Pablo Galindo. Patch by Pablo Galindo
and Christian Heimes with contributions from Gregory P. Smith [Google] and
Mark Shannon.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96071">gh-96071</a>: Fix a deadlock in <a class="reference internal" href="../c-api/init.html#c.PyGILState_Ensure" title="PyGILState_Ensure"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGILState_Ensure()</span></code></a> when allocating
new thread state. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96046">gh-96046</a>: <a class="reference internal" href="../c-api/type.html#c.PyType_Ready" title="PyType_Ready"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_Ready()</span></code></a> now initializes <code class="docutils literal notranslate"><span class="pre">ht_cached_keys</span></code> and
performs additional checks to ensure that type objects are properly
configured. This avoids crashes in 3rd party packages that don’t use
regular API to create new types.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96005">gh-96005</a>: On WASI <a class="reference internal" href="../library/errno.html#errno.ENOTCAPABLE" title="errno.ENOTCAPABLE"><code class="xref py py-const docutils literal notranslate"><span class="pre">ENOTCAPABLE</span></code></a> is now mapped to
<a class="reference internal" href="../library/exceptions.html#PermissionError" title="PermissionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PermissionError</span></code></a>. The <a class="reference internal" href="../library/errno.html#module-errno" title="errno: Standard errno system symbols."><code class="xref py py-mod docutils literal notranslate"><span class="pre">errno</span></code></a> modules exposes the new error
number. <code class="docutils literal notranslate"><span class="pre">getpath.py</span></code> now ignores <a class="reference internal" href="../library/exceptions.html#PermissionError" title="PermissionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PermissionError</span></code></a> when it cannot
open landmark files <code class="docutils literal notranslate"><span class="pre">pybuilddir.txt</span></code> and <code class="docutils literal notranslate"><span class="pre">pyenv.cfg</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93678">gh-93678</a>: Added test a harness for direct unit tests of the compiler’s
optimization stage. The <code class="docutils literal notranslate"><span class="pre">_testinternalcapi.optimize_cfg()</span></code> function runs
the optimiser on a sequence of instructions. The
<code class="docutils literal notranslate"><span class="pre">CfgOptimizationTestCase</span></code> class in <code class="docutils literal notranslate"><span class="pre">test.support</span></code> has utilities for
invoking the optimizer and checking the output.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95245">gh-95245</a>: Reduces the size of a “simple” Python object from 8 to 6 words
by moving the weakreflist pointer into the pre-header directly before the
object’s dict/values pointer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90997">gh-90997</a>: Compile virtual <a class="reference internal" href="../reference/compound_stmts.html#try"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">try</span></code></a>/<a class="reference internal" href="../reference/compound_stmts.html#except"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">except</span></code></a> blocks to
handle exceptions raised during <a class="reference internal" href="../reference/expressions.html#generator.close" title="generator.close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">close()</span></code></a> or
<a class="reference internal" href="../reference/expressions.html#generator.throw" title="generator.throw"><code class="xref py py-meth docutils literal notranslate"><span class="pre">throw()</span></code></a> calls through a suspended frame.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95977">gh-95977</a>: Optimized calling <a class="reference internal" href="../reference/datamodel.html#object.__get__" title="object.__get__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__get__()</span></code></a> with vectorcall. Patch
by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91210">gh-91210</a>: Improve error message when a parameter without a default value
follows one with a default value, and show the same message, even when the
non-default/default sequence is preceded by positional-only parameters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95922">gh-95922</a>: Fixed bug where the compiler’s <code class="docutils literal notranslate"><span class="pre">eliminate_empty_basic_blocks</span></code>
function ignores the last block of the code unit.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95818">gh-95818</a>: Skip over incomplete frames in <a class="reference internal" href="../c-api/init.html#c.PyThreadState_GetFrame" title="PyThreadState_GetFrame"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_GetFrame()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95876">gh-95876</a>: Fix format string in <code class="docutils literal notranslate"><span class="pre">_PyPegen_raise_error_known_location</span></code>
that can lead to memory corruption on some 64bit systems. The function was
building a tuple with <code class="docutils literal notranslate"><span class="pre">i</span></code> (int) instead of <code class="docutils literal notranslate"><span class="pre">n</span></code> (Py_ssize_t) for
Py_ssize_t arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95605">gh-95605</a>: Fix misleading contents of error message when converting an
all-whitespace string to <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95150">gh-95150</a>: Update code object hashing and equality to consider all
debugging and exception handling tables. This fixes an issue where certain
non-identical code objects could be “deduplicated” during compilation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91146">gh-91146</a>: Reduce allocation size of <a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> from <a class="reference internal" href="../library/stdtypes.html#str.split" title="str.split"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.split()</span></code></a>
and <a class="reference internal" href="../library/stdtypes.html#str.rsplit" title="str.rsplit"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.rsplit()</span></code></a>. Patch by Donghee Na and Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87092">gh-87092</a>: Create a ‘jump target label’ abstraction in the compiler so that
the compiler’s codegen stage does not work directly with basic blocks.
This prepares the code for changes to the underlying CFG generation
mechanism.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95355">gh-95355</a>: <code class="docutils literal notranslate"><span class="pre">_PyPegen_Parser_New</span></code> now properly detects token memory
allocation errors. Patch by Honglin Zhu.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90081">gh-90081</a>: Run Python code in tracer/profiler function at full speed. Fixes
slowdown in earlier versions of 3.11.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95324">gh-95324</a>: Emit a warning in debug mode if an object does not call
<a class="reference internal" href="../c-api/gcsupport.html#c.PyObject_GC_UnTrack" title="PyObject_GC_UnTrack"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GC_UnTrack()</span></code></a> before deallocation. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95245">gh-95245</a>: Merge managed dict and values pointer into a single tagged
pointer to save one word in the pre-header.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93678">gh-93678</a>: Add cfg_builder struct and refactor the relevant code so that a
cfg can be constructed without an instance of the compiler struct.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95185">gh-95185</a>: Prevented crashes in the AST constructor when compiling some
absurdly long expressions like <code class="docutils literal notranslate"><span class="pre">"+0"*1000000</span></code>. <a class="reference internal" href="../library/exceptions.html#RecursionError" title="RecursionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RecursionError</span></code></a> is
now raised instead. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93351">gh-93351</a>: <a class="reference internal" href="../library/ast.html#ast.AST" title="ast.AST"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.AST</span></code></a> node positions are now validated when provided
to <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a> and other related functions. If invalid positions are
detected, a <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> will be raised.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94438">gh-94438</a>: Fix an issue that caused extended opcode arguments and some
conditional pops to be ignored when calculating valid jump targets for
assignments to the <code class="docutils literal notranslate"><span class="pre">f_lineno</span></code> attribute of frame objects. In some cases,
this could cause inconsistent internal state, resulting in a hard crash of
the interpreter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95060">gh-95060</a>: Undocumented <code class="docutils literal notranslate"><span class="pre">PyCode_Addr2Location</span></code> function now properly
returns when <code class="docutils literal notranslate"><span class="pre">addrq</span></code> argument is less than zero.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95113">gh-95113</a>: Replace all <code class="docutils literal notranslate"><span class="pre">EXTENDED_ARG_QUICK</span></code> instructions with basic
<a class="reference internal" href="../library/dis.html#opcode-EXTENDED_ARG"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">EXTENDED_ARG</span></code></a> instructions in unquickened code. Consumers of
non-adaptive bytecode should be able to handle extended arguments the same
way they were handled in CPython 3.10 and older.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91409">gh-91409</a>: Fix incorrect source location info caused by certain
optimizations in the bytecode compiler.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95023">gh-95023</a>: Implement <a class="reference internal" href="../library/os.html#os.setns" title="os.setns"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.setns()</span></code></a> and <a class="reference internal" href="../library/os.html#os.unshare" title="os.unshare"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.unshare()</span></code></a> for Linux.
Patch by Noam Cohen.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94036">gh-94036</a>: Fix incorrect source location info for some multi-line attribute
accesses and method calls.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94938">gh-94938</a>: Fix error detection in some builtin functions when keyword
argument name is an instance of a str subclass with overloaded <code class="docutils literal notranslate"><span class="pre">__eq__</span></code>
and <code class="docutils literal notranslate"><span class="pre">__hash__</span></code>. Previously it could cause SystemError or other undesired
behavior.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94996">gh-94996</a>: <a class="reference internal" href="../library/ast.html#ast.parse" title="ast.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.parse()</span></code></a> will no longer parse function definitions with
positional-only params when passed <code class="docutils literal notranslate"><span class="pre">feature_version</span></code> less than <code class="docutils literal notranslate"><span class="pre">(3,</span>
<span class="pre">8)</span></code>. Patch by Shantanu Jain.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94739">gh-94739</a>: Allow jumping within, out of, and across exception handlers in
the debugger.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94949">gh-94949</a>: <a class="reference internal" href="../library/ast.html#ast.parse" title="ast.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.parse()</span></code></a> will no longer parse parenthesized context
managers when passed <code class="docutils literal notranslate"><span class="pre">feature_version</span></code> less than <code class="docutils literal notranslate"><span class="pre">(3,</span> <span class="pre">9)</span></code>. Patch by
Shantanu Jain.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94947">gh-94947</a>: <a class="reference internal" href="../library/ast.html#ast.parse" title="ast.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.parse()</span></code></a> will no longer parse assignment expressions
when passed <code class="docutils literal notranslate"><span class="pre">feature_version</span></code> less than <code class="docutils literal notranslate"><span class="pre">(3,</span> <span class="pre">8)</span></code>. Patch by Shantanu
Jain.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91256">gh-91256</a>: Ensures the program name is known for help text during
interpreter startup.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94869">gh-94869</a>: Fix the column offsets for some expressions in multi-line
f-strings <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> nodes. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94893">gh-94893</a>: Fix an issue where frame object manipulations could corrupt
inline bytecode caches.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94822">gh-94822</a>: Fix an issue where lookups of metaclass descriptors may be
ignored when an identically-named attribute also exists on the class
itself.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91153">gh-91153</a>: Fix an issue where a <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> item assignment could
crash if it’s resized by the new value’s <code class="xref py py-meth docutils literal notranslate"><span class="pre">__index__()</span></code> method.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90699">gh-90699</a>: Fix reference counting bug in <code class="xref py py-meth docutils literal notranslate"><span class="pre">bool.__repr__()</span></code>. Patch by
Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94694">gh-94694</a>: Fix an issue that could cause code with multi-line method
lookups to have misleading or incorrect column offset information. In some
cases (when compiling a hand-built AST) this could have resulted in a hard
crash of the interpreter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93252">gh-93252</a>: Fix an issue that caused internal frames to outlive failed
Python function calls, possibly resulting in memory leaks or hard
interpreter crashes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94215">gh-94215</a>: Fix an issue where exceptions raised by line-tracing events
would cause frames to be left in an invalid state, possibly resulting in a
hard crash of the interpreter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92228">gh-92228</a>: Disable the compiler’s inline-small-exit-blocks optimization for
exit blocks that are associated with source code lines. This fixes a bug
where the debugger cannot tell where an exception handler ends and the
following code block begins.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94485">gh-94485</a>: Line number of a module’s <code class="docutils literal notranslate"><span class="pre">RESUME</span></code> instruction is set to 0 as
specified in <span class="target" id="index-164"></span><a class="pep reference external" href="https://peps.python.org/pep-0626/"><strong>PEP 626</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94438">gh-94438</a>: Account for instructions that can push NULL to the stack when
setting line number in a frame. Prevents some (unlikely) crashes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91719">gh-91719</a>: Reload <code class="docutils literal notranslate"><span class="pre">opcode</span></code> when raising <code class="docutils literal notranslate"><span class="pre">unknown</span> <span class="pre">opcode</span> <span class="pre">error</span></code> in the
interpreter main loop, for C compilers to generate dispatching code
independently.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94329">gh-94329</a>: Compile and run code with unpacking of extremely large sequences
(1000s of elements). Such code failed to compile. It now compiles and runs
correctly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94360">gh-94360</a>: Fixed a tokenizer crash when reading encoded files with syntax
errors from <code class="docutils literal notranslate"><span class="pre">stdin</span></code> with non utf-8 encoded text. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88116">gh-88116</a>: Fix an issue when reading line numbers from code objects if the
encoded line numbers are close to <code class="docutils literal notranslate"><span class="pre">INT_MIN</span></code>. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94262">gh-94262</a>: Don’t create frame objects for incomplete frames. Prevents the
creation of generators and closures from being observable to Python and C
extensions, restoring the behavior of 3.10 and earlier.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94192">gh-94192</a>: Fix error for dictionary literals with invalid expression as
value.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87995">gh-87995</a>: <a class="reference internal" href="../library/types.html#types.MappingProxyType" title="types.MappingProxyType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.MappingProxyType</span></code></a> instances are now hashable if
the underlying mapping is hashable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93883">gh-93883</a>: Revise the display strategy of traceback enhanced error
locations. The indicators are only shown when the location doesn’t span
the whole line.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94163">gh-94163</a>: Add <a class="reference internal" href="../library/dis.html#opcode-BINARY_SLICE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">BINARY_SLICE</span></code></a> and <a class="reference internal" href="../library/dis.html#opcode-STORE_SLICE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">STORE_SLICE</span></code></a>
instructions for more efficient handling and better specialization of
slicing operations, where the slice is explicit in the source code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94021">gh-94021</a>: Fix unreachable code warning in <code class="docutils literal notranslate"><span class="pre">Python/specialize.c</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93911">gh-93911</a>: Specialize <code class="docutils literal notranslate"><span class="pre">LOAD_ATTR</span></code> for objects with custom
<code class="docutils literal notranslate"><span class="pre">__getattribute__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93955">gh-93955</a>: Improve performance of attribute lookups on objects with custom
<code class="docutils literal notranslate"><span class="pre">__getattribute__</span></code> and <code class="docutils literal notranslate"><span class="pre">__getattr__</span></code>. Patch by Ken Jin.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93911">gh-93911</a>: Specialize <code class="docutils literal notranslate"><span class="pre">LOAD_ATTR</span></code> for <code class="docutils literal notranslate"><span class="pre">property()</span></code> attributes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93678">gh-93678</a>: Refactor compiler optimisation code so that it no longer needs
the <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">assembler</span></code> and <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">compiler</span></code> passed around. Instead,
each function takes the CFG and other data that it actually needs. This
will make it possible to test this code directly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93841">gh-93841</a>: When built with <code class="docutils literal notranslate"><span class="pre">-enable-pystats</span></code>, <code class="docutils literal notranslate"><span class="pre">sys._stats_on()</span></code>,
<code class="docutils literal notranslate"><span class="pre">sys._stats_off()</span></code>, <code class="docutils literal notranslate"><span class="pre">sys._stats_clear()</span></code> and <code class="docutils literal notranslate"><span class="pre">sys._stats_dump()</span></code>
functions have been added to enable gathering stats for parts of programs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93516">gh-93516</a>: Store offset of first traceable instruction in code object to
avoid having to recompute it for each instruction when tracing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93516">gh-93516</a>: Lazily create a table mapping bytecode offsets to line numbers
to speed up calculation of line numbers when tracing.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89828">gh-89828</a>: <a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a> no longer relays the <code class="docutils literal notranslate"><span class="pre">__class__</span></code>
attribute. For example, <code class="docutils literal notranslate"><span class="pre">isinstance(list[int],</span> <span class="pre">type)</span></code> no longer returns
<code class="docutils literal notranslate"><span class="pre">True</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93678">gh-93678</a>: Refactor the compiler to reduce boilerplate and repetition.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93671">gh-93671</a>: Fix some exponential backtrace case happening with deeply nested
sequence patterns in match statements. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93662">gh-93662</a>: Make sure that the end column offsets are correct in multi-line
method calls. Previously, the end column could precede the column offset.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93461">gh-93461</a>: <a class="reference internal" href="../library/importlib.html#importlib.invalidate_caches" title="importlib.invalidate_caches"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.invalidate_caches()</span></code></a> now drops entries from
<a class="reference internal" href="../library/sys.html#sys.path_importer_cache" title="sys.path_importer_cache"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path_importer_cache</span></code></a> with a relative path as name. This solves
a caching issue when a process changes its current working directory.</p>
<p><code class="docutils literal notranslate"><span class="pre">FileFinder</span></code> no longer inserts a dot in the path, e.g. <code class="docutils literal notranslate"><span class="pre">/egg/./spam</span></code>
is now <code class="docutils literal notranslate"><span class="pre">/egg/spam</span></code>.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93621">gh-93621</a>: Change order of bytecode instructions emitted for
<a class="reference internal" href="../reference/compound_stmts.html#with"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">with</span></code></a> and <a class="reference internal" href="../reference/compound_stmts.html#async-with"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">async</span> <span class="pre">with</span></code></a> to reduce the number of entries
in the exception table.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93533">gh-93533</a>: Reduce the size of the inline cache for <code class="docutils literal notranslate"><span class="pre">LOAD_METHOD</span></code> by 2
bytes.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93444">gh-93444</a>: Removed redundant fields from the compiler’s basicblock struct:
<code class="docutils literal notranslate"><span class="pre">b_nofallthrough</span></code>, <code class="docutils literal notranslate"><span class="pre">b_exit</span></code>, <code class="docutils literal notranslate"><span class="pre">b_return</span></code>. They can be easily
calculated from the opcode of the last instruction of the block.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93429">gh-93429</a>: <code class="docutils literal notranslate"><span class="pre">LOAD_METHOD</span></code> instruction has been removed. It was merged back
into <code class="docutils literal notranslate"><span class="pre">LOAD_ATTR</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93418">gh-93418</a>: Fixed an assert where an f-string has an equal sign ‘=’
following an expression, but there’s no trailing brace. For example,
f”{i=”.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93382">gh-93382</a>: Cache the result of <a class="reference internal" href="../c-api/code.html#c.PyCode_GetCode" title="PyCode_GetCode"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_GetCode()</span></code></a> function to restore
the <em>O</em>(1) lookup of the <code class="xref py py-attr docutils literal notranslate"><span class="pre">co_code</span></code> attribute.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93359">gh-93359</a>: Ensure that custom <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> nodes without explicit end
positions can be compiled. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93356">gh-93356</a>: Code for exception handlers is emitted at the end of the code
unit’s bytecode. This avoids one jump when no exception is raised.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93354">gh-93354</a>: Use exponential backoff for specialization counters in the
interpreter. Can reduce the number of failed specializations significantly
and avoid slowdown for those parts of a program that are not suitable for
specialization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93283">gh-93283</a>: Improve error message for invalid syntax of conversion character
in f-string expressions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93345">gh-93345</a>: Fix a crash in substitution of a <code class="docutils literal notranslate"><span class="pre">TypeVar</span></code> in nested generic
alias after <code class="docutils literal notranslate"><span class="pre">TypeVarTuple</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93223">gh-93223</a>: When a bytecode instruction jumps to an unconditional jump
instruction, the first instruction can often be optimized to target the
unconditional jump’s target directly. For tracing reasons, this would
previously only occur if both instructions have the same line number. This
also now occurs if the unconditional jump is artificial, i.e., if it has
no associated line number.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84694">gh-84694</a>: The <code class="docutils literal notranslate"><span class="pre">--experimental-isolated-subinterpreters</span></code> configure option
and <code class="docutils literal notranslate"><span class="pre">EXPERIMENTAL_ISOLATED_SUBINTERPRETERS</span></code> macro have been removed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91924">gh-91924</a>: Fix <code class="docutils literal notranslate"><span class="pre">__lltrace__</span></code> debug feature if the stdout encoding is not
UTF-8. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93040">gh-93040</a>: Wraps unused parameters in <code class="docutils literal notranslate"><span class="pre">Objects/obmalloc.c</span></code> with
<code class="docutils literal notranslate"><span class="pre">Py_UNUSED</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93143">gh-93143</a>: Avoid <code class="docutils literal notranslate"><span class="pre">NULL</span></code> checks for uninitialized local variables by
determining at compile time which variables must be initialized.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93061">gh-93061</a>: Backward jumps after <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">for</span></code> loops are no longer given
dubious line numbers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93065">gh-93065</a>: Fix contextvars HAMT implementation to handle iteration over
deep trees.</p>
<p>The bug was discovered and fixed by Eli Libman. See
<a class="reference external" href="https://github.com/MagicStack/immutables/issues/84">MagicStack/immutables#84</a> for more details.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93012">gh-93012</a>: Added the new function <a class="reference internal" href="../c-api/type.html#c.PyType_FromMetaclass" title="PyType_FromMetaclass"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromMetaclass()</span></code></a>, which
generalizes the existing <a class="reference internal" href="../c-api/type.html#c.PyType_FromModuleAndSpec" title="PyType_FromModuleAndSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromModuleAndSpec()</span></code></a> using an
additional metaclass argument. This is useful for language binding tools,
where it can be used to intercept type-related operations like subclassing
or static attribute access by specifying a metaclass with custom slots.</p>
<p>Importantly, <a class="reference internal" href="../c-api/type.html#c.PyType_FromMetaclass" title="PyType_FromMetaclass"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromMetaclass()</span></code></a> is available in the Limited
API, which provides a path towards migrating more binding tools onto the
Stable ABI.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93021">gh-93021</a>: Fix the <code class="xref py py-attr docutils literal notranslate"><span class="pre">__text_signature__</span></code> for <code class="xref py py-meth docutils literal notranslate"><span class="pre">__get__()</span></code> methods
implemented in C. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89914">gh-89914</a>: The operand of the <code class="docutils literal notranslate"><span class="pre">YIELD_VALUE</span></code> instruction is set to the
stack depth. This is done to help frame handling on <code class="docutils literal notranslate"><span class="pre">yield</span></code> and may
assist debuggers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92955">gh-92955</a>: Fix memory leak in code object’s lines and positions iterators
as they were not finalized at exit. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92930">gh-92930</a>: Fixed a crash in <code class="docutils literal notranslate"><span class="pre">_pickle.c</span></code> from mutating collections during
<code class="docutils literal notranslate"><span class="pre">__reduce__</span></code> or <code class="docutils literal notranslate"><span class="pre">persistent_id</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90690">gh-90690</a>: The PRECALL instruction has been removed. It offered only a
small advantage for specialization and is not needed in the vast majority
of cases.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92914">gh-92914</a>: Always round the allocated size for lists up to the nearest even
number.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92858">gh-92858</a>: Improve error message for some suites with syntax error before
‘:’</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90473">gh-90473</a>: Decrease default recursion limit on WASI to address limited call
stack size.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92804">gh-92804</a>: Fix memory leak in <code class="docutils literal notranslate"><span class="pre">memoryview</span></code> iterator as it was not
finalized at exit. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92777">gh-92777</a>: Specialize <code class="docutils literal notranslate"><span class="pre">LOAD_METHOD</span></code> for objects with lazy dictionaries.
Patch by Ken Jin.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92658">gh-92658</a>: Add support for connecting and binding to Hyper-V sockets on
Windows Hyper-V hosts and guests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92236">gh-92236</a>: Remove spurious “LINE” event when starting a generator or
coroutine, visible tracing functions implemented in C.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91102">gh-91102</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">_warnings.warn_explicit()</span></code> is ported to Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92619">gh-92619</a>: Make the compiler duplicate an exit block only if none of its
instructions have a lineno (previously only the first instruction in the
block was checked, leading to unnecessarily duplicated blocks).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88750">gh-88750</a>: The deprecated debug build only <code class="docutils literal notranslate"><span class="pre">PYTHONTHREADDEBUG</span></code>
environment variable no longer does anything.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92261">gh-92261</a>: Fix hang when trying to iterate over a <code class="docutils literal notranslate"><span class="pre">typing.Union</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91432">gh-91432</a>: Specialized the <a class="reference internal" href="../library/dis.html#opcode-FOR_ITER"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">FOR_ITER</span></code></a> opcode using the PEP 659
machinery</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91399">gh-91399</a>: Removed duplicate ‘{0, 0, 0, 0, 0, 0}’ entry in
‘Objects/unicodetype_db.h’.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91578">gh-91578</a>: Updates the error message for abstract class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47091">bpo-47091</a>: Improve performance of repetition of <a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> and
<a class="reference internal" href="../library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> by using <code class="docutils literal notranslate"><span class="pre">memcpy</span></code> to copy data and performing the
reference increments in one step.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46142">bpo-46142</a>: Make <code class="docutils literal notranslate"><span class="pre">--help</span></code> output shorter by moving some info to the new
<code class="docutils literal notranslate"><span class="pre">--help-env</span></code> and <code class="docutils literal notranslate"><span class="pre">--help-xoptions</span></code> command-line options. Also add
<code class="docutils literal notranslate"><span class="pre">--help-all</span></code> option to print complete usage.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42316">bpo-42316</a>: Document some places where an assignment expression needs
parentheses.</p></li>
</ul>
</section>
<section id="id248">
<h3>Library<a class="headerlink" href="#id248" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89237">gh-89237</a>: Fix hang on Windows in <code class="docutils literal notranslate"><span class="pre">subprocess.wait_closed()</span></code> in
<a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> with <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.ProactorEventLoop" title="asyncio.ProactorEventLoop"><code class="xref py py-class docutils literal notranslate"><span class="pre">ProactorEventLoop</span></code></a>. Patch by Kumar
Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97928">gh-97928</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">tkinter.Text.count()</span></code> raises now an exception for options
starting with “-” instead of silently ignoring them.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98393">gh-98393</a>: The <a class="reference internal" href="../library/os.html#module-os" title="os: Miscellaneous operating system interfaces."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os</span></code></a> module no longer accepts bytes-like paths, like
<a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a> types: only the exact
<a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> type is accepted for bytes strings. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98363">gh-98363</a>: Added itertools.batched() to batch data into lists of a given
length with the last list possibly being shorter than the others.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98331">gh-98331</a>: Update the bundled copies of pip and setuptools to versions 22.3
and 65.5.0 respectively.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98307">gh-98307</a>: A <a class="reference internal" href="../library/logging.handlers.html#logging.handlers.SysLogHandler.createSocket" title="logging.handlers.SysLogHandler.createSocket"><code class="xref py py-meth docutils literal notranslate"><span class="pre">createSocket()</span></code></a> method
was added to <a class="reference internal" href="../library/logging.handlers.html#logging.handlers.SysLogHandler" title="logging.handlers.SysLogHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">SysLogHandler</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96035">gh-96035</a>: Fix bug in <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlparse" title="urllib.parse.urlparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlparse()</span></code></a> that causes certain
port numbers containing whitespace, underscores, plus and minus signs, or
non-ASCII digits to be incorrectly accepted.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98257">gh-98257</a>: Make <a class="reference internal" href="../library/sys.html#sys.setprofile" title="sys.setprofile"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.setprofile()</span></code></a> and <a class="reference internal" href="../library/sys.html#sys.settrace" title="sys.settrace"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.settrace()</span></code></a> functions
reentrant. They can no long fail with: <code class="docutils literal notranslate"><span class="pre">RuntimeError("Cannot</span> <span class="pre">install</span> <span class="pre">a</span>
<span class="pre">trace</span> <span class="pre">function</span> <span class="pre">while</span> <span class="pre">another</span> <span class="pre">trace</span> <span class="pre">function</span> <span class="pre">is</span> <span class="pre">being</span> <span class="pre">installed")</span></code>. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98251">gh-98251</a>: Allow <a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a> to pass along <code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHON*</span></code> variables to
<code class="docutils literal notranslate"><span class="pre">ensurepip</span></code> and <code class="docutils literal notranslate"><span class="pre">pip</span></code> when they do not impact path resolution</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94597">gh-94597</a>: Deprecated
<code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.AbstractEventLoopPolicy.get_child_watcher()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.AbstractEventLoopPolicy.set_child_watcher()</span></code> methods to be
removed in Python 3.14. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98178">gh-98178</a>: On macOS, fix a crash in <a class="reference internal" href="../library/syslog.html#syslog.syslog" title="syslog.syslog"><code class="xref py py-func docutils literal notranslate"><span class="pre">syslog.syslog()</span></code></a> in multi-threaded
applications. On macOS, the libc <code class="docutils literal notranslate"><span class="pre">syslog()</span></code> function is not thread-safe,
so <a class="reference internal" href="../library/syslog.html#syslog.syslog" title="syslog.syslog"><code class="xref py py-func docutils literal notranslate"><span class="pre">syslog.syslog()</span></code></a> no longer releases the GIL to call it. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/44098">gh-44098</a>: Release the GIL when creating <a class="reference internal" href="../library/mmap.html#mmap.mmap" title="mmap.mmap"><code class="xref py py-class docutils literal notranslate"><span class="pre">mmap.mmap</span></code></a> objects on
Unix.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87730">gh-87730</a>: Wrap network errors consistently in urllib FTP support, so the
test suite doesn’t fail when a network is available but the public
internet is not reachable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94597">gh-94597</a>: The child watcher classes
<code class="xref py py-class docutils literal notranslate"><span class="pre">MultiLoopChildWatcher</span></code>,
<code class="xref py py-class docutils literal notranslate"><span class="pre">FastChildWatcher</span></code> and <code class="xref py py-class docutils literal notranslate"><span class="pre">SafeChildWatcher</span></code>
are deprecated and will be removed in Python 3.14. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98023">gh-98023</a>: Change default child watcher to
<code class="xref py py-class docutils literal notranslate"><span class="pre">PidfdChildWatcher</span></code> on Linux systems which supports it.
Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90985">gh-90985</a>: Earlier in 3.11 we deprecated
<code class="docutils literal notranslate"><span class="pre">asyncio.Task.cancel("message")</span></code>. We realized we were too harsh, and
have undeprecated it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65961">gh-65961</a>: Do not rely solely on <code class="docutils literal notranslate"><span class="pre">__cached__</span></code> on modules; code will also
support <code class="docutils literal notranslate"><span class="pre">__spec__.cached</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97646">gh-97646</a>: Replace deprecated <code class="docutils literal notranslate"><span class="pre">application/javascript</span></code> with
<code class="docutils literal notranslate"><span class="pre">text/javascript</span></code> in <a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a>. See <span class="target" id="index-165"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc9239.html"><strong>RFC 9239</strong></a>. Patch by Noam
Cohen.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97930">gh-97930</a>: Apply changes from importlib_resources 5.8 and 5.9:
<code class="docutils literal notranslate"><span class="pre">Traversable.joinpath</span></code> provides a concrete implementation. <code class="docutils literal notranslate"><span class="pre">as_file</span></code>
now supports directories of resources.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97850">gh-97850</a>: Remove deprecated <code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.util.set_loader()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.util.module_for_loader()</span></code> from <a class="reference internal" href="../library/importlib.html#module-importlib.util" title="importlib.util: Utility code for importers"><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib.util</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97837">gh-97837</a>: Change deprecate warning message in <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> from</p>
<p><code class="docutils literal notranslate"><span class="pre">It</span> <span class="pre">is</span> <span class="pre">deprecated</span> <span class="pre">to</span> <span class="pre">return</span> <span class="pre">a</span> <span class="pre">value!=None</span></code></p>
<p>to</p>
<p><code class="docutils literal notranslate"><span class="pre">It</span> <span class="pre">is</span> <span class="pre">deprecated</span> <span class="pre">to</span> <span class="pre">return</span> <span class="pre">a</span> <span class="pre">value</span> <span class="pre">that</span> <span class="pre">is</span> <span class="pre">not</span> <span class="pre">None</span> <span class="pre">from</span> <span class="pre">a</span> <span class="pre">test</span> <span class="pre">case</span></code></p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97825">gh-97825</a>: Fixes <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> when <a class="reference internal" href="../library/subprocess.html#subprocess.check_output" title="subprocess.check_output"><code class="xref py py-meth docutils literal notranslate"><span class="pre">subprocess.check_output()</span></code></a>
is used with argument <code class="docutils literal notranslate"><span class="pre">input=None</span></code> and either of the arguments
<em>encoding</em> or <em>errors</em> are used.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97008">gh-97008</a>: <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> and <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> spelling suggestions
provided since <a class="reference external" href="https://github.com/python/cpython/issues/82711">gh-82711</a> are now also emitted by the pure Python
<a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> module. Tests for those suggestions now exercise both
implementations to ensure they are equivalent. Patch by Carl Friedrich
Bolz-Tereick and Łukasz Langa.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97799">gh-97799</a>: <code class="xref py py-mod docutils literal notranslate"><span class="pre">dataclass</span></code> now uses <a class="reference internal" href="../library/inspect.html#inspect.get_annotations" title="inspect.get_annotations"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.get_annotations()</span></code></a> to
examine the annotations on class objects.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97781">gh-97781</a>: Removed deprecated interfaces in <code class="docutils literal notranslate"><span class="pre">importlib.metadata</span></code> (entry
points accessed as dictionary, implicit dictionary construction of
sequence of <code class="docutils literal notranslate"><span class="pre">EntryPoint</span></code> objects, mutablility of <code class="docutils literal notranslate"><span class="pre">EntryPoints</span></code> result,
access of entry point by index). <code class="docutils literal notranslate"><span class="pre">entry_points</span></code> now has a simpler, more
straightforward API (returning <code class="docutils literal notranslate"><span class="pre">EntryPoints</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96827">gh-96827</a>: Avoid spurious tracebacks from <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> when default
executor cleanup is delayed until after the event loop is closed (e.g. as
the result of a keyboard interrupt).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95534">gh-95534</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">gzip.GzipFile.read()</span></code> reads 10% faster.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97592">gh-97592</a>: Avoid a crash in the C version of
<a class="reference internal" href="../library/asyncio-future.html#asyncio.Future.remove_done_callback" title="asyncio.Future.remove_done_callback"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Future.remove_done_callback()</span></code></a> when an evil argument is
passed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97639">gh-97639</a>: Remove <code class="docutils literal notranslate"><span class="pre">tokenize.NL</span></code> check from <a class="reference internal" href="../library/tabnanny.html#module-tabnanny" title="tabnanny: Tool for detecting white space related problems in Python source files in a directory tree."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tabnanny</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97545">gh-97545</a>: Make Semaphore run faster.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/73588">gh-73588</a>: Fix generation of the default name of
<code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.Checkbutton</span></code>. Previously, checkbuttons in different parent
widgets could have the same short name and share the same state if
arguments “name” and “variable” are not specified. Now they are globally
unique.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96865">gh-96865</a>: fix Flag to use boundary CONFORM</p>
<p>This restores previous Flag behavior of allowing flags with non-sequential
values to be combined; e.g.</p>
<p>class Skip(Flag): TWO = 2 EIGHT = 8</p>
<p>Skip.TWO | Skip.EIGHT -> <Skip.TWO|EIGHT: 10></p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97005">gh-97005</a>: Update bundled libexpat to 2.4.9</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85760">gh-85760</a>: Fix race condition in <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> where
<a class="reference internal" href="../library/asyncio-protocol.html#asyncio.SubprocessProtocol.process_exited" title="asyncio.SubprocessProtocol.process_exited"><code class="xref py py-meth docutils literal notranslate"><span class="pre">process_exited()</span></code></a> called before the
<a class="reference internal" href="../library/asyncio-protocol.html#asyncio.SubprocessProtocol.pipe_data_received" title="asyncio.SubprocessProtocol.pipe_data_received"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pipe_data_received()</span></code></a> leading to
inconsistent output. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96704">gh-96704</a>: Pass the correct <code class="docutils literal notranslate"><span class="pre">contextvars.Context</span></code> when a <code class="docutils literal notranslate"><span class="pre">asyncio</span></code>
exception handler is called on behalf of a task or callback handle. This
adds a new <code class="docutils literal notranslate"><span class="pre">Task</span></code> method, <code class="docutils literal notranslate"><span class="pre">get_context</span></code>, and also a new <code class="docutils literal notranslate"><span class="pre">Handle</span></code>
method with the same name. If this method is not found on a task object
(perhaps because it is a third-party library that does not yet provide
this method), the context prevailing at the time the exception handler is
called is used.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96819">gh-96819</a>: Fixed check in <code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing.resource_tracker</span></code> that
guarantees that the length of a write to a pipe is not greater than
<code class="docutils literal notranslate"><span class="pre">PIPE_BUF</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95865">gh-95865</a>: Reduce <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.quote_from_bytes" title="urllib.parse.quote_from_bytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.quote_from_bytes()</span></code></a> memory use on large
values.</p>
<p>Contributed by Dennis Sweeney.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96741">gh-96741</a>: Corrected type annotation for dataclass attribute
<code class="docutils literal notranslate"><span class="pre">pstats.FunctionProfile.ncalls</span></code> to be <code class="docutils literal notranslate"><span class="pre">str</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96734">gh-96734</a>: Update <a class="reference internal" href="../library/unicodedata.html#module-unicodedata" title="unicodedata: Access the Unicode Database."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unicodedata</span></code></a> database to Unicode 15.0.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96735">gh-96735</a>: Fix undefined behaviour in <a class="reference internal" href="../library/struct.html#struct.unpack" title="struct.unpack"><code class="xref py py-func docutils literal notranslate"><span class="pre">struct.unpack()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/46412">gh-46412</a>: Improve performance of <code class="docutils literal notranslate"><span class="pre">bool(db)</span></code> for large ndb/gdb databases.
Previously this would call <code class="docutils literal notranslate"><span class="pre">len(db)</span></code> which would iterate over all keys
– the answer (empty or not) is known after the first key.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96652">gh-96652</a>: Fix the faulthandler implementation of
<code class="docutils literal notranslate"><span class="pre">faulthandler.register(signal,</span> <span class="pre">chain=True)</span></code> if the <code class="docutils literal notranslate"><span class="pre">sigaction()</span></code>
function is not available: don’t call the previous signal handler if it’s
NULL. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/68163">gh-68163</a>: Correct conversion of <a class="reference internal" href="../library/numbers.html#numbers.Rational" title="numbers.Rational"><code class="xref py py-class docutils literal notranslate"><span class="pre">numbers.Rational</span></code></a>’s to
<a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96538">gh-96538</a>: Speed up <code class="docutils literal notranslate"><span class="pre">bisect.bisect()</span></code> functions by taking advantage of
type-stability.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96465">gh-96465</a>: Fraction hashes are now cached.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96079">gh-96079</a>: In <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a>, fix missing field <code class="docutils literal notranslate"><span class="pre">name</span></code> and incorrect
<code class="docutils literal notranslate"><span class="pre">__module__</span></code> in _AnnotatedAlias.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96415">gh-96415</a>: Remove <code class="docutils literal notranslate"><span class="pre">types._cell_factory</span></code> from module namespace.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95987">gh-95987</a>: Fix <code class="docutils literal notranslate"><span class="pre">repr</span></code> of <code class="docutils literal notranslate"><span class="pre">Any</span></code> subclasses.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96388">gh-96388</a>: Work around missing socket functions in
<a class="reference internal" href="../library/socket.html#socket.socket" title="socket.socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">socket</span></code></a>’s <code class="docutils literal notranslate"><span class="pre">__repr__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96385">gh-96385</a>: Fix <code class="docutils literal notranslate"><span class="pre">TypeVarTuple.__typing_prepare_subst__</span></code>. <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> was
not raised when using more than one <code class="docutils literal notranslate"><span class="pre">TypeVarTuple</span></code>, like <code class="docutils literal notranslate"><span class="pre">[*T,</span> <span class="pre">*V]</span></code> in
type alias substitutions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96142">gh-96142</a>: Add <code class="docutils literal notranslate"><span class="pre">match_args</span></code>, <code class="docutils literal notranslate"><span class="pre">kw_only</span></code>, <code class="docutils literal notranslate"><span class="pre">slots</span></code>, and <code class="docutils literal notranslate"><span class="pre">weakref_slot</span></code>
to <code class="docutils literal notranslate"><span class="pre">_DataclassParams</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96073">gh-96073</a>: In <a class="reference internal" href="../library/inspect.html#module-inspect" title="inspect: Extract information and source code from live objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">inspect</span></code></a>, fix overeager replacement of “<code class="docutils literal notranslate"><span class="pre">typing.</span></code>” in
formatting annotations.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89258">gh-89258</a>: Added a <a class="reference internal" href="../library/logging.html#logging.Logger.getChildren" title="logging.Logger.getChildren"><code class="xref py py-meth docutils literal notranslate"><span class="pre">getChildren()</span></code></a> method to
<a class="reference internal" href="../library/logging.html#logging.Logger" title="logging.Logger"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.Logger</span></code></a>, to get the immediate child loggers of a logger.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96346">gh-96346</a>: Use double caching for compiled RE patterns.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96349">gh-96349</a>: Fixed a minor performance regression in
<code class="xref py py-func docutils literal notranslate"><span class="pre">threading.Event.__init__()</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90467">gh-90467</a>: Fix <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.streams.StreamReaderProtocol</span></code> to keep a
strong reference to the created task, so that it’s not garbage collected</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96172">gh-96172</a>: Fix a bug in <code class="docutils literal notranslate"><span class="pre">unicodedata</span></code>: <code class="docutils literal notranslate"><span class="pre">east_asian_width</span></code> used to
return the wrong value for unassigned characters; and for yet unassigned,
but reserved characters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96159">gh-96159</a>: Fix a performance regression in logging
TimedRotatingFileHandler. Only check for special files when the rollover
time has passed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96175">gh-96175</a>: Fix unused <code class="docutils literal notranslate"><span class="pre">localName</span></code> parameter in the <code class="docutils literal notranslate"><span class="pre">Attr</span></code> class in
<a class="reference internal" href="../library/xml.dom.minidom.html#module-xml.dom.minidom" title="xml.dom.minidom: Minimal Document Object Model (DOM) implementation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.dom.minidom</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96145">gh-96145</a>: Add AttrDict to JSON module for use with object_hook.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96052">gh-96052</a>: Fix handling compiler warnings (SyntaxWarning and
DeprecationWarning) in <a class="reference internal" href="../library/codeop.html#codeop.compile_command" title="codeop.compile_command"><code class="xref py py-func docutils literal notranslate"><span class="pre">codeop.compile_command()</span></code></a> when checking for
incomplete input. Previously it emitted warnings and raised a SyntaxError.
Now it always returns <code class="docutils literal notranslate"><span class="pre">None</span></code> for incomplete input without emitting any
warnings.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96125">gh-96125</a>: Fix incorrect condition that causes <code class="docutils literal notranslate"><span class="pre">sys.thread_info.name</span></code> to
be wrong on pthread platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96019">gh-96019</a>: Fix a bug in the <code class="docutils literal notranslate"><span class="pre">makeunicodedata.py</span></code> script leading to about
13 KiB of space saving in the <code class="docutils literal notranslate"><span class="pre">unicodedata</span></code> module, specifically the
character decomposition data.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95463">gh-95463</a>: Remove an incompatible change from <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28080">bpo-28080</a> that caused a
regression that ignored the utf8 in <code class="docutils literal notranslate"><span class="pre">ZipInfo.flag_bits</span></code>. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69142">gh-69142</a>: Add <code class="docutils literal notranslate"><span class="pre">%:z</span></code> strftime format code (generates tzoffset with colons
as separator), see <a class="reference internal" href="../library/datetime.html#strftime-strptime-behavior"><span class="std std-ref">strftime() and strptime() Behavior</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95899">gh-95899</a>: Fix <a class="reference internal" href="../library/asyncio-runner.html#asyncio.Runner" title="asyncio.Runner"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Runner</span></code></a> to call
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.set_event_loop" title="asyncio.set_event_loop"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.set_event_loop()</span></code></a> only once to avoid calling
<code class="xref py py-meth docutils literal notranslate"><span class="pre">attach_loop()</span></code> multiple times on child
watchers. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95736">gh-95736</a>: Fix <a class="reference internal" href="../library/unittest.html#unittest.IsolatedAsyncioTestCase" title="unittest.IsolatedAsyncioTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.IsolatedAsyncioTestCase</span></code></a> to set event loop
before calling setup functions. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95865">gh-95865</a>: Speed up <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.quote_from_bytes" title="urllib.parse.quote_from_bytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.quote_from_bytes()</span></code></a> by replacing a
list comprehension with <code class="docutils literal notranslate"><span class="pre">map()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95861">gh-95861</a>: Add support for computing Spearman’s correlation coefficient to
the existing statistics.correlation() function.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95804">gh-95804</a>: Fix <code class="docutils literal notranslate"><span class="pre">logging</span></code> shutdown handler so it respects
<code class="docutils literal notranslate"><span class="pre">MemoryHandler.flushOnClose</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95704">gh-95704</a>: When a task catches <a class="reference internal" href="../library/asyncio-exceptions.html#asyncio.CancelledError" title="asyncio.CancelledError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">asyncio.CancelledError</span></code></a> and raises
some other error, the other error should generally not silently be
suppressed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95149">gh-95149</a>: The <a class="reference internal" href="../library/http.html#http.HTTPStatus" title="http.HTTPStatus"><code class="xref py py-class docutils literal notranslate"><span class="pre">HTTPStatus</span></code></a> enum offers a couple
of properties to indicate the HTTP status category e.g.
<code class="docutils literal notranslate"><span class="pre">HTTPStatus.OK.is_success</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95609">gh-95609</a>: Update bundled pip to 22.2.2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95289">gh-95289</a>: Fix <a class="reference internal" href="../library/asyncio-task.html#asyncio.TaskGroup" title="asyncio.TaskGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.TaskGroup</span></code></a> to propagate exception when
<a class="reference internal" href="../library/asyncio-exceptions.html#asyncio.CancelledError" title="asyncio.CancelledError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">asyncio.CancelledError</span></code></a> was replaced with another exception by a
context manager. Patch by Kumar Aditya and Guido van Rossum.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94909">gh-94909</a>: Fix incorrect joining of relative Windows paths with drives in
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> initializer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95385">gh-95385</a>: Faster <code class="docutils literal notranslate"><span class="pre">json.dumps()</span></code> when sorting of keys is not requested
(default).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83901">gh-83901</a>: Improve <a class="reference internal" href="../library/inspect.html#inspect.Signature.bind" title="inspect.Signature.bind"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Signature.bind</span></code></a> error
message for missing keyword-only arguments.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95339">gh-95339</a>: Update bundled pip to 22.2.1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95045">gh-95045</a>: Fix GC crash when deallocating <code class="docutils literal notranslate"><span class="pre">_lsprof.Profiler</span></code> by
untracking it before calling any callbacks. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95231">gh-95231</a>: Fail gracefully if <a class="reference internal" href="../library/errno.html#errno.EPERM" title="errno.EPERM"><code class="xref py py-const docutils literal notranslate"><span class="pre">EPERM</span></code></a> or
<a class="reference internal" href="../library/errno.html#errno.ENOSYS" title="errno.ENOSYS"><code class="xref py py-const docutils literal notranslate"><span class="pre">ENOSYS</span></code></a> is raised when loading <code class="xref py py-mod docutils literal notranslate"><span class="pre">crypt</span></code> methods. This
may happen when trying to load <code class="docutils literal notranslate"><span class="pre">MD5</span></code> on a Linux kernel with <abbr title="Federal Information Processing Standard">FIPS</abbr> enabled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95097">gh-95097</a>: Fix <a class="reference internal" href="../library/asyncio-runner.html#asyncio.run" title="asyncio.run"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.run()</span></code></a> for <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Task</span></code></a>
implementations without <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.uncancel" title="asyncio.Task.uncancel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">uncancel()</span></code></a> method. Patch by
Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95087">gh-95087</a>: Fix IndexError in parsing invalid date in the <a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a>
module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95199">gh-95199</a>: Upgrade bundled setuptools to 63.2.0.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95194">gh-95194</a>: Upgrade bundled pip to 22.2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93899">gh-93899</a>: Fix check for existence of <a class="reference internal" href="../library/os.html#os.EFD_CLOEXEC" title="os.EFD_CLOEXEC"><code class="xref py py-const docutils literal notranslate"><span class="pre">os.EFD_CLOEXEC</span></code></a>,
<a class="reference internal" href="../library/os.html#os.EFD_NONBLOCK" title="os.EFD_NONBLOCK"><code class="xref py py-const docutils literal notranslate"><span class="pre">os.EFD_NONBLOCK</span></code></a> and <a class="reference internal" href="../library/os.html#os.EFD_SEMAPHORE" title="os.EFD_SEMAPHORE"><code class="xref py py-const docutils literal notranslate"><span class="pre">os.EFD_SEMAPHORE</span></code></a> flags on older
kernel versions where these flags are not present. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95166">gh-95166</a>: Fix <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.Executor.map" title="concurrent.futures.Executor.map"><code class="xref py py-meth docutils literal notranslate"><span class="pre">concurrent.futures.Executor.map()</span></code></a> to cancel the
currently waiting on future on an error - e.g. TimeoutError or
KeyboardInterrupt.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95132">gh-95132</a>: Fix a <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> regression where <code class="docutils literal notranslate"><span class="pre">*args</span></code> and <code class="docutils literal notranslate"><span class="pre">**kwds</span></code>
were incorrectly relayed from <a class="reference internal" href="../library/sqlite3.html#sqlite3.connect" title="sqlite3.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">connect()</span></code></a> to the
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">Connection</span></code></a> factory. The regression was introduced in
3.11a1 with PR 24421 (<a class="reference external" href="https://github.com/python/cpython/issues/85128">gh-85128</a>). Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93157">gh-93157</a>: Fix <a class="reference internal" href="../library/fileinput.html#module-fileinput" title="fileinput: Loop over standard input or a list of files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">fileinput</span></code></a> module didn’t support <code class="docutils literal notranslate"><span class="pre">errors</span></code> option
when <code class="docutils literal notranslate"><span class="pre">inplace</span></code> is true.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91212">gh-91212</a>: Fixed flickering of the turtle window when the tracer is turned
off. Patch by Shin-myoung-serp.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95077">gh-95077</a>: Add deprecation warning for enum <code class="docutils literal notranslate"><span class="pre">member.member</span></code> access (e.g.
<code class="docutils literal notranslate"><span class="pre">Color.RED.BLUE</span></code>). Remove <code class="docutils literal notranslate"><span class="pre">EnumMeta.__getattr__</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95109">gh-95109</a>: Ensure that timeouts scheduled with <a class="reference internal" href="../library/asyncio-task.html#asyncio.Timeout" title="asyncio.Timeout"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Timeout</span></code></a>
that have already expired are delivered promptly.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95105">gh-95105</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">wsgiref.types.InputStream.__iter__()</span></code> should return
<code class="docutils literal notranslate"><span class="pre">Iterator[bytes]</span></code>, not <code class="docutils literal notranslate"><span class="pre">Iterable[bytes]</span></code>. Patch by Shantanu Jain.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95066">gh-95066</a>: Replaced assert with exception in <a class="reference internal" href="../library/ast.html#ast.parse" title="ast.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.parse()</span></code></a>, when
<code class="docutils literal notranslate"><span class="pre">feature_version</span></code> has an invalid major version. Patch by Shantanu Jain.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77617">gh-77617</a>: Add <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> <a class="reference internal" href="../library/sqlite3.html#sqlite3-cli"><span class="std std-ref">command-line interface</span></a>.
Patch by Erlend Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95005">gh-95005</a>: Replace <span class="c-expr sig sig-inline c"><span class="n">_PyAccu</span></span> with <span class="c-expr sig sig-inline c"><span class="n">_PyUnicodeWriter</span></span> in
JSON encoder and StringIO and remove the <span class="c-expr sig sig-inline c"><span class="n">_PyAccu</span></span> implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90085">gh-90085</a>: Remove <code class="docutils literal notranslate"><span class="pre">-c/--clock</span></code> and <code class="docutils literal notranslate"><span class="pre">-t/--time</span></code> CLI options of
<a class="reference internal" href="../library/timeit.html#module-timeit" title="timeit: Measure the execution time of small code snippets."><code class="xref py py-mod docutils literal notranslate"><span class="pre">timeit</span></code></a>. The options had been deprecated since Python 3.3 and the
functionality was removed in Python 3.7. Patch by Shantanu Jain.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94857">gh-94857</a>: Fix refleak in <code class="docutils literal notranslate"><span class="pre">_io.TextIOWrapper.reconfigure</span></code>. Patch by Kumar
Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94821">gh-94821</a>: Fix binding of unix socket to empty address on Linux to use an
available address from the abstract namespace, instead of “0”.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94736">gh-94736</a>: Fix crash when deallocating an instance of a subclass of
<code class="docutils literal notranslate"><span class="pre">_multiprocessing.SemLock</span></code>. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81620">gh-81620</a>: Add random.binomialvariate().</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74116">gh-74116</a>: Allow <a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamWriter.drain" title="asyncio.StreamWriter.drain"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.StreamWriter.drain()</span></code></a> to be awaited
concurrently by multiple tasks. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87822">gh-87822</a>: When called with <code class="docutils literal notranslate"><span class="pre">capture_locals=True</span></code>, the <a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a>
module functions swallow exceptions raised from calls to <code class="docutils literal notranslate"><span class="pre">repr()</span></code> on
local variables of frames. This is in order to prioritize the original
exception over rendering errors. An indication of the failure is printed
in place of the missing value. (Patch by Simon-Martin Schroeder).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88050">gh-88050</a>: Fix <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> subprocess transport to kill process cleanly
when process is blocked and avoid <code class="docutils literal notranslate"><span class="pre">RuntimeError</span></code> when loop is closed.
Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94637">gh-94637</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">SSLContext.set_default_verify_paths()</span></code> now releases the GIL
around <code class="docutils literal notranslate"><span class="pre">SSL_CTX_set_default_verify_paths</span></code> call. The function call
performs I/O and CPU intensive work.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94309">gh-94309</a>: Deprecate aliases <a class="reference internal" href="../library/typing.html#typing.Hashable" title="typing.Hashable"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Hashable</span></code></a> and
<a class="reference internal" href="../library/typing.html#typing.Sized" title="typing.Sized"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Sized</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92546">gh-92546</a>: An undocumented <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">pprint</span></code> benchmark is moved into
<code class="docutils literal notranslate"><span class="pre">pprint</span></code> suite of pyperformance. Patch by Oleg Iarygin.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94607">gh-94607</a>: Fix subclassing complex generics with type variables in
<a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a>. Previously an error message saying <code class="docutils literal notranslate"><span class="pre">Some</span> <span class="pre">type</span> <span class="pre">variables</span>
<span class="pre">...</span> <span class="pre">are</span> <span class="pre">not</span> <span class="pre">listed</span> <span class="pre">in</span> <span class="pre">Generic[...]</span></code> was shown. <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> no longer
populates <code class="docutils literal notranslate"><span class="pre">__parameters__</span></code> with the <code class="docutils literal notranslate"><span class="pre">__parameters__</span></code> of a Python
class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94619">gh-94619</a>: Remove the long-deprecated <code class="docutils literal notranslate"><span class="pre">module_repr()</span></code> from
<a class="reference internal" href="../library/importlib.html#module-importlib" title="importlib: The implementation of the import machinery."><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93910">gh-93910</a>: The ability to access the other values of an enum on an enum
(e.g. <code class="docutils literal notranslate"><span class="pre">Color.RED.BLUE</span></code>) has been restored in order to fix a performance
regression.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93896">gh-93896</a>: Fix <a class="reference internal" href="../library/asyncio-runner.html#asyncio.run" title="asyncio.run"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.run()</span></code></a> and
<a class="reference internal" href="../library/unittest.html#unittest.IsolatedAsyncioTestCase" title="unittest.IsolatedAsyncioTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.IsolatedAsyncioTestCase</span></code></a> to always the set event loop as
it was done in Python 3.10 and earlier. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94343">gh-94343</a>: Allow setting the attributes of <code class="docutils literal notranslate"><span class="pre">reprlib.Repr</span></code> during object
initialization</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94382">gh-94382</a>: Port static types of <code class="docutils literal notranslate"><span class="pre">_multiprocessing</span></code> module to heap types.
Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/78724">gh-78724</a>: Fix crash in <a class="reference internal" href="../library/struct.html#struct.Struct" title="struct.Struct"><code class="xref py py-class docutils literal notranslate"><span class="pre">struct.Struct</span></code></a> when it was not completely
initialized by initializing it in <a class="reference internal" href="../reference/datamodel.html#object.__new__" title="object.__new__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__new__()</span></code></a>. Patch by Kumar
Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94510">gh-94510</a>: Re-entrant calls to <a class="reference internal" href="../library/sys.html#sys.setprofile" title="sys.setprofile"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.setprofile()</span></code></a> and
<a class="reference internal" href="../library/sys.html#sys.settrace" title="sys.settrace"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.settrace()</span></code></a> now raise <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a>. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92336">gh-92336</a>: Fix bug where <a class="reference internal" href="../library/linecache.html#linecache.getline" title="linecache.getline"><code class="xref py py-meth docutils literal notranslate"><span class="pre">linecache.getline()</span></code></a> fails on bad files with
<a class="reference internal" href="../library/exceptions.html#UnicodeDecodeError" title="UnicodeDecodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeDecodeError</span></code></a> or <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>. It now returns an empty
string as per the documentation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94398">gh-94398</a>: Once a <a class="reference internal" href="../library/asyncio-task.html#asyncio.TaskGroup" title="asyncio.TaskGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.TaskGroup</span></code></a> has started shutting down
(i.e., at least one task has failed and the task group has started
cancelling the remaining tasks), it should not be possible to add new
tasks to the task group.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94383">gh-94383</a>: <code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree</span></code>: Remove the <code class="docutils literal notranslate"><span class="pre">ElementTree.Element.copy()</span></code>
method of the pure Python implementation, deprecated in Python 3.10, use
the <a class="reference internal" href="../library/copy.html#copy.copy" title="copy.copy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.copy()</span></code></a> function instead. The C implementation of
<code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree</span></code> has no <code class="docutils literal notranslate"><span class="pre">copy()</span></code> method, only a <code class="docutils literal notranslate"><span class="pre">__copy__()</span></code> method.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94379">gh-94379</a>: <a class="reference internal" href="../library/zipimport.html#module-zipimport" title="zipimport: Support for importing Python modules from ZIP archives."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipimport</span></code></a>: Remove <code class="docutils literal notranslate"><span class="pre">find_loader()</span></code> and <code class="docutils literal notranslate"><span class="pre">find_module()</span></code>
methods, deprecated in Python 3.10: use the <code class="docutils literal notranslate"><span class="pre">find_spec()</span></code> method
instead. See <span class="target" id="index-166"></span><a class="pep reference external" href="https://peps.python.org/pep-0451/"><strong>PEP 451</strong></a> for the rationale. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94352">gh-94352</a>: <a class="reference internal" href="../library/shlex.html#shlex.split" title="shlex.split"><code class="xref py py-func docutils literal notranslate"><span class="pre">shlex.split()</span></code></a>: Passing <code class="docutils literal notranslate"><span class="pre">None</span></code> for <em>s</em> argument now
raises an exception, rather than reading <a class="reference internal" href="../library/sys.html#sys.stdin" title="sys.stdin"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.stdin</span></code></a>. The feature
was deprecated in Python 3.9. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94318">gh-94318</a>: Strip trailing spaces in <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a> text output.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89988">gh-89988</a>: Fix memory leak in <a class="reference internal" href="../library/pickle.html#pickle.Pickler" title="pickle.Pickler"><code class="xref py py-class docutils literal notranslate"><span class="pre">pickle.Pickler</span></code></a> when looking up
<code class="xref py py-attr docutils literal notranslate"><span class="pre">dispatch_table</span></code>. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90016">gh-90016</a>: Deprecate <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> <a class="reference internal" href="../library/sqlite3.html#sqlite3-default-converters"><span class="std std-ref">default adapters and converters</span></a>. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94254">gh-94254</a>: Fixed types of <a class="reference internal" href="../library/struct.html#module-struct" title="struct: Interpret bytes as packed binary data."><code class="xref py py-mod docutils literal notranslate"><span class="pre">struct</span></code></a> module to be immutable. Patch by
Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93259">gh-93259</a>: Now raise <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> when <code class="docutils literal notranslate"><span class="pre">None</span></code> or an empty string are
passed to <code class="docutils literal notranslate"><span class="pre">Distribution.from_name</span></code> (and other callers).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74696">gh-74696</a>: <a class="reference internal" href="../library/shutil.html#shutil.make_archive" title="shutil.make_archive"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.make_archive()</span></code></a> now passes the <em>root_dir</em> argument
to custom archivers which support it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94216">gh-94216</a>: The <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> module now has the opcodes for pseudo
instructions (those which are used by the compiler during code generation
but then removed or replaced by real opcodes before the final bytecode is
emitted).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93096">gh-93096</a>: Removed undocumented <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">codecs</span></code>. Use <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span>
<span class="pre">unittest</span> <span class="pre">test.test_codecs.EncodedFileTest</span></code> instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94207">gh-94207</a>: Made <code class="xref py py-class docutils literal notranslate"><span class="pre">_struct.Struct</span></code> GC-tracked in order to fix a
reference leak in the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_struct</span></code> module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93096">gh-93096</a>: Removed undocumented <code class="docutils literal notranslate"><span class="pre">-t</span></code> argument of <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">base64</span></code>.
Use <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">unittest</span>
<span class="pre">test.test_base64.LegacyBase64TestCase.test_encodebytes</span></code> instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94226">gh-94226</a>: Remove the <code class="xref py py-func docutils literal notranslate"><span class="pre">locale.format()</span></code> function, deprecated in Python
3.7: use <a class="reference internal" href="../library/locale.html#locale.format_string" title="locale.format_string"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.format_string()</span></code></a> instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94199">gh-94199</a>: Remove the <code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.match_hostname()</span></code> function. The
<code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.match_hostname()</span></code> was deprecated in Python 3.7. OpenSSL performs
hostname matching since Python 3.7, Python no longer uses the
<code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.match_hostname()</span></code> function. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94214">gh-94214</a>: Document the <code class="docutils literal notranslate"><span class="pre">context</span></code> object used in the <code class="docutils literal notranslate"><span class="pre">venv.EnvBuilder</span></code>
class, and add the new environment’s library path to it.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94199">gh-94199</a>: Remove the <code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.wrap_socket()</span></code> function, deprecated in
Python 3.7: instead, create a <a class="reference internal" href="../library/ssl.html#ssl.SSLContext" title="ssl.SSLContext"><code class="xref py py-class docutils literal notranslate"><span class="pre">ssl.SSLContext</span></code></a> object and call its
<a class="reference internal" href="../library/ssl.html#ssl.SSLContext.wrap_socket" title="ssl.SSLContext.wrap_socket"><code class="xref py py-class docutils literal notranslate"><span class="pre">ssl.SSLContext.wrap_socket</span></code></a> method. Any package that still uses
<code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.wrap_socket()</span></code> is broken and insecure. The function neither sends
a SNI TLS extension nor validates server hostname. Code is subject to
<span class="target" id="index-167"></span><a class="cwe reference external" href="https://cwe.mitre.org/data/definitions/295.html"><strong>CWE 295</strong></a> Improper Certificate Validation. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94199">gh-94199</a>: Remove the <code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.RAND_pseudo_bytes()</span></code> function, deprecated in
Python 3.6: use <a class="reference internal" href="../library/os.html#os.urandom" title="os.urandom"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.urandom()</span></code></a> or <a class="reference internal" href="../library/ssl.html#ssl.RAND_bytes" title="ssl.RAND_bytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.RAND_bytes()</span></code></a> instead.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94199">gh-94199</a>: <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a>: Remove the pure Python implementation of
<a class="reference internal" href="../library/hashlib.html#hashlib.pbkdf2_hmac" title="hashlib.pbkdf2_hmac"><code class="xref py py-func docutils literal notranslate"><span class="pre">hashlib.pbkdf2_hmac()</span></code></a>, deprecated in Python 3.10. Python 3.10 and
newer requires OpenSSL 1.1.1 (<span class="target" id="index-168"></span><a class="pep reference external" href="https://peps.python.org/pep-0644/"><strong>PEP 644</strong></a>): this OpenSSL version provides a
C implementation of <a class="reference internal" href="../library/hashlib.html#hashlib.pbkdf2_hmac" title="hashlib.pbkdf2_hmac"><code class="xref py py-func docutils literal notranslate"><span class="pre">pbkdf2_hmac()</span></code></a> which is faster. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94196">gh-94196</a>: <a class="reference internal" href="../library/gzip.html#module-gzip" title="gzip: Interfaces for gzip compression and decompression using file objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gzip</span></code></a>: Remove the <code class="docutils literal notranslate"><span class="pre">filename</span></code> attribute of
<a class="reference internal" href="../library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">gzip.GzipFile</span></code></a>, deprecated since Python 2.6, use the
<a class="reference internal" href="../library/gzip.html#gzip.GzipFile.name" title="gzip.GzipFile.name"><code class="xref py py-attr docutils literal notranslate"><span class="pre">name</span></code></a> attribute instead. In write mode, the
<code class="docutils literal notranslate"><span class="pre">filename</span></code> attribute added <code class="docutils literal notranslate"><span class="pre">'.gz'</span></code> file extension if it was not
present. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94182">gh-94182</a>: run the <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.PidfdChildWatcher</span></code> on the running loop,
this allows event loops to run subprocesses when there is no default event
loop running on the main thread</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94169">gh-94169</a>: Remove <code class="docutils literal notranslate"><span class="pre">io.OpenWrapper</span></code> and <code class="docutils literal notranslate"><span class="pre">_pyio.OpenWrapper</span></code>, deprecated
in Python 3.10: just use <a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a> instead. The <a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a>
(<a class="reference internal" href="../library/io.html#io.open" title="io.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.open()</span></code></a>) function is a built-in function. Since Python 3.10,
<code class="xref py py-func docutils literal notranslate"><span class="pre">_pyio.open()</span></code> is also a static method. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91742">gh-91742</a>: Fix <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> crash after jump caused by a null pointer
dereference. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94101">gh-94101</a>: Manual instantiation of <a class="reference internal" href="../library/ssl.html#ssl.SSLSession" title="ssl.SSLSession"><code class="xref py py-class docutils literal notranslate"><span class="pre">ssl.SSLSession</span></code></a> objects is no
longer allowed as it lead to misconfigured instances that crashed the
interpreter when attributes where accessed on them.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84753">gh-84753</a>: <a class="reference internal" href="../library/inspect.html#inspect.iscoroutinefunction" title="inspect.iscoroutinefunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.iscoroutinefunction()</span></code></a>,
<a class="reference internal" href="../library/inspect.html#inspect.isgeneratorfunction" title="inspect.isgeneratorfunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.isgeneratorfunction()</span></code></a>, and
<a class="reference internal" href="../library/inspect.html#inspect.isasyncgenfunction" title="inspect.isasyncgenfunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.isasyncgenfunction()</span></code></a> now properly return <code class="docutils literal notranslate"><span class="pre">True</span></code> for
duck-typed function-like objects like instances of
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.AsyncMock" title="unittest.mock.AsyncMock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.AsyncMock</span></code></a>.</p>
<p>This makes <a class="reference internal" href="../library/inspect.html#inspect.iscoroutinefunction" title="inspect.iscoroutinefunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.iscoroutinefunction()</span></code></a> consistent with the
behavior of <code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.iscoroutinefunction()</span></code>. Patch by Mehdi ABAAKOUK.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94028">gh-94028</a>: Fix a regression in the <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> where statement objects
were not properly cleared and reset after use in cursor iters. The
regression was introduced by PR 27884 in Python 3.11a1. Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93973">gh-93973</a>: Add keyword argument <code class="docutils literal notranslate"><span class="pre">all_errors</span></code> to
<code class="docutils literal notranslate"><span class="pre">asyncio.create_connection</span></code> so that multiple connection errors can be
raised as an <code class="docutils literal notranslate"><span class="pre">ExceptionGroup</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93963">gh-93963</a>: Officially deprecate from <code class="docutils literal notranslate"><span class="pre">importlib.abc</span></code> classes moved to
<code class="docutils literal notranslate"><span class="pre">importlib.resources.abc</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93858">gh-93858</a>: Prevent error when activating venv in nested fish instances.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93820">gh-93820</a>: Pickle <a class="reference internal" href="../library/enum.html#enum.Flag" title="enum.Flag"><code class="xref py py-class docutils literal notranslate"><span class="pre">enum.Flag</span></code></a> by name.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93847">gh-93847</a>: Fix repr of enum of generic aliases.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91404">gh-91404</a>: Revert the <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> memory leak when a match is terminated by a
signal or memory allocation failure as the implemented fix caused a major
performance regression.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83499">gh-83499</a>: Fix double closing of file description in <a class="reference internal" href="../library/tempfile.html#module-tempfile" title="tempfile: Generate temporary files and directories."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tempfile</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93820">gh-93820</a>: Fixed a regression when <a class="reference internal" href="../library/copy.html#copy.copy" title="copy.copy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.copy()</span></code></a>-ing <a class="reference internal" href="../library/enum.html#enum.Flag" title="enum.Flag"><code class="xref py py-class docutils literal notranslate"><span class="pre">enum.Flag</span></code></a>
with multiple flag members.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79512">gh-79512</a>: Fixed names and <code class="docutils literal notranslate"><span class="pre">__module__</span></code> value of <a class="reference internal" href="../library/weakref.html#module-weakref" title="weakref: Support for weak references and weak dictionaries."><code class="xref py py-mod docutils literal notranslate"><span class="pre">weakref</span></code></a> classes
<a class="reference internal" href="../library/weakref.html#weakref.ReferenceType" title="weakref.ReferenceType"><code class="xref py py-class docutils literal notranslate"><span class="pre">ReferenceType</span></code></a>, <a class="reference internal" href="../library/weakref.html#weakref.ProxyType" title="weakref.ProxyType"><code class="xref py py-class docutils literal notranslate"><span class="pre">ProxyType</span></code></a>,
<a class="reference internal" href="../library/weakref.html#weakref.CallableProxyType" title="weakref.CallableProxyType"><code class="xref py py-class docutils literal notranslate"><span class="pre">CallableProxyType</span></code></a>. It makes them pickleable.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91389">gh-91389</a>: Fix an issue where <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> utilities could report missing or
incorrect position information in the presence of <code class="docutils literal notranslate"><span class="pre">CACHE</span></code> entries.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93626">gh-93626</a>: Set <code class="docutils literal notranslate"><span class="pre">__future__.annotations</span></code> to have a <code class="docutils literal notranslate"><span class="pre">None</span></code>
mandatoryRelease to indicate that it is currently ‘TBD’.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90473">gh-90473</a>: Emscripten and WASI have no home directory and cannot provide
<span class="target" id="index-169"></span><a class="pep reference external" href="https://peps.python.org/pep-0370/"><strong>PEP 370</strong></a> user site directory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90494">gh-90494</a>: <a class="reference internal" href="../library/copy.html#copy.copy" title="copy.copy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.copy()</span></code></a> and <a class="reference internal" href="../library/copy.html#copy.deepcopy" title="copy.deepcopy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.deepcopy()</span></code></a> now always raise a
TypeError if <code class="docutils literal notranslate"><span class="pre">__reduce__()</span></code> returns a tuple with length 6 instead of
silently ignore the 6th item or produce incorrect result.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90549">gh-90549</a>: Fix a multiprocessing bug where a global named resource (such as
a semaphore) could leak when a child process is spawned (as opposed to
forked).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93521">gh-93521</a>: Fixed a case where dataclasses would try to add <code class="docutils literal notranslate"><span class="pre">__weakref__</span></code>
into the <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> for a dataclass that specified
<code class="docutils literal notranslate"><span class="pre">weakref_slot=True</span></code> when it was already defined in one of its bases.
This resulted in a <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> upon the new class being created.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/79579">gh-79579</a>: <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> now correctly detects DML queries with leading
comments. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93421">gh-93421</a>: Update <a class="reference internal" href="../library/sqlite3.html#sqlite3.Cursor.rowcount" title="sqlite3.Cursor.rowcount"><code class="xref py py-data docutils literal notranslate"><span class="pre">sqlite3.Cursor.rowcount</span></code></a> when a DML statement has
run to completion. This fixes the row count for SQL queries like <code class="docutils literal notranslate"><span class="pre">UPDATE</span>
<span class="pre">...</span> <span class="pre">RETURNING</span></code>. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93475">gh-93475</a>: Expose <code class="docutils literal notranslate"><span class="pre">FICLONE</span></code> and <code class="docutils literal notranslate"><span class="pre">FICLONERANGE</span></code> constants in
<a class="reference internal" href="../library/fcntl.html#module-fcntl" title="fcntl: The fcntl() and ioctl() system calls. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">fcntl</span></code></a>. Patch by Illia Volochii.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93370">gh-93370</a>: Deprecate <code class="xref py py-data docutils literal notranslate"><span class="pre">version</span></code> and <code class="xref py py-data docutils literal notranslate"><span class="pre">version_info</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91810">gh-91810</a>: Suppress writing an XML declaration in open files in
<code class="docutils literal notranslate"><span class="pre">ElementTree.write()</span></code> with <code class="docutils literal notranslate"><span class="pre">encoding='unicode'</span></code> and
<code class="docutils literal notranslate"><span class="pre">xml_declaration=None</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91162">gh-91162</a>: Support splitting of unpacked arbitrary-length tuple over
<code class="docutils literal notranslate"><span class="pre">TypeVar</span></code> and <code class="docutils literal notranslate"><span class="pre">TypeVarTuple</span></code> parameters. For example:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">A[T,</span> <span class="pre">*Ts][*tuple[int,</span> <span class="pre">...]]</span></code> -> <code class="docutils literal notranslate"><span class="pre">A[int,</span> <span class="pre">*tuple[int,</span> <span class="pre">...]]</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">A[*Ts,</span> <span class="pre">T][*tuple[int,</span> <span class="pre">...]]</span></code> -> <code class="docutils literal notranslate"><span class="pre">A[*tuple[int,</span> <span class="pre">...],</span> <span class="pre">int]</span></code></p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93353">gh-93353</a>: Fix the <a class="reference internal" href="../library/importlib.resources.html#importlib.resources.as_file" title="importlib.resources.as_file"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.resources.as_file()</span></code></a> context manager to
remove the temporary file if destroyed late during Python finalization:
keep a local reference to the <a class="reference internal" href="../library/os.html#os.remove" title="os.remove"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.remove()</span></code></a> function. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/83658">gh-83658</a>: Make <code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Pool</span></code> raise an exception if
<code class="docutils literal notranslate"><span class="pre">maxtasksperchild</span></code> is not <code class="docutils literal notranslate"><span class="pre">None</span></code> or a positive int.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93312">gh-93312</a>: Add <a class="reference internal" href="../library/os.html#os.PIDFD_NONBLOCK" title="os.PIDFD_NONBLOCK"><code class="xref py py-const docutils literal notranslate"><span class="pre">os.PIDFD_NONBLOCK</span></code></a> flag to open a file descriptor
for a process with <a class="reference internal" href="../library/os.html#os.pidfd_open" title="os.pidfd_open"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.pidfd_open()</span></code></a> in non-blocking mode. Patch by
Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88123">gh-88123</a>: Implement <code class="docutils literal notranslate"><span class="pre">Enum.__contains__</span></code> that returns <code class="docutils literal notranslate"><span class="pre">True</span></code> or
<code class="docutils literal notranslate"><span class="pre">False</span></code> to replace the deprecated behaviour that would sometimes raise a
<a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93297">gh-93297</a>: Make asyncio task groups prevent child tasks from being GCed</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85308">gh-85308</a>: Changed <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser" title="argparse.ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code></a> to use
<a class="reference internal" href="../glossary.html#term-filesystem-encoding-and-error-handler"><span class="xref std std-term">filesystem encoding and error handler</span></a> instead of default text
encoding to read arguments from file (e.g. <code class="docutils literal notranslate"><span class="pre">fromfile_prefix_chars</span></code>
option). This change affects Windows; argument file should be encoded with
UTF-8 instead of ANSI Codepage.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93156">gh-93156</a>: Accessing the <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.parents" title="pathlib.PurePath.parents"><code class="xref py py-attr docutils literal notranslate"><span class="pre">pathlib.PurePath.parents</span></code></a> sequence of an
absolute path using negative index values produced incorrect results.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93162">gh-93162</a>: Add the ability for <a class="reference internal" href="../library/logging.config.html#logging.config.dictConfig" title="logging.config.dictConfig"><code class="xref py py-func docutils literal notranslate"><span class="pre">logging.config.dictConfig()</span></code></a> to
usefully configure <a class="reference internal" href="../library/logging.handlers.html#logging.handlers.QueueHandler" title="logging.handlers.QueueHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">QueueHandler</span></code></a> and
<a class="reference internal" href="../library/logging.handlers.html#logging.handlers.QueueListener" title="logging.handlers.QueueListener"><code class="xref py py-class docutils literal notranslate"><span class="pre">QueueListener</span></code></a> as a pair, and add
<a class="reference internal" href="../library/logging.html#logging.getHandlerByName" title="logging.getHandlerByName"><code class="xref py py-func docutils literal notranslate"><span class="pre">logging.getHandlerByName()</span></code></a> and <a class="reference internal" href="../library/logging.html#logging.getHandlerNames" title="logging.getHandlerNames"><code class="xref py py-func docutils literal notranslate"><span class="pre">logging.getHandlerNames()</span></code></a> APIs
to allow access to handlers by name.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93243">gh-93243</a>: The <code class="xref py py-mod docutils literal notranslate"><span class="pre">smtpd</span></code> module was removed per the schedule in
<span class="target" id="index-170"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92886">gh-92886</a>: Replace <code class="docutils literal notranslate"><span class="pre">assert</span></code> statements with <code class="docutils literal notranslate"><span class="pre">raise</span> <span class="pre">AssertionError()</span></code> in
<code class="xref py py-class docutils literal notranslate"><span class="pre">BaseHandler</span></code> so that the tested behaviour is maintained
running with optimizations <code class="docutils literal notranslate"><span class="pre">(-O)</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90155">gh-90155</a>: Fix broken <a class="reference internal" href="../library/asyncio-sync.html#asyncio.Semaphore" title="asyncio.Semaphore"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Semaphore</span></code></a> when acquire is cancelled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90817">gh-90817</a>: The <code class="xref py py-func docutils literal notranslate"><span class="pre">locale.resetlocale()</span></code> function is deprecated and will
be removed in Python 3.13. Use <code class="docutils literal notranslate"><span class="pre">locale.setlocale(locale.LC_ALL,</span> <span class="pre">"")</span></code>
instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91513">gh-91513</a>: Added <code class="docutils literal notranslate"><span class="pre">taskName</span></code> attribute to <a class="reference internal" href="../library/logging.html#module-logging" title="logging: Flexible event logging system for applications."><code class="xref py py-mod docutils literal notranslate"><span class="pre">logging</span></code></a> module for use
with <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> tasks.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74696">gh-74696</a>: <a class="reference internal" href="../library/shutil.html#shutil.make_archive" title="shutil.make_archive"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.make_archive()</span></code></a> no longer temporarily changes the
current working directory during creation of standard <code class="docutils literal notranslate"><span class="pre">.zip</span></code> or tar
archives.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92728">gh-92728</a>: The <code class="xref py py-func docutils literal notranslate"><span class="pre">re.template()</span></code> function and the corresponding
<code class="xref py py-const docutils literal notranslate"><span class="pre">re.TEMPLATE</span></code> and <code class="xref py py-const docutils literal notranslate"><span class="pre">re.T</span></code> flags are restored after they were
removed in 3.11.0b1, but they are now deprecated, so they might be removed
from Python 3.13.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93033">gh-93033</a>: Search in some strings (platform dependent i.e [U+0xFFFF,
U+0x0100] on Windows or [U+0xFFFFFFFF, U+0x00010000] on Linux 64-bit) are
now up to 10 times faster.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89973">gh-89973</a>: Fix <code class="xref py py-exc docutils literal notranslate"><span class="pre">re.error</span></code> raised in <a class="reference internal" href="../library/fnmatch.html#module-fnmatch" title="fnmatch: Unix shell style filename pattern matching."><code class="xref py py-mod docutils literal notranslate"><span class="pre">fnmatch</span></code></a> if the pattern
contains a character range with upper bound lower than lower bound (e.g.
<code class="docutils literal notranslate"><span class="pre">[c-a]</span></code>). Now such ranges are interpreted as empty ranges.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93044">gh-93044</a>: No longer convert the database argument of
<a class="reference internal" href="../library/sqlite3.html#sqlite3.connect" title="sqlite3.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">sqlite3.connect()</span></code></a> to bytes before passing it to the factory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93010">gh-93010</a>: In a very special case, the email package tried to append the
nonexistent <code class="docutils literal notranslate"><span class="pre">InvalidHeaderError</span></code> to the defect list. It should have been
<code class="docutils literal notranslate"><span class="pre">InvalidHeaderDefect</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92986">gh-92986</a>: Fix <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> when <code class="docutils literal notranslate"><span class="pre">ImportFrom.level</span></code> is <code class="docutils literal notranslate"><span class="pre">None</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92932">gh-92932</a>: Now <a class="reference internal" href="../library/dis.html#dis.dis" title="dis.dis"><code class="xref py py-func docutils literal notranslate"><span class="pre">dis()</span></code></a> and <a class="reference internal" href="../library/dis.html#dis.get_instructions" title="dis.get_instructions"><code class="xref py py-func docutils literal notranslate"><span class="pre">get_instructions()</span></code></a> handle
operand values for instructions prefixed by <code class="docutils literal notranslate"><span class="pre">EXTENDED_ARG_QUICK</span></code>. Patch
by Sam Gross and Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92675">gh-92675</a>: Fix <code class="xref py py-func docutils literal notranslate"><span class="pre">venv.ensure_directories()</span></code> to accept
<a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> arguments in addition to <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> paths. Patch
by David Foster.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87901">gh-87901</a>: Removed the <code class="docutils literal notranslate"><span class="pre">encoding</span></code> argument from <a class="reference internal" href="../library/os.html#os.popen" title="os.popen"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.popen()</span></code></a> that was
added in 3.11b1.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91922">gh-91922</a>: Fix function <code class="xref py py-func docutils literal notranslate"><span class="pre">sqlite.connect()</span></code> and the
<code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite.Connection</span></code> constructor on non-UTF-8 locales. Also, they
now support bytes paths non-decodable with the current FS encoding.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92869">gh-92869</a>: Added <a class="reference internal" href="../library/ctypes.html#ctypes.c_time_t" title="ctypes.c_time_t"><code class="xref py py-class docutils literal notranslate"><span class="pre">c_time_t</span></code></a> to <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a>, which has the
same size as the <code class="xref c c-type docutils literal notranslate"><span class="pre">time_t</span></code> type in C.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92839">gh-92839</a>: Fixed crash resulting from calling bisect.insort() or
bisect.insort_left() with the key argument not equal to <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90473">gh-90473</a>: <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> now fails early on Emscripten and WASI
platforms to work around missing <a class="reference internal" href="../library/os.html#os.pipe" title="os.pipe"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.pipe()</span></code></a> on WASI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89325">gh-89325</a>: Removed many old deprecated <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> features:
<a class="reference internal" href="../library/unittest.html#unittest.TestCase" title="unittest.TestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">TestCase</span></code></a> method aliases, undocumented and broken
<a class="reference internal" href="../library/unittest.html#unittest.TestCase" title="unittest.TestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">TestCase</span></code></a> method <code class="docutils literal notranslate"><span class="pre">assertDictContainsSubset</span></code>,
undocumented <a class="reference internal" href="../library/unittest.html#unittest.TestLoader.loadTestsFromModule" title="unittest.TestLoader.loadTestsFromModule"><code class="xref py py-meth docutils literal notranslate"><span class="pre">TestLoader.loadTestsFromModule</span></code></a> parameter <em>use_load_tests</em>, and
an underscored alias of the <a class="reference internal" href="../library/unittest.html#unittest.TextTestResult" title="unittest.TextTestResult"><code class="xref py py-class docutils literal notranslate"><span class="pre">TextTestResult</span></code></a> class.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92734">gh-92734</a>: Allow multi-element reprs emitted by <a class="reference internal" href="../library/reprlib.html#module-reprlib" title="reprlib: Alternate repr() implementation with size limits."><code class="xref py py-mod docutils literal notranslate"><span class="pre">reprlib</span></code></a> to be
pretty-printed using configurable indentation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92671">gh-92671</a>: Fixed <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> for empty tuples in the assignment
target context.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91581">gh-91581</a>: <a class="reference internal" href="../library/datetime.html#datetime.datetime.utcfromtimestamp" title="datetime.datetime.utcfromtimestamp"><code class="xref py py-meth docutils literal notranslate"><span class="pre">utcfromtimestamp()</span></code></a> no longer attempts
to resolve <code class="docutils literal notranslate"><span class="pre">fold</span></code> in the pure Python implementation, since the fold is
never 1 in UTC. In addition to being slightly faster in the common case,
this also prevents some errors when the timestamp is close to
<a class="reference internal" href="../library/datetime.html#datetime.datetime.min" title="datetime.datetime.min"><code class="xref py py-attr docutils literal notranslate"><span class="pre">datetime.min</span></code></a>. Patch by Paul Ganssle.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86388">gh-86388</a>: Removed randrange() functionality deprecated since Python 3.10.
Formerly, randrange(10.0) losslessly converted to randrange(10). Now, it
raises a TypeError. Also, the exception raised for non-integral values
such as randrange(10.5) or randrange(‘10’) has been changed from
ValueError to TypeError.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90385">gh-90385</a>: Add <a class="reference internal" href="../library/pathlib.html#pathlib.Path.walk" title="pathlib.Path.walk"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.walk()</span></code></a> as an alternative to
<a class="reference internal" href="../library/os.html#os.walk" title="os.walk"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.walk()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92550">gh-92550</a>: Fix <a class="reference internal" href="../library/pathlib.html#pathlib.Path.rglob" title="pathlib.Path.rglob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.rglob()</span></code></a> for empty pattern.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92591">gh-92591</a>: Allow <a class="reference internal" href="../library/logging.html#module-logging" title="logging: Flexible event logging system for applications."><code class="xref py py-mod docutils literal notranslate"><span class="pre">logging</span></code></a> filters to return a
<a class="reference internal" href="../library/logging.html#logging.LogRecord" title="logging.LogRecord"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.LogRecord</span></code></a> instance so that filters attached to
<a class="reference internal" href="../library/logging.html#logging.Handler" title="logging.Handler"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.Handler</span></code></a>s can enrich records without side effects on
other handlers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92445">gh-92445</a>: Fix a bug in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> where <code class="docutils literal notranslate"><span class="pre">nargs="*"</span></code> would raise an
error instead of returning an empty list when 0 arguments were supplied if
choice was also defined in <code class="docutils literal notranslate"><span class="pre">parser.add_argument</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92547">gh-92547</a>: Remove undocumented <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> features deprecated in Python
3.10:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">sqlite3.enable_shared_cache()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">sqlite3.OptimizedUnicode</span></code></p></li>
</ul>
<p>Patch by Erlend E. Aasland.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92530">gh-92530</a>: Fix an issue that occurred after interrupting
<a class="reference internal" href="../library/threading.html#threading.Condition.notify" title="threading.Condition.notify"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.Condition.notify()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92531">gh-92531</a>: The statistics.median_grouped() function now always return a
float. Formerly, it did not convert the input type when for sequences of
length one.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84131">gh-84131</a>: The <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> deprecated method <code class="docutils literal notranslate"><span class="pre">link_to</span></code> has been
removed. Use 3.10’s <a class="reference internal" href="../library/pathlib.html#pathlib.Path.hardlink_to" title="pathlib.Path.hardlink_to"><code class="xref py py-meth docutils literal notranslate"><span class="pre">hardlink_to()</span></code></a> method instead as
its semantics are consistent with that of
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.symlink_to" title="pathlib.Path.symlink_to"><code class="xref py py-meth docutils literal notranslate"><span class="pre">symlink_to()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89336">gh-89336</a>: Removed <a class="reference internal" href="../library/configparser.html#module-configparser" title="configparser: Configuration file parser."><code class="xref py py-mod docutils literal notranslate"><span class="pre">configparser</span></code></a> module APIs: the
<code class="docutils literal notranslate"><span class="pre">SafeConfigParser</span></code> class alias, the <code class="docutils literal notranslate"><span class="pre">ParsingError.filename</span></code> property
and parameter, and the <code class="docutils literal notranslate"><span class="pre">ConfigParser.readfp</span></code> method, all of which were
deprecated since Python 3.2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92391">gh-92391</a>: Add <a class="reference internal" href="../reference/datamodel.html#object.__class_getitem__" title="object.__class_getitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__class_getitem__()</span></code></a> to
<a class="reference internal" href="../library/csv.html#csv.DictReader" title="csv.DictReader"><code class="xref py py-class docutils literal notranslate"><span class="pre">csv.DictReader</span></code></a> and <a class="reference internal" href="../library/csv.html#csv.DictWriter" title="csv.DictWriter"><code class="xref py py-class docutils literal notranslate"><span class="pre">csv.DictWriter</span></code></a>, allowing them to be
parameterized at runtime. Patch by Marc Mueller.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91968">gh-91968</a>: Add <code class="docutils literal notranslate"><span class="pre">SO_RTABLE</span></code> and <code class="docutils literal notranslate"><span class="pre">SO_USER_COOKIE</span></code> constants to
<a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91810">gh-91810</a>: <a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree" title="xml.etree.ElementTree.ElementTree"><code class="xref py py-class docutils literal notranslate"><span class="pre">ElementTree</span></code></a> method
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.ElementTree.write" title="xml.etree.ElementTree.ElementTree.write"><code class="xref py py-meth docutils literal notranslate"><span class="pre">write()</span></code></a> and function
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.tostring" title="xml.etree.ElementTree.tostring"><code class="xref py py-func docutils literal notranslate"><span class="pre">tostring()</span></code></a> now use the text file’s encoding
(“UTF-8” if not available) instead of locale encoding in XML declaration
when <code class="docutils literal notranslate"><span class="pre">encoding="unicode"</span></code> is specified.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81790">gh-81790</a>: <a class="reference internal" href="../library/os.path.html#os.path.splitdrive" title="os.path.splitdrive"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.splitdrive()</span></code></a> now understands DOS device paths with
UNC links (beginning <code class="docutils literal notranslate"><span class="pre">\\?\UNC\</span></code>). Contributed by Barney Gale.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91760">gh-91760</a>: Apply more strict rules for numerical group references and group
names in regular expressions. Only sequence of ASCII digits is now
accepted as a numerical reference. The group name in bytes patterns and
replacement strings can now only contain ASCII letters and digits and
underscore.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90622">gh-90622</a>: Worker processes for
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor</span></code></a> are no longer spawned on
demand (a feature added in 3.9) when the multiprocessing context start
method is <code class="docutils literal notranslate"><span class="pre">"fork"</span></code> as that can lead to deadlocks in the child processes
due to a fork happening while threads are running.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91577">gh-91577</a>: Move imports in <code class="xref py py-class docutils literal notranslate"><span class="pre">SharedMemory</span></code> methods
to module level so that they can be executed late in python finalization.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91581">gh-91581</a>: Remove an unhandled error case in the C implementation of calls
to <a class="reference internal" href="../library/datetime.html#datetime.datetime.fromtimestamp" title="datetime.datetime.fromtimestamp"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.fromtimestamp</span></code></a> with
no time zone (i.e. getting a local time from an epoch timestamp). This
should have no user-facing effect other than giving a possibly more
accurate error message when called with timestamps that fall on
10000-01-01 in the local time. Patch by Paul Ganssle.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91539">gh-91539</a>: Improve performance of <code class="docutils literal notranslate"><span class="pre">urllib.request.getproxies_environment</span></code>
when there are many environment variables</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91524">gh-91524</a>: Speed up the regular expression substitution (functions
<a class="reference internal" href="../library/re.html#re.sub" title="re.sub"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.sub()</span></code></a> and <a class="reference internal" href="../library/re.html#re.subn" title="re.subn"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.subn()</span></code></a> and corresponding <a class="reference internal" href="../library/re.html#re.Pattern" title="re.Pattern"><code class="xref py py-class docutils literal notranslate"><span class="pre">re.Pattern</span></code></a>
methods) for replacement strings containing group references by 2–3
times.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91447">gh-91447</a>: Fix findtext in the xml module to only give an empty string when
the text attribute is set to <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91456">gh-91456</a>: Deprecate current default auto() behavior: In 3.13 the default
will be for for auto() to always return the largest member value
incremented by 1, and to raise if incompatible value types are used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47231">bpo-47231</a>: Fixed an issue with inconsistent trailing slashes in tarfile
longname directories.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39064">bpo-39064</a>: <a class="reference internal" href="../library/zipfile.html#zipfile.ZipFile" title="zipfile.ZipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">zipfile.ZipFile</span></code></a> now raises <a class="reference internal" href="../library/zipfile.html#zipfile.BadZipFile" title="zipfile.BadZipFile"><code class="xref py py-exc docutils literal notranslate"><span class="pre">zipfile.BadZipFile</span></code></a>
instead of <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> when reading a corrupt zip file in which the
central directory offset is negative.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41287">bpo-41287</a>: Fix handling of the <code class="docutils literal notranslate"><span class="pre">doc</span></code> argument in subclasses of
<a class="reference internal" href="../library/functions.html#property" title="property"><code class="xref py py-func docutils literal notranslate"><span class="pre">property()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90005">gh-90005</a>: <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> dependency <code class="docutils literal notranslate"><span class="pre">libffi</span></code> is now detected with
<code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32547">bpo-32547</a>: The constructors for <a class="reference internal" href="../library/csv.html#csv.DictWriter" title="csv.DictWriter"><code class="xref py py-class docutils literal notranslate"><span class="pre">DictWriter</span></code></a> and
<a class="reference internal" href="../library/csv.html#csv.DictReader" title="csv.DictReader"><code class="xref py py-class docutils literal notranslate"><span class="pre">DictReader</span></code></a> now coerce the <code class="docutils literal notranslate"><span class="pre">fieldnames</span></code> argument to a
<a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> if it is an iterator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35540">bpo-35540</a>: Fix <a class="reference internal" href="../library/dataclasses.html#dataclasses.asdict" title="dataclasses.asdict"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.asdict()</span></code></a> crash when
<a class="reference internal" href="../library/collections.html#collections.defaultdict" title="collections.defaultdict"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.defaultdict</span></code></a> is present in the attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47063">bpo-47063</a>: Add an index_pages parameter to support using non-default index
page names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47025">bpo-47025</a>: Drop support for <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> on <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46951">bpo-46951</a>: Order the contents of zipapp archives, to make builds more
reproducible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42777">bpo-42777</a>: Implement <a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_mount" title="pathlib.Path.is_mount"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.is_mount()</span></code></a> for Windows paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46755">bpo-46755</a>: In <code class="xref py py-class docutils literal notranslate"><span class="pre">QueueHandler</span></code>, clear <code class="docutils literal notranslate"><span class="pre">stack_info</span></code> from
<code class="xref py py-class docutils literal notranslate"><span class="pre">LogRecord</span></code> to prevent stack trace from being written twice.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45393">bpo-45393</a>: Fix the formatting for <code class="docutils literal notranslate"><span class="pre">await</span> <span class="pre">x</span></code> and <code class="docutils literal notranslate"><span class="pre">not</span> <span class="pre">x</span></code> in the
operator precedence table when using the <a class="reference internal" href="../library/functions.html#help" title="help"><code class="xref py py-func docutils literal notranslate"><span class="pre">help()</span></code></a> system.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46642">bpo-46642</a>: Improve error message when trying to subclass an instance of
<a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.TypeVar</span></code></a>, <a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.ParamSpec</span></code></a>,
<a class="reference internal" href="../library/typing.html#typing.TypeVarTuple" title="typing.TypeVarTuple"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.TypeVarTuple</span></code></a>, etc. Based on patch by Gregory Beauregard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46364">bpo-46364</a>: Restrict use of sockets instead of pipes for stdin of
subprocesses created by <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> to AIX platform only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28249">bpo-28249</a>: Set <a class="reference internal" href="../library/doctest.html#doctest.DocTest.lineno" title="doctest.DocTest.lineno"><code class="xref py py-attr docutils literal notranslate"><span class="pre">doctest.DocTest.lineno</span></code></a> to <code class="docutils literal notranslate"><span class="pre">None</span></code> when an object
does not have <a class="reference internal" href="../library/stdtypes.html#definition.__doc__" title="definition.__doc__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__doc__</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46197">bpo-46197</a>: Fix <a class="reference internal" href="../library/ensurepip.html#module-ensurepip" title="ensurepip: Bootstrapping the "pip" installer into an existing Python installation or virtual environment."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ensurepip</span></code></a> environment isolation for subprocess
running <code class="docutils literal notranslate"><span class="pre">pip</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45924">bpo-45924</a>: Fix <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> incorrect traceback when future’s exception
is raised multiple times. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45046">bpo-45046</a>: Add support of context managers in <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a>: methods
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.enterContext" title="unittest.TestCase.enterContext"><code class="xref py py-meth docutils literal notranslate"><span class="pre">enterContext()</span></code></a> and
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.enterClassContext" title="unittest.TestCase.enterClassContext"><code class="xref py py-meth docutils literal notranslate"><span class="pre">enterClassContext()</span></code></a> of class
<a class="reference internal" href="../library/unittest.html#unittest.TestCase" title="unittest.TestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">TestCase</span></code></a>, method
<a class="reference internal" href="../library/unittest.html#unittest.IsolatedAsyncioTestCase.enterAsyncContext" title="unittest.IsolatedAsyncioTestCase.enterAsyncContext"><code class="xref py py-meth docutils literal notranslate"><span class="pre">enterAsyncContext()</span></code></a> of class
<a class="reference internal" href="../library/unittest.html#unittest.IsolatedAsyncioTestCase" title="unittest.IsolatedAsyncioTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">IsolatedAsyncioTestCase</span></code></a> and function
<a class="reference internal" href="../library/unittest.html#unittest.enterModuleContext" title="unittest.enterModuleContext"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.enterModuleContext()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44173">bpo-44173</a>: Enable fast seeking of uncompressed unencrypted
<code class="xref py py-class docutils literal notranslate"><span class="pre">zipfile.ZipExtFile</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42627">bpo-42627</a>: Fix incorrect parsing of Windows registry proxy settings</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42047">bpo-42047</a>: Add <a class="reference internal" href="../library/threading.html#threading.get_native_id" title="threading.get_native_id"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.get_native_id()</span></code></a> support for DragonFly BSD.
Patch by David Carlier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14243">bpo-14243</a>: The <a class="reference internal" href="../library/tempfile.html#tempfile.NamedTemporaryFile" title="tempfile.NamedTemporaryFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">tempfile.NamedTemporaryFile</span></code></a> function has a new
optional parameter <em>delete_on_close</em></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41246">bpo-41246</a>: Give the same callback function for when the overlapped
operation is done to the functions <code class="docutils literal notranslate"><span class="pre">recv</span></code>, <code class="docutils literal notranslate"><span class="pre">recv_into</span></code>, <code class="docutils literal notranslate"><span class="pre">recvfrom</span></code>,
<code class="docutils literal notranslate"><span class="pre">sendto</span></code>, <code class="docutils literal notranslate"><span class="pre">send</span></code> and <code class="docutils literal notranslate"><span class="pre">sendfile</span></code> inside <code class="docutils literal notranslate"><span class="pre">IocpProactor</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39264">bpo-39264</a>: Fixed <code class="xref py py-meth docutils literal notranslate"><span class="pre">collections.UserDict.get()</span></code> to not call
<a class="reference internal" href="../reference/datamodel.html#object.__missing__" title="object.__missing__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__missing__()</span></code></a> when a value is not found. This matches the
behavior of <a class="reference internal" href="../library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a>. Patch by Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38693">bpo-38693</a>: <a class="reference internal" href="../library/importlib.html#module-importlib" title="importlib: The implementation of the import machinery."><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib</span></code></a> now uses f-strings internally instead of
<code class="docutils literal notranslate"><span class="pre">str.format</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38267">bpo-38267</a>: Add <em>timeout</em> parameter to
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.shutdown_default_executor" title="asyncio.loop.shutdown_default_executor"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.shutdown_default_executor()</span></code></a>. The default value is
<code class="docutils literal notranslate"><span class="pre">None</span></code>, which means the executor will be given an unlimited amount of
time. When called from <a class="reference internal" href="../library/asyncio-runner.html#asyncio.Runner" title="asyncio.Runner"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Runner</span></code></a> or <a class="reference internal" href="../library/asyncio-runner.html#asyncio.run" title="asyncio.run"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.run()</span></code></a>, the
default timeout is 5 minutes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34828">bpo-34828</a>: <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.iterdump" title="sqlite3.Connection.iterdump"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.iterdump()</span></code></a> now handles databases that
use <code class="docutils literal notranslate"><span class="pre">AUTOINCREMENT</span></code> in one or more tables.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32990">bpo-32990</a>: Support reading wave files with the <code class="docutils literal notranslate"><span class="pre">WAVE_FORMAT_EXTENSIBLE</span></code>
format in the <a class="reference internal" href="../library/wave.html#module-wave" title="wave: Provide an interface to the WAV sound format."><code class="xref py py-mod docutils literal notranslate"><span class="pre">wave</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26253">bpo-26253</a>: Allow adjustable compression level for tarfile streams in
<a class="reference internal" href="../library/tarfile.html#tarfile.open" title="tarfile.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">tarfile.open()</span></code></a>.</p></li>
</ul>
</section>
<section id="id249">
<h3>Documentation<a class="headerlink" href="#id249" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85525">gh-85525</a>: Remove extra row</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86404">gh-86404</a>: Deprecated tools <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">suspicious</span></code> and <code class="docutils literal notranslate"><span class="pre">rstlint.py</span></code> are now
removed. They have been replaced by <a class="extlink-pypi reference external" href="https://pypi.org/project/sphinx-lint/">sphinx-lint</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97741">gh-97741</a>: Fix <code class="docutils literal notranslate"><span class="pre">!</span></code> in c domain ref target syntax via a <code class="docutils literal notranslate"><span class="pre">conf.py</span></code> patch,
so it works as intended to disable ref target resolution.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96432">gh-96432</a>: Fraction literals now support whitespace around the forward
slash, <code class="docutils literal notranslate"><span class="pre">Fraction('2</span> <span class="pre">/</span> <span class="pre">3')</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96098">gh-96098</a>: Improve discoverability of the higher level concurrent.futures
module by providing clearer links from the lower level threading and
multiprocessing modules.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95957">gh-95957</a>: What’s New 3.11 now has instructions for how to provide compiler
and linker flags for Tcl/Tk and OpenSSL on RHEL 7 and CentOS 7.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95588">gh-95588</a>: Clarified the conflicting advice given in the <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a>
documentation about <a class="reference internal" href="../library/ast.html#ast.literal_eval" title="ast.literal_eval"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.literal_eval()</span></code></a> being “safe” for use on
untrusted input while at the same time warning that it can crash the
process. The latter statement is true and is deemed unfixable without a
large amount of work unsuitable for a bugfix. So we keep the warning and
no longer claim that <code class="docutils literal notranslate"><span class="pre">literal_eval</span></code> is safe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91207">gh-91207</a>: Fix stylesheet not working in Windows CHM htmlhelp docs and add
warning that they are deprecated. Contributed by C.A.M. Gerlach.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95454">gh-95454</a>: Replaced incorrectly written true/false values in documentation.
Patch by Robert O’Shea</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95451">gh-95451</a>: Update library documentation with <a class="reference internal" href="../library/intro.html#wasm-availability"><span class="std std-ref">availability information</span></a> on WebAssembly platforms <code class="docutils literal notranslate"><span class="pre">wasm32-emscripten</span></code> and
<code class="docutils literal notranslate"><span class="pre">wasm32-wasi</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95415">gh-95415</a>: Use consistent syntax for platform availability. The directive
now supports a content body and emits a warning when it encounters an
unknown platform.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94321">gh-94321</a>: Document the <span class="target" id="index-171"></span><a class="pep reference external" href="https://peps.python.org/pep-0246/"><strong>PEP 246</strong></a> style protocol type
<a class="reference internal" href="../library/sqlite3.html#sqlite3.PrepareProtocol" title="sqlite3.PrepareProtocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.PrepareProtocol</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86128">gh-86128</a>: Document a limitation in ThreadPoolExecutor where its exit
handler is executed before any handlers in atexit.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/61162">gh-61162</a>: Clarify <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> behavior when
<a class="reference internal" href="../library/sqlite3.html#sqlite3-connection-context-manager"><span class="std std-ref">How to use the connection context manager</span></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87260">gh-87260</a>: Align <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> argument specs with the actual
implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86986">gh-86986</a>: The minimum Sphinx version required to build the documentation
is now 3.2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88831">gh-88831</a>: Augmented documentation of asyncio.create_task(). Clarified the
need to keep strong references to tasks and added a code snippet detailing
how to do this.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86438">gh-86438</a>: Clarify that <a class="reference internal" href="../using/cmdline.html#cmdoption-W"><code class="xref std std-option docutils literal notranslate"><span class="pre">-W</span></code></a> and <span class="target" id="index-172"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONWARNINGS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONWARNINGS</span></code></a> are
matched literally and case-insensitively, rather than as regular
expressions, in <a class="reference internal" href="../library/warnings.html#module-warnings" title="warnings: Issue warning messages and control their disposition."><code class="xref py py-mod docutils literal notranslate"><span class="pre">warnings</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93031">gh-93031</a>: Update tutorial introduction output to use 3.10+ SyntaxError
invalid range.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92240">gh-92240</a>: Added release dates for “What’s New in Python 3.X” for 3.0, 3.1,
3.2, 3.8 and 3.10</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47161">bpo-47161</a>: Document that <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> does not collapse
initial double slashes because they denote UNC paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40838">bpo-40838</a>: Document that <a class="reference internal" href="../library/inspect.html#inspect.getdoc" title="inspect.getdoc"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getdoc()</span></code></a>,
<a class="reference internal" href="../library/inspect.html#inspect.getmodule" title="inspect.getmodule"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getmodule()</span></code></a>, and <a class="reference internal" href="../library/inspect.html#inspect.getsourcefile" title="inspect.getsourcefile"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getsourcefile()</span></code></a> might return
<code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43689">bpo-43689</a>: The <code class="docutils literal notranslate"><span class="pre">Differ</span></code> documentation now also mentions other whitespace
characters, which make it harder to understand the diff output.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38056">bpo-38056</a>: Overhaul the <a class="reference internal" href="../library/codecs.html#error-handlers"><span class="std std-ref">Error Handlers</span></a> documentation in
<a class="reference internal" href="../library/codecs.html#module-codecs" title="codecs: Encode and decode data and streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">codecs</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13553">bpo-13553</a>: Document tkinter.Tk args.</p></li>
</ul>
</section>
<section id="id250">
<h3>Tests<a class="headerlink" href="#id250" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95027">gh-95027</a>: On Windows, when the Python test suite is run with the <code class="docutils literal notranslate"><span class="pre">-jN</span></code>
option, the ANSI code page is now used as the encoding for the stdout
temporary file, rather than using UTF-8 which can lead to decoding errors.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96624">gh-96624</a>: Fixed the failure of repeated runs of <code class="docutils literal notranslate"><span class="pre">test.test_unittest</span></code>
caused by side effects in <code class="docutils literal notranslate"><span class="pre">test_dotted_but_module_not_loaded</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95243">gh-95243</a>: Mitigate the inherent race condition from using
find_unused_port() in testSockName() by trying to find an unused port a
few times before failing. Patch by Ross Burton.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95573">gh-95573</a>: <a class="extlink-source reference external" href="https://github.com/python/cpython/tree/3.14/Lib/test/test_asyncio/test_ssl.py">Lib/test/test_asyncio/test_ssl.py</a> exposed a bug in the
macOS kernel where intense concurrent load on non-blocking sockets
occasionally causes <a class="reference internal" href="../library/errno.html#errno.ENOBUFS" title="errno.ENOBUFS"><code class="xref py py-const docutils literal notranslate"><span class="pre">errno.ENOBUFS</span></code></a> (“No buffer space available”)
to be emitted. FB11063974 filed with Apple, in the mean time as a
workaround buffer size used in tests on macOS is decreased to avoid
intermittent failures. Patch by Fantix King.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95280">gh-95280</a>: Fix problem with <code class="docutils literal notranslate"><span class="pre">test_ssl</span></code> <code class="docutils literal notranslate"><span class="pre">test_get_ciphers</span></code> on systems
that require perfect forward secrecy (PFS) ciphers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95212">gh-95212</a>: Make multiprocessing test case <code class="docutils literal notranslate"><span class="pre">test_shared_memory_recreate</span></code>
parallel-safe.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95218">gh-95218</a>: Move tests for importlib.resources into
test_importlib.resources.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93963">gh-93963</a>: Updated tests to use preferred location for
<code class="docutils literal notranslate"><span class="pre">importlib.resources</span></code> ABCs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94675">gh-94675</a>: Add a regression test for <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> exponentional slowdown when
using rjsmin.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91330">gh-91330</a>: Added more tests for <a class="reference internal" href="../library/dataclasses.html#module-dataclasses" title="dataclasses: Generate special methods on user-defined classes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dataclasses</span></code></a> to cover behavior with
data descriptor-based fields.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94208">gh-94208</a>: <code class="docutils literal notranslate"><span class="pre">test_ssl</span></code> is now checking for supported TLS version and
protocols in more tests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94315">gh-94315</a>: Tests now check for DAC override capability instead of relying
on <a class="reference internal" href="../library/os.html#os.geteuid" title="os.geteuid"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.geteuid()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/54781">gh-54781</a>: Rename test_tk to test_tkinter, and rename test_ttk_guionly to
test_ttk. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93839">gh-93839</a>: Move <code class="docutils literal notranslate"><span class="pre">Lib/ctypes/test/</span></code> to <code class="docutils literal notranslate"><span class="pre">Lib/test/test_ctypes/</span></code>. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93951">gh-93951</a>: In test_bdb.StateTestCase.test_skip, avoid including auxiliary
importers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93957">gh-93957</a>: Provide nicer error reporting from subprocesses in
test_venv.EnsurePipTest.test_with_pip.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93884">gh-93884</a>: Add test cases for <a class="reference internal" href="../c-api/number.html#c.PyNumber_ToBase" title="PyNumber_ToBase"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyNumber_ToBase()</span></code></a> that take a large
number or a non-int object as parameter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93852">gh-93852</a>: test_asyncio, test_logging, test_socket and test_socketserver
now create AF_UNIX domains in the current directory to no longer fail with
<code class="docutils literal notranslate"><span class="pre">OSError("AF_UNIX</span> <span class="pre">path</span> <span class="pre">too</span> <span class="pre">long")</span></code> if the temporary directory (the
<span class="target" id="index-173"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">TMPDIR</span></code> environment variable) is too long. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93353">gh-93353</a>: regrtest now checks if a test leaks temporary files or
directories if run with -jN option. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84461">gh-84461</a>: <code class="docutils literal notranslate"><span class="pre">run_tests.py</span></code> now handles cross compiling env vars correctly
and pass <code class="docutils literal notranslate"><span class="pre">HOSTRUNNER</span></code> to regression tests.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93616">gh-93616</a>: <code class="docutils literal notranslate"><span class="pre">test_modulefinder</span></code> now creates a temporary directory in
<code class="docutils literal notranslate"><span class="pre">ModuleFinderTest.setUp()</span></code> instead of module scope.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93575">gh-93575</a>: Fix issue with test_unicode test_raiseMemError. The test case
now use <code class="docutils literal notranslate"><span class="pre">test.support.calcobjsize</span></code> to calculate size of PyUnicode
structs. <a class="reference internal" href="../library/sys.html#sys.getsizeof" title="sys.getsizeof"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.getsizeof()</span></code></a> may return different size when string has
UTF-8 memory.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90473">gh-90473</a>: WASI does not have a <code class="docutils literal notranslate"><span class="pre">chmod(2)</span></code> syscall. <a class="reference internal" href="../library/os.html#os.chmod" title="os.chmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.chmod()</span></code></a> is
now a dummy function on WASI. Skip all tests that depend on working
<a class="reference internal" href="../library/os.html#os.chmod" title="os.chmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.chmod()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90473">gh-90473</a>: Skip tests on WASI that require symlinks with absolute paths.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/57539">gh-57539</a>: Increase calendar test coverage for
<code class="xref py py-meth docutils literal notranslate"><span class="pre">calendar.LocaleTextCalendar.formatweekday()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90473">gh-90473</a>: Skip symlink tests on WASI. wasmtime uses <code class="docutils literal notranslate"><span class="pre">openat2(2)</span></code> with
<code class="docutils literal notranslate"><span class="pre">RESOLVE_BENEATH</span></code> flag, which prevents symlinks with absolute paths.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89858">gh-89858</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_embed</span></code> for out-of-tree builds. Patch by Kumar
Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92886">gh-92886</a>: Fixing tests that fail when running with optimizations (<code class="docutils literal notranslate"><span class="pre">-O</span></code>)
in <code class="docutils literal notranslate"><span class="pre">test_imaplib.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92886">gh-92886</a>: Fixing tests that fail when running with optimizations (<code class="docutils literal notranslate"><span class="pre">-O</span></code>)
in <code class="docutils literal notranslate"><span class="pre">test_zipimport.py</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92886">gh-92886</a>: Fixing tests that fail when running with optimizations (<code class="docutils literal notranslate"><span class="pre">-O</span></code>)
in <code class="docutils literal notranslate"><span class="pre">test_py_compile.py</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92886">gh-92886</a>: Fixing tests that fail when running with optimizations (<code class="docutils literal notranslate"><span class="pre">-O</span></code>)
in <code class="docutils literal notranslate"><span class="pre">test_sys_settrace.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92886">gh-92886</a>: Fixing tests that fail when running with optimizations (<code class="docutils literal notranslate"><span class="pre">-O</span></code>)
in <code class="docutils literal notranslate"><span class="pre">_test_multiprocessing.py</span></code></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92670">gh-92670</a>: Skip <code class="docutils literal notranslate"><span class="pre">test_shutil.TestCopy.test_copyfile_nonexistent_dir</span></code> test
on AIX as the test uses a trailing slash to force the OS consider the path
as a directory, but on AIX the trailing slash has no effect and is
considered as a file.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92514">gh-92514</a>: Remove unused <code class="docutils literal notranslate"><span class="pre">test.support.BasicTestRunner</span></code>. Patch by Jelle
Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47016">bpo-47016</a>: Create a GitHub Actions workflow for verifying bundled pip and
setuptools. Patch by Illia Volochii and Adam Turner.</p></li>
</ul>
</section>
<section id="id251">
<h3>Build<a class="headerlink" href="#id251" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96761">gh-96761</a>: Fix the build process of clang compiler for
<strong class="program">_bootstrap_python</strong> if LTO optimization is applied. Patch by
Matthias Görgens and Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96883">gh-96883</a>: <code class="docutils literal notranslate"><span class="pre">wasm32-emscripten</span></code> builds for browsers now include
<a class="reference internal" href="../library/concurrent.futures.html#module-concurrent.futures" title="concurrent.futures: Execute computations concurrently using threads or processes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures</span></code></a> for <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> and <a class="reference internal" href="../library/unittest.mock.html#module-unittest.mock" title="unittest.mock: Mock object library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest.mock</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85936">gh-85936</a>: CPython now uses the ThinLTO option as the default policy if the
Clang compiler accepts the flag. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96729">gh-96729</a>: Ensure that Windows releases built with
<code class="docutils literal notranslate"><span class="pre">Tools\msi\buildrelease.bat</span></code> are upgradable to and from official Python
releases.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96269">gh-96269</a>: Shared module targets now depend on new <code class="docutils literal notranslate"><span class="pre">MODULE_DEPS</span></code>
variable, which includes <code class="docutils literal notranslate"><span class="pre">EXPORTSYMS</span></code>. This fixes a build order issue on
unsupported AIX platform.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84461">gh-84461</a>: <code class="docutils literal notranslate"><span class="pre">wasm32-emscripten</span></code> platform no longer builds <a class="reference internal" href="../library/resource.html#module-resource" title="resource: An interface to provide resource usage information on the current process. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">resource</span></code></a>
module, <a class="reference internal" href="../library/os.html#os.getresuid" title="os.getresuid"><code class="xref py py-func docutils literal notranslate"><span class="pre">getresuid()</span></code></a>, <a class="reference internal" href="../library/os.html#os.getresgid" title="os.getresgid"><code class="xref py py-func docutils literal notranslate"><span class="pre">getresgid()</span></code></a>, and their setters.
The APIs are stubs and not functional.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95973">gh-95973</a>: Add a new <code class="docutils literal notranslate"><span class="pre">--with-dsymutil</span></code> configure option to link debug
information in macOS. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90536">gh-90536</a>: Use the BOLT post-link optimizer to improve performance,
particularly on medium-to-large applications.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93744">gh-93744</a>: Remove the <code class="docutils literal notranslate"><span class="pre">configure</span> <span class="pre">--with-cxx-main</span></code> build option: it didn’t
work for many years. Remove the <code class="docutils literal notranslate"><span class="pre">MAINCC</span></code> variable from <code class="docutils literal notranslate"><span class="pre">configure</span></code> and
<code class="docutils literal notranslate"><span class="pre">Makefile</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94801">gh-94801</a>: Fix a regression in <code class="docutils literal notranslate"><span class="pre">configure</span></code> script that caused some header
checks to ignore custom <code class="docutils literal notranslate"><span class="pre">CPPFLAGS</span></code>. The regression was introduced in
<a class="reference external" href="https://github.com/python/cpython/issues/94802">gh-94802</a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95145">gh-95145</a>: wasm32-wasi builds no longer depend on WASIX’s pthread stubs.
Python now has its own stubbed pthread API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95174">gh-95174</a>: Python now detects missing <code class="docutils literal notranslate"><span class="pre">dup</span></code> function in WASI and works
around some missing <a class="reference internal" href="../library/errno.html#module-errno" title="errno: Standard errno system symbols."><code class="xref py py-mod docutils literal notranslate"><span class="pre">errno</span></code></a>, <a class="reference internal" href="../library/select.html#module-select" title="select: Wait for I/O completion on multiple streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">select</span></code></a>, and <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a>
constants.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95174">gh-95174</a>: Python now skips missing <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> functions and methods on
WASI. WASI can only create sockets from existing fd / accept and has no
netdb.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95085">gh-95085</a>: Platforms <code class="docutils literal notranslate"><span class="pre">wasm32-unknown-emscripten</span></code> and
<code class="docutils literal notranslate"><span class="pre">wasm32-unknown-wasi</span></code> have been promoted to <span class="target" id="index-174"></span><a class="pep reference external" href="https://peps.python.org/pep-0011/"><strong>PEP 11</strong></a> tier 3 platform
support.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94847">gh-94847</a>: Fixed <code class="docutils literal notranslate"><span class="pre">_decimal</span></code> module build issue on GCC when compiling with
LTO and pydebug. Debug builds no longer force inlining of functions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94841">gh-94841</a>: Fix the possible performance regression of
<a class="reference internal" href="../c-api/memory.html#c.PyObject_Free" title="PyObject_Free"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_Free()</span></code></a> compiled with MSVC version 1932.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94801">gh-94801</a>: <code class="docutils literal notranslate"><span class="pre">configure</span></code> now uses custom flags like <code class="docutils literal notranslate"><span class="pre">ZLIB_CFLAGS</span></code> and
<code class="docutils literal notranslate"><span class="pre">ZLIB_LIBS</span></code> when searching for headers and libraries.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94773">gh-94773</a>: <code class="docutils literal notranslate"><span class="pre">deepfreeze.py</span></code> now supports code object with frozensets that
contain incompatible, unsortable types.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94682">gh-94682</a>: Build and test with OpenSSL 1.1.1q</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90005">gh-90005</a>: Dependencies of <a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a> and <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> module are now
detected in <code class="docutils literal notranslate"><span class="pre">configure</span></code> script with <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>. Only <code class="docutils literal notranslate"><span class="pre">ncurses</span></code> /
<code class="docutils literal notranslate"><span class="pre">ncursesw</span></code> are detected automatically. The old <code class="docutils literal notranslate"><span class="pre">curses</span></code> library is not
configured automatically. Workaround for missing <code class="docutils literal notranslate"><span class="pre">termcap</span></code> or <code class="docutils literal notranslate"><span class="pre">tinfo</span></code>
library has been removed.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90005">gh-90005</a>: Fix building <code class="docutils literal notranslate"><span class="pre">_ctypes</span></code> extension without <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90005">gh-90005</a>: <code class="docutils literal notranslate"><span class="pre">_dbm</span></code> module dependencies are now detected by configure.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94404">gh-94404</a>: <code class="docutils literal notranslate"><span class="pre">makesetup</span></code> now works around an issue with sed on macOS and
uses correct CFLAGS for object files that end up in a shared extension.
Module CFLAGS are used before PY_STDMODULE_CFLAGS to avoid clashes with
system headers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93939">gh-93939</a>: C extension modules are now built by <code class="docutils literal notranslate"><span class="pre">configure</span></code> and <code class="docutils literal notranslate"><span class="pre">make</span></code>
instead of <code class="docutils literal notranslate"><span class="pre">distutils</span></code> and <code class="docutils literal notranslate"><span class="pre">setup.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93939">gh-93939</a>: The <code class="docutils literal notranslate"><span class="pre">2to3</span></code>, <code class="docutils literal notranslate"><span class="pre">idle</span></code>, and <code class="docutils literal notranslate"><span class="pre">pydoc</span></code> scripts are now generated
and installed by <code class="docutils literal notranslate"><span class="pre">Makefile</span></code> instead of <code class="docutils literal notranslate"><span class="pre">setup.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94280">gh-94280</a>: Updated pegen regeneration script on Windows to find and use
Python 3.9 or higher. Prior to this, pegen regeneration already required
3.9 or higher, but the script may have used lower versions of Python.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93584">gh-93584</a>: Address race condition in <code class="docutils literal notranslate"><span class="pre">Makefile</span></code> when installing a PGO
build. All <code class="docutils literal notranslate"><span class="pre">test</span></code> and <code class="docutils literal notranslate"><span class="pre">install</span></code> targets now depend on <code class="docutils literal notranslate"><span class="pre">all</span></code> target.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93491">gh-93491</a>: <code class="docutils literal notranslate"><span class="pre">configure</span></code> now detects and reports <span class="target" id="index-175"></span><a class="pep reference external" href="https://peps.python.org/pep-0011/"><strong>PEP 11</strong></a> support tiers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69093">gh-69093</a>: Fix <code class="docutils literal notranslate"><span class="pre">Modules/Setup.stdlib.in</span></code> rule for <code class="docutils literal notranslate"><span class="pre">_sqlite3</span></code> extension.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93207">gh-93207</a>: <code class="docutils literal notranslate"><span class="pre">va_start()</span></code> with two parameters, like <code class="docutils literal notranslate"><span class="pre">va_start(args,</span>
<span class="pre">format),</span></code> is now required to build Python. <code class="docutils literal notranslate"><span class="pre">va_start()</span></code> is no longer
called with a single parameter. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93202">gh-93202</a>: Python now always use the <code class="docutils literal notranslate"><span class="pre">%zu</span></code> and <code class="docutils literal notranslate"><span class="pre">%zd</span></code> printf formats to
format a <code class="xref c c-type docutils literal notranslate"><span class="pre">size_t</span></code> or <code class="docutils literal notranslate"><span class="pre">Py_ssize_t</span></code> number. Building Python 3.12
requires a C11 compiler, so these printf formats are now always supported.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90473">gh-90473</a>: Disable pymalloc and increase stack size on <code class="docutils literal notranslate"><span class="pre">wasm32-wasi</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34449">bpo-34449</a>: Drop invalid compiler switch <code class="docutils literal notranslate"><span class="pre">-fPIC</span></code> for HP aCC on HP-UX.
Patch by Michael Osipov.</p></li>
</ul>
</section>
<section id="id252">
<h3>Windows<a class="headerlink" href="#id252" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98360">gh-98360</a>: Fixes <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> spawning child processes on Windows
from a virtual environment to ensure that child processes that also use
<a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> to spawn more children will recognize that they are
in a virtual environment.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98414">gh-98414</a>: Fix <code class="file docutils literal notranslate"><span class="pre">py.exe</span></code> launcher handling of <code class="samp docutils literal notranslate"><span class="pre">-V:</span><em><span class="pre"><company></span></em><span class="pre">/</span></code>
option when default preferences have been set in environment variables or
configuration files.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97728">gh-97728</a>: Fix possible crashes caused by the use of uninitialized
variables when pass invalid arguments in <a class="reference internal" href="../library/os.html#os.system" title="os.system"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.system()</span></code></a> on Windows and
in Windows-specific modules (like <code class="docutils literal notranslate"><span class="pre">winreg</span></code>).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90989">gh-90989</a>: Made <a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a> install per-user by default (unless an all
users install already exists), and clarify some text in the installer.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97649">gh-97649</a>: The <code class="docutils literal notranslate"><span class="pre">Tools</span></code> directory is no longer installed on Windows</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96965">gh-96965</a>: Update libffi to 3.4.3</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96577">gh-96577</a>: Fixes a potential buffer overrun in <code class="xref py py-mod docutils literal notranslate"><span class="pre">msilib</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96559">gh-96559</a>: Fixes the Windows launcher not using the compatible
interpretation of default tags found in configuration files when no tag
was passed to the command.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94781">gh-94781</a>: Fix <code class="file docutils literal notranslate"><span class="pre">pcbuild.proj</span></code> to clean previous instances of output
files in <code class="docutils literal notranslate"><span class="pre">Python\deepfreeze</span></code> and <code class="docutils literal notranslate"><span class="pre">Python\frozen_modules</span></code> directories
on Windows. Patch by Charlie Zhao.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89545">gh-89545</a>: Updates <a class="reference internal" href="../library/platform.html#module-platform" title="platform: Retrieves as much platform identifying data as possible."><code class="xref py py-mod docutils literal notranslate"><span class="pre">platform</span></code></a> code getting the Windows version to use
native Windows Management Instrumentation (WMI) queries to determine OS
version, type, and architecture.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95733">gh-95733</a>: Make certain requirements of the Windows Store package optional
to allow installing on earlier updates of Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95656">gh-95656</a>: Enable the <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.enable_load_extension" title="sqlite3.Connection.enable_load_extension"><code class="xref py py-meth docutils literal notranslate"><span class="pre">enable_load_extension()</span></code></a>
<a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95587">gh-95587</a>: Fixes some issues where the Windows installer would incorrectly
detect certain features of an existing install when upgrading.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94399">gh-94399</a>: Restores the behaviour of <a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a> for <code class="docutils literal notranslate"><span class="pre">/usr/bin/env</span></code>
shebang lines, which will now search <span class="target" id="index-176"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PATH</span></code> for an executable
matching the given command. If none is found, the usual search process is
used.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95445">gh-95445</a>: Fixes the unsuccessful removal of the HTML document directory
when uninstalling with Windows msi.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95359">gh-95359</a>: Fix <a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a> handling of <code class="file docutils literal notranslate"><span class="pre">py.ini</span></code> commands (it was
incorrectly expecting a <code class="docutils literal notranslate"><span class="pre">py_</span></code> prefix on keys) and crashes when reading
per-user configuration file.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95285">gh-95285</a>: Fix <a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a> handling of command lines where it is only
passed a short executable name.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90844">gh-90844</a>: Allow virtual environments to correctly launch when they have
spaces in the path.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94772">gh-94772</a>: Fix incorrect handling of shebang lines in py.exe launcher</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94018">gh-94018</a>: <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a> will now remove trailing spaces from path
components when extracting files on Windows.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93824">gh-93824</a>: Drag and drop of files onto Python files in Windows Explorer has
been enabled for Windows ARM64.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/43414">gh-43414</a>: <a class="reference internal" href="../library/os.html#os.get_terminal_size" title="os.get_terminal_size"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.get_terminal_size()</span></code></a> now attempts to read the size from
any provided handle, rather than only supporting file descriptors 0, 1 and
2.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92817">gh-92817</a>: Ensures that <code class="file docutils literal notranslate"><span class="pre">py.exe</span></code> will prefer an active virtual
environment over default tags specified with environment variables or
through a <code class="file docutils literal notranslate"><span class="pre">py.ini</span></code> file.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92984">gh-92984</a>: Explicitly disable incremental linking for non-Debug builds</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92841">gh-92841</a>: <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> no longer throws <code class="docutils literal notranslate"><span class="pre">RuntimeError:</span> <span class="pre">Event</span> <span class="pre">loop</span> <span class="pre">is</span>
<span class="pre">closed</span></code> on interpreter exit after asynchronous socket activity. Patch by
Oleg Iarygin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46907">bpo-46907</a>: Update Windows installer to use SQLite 3.38.4.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91061">gh-91061</a>: Accept os.PathLike for the argument to winsound.PlaySound</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42658">bpo-42658</a>: Support native Windows case-insensitive path comparisons by
using <code class="docutils literal notranslate"><span class="pre">LCMapStringEx</span></code> instead of <a class="reference internal" href="../library/stdtypes.html#str.lower" title="str.lower"><code class="xref py py-func docutils literal notranslate"><span class="pre">str.lower()</span></code></a> in
<code class="xref py py-func docutils literal notranslate"><span class="pre">ntpath.normcase()</span></code>. Add <code class="docutils literal notranslate"><span class="pre">LCMapStringEx</span></code> to the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_winapi</span></code>
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38704">bpo-38704</a>: Prevent installation on unsupported Windows versions.</p></li>
</ul>
</section>
<section id="id253">
<h3>macOS<a class="headerlink" href="#id253" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97897">gh-97897</a>: The macOS 13 SDK includes support for the <code class="docutils literal notranslate"><span class="pre">mkfifoat</span></code> and
<code class="docutils literal notranslate"><span class="pre">mknodat</span></code> system calls. Using the <code class="docutils literal notranslate"><span class="pre">dir_fd</span></code> option with either
<a class="reference internal" href="../library/os.html#os.mkfifo" title="os.mkfifo"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.mkfifo()</span></code></a> or <a class="reference internal" href="../library/os.html#os.mknod" title="os.mknod"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.mknod()</span></code></a> could result in a segfault if
cpython is built with the macOS 13 SDK but run on an earlier version of
macOS. Prevent this by adding runtime support for detection of these
system calls (“weaklinking”) as is done for other newer syscalls on macOS.</p></li>
</ul>
</section>
<section id="id254">
<h3>IDLE<a class="headerlink" href="#id254" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97527">gh-97527</a>: Fix a bug in the previous bugfix that caused IDLE to not start
when run with 3.10.8, 3.12.0a1, and at least Microsoft Python 3.10.2288.0
installed without the Lib/test package. 3.11.0 was never affected.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/65802">gh-65802</a>: Document handling of extensions in Save As dialogs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95191">gh-95191</a>: Include prompts when saving Shell (interactive input and
output).</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95511">gh-95511</a>: Fix the Shell context menu copy-with-prompts bug of copying an
extra line when one selects whole lines.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95471">gh-95471</a>: In the Edit menu, move <code class="docutils literal notranslate"><span class="pre">Select</span> <span class="pre">All</span></code> and add a new separator.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95411">gh-95411</a>: Enable using IDLE’s module browser with .pyw files.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89610">gh-89610</a>: Add .pyi as a recognized extension for IDLE on macOS. This
allows opening stub files by double clicking on them in the Finder.</p></li>
</ul>
</section>
<section id="id255">
<h3>Tools/Demos<a class="headerlink" href="#id255" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/68686">gh-68686</a>: Remove ptags and eptags scripts.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97681">gh-97681</a>: Remove the <code class="docutils literal notranslate"><span class="pre">Tools/demo/</span></code> directory which contained old demo
scripts. A copy can be found in the <a class="reference external" href="https://github.com/gvanrossum/old-demos">old-demos project</a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/97669">gh-97669</a>: Remove outdated example scripts of the <code class="docutils literal notranslate"><span class="pre">Tools/scripts/</span></code>
directory. A copy can be found in the <a class="reference external" href="https://github.com/gvanrossum/old-demos">old-demos project</a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95853">gh-95853</a>: The <code class="docutils literal notranslate"><span class="pre">wasm_build.py</span></code> script now pre-builds Emscripten ports,
checks for broken EMSDK versions, and warns about pkg-config env vars.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95853">gh-95853</a>: The new tool <code class="docutils literal notranslate"><span class="pre">Tools/wasm/wasm_builder.py</span></code> automates configure,
compile, and test steps for building CPython on WebAssembly platforms.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95731">gh-95731</a>: Fix handling of module docstrings in
<code class="file docutils literal notranslate"><span class="pre">Tools/i18n/pygettext.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93939">gh-93939</a>: Add script <code class="docutils literal notranslate"><span class="pre">Tools/scripts/check_modules.py</span></code> to check and
validate builtin and shared extension modules. The script also handles
<code class="docutils literal notranslate"><span class="pre">Modules/Setup</span></code> and will eventually replace <code class="docutils literal notranslate"><span class="pre">setup.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94538">gh-94538</a>: Fix Argument Clinic output to custom file destinations. Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94430">gh-94430</a>: Allow parameters named <code class="docutils literal notranslate"><span class="pre">module</span></code> and <code class="docutils literal notranslate"><span class="pre">self</span></code> with custom C
names in Argument Clinic. Patch by Erlend E. Aasland</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/86087">gh-86087</a>: The <code class="docutils literal notranslate"><span class="pre">Tools/scripts/parseentities.py</span></code> script used to parse
HTML4 entities has been removed.</p></li>
</ul>
</section>
<section id="id257">
<h3>C API<a class="headerlink" href="#id257" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/98393">gh-98393</a>: The <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_FSDecoder" title="PyUnicode_FSDecoder"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_FSDecoder()</span></code></a> function no longer accepts
bytes-like paths, like <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a> types:
only the exact <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> type is accepted for bytes strings. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91051">gh-91051</a>: Add <a class="reference internal" href="../c-api/type.html#c.PyType_Watch" title="PyType_Watch"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_Watch()</span></code></a> and related APIs to allow callbacks
on <a class="reference internal" href="../c-api/type.html#c.PyType_Modified" title="PyType_Modified"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_Modified()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95756">gh-95756</a>: Lazily create and cache <code class="docutils literal notranslate"><span class="pre">co_</span></code> attributes for better
performance for code getters.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/96512">gh-96512</a>: Configuration for the <a class="reference internal" href="../library/stdtypes.html#int-max-str-digits"><span class="std std-ref">integer string conversion length
limitation</span></a> now lives in the PyConfig C API struct.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95589">gh-95589</a>: Extensions classes that set <code class="docutils literal notranslate"><span class="pre">tp_dictoffset</span></code> and
<code class="docutils literal notranslate"><span class="pre">tp_weaklistoffset</span></code> lose the support for multiple inheritance, but are
now safe. Extension classes should use <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_MANAGED_DICT" title="Py_TPFLAGS_MANAGED_DICT"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_MANAGED_DICT</span></code></a>
and <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_MANAGED_WEAKREF" title="Py_TPFLAGS_MANAGED_WEAKREF"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_MANAGED_WEAKREF</span></code></a> instead.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95781">gh-95781</a>: An unrecognized format character in
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_FromFormat" title="PyUnicode_FromFormat"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_FromFormat()</span></code></a> and <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_FromFormatV" title="PyUnicode_FromFormatV"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_FromFormatV()</span></code></a> now
sets a <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a>. In previous versions it caused all the rest of
the format string to be copied as-is to the result string, and any extra
arguments discarded.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92678">gh-92678</a>: Restore the 3.10 behavior for multiple inheritance of C
extension classes that store their dictionary at the end of the struct.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92678">gh-92678</a>: Support C extensions using managed dictionaries by setting the
<code class="docutils literal notranslate"><span class="pre">Py_TPFLAGS_MANAGED_DICT</span></code> flag.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93274">gh-93274</a>: API for implementing vectorcall
(<a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_HAVE_VECTORCALL" title="Py_TPFLAGS_HAVE_VECTORCALL"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_HAVE_VECTORCALL</span></code></a>, <a class="reference internal" href="../c-api/call.html#c.PyVectorcall_NARGS" title="PyVectorcall_NARGS"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyVectorcall_NARGS()</span></code></a> and
<a class="reference internal" href="../c-api/call.html#c.PyVectorcall_Call" title="PyVectorcall_Call"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyVectorcall_Call()</span></code></a>) was added to the limited API and stable ABI.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95504">gh-95504</a>: Fix sign placement when specifying width or precision in
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_FromFormat" title="PyUnicode_FromFormat"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_FromFormat()</span></code></a> and <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_FromFormatV" title="PyUnicode_FromFormatV"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_FromFormatV()</span></code></a>. Patch
by Philip Georgi.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93012">gh-93012</a>: The <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_HAVE_VECTORCALL" title="Py_TPFLAGS_HAVE_VECTORCALL"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_HAVE_VECTORCALL</span></code></a> flag is now removed
from a class when the class’s <a class="reference internal" href="../reference/datamodel.html#object.__call__" title="object.__call__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__call__()</span></code></a> method is
reassigned. This makes vectorcall safe to use with mutable types (i.e.
heap types without the <code class="xref py py-const docutils literal notranslate"><span class="pre">immutable</span></code>
flag). Mutable types that do not override
<a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_call" title="PyTypeObject.tp_call"><code class="xref c c-member docutils literal notranslate"><span class="pre">tp_call</span></code></a> now inherit the
<a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_HAVE_VECTORCALL" title="Py_TPFLAGS_HAVE_VECTORCALL"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_HAVE_VECTORCALL</span></code></a> flag.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/95388">gh-95388</a>: Creating <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_IMMUTABLETYPE" title="Py_TPFLAGS_IMMUTABLETYPE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">immutable</span> <span class="pre">types</span></code></a>
with mutable bases is deprecated and is planned to be disabled in Python
3.14.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92678">gh-92678</a>: Adds unstable C-API functions <code class="docutils literal notranslate"><span class="pre">_PyObject_VisitManagedDict</span></code> and
<code class="docutils literal notranslate"><span class="pre">_PyObject_ClearManagedDict</span></code> to allow C extensions to allow the VM to
manage their object’s dictionaries.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94936">gh-94936</a>: Added <a class="reference internal" href="../c-api/code.html#c.PyCode_GetVarnames" title="PyCode_GetVarnames"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_GetVarnames()</span></code></a>, <a class="reference internal" href="../c-api/code.html#c.PyCode_GetCellvars" title="PyCode_GetCellvars"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_GetCellvars()</span></code></a>
and <a class="reference internal" href="../c-api/code.html#c.PyCode_GetFreevars" title="PyCode_GetFreevars"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_GetFreevars()</span></code></a> for accessing <code class="docutils literal notranslate"><span class="pre">co_varnames</span></code>,
<code class="docutils literal notranslate"><span class="pre">co_cellvars</span></code> and <code class="docutils literal notranslate"><span class="pre">co_freevars</span></code> respectively via the C API.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94930">gh-94930</a>: Fix <code class="docutils literal notranslate"><span class="pre">SystemError</span></code> raised when
<a class="reference internal" href="../c-api/arg.html#c.PyArg_ParseTupleAndKeywords" title="PyArg_ParseTupleAndKeywords"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_ParseTupleAndKeywords()</span></code></a> is used with <code class="docutils literal notranslate"><span class="pre">#</span></code> in <code class="docutils literal notranslate"><span class="pre">(...)</span></code> but
without <code class="docutils literal notranslate"><span class="pre">PY_SSIZE_T_CLEAN</span></code> defined.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/94731">gh-94731</a>: Python again uses C-style casts for most casting operations when
compiled with C++. This may trigger compiler warnings, if they are enabled
with e.g. <code class="docutils literal notranslate"><span class="pre">-Wold-style-cast</span></code> or <code class="docutils literal notranslate"><span class="pre">-Wzero-as-null-pointer-constant</span></code>
options for <code class="docutils literal notranslate"><span class="pre">g++</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93937">gh-93937</a>: The following frame functions and type are now directly
available with <code class="docutils literal notranslate"><span class="pre">#include</span> <span class="pre"><Python.h></span></code>, it’s no longer needed to add
<code class="docutils literal notranslate"><span class="pre">#include</span> <span class="pre"><frameobject.h></span></code>:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../c-api/frame.html#c.PyFrame_Check" title="PyFrame_Check"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_Check()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetBack" title="PyFrame_GetBack"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetBack()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetBuiltins" title="PyFrame_GetBuiltins"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetBuiltins()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetGenerator" title="PyFrame_GetGenerator"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetGenerator()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetGlobals" title="PyFrame_GetGlobals"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetGlobals()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetLasti" title="PyFrame_GetLasti"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetLasti()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetLocals" title="PyFrame_GetLocals"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetLocals()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/frame.html#c.PyFrame_Type" title="PyFrame_Type"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyFrame_Type</span></code></a></p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91321">gh-91321</a>: Fix the compatibility of the Python C API with C++ older than
C++11. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91731">gh-91731</a>: Avoid defining the <code class="docutils literal notranslate"><span class="pre">static_assert</span></code> when compiling with C++ 11,
where this is a keyword and redefining it can lead to undefined behavior.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89546">gh-89546</a>: <a class="reference internal" href="../c-api/type.html#c.PyType_FromMetaclass" title="PyType_FromMetaclass"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromMetaclass()</span></code></a> (and other <code class="docutils literal notranslate"><span class="pre">PyType_From*</span></code>
functions) now check that offsets and the base class’s
<a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_basicsize" title="PyTypeObject.tp_basicsize"><code class="xref c c-member docutils literal notranslate"><span class="pre">tp_basicsize</span></code></a> fit in the new class’s
<code class="docutils literal notranslate"><span class="pre">tp_basicsize</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93503">gh-93503</a>: Add two new public functions to the public C-API,
<a class="reference internal" href="../c-api/init.html#c.PyEval_SetProfileAllThreads" title="PyEval_SetProfileAllThreads"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_SetProfileAllThreads()</span></code></a> and
<a class="reference internal" href="../c-api/init.html#c.PyEval_SetTraceAllThreads" title="PyEval_SetTraceAllThreads"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_SetTraceAllThreads()</span></code></a>, that allow to set tracing and
profiling functions in all running threads in addition to the calling one.
Also, two analogous functions to the <a class="reference internal" href="../library/threading.html#module-threading" title="threading: Thread-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code></a> module
(<a class="reference internal" href="../library/threading.html#threading.setprofile_all_threads" title="threading.setprofile_all_threads"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.setprofile_all_threads()</span></code></a> and
<a class="reference internal" href="../library/threading.html#threading.settrace_all_threads" title="threading.settrace_all_threads"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.settrace_all_threads()</span></code></a>) that allow to do the same from
Python. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93442">gh-93442</a>: Add C++ overloads for _Py_CAST_impl() to handle 0/NULL. This
will allow C++ extensions that pass 0 or NULL to macros using _Py_CAST()
to continue to compile.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93466">gh-93466</a>: Slot IDs in PyType_Spec may not be repeated. The documentation
was updated to mention this. For some cases of repeated slots,
PyType_FromSpec and related functions will now raise an exception.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92898">gh-92898</a>: Fix C++ compiler warnings when casting function arguments to
<code class="docutils literal notranslate"><span class="pre">PyObject*</span></code>. Patch by Serge Guelton.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/93103">gh-93103</a>: Deprecate global configuration variables, like
<a class="reference internal" href="../c-api/init.html#c.Py_IgnoreEnvironmentFlag" title="Py_IgnoreEnvironmentFlag"><code class="xref c c-var docutils literal notranslate"><span class="pre">Py_IgnoreEnvironmentFlag</span></code></a>, in the documentation: the
<a class="reference internal" href="../c-api/init.html#c.Py_InitializeFromConfig" title="Py_InitializeFromConfig"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_InitializeFromConfig()</span></code></a> API should be instead. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/77782">gh-77782</a>: Deprecate global configuration variable like
<a class="reference internal" href="../c-api/init.html#c.Py_IgnoreEnvironmentFlag" title="Py_IgnoreEnvironmentFlag"><code class="xref c c-var docutils literal notranslate"><span class="pre">Py_IgnoreEnvironmentFlag</span></code></a>: the <a class="reference internal" href="../c-api/init.html#c.Py_InitializeFromConfig" title="Py_InitializeFromConfig"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_InitializeFromConfig()</span></code></a>
API should be instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92913">gh-92913</a>: Ensures changes to <a class="reference internal" href="../c-api/init_config.html#c.PyConfig.module_search_paths" title="PyConfig.module_search_paths"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyConfig.module_search_paths</span></code></a> are
ignored unless <a class="reference internal" href="../c-api/init_config.html#c.PyConfig.module_search_paths_set" title="PyConfig.module_search_paths_set"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyConfig.module_search_paths_set</span></code></a> is set</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92781">gh-92781</a>: Avoid mixing declarations and code in the C API to fix the
compiler warning: “ISO C90 forbids mixed declarations and code”
[-Werror=declaration-after-statement]. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92651">gh-92651</a>: Remove the <code class="docutils literal notranslate"><span class="pre">token.h</span></code> header file. There was never any public
tokenizer C API. The <code class="docutils literal notranslate"><span class="pre">token.h</span></code> header file was only designed to be used
by Python internals. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92536">gh-92536</a>: Remove legacy Unicode APIs based on <code class="docutils literal notranslate"><span class="pre">Py_UNICODE*</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85858">gh-85858</a>: Remove the <code class="docutils literal notranslate"><span class="pre">PyUnicode_InternImmortal()</span></code> function and the
<code class="docutils literal notranslate"><span class="pre">SSTATE_INTERNED_IMMORTAL</span></code> macro. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92193">gh-92193</a>: Add new function <a class="reference internal" href="../c-api/function.html#c.PyFunction_SetVectorcall" title="PyFunction_SetVectorcall"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFunction_SetVectorcall()</span></code></a> to the C API
which sets the vectorcall field of a given <a class="reference internal" href="../c-api/function.html#c.PyFunctionObject" title="PyFunctionObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyFunctionObject</span></code></a>.</p>
<p>Warning: extensions using this API must preserve the behavior of the
unaltered function!</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/59121">gh-59121</a>: Fixed an assert that prevented <code class="docutils literal notranslate"><span class="pre">PyRun_InteractiveOne</span></code> from
providing tracebacks when parsing from the provided FD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45383">bpo-45383</a>: The <a class="reference internal" href="../c-api/type.html#c.PyType_FromSpec" title="PyType_FromSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpec()</span></code></a> API will now find and use a
metaclass based on the provided bases. An error will be raised if there is
a metaclass conflict.</p></li>
</ul>
</section>
</section>
<section id="python-3-11-0-beta-1">
<h2>Python 3.11.0 beta 1<a class="headerlink" href="#python-3-11-0-beta-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2022-05-06</em></p>
<section id="id258">
<h3>Security<a class="headerlink" href="#id258" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/57684">gh-57684</a>: Add the <a class="reference internal" href="../using/cmdline.html#cmdoption-P"><code class="xref std std-option docutils literal notranslate"><span class="pre">-P</span></code></a> command line option and the
<span class="target" id="index-177"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSAFEPATH"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONSAFEPATH</span></code></a> environment variable to not prepend a potentially
unsafe path to <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a>. Patch by Victor Stinner.</p></li>
</ul>
</section>
<section id="id259">
<h3>Core and Builtins<a class="headerlink" href="#id259" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89519">gh-89519</a>: Chaining classmethod descriptors (introduced in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19072">bpo-19072</a>) is
deprecated. It can no longer be used to wrap other descriptors such as
property(). The core design of this feature was flawed, and it caused a
number of downstream problems.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92345">gh-92345</a>: <code class="docutils literal notranslate"><span class="pre">pymain_run_python()</span></code> now imports <code class="docutils literal notranslate"><span class="pre">readline</span></code> and
<code class="docutils literal notranslate"><span class="pre">rlcompleter</span></code> before sys.path is extended to include the current working
directory of an interactive interpreter. Non-interactive interpreters are
not affected.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43857">bpo-43857</a>: Improve the <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> message when deleting a
missing attribute. Patch by Géry Ogam.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92245">gh-92245</a>: Make sure that PEP 523 is respected in all cases. In 3.11a7,
specialization may have prevented Python-to-Python calls respecting PEP
523.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92203">gh-92203</a>: Add a closure keyword-only parameter to <a class="reference internal" href="../library/functions.html#exec" title="exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">exec()</span></code></a>. It can
only be specified when exec-ing a code object that uses free variables.
When specified, it must be a tuple, with exactly the number of cell
variables referenced by the code object. closure has a default value of
<code class="docutils literal notranslate"><span class="pre">None</span></code>, and it must be <code class="docutils literal notranslate"><span class="pre">None</span></code> if the code object doesn’t refer to any
free variables.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91173">gh-91173</a>: Disable frozen modules in debug builds. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92114">gh-92114</a>: Improve error message when subscript a type with
<code class="docutils literal notranslate"><span class="pre">__class_getitem__</span></code> set to <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92112">gh-92112</a>: Fix crash triggered by an evil custom <code class="docutils literal notranslate"><span class="pre">mro()</span></code> on a metaclass.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92063">gh-92063</a>: The <code class="docutils literal notranslate"><span class="pre">PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS</span></code> instruction
now ensures methods are called only on objects of the correct type.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92031">gh-92031</a>: Deoptimize statically allocated code objects during
<code class="docutils literal notranslate"><span class="pre">Py_FINALIZE()</span></code> so that future <code class="docutils literal notranslate"><span class="pre">_PyCode_Quicken</span></code> calls always start
with unquickened code.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92036">gh-92036</a>: Fix a crash in subinterpreters related to the garbage collector.
When a subinterpreter is deleted, untrack all objects tracked by its GC.
To prevent a crash in deallocator functions expecting objects to be
tracked by the GC, leak a strong reference to these objects on purpose, so
they are never deleted and their deallocator functions are not called.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92032">gh-92032</a>: The interpreter can now autocomplete soft keywords, as of now
<code class="docutils literal notranslate"><span class="pre">match</span></code>, <code class="docutils literal notranslate"><span class="pre">case</span></code>, and <code class="docutils literal notranslate"><span class="pre">_</span></code> (wildcard pattern) from <span class="target" id="index-178"></span><a class="pep reference external" href="https://peps.python.org/pep-0634/"><strong>PEP 634</strong></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87999">gh-87999</a>: The warning emitted by the Python parser for a numeric literal
immediately followed by keyword has been changed from deprecation warning
to syntax warning.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91869">gh-91869</a>: Fix an issue where specialized opcodes with extended arguments
could produce incorrect tracing output or lead to assertion failures.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91603">gh-91603</a>: Speed up <a class="reference internal" href="../library/types.html#types.UnionType" title="types.UnionType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.UnionType</span></code></a> instantiation. Based on patch
provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89373">gh-89373</a>: If Python is built in debug mode, Python now ensures that
deallocator functions leave the current exception unchanged. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91632">gh-91632</a>: Fix a minor memory leak at exit: release the memory of the
<code class="xref py py-class docutils literal notranslate"><span class="pre">generic_alias_iterator</span></code> type. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/81548">gh-81548</a>: Octal escapes with value larger than <code class="docutils literal notranslate"><span class="pre">0o377</span></code> now produce a
<a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a>. In a future Python version they will be a
<a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a> and eventually a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43950">bpo-43950</a>: Use a single compact table for line starts, ends and column
offsets. Reduces memory consumption for location info by half</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91102">gh-91102</a>: Use Argument Clinic for <code class="xref py py-class docutils literal notranslate"><span class="pre">EncodingMap</span></code>. Patch by Oleg
Iarygin.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91636">gh-91636</a>: Fixed a crash in a garbage-collection edge-case, in which a
<code class="docutils literal notranslate"><span class="pre">PyFunction_Type.tp_clear</span></code> function could leave a python function object
in an inconsistent state.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91603">gh-91603</a>: Speed up <a class="reference internal" href="../library/functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal notranslate"><span class="pre">isinstance()</span></code></a> and <a class="reference internal" href="../library/functions.html#issubclass" title="issubclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">issubclass()</span></code></a> checks for
<a class="reference internal" href="../library/types.html#types.UnionType" title="types.UnionType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.UnionType</span></code></a>. Patch by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91625">gh-91625</a>: Fixed a bug in which adaptive opcodes ignored any preceding
<code class="docutils literal notranslate"><span class="pre">EXTENDED_ARG</span></code>s on specialization failure.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/78607">gh-78607</a>: The LLTRACE special build now looks for the name <code class="docutils literal notranslate"><span class="pre">__lltrace__</span></code>
defined in module globals, rather than the name <code class="docutils literal notranslate"><span class="pre">__ltrace__</span></code>, which had
been introduced as a typo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91576">gh-91576</a>: Speed up iteration of ascii strings by 50%. Patch by Kumar
Aditya.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89279">gh-89279</a>: Improve interpreter performance on Windows by inlining a few
specific macros.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91502">gh-91502</a>: Add a new <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyFrame_IsEntryFrame()</span></code> API function, to
check if a <a class="reference internal" href="../c-api/frame.html#c.PyFrameObject" title="PyFrameObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyFrameObject</span></code></a> is an entry frame. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91266">gh-91266</a>: Refactor the <code class="docutils literal notranslate"><span class="pre">bytearray</span></code> strip methods <code class="docutils literal notranslate"><span class="pre">strip</span></code>, <code class="docutils literal notranslate"><span class="pre">lstrip</span></code>
and <code class="docutils literal notranslate"><span class="pre">rstrip</span></code> to use a common implementation.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91479">gh-91479</a>: Replaced the <code class="docutils literal notranslate"><span class="pre">__note__</span></code> field of <a class="reference internal" href="../library/exceptions.html#BaseException" title="BaseException"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BaseException</span></code></a> (added
in an earlier version of 3.11) with the final design of <span class="target" id="index-179"></span><a class="pep reference external" href="https://peps.python.org/pep-0678/"><strong>PEP 678</strong></a>.
Namely, <a class="reference internal" href="../library/exceptions.html#BaseException" title="BaseException"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BaseException</span></code></a> gets an <code class="xref py py-meth docutils literal notranslate"><span class="pre">add_note()</span></code> method, and its
<code class="docutils literal notranslate"><span class="pre">__notes__</span></code> field is created when necessary.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/46055">gh-46055</a>: Speed up right shift of negative integers, by removing
unnecessary creation of temporaries. Original patch by Xinhang Xu,
reworked by Mark Dickinson.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91462">gh-91462</a>: Make the interpreter’s low-level tracing (lltrace) feature
output more readable by displaying opcode names (rather than just
numbers), and by displaying stack contents before each opcode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89455">gh-89455</a>: Fixed an uninitialized bool value in the traceback printing code
path that was introduced by the initial <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45292">bpo-45292</a> exception groups work.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91421">gh-91421</a>: Fix a potential integer overflow in _Py_DecodeUTF8Ex.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91428">gh-91428</a>: Add <code class="docutils literal notranslate"><span class="pre">static</span> <span class="pre">const</span> <span class="pre">char</span> <span class="pre">*const</span> <span class="pre">_PyOpcode_OpName[256]</span> <span class="pre">=</span> <span class="pre">{...};</span></code>
to <code class="docutils literal notranslate"><span class="pre">opcode.h</span></code> for debug builds to assist in debugging the Python
interpreter. It is now more convenient to make various forms of debugging
output more human-readable by including opcode names rather than just the
corresponding decimal digits.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47120">bpo-47120</a>: Make <a class="reference internal" href="../library/dis.html#opcode-POP_JUMP_IF_TRUE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">POP_JUMP_IF_TRUE</span></code></a>, <a class="reference internal" href="../library/dis.html#opcode-POP_JUMP_IF_FALSE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">POP_JUMP_IF_FALSE</span></code></a>,
<a class="reference internal" href="../library/dis.html#opcode-POP_JUMP_IF_NONE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">POP_JUMP_IF_NONE</span></code></a> and <a class="reference internal" href="../library/dis.html#opcode-POP_JUMP_IF_NOT_NONE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">POP_JUMP_IF_NOT_NONE</span></code></a> virtual,
mapping to new relative jump opcodes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45317">bpo-45317</a>: Add internal documentation explaining design of new (for 3.11)
frame stack.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47197">bpo-47197</a>: ctypes used to mishandle <code class="docutils literal notranslate"><span class="pre">void</span></code> return types, so that for
instance a function declared like <code class="docutils literal notranslate"><span class="pre">ctypes.CFUNCTYPE(None,</span> <span class="pre">ctypes.c_int)</span></code>
would be called with signature <code class="docutils literal notranslate"><span class="pre">int</span> <span class="pre">f(int)</span></code> instead of <code class="docutils literal notranslate"><span class="pre">void</span> <span class="pre">f(int)</span></code>.
Wasm targets require function pointers to be called with the correct
signatures so this led to crashes. The problem is now fixed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47120">bpo-47120</a>: Make opcodes <code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_IF_TRUE_OR_POP</span></code> and
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_IF_FALSE_OR_POP</span></code> relative rather than absolute.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47177">bpo-47177</a>: Replace the <code class="docutils literal notranslate"><span class="pre">f_lasti</span></code> member of the internal
<code class="docutils literal notranslate"><span class="pre">_PyInterpreterFrame</span></code> structure with a <code class="docutils literal notranslate"><span class="pre">prev_instr</span></code> pointer, which
reduces overhead in the main interpreter loop. The <code class="docutils literal notranslate"><span class="pre">f_lasti</span></code> attribute
of Python-layer frame objects is preserved for backward-compatibility.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46961">bpo-46961</a>: Integer mod/remainder operations, including the three-argument
form of <a class="reference internal" href="../library/functions.html#pow" title="pow"><code class="xref py py-func docutils literal notranslate"><span class="pre">pow()</span></code></a>, now consistently return ints from the global small
integer cache when applicable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46962">bpo-46962</a>: Classes and functions that unconditionally declared their
docstrings ignoring the <code class="docutils literal notranslate"><span class="pre">--without-doc-strings</span></code> compilation flag no
longer do so.</p>
<p>The classes affected are <code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.UnionType</span></code>,
<a class="reference internal" href="../library/pickle.html#pickle.PickleBuffer" title="pickle.PickleBuffer"><code class="xref py py-class docutils literal notranslate"><span class="pre">pickle.PickleBuffer</span></code></a>, <code class="xref py py-class docutils literal notranslate"><span class="pre">testcapi.RecursingInfinitelyError</span></code>,
and <a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a>.</p>
<p>The functions affected are 24 methods in <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a>.</p>
<p>Patch by Oleg Iarygin.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46942">bpo-46942</a>: Use Argument Clinic for the <a class="reference internal" href="../library/types.html#types.MethodType" title="types.MethodType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.MethodType</span></code></a>
constructor. Patch by Oleg Iarygin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46764">bpo-46764</a>: Fix wrapping bound methods with @classmethod</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43464">bpo-43464</a>: Optimize <code class="xref py py-meth docutils literal notranslate"><span class="pre">set.intersection()</span></code> for non-set arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46721">bpo-46721</a>: Optimize <code class="xref py py-meth docutils literal notranslate"><span class="pre">set.issuperset()</span></code> for non-set argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46509">bpo-46509</a>: Add type-specialized versions of the <code class="docutils literal notranslate"><span class="pre">Py_DECREF()</span></code>, and use
them for <code class="docutils literal notranslate"><span class="pre">float</span></code>, <code class="docutils literal notranslate"><span class="pre">int</span></code>, <code class="docutils literal notranslate"><span class="pre">str</span></code>, <code class="docutils literal notranslate"><span class="pre">bool</span></code>, and <code class="docutils literal notranslate"><span class="pre">None</span></code> to avoid
pointer-chasing at runtime where types are known at C compile time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46045">bpo-46045</a>: Do not use POSIX semaphores on NetBSD</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36819">bpo-36819</a>: Fix crashes in built-in encoders with error handlers that
return position less or equal than the starting position of non-encodable
characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34093">bpo-34093</a>: <code class="docutils literal notranslate"><span class="pre">marshal.dumps()</span></code> uses <code class="docutils literal notranslate"><span class="pre">FLAG_REF</span></code> for all interned strings.
This makes output more deterministic and helps reproducible build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26579">bpo-26579</a>: Added <code class="docutils literal notranslate"><span class="pre">object.__getstate__</span></code> which provides the default
implementation of the <code class="docutils literal notranslate"><span class="pre">__getstate__()</span></code> method.</p>
<p>Copying and pickling instances of subclasses of builtin types bytearray,
set, frozenset, collections.OrderedDict, collections.deque,
weakref.WeakSet, and datetime.tzinfo now copies and pickles instance
attributes implemented as slots.</p>
</li>
</ul>
</section>
<section id="id260">
<h3>Library<a class="headerlink" href="#id260" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87901">gh-87901</a>: Add the <em>encoding</em> parameter to <a class="reference internal" href="../library/os.html#os.popen" title="os.popen"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.popen()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90997">gh-90997</a>: Fix an issue where <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> utilities may interpret populated
inline cache entries as valid instructions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92332">gh-92332</a>: Deprecate <a class="reference internal" href="../library/typing.html#typing.Text" title="typing.Text"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Text</span></code></a> (removal of the class is
currently not planned). Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/78157">gh-78157</a>: Deprecate nested classes in enum definitions becoming members –
in 3.13 they will be normal classes; add <code class="docutils literal notranslate"><span class="pre">member</span></code> and <code class="docutils literal notranslate"><span class="pre">nonmember</span></code>
functions to allow control over results now.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92356">gh-92356</a>: Fixed a performance regression in ctypes function calls.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90997">gh-90997</a>: Show the actual named values stored in inline caches when
<code class="docutils literal notranslate"><span class="pre">show_caches=True</span></code> is passed to <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> utilities.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92301">gh-92301</a>: Prefer <code class="docutils literal notranslate"><span class="pre">close_range()</span></code> to iterating over procfs for file
descriptor closing in <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> for better performance.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/67248">gh-67248</a>: Sort the miscellaneous topics in Cmd.do_help()</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92210">gh-92210</a>: Port <code class="docutils literal notranslate"><span class="pre">socket.__init__</span></code> to Argument Clinic. Patch by Cinder.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/80010">gh-80010</a>: Add support for generalized ISO 8601 parsing to
<a class="reference internal" href="../library/datetime.html#datetime.datetime.fromisoformat" title="datetime.datetime.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.fromisoformat()</span></code></a>,
<a class="reference internal" href="../library/datetime.html#datetime.date.fromisoformat" title="datetime.date.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.date.fromisoformat()</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.time.fromisoformat" title="datetime.time.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.time.fromisoformat()</span></code></a>. Patch by Paul Ganssle.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92118">gh-92118</a>: Fix a 3.11 regression in <a class="reference internal" href="../library/contextlib.html#contextlib.contextmanager" title="contextlib.contextmanager"><code class="xref py py-func docutils literal notranslate"><span class="pre">contextmanager()</span></code></a>,
which caused it to propagate exceptions with incorrect tracebacks.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90887">gh-90887</a>: Adding <code class="docutils literal notranslate"><span class="pre">COPYFILE_STAT</span></code>, <code class="docutils literal notranslate"><span class="pre">COPYFILE_ACL</span></code> and
<code class="docutils literal notranslate"><span class="pre">COPYFILE_XATTR</span></code> constants for <code class="xref py py-func docutils literal notranslate"><span class="pre">os.fcopyfile()</span></code> available in macOs.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91215">gh-91215</a>: For <a class="reference internal" href="../library/dataclasses.html#dataclasses.dataclass" title="dataclasses.dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">@dataclass</span></code></a>, add
<em>weakref_slot</em>. The new parameter defaults to <code class="docutils literal notranslate"><span class="pre">False</span></code>. If true, and if
<code class="docutils literal notranslate"><span class="pre">slots=True</span></code>, add a slot named <code class="docutils literal notranslate"><span class="pre">"__weakref__"</span></code>, which will allow
instances to be weakref’d. Contributed by Eric V. Smith</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/85984">gh-85984</a>: New function os.login_tty() for Unix.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92128">gh-92128</a>: Add <a class="reference internal" href="../reference/datamodel.html#object.__class_getitem__" title="object.__class_getitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__class_getitem__()</span></code></a> to
<a class="reference internal" href="../library/logging.html#logging.LoggerAdapter" title="logging.LoggerAdapter"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.LoggerAdapter</span></code></a> and <a class="reference internal" href="../library/logging.handlers.html#logging.StreamHandler" title="logging.StreamHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.StreamHandler</span></code></a>,
allowing them to be parameterized at runtime. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92049">gh-92049</a>: Forbid pickling constants <code class="docutils literal notranslate"><span class="pre">re._constants.SUCCESS</span></code> etc.
Previously, pickling did not fail, but the result could not be unpickled.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92062">gh-92062</a>: <a class="reference internal" href="../library/inspect.html#inspect.Parameter" title="inspect.Parameter"><code class="xref py py-class docutils literal notranslate"><span class="pre">inspect.Parameter</span></code></a> now raises <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> if
<code class="docutils literal notranslate"><span class="pre">name</span></code> is a keyword, in addition to the existing check that it is an
identifier.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/87390">gh-87390</a>: Add an <code class="docutils literal notranslate"><span class="pre">__unpacked__</span></code> attribute to
<a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88089">gh-88089</a>: Add support for generic <a class="reference internal" href="../library/typing.html#typing.NamedTuple" title="typing.NamedTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NamedTuple</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91996">gh-91996</a>: New http.HTTPMethod enum to represent all the available HTTP
request methods in a convenient way</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91984">gh-91984</a>: Modified test strings in test_argparse.py to not contain
trailing spaces before end of line.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91952">gh-91952</a>: Add <code class="docutils literal notranslate"><span class="pre">encoding="locale"</span></code> support to
<code class="xref py py-meth docutils literal notranslate"><span class="pre">TextIOWrapper.reconfigure()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91954">gh-91954</a>: Add <em>encoding</em> and <em>errors</em> arguments to
<a class="reference internal" href="../library/subprocess.html#subprocess.getoutput" title="subprocess.getoutput"><code class="xref py py-func docutils literal notranslate"><span class="pre">subprocess.getoutput()</span></code></a> and <a class="reference internal" href="../library/subprocess.html#subprocess.getstatusoutput" title="subprocess.getstatusoutput"><code class="xref py py-func docutils literal notranslate"><span class="pre">subprocess.getstatusoutput()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47029">bpo-47029</a>: Always close the read end of the pipe used by
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Queue" title="multiprocessing.Queue"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Queue</span></code></a> <em>after</em> the last write of buffered data to
the write end of the pipe to avoid <a class="reference internal" href="../library/exceptions.html#BrokenPipeError" title="BrokenPipeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BrokenPipeError</span></code></a> at garbage
collection and at <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Queue.close" title="multiprocessing.Queue.close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.Queue.close()</span></code></a> calls. Patch by Géry
Ogam.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91928">gh-91928</a>: Add <code class="docutils literal notranslate"><span class="pre">datetime.UTC</span></code> alias for <code class="docutils literal notranslate"><span class="pre">datetime.timezone.utc</span></code>.</p>
<p>Patch by Kabir Kwatra.</p>
</li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/68966">gh-68966</a>: The <code class="xref py py-mod docutils literal notranslate"><span class="pre">mailcap</span></code> module is now deprecated and will be removed
in Python 3.13. See <span class="target" id="index-180"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a> for the rationale and the <a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a>
module for an alternative. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91401">gh-91401</a>: Provide a way to disable <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> use of <code class="docutils literal notranslate"><span class="pre">vfork()</span></code>
just in case it is ever needed and document the existing mechanism for
<code class="docutils literal notranslate"><span class="pre">posix_spawn()</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/64783">gh-64783</a>: Fix <a class="reference internal" href="../library/signal.html#signal.NSIG" title="signal.NSIG"><code class="xref py py-const docutils literal notranslate"><span class="pre">signal.NSIG</span></code></a> value on FreeBSD to accept signal
numbers greater than 32, like <code class="xref py py-const docutils literal notranslate"><span class="pre">signal.SIGRTMIN</span></code> and
<code class="xref py py-const docutils literal notranslate"><span class="pre">signal.SIGRTMAX</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91910">gh-91910</a>: Add missing f prefix to f-strings in error messages from the
<a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> and <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> modules.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91860">gh-91860</a>: Add <a class="reference internal" href="../library/typing.html#typing.dataclass_transform" title="typing.dataclass_transform"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.dataclass_transform()</span></code></a>, implementing <span class="target" id="index-181"></span><a class="pep reference external" href="https://peps.python.org/pep-0681/"><strong>PEP 681</strong></a>.
Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91832">gh-91832</a>: Add <code class="docutils literal notranslate"><span class="pre">required</span></code> attribute to <a class="reference internal" href="../library/argparse.html#argparse.Action" title="argparse.Action"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.Action</span></code></a> repr
output.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91827">gh-91827</a>: In the <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> module add method <code class="docutils literal notranslate"><span class="pre">info_patchlevel()</span></code>
which returns the exact version of the Tcl library as a named tuple
similar to <a class="reference internal" href="../library/sys.html#sys.version_info" title="sys.version_info"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.version_info</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84461">gh-84461</a>: Add <a class="reference internal" href="../using/configure.html#cmdoption-enable-wasm-pthreads"><code class="xref std std-option docutils literal notranslate"><span class="pre">--enable-wasm-pthreads</span></code></a> to enable pthreads support
for WASM builds. <code class="docutils literal notranslate"><span class="pre">Emscripten/node</span></code> no longer has threading enabled by
default. Include additional file systems.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91821">gh-91821</a>: Fix unstable <code class="docutils literal notranslate"><span class="pre">test_from_tuple</span></code> test in <code class="docutils literal notranslate"><span class="pre">test_decimal.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the xdrlib module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the uu module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91760">gh-91760</a>: More strict rules will be applied for numerical group references
and group names in regular expressions. For now, a deprecation warning is
emitted for group references and group names which will be errors in
future Python versions.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84461">gh-84461</a>: Add provisional <a class="reference internal" href="../library/sys.html#sys._emscripten_info" title="sys._emscripten_info"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys._emscripten_info</span></code></a> named tuple with
build-time and run-time information about Emscripten platform.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90623">gh-90623</a>: <a class="reference internal" href="../library/signal.html#signal.raise_signal" title="signal.raise_signal"><code class="xref py py-func docutils literal notranslate"><span class="pre">signal.raise_signal()</span></code></a> and <a class="reference internal" href="../library/os.html#os.kill" title="os.kill"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.kill()</span></code></a> now check
immediately for pending signals. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91734">gh-91734</a>: Fix OSS audio support on Solaris.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90633">gh-90633</a>: Include the passed value in the exception thrown by
<a class="reference internal" href="../library/typing.html#typing.assert_never" title="typing.assert_never"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.assert_never()</span></code></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91700">gh-91700</a>: Compilation of regular expression containing a conditional
expression <code class="docutils literal notranslate"><span class="pre">(?(group)...)</span></code> now raises an appropriate <code class="xref py py-exc docutils literal notranslate"><span class="pre">re.error</span></code> if
the group number refers to not defined group. Previously an internal
RuntimeError was raised.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91231">gh-91231</a>: Add an optional keyword <em>shutdown_timeout</em> parameter to the
<code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.BaseManager</span></code> constructor. Kill the process if
terminate() takes longer than the timeout. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91621">gh-91621</a>: Fix <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> for
<a class="reference internal" href="../library/collections.abc.html#collections.abc.Callable" title="collections.abc.Callable"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.Callable</span></code></a>. Patch by Shantanu Jain.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90568">gh-90568</a>: Parsing <code class="docutils literal notranslate"><span class="pre">\N</span></code> escapes of Unicode Named Character Sequences in a
<a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">regular</span> <span class="pre">expression</span></code></a> raises now <code class="xref py py-exc docutils literal notranslate"><span class="pre">re.error</span></code> instead of
<code class="docutils literal notranslate"><span class="pre">TypeError</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91670">gh-91670</a>: Remove deprecated <code class="docutils literal notranslate"><span class="pre">SO</span></code> config variable in <a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the telnetlib module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the sunau module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the spwd module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the sndhdr module, as well as inline needed
functionality for <code class="docutils literal notranslate"><span class="pre">email.mime.MIMEAudio</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91616">gh-91616</a>: <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> module, fix <a class="reference internal" href="../library/re.html#re.Pattern.fullmatch" title="re.Pattern.fullmatch"><code class="xref py py-meth docutils literal notranslate"><span class="pre">fullmatch()</span></code></a> mismatch
when using Atomic Grouping or Possessive Quantifiers.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the ‘pipes’ module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the ossaudiodev module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47256">bpo-47256</a>: <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> module, limit the maximum capturing group to
1,073,741,823 in 64-bit build, this increases the depth of backtracking.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the nis module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91595">gh-91595</a>: Fix the comparison of character and integer inside
<code class="xref py py-func docutils literal notranslate"><span class="pre">Tools.gdb.libpython.write_repr()</span></code>. Patch by Yu Liu.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/74166">gh-74166</a>: Add option to raise all errors from
<a class="reference internal" href="../library/socket.html#socket.create_connection" title="socket.create_connection"><code class="xref py py-meth docutils literal notranslate"><span class="pre">create_connection()</span></code></a> in an <a class="reference internal" href="../library/exceptions.html#ExceptionGroup" title="ExceptionGroup"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ExceptionGroup</span></code></a> when it
fails to create a connection. The default remains to raise only the last
error that had occurred when multiple addresses were tried.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91487">gh-91487</a>: Optimize asyncio UDP speed, over 100 times faster when
transferring a large file.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91575">gh-91575</a>: Update case-insensitive matching in the <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> module to the
latest Unicode version.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/90622">gh-90622</a>: In <code class="docutils literal notranslate"><span class="pre">concurrent.futures.process.ProcessPoolExecutor</span></code> disallow
the “fork” multiprocessing start method when the new
<code class="docutils literal notranslate"><span class="pre">max_tasks_per_child</span></code> feature is used as the mix of threads+fork can
hang the child processes. Default to using the safe “spawn” start method
in that circumstance if no <code class="docutils literal notranslate"><span class="pre">mp_context</span></code> was supplied.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89022">gh-89022</a>: In <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>, <code class="docutils literal notranslate"><span class="pre">SQLITE_MISUSE</span></code> result codes are now mapped
to <a class="reference internal" href="../library/sqlite3.html#sqlite3.InterfaceError" title="sqlite3.InterfaceError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InterfaceError</span></code></a> instead of
<a class="reference internal" href="../library/sqlite3.html#sqlite3.ProgrammingError" title="sqlite3.ProgrammingError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ProgrammingError</span></code></a>. Also, more accurate exceptions are
raised when binding parameters fail. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91526">gh-91526</a>: Stop calling <code class="docutils literal notranslate"><span class="pre">os.device_encoding(file.fileno())</span></code> in
<code class="xref py py-class docutils literal notranslate"><span class="pre">TextIOWrapper</span></code>. It was complex, never documented, and didn’t work
for most cases. (Patch by Inada Naoki.)</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88116">gh-88116</a>: Change the frame-related functions in the <a class="reference internal" href="../library/inspect.html#module-inspect" title="inspect: Extract information and source code from live objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">inspect</span></code></a> module
to return a regular object (that is backwards compatible with the old
tuple-like interface) that include the extended <span class="target" id="index-182"></span><a class="pep reference external" href="https://peps.python.org/pep-0657/"><strong>PEP 657</strong></a> position
information (end line number, column and end column). The affected
functions are: <a class="reference internal" href="../library/inspect.html#inspect.getframeinfo" title="inspect.getframeinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getframeinfo()</span></code></a>,
<a class="reference internal" href="../library/inspect.html#inspect.getouterframes" title="inspect.getouterframes"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getouterframes()</span></code></a>, <a class="reference internal" href="../library/inspect.html#inspect.getinnerframes" title="inspect.getinnerframes"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getinnerframes()</span></code></a>,
<a class="reference internal" href="../library/inspect.html#inspect.stack" title="inspect.stack"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.stack()</span></code></a> and <a class="reference internal" href="../library/inspect.html#inspect.trace" title="inspect.trace"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.trace()</span></code></a>. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69093">gh-69093</a>: Add indexing and slicing support to <a class="reference internal" href="../library/sqlite3.html#sqlite3.Blob" title="sqlite3.Blob"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Blob</span></code></a>. Patch
by Aviv Palivoda and Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/69093">gh-69093</a>: Add <a class="reference internal" href="../glossary.html#term-context-manager"><span class="xref std std-term">context manager</span></a> support to <a class="reference internal" href="../library/sqlite3.html#sqlite3.Blob" title="sqlite3.Blob"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Blob</span></code></a>.
Patch by Aviv Palivoda and Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate nntplib.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate msilib.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91404">gh-91404</a>: Improve the performance of <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> matching by using computed
gotos (or “threaded code”) on supported platforms and removing expensive
pointer indirections.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the imghdr module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the crypt module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91276">gh-91276</a>: Make space for longer opcodes in <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> output.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47000">bpo-47000</a>: Make <code class="xref py py-class docutils literal notranslate"><span class="pre">TextIOWrapper</span></code> uses locale encoding when
<code class="docutils literal notranslate"><span class="pre">encoding="locale"</span></code> is specified even in UTF-8 mode.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91230">gh-91230</a>: <a class="reference internal" href="../library/warnings.html#warnings.catch_warnings" title="warnings.catch_warnings"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.catch_warnings()</span></code></a> now accepts arguments for
<a class="reference internal" href="../library/warnings.html#warnings.simplefilter" title="warnings.simplefilter"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.simplefilter()</span></code></a>, providing a more concise way to locally
ignore warnings or convert them to errors.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91217">gh-91217</a>: Deprecate the chunk module.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91498">gh-91498</a>: Add the <code class="docutils literal notranslate"><span class="pre">TCP_CONNECTION_INFO</span></code> option (available on macOS) to
<a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47260">bpo-47260</a>: Fix <code class="docutils literal notranslate"><span class="pre">os.closerange()</span></code> potentially being a no-op in a Linux
seccomp sandbox.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47087">bpo-47087</a>: Implement <code class="docutils literal notranslate"><span class="pre">typing.Required</span></code> and <code class="docutils literal notranslate"><span class="pre">typing.NotRequired</span></code>
(<span class="target" id="index-183"></span><a class="pep reference external" href="https://peps.python.org/pep-0655/"><strong>PEP 655</strong></a>). Patch by David Foster and Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47061">bpo-47061</a>: Deprecate cgi and cgitb.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47061">bpo-47061</a>: Deprecate audioop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47000">bpo-47000</a>: Add <a class="reference internal" href="../library/locale.html#locale.getencoding" title="locale.getencoding"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.getencoding()</span></code></a> to get the current locale
encoding. It is similar to <code class="docutils literal notranslate"><span class="pre">locale.getpreferredencoding(False)</span></code> but
ignores the <a class="reference internal" href="../library/os.html#utf8-mode"><span class="std std-ref">Python UTF-8 Mode</span></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42012">bpo-42012</a>: Add <a class="reference internal" href="../library/wsgiref.html#module-wsgiref.types" title="wsgiref.types: WSGI types for static type checking"><code class="xref py py-mod docutils literal notranslate"><span class="pre">wsgiref.types</span></code></a>, containing WSGI-specific types for
static type checking.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47227">bpo-47227</a>: Suppress expression chaining for more <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> parsing errors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47211">bpo-47211</a>: Remove undocumented and never working function
<code class="docutils literal notranslate"><span class="pre">re.template()</span></code> and flag <code class="docutils literal notranslate"><span class="pre">re.TEMPLATE</span></code>. This was later reverted in
3.11.0b2 and deprecated instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47135">bpo-47135</a>: <a class="reference internal" href="../library/decimal.html#decimal.localcontext" title="decimal.localcontext"><code class="xref py py-meth docutils literal notranslate"><span class="pre">decimal.localcontext()</span></code></a> now accepts context attributes via
keyword arguments</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43323">bpo-43323</a>: Fix errors in the <a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a> module if the charset itself
contains undecodable/unencodable characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Disassembly of quickened code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46681">bpo-46681</a>: Forward gzip.compress() compresslevel to zlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45100">bpo-45100</a>: Add <a class="reference internal" href="../library/typing.html#typing.get_overloads" title="typing.get_overloads"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_overloads()</span></code></a> and
<a class="reference internal" href="../library/typing.html#typing.clear_overloads" title="typing.clear_overloads"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.clear_overloads()</span></code></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44807">bpo-44807</a>: <a class="reference internal" href="../library/typing.html#typing.Protocol" title="typing.Protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Protocol</span></code></a> no longer silently replaces
<code class="xref py py-meth docutils literal notranslate"><span class="pre">__init__()</span></code> methods defined on subclasses. Patch by Adrian Garcia
Badaracco.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46787">bpo-46787</a>: Fix <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor</span></code></a> exception
memory leak</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46720">bpo-46720</a>: Add support for path-like objects to
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.set_executable" title="multiprocessing.set_executable"><code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocessing.set_executable()</span></code></a> for Windows to be on a par with
Unix-like systems. Patch by Géry Ogam.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46696">bpo-46696</a>: Add <code class="docutils literal notranslate"><span class="pre">SO_INCOMING_CPU</span></code> constant to <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46053">bpo-46053</a>: Fix OSS audio support on NetBSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45639">bpo-45639</a>: <code class="docutils literal notranslate"><span class="pre">image/avif</span></code> and <code class="docutils literal notranslate"><span class="pre">image/webp</span></code> were added to
<a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46285">bpo-46285</a>: Add command-line option <code class="docutils literal notranslate"><span class="pre">-p</span></code>/<code class="docutils literal notranslate"><span class="pre">--protocol</span></code> to module
<a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a> which specifies the HTTP version to which the server is
conformant (HTTP/1.1 conformant servers can now be run from the
command-line interface of module <a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a>). Patch by Géry Ogam.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44791">bpo-44791</a>: Accept ellipsis as the last argument of
<a class="reference internal" href="../library/typing.html#typing.Concatenate" title="typing.Concatenate"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Concatenate</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46547">bpo-46547</a>: Remove variables leaking into <code class="docutils literal notranslate"><span class="pre">pydoc.Helper</span></code> class namespace.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46415">bpo-46415</a>: Fix ipaddress.ip_{address,interface,network} raising TypeError
instead of ValueError if given invalid tuple as address parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46075">bpo-46075</a>: <code class="docutils literal notranslate"><span class="pre">CookieJar</span></code> with <code class="docutils literal notranslate"><span class="pre">DefaultCookiePolicy</span></code> now can process
cookies from localhost with domain=localhost explicitly specified in
Set-Cookie header.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45995">bpo-45995</a>: Add a “z” option to the string formatting specification that
coerces negative zero floating-point values to positive zero after
rounding to the format precision. Contributed by John Belmonte.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26175">bpo-26175</a>: Fully implement the <a class="reference internal" href="../library/io.html#io.BufferedIOBase" title="io.BufferedIOBase"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.BufferedIOBase</span></code></a> or
<a class="reference internal" href="../library/io.html#io.TextIOBase" title="io.TextIOBase"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.TextIOBase</span></code></a> interface for
<a class="reference internal" href="../library/tempfile.html#tempfile.SpooledTemporaryFile" title="tempfile.SpooledTemporaryFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">tempfile.SpooledTemporaryFile</span></code></a> objects. This lets them work
correctly with higher-level layers (like compression modules). Patch by
Carey Metcalfe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45138">bpo-45138</a>: Fix a regression in the <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> trace callback where
bound parameters were not expanded in the passed statement string. The
regression was introduced in Python 3.10 by <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40318">bpo-40318</a>. Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44863">bpo-44863</a>: Allow <a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypedDict</span></code></a> subclasses to also include
<a class="reference internal" href="../library/typing.html#typing.Generic" title="typing.Generic"><code class="xref py py-class docutils literal notranslate"><span class="pre">Generic</span></code></a> as a base class in class based syntax. Thereby
allowing the user to define a generic <code class="docutils literal notranslate"><span class="pre">TypedDict</span></code>, just like a
user-defined generic but with <code class="docutils literal notranslate"><span class="pre">TypedDict</span></code> semantics.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44587">bpo-44587</a>: Fix BooleanOptionalAction to not automatically add a default
string. If a default string is desired, use a formatter to add it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43827">bpo-43827</a>: All positional-or-keyword parameters to <code class="docutils literal notranslate"><span class="pre">ABCMeta.__new__</span></code> are
now positional-only to avoid conflicts with keyword arguments to be passed
to <code class="xref py py-meth docutils literal notranslate"><span class="pre">__init_subclass__()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43218">bpo-43218</a>: Prevent creation of a venv whose path contains the PATH
separator. This could affect the usage of the activate script. Patch by
Dustin Rodrigues.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38435">bpo-38435</a>: Add a <code class="docutils literal notranslate"><span class="pre">process_group</span></code> parameter to <a class="reference internal" href="../library/subprocess.html#subprocess.Popen" title="subprocess.Popen"><code class="xref py py-class docutils literal notranslate"><span class="pre">subprocess.Popen</span></code></a>
to help move more things off of the unsafe <code class="docutils literal notranslate"><span class="pre">preexec_fn</span></code> parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42066">bpo-42066</a>: Fix cookies getting sorted in <code class="xref py py-func docutils literal notranslate"><span class="pre">CookieJar.__iter__()</span></code> which
is an extra behavior and not mentioned in RFC 2965 or Netscape cookie
protocol. Now the cookies in <code class="docutils literal notranslate"><span class="pre">CookieJar</span></code> follows the order of the
<code class="docutils literal notranslate"><span class="pre">Set-Cookie</span></code> header. Patch by Iman Kermani.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40617">bpo-40617</a>: Add <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.create_window_function" title="sqlite3.Connection.create_window_function"><code class="xref py py-meth docutils literal notranslate"><span class="pre">create_window_function()</span></code></a> to
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> for creating aggregate window functions. Patch
by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40676">bpo-40676</a>: Convert <a class="reference internal" href="../library/csv.html#module-csv" title="csv: Write and read tabular data to and from delimited files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code></a> to use Argument Clinic for
<a class="reference internal" href="../library/csv.html#csv.field_size_limit" title="csv.field_size_limit"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.field_size_limit()</span></code></a>, <a class="reference internal" href="../library/csv.html#csv.get_dialect" title="csv.get_dialect"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.get_dialect()</span></code></a>,
<a class="reference internal" href="../library/csv.html#csv.unregister_dialect" title="csv.unregister_dialect"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.unregister_dialect()</span></code></a> and <a class="reference internal" href="../library/csv.html#csv.list_dialects" title="csv.list_dialects"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.list_dialects()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39716">bpo-39716</a>: Raise an <code class="docutils literal notranslate"><span class="pre">ArgumentError</span></code> when the same subparser name is
added twice to an <code class="docutils literal notranslate"><span class="pre">argparse.ArgumentParser</span></code>. This is consistent with
the (default) behavior when the same option string is added twice to an
<code class="docutils literal notranslate"><span class="pre">ArgumentParser</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36073">bpo-36073</a>: Raise <a class="reference internal" href="../library/sqlite3.html#sqlite3.ProgrammingError" title="sqlite3.ProgrammingError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ProgrammingError</span></code></a> instead of segfaulting
on recursive usage of cursors in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> converters. Patch by
Sergey Fedoseev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34975">bpo-34975</a>: Adds a <code class="docutils literal notranslate"><span class="pre">start_tls()</span></code> method to
<code class="xref py py-class docutils literal notranslate"><span class="pre">StreamWriter</span></code>, which upgrades the connection with
TLS using the given <a class="reference internal" href="../library/ssl.html#ssl.SSLContext" title="ssl.SSLContext"><code class="xref py py-class docutils literal notranslate"><span class="pre">SSLContext</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22276">bpo-22276</a>: <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">Path</span></code></a> methods <a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">glob()</span></code></a> and
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.rglob" title="pathlib.Path.rglob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rglob()</span></code></a> return only directories if <em>pattern</em> ends with
a pathname components separator (<code class="docutils literal notranslate"><span class="pre">/</span></code> or <a class="reference internal" href="../library/os.html#os.sep" title="os.sep"><code class="xref py py-data docutils literal notranslate"><span class="pre">sep</span></code></a>). Patch by
Eisuke Kawashima.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24905">bpo-24905</a>: Add <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.blobopen" title="sqlite3.Connection.blobopen"><code class="xref py py-meth docutils literal notranslate"><span class="pre">blobopen()</span></code></a> to
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a>. <a class="reference internal" href="../library/sqlite3.html#sqlite3.Blob" title="sqlite3.Blob"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Blob</span></code></a> allows incremental I/O
operations on blobs. Patch by Aviv Palivoda and Erlend E. Aasland.</p></li>
</ul>
</section>
<section id="id261">
<h3>Documentation<a class="headerlink" href="#id261" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91888">gh-91888</a>: Add a new <code class="docutils literal notranslate"><span class="pre">gh</span></code> role to the documentation to link to GitHub
issues.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91783">gh-91783</a>: Document security issues concerning the use of the function
<a class="reference internal" href="../library/shutil.html#shutil.unpack_archive" title="shutil.unpack_archive"><code class="xref py py-meth docutils literal notranslate"><span class="pre">shutil.unpack_archive()</span></code></a></p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91547">gh-91547</a>: Remove “Undocumented modules” page.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91298">gh-91298</a>: In <code class="docutils literal notranslate"><span class="pre">importlib.resources.abc</span></code>, refined the documentation of the
Traversable Protocol, applying changes from importlib_resources 5.7.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44347">bpo-44347</a>: Clarify the meaning of <em>dirs_exist_ok</em>, a kwarg of
<a class="reference internal" href="../library/shutil.html#shutil.copytree" title="shutil.copytree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copytree()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36329">bpo-36329</a>: Remove ‘make -C Doc serve’ in favour of ‘make -C Doc htmlview’</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47189">bpo-47189</a>: Add a What’s New in Python 3.11 entry for the Faster CPython
project. Documentation by Ken Jin and Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38668">bpo-38668</a>: Update the introduction to documentation for <a class="reference internal" href="../library/os.path.html#module-os.path" title="os.path: Operations on pathnames."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os.path</span></code></a> to
remove warnings that became irrelevant after the implementations of
<span class="target" id="index-184"></span><a class="pep reference external" href="https://peps.python.org/pep-0383/"><strong>PEP 383</strong></a> and <span class="target" id="index-185"></span><a class="pep reference external" href="https://peps.python.org/pep-0529/"><strong>PEP 529</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47115">bpo-47115</a>: The documentation now lists which members of C structs are part
of the <a class="reference internal" href="../c-api/stable.html#stable"><span class="std std-ref">Limited API/Stable ABI</span></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46962">bpo-46962</a>: All docstrings in code snippets are now wrapped into
<a class="reference internal" href="../c-api/intro.html#c.PyDoc_STR" title="PyDoc_STR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyDoc_STR</span></code></a> to follow the guideline of <span class="target" id="index-186"></span><a class="pep reference external" href="https://peps.python.org/pep-0007/#documentation-strings"><strong>PEP 7’s
Documentation Strings paragraph</strong></a>. Patch by
Oleg Iarygin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26792">bpo-26792</a>: Improve the docstrings of <a class="reference internal" href="../library/runpy.html#runpy.run_module" title="runpy.run_module"><code class="xref py py-func docutils literal notranslate"><span class="pre">runpy.run_module()</span></code></a> and
<a class="reference internal" href="../library/runpy.html#runpy.run_path" title="runpy.run_path"><code class="xref py py-func docutils literal notranslate"><span class="pre">runpy.run_path()</span></code></a>. Original patch by Andrew Brezovsky.</p></li>
</ul>
</section>
<section id="id262">
<h3>Tests<a class="headerlink" href="#id262" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92169">gh-92169</a>: Use <code class="docutils literal notranslate"><span class="pre">warnings_helper.import_deprecated()</span></code> to import deprecated
modules uniformly in tests. Patch by Hugo van Kemenade.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/84461">gh-84461</a>: When multiprocessing is enabled, libregrtest can now use a
Python executable other than <code class="code docutils literal notranslate"><span class="pre">sys.executable</span></code> via the <code class="docutils literal notranslate"><span class="pre">--python</span></code>
flag.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91904">gh-91904</a>: Fix initialization of <span class="target" id="index-187"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONREGRTEST_UNICODE_GUARD</span></code>
which prevented running regression tests on non-UTF-8 locale.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91752">gh-91752</a>: Added @requires_zlib to test.test_tools.test_freeze.TestFreeze.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91607">gh-91607</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_concurrent_futures</span></code> to test the correct
multiprocessing start method context in several cases where the test logic
mixed this up.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: Threading tests are now skipped on WASM targets without pthread
support.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47109">bpo-47109</a>: Test for <code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes.macholib.dyld</span></code>,
<code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes.macholib.dylib</span></code>, and <code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes.macholib.framework</span></code> are
brought from manual pre-<a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> times to <code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes.test</span></code>
location and structure. Patch by Oleg Iarygin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29890">bpo-29890</a>: Add tests for <a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv4Interface" title="ipaddress.IPv4Interface"><code class="xref py py-class docutils literal notranslate"><span class="pre">ipaddress.IPv4Interface</span></code></a> and
<a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv6Interface" title="ipaddress.IPv6Interface"><code class="xref py py-class docutils literal notranslate"><span class="pre">ipaddress.IPv6Interface</span></code></a> construction with tuple arguments.
Original patch and tests by louisom.</p></li>
</ul>
</section>
<section id="id263">
<h3>Build<a class="headerlink" href="#id263" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/89452">gh-89452</a>: gdbm-compat is now preferred over ndbm if both are available on
the system. This allows avoiding the problematic ndbm.h on macOS.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91731">gh-91731</a>: Python is now built with <code class="docutils literal notranslate"><span class="pre">-std=c11</span></code> compiler option, rather
than <code class="docutils literal notranslate"><span class="pre">-std=c99</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47152">bpo-47152</a>: Add script and make target for generating <code class="docutils literal notranslate"><span class="pre">sre_constants.h</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47103">bpo-47103</a>: Windows <code class="docutils literal notranslate"><span class="pre">PGInstrument</span></code> builds now copy a required DLL into
the output directory, making it easier to run the profile stage of a PGO
build.</p></li>
</ul>
</section>
<section id="id264">
<h3>Windows<a class="headerlink" href="#id264" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46907">bpo-46907</a>: Update Windows installer to use SQLite 3.38.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47239">bpo-47239</a>: Fixed –list and –list-paths output for <a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a> when
used in an active virtual environment.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46907">bpo-46907</a>: Update Windows installer to use SQLite 3.38.2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46785">bpo-46785</a>: Fix race condition between <a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a> and unlinking a file
on Windows, by using errors codes returned by <code class="docutils literal notranslate"><span class="pre">FindFirstFileW()</span></code> when
appropriate in <code class="docutils literal notranslate"><span class="pre">win32_xstat_impl</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40859">bpo-40859</a>: Update Windows build to use xz-5.2.5</p></li>
</ul>
</section>
<section id="id265">
<h3>macOS<a class="headerlink" href="#id265" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46907">bpo-46907</a>: Update macOS installer to SQLite 3.38.4.</p></li>
</ul>
</section>
<section id="id266">
<h3>Tools/Demos<a class="headerlink" href="#id266" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91583">gh-91583</a>: Fix regression in the code generated by Argument Clinic for
functions with the <code class="docutils literal notranslate"><span class="pre">defining_class</span></code> parameter.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91575">gh-91575</a>: Add script <code class="docutils literal notranslate"><span class="pre">Tools/scripts/generate_re_casefix.py</span></code> and the make
target <code class="docutils literal notranslate"><span class="pre">regen-re</span></code> for generating additional data for case-insensitive
matching according to the current Unicode version.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91551">gh-91551</a>: Remove the ancient Pynche color editor. It has moved to
<a class="reference external" href="https://gitlab.com/warsaw/pynche">https://gitlab.com/warsaw/pynche</a></p></li>
</ul>
</section>
<section id="id267">
<h3>C API<a class="headerlink" href="#id267" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/88279">gh-88279</a>: Deprecate the C functions: <code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_SetArgv()</span></code>,
<code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_SetArgvEx()</span></code>, <code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_SetPath()</span></code>. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92154">gh-92154</a>: Added the <a class="reference internal" href="../c-api/code.html#c.PyCode_GetCode" title="PyCode_GetCode"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_GetCode()</span></code></a> function. This function does
the equivalent of the Python code <code class="docutils literal notranslate"><span class="pre">getattr(code_object,</span> <span class="pre">'co_code')</span></code>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/92173">gh-92173</a>: Fix the <code class="docutils literal notranslate"><span class="pre">closure</span></code> argument to <a class="reference internal" href="../c-api/veryhigh.html#c.PyEval_EvalCodeEx" title="PyEval_EvalCodeEx"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_EvalCodeEx()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91320">gh-91320</a>: Fix C++ compiler warnings about “old-style cast” (<code class="docutils literal notranslate"><span class="pre">g++</span>
<span class="pre">-Wold-style-cast</span></code>) in the Python C API. Use C++ <code class="docutils literal notranslate"><span class="pre">reinterpret_cast<></span></code>
and <code class="docutils literal notranslate"><span class="pre">static_cast<></span></code> casts when the Python C API is used in C++. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/80527">gh-80527</a>: Mark functions as deprecated by <span class="target" id="index-188"></span><a class="pep reference external" href="https://peps.python.org/pep-0623/"><strong>PEP 623</strong></a>:
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AS_DATA()</span></code>, <code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AS_UNICODE()</span></code>,
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_GET_DATA_SIZE()</span></code>, <code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_GET_SIZE()</span></code>. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91768">gh-91768</a>: <a class="reference internal" href="../c-api/refcounting.html#c.Py_REFCNT" title="Py_REFCNT"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_REFCNT()</span></code></a>, <a class="reference internal" href="../c-api/structures.html#c.Py_TYPE" title="Py_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_TYPE()</span></code></a>, <a class="reference internal" href="../c-api/structures.html#c.Py_SIZE" title="Py_SIZE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SIZE()</span></code></a> and
<a class="reference internal" href="../c-api/structures.html#c.Py_IS_TYPE" title="Py_IS_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_IS_TYPE()</span></code></a> functions argument type is now <code class="docutils literal notranslate"><span class="pre">PyObject*</span></code>, rather
than <code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">PyObject*</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/91020">gh-91020</a>: Add <code class="docutils literal notranslate"><span class="pre">PyBytes_Type.tp_alloc</span></code> to initialize
<code class="docutils literal notranslate"><span class="pre">PyBytesObject.ob_shash</span></code> for bytes subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40421">bpo-40421</a>: Add <code class="docutils literal notranslate"><span class="pre">PyFrame_GetLasti</span></code> C-API function to access frame
object’s <code class="docutils literal notranslate"><span class="pre">f_lasti</span></code> attribute safely from C code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35134">bpo-35134</a>: Remove the <code class="docutils literal notranslate"><span class="pre">Include/code.h</span></code> header file. C extensions should
only include the main <code class="docutils literal notranslate"><span class="pre"><Python.h></span></code> header file. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47169">bpo-47169</a>: <a class="reference internal" href="../c-api/sys.html#c.PyOS_CheckStack" title="PyOS_CheckStack"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyOS_CheckStack()</span></code></a> is now exported in the Stable ABI on
Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47169">bpo-47169</a>: <code class="xref c c-func docutils literal notranslate"><span class="pre">PyThread_get_thread_native_id()</span></code> is excluded from the
stable ABI on platforms where it doesn’t exist (like Solaris).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46343">bpo-46343</a>: Added <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_GetHandledException" title="PyErr_GetHandledException"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_GetHandledException()</span></code></a> and
<a class="reference internal" href="../c-api/exceptions.html#c.PyErr_SetHandledException" title="PyErr_SetHandledException"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_SetHandledException()</span></code></a> as simpler alternatives to
<a class="reference internal" href="../c-api/exceptions.html#c.PyErr_GetExcInfo" title="PyErr_GetExcInfo"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_GetExcInfo()</span></code></a> and <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_SetExcInfo" title="PyErr_SetExcInfo"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_SetExcInfo()</span></code></a>.</p>
<p>They are included in the stable ABI.</p>
</li>
</ul>
</section>
</section>
<section id="python-3-11-0-alpha-7">
<h2>Python 3.11.0 alpha 7<a class="headerlink" href="#python-3-11-0-alpha-7" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2022-04-05</em></p>
<section id="id268">
<h3>Core and Builtins<a class="headerlink" href="#id268" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47212">bpo-47212</a>: Raise <a class="reference internal" href="../library/exceptions.html#IndentationError" title="IndentationError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IndentationError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> for
a bare <code class="docutils literal notranslate"><span class="pre">except</span></code> with no following indent. Improve <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>
locations for an un-parenthesized generator used as arguments. Patch by
Matthieu Dartiailh.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47186">bpo-47186</a>: Replace <code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_IF_NOT_EG_MATCH</span></code> by
<a class="reference internal" href="../library/dis.html#opcode-CHECK_EG_MATCH"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CHECK_EG_MATCH</span></code></a> + jump.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47176">bpo-47176</a>: Emscripten builds cannot handle signals in the usual way due to
platform limitations. Python can now handle signals. To use, set
Module.Py_EmscriptenSignalBuffer to be a single byte SharedArrayBuffer and
set Py_EMSCRIPTEN_SIGNAL_HANDLING to 1. Writing a number into the
SharedArrayBuffer will cause the corresponding signal to be raised into
the Python thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47186">bpo-47186</a>: Replace <code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_IF_NOT_EXC_MATCH</span></code> by
<a class="reference internal" href="../library/dis.html#opcode-CHECK_EXC_MATCH"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CHECK_EXC_MATCH</span></code></a> + jump.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47120">bpo-47120</a>: Replace the absolute jump opcode <a class="reference internal" href="../library/dis.html#opcode-JUMP_NO_INTERRUPT"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_NO_INTERRUPT</span></code></a> by
the relative <a class="reference internal" href="../library/dis.html#opcode-JUMP_BACKWARD_NO_INTERRUPT"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_BACKWARD_NO_INTERRUPT</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Avoid unnecessary allocations when comparing code objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47182">bpo-47182</a>: Fix a crash when using a named unicode character like
<code class="docutils literal notranslate"><span class="pre">"\N{digit</span> <span class="pre">nine}"</span></code> after the main interpreter has been initialized a
second time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47162">bpo-47162</a>: WebAssembly cannot deal with bad function pointer casts
(different count or types of arguments). Python can now use call
trampolines to mitigate the problem. Define <code class="xref c c-macro docutils literal notranslate"><span class="pre">PY_CALL_TRAMPOLINE</span></code>
to enable call trampolines.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46775">bpo-46775</a>: Some Windows system error codes(>= 10000) are now mapped into
the correct errno and may now raise a subclass of <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>. Patch by
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47129">bpo-47129</a>: Improve error messages in f-string syntax errors concerning
empty expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47117">bpo-47117</a>: Fix a crash if we fail to decode characters in interactive mode
if the tokenizer buffers are uninitialized. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47127">bpo-47127</a>: Speed up calls to c functions with keyword arguments by 25%
with specialization. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47120">bpo-47120</a>: Replaced <code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_ABSOLUTE</span></code> by the relative jump
<a class="reference internal" href="../library/dis.html#opcode-JUMP_BACKWARD"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">JUMP_BACKWARD</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42197">bpo-42197</a>: <code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_FastToLocalsWithError()</span></code> and
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_LocalsToFast()</span></code> are no longer called during profiling nor
tracing. C code can access the <code class="docutils literal notranslate"><span class="pre">f_locals</span></code> attribute of
<a class="reference internal" href="../c-api/frame.html#c.PyFrameObject" title="PyFrameObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyFrameObject</span></code></a> by calling <a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetLocals" title="PyFrame_GetLocals"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetLocals()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47070">bpo-47070</a>: Improve performance of <code class="docutils literal notranslate"><span class="pre">array_inplace_repeat</span></code> by reducing the
number of invocations of <code class="docutils literal notranslate"><span class="pre">memcpy</span></code>. Refactor the <code class="docutils literal notranslate"><span class="pre">repeat</span></code> and inplace
<code class="docutils literal notranslate"><span class="pre">repeat</span></code> methods of <code class="docutils literal notranslate"><span class="pre">array</span></code>, <code class="docutils literal notranslate"><span class="pre">bytes</span></code>, <code class="docutils literal notranslate"><span class="pre">bytearray</span></code> and
<code class="docutils literal notranslate"><span class="pre">unicodeobject</span></code> to use the common <code class="docutils literal notranslate"><span class="pre">_PyBytes_Repeat</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47053">bpo-47053</a>: Reduce de-optimization in the specialized
<code class="docutils literal notranslate"><span class="pre">BINARY_OP_INPLACE_ADD_UNICODE</span></code> opcode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47045">bpo-47045</a>: Remove the <code class="docutils literal notranslate"><span class="pre">f_state</span></code> field from the _PyInterpreterFrame
struct. Add the <code class="docutils literal notranslate"><span class="pre">owner</span></code> field to the _PyInterpreterFrame struct to make
ownership explicit to simplify clearing and deallocing frames and
generators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46968">bpo-46968</a>: Check for the existence of the “sys/auxv.h” header in
<a class="reference internal" href="../library/faulthandler.html#module-faulthandler" title="faulthandler: Dump the Python traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">faulthandler</span></code></a> to avoid compilation problems in systems where this
header doesn’t exist. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46329">bpo-46329</a>: Use low bit of <code class="docutils literal notranslate"><span class="pre">LOAD_GLOBAL</span></code> to indicate whether to push a
<code class="docutils literal notranslate"><span class="pre">NULL</span></code> before the global. Helps streamline the call sequence a bit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Quicken bytecode in-place by storing it as part of the
corresponding <code class="docutils literal notranslate"><span class="pre">PyCodeObject</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47012">bpo-47012</a>: Speed up iteration of <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> by
30%. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47009">bpo-47009</a>: Improved the performance of <a class="reference internal" href="../library/stdtypes.html#list.append" title="list.append"><code class="xref py py-meth docutils literal notranslate"><span class="pre">list.append()</span></code></a> and list
comprehensions by optimizing for the common case, where no resize is
needed. Patch by Dennis Sweeney.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47005">bpo-47005</a>: Improve performance of <code class="docutils literal notranslate"><span class="pre">bytearray_repeat</span></code> and
<code class="docutils literal notranslate"><span class="pre">bytearray_irepeat</span></code> by reducing the number of invocations of <code class="docutils literal notranslate"><span class="pre">memcpy</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46829">bpo-46829</a>: Deprecate passing a message into <a class="reference internal" href="../library/asyncio-future.html#asyncio.Future.cancel" title="asyncio.Future.cancel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Future.cancel()</span></code></a>
and <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.cancel" title="asyncio.Task.cancel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Task.cancel()</span></code></a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46993">bpo-46993</a>: Speed up <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> creation from <a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> and
<a class="reference internal" href="../library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> by 40%. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39829">bpo-39829</a>: Removed the <code class="docutils literal notranslate"><span class="pre">__len__()</span></code> call when initializing a list and
moved initializing to <code class="docutils literal notranslate"><span class="pre">list_extend</span></code>. Patch by Jeremiah Pascual.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46944">bpo-46944</a>: Speed up throwing exception in generator with
<a class="reference internal" href="../c-api/structures.html#c.METH_FASTCALL" title="METH_FASTCALL"><code class="xref c c-macro docutils literal notranslate"><span class="pre">METH_FASTCALL</span></code></a> calling convention. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Modify <a class="reference internal" href="../library/dis.html#opcode-STORE_SUBSCR"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">STORE_SUBSCR</span></code></a> to use an inline cache entry
(rather than its oparg) as an adaptive counter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Use inline caching for <code class="xref std std-opcode docutils literal notranslate"><span class="pre">PRECALL</span></code> and <a class="reference internal" href="../library/dis.html#opcode-CALL"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL</span></code></a>,
and remove the internal machinery for managing the (now unused) non-inline
caches.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46881">bpo-46881</a>: Statically allocate and initialize the latin1 characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46838">bpo-46838</a>: Improve syntax errors for incorrect function definitions. Patch
by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43721">bpo-43721</a>: Fix docstrings of <a class="reference internal" href="../library/functions.html#property.getter" title="property.getter"><code class="xref py py-attr docutils literal notranslate"><span class="pre">getter</span></code></a>,
<a class="reference internal" href="../library/functions.html#property.setter" title="property.setter"><code class="xref py py-attr docutils literal notranslate"><span class="pre">setter</span></code></a>, and <a class="reference internal" href="../library/functions.html#property.deleter" title="property.deleter"><code class="xref py py-attr docutils literal notranslate"><span class="pre">deleter</span></code></a> to clarify that
they create a new copy of the property.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43224">bpo-43224</a>: Make grammar changes required for PEP 646.</p></li>
</ul>
</section>
<section id="id269">
<h3>Library<a class="headerlink" href="#id269" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47208">bpo-47208</a>: Allow vendors to override <code class="xref py py-const docutils literal notranslate"><span class="pre">CTYPES_MAX_ARGCOUNT</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23689">bpo-23689</a>: <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> module: fix memory leak when a match is terminated by
a signal or memory allocation failure. Patch by Ma Lin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47167">bpo-47167</a>: Allow overriding a future compliance check in
<a class="reference internal" href="../library/asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Task</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47151">bpo-47151</a>: When subprocess tries to use vfork, it now falls back to fork
if vfork returns an error. This allows use in situations where vfork isn’t
allowed by the OS kernel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47152">bpo-47152</a>: Convert the <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> module into a package. Deprecate modules
<code class="docutils literal notranslate"><span class="pre">sre_compile</span></code>, <code class="docutils literal notranslate"><span class="pre">sre_constants</span></code> and <code class="docutils literal notranslate"><span class="pre">sre_parse</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4833">bpo-4833</a>: Add <code class="xref py py-meth docutils literal notranslate"><span class="pre">ZipFile.mkdir()</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27929">bpo-27929</a>: Fix <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.sock_connect" title="asyncio.loop.sock_connect"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.sock_connect()</span></code></a> to only resolve names for
<a class="reference internal" href="../library/socket.html#socket.AF_INET" title="socket.AF_INET"><code class="xref py py-const docutils literal notranslate"><span class="pre">socket.AF_INET</span></code></a> or <a class="reference internal" href="../library/socket.html#socket.AF_INET6" title="socket.AF_INET6"><code class="xref py py-const docutils literal notranslate"><span class="pre">socket.AF_INET6</span></code></a> families. Resolution
may not make sense for other families, like <a class="reference internal" href="../library/socket.html#socket.AF_BLUETOOTH" title="socket.AF_BLUETOOTH"><code class="xref py py-const docutils literal notranslate"><span class="pre">socket.AF_BLUETOOTH</span></code></a>
and <a class="reference internal" href="../library/socket.html#socket.AF_UNIX" title="socket.AF_UNIX"><code class="xref py py-const docutils literal notranslate"><span class="pre">socket.AF_UNIX</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14265">bpo-14265</a>: Adds the fully qualified test name to unittest output</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47061">bpo-47061</a>: Deprecate the aifc module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39622">bpo-39622</a>: Handle Ctrl+C in asyncio programs to interrupt the main task.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47101">bpo-47101</a>: <a class="reference internal" href="../library/hashlib.html#hashlib.algorithms_available" title="hashlib.algorithms_available"><code class="xref py py-const docutils literal notranslate"><span class="pre">hashlib.algorithms_available</span></code></a> now lists only algorithms
that are provided by activated crypto providers on OpenSSL 3.0. Legacy
algorithms are not listed unless the legacy provider has been loaded into
the default OSSL context.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47099">bpo-47099</a>: All <code class="xref py py-exc docutils literal notranslate"><span class="pre">URLError</span></code> exception messages raised in
<code class="xref py py-class docutils literal notranslate"><span class="pre">urllib.request.URLopener</span></code> now contain a colon between <code class="docutils literal notranslate"><span class="pre">ftp</span>
<span class="pre">error</span></code> and the rest of the message. Previously,
<code class="xref py py-func docutils literal notranslate"><span class="pre">open_ftp()</span></code> missed the colon. Patch by Oleg
Iarygin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47099">bpo-47099</a>: Exception chaining is changed from
<code class="xref py py-func docutils literal notranslate"><span class="pre">Exception.with_traceback()</span></code>/<a class="reference internal" href="../library/sys.html#sys.exc_info" title="sys.exc_info"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.exc_info()</span></code></a> to <span class="target" id="index-189"></span><a class="pep reference external" href="https://peps.python.org/pep-3134/"><strong>PEP 3134</strong></a>.
Patch by Oleg Iarygin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47095">bpo-47095</a>: <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a>’s internal <code class="docutils literal notranslate"><span class="pre">_blake2</span></code> module now prefers
<code class="docutils literal notranslate"><span class="pre">libb2</span></code> from <a class="reference external" href="https://www.blake2.net/">https://www.blake2.net/</a> over Python’s vendored copy of
blake2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47098">bpo-47098</a>: The Keccak Code Package for <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a>’s internal <code class="docutils literal notranslate"><span class="pre">_sha3</span></code>
module has been replaced with tiny_sha3. The module is used as fallback
when Python is built without OpenSSL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47088">bpo-47088</a>: Implement <a class="reference internal" href="../library/typing.html#typing.LiteralString" title="typing.LiteralString"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.LiteralString</span></code></a>, part of <span class="target" id="index-190"></span><a class="pep reference external" href="https://peps.python.org/pep-0675/"><strong>PEP 675</strong></a>.
Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42885">bpo-42885</a>: Optimize <a class="reference internal" href="../library/re.html#re.search" title="re.search"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.search()</span></code></a>, <a class="reference internal" href="../library/re.html#re.split" title="re.split"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.split()</span></code></a>,
<a class="reference internal" href="../library/re.html#re.findall" title="re.findall"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.findall()</span></code></a>, <a class="reference internal" href="../library/re.html#re.finditer" title="re.finditer"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.finditer()</span></code></a> and <a class="reference internal" href="../library/re.html#re.sub" title="re.sub"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.sub()</span></code></a> for regular
expressions starting with <code class="docutils literal notranslate"><span class="pre">\A</span></code> or <code class="docutils literal notranslate"><span class="pre">^</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23691">bpo-23691</a>: Protect the <a class="reference internal" href="../library/re.html#re.finditer" title="re.finditer"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.finditer()</span></code></a> iterator from re-entering.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47067">bpo-47067</a>: Optimize calling <code class="docutils literal notranslate"><span class="pre">GenericAlias</span></code> objects by using <span class="target" id="index-191"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> and by replacing <code class="docutils literal notranslate"><span class="pre">PyObject_SetAttrString</span></code> with
<code class="docutils literal notranslate"><span class="pre">PyObject_SetAttr</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28080">bpo-28080</a>: Add the <em>metadata_encoding</em> parameter in the
<a class="reference internal" href="../library/zipfile.html#zipfile.ZipFile" title="zipfile.ZipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">zipfile.ZipFile</span></code></a> constructor and the <code class="docutils literal notranslate"><span class="pre">--metadata-encoding</span></code>
option in the <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a> CLI to allow reading zipfiles using
non-standard codecs to encode the filenames within the archive.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47000">bpo-47000</a>: Make <a class="reference internal" href="../library/io.html#io.text_encoding" title="io.text_encoding"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.text_encoding()</span></code></a> returns “utf-8” when UTF-8 mode
is enabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42369">bpo-42369</a>: Fix thread safety of <code class="xref py py-meth docutils literal notranslate"><span class="pre">zipfile._SharedFile.tell()</span></code> to avoid
a “zipfile.BadZipFile: Bad CRC-32 for file” exception when reading a
<code class="xref py py-class docutils literal notranslate"><span class="pre">ZipFile</span></code> from multiple threads.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38256">bpo-38256</a>: Fix <a class="reference internal" href="../library/binascii.html#binascii.crc32" title="binascii.crc32"><code class="xref py py-func docutils literal notranslate"><span class="pre">binascii.crc32()</span></code></a> when it is compiled to use zlib’c
crc32 to work properly on inputs 4+GiB in length instead of returning the
wrong result. The workaround prior to this was to always feed the function
data in increments smaller than 4GiB or to just call the zlib module
function.</p>
<p>We also have <a class="reference internal" href="../library/binascii.html#binascii.crc32" title="binascii.crc32"><code class="xref py py-func docutils literal notranslate"><span class="pre">binascii.crc32()</span></code></a> release the GIL when computing on
larger inputs as <a class="reference internal" href="../library/zlib.html#zlib.crc32" title="zlib.crc32"><code class="xref py py-func docutils literal notranslate"><span class="pre">zlib.crc32()</span></code></a> and <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> do.</p>
<p>This also boosts performance on Windows as it now uses the zlib crc32
implementation for <a class="reference internal" href="../library/binascii.html#binascii.crc32" title="binascii.crc32"><code class="xref py py-func docutils literal notranslate"><span class="pre">binascii.crc32()</span></code></a> for a 2-3x speedup.</p>
<p>That the stdlib has a crc32 API in two modules is a known historical
oddity. This moves us closer to a single implementation behind them.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47066">bpo-47066</a>: Global inline flags (e.g. <code class="docutils literal notranslate"><span class="pre">(?i)</span></code>) can now only be used at the
start of the regular expressions. Using them not at the start of
expression was deprecated since Python 3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39394">bpo-39394</a>: A warning about inline flags not at the start of the regular
expression now contains the position of the flag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=433030">bpo-433030</a>: Add support of atomic grouping (<code class="docutils literal notranslate"><span class="pre">(?>...)</span></code>) and possessive
quantifiers (<code class="docutils literal notranslate"><span class="pre">*+</span></code>, <code class="docutils literal notranslate"><span class="pre">++</span></code>, <code class="docutils literal notranslate"><span class="pre">?+</span></code>, <code class="docutils literal notranslate"><span class="pre">{m,n}+</span></code>) in <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">regular</span>
<span class="pre">expressions</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47062">bpo-47062</a>: Implement <a class="reference internal" href="../library/asyncio-runner.html#asyncio.Runner" title="asyncio.Runner"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Runner</span></code></a> context manager.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46382">bpo-46382</a>: <a class="reference internal" href="../library/dataclasses.html#dataclasses.dataclass" title="dataclasses.dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclass()</span></code></a> <code class="docutils literal notranslate"><span class="pre">slots=True</span></code> now correctly
omits slots already defined in base classes. Patch by Arie Bovenberg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47057">bpo-47057</a>: Use FASTCALL convention for <code class="docutils literal notranslate"><span class="pre">FutureIter.throw()</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47061">bpo-47061</a>: Deprecate the various modules listed by <span class="target" id="index-192"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>:</p>
<p>aifc, asynchat, asyncore, audioop, cgi, cgitb, chunk, crypt, imghdr,
msilib, nntplib, nis, ossaudiodev, pipes, smtpd, sndhdr, spwd, sunau,
telnetlib, uu, xdrlib</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34790">bpo-34790</a>: Remove passing coroutine objects to <a class="reference internal" href="../library/asyncio-task.html#asyncio.wait" title="asyncio.wait"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.wait()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47039">bpo-47039</a>: Normalize <code class="docutils literal notranslate"><span class="pre">repr()</span></code> of asyncio future and task objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2604">bpo-2604</a>: Fix bug where doctests using globals would fail when run
multiple times.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45150">bpo-45150</a>: Add <a class="reference internal" href="../library/hashlib.html#hashlib.file_digest" title="hashlib.file_digest"><code class="xref py py-func docutils literal notranslate"><span class="pre">hashlib.file_digest()</span></code></a> helper for efficient hashing of
file object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34861">bpo-34861</a>: Made cumtime the default sorting key for cProfile</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45997">bpo-45997</a>: Fix <a class="reference internal" href="../library/asyncio-sync.html#asyncio.Semaphore" title="asyncio.Semaphore"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Semaphore</span></code></a> re-aquiring FIFO order.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47022">bpo-47022</a>: The <code class="xref py py-mod docutils literal notranslate"><span class="pre">asynchat</span></code>, <code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncore</span></code> and <code class="xref py py-mod docutils literal notranslate"><span class="pre">smtpd</span></code>
modules have been deprecated since at least Python 3.6. Their
documentation and deprecation warnings and have now been updated to note
they will removed in Python 3.12 (<span class="target" id="index-193"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43253">bpo-43253</a>: Fix a crash when closing transports where the underlying socket
handle is already invalid on the Proactor event loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: <a class="reference internal" href="../library/select.html#select.select" title="select.select"><code class="xref py py-func docutils literal notranslate"><span class="pre">select.select()</span></code></a> now passes <code class="docutils literal notranslate"><span class="pre">NULL</span></code> to <code class="docutils literal notranslate"><span class="pre">select</span></code> for
each empty fdset.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47004">bpo-47004</a>: Apply bugfixes from importlib_metadata 4.11.3, including bugfix
for EntryPoint.extras, which was returning match objects and not the
extras strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46998">bpo-46998</a>: Allow subclassing of <a class="reference internal" href="../library/typing.html#typing.Any" title="typing.Any"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Any</span></code></a>. Patch by Shantanu
Jain.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46995">bpo-46995</a>: Deprecate missing <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.set_name" title="asyncio.Task.set_name"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Task.set_name()</span></code></a> for third-party
task implementations, schedule making it mandatory in Python 3.13.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46994">bpo-46994</a>: Accept explicit contextvars.Context in
<a class="reference internal" href="../library/asyncio-task.html#asyncio.create_task" title="asyncio.create_task"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.create_task()</span></code></a> and <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.create_task" title="asyncio.loop.create_task"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.create_task()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46981">bpo-46981</a>: <code class="docutils literal notranslate"><span class="pre">typing.get_args(typing.Tuple[()])</span></code> now returns <code class="docutils literal notranslate"><span class="pre">()</span></code>
instead of <code class="docutils literal notranslate"><span class="pre">((),)</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46968">bpo-46968</a>: Add <code class="docutils literal notranslate"><span class="pre">os.sysconf_names['SC_MINSIGSTKSZ']</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46985">bpo-46985</a>: Upgrade pip wheel bundled with ensurepip (pip 22.0.4)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46968">bpo-46968</a>: <a class="reference internal" href="../library/faulthandler.html#module-faulthandler" title="faulthandler: Dump the Python traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">faulthandler</span></code></a>: On Linux 5.14 and newer, dynamically
determine size of signal handler stack size CPython allocates using
<code class="docutils literal notranslate"><span class="pre">getauxval(AT_MINSIGSTKSZ)</span></code>. This changes allows for Python extension’s
request to Linux kernel to use AMX_TILE instruction set on Sapphire Rapids
Xeon processor to succeed, unblocking use of the ISA in frameworks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46917">bpo-46917</a>: The <a class="reference internal" href="../library/math.html#math.nan" title="math.nan"><code class="xref py py-data docutils literal notranslate"><span class="pre">math.nan</span></code></a> value is now always available. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46955">bpo-46955</a>: Expose <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.base_events.Server</span></code> as
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.Server" title="asyncio.Server"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Server</span></code></a>. Patch by Stefan Zabka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23325">bpo-23325</a>: The <a class="reference internal" href="../library/signal.html#module-signal" title="signal: Set handlers for asynchronous events."><code class="xref py py-mod docutils literal notranslate"><span class="pre">signal</span></code></a> module no longer assumes that
<a class="reference internal" href="../library/signal.html#signal.SIG_IGN" title="signal.SIG_IGN"><code class="xref py py-const docutils literal notranslate"><span class="pre">SIG_IGN</span></code></a> and <a class="reference internal" href="../library/signal.html#signal.SIG_DFL" title="signal.SIG_DFL"><code class="xref py py-const docutils literal notranslate"><span class="pre">SIG_DFL</span></code></a> are small int
singletons.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46932">bpo-46932</a>: Update bundled libexpat to 2.4.7</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46933">bpo-46933</a>: The <a class="reference internal" href="../library/pwd.html#module-pwd" title="pwd: The password database (getpwnam() and friends). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pwd</span></code></a> module is now optional.
<a class="reference internal" href="../library/os.path.html#os.path.expanduser" title="os.path.expanduser"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.expanduser()</span></code></a> returns the path when the <a class="reference internal" href="../library/pwd.html#module-pwd" title="pwd: The password database (getpwnam() and friends). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pwd</span></code></a> module is
not available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40059">bpo-40059</a>: <span class="target" id="index-194"></span><a class="pep reference external" href="https://peps.python.org/pep-0680/"><strong>PEP 680</strong></a>, the <a class="reference internal" href="../library/tomllib.html#module-tomllib" title="tomllib: Parse TOML files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tomllib</span></code></a> module. Adds support for parsing
TOML.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=464471">bpo-464471</a>: <a class="reference internal" href="../library/asyncio-task.html#asyncio.timeout" title="asyncio.timeout"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.timeout()</span></code></a> and <a class="reference internal" href="../library/asyncio-task.html#asyncio.timeout_at" title="asyncio.timeout_at"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.timeout_at()</span></code></a> context
managers added. Patch by Tin Tvrtković and Andrew Svetlov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46805">bpo-46805</a>: Added raw datagram socket functions for asyncio:
<code class="xref py py-meth docutils literal notranslate"><span class="pre">sock_sendto()</span></code>,
<code class="xref py py-meth docutils literal notranslate"><span class="pre">sock_recvfrom()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">sock_recvfrom_into()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46644">bpo-46644</a>: No longer require valid typeforms to be callable. This allows
<a class="reference internal" href="../library/typing.html#typing.Annotated" title="typing.Annotated"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Annotated</span></code></a> to wrap <a class="reference internal" href="../library/typing.html#typing.ParamSpecArgs" title="typing.ParamSpecArgs"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.ParamSpecArgs</span></code></a> and
<a class="reference internal" href="../library/dataclasses.html#dataclasses.InitVar" title="dataclasses.InitVar"><code class="xref py py-data docutils literal notranslate"><span class="pre">dataclasses.InitVar</span></code></a>. Patch by Gregory Beauregard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46581">bpo-46581</a>: Brings <code class="xref py py-class docutils literal notranslate"><span class="pre">ParamSpec</span></code> propagation for <code class="xref py py-class docutils literal notranslate"><span class="pre">GenericAlias</span></code>
in line with <code class="xref py py-class docutils literal notranslate"><span class="pre">Concatenate</span></code> (and others).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45413">bpo-45413</a>: Define <em>posix_venv</em> and <em>nt_venv</em> <a class="reference internal" href="../library/sysconfig.html#installation-paths"><span class="std std-ref">sysconfig installation
schemes</span></a> to be used for bootstrapping new virtual
environments. Add <em>venv</em> sysconfig installation scheme to get the
appropriate one of the above. The schemes are identical to the
pre-existing <em>posix_prefix</em> and <em>nt</em> install schemes. The <a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a>
module now uses the <em>venv</em> scheme to create new virtual environments
instead of hardcoding the paths depending only on the platform. Downstream
Python distributors customizing the <em>posix_prefix</em> or <em>nt</em> install scheme
in a way that is not compatible with the install scheme used in virtual
environments are encouraged not to customize the <em>venv</em> schemes. When
Python itself runs in a virtual environment,
<a class="reference internal" href="../library/sysconfig.html#sysconfig.get_default_scheme" title="sysconfig.get_default_scheme"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_default_scheme()</span></code></a> and
<a class="reference internal" href="../library/sysconfig.html#sysconfig.get_preferred_scheme" title="sysconfig.get_preferred_scheme"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_preferred_scheme()</span></code></a> with <code class="docutils literal notranslate"><span class="pre">key="prefix"</span></code> returns
<em>venv</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43224">bpo-43224</a>: Implement support for PEP 646 in typing.py.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43224">bpo-43224</a>: Allow unpacking types.GenericAlias objects, e.g. <code class="docutils literal notranslate"><span class="pre">*tuple[int,</span>
<span class="pre">str]</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46557">bpo-46557</a>: Warnings captured by the logging module are now logged without
a format string to prevent systems that group logs by the msg argument
from grouping captured warnings together.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41370">bpo-41370</a>: <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> now supports evaluating strings
as forward references in <a class="reference internal" href="../library/stdtypes.html#types-genericalias"><span class="std std-ref">PEP 585 generic aliases</span></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46607">bpo-46607</a>: Add <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> to <code class="xref py py-class docutils literal notranslate"><span class="pre">LegacyInterpolation</span></code>,
deprecated in the docstring since Python 3.2. Will be removed in Python
3.13. Use <code class="xref py py-class docutils literal notranslate"><span class="pre">BasicInterpolation</span></code> or <code class="xref py py-class docutils literal notranslate"><span class="pre">ExtendedInterpolation</span></code>
instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26120">bpo-26120</a>: <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a> now excludes __future__ imports from the module’s
data items.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46480">bpo-46480</a>: Add <a class="reference internal" href="../library/typing.html#typing.assert_type" title="typing.assert_type"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.assert_type()</span></code></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46421">bpo-46421</a>: Fix a unittest issue where if the command was invoked as
<code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">unittest</span></code> and the filename(s) began with a dot (.), a
<code class="docutils literal notranslate"><span class="pre">ValueError</span></code> is returned.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46245">bpo-46245</a>: Add optional parameter <em>dir_fd</em> in <a class="reference internal" href="../library/shutil.html#shutil.rmtree" title="shutil.rmtree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22859">bpo-22859</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestProgram.usageExit()</span></code> is marked as
deprecated, to be removed in Python 3.13.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46170">bpo-46170</a>: Improve the error message when you try to subclass an instance
of <a class="reference internal" href="../library/typing.html#typing.NewType" title="typing.NewType"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NewType</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40296">bpo-40296</a>: Fix supporting generic aliases in <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20392">bpo-20392</a>: Fix inconsistency with uppercase file extensions in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">MimeTypes.guess_type()</span></code>. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46030">bpo-46030</a>: Add <code class="docutils literal notranslate"><span class="pre">LOCAL_CREDS</span></code>, <code class="docutils literal notranslate"><span class="pre">LOCAL_CREDS_PERSISTENT</span></code> and
<code class="docutils literal notranslate"><span class="pre">SCM_CREDS2</span></code> FreeBSD constants to the socket module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44439">bpo-44439</a>: Fix <code class="docutils literal notranslate"><span class="pre">.write()</span></code> method of a member file in <code class="docutils literal notranslate"><span class="pre">ZipFile</span></code>, when
the input data is an object that supports the buffer protocol, the file
length may be wrong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45171">bpo-45171</a>: Fix handling of the <code class="docutils literal notranslate"><span class="pre">stacklevel</span></code> argument to logging
functions in the <a class="reference internal" href="../library/logging.html#module-logging" title="logging: Flexible event logging system for applications."><code class="xref py py-mod docutils literal notranslate"><span class="pre">logging</span></code></a> module so that it is consistent across all
logging functions and, as advertised, similar to the <code class="docutils literal notranslate"><span class="pre">stacklevel</span></code>
argument used in <a class="reference internal" href="../library/warnings.html#warnings.warn" title="warnings.warn"><code class="xref py py-meth docutils literal notranslate"><span class="pre">warn()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24959">bpo-24959</a>: Fix bug where <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> sometimes drops frames from
tracebacks of exceptions raised in tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44859">bpo-44859</a>: Raise more accurate and <span class="target" id="index-195"></span><a class="pep reference external" href="https://peps.python.org/pep-0249/"><strong>PEP 249</strong></a> compatible exceptions in
<a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>.</p>
<ul class="simple">
<li><p>Raise <a class="reference internal" href="../library/sqlite3.html#sqlite3.InterfaceError" title="sqlite3.InterfaceError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InterfaceError</span></code></a> instead of
<a class="reference internal" href="../library/sqlite3.html#sqlite3.ProgrammingError" title="sqlite3.ProgrammingError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ProgrammingError</span></code></a> for <code class="docutils literal notranslate"><span class="pre">SQLITE_MISUSE</span></code> errors.</p></li>
<li><p>Don’t overwrite <a class="reference internal" href="../library/exceptions.html#BufferError" title="BufferError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BufferError</span></code></a> with <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> when conversion to
BLOB fails.</p></li>
<li><p>Raise <a class="reference internal" href="../library/sqlite3.html#sqlite3.ProgrammingError" title="sqlite3.ProgrammingError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ProgrammingError</span></code></a> instead of <a class="reference internal" href="../library/sqlite3.html#sqlite3.Warning" title="sqlite3.Warning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">Warning</span></code></a> if
user tries to <a class="reference internal" href="../library/sqlite3.html#sqlite3.Cursor.execute" title="sqlite3.Cursor.execute"><code class="xref py py-meth docutils literal notranslate"><span class="pre">execute()</span></code></a> more than one SQL statement.</p></li>
<li><p>Raise <a class="reference internal" href="../library/sqlite3.html#sqlite3.ProgrammingError" title="sqlite3.ProgrammingError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ProgrammingError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> if an SQL
query contains null characters.</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44493">bpo-44493</a>: Add missing terminated NUL in sockaddr_un’s length</p>
<p>This was potentially observable when using non-abstract AF_UNIX datagram
sockets to processes written in another programming language.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41930">bpo-41930</a>: Add <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.serialize" title="sqlite3.Connection.serialize"><code class="xref py py-meth docutils literal notranslate"><span class="pre">serialize()</span></code></a> and
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.deserialize" title="sqlite3.Connection.deserialize"><code class="xref py py-meth docutils literal notranslate"><span class="pre">deserialize()</span></code></a> support to <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>. Patch
by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33178">bpo-33178</a>: Added <a class="reference internal" href="../library/ctypes.html#ctypes.BigEndianUnion" title="ctypes.BigEndianUnion"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.BigEndianUnion</span></code></a> and
<a class="reference internal" href="../library/ctypes.html#ctypes.LittleEndianUnion" title="ctypes.LittleEndianUnion"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.LittleEndianUnion</span></code></a> classes, as originally documented in the
library docs but not yet implemented.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43352">bpo-43352</a>: Add an Barrier object in synchronization primitives of
<em>asyncio</em> Lib in order to be consistent with Barrier from <em>threading</em> and
<em>multiprocessing</em> libs*</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35859">bpo-35859</a>: <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> module, fix a few bugs about capturing group. In rare
cases, capturing group gets an incorrect string. Patch by Ma Lin.</p></li>
</ul>
</section>
<section id="id270">
<h3>Documentation<a class="headerlink" href="#id270" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45099">bpo-45099</a>: Document internal <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47126">bpo-47126</a>: Update PEP URLs to <span class="target" id="index-196"></span><a class="pep reference external" href="https://peps.python.org/pep-0676/"><strong>PEP 676</strong></a>’s new canonical form.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47040">bpo-47040</a>: Clarified the old Python versions compatibility note of
<a class="reference internal" href="../library/binascii.html#binascii.crc32" title="binascii.crc32"><code class="xref py py-func docutils literal notranslate"><span class="pre">binascii.crc32()</span></code></a> / <a class="reference internal" href="../library/zlib.html#zlib.adler32" title="zlib.adler32"><code class="xref py py-func docutils literal notranslate"><span class="pre">zlib.adler32()</span></code></a> / <a class="reference internal" href="../library/zlib.html#zlib.crc32" title="zlib.crc32"><code class="xref py py-func docutils literal notranslate"><span class="pre">zlib.crc32()</span></code></a>
functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46033">bpo-46033</a>: Clarify <code class="docutils literal notranslate"><span class="pre">for</span></code> statement execution in its doc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45790">bpo-45790</a>: Adjust inaccurate phrasing in
<a class="reference internal" href="../extending/newtypes_tutorial.html"><span class="doc">Defining Extension Types: Tutorial</span></a> about the <code class="docutils literal notranslate"><span class="pre">ob_base</span></code> field and the
macros used to access its contents.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42340">bpo-42340</a>: Document that in some circumstances <a class="reference internal" href="../library/exceptions.html#KeyboardInterrupt" title="KeyboardInterrupt"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyboardInterrupt</span></code></a>
may cause the code to enter an inconsistent state. Provided a sample
workaround to avoid it if needed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41233">bpo-41233</a>: Link the errnos referenced in <code class="docutils literal notranslate"><span class="pre">Doc/library/exceptions.rst</span></code> to
their respective section in <code class="docutils literal notranslate"><span class="pre">Doc/library/errno.rst</span></code>, and vice versa.
Previously this was only done for EINTR and InterruptedError. Patch by Yan
“yyyyyyyan” Orestes.</p></li>
</ul>
</section>
<section id="id271">
<h3>Tests<a class="headerlink" href="#id271" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47205">bpo-47205</a>: Skip test for <a class="reference internal" href="../library/os.html#os.sched_getaffinity" title="os.sched_getaffinity"><code class="xref py py-func docutils literal notranslate"><span class="pre">sched_getaffinity()</span></code></a> and
<a class="reference internal" href="../library/os.html#os.sched_setaffinity" title="os.sched_setaffinity"><code class="xref py py-func docutils literal notranslate"><span class="pre">sched_setaffinity()</span></code></a> error case on FreeBSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46126">bpo-46126</a>: Restore ‘descriptions’ when running tests internally.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47104">bpo-47104</a>: Rewrite <a class="reference internal" href="../library/asyncio-task.html#asyncio.to_thread" title="asyncio.to_thread"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.to_thread()</span></code></a> tests to use
<a class="reference internal" href="../library/unittest.html#unittest.IsolatedAsyncioTestCase" title="unittest.IsolatedAsyncioTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.IsolatedAsyncioTestCase</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: The test suite is now passing on the Emscripten platform. All
fork, socket, and subprocess-based tests are skipped.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47037">bpo-47037</a>: Skip <code class="docutils literal notranslate"><span class="pre">strftime("%4Y")</span></code> feature test on Windows. It can cause
an assertion error in debug builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46587">bpo-46587</a>: Skip tests if platform’s <code class="docutils literal notranslate"><span class="pre">strftime</span></code> does not support
non-portable glibc extensions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47015">bpo-47015</a>: A test case for <a class="reference internal" href="../library/os.html#os.sendfile" title="os.sendfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.sendfile()</span></code></a> is converted from
deprecated <code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncore</span></code> (see <span class="target" id="index-197"></span><a class="pep reference external" href="https://peps.python.org/pep-0594/"><strong>PEP 594</strong></a>) to <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>. Patch by
Oleg Iarygin.</p></li>
</ul>
</section>
<section id="id272">
<h3>Build<a class="headerlink" href="#id272" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: Add configure option <a class="reference internal" href="../using/configure.html#cmdoption-enable-wasm-dynamic-linking"><code class="xref std std-option docutils literal notranslate"><span class="pre">--enable-wasm-dynamic-linking</span></code></a> to
enable <code class="docutils literal notranslate"><span class="pre">dlopen</span></code> and MAIN_MODULE / SIDE_MODULE on <code class="docutils literal notranslate"><span class="pre">wasm32-emscripten</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46023">bpo-46023</a>: <code class="docutils literal notranslate"><span class="pre">makesetup</span></code> now detects and skips all duplicated module
definitions. The first entry wins.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: Add SOABI <code class="docutils literal notranslate"><span class="pre">wasm32-emscripten</span></code> for Emscripten and
<code class="docutils literal notranslate"><span class="pre">wasm32-wasi</span></code> for WASI on 32bit WASM as well as <code class="docutils literal notranslate"><span class="pre">wasm64</span></code> counter
parts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47032">bpo-47032</a>: Ensure Windows install builds fail correctly with a non-zero
exit code when part of the build fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47024">bpo-47024</a>: Update OpenSSL to 1.1.1n for macOS installers and all Windows
builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46996">bpo-46996</a>: The <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> package now requires Tcl/Tk version 8.5.12
or newer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46973">bpo-46973</a>: Add <code class="docutils literal notranslate"><span class="pre">regen-configure</span></code> make target to regenerate configure
script with Christian’s container image
<code class="docutils literal notranslate"><span class="pre">quay.io/tiran/cpython_autoconf:269</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46917">bpo-46917</a>: Building Python now requires support of IEEE 754 floating-point
numbers. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45774">bpo-45774</a>: <code class="docutils literal notranslate"><span class="pre">configure</span></code> now verifies that all SQLite C APIs needed for
the <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> extension module are found.</p></li>
</ul>
</section>
<section id="id273">
<h3>Windows<a class="headerlink" href="#id273" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47194">bpo-47194</a>: Update <code class="docutils literal notranslate"><span class="pre">zlib</span></code> to v1.2.12 to resolve <span class="target" id="index-198"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2018-25032"><strong>CVE 2018-25032</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47171">bpo-47171</a>: Enables installing the <code class="file docutils literal notranslate"><span class="pre">py.exe</span></code> launcher on Windows
ARM64.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46566">bpo-46566</a>: Upgraded <a class="reference internal" href="../using/windows.html#launcher"><span class="std std-ref">Python Install Manager</span></a> to support a new <code class="docutils literal notranslate"><span class="pre">-V:company/tag</span></code>
argument for full <span class="target" id="index-199"></span><a class="pep reference external" href="https://peps.python.org/pep-0514/"><strong>PEP 514</strong></a> support and to detect ARM64 installs. The
<code class="docutils literal notranslate"><span class="pre">-64</span></code> suffix on arguments is deprecated, but still selects any
non-32-bit install. Setting <span class="target" id="index-200"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYLAUNCHER_ALLOW_INSTALL</span></code> and
specifying a version that is not installed will attempt to install the
requested version from the Microsoft Store.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=47086">bpo-47086</a>: The installer for Windows now includes documentation as loose
HTML files rather than a single compiled <code class="file docutils literal notranslate"><span class="pre">.chm</span></code> file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46907">bpo-46907</a>: Update Windows installer to use SQLite 3.38.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44549">bpo-44549</a>: Update bzip2 to 1.0.8 in Windows builds to mitigate
<span class="target" id="index-201"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-3189"><strong>CVE 2016-3189</strong></a> and <span class="target" id="index-202"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2019-12900"><strong>CVE 2019-12900</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46948">bpo-46948</a>: Prevent <span class="target" id="index-203"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2022-26488"><strong>CVE 2022-26488</strong></a> by ensuring the Add to PATH option in
the Windows installer uses the correct path when being repaired.</p></li>
</ul>
</section>
<section id="id274">
<h3>macOS<a class="headerlink" href="#id274" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46890">bpo-46890</a>: Fix a regression in the setting of <code class="docutils literal notranslate"><span class="pre">sys._base_executable</span></code> in
framework builds, and thereby fix a regression in <a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a> virtual
environments with such builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46907">bpo-46907</a>: Update macOS installer to SQLite 3.38.1.</p></li>
</ul>
</section>
<section id="id275">
<h3>Tools/Demos<a class="headerlink" href="#id275" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: Replace Emscripten’s limited shell with Katie Bell’s browser-ui
REPL from python-wasm project.</p></li>
</ul>
</section>
<section id="id276">
<h3>C API<a class="headerlink" href="#id276" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40421">bpo-40421</a>: Add <code class="docutils literal notranslate"><span class="pre">PyFrame_GetBuiltins</span></code>, <code class="docutils literal notranslate"><span class="pre">PyFrame_GetGenerator</span></code> and
<code class="docutils literal notranslate"><span class="pre">PyFrame_GetGlobals</span></code> C-API functions to access frame object attributes
safely from C code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46850">bpo-46850</a>: Move the private <code class="docutils literal notranslate"><span class="pre">_PyFrameEvalFunction</span></code> type, and private
<code class="docutils literal notranslate"><span class="pre">_PyInterpreterState_GetEvalFrameFunc()</span></code> and
<code class="docutils literal notranslate"><span class="pre">_PyInterpreterState_SetEvalFrameFunc()</span></code> functions to the internal C
API. The <code class="docutils literal notranslate"><span class="pre">_PyFrameEvalFunction</span></code> callback function type now uses the
<code class="docutils literal notranslate"><span class="pre">_PyInterpreterFrame</span></code> type which is part of the internal C API. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46850">bpo-46850</a>: Move the private undocumented <code class="docutils literal notranslate"><span class="pre">_PyEval_EvalFrameDefault()</span></code>
function to the internal C API. The function now uses the
<code class="docutils literal notranslate"><span class="pre">_PyInterpreterFrame</span></code> type which is part of the internal C API. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46850">bpo-46850</a>: Remove the private undocumented function
<code class="docutils literal notranslate"><span class="pre">_PyEval_CallTracing()</span></code> from the C API. Call the public
<a class="reference internal" href="../library/sys.html#sys.call_tracing" title="sys.call_tracing"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.call_tracing()</span></code></a> function instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46850">bpo-46850</a>: Remove the private undocumented function
<code class="docutils literal notranslate"><span class="pre">_PyEval_GetCoroutineOriginTrackingDepth()</span></code> from the C API. Call the
public <a class="reference internal" href="../library/sys.html#sys.get_coroutine_origin_tracking_depth" title="sys.get_coroutine_origin_tracking_depth"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.get_coroutine_origin_tracking_depth()</span></code></a> function instead.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46850">bpo-46850</a>: Remove the following private undocumented functions from the C
API:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">_PyEval_GetAsyncGenFirstiter()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_PyEval_GetAsyncGenFinalizer()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_PyEval_SetAsyncGenFirstiter()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_PyEval_SetAsyncGenFinalizer()</span></code></p></li>
</ul>
<p>Call the public <a class="reference internal" href="../library/sys.html#sys.get_asyncgen_hooks" title="sys.get_asyncgen_hooks"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.get_asyncgen_hooks()</span></code></a> and
<a class="reference internal" href="../library/sys.html#sys.set_asyncgen_hooks" title="sys.set_asyncgen_hooks"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.set_asyncgen_hooks()</span></code></a> functions instead. Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46987">bpo-46987</a>: Remove private functions <code class="docutils literal notranslate"><span class="pre">_PySys_GetObjectId()</span></code> and
<code class="docutils literal notranslate"><span class="pre">_PySys_SetObjectId()</span></code>. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46906">bpo-46906</a>: Add new functions to pack and unpack C double (serialize and
deserialize): <a class="reference internal" href="../c-api/float.html#c.PyFloat_Pack2" title="PyFloat_Pack2"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFloat_Pack2()</span></code></a>, <a class="reference internal" href="../c-api/float.html#c.PyFloat_Pack4" title="PyFloat_Pack4"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFloat_Pack4()</span></code></a>,
<a class="reference internal" href="../c-api/float.html#c.PyFloat_Pack8" title="PyFloat_Pack8"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFloat_Pack8()</span></code></a>, <a class="reference internal" href="../c-api/float.html#c.PyFloat_Unpack2" title="PyFloat_Unpack2"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFloat_Unpack2()</span></code></a>,
<a class="reference internal" href="../c-api/float.html#c.PyFloat_Unpack4" title="PyFloat_Unpack4"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFloat_Unpack4()</span></code></a> and <a class="reference internal" href="../c-api/float.html#c.PyFloat_Unpack8" title="PyFloat_Unpack8"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFloat_Unpack8()</span></code></a>. Patch by Victor
Stinner.</p></li>
</ul>
</section>
</section>
<section id="python-3-11-0-alpha-6">
<h2>Python 3.11.0 alpha 6<a class="headerlink" href="#python-3-11-0-alpha-6" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2022-03-07</em></p>
<section id="id277">
<h3>Core and Builtins<a class="headerlink" href="#id277" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46940">bpo-46940</a>: Avoid overriding <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> metadata information for
nested attribute access calls. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46927">bpo-46927</a>: Include the type’s name in the error message for subscripting
non-generic types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46921">bpo-46921</a>: Support vectorcall for <code class="docutils literal notranslate"><span class="pre">super()</span></code>. Patch by Ken Jin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Fix incorrect handling of inline cache entries when
specializing <a class="reference internal" href="../library/dis.html#opcode-BINARY_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">BINARY_OP</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Use an oparg to simplify the construction of helpful error
messages in <a class="reference internal" href="../library/dis.html#opcode-GET_AWAITABLE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">GET_AWAITABLE</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46903">bpo-46903</a>: Make sure that str subclasses can be used as attribute names
for instances with virtual dictionaries. Fixes regression in 3.11alpha</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Add more detailed specialization failure stats for
<a class="reference internal" href="../library/dis.html#opcode-COMPARE_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">COMPARE_OP</span></code></a> followed by <a class="reference internal" href="../library/dis.html#opcode-EXTENDED_ARG"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">EXTENDED_ARG</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46891">bpo-46891</a>: Fix bug introduced during 3.11alpha where subclasses of
<code class="docutils literal notranslate"><span class="pre">types.ModuleType</span></code> with <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> were not initialized correctly,
resulting in an interpreter crash.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Use inline caching for <a class="reference internal" href="../library/dis.html#opcode-LOAD_ATTR"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_ATTR</span></code></a>,
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_METHOD</span></code>, and <a class="reference internal" href="../library/dis.html#opcode-STORE_ATTR"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">STORE_ATTR</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Use inline cache for <code class="xref std std-opcode docutils literal notranslate"><span class="pre">BINARY_SUBSCR</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Use inline caching for <a class="reference internal" href="../library/dis.html#opcode-COMPARE_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">COMPARE_OP</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46864">bpo-46864</a>: Deprecate <code class="docutils literal notranslate"><span class="pre">PyBytesObject.ob_shash</span></code>. It will be removed in
Python 3.13.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Use inline caching for <a class="reference internal" href="../library/dis.html#opcode-UNPACK_SEQUENCE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">UNPACK_SEQUENCE</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46845">bpo-46845</a>: Reduces dict size by removing hash value from hash table when
all inserted keys are Unicode. For example,
<code class="docutils literal notranslate"><span class="pre">sys.getsizeof(dict.fromkeys("abcdefg"))</span></code> becomes 272 bytes from 352
bytes on 64bit platform.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Use inline cache for <a class="reference internal" href="../library/dis.html#opcode-LOAD_GLOBAL"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_GLOBAL</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46852">bpo-46852</a>: Rename the private undocumented <code class="docutils literal notranslate"><span class="pre">float.__set_format__()</span></code>
method to <code class="docutils literal notranslate"><span class="pre">float.__setformat__()</span></code> to fix a typo introduced in Python
3.7. The method is only used by test_float. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46852">bpo-46852</a>: Remove the undocumented private <code class="docutils literal notranslate"><span class="pre">float.__set_format__()</span></code>
method, previously known as <code class="docutils literal notranslate"><span class="pre">float.__setformat__()</span></code> in Python 3.7. Its
docstring said: “You probably don’t want to use this function. It exists
mainly to be used in Python’s test suite.” Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40116">bpo-40116</a>: Fix regression that dict.update(other) may don’t respect
iterate order of other when other is key sharing dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46712">bpo-46712</a>: Share global string identifiers in deep-frozen modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46430">bpo-46430</a>: Fix memory leak in interned strings of deep-frozen modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46841">bpo-46841</a>: Store <a class="reference internal" href="../library/dis.html#opcode-BINARY_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">BINARY_OP</span></code></a> caches inline using a new
<a class="reference internal" href="../library/dis.html#opcode-CACHE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">CACHE</span></code></a> instruction.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45107">bpo-45107</a>: Specialize <code class="docutils literal notranslate"><span class="pre">LOAD_METHOD</span></code> for instances with a dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44337">bpo-44337</a>: Reduce the memory usage of specialized <a class="reference internal" href="../library/dis.html#opcode-LOAD_ATTR"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">LOAD_ATTR</span></code></a> and
<a class="reference internal" href="../library/dis.html#opcode-STORE_ATTR"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">STORE_ATTR</span></code></a> instructions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46729">bpo-46729</a>: Add number of sub-exceptions to <code class="xref py py-meth docutils literal notranslate"><span class="pre">BaseException.__str__()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45885">bpo-45885</a>: Don’t un-adapt <a class="reference internal" href="../library/dis.html#opcode-COMPARE_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">COMPARE_OP</span></code></a> when collecting
specialization stats.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46329">bpo-46329</a>: Fix specialization stats gathering for <code class="xref std std-opcode docutils literal notranslate"><span class="pre">PRECALL</span></code>
instructions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46794">bpo-46794</a>: Bump up the libexpat version into 2.4.6</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46823">bpo-46823</a>: Implement a specialized combined opcode
<code class="docutils literal notranslate"><span class="pre">LOAD_FAST__LOAD_ATTR_INSTANCE_VALUE</span></code>. Patch by Dennis Sweeney.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46820">bpo-46820</a>: Fix parsing a numeric literal immediately (without spaces)
followed by “not in” keywords, like in <code class="docutils literal notranslate"><span class="pre">1not</span> <span class="pre">in</span> <span class="pre">x</span></code>. Now the parser only
emits a warning, not a syntax error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46329">bpo-46329</a>: Move <code class="docutils literal notranslate"><span class="pre">KW_NAMES</span></code> before <code class="docutils literal notranslate"><span class="pre">PRECALL</span></code> instruction in call
sequence. Change <code class="docutils literal notranslate"><span class="pre">operand</span></code> of <code class="docutils literal notranslate"><span class="pre">CALL</span></code> to match <code class="docutils literal notranslate"><span class="pre">PRECALL</span></code> for easier
specialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46808">bpo-46808</a>: Remove the <code class="docutils literal notranslate"><span class="pre">NEXT_BLOCK</span></code> macro from compile.c, and make the
compiler automatically generate implicit blocks when they are needed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46329">bpo-46329</a>: Add <code class="docutils literal notranslate"><span class="pre">PUSH_NULL</span></code> instruction. This is used as a prefix when
evaluating a callable, so that the stack has the same shape for methods
and other calls. <code class="docutils literal notranslate"><span class="pre">PRECALL_FUNCTION</span></code> and <code class="docutils literal notranslate"><span class="pre">PRECALL_METHOD</span></code> are merged
into a single <code class="docutils literal notranslate"><span class="pre">PRECALL</span></code> instruction.</p>
<p>There is no change in semantics.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46762">bpo-46762</a>: Fix an assert failure in debug builds when a ‘<’, ‘>’, or ‘=’
is the last character in an f-string that’s missing a closing right brace.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46730">bpo-46730</a>: Message of AttributeError caused by getting, setting or
deleting a property without the corresponding function now mentions that
the attribute is in fact a property and also specifies type of the class
that it belongs to.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46724">bpo-46724</a>: Make sure that all backwards jumps use the <code class="docutils literal notranslate"><span class="pre">JUMP_ABSOLUTE</span></code>
instruction, rather than <code class="docutils literal notranslate"><span class="pre">JUMP_FORWARD</span></code> with an argument of
<code class="docutils literal notranslate"><span class="pre">(2**32)+offset</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46732">bpo-46732</a>: Correct the docstring for the <a class="reference internal" href="../reference/datamodel.html#object.__bool__" title="object.__bool__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__bool__()</span></code></a> method.
Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46072">bpo-46072</a>: Add more detailed specialization failure statistics for
<a class="reference internal" href="../library/dis.html#opcode-BINARY_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">BINARY_OP</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46707">bpo-46707</a>: Avoid potential exponential backtracking when producing some
syntax errors involving lots of brackets. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46323">bpo-46323</a>: <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> now allocates memory on the stack instead of on
the heap to pass arguments while calling a Python callback function. Patch
by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45923">bpo-45923</a>: Add a quickened form of <a class="reference internal" href="../library/dis.html#opcode-RESUME"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">RESUME</span></code></a> that skips quickening
checks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46702">bpo-46702</a>: Specialize <a class="reference internal" href="../library/dis.html#opcode-UNPACK_SEQUENCE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">UNPACK_SEQUENCE</span></code></a> for <a class="reference internal" href="../library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a> and
<a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> unpackings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46072">bpo-46072</a>: Opcode pair stats are now gathered with <code class="docutils literal notranslate"><span class="pre">--enable-pystats</span></code>.
Defining <code class="docutils literal notranslate"><span class="pre">DYNAMIC_EXECUTION_PROFILE</span></code> or <code class="docutils literal notranslate"><span class="pre">DXPAIRS</span></code> no longer has any
effect.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46675">bpo-46675</a>: Allow more than 16 items in a split dict before it is combined.
The limit is now 254.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40479">bpo-40479</a>: Add a missing call to <code class="docutils literal notranslate"><span class="pre">va_end()</span></code> in
<code class="docutils literal notranslate"><span class="pre">Modules/_hashopenssl.c</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46323">bpo-46323</a>: Use <a class="reference internal" href="../c-api/call.html#c.PyObject_Vectorcall" title="PyObject_Vectorcall"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_Vectorcall()</span></code></a> while calling ctypes callback
function. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46615">bpo-46615</a>: When iterating over sets internally in <code class="docutils literal notranslate"><span class="pre">setobject.c</span></code>, acquire
strong references to the resulting items from the set. This prevents
crashes in corner-cases of various set operations where the set gets
mutated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45828">bpo-45828</a>: The bytecode compiler now attempts to apply runtime stack
manipulations at compile-time (whenever it is feasible to do so).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30496">bpo-30496</a>: Fixed a minor portability issue in the implementation of
<a class="reference internal" href="../c-api/long.html#c.PyLong_FromLong" title="PyLong_FromLong"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromLong()</span></code></a>, and added a fast path for single-digit integers
to <a class="reference internal" href="../c-api/long.html#c.PyLong_FromLongLong" title="PyLong_FromLongLong"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromLongLong()</span></code></a>.</p></li>
</ul>
</section>
<section id="id278">
<h3>Library<a class="headerlink" href="#id278" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25707">bpo-25707</a>: Fixed a file leak in <a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.iterparse" title="xml.etree.ElementTree.iterparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">xml.etree.ElementTree.iterparse()</span></code></a>
when the iterator is not exhausted. Patch by Jacob Walls.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46877">bpo-46877</a>: Export <a class="reference internal" href="../library/unittest.html#unittest.doModuleCleanups" title="unittest.doModuleCleanups"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.doModuleCleanups()</span></code></a> in <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a>.
Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46848">bpo-46848</a>: For performance, use the optimized string-searching
implementations from <a class="reference internal" href="../library/stdtypes.html#bytes.find" title="bytes.find"><code class="xref py py-meth docutils literal notranslate"><span class="pre">find()</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytes.rfind" title="bytes.rfind"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rfind()</span></code></a> for
<code class="xref py py-meth docutils literal notranslate"><span class="pre">find()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">rfind()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46736">bpo-46736</a>: <a class="reference internal" href="../library/http.server.html#http.server.SimpleHTTPRequestHandler" title="http.server.SimpleHTTPRequestHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">SimpleHTTPRequestHandler</span></code></a> now uses HTML5
grammar. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44886">bpo-44886</a>: Inherit asyncio proactor datagram transport from
<a class="reference internal" href="../library/asyncio-protocol.html#asyncio.DatagramTransport" title="asyncio.DatagramTransport"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.DatagramTransport</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46827">bpo-46827</a>: Support UDP sockets in <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.sock_connect" title="asyncio.loop.sock_connect"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.sock_connect()</span></code></a> for
selector-based event loops. Patch by Thomas Grainger.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46811">bpo-46811</a>: Make test suite support Expat >=2.4.5</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46252">bpo-46252</a>: Raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> if <a class="reference internal" href="../library/ssl.html#ssl.SSLSocket" title="ssl.SSLSocket"><code class="xref py py-class docutils literal notranslate"><span class="pre">ssl.SSLSocket</span></code></a> is passed to
transport-based APIs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46784">bpo-46784</a>: Fix libexpat symbols collisions with user dynamically loaded or
statically linked libexpat in embedded Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46786">bpo-46786</a>: The HTML serialisation in xml.etree.ElementTree now writes
<code class="docutils literal notranslate"><span class="pre">embed</span></code>, <code class="docutils literal notranslate"><span class="pre">source</span></code>, <code class="docutils literal notranslate"><span class="pre">track</span></code> and <code class="docutils literal notranslate"><span class="pre">wbr</span></code> as empty tags, as defined in
HTML 5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39327">bpo-39327</a>: <a class="reference internal" href="../library/shutil.html#shutil.rmtree" title="shutil.rmtree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.rmtree()</span></code></a> can now work with VirtualBox shared
folders when running from the guest operating-system.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45390">bpo-45390</a>: Propagate <a class="reference internal" href="../library/asyncio-exceptions.html#asyncio.CancelledError" title="asyncio.CancelledError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">asyncio.CancelledError</span></code></a> message from inner task
to outer awaiter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46756">bpo-46756</a>: Fix a bug in
<a class="reference internal" href="../library/urllib.request.html#urllib.request.HTTPPasswordMgr.find_user_password" title="urllib.request.HTTPPasswordMgr.find_user_password"><code class="xref py py-meth docutils literal notranslate"><span class="pre">urllib.request.HTTPPasswordMgr.find_user_password()</span></code></a> and
<a class="reference internal" href="../library/urllib.request.html#urllib.request.HTTPPasswordMgrWithPriorAuth.is_authenticated" title="urllib.request.HTTPPasswordMgrWithPriorAuth.is_authenticated"><code class="xref py py-meth docutils literal notranslate"><span class="pre">urllib.request.HTTPPasswordMgrWithPriorAuth.is_authenticated()</span></code></a> which
allowed to bypass authorization. For example, access to URI
<code class="docutils literal notranslate"><span class="pre">example.org/foobar</span></code> was allowed if the user was authorized for URI
<code class="docutils literal notranslate"><span class="pre">example.org/foo</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46737">bpo-46737</a>: <a class="reference internal" href="../library/random.html#random.gauss" title="random.gauss"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.gauss()</span></code></a> and <a class="reference internal" href="../library/random.html#random.normalvariate" title="random.normalvariate"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.normalvariate()</span></code></a> now have
default arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46752">bpo-46752</a>: Add task groups to asyncio (structured concurrency, inspired by
Trio’s nurseries). This also introduces a change to task cancellation,
where a cancelled task can’t be cancelled again until it calls
.uncancel().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46724">bpo-46724</a>: Fix <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> behavior on negative jump offsets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46333">bpo-46333</a>: The <code class="xref py py-meth docutils literal notranslate"><span class="pre">__repr__()</span></code> method of <a class="reference internal" href="../library/typing.html#typing.ForwardRef" title="typing.ForwardRef"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ForwardRef</span></code></a> now
includes the <code class="docutils literal notranslate"><span class="pre">module</span></code> parameter of <a class="reference internal" href="../library/typing.html#typing.ForwardRef" title="typing.ForwardRef"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ForwardRef</span></code></a> when it is
set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46643">bpo-46643</a>: In <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a>, support evaluating
stringified <code class="docutils literal notranslate"><span class="pre">ParamSpecArgs</span></code> and <code class="docutils literal notranslate"><span class="pre">ParamSpecKwargs</span></code> annotations. Patch
by Gregory Beauregard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45863">bpo-45863</a>: When the <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> module creates a pax format archive, it
will put an integer representation of timestamps in the ustar header (if
possible) for the benefit of older unarchivers, in addition to the
existing full-precision timestamps in the pax extended header.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46066">bpo-46066</a>: Deprecate kwargs-based syntax for <a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypedDict</span></code></a>
definitions. It had confusing semantics when specifying totality, and was
largely unused. Patch by Jingchen Ye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46676">bpo-46676</a>: Make <a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.ParamSpec</span></code></a> args and kwargs equal to
themselves. Patch by Gregory Beauregard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46323">bpo-46323</a>: <code class="docutils literal notranslate"><span class="pre">ctypes.CFUNCTYPE()</span></code> and <code class="docutils literal notranslate"><span class="pre">ctypes.WINFUNCTYPE()</span></code> now fail to
create the type if its <code class="docutils literal notranslate"><span class="pre">_argtypes_</span></code> member contains too many arguments.
Previously, the error was only raised when calling a function. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46672">bpo-46672</a>: Fix <code class="docutils literal notranslate"><span class="pre">NameError</span></code> in <a class="reference internal" href="../library/asyncio-task.html#asyncio.gather" title="asyncio.gather"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.gather()</span></code></a> when initial type
check fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46659">bpo-46659</a>: The <a class="reference internal" href="../library/calendar.html#calendar.LocaleTextCalendar" title="calendar.LocaleTextCalendar"><code class="xref py py-class docutils literal notranslate"><span class="pre">calendar.LocaleTextCalendar</span></code></a> and
<a class="reference internal" href="../library/calendar.html#calendar.LocaleHTMLCalendar" title="calendar.LocaleHTMLCalendar"><code class="xref py py-class docutils literal notranslate"><span class="pre">calendar.LocaleHTMLCalendar</span></code></a> classes now use
<a class="reference internal" href="../library/locale.html#locale.getlocale" title="locale.getlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.getlocale()</span></code></a>, instead of using
<a class="reference internal" href="../library/locale.html#locale.getdefaultlocale" title="locale.getdefaultlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.getdefaultlocale()</span></code></a>, if no locale is specified. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46659">bpo-46659</a>: The <a class="reference internal" href="../library/locale.html#locale.getdefaultlocale" title="locale.getdefaultlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.getdefaultlocale()</span></code></a> function is deprecated and
will be removed in Python 3.13. Use <a class="reference internal" href="../library/locale.html#locale.setlocale" title="locale.setlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.setlocale()</span></code></a>,
<a class="reference internal" href="../library/locale.html#locale.getpreferredencoding" title="locale.getpreferredencoding"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.getpreferredencoding(False)</span></code></a>
and <a class="reference internal" href="../library/locale.html#locale.getlocale" title="locale.getlocale"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.getlocale()</span></code></a> functions instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46655">bpo-46655</a>: In <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a>, support evaluating bare
stringified <code class="docutils literal notranslate"><span class="pre">TypeAlias</span></code> annotations. Patch by Gregory Beauregard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45948">bpo-45948</a>: Fixed a discrepancy in the C implementation of the
<a class="reference internal" href="../library/xml.etree.elementtree.html#module-xml.etree.ElementTree" title="xml.etree.ElementTree: Implementation of the ElementTree API."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree.ElementTree</span></code></a> module. Now, instantiating an
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParser" title="xml.etree.ElementTree.XMLParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">xml.etree.ElementTree.XMLParser</span></code></a> with a <code class="docutils literal notranslate"><span class="pre">target=None</span></code> keyword
provides a default <a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder" title="xml.etree.ElementTree.TreeBuilder"><code class="xref py py-class docutils literal notranslate"><span class="pre">xml.etree.ElementTree.TreeBuilder</span></code></a> target as
the Python implementation does.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46626">bpo-46626</a>: Expose Linux’s <code class="docutils literal notranslate"><span class="pre">IP_BIND_ADDRESS_NO_PORT</span></code> option in
<a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46521">bpo-46521</a>: Fix a bug in the <a class="reference internal" href="../library/codeop.html#module-codeop" title="codeop: Compile (possibly incomplete) Python code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">codeop</span></code></a> module that was incorrectly
identifying invalid code involving string quotes as valid code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46571">bpo-46571</a>: Improve <a class="reference internal" href="../library/typing.html#typing.no_type_check" title="typing.no_type_check"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.no_type_check()</span></code></a>.</p>
<p>Now it does not modify external classes and functions. We also now
correctly mark classmethods as not to be type checked.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46400">bpo-46400</a>: expat: Update libexpat from 2.4.1 to 2.4.4</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46556">bpo-46556</a>: Deprecate undocumented support for using a
<a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> object as a context manager.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46534">bpo-46534</a>: Implement <span class="target" id="index-204"></span><a class="pep reference external" href="https://peps.python.org/pep-0673/"><strong>PEP 673</strong></a> <a class="reference internal" href="../library/typing.html#typing.Self" title="typing.Self"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Self</span></code></a>. Patch by James
Hilton-Balfe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46522">bpo-46522</a>: Make various module <code class="docutils literal notranslate"><span class="pre">__getattr__</span></code> AttributeErrors more
closely match a typical AttributeError</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46475">bpo-46475</a>: Add <a class="reference internal" href="../library/typing.html#typing.Never" title="typing.Never"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Never</span></code></a> and <a class="reference internal" href="../library/typing.html#typing.assert_never" title="typing.assert_never"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.assert_never()</span></code></a>. Patch
by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46333">bpo-46333</a>: The <code class="xref py py-meth docutils literal notranslate"><span class="pre">__eq__()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">__hash__()</span></code> methods of
<a class="reference internal" href="../library/typing.html#typing.ForwardRef" title="typing.ForwardRef"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ForwardRef</span></code></a> now honor the <code class="docutils literal notranslate"><span class="pre">module</span></code> parameter of
<a class="reference internal" href="../library/typing.html#typing.ForwardRef" title="typing.ForwardRef"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ForwardRef</span></code></a>. Forward references from different modules are
now differentiated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46246">bpo-46246</a>: Add missing <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> to
<code class="docutils literal notranslate"><span class="pre">importlib.metadata.DeprecatedList</span></code>. Patch by Arie Bovenberg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46232">bpo-46232</a>: The <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> module now handles certificates with bit strings
in DN correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46195">bpo-46195</a>: <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> no longer adds <code class="docutils literal notranslate"><span class="pre">Optional</span></code> to
parameters with <code class="docutils literal notranslate"><span class="pre">None</span></code> as a default. This aligns to changes to PEP 484
in <a class="reference external" href="https://github.com/python/peps/pull/689">https://github.com/python/peps/pull/689</a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31369">bpo-31369</a>: Add <a class="reference internal" href="../library/re.html#re.RegexFlag" title="re.RegexFlag"><code class="xref py py-class docutils literal notranslate"><span class="pre">RegexFlag</span></code></a> to <code class="docutils literal notranslate"><span class="pre">re.__all__</span></code> and documented it.
Add <code class="xref py py-data docutils literal notranslate"><span class="pre">NOFLAG</span></code> to indicate no flags being set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45898">bpo-45898</a>: <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> no longer defines <code class="docutils literal notranslate"><span class="pre">ffi_type_*</span></code> symbols in
<code class="docutils literal notranslate"><span class="pre">cfield.c</span></code>. The symbols have been provided by libffi for over a decade.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44953">bpo-44953</a>: Calling <code class="docutils literal notranslate"><span class="pre">operator.itemgetter</span></code> objects and
<code class="docutils literal notranslate"><span class="pre">operator.attrgetter</span></code> objects is now faster due to use of the vectorcall
calling convention.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44289">bpo-44289</a>: Fix an issue with <a class="reference internal" href="../library/tarfile.html#tarfile.is_tarfile" title="tarfile.is_tarfile"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_tarfile()</span></code></a> method when using
<em>fileobj</em> argument: position in the <em>fileobj</em> was advanced forward which
made it unreadable with <a class="reference internal" href="../library/tarfile.html#tarfile.TarFile.open" title="tarfile.TarFile.open"><code class="xref py py-meth docutils literal notranslate"><span class="pre">tarfile.TarFile.open()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44011">bpo-44011</a>: Reimplement SSL/TLS support in asyncio, borrow the
implementation from uvloop library.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41086">bpo-41086</a>: Make the <a class="reference internal" href="../library/configparser.html#configparser.ConfigParser" title="configparser.ConfigParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">configparser.ConfigParser</span></code></a> constructor raise
<a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> if the <code class="docutils literal notranslate"><span class="pre">interpolation</span></code> parameter is not of type
<code class="xref py py-class docutils literal notranslate"><span class="pre">configparser.Interpolation</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29418">bpo-29418</a>: Implement <a class="reference internal" href="../library/inspect.html#inspect.ismethodwrapper" title="inspect.ismethodwrapper"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.ismethodwrapper()</span></code></a> and fix
<a class="reference internal" href="../library/inspect.html#inspect.isroutine" title="inspect.isroutine"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.isroutine()</span></code></a> for cases where methodwrapper is given. Patch by
Hakan Çelik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14156">bpo-14156</a>: argparse.FileType now supports an argument of ‘-’ in binary
mode, returning the .buffer attribute of sys.stdin/sys.stdout as
appropriate. Modes including ‘x’ and ‘a’ are treated equivalently to ‘w’
when argument is ‘-’. Patch contributed by Josh Rosenberg</p></li>
</ul>
</section>
<section id="id279">
<h3>Documentation<a class="headerlink" href="#id279" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42238">bpo-42238</a>: <code class="docutils literal notranslate"><span class="pre">Doc/tools/rstlint.py</span></code> has moved to its own repository and is
now packaged on PyPI as <code class="docutils literal notranslate"><span class="pre">sphinx-lint</span></code>.</p></li>
</ul>
</section>
<section id="id280">
<h3>Tests<a class="headerlink" href="#id280" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46913">bpo-46913</a>: Fix test_faulthandler.test_sigfpe() if Python is built with
undefined behavior sanitizer (UBSAN): disable UBSAN on the
faulthandler_sigfpe() function. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46760">bpo-46760</a>: Remove bytecode offsets from expected values in test.test_dis
module. Reduces the obstacles to modifying the VM or compiler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46708">bpo-46708</a>: Prevent default asyncio event loop policy modification warning
after <code class="docutils literal notranslate"><span class="pre">test_asyncio</span></code> execution.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46678">bpo-46678</a>: The function <code class="docutils literal notranslate"><span class="pre">make_legacy_pyc</span></code> in
<code class="docutils literal notranslate"><span class="pre">Lib/test/support/import_helper.py</span></code> no longer fails when
<code class="docutils literal notranslate"><span class="pre">PYTHONPYCACHEPREFIX</span></code> is set to a directory on a different device from
where tempfiles are stored.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46623">bpo-46623</a>: Skip test_pair() and test_speech128() of test_zlib on s390x
since they fail if zlib uses the s390x hardware accelerator. Patch by
Victor Stinner.</p></li>
</ul>
</section>
<section id="id281">
<h3>Build<a class="headerlink" href="#id281" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46860">bpo-46860</a>: Respect <code class="docutils literal notranslate"><span class="pre">--with-suffix</span></code> when building on case-insensitive
file systems.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46656">bpo-46656</a>: Building Python now requires a C11 compiler. Optional C11
features are not required. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46656">bpo-46656</a>: Building Python now requires support for floating-point
Not-a-Number (NaN): remove the <code class="docutils literal notranslate"><span class="pre">Py_NO_NAN</span></code> macro. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46640">bpo-46640</a>: Building Python now requires a C99 <code class="docutils literal notranslate"><span class="pre"><math.h></span></code> header file
providing a <code class="docutils literal notranslate"><span class="pre">NAN</span></code> constant, or the <code class="docutils literal notranslate"><span class="pre">__builtin_nan()</span></code> built-in
function. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46608">bpo-46608</a>: Exclude marshalled-frozen data if deep-freezing to save 300 KB
disk space. This includes adding a new <code class="docutils literal notranslate"><span class="pre">is_package</span></code> field to
<a class="reference internal" href="../c-api/import.html#c._frozen" title="_frozen"><code class="xref c c-struct docutils literal notranslate"><span class="pre">_frozen</span></code></a>. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: Fix wasm32-emscripten test failures and platform issues. -
Disable syscalls that are not supported or don’t work, e.g. wait,
getrusage, prlimit, mkfifo, mknod, setres[gu]id, setgroups. - Use fd_count
to count open fds. - Add more checks for subprocess and fork. - Add
workarounds for missing _multiprocessing and failing socket.accept(). -
Enable bzip2. - Disable large file support. - Disable signal.alarm.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46430">bpo-46430</a>: Intern strings in deep-frozen modules. Patch by Kumar Aditya.</p></li>
</ul>
</section>
<section id="id282">
<h3>Windows<a class="headerlink" href="#id282" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46744">bpo-46744</a>: The default all users install directory for ARM64 is now under
the native <code class="docutils literal notranslate"><span class="pre">Program</span> <span class="pre">Files</span></code> folder, rather than <code class="docutils literal notranslate"><span class="pre">Program</span> <span class="pre">Files</span> <span class="pre">(Arm)</span></code>
which is intended for ARM (32-bit) files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46567">bpo-46567</a>: Adds Tcl and Tk support for Windows ARM64. This also adds IDLE
to the installation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46638">bpo-46638</a>: Ensures registry virtualization is consistently disabled. For
3.10 and earlier, it remains enabled (some registry writes are protected),
while for 3.11 and later it is disabled (registry modifications affect all
applications).</p></li>
</ul>
</section>
<section id="id283">
<h3>IDLE<a class="headerlink" href="#id283" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46630">bpo-46630</a>: Make query dialogs on Windows start with a cursor in the entry
box.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45447">bpo-45447</a>: Apply IDLE syntax highlighting to <code class="docutils literal notranslate"><span class="pre">.pyi</span></code> files. Patch by Alex
Waygood and Terry Jan Reedy.</p></li>
</ul>
</section>
<section id="id284">
<h3>C API<a class="headerlink" href="#id284" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46748">bpo-46748</a>: Python’s public headers no longer import <code class="docutils literal notranslate"><span class="pre"><stdbool.h></span></code>,
leaving code that embeds/extends Python free to define <code class="docutils literal notranslate"><span class="pre">bool</span></code>, <code class="docutils literal notranslate"><span class="pre">true</span></code>
and <code class="docutils literal notranslate"><span class="pre">false</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46836">bpo-46836</a>: Move the <a class="reference internal" href="../c-api/frame.html#c.PyFrameObject" title="PyFrameObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyFrameObject</span></code></a> type definition (<code class="docutils literal notranslate"><span class="pre">struct</span>
<span class="pre">_frame</span></code>) to the internal C API <code class="docutils literal notranslate"><span class="pre">pycore_frame.h</span></code> header file. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45459">bpo-45459</a>: Rename <code class="docutils literal notranslate"><span class="pre">Include/buffer.h</span></code> header file to
<code class="docutils literal notranslate"><span class="pre">Include/pybuffer.h</span></code> to avoid conflicts with projects having an existing
<code class="docutils literal notranslate"><span class="pre">buffer.h</span></code> header file. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45412">bpo-45412</a>: Remove the <code class="docutils literal notranslate"><span class="pre">HAVE_PY_SET_53BIT_PRECISION</span></code> macro (moved to the
internal C API). Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46613">bpo-46613</a>: Added function <a class="reference internal" href="../c-api/type.html#c.PyType_GetModuleByDef" title="PyType_GetModuleByDef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetModuleByDef()</span></code></a>, which allows
access to module state when a method’s defining class is not available.</p></li>
</ul>
</section>
</section>
<section id="python-3-11-0-alpha-5">
<h2>Python 3.11.0 alpha 5<a class="headerlink" href="#python-3-11-0-alpha-5" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2022-02-03</em></p>
<section id="id285">
<h3>Core and Builtins<a class="headerlink" href="#id285" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45773">bpo-45773</a>: Remove two invalid “peephole” optimizations from the bytecode
compiler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46564">bpo-46564</a>: Do not create frame objects when creating <a class="reference internal" href="../library/functions.html#super" title="super"><code class="xref py py-class docutils literal notranslate"><span class="pre">super</span></code></a>
object. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45885">bpo-45885</a>: Added more fined-grained specialization failure stats regarding
the <code class="docutils literal notranslate"><span class="pre">COMPARE_OP</span></code> bytecode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44977">bpo-44977</a>: The delegation of <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-func docutils literal notranslate"><span class="pre">int()</span></code></a> to <code class="xref py py-meth docutils literal notranslate"><span class="pre">__trunc__()</span></code> is now
deprecated. Calling <code class="docutils literal notranslate"><span class="pre">int(a)</span></code> when <code class="docutils literal notranslate"><span class="pre">type(a)</span></code> implements
<code class="xref py py-meth docutils literal notranslate"><span class="pre">__trunc__()</span></code> but not <code class="xref py py-meth docutils literal notranslate"><span class="pre">__int__()</span></code> or <code class="xref py py-meth docutils literal notranslate"><span class="pre">__index__()</span></code> now raises
a <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46458">bpo-46458</a>: Reorder code emitted by the compiler for a
<a class="reference internal" href="../reference/compound_stmts.html#try"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">try</span></code></a>-<a class="reference internal" href="../reference/compound_stmts.html#except"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">except</span></code></a> block so that the <a class="reference internal" href="../reference/compound_stmts.html#else"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">else</span></code></a> block’s
code immediately follows the <a class="reference internal" href="../reference/compound_stmts.html#try"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">try</span></code></a> body (without a jump). This is
more optimal for the happy path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46527">bpo-46527</a>: Allow passing <code class="docutils literal notranslate"><span class="pre">iterable</span></code> as a keyword argument to
<a class="reference internal" href="../library/functions.html#enumerate" title="enumerate"><code class="xref py py-func docutils literal notranslate"><span class="pre">enumerate()</span></code></a> again. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46528">bpo-46528</a>: Replace several stack manipulation instructions (<code class="docutils literal notranslate"><span class="pre">DUP_TOP</span></code>,
<code class="docutils literal notranslate"><span class="pre">DUP_TOP_TWO</span></code>, <code class="docutils literal notranslate"><span class="pre">ROT_TWO</span></code>, <code class="docutils literal notranslate"><span class="pre">ROT_THREE</span></code>, <code class="docutils literal notranslate"><span class="pre">ROT_FOUR</span></code>, and <code class="docutils literal notranslate"><span class="pre">ROT_N</span></code>)
with new <a class="reference internal" href="../library/dis.html#opcode-COPY"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">COPY</span></code></a> and <a class="reference internal" href="../library/dis.html#opcode-SWAP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">SWAP</span></code></a> instructions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46329">bpo-46329</a>: Use two or three bytecodes to implement most calls.</p>
<p>Calls without named arguments are implemented as a sequence of two
instructions: <code class="docutils literal notranslate"><span class="pre">PRECALL;</span> <span class="pre">CALL</span></code>. Calls with named arguments are
implemented as a sequence of three instructions: <code class="docutils literal notranslate"><span class="pre">PRECALL;</span> <span class="pre">KW_NAMES;</span>
<span class="pre">CALL</span></code>. There are two different <code class="docutils literal notranslate"><span class="pre">PRECALL</span></code> instructions:
<code class="docutils literal notranslate"><span class="pre">PRECALL_FUNTION</span></code> and <code class="docutils literal notranslate"><span class="pre">PRECALL_METHOD</span></code>. The latter pairs with
<code class="docutils literal notranslate"><span class="pre">LOAD_METHOD</span></code>.</p>
<p>This partition into pre-call and call allows better specialization, and
thus better performance ultimately.</p>
<p>There is no change in semantics.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46503">bpo-46503</a>: Fix an assert when parsing some invalid N escape sequences in
f-strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46431">bpo-46431</a>: Improve error message on invalid calls to
<code class="xref py py-meth docutils literal notranslate"><span class="pre">BaseExceptionGroup.__new__()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46476">bpo-46476</a>: Fix memory leak in code objects generated by deepfreeze. Patch
by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46481">bpo-46481</a>: Speed up calls to <code class="xref py py-meth docutils literal notranslate"><span class="pre">weakref.ref.__call__()</span></code> by using the
<span class="target" id="index-205"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a> <code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46417">bpo-46417</a>: Fix a race condition on setting a type <code class="docutils literal notranslate"><span class="pre">__bases__</span></code> attribute:
the internal function <code class="docutils literal notranslate"><span class="pre">add_subclass()</span></code> now gets the
<code class="docutils literal notranslate"><span class="pre">PyTypeObject.tp_subclasses</span></code> member after calling
<a class="reference internal" href="../c-api/weakref.html#c.PyWeakref_NewRef" title="PyWeakref_NewRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyWeakref_NewRef()</span></code></a> which can trigger a garbage collection which
can indirectly modify <code class="docutils literal notranslate"><span class="pre">PyTypeObject.tp_subclasses</span></code>. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46417">bpo-46417</a>: <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-X</span> <span class="pre">showrefcount</span></code> now shows the total reference count
after clearing and destroyed the main Python interpreter. Previously, it
was shown before. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43683">bpo-43683</a>: Add ASYNC_GEN_WRAP opcode to wrap the value to be yielded in
async generators. Removes the need to special case async generators in the
<code class="docutils literal notranslate"><span class="pre">YIELD_VALUE</span></code> instruction.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46407">bpo-46407</a>: Optimize some modulo operations in <code class="docutils literal notranslate"><span class="pre">Objects/longobject.c</span></code>.
Patch by Jeremiah Vivian.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46409">bpo-46409</a>: Add new <code class="docutils literal notranslate"><span class="pre">RETURN_GENERATOR</span></code> bytecode to make generators.
Simplifies calling Python functions in the VM, as they no longer any need
to special case generator functions.</p>
<p>Also add <code class="docutils literal notranslate"><span class="pre">JUMP_NO_INTERRUPT</span></code> bytecode that acts like <code class="docutils literal notranslate"><span class="pre">JUMP_ABSOLUTE</span></code>,
but does not check for interrupts.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46406">bpo-46406</a>: The integer division <code class="docutils literal notranslate"><span class="pre">//</span></code> implementation has been optimized
to better let the compiler understand its constraints. It can be 20%
faster on the amd64 platform when dividing an int by a value smaller than
<code class="docutils literal notranslate"><span class="pre">2**30</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46383">bpo-46383</a>: Fix invalid signature of <code class="docutils literal notranslate"><span class="pre">_zoneinfo</span></code>’s <code class="docutils literal notranslate"><span class="pre">module_free</span></code>
function to resolve a crash on wasm32-emscripten platform.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46361">bpo-46361</a>: Ensure that “small” integers created by <a class="reference internal" href="../library/stdtypes.html#int.from_bytes" title="int.from_bytes"><code class="xref py py-meth docutils literal notranslate"><span class="pre">int.from_bytes()</span></code></a>
and <a class="reference internal" href="../library/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal notranslate"><span class="pre">decimal.Decimal</span></code></a> are properly cached.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46161">bpo-46161</a>: Fix the class building error when the arguments are constants
and CALL_FUNCTION_EX is used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46028">bpo-46028</a>: Fixes calculation of <code class="xref py py-data docutils literal notranslate"><span class="pre">sys._base_executable</span></code> when inside a
virtual environment that uses symlinks with different binary names than
the base environment provides.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46091">bpo-46091</a>: Correctly calculate indentation levels for lines with
whitespace character that are ended by line continuation characters. Patch
by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30512">bpo-30512</a>: Add CAN Socket support for NetBSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46045">bpo-46045</a>: Do not use POSIX semaphores on NetBSD</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44024">bpo-44024</a>: Improve the <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> message for non-string second
arguments passed to the built-in functions <a class="reference internal" href="../library/functions.html#getattr" title="getattr"><code class="xref py py-func docutils literal notranslate"><span class="pre">getattr()</span></code></a> and
<a class="reference internal" href="../library/functions.html#hasattr" title="hasattr"><code class="xref py py-func docutils literal notranslate"><span class="pre">hasattr()</span></code></a>. Patch by Géry Ogam.</p></li>
</ul>
</section>
<section id="id286">
<h3>Library<a class="headerlink" href="#id286" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46624">bpo-46624</a>: Restore support for non-integer arguments of
<a class="reference internal" href="../library/random.html#random.randrange" title="random.randrange"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.randrange()</span></code></a> and <a class="reference internal" href="../library/random.html#random.randint" title="random.randint"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.randint()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46591">bpo-46591</a>: Make the IDLE doc URL on the About IDLE dialog clickable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46565">bpo-46565</a>: Remove loop variables that are leaking into modules’
namespaces.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46553">bpo-46553</a>: In <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a>, support evaluating bare
stringified <code class="docutils literal notranslate"><span class="pre">ClassVar</span></code> annotations. Patch by Gregory Beauregard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46544">bpo-46544</a>: Don’t leak <code class="docutils literal notranslate"><span class="pre">x</span></code> & <code class="docutils literal notranslate"><span class="pre">uspace</span></code> intermediate vars in
<a class="reference internal" href="../library/textwrap.html#textwrap.TextWrapper" title="textwrap.TextWrapper"><code class="xref py py-class docutils literal notranslate"><span class="pre">textwrap.TextWrapper</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46487">bpo-46487</a>: Add the <code class="docutils literal notranslate"><span class="pre">get_write_buffer_limits</span></code> method to
<code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.transports.WriteTransport</span></code> and to the SSL transport.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45173">bpo-45173</a>: Note the configparser deprecations will be removed in Python
3.12.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45162">bpo-45162</a>: The deprecated <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> APIs removed in 3.11a1 have been
temporarily restored to be removed in 3.12 while cleanups in external
projects go in.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46539">bpo-46539</a>: In <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a>, support evaluating
stringified <code class="docutils literal notranslate"><span class="pre">ClassVar</span></code> and <code class="docutils literal notranslate"><span class="pre">Final</span></code> annotations inside <code class="docutils literal notranslate"><span class="pre">Annotated</span></code>.
Patch by Gregory Beauregard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46510">bpo-46510</a>: Add missing test for <a class="reference internal" href="../library/types.html#types.TracebackType" title="types.TracebackType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.TracebackType</span></code></a> and
<a class="reference internal" href="../library/types.html#types.FrameType" title="types.FrameType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.FrameType</span></code></a>. Calculate them directly from the caught
exception without calling <a class="reference internal" href="../library/sys.html#sys.exc_info" title="sys.exc_info"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.exc_info()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46491">bpo-46491</a>: Allow <a class="reference internal" href="../library/typing.html#typing.Annotated" title="typing.Annotated"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Annotated</span></code></a> to wrap <a class="reference internal" href="../library/typing.html#typing.Final" title="typing.Final"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Final</span></code></a> and
<a class="reference internal" href="../library/typing.html#typing.ClassVar" title="typing.ClassVar"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.ClassVar</span></code></a>. Patch by Gregory Beauregard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46483">bpo-46483</a>: Remove <a class="reference internal" href="../reference/datamodel.html#object.__class_getitem__" title="object.__class_getitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__class_getitem__()</span></code></a> from
<a class="reference internal" href="../library/pathlib.html#pathlib.PurePath" title="pathlib.PurePath"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code></a> as this class was not supposed to be generic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46436">bpo-46436</a>: Fix command-line option <code class="docutils literal notranslate"><span class="pre">-d</span></code>/<code class="docutils literal notranslate"><span class="pre">--directory</span></code> in module
<a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a> which is ignored when combined with command-line option
<code class="docutils literal notranslate"><span class="pre">--cgi</span></code>. Patch by Géry Ogam.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41403">bpo-41403</a>: Make <code class="xref py py-meth docutils literal notranslate"><span class="pre">mock.patch()</span></code> raise a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> with a
relevant error message on invalid arg. Previously it allowed a cryptic
<a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> to escape.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46474">bpo-46474</a>: In <code class="docutils literal notranslate"><span class="pre">importlib.metadata.EntryPoint.pattern</span></code>, avoid potential
REDoS by limiting ambiguity in consecutive whitespace.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46474">bpo-46474</a>: Removed private method from <code class="docutils literal notranslate"><span class="pre">importlib.metadata.Path</span></code>. Sync
with importlib_metadata 4.10.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46470">bpo-46470</a>: Remove unused branch from <code class="docutils literal notranslate"><span class="pre">typing._remove_dups_flatten</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46469">bpo-46469</a>: <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> generic classes now return
<a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a> in <code class="docutils literal notranslate"><span class="pre">__class_getitem__</span></code> instead of the same
class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41906">bpo-41906</a>: Support passing filter instances in the <code class="docutils literal notranslate"><span class="pre">filters</span></code> values of
<code class="docutils literal notranslate"><span class="pre">handlers</span></code> and <code class="docutils literal notranslate"><span class="pre">loggers</span></code> in the dictionary passed to
<a class="reference internal" href="../library/logging.config.html#logging.config.dictConfig" title="logging.config.dictConfig"><code class="xref py py-func docutils literal notranslate"><span class="pre">logging.config.dictConfig()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46422">bpo-46422</a>: Use <code class="docutils literal notranslate"><span class="pre">dis.Positions</span></code> in <code class="docutils literal notranslate"><span class="pre">dis.Instruction</span></code> instead of a
regular <code class="docutils literal notranslate"><span class="pre">tuple</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46434">bpo-46434</a>: <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> now gracefully handles <code class="docutils literal notranslate"><span class="pre">help</span></code> when
<a class="reference internal" href="../reference/datamodel.html#module.__doc__" title="module.__doc__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__doc__</span></code></a> is missing, for example when run with pregenerated
optimized <code class="docutils literal notranslate"><span class="pre">.pyc</span></code> files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43869">bpo-43869</a>: Python uses the same time Epoch on all platforms. Add an
explicit unit test to ensure that it’s the case. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46414">bpo-46414</a>: Add <a class="reference internal" href="../library/typing.html#typing.reveal_type" title="typing.reveal_type"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.reveal_type()</span></code></a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> now imports Windows-specific imports when
<code class="docutils literal notranslate"><span class="pre">msvcrt</span></code> module is available, and POSIX-specific imports on all other
platforms. This gives a clean exception when <code class="docutils literal notranslate"><span class="pre">_posixsubprocess</span></code> is not
available (e.g. Emscripten browser target).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40066">bpo-40066</a>: <code class="docutils literal notranslate"><span class="pre">IntEnum</span></code>, <code class="docutils literal notranslate"><span class="pre">IntFlag</span></code>, and <code class="docutils literal notranslate"><span class="pre">StrEnum</span></code> use the mixed-in type
for their <code class="docutils literal notranslate"><span class="pre">str()</span></code> and <code class="docutils literal notranslate"><span class="pre">format()</span></code> output.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46316">bpo-46316</a>: Optimize <a class="reference internal" href="../library/pathlib.html#pathlib.Path.iterdir" title="pathlib.Path.iterdir"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.iterdir()</span></code></a> by removing an
unnecessary check for special entries.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29688">bpo-29688</a>: Document <a class="reference internal" href="../library/pathlib.html#pathlib.Path.absolute" title="pathlib.Path.absolute"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.absolute()</span></code></a> (which has always
existed).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43012">bpo-43012</a>: The pathlib module’s obsolete and internal <code class="docutils literal notranslate"><span class="pre">_Accessor</span></code> class
has been removed to prepare the terrain for upcoming enhancements to the
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46258">bpo-46258</a>: Speed up <a class="reference internal" href="../library/math.html#math.isqrt" title="math.isqrt"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.isqrt()</span></code></a> for small positive integers by
replacing two division steps with a lookup table.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46242">bpo-46242</a>: Improve error message when creating a new <a class="reference internal" href="../library/enum.html#enum.Enum" title="enum.Enum"><code class="xref py py-class docutils literal notranslate"><span class="pre">enum.Enum</span></code></a>
type subclassing an existing <code class="docutils literal notranslate"><span class="pre">Enum</span></code> with <code class="docutils literal notranslate"><span class="pre">_member_names_</span></code> using
<code class="xref py py-meth docutils literal notranslate"><span class="pre">enum.Enum.__call__()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43118">bpo-43118</a>: Fix a bug in <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> that was causing it to
fail on some subclasses of classes with a <code class="docutils literal notranslate"><span class="pre">__text_signature__</span></code>
referencing module globals. Patch by Weipeng Hong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26552">bpo-26552</a>: Fixed case where failing <a class="reference internal" href="../library/asyncio-future.html#asyncio.ensure_future" title="asyncio.ensure_future"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.ensure_future()</span></code></a> did not
close the coroutine. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21987">bpo-21987</a>: Fix an issue with <a class="reference internal" href="../library/tarfile.html#tarfile.TarFile.getmember" title="tarfile.TarFile.getmember"><code class="xref py py-meth docutils literal notranslate"><span class="pre">tarfile.TarFile.getmember()</span></code></a> getting a
directory name with a trailing slash.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46124">bpo-46124</a>: Update <a class="reference internal" href="../library/zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a> to rely on importlib.resources
traversable API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46103">bpo-46103</a>: Now <a class="reference internal" href="../library/inspect.html#inspect.getmembers" title="inspect.getmembers"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getmembers()</span></code></a> only gets <code class="xref py py-attr docutils literal notranslate"><span class="pre">__bases__</span></code>
attribute from class type. Patch by Weipeng Hong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46080">bpo-46080</a>: Fix exception in argparse help text generation if a
<a class="reference internal" href="../library/argparse.html#argparse.BooleanOptionalAction" title="argparse.BooleanOptionalAction"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.BooleanOptionalAction</span></code></a> argument’s default is
<code class="docutils literal notranslate"><span class="pre">argparse.SUPPRESS</span></code> and it has <code class="docutils literal notranslate"><span class="pre">help</span></code> specified. Patch by Felix
Fontein.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44791">bpo-44791</a>: Fix substitution of <a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-class docutils literal notranslate"><span class="pre">ParamSpec</span></code></a> in
<a class="reference internal" href="../library/typing.html#typing.Concatenate" title="typing.Concatenate"><code class="xref py py-data docutils literal notranslate"><span class="pre">Concatenate</span></code></a> with different parameter expressions.
Substitution with a list of types returns now a tuple of types.
Substitution with <code class="docutils literal notranslate"><span class="pre">Concatenate</span></code> returns now a <code class="docutils literal notranslate"><span class="pre">Concatenate</span></code> with
concatenated lists of arguments.</p></li>
</ul>
</section>
<section id="id287">
<h3>Documentation<a class="headerlink" href="#id287" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46463">bpo-46463</a>: Fixes <code class="file docutils literal notranslate"><span class="pre">escape4chm.py</span></code> script used when building the CHM
documentation file</p></li>
</ul>
</section>
<section id="id288">
<h3>Tests<a class="headerlink" href="#id288" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43478">bpo-43478</a>: Mocks can no longer be provided as the specs for other Mocks.
As a result, an already-mocked object cannot be passed to <code class="docutils literal notranslate"><span class="pre">mock.Mock()</span></code>.
This can uncover bugs in tests since these Mock-derived Mocks will always
pass certain tests (e.g. isinstance) and builtin assert functions (e.g.
assert_called_once_with) will unconditionally pass.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46616">bpo-46616</a>: Ensures <code class="docutils literal notranslate"><span class="pre">test_importlib.test_windows</span></code> cleans up registry keys
after completion.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44359">bpo-44359</a>: test_ftplib now silently ignores socket errors to prevent
logging unhandled threading exceptions. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46600">bpo-46600</a>: Fix test_gdb.test_pycfunction() for Python built with <code class="docutils literal notranslate"><span class="pre">clang</span>
<span class="pre">-Og</span></code>. Tolerate inlined functions in the gdb traceback. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46542">bpo-46542</a>: Fix a Python crash in test_lib2to3 when using Python built in
debug mode: limit the recursion limit. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46576">bpo-46576</a>: test_peg_generator now disables compiler optimization when
testing compilation of its own C extensions to significantly speed up the
testing on non-debug builds of CPython.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46542">bpo-46542</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_json</span></code> tests checking for <a class="reference internal" href="../library/exceptions.html#RecursionError" title="RecursionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RecursionError</span></code></a>:
modify these tests to use <code class="docutils literal notranslate"><span class="pre">support.infinite_recursion()</span></code>. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13886">bpo-13886</a>: Skip test_builtin PTY tests on non-ASCII characters if the
readline module is loaded. The readline module changes input() behavior,
but test_builtin is not intended to test the readline module. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: Add <code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.requires_fork()</span></code> decorators to mark tests
that require a working <a class="reference internal" href="../library/os.html#os.fork" title="os.fork"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fork()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: Add <code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.requires_subprocess()</span></code> decorator to mark
tests which require working <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module or <code class="docutils literal notranslate"><span class="pre">os.spawn*</span></code>. The
wasm32-emscripten platform has no support for processes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46126">bpo-46126</a>: Disable ‘descriptions’ when running tests internally.</p></li>
</ul>
</section>
<section id="id289">
<h3>Build<a class="headerlink" href="#id289" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46602">bpo-46602</a>: Tidied up configure.ac so that conftest.c is truncated rather
than appended. This assists in the case where the ‘rm’ of conftest.c fails
to happen between tests. Downstream issues such as a clobbered SOABI can
result.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46600">bpo-46600</a>: Fix the test checking if the C compiler supports <code class="docutils literal notranslate"><span class="pre">-Og</span></code> option
in the <code class="docutils literal notranslate"><span class="pre">./configure</span></code> script to also use <code class="docutils literal notranslate"><span class="pre">-Og</span></code> on clang which supports
it. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38472">bpo-38472</a>: Fix GCC detection in setup.py when cross-compiling. The C
compiler is now run with LC_ALL=C. Previously, the detection failed with a
German locale.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46513">bpo-46513</a>: <strong class="program">configure</strong> no longer uses <code class="docutils literal notranslate"><span class="pre">AC_C_CHAR_UNSIGNED</span></code>
macro and <code class="docutils literal notranslate"><span class="pre">pyconfig.h</span></code> no longer defines reserved symbol
<code class="docutils literal notranslate"><span class="pre">__CHAR_UNSIGNED__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46471">bpo-46471</a>: Use global singletons for single byte bytes objects in
deepfreeze.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46443">bpo-46443</a>: Deepfreeze now uses cached small integers as it saves some
space for common small integers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46429">bpo-46429</a>: Merge all deep-frozen files into one for space savings. Patch
by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45569">bpo-45569</a>: The build now defaults to using 30-bit digits for Python
integers. Previously either 15-bit or 30-bit digits would be selected,
depending on the platform. 15-bit digits may still be selected using the
<code class="docutils literal notranslate"><span class="pre">--enable-big-digits=15</span></code> option to the <code class="docutils literal notranslate"><span class="pre">configure</span></code> script, or by
defining <code class="docutils literal notranslate"><span class="pre">PYLONG_BITS_IN_DIGIT</span></code> in <code class="docutils literal notranslate"><span class="pre">pyconfig.h</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45925">bpo-45925</a>: Update Windows installer to use SQLite 3.37.2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43112">bpo-43112</a>: Detect musl libc as a separate SOABI (tagged as
<code class="docutils literal notranslate"><span class="pre">linux-musl</span></code>).</p></li>
</ul>
</section>
<section id="id290">
<h3>Windows<a class="headerlink" href="#id290" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33125">bpo-33125</a>: The traditional EXE/MSI based installer for Windows is now
available for ARM64</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46362">bpo-46362</a>: os.path.abspath(“C:CON”) is now fixed to return “\.CON”, not
the same path. The regression was true of all legacy DOS devices such as
COM1, LPT1, or NUL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44934">bpo-44934</a>: The installer now offers a command-line only option to add the
installation directory to the end of <span class="target" id="index-206"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PATH</span></code> instead of at the
start.</p></li>
</ul>
</section>
<section id="id291">
<h3>macOS<a class="headerlink" href="#id291" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45925">bpo-45925</a>: Update macOS installer to SQLite 3.37.2.</p></li>
</ul>
</section>
<section id="id292">
<h3>IDLE<a class="headerlink" href="#id292" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45296">bpo-45296</a>: Clarify close, quit, and exit in IDLE. In the File menu,
‘Close’ and ‘Exit’ are now ‘Close Window’ (the current one) and ‘Exit’ is
now ‘Exit IDLE’ (by closing all windows). In Shell, ‘quit()’ and ‘exit()’
mean ‘close Shell’. If there are no other windows, this also exits IDLE.</p></li>
</ul>
</section>
<section id="id293">
<h3>C API<a class="headerlink" href="#id293" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: Remove the <code class="docutils literal notranslate"><span class="pre">PyHeapType_GET_MEMBERS()</span></code> macro. It was exposed
in the public C API by mistake, it must only be used by Python internally.
Use the <code class="docutils literal notranslate"><span class="pre">PyTypeObject.tp_members</span></code> member instead. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: Move _Py_GetAllocatedBlocks() and _PyObject_DebugMallocStats()
private functions to the internal C API. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46433">bpo-46433</a>: The internal function _PyType_GetModuleByDef now correctly
handles inheritance patterns involving static types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45459">bpo-45459</a>: <a class="reference internal" href="../c-api/buffer.html#c.Py_buffer" title="Py_buffer"><code class="xref c c-type docutils literal notranslate"><span class="pre">Py_buffer</span></code></a> and various <code class="docutils literal notranslate"><span class="pre">Py_buffer</span></code> related functions
are now part of the limited API and stable ABI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14916">bpo-14916</a>: Fixed bug in the tokenizer that prevented
<code class="docutils literal notranslate"><span class="pre">PyRun_InteractiveOne</span></code> from parsing from the provided FD.</p></li>
</ul>
</section>
</section>
<section id="python-3-11-0-alpha-4">
<h2>Python 3.11.0 alpha 4<a class="headerlink" href="#python-3-11-0-alpha-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2022-01-13</em></p>
<section id="id294">
<h3>Core and Builtins<a class="headerlink" href="#id294" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46070">bpo-46070</a>: <a class="reference internal" href="../c-api/init.html#c.Py_EndInterpreter" title="Py_EndInterpreter"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_EndInterpreter()</span></code></a> now explicitly untracks all objects
currently tracked by the GC. Previously, if an object was used later by
another interpreter, calling <a class="reference internal" href="../c-api/gcsupport.html#c.PyObject_GC_UnTrack" title="PyObject_GC_UnTrack"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GC_UnTrack()</span></code></a> on the object
crashed if the previous or the next object of the <code class="xref c c-type docutils literal notranslate"><span class="pre">PyGC_Head</span></code>
structure became a dangling pointer. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46347">bpo-46347</a>: Fix memory leak in PyEval_EvalCodeEx.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46339">bpo-46339</a>: Fix a crash in the parser when retrieving the error text for
multi-line f-strings expressions that do not start in the first line of
the string. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46331">bpo-46331</a>: Do not set line number of instruction storing doc-string. Fixes
regression introduced in 3.11 alpha.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46314">bpo-46314</a>: Remove spurious “call” event when creating a lambda function
that was accidentally introduced in 3.11a4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46289">bpo-46289</a>: ASDL declaration of <code class="docutils literal notranslate"><span class="pre">FormattedValue</span></code> has changed to reflect
<code class="docutils literal notranslate"><span class="pre">conversion</span></code> field is not optional.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46297">bpo-46297</a>: Fixed an interpreter crash on bootup with multiple PythonPaths
set in the Windows registry. Patch by Derzsi Dániel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46237">bpo-46237</a>: Fix the line number of tokenizer errors inside f-strings. Patch
by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46263">bpo-46263</a>: We always expect the “use_frozen_modules” config to be set, now
that getpath.c was rewritten in pure Python and the logic improved.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46006">bpo-46006</a>: Fix a regression when a type method like <code class="docutils literal notranslate"><span class="pre">__init__()</span></code> is
modified in a subinterpreter. Fix a regression in
<code class="docutils literal notranslate"><span class="pre">_PyUnicode_EqualToASCIIId()</span></code> and type <code class="docutils literal notranslate"><span class="pre">update_slot()</span></code>. Revert the
change which made the Unicode dictionary of interned strings compatible
with subinterpreters: the internal interned dictionary is shared again by
all interpreters. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45923">bpo-45923</a>: Add RESUME opcode. This is a logical no-op. It is emitted by
the compiler anywhere a Python function can be entered. It is used by the
interpreter to perform tracing and optimizer checks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46208">bpo-46208</a>: Fix the regression of os.path.normpath(“A/../../B”) not
returning expected “../B” but “B”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46240">bpo-46240</a>: Correct the error message for unclosed parentheses when the
tokenizer doesn’t reach the end of the source when the error is reported.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46009">bpo-46009</a>: Remove the <code class="docutils literal notranslate"><span class="pre">GEN_START</span></code> opcode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46235">bpo-46235</a>: Certain sequence multiplication operations like <code class="docutils literal notranslate"><span class="pre">[0]</span> <span class="pre">*</span> <span class="pre">1_000</span></code>
are now faster due to reference-counting optimizations. Patch by Dennis
Sweeney.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46221">bpo-46221</a>: <code class="xref std std-opcode docutils literal notranslate"><span class="pre">PREP_RERAISE_STAR</span></code> no longer pushes <code class="docutils literal notranslate"><span class="pre">lasti</span></code> to the
stack.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46202">bpo-46202</a>: Remove <code class="xref std std-opcode docutils literal notranslate"><span class="pre">POP_EXCEPT_AND_RERAISE</span></code> and replace it by an
equivalent sequence of other opcodes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46085">bpo-46085</a>: Fix iterator cache mechanism of <code class="xref py py-class docutils literal notranslate"><span class="pre">OrderedDict</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46055">bpo-46055</a>: Speed up shifting operation involving integers less than
<code class="xref c c-macro docutils literal notranslate"><span class="pre">PyLong_BASE</span></code>. Patch by Xinhang Xu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46110">bpo-46110</a>: Add a maximum recursion check to the PEG parser to avoid stack
overflow. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46107">bpo-46107</a>: Fix bug where <code class="xref py py-meth docutils literal notranslate"><span class="pre">ExceptionGroup.split()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">ExceptionGroup.subgroup()</span></code> did not copy the exception group’s
<code class="docutils literal notranslate"><span class="pre">__note__</span></code> field to the parts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45711">bpo-45711</a>: The interpreter state’s representation of handled exceptions
(a.k.a exc_info, or _PyErr_StackItem) now has only the <code class="docutils literal notranslate"><span class="pre">exc_value</span></code>
field, <code class="docutils literal notranslate"><span class="pre">exc_type</span></code> and <code class="docutils literal notranslate"><span class="pre">exc_traceback</span></code> have been removed as their
values can be derived from <code class="docutils literal notranslate"><span class="pre">exc_value</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44525">bpo-44525</a>: Replace the four call bytecode instructions which one pre-call
instruction and two call instructions.</p>
<p>Removes <code class="docutils literal notranslate"><span class="pre">CALL_FUNCTION</span></code>, <code class="docutils literal notranslate"><span class="pre">CALL_FUNCTION_KW</span></code>, <code class="docutils literal notranslate"><span class="pre">CALL_METHOD</span></code> and
<code class="docutils literal notranslate"><span class="pre">CALL_METHOD_KW</span></code>.</p>
<p>Adds <code class="docutils literal notranslate"><span class="pre">CALL_NO_KW</span></code> and <code class="docutils literal notranslate"><span class="pre">CALL_KW</span></code> call instructions, and
<code class="docutils literal notranslate"><span class="pre">PRECALL_METHOD</span></code> prefix for pairing with <code class="docutils literal notranslate"><span class="pre">LOAD_METHOD</span></code>.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46039">bpo-46039</a>: Remove the <code class="docutils literal notranslate"><span class="pre">YIELD_FROM</span></code> instruction and replace it with the
<code class="docutils literal notranslate"><span class="pre">SEND</span></code> instruction which performs the same operation, but without the
loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45635">bpo-45635</a>: The code called from <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyErr_Display()</span></code> was refactored
to improve error handling. It now exits immediately upon an unrecoverable
error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46054">bpo-46054</a>: Fix parser error when parsing non-utf8 characters in source
files. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46042">bpo-46042</a>: Improve the location of the caret in <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>
exceptions emitted by the symbol table. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46049">bpo-46049</a>: Ensure <code class="file docutils literal notranslate"><span class="pre">._pth</span></code> files work as intended on platforms other
than Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46048">bpo-46048</a>: Fixes parsing of <code class="file docutils literal notranslate"><span class="pre">._pth</span></code> files on startup so that
single-character paths are correctly read.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37971">bpo-37971</a>: Fix a bug where the line numbers given in a traceback when a
decorator application raised an exception were wrong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46031">bpo-46031</a>: Add <a class="reference internal" href="../library/dis.html#opcode-POP_JUMP_IF_NOT_NONE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">POP_JUMP_IF_NOT_NONE</span></code></a> and
<a class="reference internal" href="../library/dis.html#opcode-POP_JUMP_IF_NONE"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">POP_JUMP_IF_NONE</span></code></a> opcodes to speed up conditional jumps.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45654">bpo-45654</a>: Deepfreeze <a class="reference internal" href="../library/runpy.html#module-runpy" title="runpy: Locate and run Python modules without importing them first."><code class="xref py py-mod docutils literal notranslate"><span class="pre">runpy</span></code></a>, patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46025">bpo-46025</a>: Fix a crash in the <a class="reference internal" href="../library/atexit.html#module-atexit" title="atexit: Register and execute cleanup functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">atexit</span></code></a> module involving functions
that unregister themselves before raising exceptions. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46000">bpo-46000</a>: Improve compatibility of the <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> module with NetBSD
curses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44525">bpo-44525</a>: Specialize the CALL_FUNCTION instruction for calls to builtin
types with a single argument. Speeds up <code class="docutils literal notranslate"><span class="pre">range(x)</span></code>, <code class="docutils literal notranslate"><span class="pre">list(x)</span></code>, and
specifically <code class="docutils literal notranslate"><span class="pre">type(obj)</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42918">bpo-42918</a>: Fix bug where the built-in <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a> function did not
always raise a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> when passed multiple statements in
‘single’ mode. Patch by Weipeng Hong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45953">bpo-45953</a>: The main interpreter in _PyRuntimeState.interpreters is now
statically allocated (as part of _PyRuntime). Likewise for the initial
thread state of each interpreter. This means less allocation during
runtime init, as well as better memory locality for these key state
objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45292">bpo-45292</a>: Complete the <span class="target" id="index-207"></span><a class="pep reference external" href="https://peps.python.org/pep-0654/"><strong>PEP 654</strong></a> implementation: add <code class="docutils literal notranslate"><span class="pre">except*</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43413">bpo-43413</a>: Revert changes in <code class="docutils literal notranslate"><span class="pre">set.__init__</span></code>. Subclass of <a class="reference internal" href="../library/stdtypes.html#set" title="set"><code class="xref py py-class docutils literal notranslate"><span class="pre">set</span></code></a>
needs to define a <code class="docutils literal notranslate"><span class="pre">__init__()</span></code> method if it defines a <code class="docutils literal notranslate"><span class="pre">__new__()</span></code>
method with additional keyword parameters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43931">bpo-43931</a>: Added the <a class="reference internal" href="../c-api/apiabiversion.html#c.Py_Version" title="Py_Version"><code class="xref c c-data docutils literal notranslate"><span class="pre">Py_Version</span></code></a> constant which bears the same
value as <a class="reference internal" href="../c-api/apiabiversion.html#c.PY_VERSION_HEX" title="PY_VERSION_HEX"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PY_VERSION_HEX</span></code></a>. Patch by Gabriele N. Tornetta.</p></li>
</ul>
</section>
<section id="id295">
<h3>Library<a class="headerlink" href="#id295" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46342">bpo-46342</a>: The <code class="docutils literal notranslate"><span class="pre">@typing.final</span></code> decorator now sets the <code class="docutils literal notranslate"><span class="pre">__final__</span></code>
attribute on the decorated object to allow runtime introspection. Patch by
Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46328">bpo-46328</a>: Added the <a class="reference internal" href="../library/sys.html#sys.exception" title="sys.exception"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sys.exception()</span></code></a> method which returns the active
exception instance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46307">bpo-46307</a>: Add <a class="reference internal" href="../library/string.html#string.Template.is_valid" title="string.Template.is_valid"><code class="xref py py-meth docutils literal notranslate"><span class="pre">string.Template.is_valid()</span></code></a> and
<a class="reference internal" href="../library/string.html#string.Template.get_identifiers" title="string.Template.get_identifiers"><code class="xref py py-meth docutils literal notranslate"><span class="pre">string.Template.get_identifiers()</span></code></a> methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46306">bpo-46306</a>: Assume that <a class="reference internal" href="../library/types.html#types.CodeType" title="types.CodeType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.CodeType</span></code></a> always has
<code class="xref py py-attr docutils literal notranslate"><span class="pre">types.CodeType.co_firstlineno</span></code> in <a class="reference internal" href="../library/doctest.html#module-doctest" title="doctest: Test pieces of code within docstrings."><code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40479">bpo-40479</a>: Fix <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> <em>usedforsecurity</em> option to work correctly
with OpenSSL 3.0.0 in FIPS mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46070">bpo-46070</a>: Fix possible segfault when importing the <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> module
from different sub-interpreters in parallel. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46244">bpo-46244</a>: Removed <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> from <a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ParamSpec</span></code></a> and
<a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeVar</span></code></a>. They served no purpose. Patch by Arie Bovenberg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46278">bpo-46278</a>: Reflect <code class="docutils literal notranslate"><span class="pre">context</span></code> argument in <code class="docutils literal notranslate"><span class="pre">AbstractEventLoop.call_*()</span></code>
methods. Loop implementations already support it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46269">bpo-46269</a>: Remove special-casing of <code class="docutils literal notranslate"><span class="pre">__new__</span></code> in
<a class="reference internal" href="../library/enum.html#enum.Enum.__dir__" title="enum.Enum.__dir__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">enum.Enum.__dir__()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46266">bpo-46266</a>: Improve day constants in <a class="reference internal" href="../library/calendar.html#module-calendar" title="calendar: Functions for working with calendars, including some emulation of the Unix cal program."><code class="xref py py-mod docutils literal notranslate"><span class="pre">calendar</span></code></a>.</p>
<p>Now all constants (<code class="docutils literal notranslate"><span class="pre">MONDAY</span></code> … <code class="docutils literal notranslate"><span class="pre">SUNDAY</span></code>) are documented, tested, and
added to <code class="docutils literal notranslate"><span class="pre">__all__</span></code>.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46257">bpo-46257</a>: Optimized the mean, variance, and stdev functions in the
statistics module. If the input is an iterator, it is consumed in a single
pass rather than eating memory by conversion to a list. The single pass
algorithm is about twice as fast as the previous two pass code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41011">bpo-41011</a>: Added two new variables to <em>pyvenv.cfg</em> which is generated by
<a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a> module: <em>executable</em> for the executable and <em>command</em> for the
command line used to create the environment.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46239">bpo-46239</a>: Improve error message when importing
<code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio.windows_events</span></code> on non-Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46238">bpo-46238</a>: Reuse <code class="docutils literal notranslate"><span class="pre">_winapi</span></code> constants in <code class="docutils literal notranslate"><span class="pre">asyncio.windows_events</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46222">bpo-46222</a>: Adding <code class="docutils literal notranslate"><span class="pre">SF_NOCACHE</span></code> sendfile constant for FreeBSD for the
posixmodule.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37295">bpo-37295</a>: Add fast path for <code class="docutils literal notranslate"><span class="pre">0</span> <span class="pre"><=</span> <span class="pre">k</span> <span class="pre"><=</span> <span class="pre">n</span> <span class="pre"><=</span> <span class="pre">67</span></code> for <a class="reference internal" href="../library/math.html#math.comb" title="math.comb"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.comb()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46176">bpo-46176</a>: Adding the <code class="docutils literal notranslate"><span class="pre">MAP_STACK</span></code> constant for the mmap module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43424">bpo-43424</a>: Deprecate <code class="xref py py-attr docutils literal notranslate"><span class="pre">webbrowser.MacOSXOSAScript._name</span></code> and use
<code class="docutils literal notranslate"><span class="pre">name</span></code> instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45321">bpo-45321</a>: Added missing error codes to module
<code class="docutils literal notranslate"><span class="pre">xml.parsers.expat.errors</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46125">bpo-46125</a>: Refactor tests to test traversable API directly. Includes
changes from importlib 5.4.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46118">bpo-46118</a>: Moved importlib.resources and its related functionality to a
package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37578">bpo-37578</a>: Add <em>include_hidden</em> parameter to <a class="reference internal" href="../library/glob.html#glob.glob" title="glob.glob"><code class="xref py py-func docutils literal notranslate"><span class="pre">glob()</span></code></a> and
<a class="reference internal" href="../library/glob.html#glob.iglob" title="glob.iglob"><code class="xref py py-func docutils literal notranslate"><span class="pre">iglob()</span></code></a> to match hidden files and directories when using
special characters like <code class="docutils literal notranslate"><span class="pre">*</span></code>, <code class="docutils literal notranslate"><span class="pre">**</span></code>, <code class="docutils literal notranslate"><span class="pre">?</span></code> and <code class="docutils literal notranslate"><span class="pre">[]</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20369">bpo-20369</a>: <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.wait" title="concurrent.futures.wait"><code class="xref py py-func docutils literal notranslate"><span class="pre">concurrent.futures.wait()</span></code></a> no longer blocks forever when
given duplicate Futures. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46105">bpo-46105</a>: Honor spec when generating requirement specs with urls and
extras (importlib_metadata 4.8.3).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44893">bpo-44893</a>: EntryPoint objects are no longer tuples. Recommended means to
access is by attribute (‘.name’, ‘.group’) or accessor (‘.load()’). Access
by index is deprecated and will raise deprecation warning.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22815">bpo-22815</a>: Print unexpected successes together with failures and errors in
summary in <a class="reference internal" href="../library/unittest.html#unittest.TextTestResult" title="unittest.TextTestResult"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TextTestResult</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22047">bpo-22047</a>: Calling <code class="xref py py-meth docutils literal notranslate"><span class="pre">add_argument_group()</span></code> on an argument group is
deprecated. Calling <code class="xref py py-meth docutils literal notranslate"><span class="pre">add_argument_group()</span></code> or
<code class="xref py py-meth docutils literal notranslate"><span class="pre">add_mutually_exclusive_group()</span></code> on a mutually exclusive group is
deprecated.</p>
<p>These features were never supported and do not always work correctly. The
functions exist on the API by accident through inheritance and will be
removed in the future.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26952">bpo-26952</a>: <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> raises <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> with clear message
when trying to render usage for an empty mutually exclusive group.
Previously it raised a cryptic <a class="reference internal" href="../library/exceptions.html#IndexError" title="IndexError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IndexError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45615">bpo-45615</a>: Functions in the <a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> module raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>
rather than <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> when an exception argument is not of
type <a class="reference internal" href="../library/exceptions.html#BaseException" title="BaseException"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BaseException</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16594">bpo-16594</a>: Add allow allow_reuse_port flag in socketserver.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27718">bpo-27718</a>: Fix help for the <a class="reference internal" href="../library/signal.html#module-signal" title="signal: Set handlers for asynchronous events."><code class="xref py py-mod docutils literal notranslate"><span class="pre">signal</span></code></a> module. Some functions (e.g.
<code class="docutils literal notranslate"><span class="pre">signal()</span></code> and <code class="docutils literal notranslate"><span class="pre">getsignal()</span></code>) were omitted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46032">bpo-46032</a>: The <code class="docutils literal notranslate"><span class="pre">registry()</span></code> method of <a class="reference internal" href="../library/functools.html#functools.singledispatch" title="functools.singledispatch"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.singledispatch()</span></code></a>
functions checks now the first argument or the first parameter annotation
and raises a TypeError if it is not supported. Previously unsupported
“types” were ignored (e.g. <code class="docutils literal notranslate"><span class="pre">typing.List[int]</span></code>) or caused an error at
calling time (e.g. <code class="docutils literal notranslate"><span class="pre">list[int]</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46014">bpo-46014</a>: Add ability to use <code class="docutils literal notranslate"><span class="pre">typing.Union</span></code> and <code class="docutils literal notranslate"><span class="pre">types.UnionType</span></code> as
dispatch argument to <code class="docutils literal notranslate"><span class="pre">functools.singledispatch</span></code>. Patch provided by Yurii
Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27062">bpo-27062</a>: Add <code class="xref py py-attr docutils literal notranslate"><span class="pre">__all__</span></code> to <a class="reference internal" href="../library/inspect.html#module-inspect" title="inspect: Extract information and source code from live objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">inspect</span></code></a>, patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46018">bpo-46018</a>: Ensure that <a class="reference internal" href="../library/math.html#math.expm1" title="math.expm1"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.expm1()</span></code></a> does not raise on underflow.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46016">bpo-46016</a>: Adding <code class="xref py py-const docutils literal notranslate"><span class="pre">F_DUP2FD</span></code> and <code class="xref py py-const docutils literal notranslate"><span class="pre">F_DUP2FD_CLOEXEC</span></code>
constants from FreeBSD into the <a class="reference internal" href="../library/fcntl.html#module-fcntl" title="fcntl: The fcntl() and ioctl() system calls. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">fcntl</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45755">bpo-45755</a>: <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> generic aliases now reveal the class attributes
of the original generic class when passed to <code class="docutils literal notranslate"><span class="pre">dir()</span></code>. This was the
behavior up to Python 3.6, but was changed in 3.7-3.9.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45874">bpo-45874</a>: The empty query string, consisting of no query arguments, is
now handled correctly in <code class="docutils literal notranslate"><span class="pre">urllib.parse.parse_qsl</span></code>. This caused problems
before when strict parsing was enabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44674">bpo-44674</a>: Change how dataclasses disallows mutable default values. It
used to use a list of known types (list, dict, set). Now it disallows
unhashable objects to be defaults. It’s using unhashability as a proxy
for mutability. Patch by Eric V. Smith, idea by Raymond Hettinger.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23882">bpo-23882</a>: Remove namespace package (PEP 420) support from unittest
discovery. It was introduced in Python 3.4 but has been broken since
Python 3.7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25066">bpo-25066</a>: Added a <code class="xref py py-meth docutils literal notranslate"><span class="pre">__repr__()</span></code> method to
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Event" title="multiprocessing.Event"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Event</span></code></a> objects, patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45643">bpo-45643</a>: Added <a class="reference internal" href="../library/signal.html#signal.SIGSTKFLT" title="signal.SIGSTKFLT"><code class="xref py py-const docutils literal notranslate"><span class="pre">signal.SIGSTKFLT</span></code></a> on platforms where this signal
is defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44092">bpo-44092</a>: Fetch across rollback no longer raises
<a class="reference internal" href="../library/sqlite3.html#sqlite3.InterfaceError" title="sqlite3.InterfaceError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InterfaceError</span></code></a>. Instead we leave it to the SQLite library
to handle these cases. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42413">bpo-42413</a>: Replace <code class="docutils literal notranslate"><span class="pre">concurrent.futures.TimeoutError</span></code> and
<code class="docutils literal notranslate"><span class="pre">asyncio.TimeoutError</span></code> with builtin <a class="reference internal" href="../library/exceptions.html#TimeoutError" title="TimeoutError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TimeoutError</span></code></a>, keep these
names as deprecated aliases.</p></li>
</ul>
</section>
<section id="id296">
<h3>Documentation<a class="headerlink" href="#id296" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46196">bpo-46196</a>: Document method <a class="reference internal" href="../library/cmd.html#cmd.Cmd.columnize" title="cmd.Cmd.columnize"><code class="xref py py-meth docutils literal notranslate"><span class="pre">cmd.Cmd.columnize()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46120">bpo-46120</a>: State that <code class="docutils literal notranslate"><span class="pre">|</span></code> is preferred for readability over <code class="docutils literal notranslate"><span class="pre">Union</span></code> in
the <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> docs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46109">bpo-46109</a>: Extracted <code class="docutils literal notranslate"><span class="pre">importlib.resources</span></code> and
<code class="docutils literal notranslate"><span class="pre">importlib.resources.abc</span></code> documentation into separate files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19737">bpo-19737</a>: Update the documentation for the <a class="reference internal" href="../library/functions.html#globals" title="globals"><code class="xref py py-func docutils literal notranslate"><span class="pre">globals()</span></code></a> function.</p></li>
</ul>
</section>
<section id="id297">
<h3>Tests<a class="headerlink" href="#id297" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46296">bpo-46296</a>: Add a test case for <a class="reference internal" href="../library/enum.html#module-enum" title="enum: Implementation of an enumeration class."><code class="xref py py-mod docutils literal notranslate"><span class="pre">enum</span></code></a> with <code class="docutils literal notranslate"><span class="pre">_use_args_</span> <span class="pre">==</span> <span class="pre">True</span></code> and
<code class="docutils literal notranslate"><span class="pre">_member_type_</span> <span class="pre">==</span> <span class="pre">object</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46205">bpo-46205</a>: Fix hang in runtest_mp due to race condition</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46263">bpo-46263</a>: Fix test_capi on FreeBSD 14-dev: instruct jemalloc to not fill
freed memory with junk byte.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46262">bpo-46262</a>: Cover <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> path in tests for
<code class="xref py py-meth docutils literal notranslate"><span class="pre">enum.Flag._missing_()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46150">bpo-46150</a>: Now <code class="docutils literal notranslate"><span class="pre">fakename</span></code> in
<code class="docutils literal notranslate"><span class="pre">test_pathlib.PosixPathTest.test_expanduser</span></code> is checked to be
non-existent.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46129">bpo-46129</a>: Rewrite <code class="docutils literal notranslate"><span class="pre">asyncio.locks</span></code> tests with
<a class="reference internal" href="../library/unittest.html#unittest.IsolatedAsyncioTestCase" title="unittest.IsolatedAsyncioTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.IsolatedAsyncioTestCase</span></code></a> usage.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23819">bpo-23819</a>: Fixed <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> tests in python optimized mode. Patch by
Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46114">bpo-46114</a>: Fix test case for OpenSSL 3.0.1 version. OpenSSL 3.0 uses
<code class="docutils literal notranslate"><span class="pre">0xMNN00PP0L</span></code>.</p></li>
</ul>
</section>
<section id="id298">
<h3>Build<a class="headerlink" href="#id298" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44133">bpo-44133</a>: When Python is configured with
<a class="reference internal" href="../using/configure.html#cmdoption-without-static-libpython"><code class="xref std std-option docutils literal notranslate"><span class="pre">--without-static-libpython</span></code></a>, the Python static library
(libpython.a) is no longer built. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44133">bpo-44133</a>: When Python is built without <a class="reference internal" href="../using/configure.html#cmdoption-enable-shared"><code class="xref std std-option docutils literal notranslate"><span class="pre">--enable-shared</span></code></a>, the
<code class="docutils literal notranslate"><span class="pre">python</span></code> program is now linked to object files, rather than being linked
to the Python static library (libpython.a), to make sure that all symbols
are exported. Previously, the linker omitted some symbols like the
<code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FrozenMain()</span></code> function. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: The <code class="docutils literal notranslate"><span class="pre">configure</span></code> script has a new option
<code class="docutils literal notranslate"><span class="pre">--with-emscripten-target</span></code> to select browser or node as Emscripten build
target.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46315">bpo-46315</a>: Added and fixed <code class="docutils literal notranslate"><span class="pre">#ifdef</span> <span class="pre">HAVE_FEATURE</span></code> checks for
functionality that is not available on WASI platform.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45723">bpo-45723</a>: Fixed a regression in <code class="docutils literal notranslate"><span class="pre">configure</span></code> check for
<a class="reference internal" href="../library/select.html#select.epoll" title="select.epoll"><code class="xref py py-func docutils literal notranslate"><span class="pre">select.epoll()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46263">bpo-46263</a>: <code class="docutils literal notranslate"><span class="pre">configure</span></code> no longer sets <code class="docutils literal notranslate"><span class="pre">MULTIARCH</span></code> on FreeBSD
platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46106">bpo-46106</a>: Updated OpenSSL to 1.1.1m in Windows builds, macOS installer
builds, and CI. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46088">bpo-46088</a>: Automatically detect or install bootstrap Python runtime when
building from Visual Studio.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46072">bpo-46072</a>: Add a –with-pystats configure option to turn on internal
statistics gathering.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: A new directory <code class="docutils literal notranslate"><span class="pre">Tools/wasm</span></code> contains WebAssembly-related
helpers like <code class="docutils literal notranslate"><span class="pre">config.site</span></code> override for wasm32-emscripten, wasm assets
generator to bundle the stdlib, and a README.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46023">bpo-46023</a>: <strong class="program">makesetup</strong> no longer builds extensions that have been
marked as <em>disabled</em>. This allows users to disable modules in
<code class="docutils literal notranslate"><span class="pre">Modules/Setup.local</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45949">bpo-45949</a>: Use pure Python <code class="docutils literal notranslate"><span class="pre">freeze_module</span></code> for all but importlib
bootstrap files. <code class="docutils literal notranslate"><span class="pre">--with-freeze-module</span></code> <strong class="program">configure</strong> option is
no longer needed for cross builds.</p></li>
</ul>
</section>
<section id="id299">
<h3>Windows<a class="headerlink" href="#id299" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46217">bpo-46217</a>: Removed parameter that is unsupported on Windows 8.1 and early
Windows 10 and may have caused build or runtime failures.</p></li>
</ul>
</section>
<section id="id300">
<h3>macOS<a class="headerlink" href="#id300" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40477">bpo-40477</a>: The Python Launcher app for macOS now properly launches scripts
and, if necessary, the Terminal app when running on recent macOS releases.</p></li>
</ul>
</section>
<section id="id301">
<h3>C API<a class="headerlink" href="#id301" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46236">bpo-46236</a>: Fix a bug in <a class="reference internal" href="../c-api/function.html#c.PyFunction_GetAnnotations" title="PyFunction_GetAnnotations"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFunction_GetAnnotations()</span></code></a> that caused it
to return a <code class="docutils literal notranslate"><span class="pre">tuple</span></code> instead of a <code class="docutils literal notranslate"><span class="pre">dict</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46140">bpo-46140</a>: <a class="reference internal" href="../c-api/buffer.html#c.PyBuffer_GetPointer" title="PyBuffer_GetPointer"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBuffer_GetPointer()</span></code></a>,
<a class="reference internal" href="../c-api/buffer.html#c.PyBuffer_FromContiguous" title="PyBuffer_FromContiguous"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBuffer_FromContiguous()</span></code></a>, <a class="reference internal" href="../c-api/buffer.html#c.PyBuffer_ToContiguous" title="PyBuffer_ToContiguous"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBuffer_ToContiguous()</span></code></a> and
<a class="reference internal" href="../c-api/memoryview.html#c.PyMemoryView_FromBuffer" title="PyMemoryView_FromBuffer"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMemoryView_FromBuffer()</span></code></a> now take buffer info by <code class="docutils literal notranslate"><span class="pre">const</span>
<span class="pre">Py_buffer</span> <span class="pre">*</span></code> instead of <code class="docutils literal notranslate"><span class="pre">Py_buffer</span> <span class="pre">*</span></code>, as they do not need mutability.
<a class="reference internal" href="../c-api/buffer.html#c.PyBuffer_FromContiguous" title="PyBuffer_FromContiguous"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBuffer_FromContiguous()</span></code></a> also now takes the source buffer as
<code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">void</span> <span class="pre">*</span></code>, and similarly <a class="reference internal" href="../c-api/buffer.html#c.PyBuffer_GetPointer" title="PyBuffer_GetPointer"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBuffer_GetPointer()</span></code></a> takes the
strides as <code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">Py_ssize_t</span> <span class="pre">*</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45855">bpo-45855</a>: Document that the <em>no_block</em> argument to
<a class="reference internal" href="../c-api/capsule.html#c.PyCapsule_Import" title="PyCapsule_Import"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCapsule_Import()</span></code></a> is a no-op now.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45855">bpo-45855</a>: Replaced deprecated usage of
<a class="reference internal" href="../c-api/import.html#c.PyImport_ImportModuleNoBlock" title="PyImport_ImportModuleNoBlock"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModuleNoBlock()</span></code></a> with
<a class="reference internal" href="../c-api/import.html#c.PyImport_ImportModule" title="PyImport_ImportModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ImportModule()</span></code></a> in stdlib modules. Patch by Kumar Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46007">bpo-46007</a>: The <code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_CHECK_INTERNED()</span></code> macro has been excluded
from the limited C API. It was never usable there, because it used
internal structures which are not available in the limited C API. Patch by
Victor Stinner.</p></li>
</ul>
</section>
</section>
<section id="python-3-11-0-alpha-3">
<h2>Python 3.11.0 alpha 3<a class="headerlink" href="#python-3-11-0-alpha-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2021-12-08</em></p>
<section id="id302">
<h3>Core and Builtins<a class="headerlink" href="#id302" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46009">bpo-46009</a>: Restore behavior from 3.9 and earlier when sending non-None to
newly started generator. In 3.9 this did not affect the state of the
generator. In 3.10.0 and 3.10.1 <code class="docutils literal notranslate"><span class="pre">gen_func().send(0)</span></code> is equivalent to
<code class="docutils literal notranslate"><span class="pre">gen_func().throw(TypeError(...)</span></code> which exhausts the generator. In
3.10.2 onward, the behavior has been reverted to that of 3.9.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46004">bpo-46004</a>: Fix the <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> location for errors involving for
loops with invalid targets. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45711">bpo-45711</a>: <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyErr_ChainStackItem()</span></code> no longer normalizes
<code class="docutils literal notranslate"><span class="pre">exc_info</span></code> (including setting the traceback on the exception instance)
because <code class="docutils literal notranslate"><span class="pre">exc_info</span></code> is always normalized.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45607">bpo-45607</a>: The <code class="docutils literal notranslate"><span class="pre">__note__</span></code> field was added to <a class="reference internal" href="../library/exceptions.html#BaseException" title="BaseException"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BaseException</span></code></a>. It is
<code class="docutils literal notranslate"><span class="pre">None</span></code> by default but can be set to a string which is added to the
exception’s traceback.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45947">bpo-45947</a>: Place pointers to dict and values immediately before GC header.
This reduces number of dependent memory loads to access either dict or
values from 3 to 1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45915">bpo-45915</a>: <code class="docutils literal notranslate"><span class="pre">is_valid_fd</span></code> now uses faster <code class="docutils literal notranslate"><span class="pre">fcntl(fd,</span> <span class="pre">F_GETFD)</span></code> on
Linux, macOS, and Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44530">bpo-44530</a>: Reverts a change to the <code class="docutils literal notranslate"><span class="pre">code.__new__</span></code> <a class="reference internal" href="../library/audit_events.html#audit-events"><span class="std std-ref">audit event</span></a> from an earlier prerelease.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42268">bpo-42268</a>: Fail the configure step if the selected compiler doesn’t
support memory sanitizer. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45711">bpo-45711</a>: The three values of <code class="docutils literal notranslate"><span class="pre">exc_info</span></code> are now always consistent with
each other. In particular, the <code class="docutils literal notranslate"><span class="pre">type</span></code> and <code class="docutils literal notranslate"><span class="pre">traceback</span></code> fields are now
derived from the exception instance. This impacts the return values of
<a class="reference internal" href="../library/sys.html#sys.exc_info" title="sys.exc_info"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.exc_info()</span></code></a> and <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_GetExcInfo" title="PyErr_GetExcInfo"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_GetExcInfo()</span></code></a> if the exception
instance is modified while the exception is handled, as well as
<a class="reference internal" href="../c-api/exceptions.html#c.PyErr_SetExcInfo" title="PyErr_SetExcInfo"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_SetExcInfo()</span></code></a>, which now ignores the <code class="docutils literal notranslate"><span class="pre">type</span></code> and
<code class="docutils literal notranslate"><span class="pre">traceback</span></code> arguments provided to it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45727">bpo-45727</a>: Refine the custom syntax error that suggests that a comma may
be missing to trigger only when the expressions are detected between
parentheses or brackets. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45885">bpo-45885</a>: Specialized the <code class="docutils literal notranslate"><span class="pre">COMPARE_OP</span></code> opcode using the PEP 659
machinery.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45786">bpo-45786</a>: Allocate space for the interpreter frame in the frame object,
to avoid an additional allocation when the frame object outlives the frame
activation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45614">bpo-45614</a>: Fix <a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> display for exceptions with invalid module
name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45813">bpo-45813</a>: Fix crash when calling coro.cr_frame.clear() after coroutine
has been freed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45811">bpo-45811</a>: Improve the tokenizer errors when encountering invisible
control characters in the parser. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45848">bpo-45848</a>: Allow the parser to obtain error lines directly from encoded
files. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45709">bpo-45709</a>: Restore behavior from 3.10 when tracing an exception raised
within a with statement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44525">bpo-44525</a>: Adds new <a class="reference internal" href="../library/dis.html#opcode-COPY_FREE_VARS"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">COPY_FREE_VARS</span></code></a> opcode, to make copying of
free variables from function to frame explicit. Helps optimization of
calls to Python function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45829">bpo-45829</a>: Specialize <code class="xref std std-opcode docutils literal notranslate"><span class="pre">BINARY_SUBSCR</span></code> for classes with a
<code class="docutils literal notranslate"><span class="pre">__getitem__</span></code> method implemented in Python</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45826">bpo-45826</a>: Fixed a crash when calling <code class="docutils literal notranslate"><span class="pre">.with_traceback(None)</span></code> on
<code class="docutils literal notranslate"><span class="pre">NameError</span></code>. This occurs internally in
<code class="docutils literal notranslate"><span class="pre">unittest.TestCase.assertRaises()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45822">bpo-45822</a>: Fixed a bug in the parser that was causing it to not respect
<span class="target" id="index-208"></span><a class="pep reference external" href="https://peps.python.org/pep-0263/"><strong>PEP 263</strong></a> coding cookies when no flags are provided. Patch by Pablo
Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45820">bpo-45820</a>: Fix a segfault when the parser fails without reading any input.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45636">bpo-45636</a>: Simplify the implementation of <a class="reference internal" href="../library/dis.html#opcode-BINARY_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">BINARY_OP</span></code></a> by indexing
into an array of function pointers (rather than switching on the oparg).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42540">bpo-42540</a>: Fix crash when <a class="reference internal" href="../library/os.html#os.fork" title="os.fork"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fork()</span></code></a> is called with an active
non-default memory allocator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45738">bpo-45738</a>: Fix computation of error location for invalid continuation
characters in the parser. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45636">bpo-45636</a>: Remove an existing “fast path” for old-style string formatting,
since it no longer appears to have any measurable impact.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45753">bpo-45753</a>: Make recursion checks a bit more efficient by tracking amount
of calls left before overflow.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45773">bpo-45773</a>: Fix a compiler hang when attempting to optimize certain jump
patterns.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45764">bpo-45764</a>: The parser now gives a better error message when leaving out
the opening parenthesis <code class="docutils literal notranslate"><span class="pre">(</span></code> after a <code class="docutils literal notranslate"><span class="pre">def</span></code>-statement:</p>
<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="k">def</span><span class="w"> </span><span class="nf">f</span><span class="p">:</span>
File <span class="nb">"<stdin>"</span>, line <span class="m">1</span>
<span class="w"> </span><span class="k">def</span><span class="w"> </span><span class="nf">f</span><span class="p">:</span>
<span class="w"> </span><span class="pm">^</span>
<span class="gr">SyntaxError</span>: <span class="n">expected '('</span>
</pre></div>
</div>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45609">bpo-45609</a>: Specialized the <code class="docutils literal notranslate"><span class="pre">STORE_SUBSCR</span></code> opcode using the PEP 659
machinery.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45636">bpo-45636</a>: Replace all numeric <code class="docutils literal notranslate"><span class="pre">BINARY_*</span></code> and <code class="docutils literal notranslate"><span class="pre">INPLACE_*</span></code> instructions
with a single <a class="reference internal" href="../library/dis.html#opcode-BINARY_OP"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">BINARY_OP</span></code></a> implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45582">bpo-45582</a>: Path calculation (known as <code class="docutils literal notranslate"><span class="pre">getpath</span></code>) has been reimplemented
as a frozen Python module. This should have no visible impact, but may
affect calculation of all paths referenced in <a class="reference internal" href="../library/sys.html#module-sys" title="sys: Access system-specific parameters and functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sys</span></code></a> and
<a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45450">bpo-45450</a>: Improve the syntax error message for parenthesized arguments.
Patch by Pablo Galindo.</p></li>
</ul>
</section>
<section id="id303">
<h3>Library<a class="headerlink" href="#id303" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27946">bpo-27946</a>: Fix possible crash when getting an attribute of
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.Element" title="xml.etree.ElementTree.Element"><code class="xref py py-class docutils literal notranslate"><span class="pre">xml.etree.ElementTree.Element</span></code></a> simultaneously with replacing the
<code class="docutils literal notranslate"><span class="pre">attrib</span></code> dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45711">bpo-45711</a>: Make <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> normalize exceptions as soon as they are
captured with <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_Fetch" title="PyErr_Fetch"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_Fetch()</span></code></a>, and before they are stored as an
exc_info triplet. This brings <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> in line with the rest of the
codebase, where an exc_info triplet is always normalized.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23819">bpo-23819</a>: Replaced asserts with exceptions in asyncio, patch by Kumar
Aditya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13236">bpo-13236</a>: <a class="reference internal" href="../library/unittest.html#unittest.TextTestResult" title="unittest.TextTestResult"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TextTestResult</span></code></a> and
<a class="reference internal" href="../library/unittest.html#unittest.TextTestRunner" title="unittest.TextTestRunner"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TextTestRunner</span></code></a> flush now the output stream more often.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45917">bpo-45917</a>: Added <a class="reference internal" href="../library/math.html#math.exp2" title="math.exp2"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.exp2()</span></code></a>:, which returns 2 raised to the power
of x.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37658">bpo-37658</a>: Fix issue when on certain conditions <code class="docutils literal notranslate"><span class="pre">asyncio.wait_for()</span></code> may
allow a coroutine to complete successfully, but fail to return the result,
potentially causing memory leaks or other issues.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45876">bpo-45876</a>: Improve the accuracy of stdev() and pstdev() in the statistics
module. When the inputs are floats or fractions, the output is a
correctly rounded float</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44649">bpo-44649</a>: Handle dataclass(slots=True) with a field that has default a
default value, but for which init=False.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45803">bpo-45803</a>: Added missing kw_only parameter to
dataclasses.make_dataclass().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45837">bpo-45837</a>: The <code class="xref py py-meth docutils literal notranslate"><span class="pre">turtle.RawTurtle.settiltangle()</span></code> is deprecated since
Python 3.1, it now emits a deprecation warning and will be removed in
Python 3.13.</p>
<p>Use <code class="xref py py-meth docutils literal notranslate"><span class="pre">turtle.RawTurtle.tiltangle()</span></code> instead.</p>
<p><code class="xref py py-meth docutils literal notranslate"><span class="pre">turtle.RawTurtle.tiltangle()</span></code> was earlier incorrectly marked as
deprecated, its docstring has been corrected.</p>
<p>Patch by Hugo van Kemenade.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45831">bpo-45831</a>: <a class="reference internal" href="../library/faulthandler.html#module-faulthandler" title="faulthandler: Dump the Python traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">faulthandler</span></code></a> can now write ASCII-only strings (like
filenames and function names) with a single write() syscall when dumping a
traceback. It reduces the risk of getting an unreadable dump when two
threads or two processes dump a traceback to the same file (like stderr)
at the same time. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45828">bpo-45828</a>: <code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite</span></code> C callbacks now use unraisable exceptions if
callback tracebacks are enabled. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41735">bpo-41735</a>: Fix thread lock in <code class="docutils literal notranslate"><span class="pre">zlib.Decompress.flush()</span></code> method before
<code class="docutils literal notranslate"><span class="pre">PyObject_GetBuffer</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45235">bpo-45235</a>: Reverted an argparse bugfix that caused regression in the
handling of default arguments for subparsers. This prevented leaf level
arguments from taking precedence over root level arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45754">bpo-45754</a>: Fix a regression in Python 3.11a1 and 3.11a2 where
<a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> incorrectly would use <code class="docutils literal notranslate"><span class="pre">SQLITE_LIMIT_LENGTH</span></code> when checking
SQL statement lengths. Now, <code class="docutils literal notranslate"><span class="pre">SQLITE_LIMIT_SQL_LENGTH</span></code> is used. Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45766">bpo-45766</a>: Added <em>proportional</em> option to
<a class="reference internal" href="../library/statistics.html#statistics.linear_regression" title="statistics.linear_regression"><code class="xref py py-meth docutils literal notranslate"><span class="pre">statistics.linear_regression()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45765">bpo-45765</a>: In importlib.metadata, fix distribution discovery for an empty
path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45757">bpo-45757</a>: Fix bug where <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a> produced an incorrect oparg when
<a class="reference internal" href="../library/dis.html#opcode-EXTENDED_ARG"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">EXTENDED_ARG</span></code></a> is followed by an opcode that does not use its
argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45644">bpo-45644</a>: In-place JSON file formatting using <code class="docutils literal notranslate"><span class="pre">python3</span> <span class="pre">-m</span> <span class="pre">json.tool</span>
<span class="pre">infile</span> <span class="pre">infile</span></code> now works correctly, previously it left the file empty.
Patch by Chris Wesseling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45703">bpo-45703</a>: When a namespace package is imported before another module from
the same namespace is created/installed in a different <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a>
location while the program is running, calling the
<a class="reference internal" href="../library/importlib.html#importlib.invalidate_caches" title="importlib.invalidate_caches"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.invalidate_caches()</span></code></a> function will now also guarantee the
new module is noticed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45535">bpo-45535</a>: Improve output of <code class="docutils literal notranslate"><span class="pre">dir()</span></code> with Enums.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45664">bpo-45664</a>: Fix <a class="reference internal" href="../library/types.html#types.resolve_bases" title="types.resolve_bases"><code class="xref py py-func docutils literal notranslate"><span class="pre">types.resolve_bases()</span></code></a> and <a class="reference internal" href="../library/types.html#types.new_class" title="types.new_class"><code class="xref py py-func docutils literal notranslate"><span class="pre">types.new_class()</span></code></a> for
<a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a> instance as a base.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45663">bpo-45663</a>: Fix <a class="reference internal" href="../library/dataclasses.html#dataclasses.is_dataclass" title="dataclasses.is_dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.is_dataclass()</span></code></a> for dataclasses which are
subclasses of <a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45662">bpo-45662</a>: Fix the repr of <a class="reference internal" href="../library/dataclasses.html#dataclasses.InitVar" title="dataclasses.InitVar"><code class="xref py py-data docutils literal notranslate"><span class="pre">dataclasses.InitVar</span></code></a> with a type alias
to the built-in class, e.g. <code class="docutils literal notranslate"><span class="pre">InitVar[list[int]]</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43137">bpo-43137</a>: Launch GNOME web browsers via gio tool instead of obsolete
gvfs-open</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45429">bpo-45429</a>: On Windows, <a class="reference internal" href="../library/time.html#time.sleep" title="time.sleep"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.sleep()</span></code></a> now uses a waitable timer which
supports high-resolution timers. Patch by Donghee Na and Eryk Sun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37295">bpo-37295</a>: Optimize <a class="reference internal" href="../library/math.html#math.comb" title="math.comb"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.comb()</span></code></a> and <a class="reference internal" href="../library/math.html#math.perm" title="math.perm"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.perm()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45514">bpo-45514</a>: Deprecated legacy functions in <a class="reference internal" href="../library/importlib.resources.html#module-importlib.resources" title="importlib.resources: Package resource reading, opening, and access"><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib.resources</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45507">bpo-45507</a>: Add tests for truncated/missing trailers in gzip.decompress
implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45359">bpo-45359</a>: Implement <span class="target" id="index-209"></span><a class="pep reference external" href="https://peps.python.org/pep-0585/"><strong>PEP 585</strong></a> for <a class="reference internal" href="../library/graphlib.html#graphlib.TopologicalSorter" title="graphlib.TopologicalSorter"><code class="xref py py-class docutils literal notranslate"><span class="pre">graphlib.TopologicalSorter</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44733">bpo-44733</a>: Add <code class="docutils literal notranslate"><span class="pre">max_tasks_per_child</span></code> to
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor</span></code></a>. This allows users to
specify the maximum number of tasks a single process should execute before
the process needs to be restarted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28806">bpo-28806</a>: Improve netrc library. netrc file no longer needs to contain
all tokens. And if the login name is anonymous, security check is no
longer need.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43498">bpo-43498</a>: Avoid a possible <em>“RuntimeError: dictionary changed size during
iteration”</em> when adjusting the process count of
<code class="xref py py-class docutils literal notranslate"><span class="pre">ProcessPoolExecutor</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42158">bpo-42158</a>: Add MIME types for N-quads, N-triples, Notation3 and TriG to
<code class="docutils literal notranslate"><span class="pre">mimetypes</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30533">bpo-30533</a>: Add <a class="reference internal" href="../library/inspect.html#inspect.getmembers_static" title="inspect.getmembers_static"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getmembers_static()</span></code></a> , it return all members
without triggering dynamic lookup via the descriptor protocol. Patch by
Weipeng Hong.</p></li>
</ul>
</section>
<section id="id304">
<h3>Documentation<a class="headerlink" href="#id304" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42238">bpo-42238</a>: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">-C</span> <span class="pre">Doc</span> <span class="pre">suspicious</span></code> will be removed soon in favor of
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">-C</span> <span class="pre">Doc</span> <span class="pre">check</span></code>, mark it as deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45840">bpo-45840</a>: Improve cross-references in the documentation for the data
model.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45640">bpo-45640</a>: Properly marked-up grammar tokens in the documentation are now
clickable and take you to the definition of a given piece of grammar.
Patch by Arthur Milchior.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45788">bpo-45788</a>: Link doc for sys.prefix to sysconfig doc on installation paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45772">bpo-45772</a>: <code class="docutils literal notranslate"><span class="pre">socket.socket</span></code> documentation is corrected to a class from a
function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45392">bpo-45392</a>: Update the docstring of the <a class="reference internal" href="../library/functions.html#type" title="type"><code class="xref py py-class docutils literal notranslate"><span class="pre">type</span></code></a> built-in to remove a
redundant line and to mention keyword arguments for the constructor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45250">bpo-45250</a>: Update the documentation to note that CPython does not
consistently require iterators to define <code class="docutils literal notranslate"><span class="pre">__iter__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25381">bpo-25381</a>: In the extending chapter of the extending doc, update a
paragraph about the global variables containing exception information.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43905">bpo-43905</a>: Expanded <a class="reference internal" href="../library/dataclasses.html#dataclasses.astuple" title="dataclasses.astuple"><code class="xref py py-func docutils literal notranslate"><span class="pre">astuple()</span></code></a> and
<a class="reference internal" href="../library/dataclasses.html#dataclasses.asdict" title="dataclasses.asdict"><code class="xref py py-func docutils literal notranslate"><span class="pre">asdict()</span></code></a> docs, warning about deepcopy being applied and
providing a workaround.</p></li>
</ul>
</section>
<section id="id305">
<h3>Tests<a class="headerlink" href="#id305" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45695">bpo-45695</a>: Out-of-tree builds with a read-only source directory are now
tested by CI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19460">bpo-19460</a>: Add new Test for
<code class="docutils literal notranslate"><span class="pre">Lib/email/mime/nonmultipart.py::MIMENonMultipart</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45835">bpo-45835</a>: Fix race condition in test_queue tests with multiple “feeder”
threads.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45783">bpo-45783</a>: The test for the freeze tool now handles file moves and
deletions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45745">bpo-45745</a>: Remove the <code class="docutils literal notranslate"><span class="pre">--findleaks</span></code> command line option of regrtest: use
the <code class="docutils literal notranslate"><span class="pre">--fail-env-changed</span></code> option instead. Since Python 3.7, it was a
deprecated alias to the <code class="docutils literal notranslate"><span class="pre">--fail-env-changed</span></code> option.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45701">bpo-45701</a>: Add tests with <code class="docutils literal notranslate"><span class="pre">tuple</span></code> type with <a class="reference internal" href="../library/functools.html#functools.lru_cache" title="functools.lru_cache"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.lru_cache()</span></code></a>
to <code class="docutils literal notranslate"><span class="pre">test_functools</span></code>.</p></li>
</ul>
</section>
<section id="id306">
<h3>Build<a class="headerlink" href="#id306" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44035">bpo-44035</a>: CI now verifies that autoconf files have been regenerated with
a current and unpatched autoconf package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45950">bpo-45950</a>: The build system now uses a <strong class="program">_bootstrap_python</strong>
interpreter for freezing and deepfreezing again. To speed up build process
the build tools <strong class="program">_bootstrap_python</strong> and <strong class="program">_freeze_module</strong>
are no longer build with LTO.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45881">bpo-45881</a>: The <strong class="program">configure</strong> script now accepts
<code class="docutils literal notranslate"><span class="pre">--with-build-python</span></code> and <code class="docutils literal notranslate"><span class="pre">--with-freeze-module</span></code> options to make cross
compiling easier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: Emscripten platform now uses <code class="docutils literal notranslate"><span class="pre">.wasm</span></code> suffix by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: Disable unusable core extension modules on WASM/Emscripten
targets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: <code class="docutils literal notranslate"><span class="pre">configure</span></code> now checks for socket <code class="docutils literal notranslate"><span class="pre">shutdown</span></code> function. The
check makes it possible to disable <code class="docutils literal notranslate"><span class="pre">SYS_shutdown</span></code> with
<code class="docutils literal notranslate"><span class="pre">ac_cv_func_shutdown=no</span></code> in CONFIG_SITE.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: <code class="docutils literal notranslate"><span class="pre">configure</span></code> now checks for functions <code class="docutils literal notranslate"><span class="pre">fork1,</span> <span class="pre">getegid,</span>
<span class="pre">geteuid,</span> <span class="pre">getgid,</span> <span class="pre">getppid,</span> <span class="pre">getuid,</span> <span class="pre">opendir,</span> <span class="pre">pipe,</span> <span class="pre">system,</span> <span class="pre">wait,</span> <span class="pre">ttyname</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33393">bpo-33393</a>: Update <code class="docutils literal notranslate"><span class="pre">config.guess</span></code> to 2021-06-03 and <code class="docutils literal notranslate"><span class="pre">config.sub</span></code> to
2021-08-14. <code class="docutils literal notranslate"><span class="pre">Makefile</span></code> now has an <code class="docutils literal notranslate"><span class="pre">update-config</span></code> target to make
updating more convenient.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45866">bpo-45866</a>: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-all</span></code> now produces the same output when run from a
directory other than the source tree: when building Python out of the
source tree. pegen now strips directory of the “generated by pygen from
<FILENAME>” header Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40280">bpo-40280</a>: <code class="docutils literal notranslate"><span class="pre">configure</span></code> now accepts machine <code class="docutils literal notranslate"><span class="pre">wasm32</span></code> or <code class="docutils literal notranslate"><span class="pre">wasm64</span></code> and
OS <code class="docutils literal notranslate"><span class="pre">wasi</span></code> or <code class="docutils literal notranslate"><span class="pre">emscripten</span></code> for cross building, e.g.
<code class="docutils literal notranslate"><span class="pre">wasm32-unknown-emscripten</span></code>, <code class="docutils literal notranslate"><span class="pre">wasm32-wasi</span></code>, or
<code class="docutils literal notranslate"><span class="pre">wasm32-unknown-wasi</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41498">bpo-41498</a>: Python now compiles on platforms without <code class="docutils literal notranslate"><span class="pre">sigset_t</span></code>. Several
functions in <a class="reference internal" href="../library/signal.html#module-signal" title="signal: Set handlers for asynchronous events."><code class="xref py py-mod docutils literal notranslate"><span class="pre">signal</span></code></a> are not available when <code class="docutils literal notranslate"><span class="pre">sigset_t</span></code> is missing.</p>
<p>Based on patch by Roman Yurchak for pyodide.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45881">bpo-45881</a>: <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> now uses <code class="docutils literal notranslate"><span class="pre">CC</span></code> from environment first to discover
multiarch and cross compile paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45886">bpo-45886</a>: The <code class="docutils literal notranslate"><span class="pre">_freeze_module</span></code> program path can now be overridden on
the command line, e.g. <code class="docutils literal notranslate"><span class="pre">make</span>
<span class="pre">FREEZE_MODULE=../x86_64/Program/_freeze_module</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45873">bpo-45873</a>: Get rid of the <code class="docutils literal notranslate"><span class="pre">_bootstrap_python</span></code> build step. The
deepfreeze.py script is now run using <code class="docutils literal notranslate"><span class="pre">$(PYTHON_FOR_REGEN)</span></code> which can be
Python 3.7 or newer (on Windows, 3.8 or newer).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45847">bpo-45847</a>: Port builtin hashlib extensions to <code class="docutils literal notranslate"><span class="pre">PY_STDLIB_MOD</span></code> macro and
<code class="docutils literal notranslate"><span class="pre">addext()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45723">bpo-45723</a>: Add <code class="docutils literal notranslate"><span class="pre">autoconf</span></code> helpers for saving and restoring environment
variables:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">SAVE_ENV</span></code>: Save <code class="docutils literal notranslate"><span class="pre">$CFLAGS</span></code>, <code class="docutils literal notranslate"><span class="pre">$LDFLAGS</span></code>, <code class="docutils literal notranslate"><span class="pre">$LIBS</span></code>, and
<code class="docutils literal notranslate"><span class="pre">$CPPFLAGS</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">RESTORE_ENV</span></code>: Restore <code class="docutils literal notranslate"><span class="pre">$CFLAGS</span></code>, <code class="docutils literal notranslate"><span class="pre">$LDFLAGS</span></code>, <code class="docutils literal notranslate"><span class="pre">$LIBS</span></code>, and
<code class="docutils literal notranslate"><span class="pre">$CPPFLAGS</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">WITH_SAVE_ENV([SCRIPT])</span></code>: Run <code class="docutils literal notranslate"><span class="pre">SCRIPT</span></code> wrapped with <code class="docutils literal notranslate"><span class="pre">SAVE_ENV</span></code> and
<code class="docutils literal notranslate"><span class="pre">RESTORE_ENV</span></code>.</p></li>
</ul>
<p>Patch by Erlend E. Aasland.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45573">bpo-45573</a>: Mandatory core modules, that are required to bootstrap Python,
are now in <code class="docutils literal notranslate"><span class="pre">Modules/Setup.bootstrap</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45573">bpo-45573</a>: <code class="docutils literal notranslate"><span class="pre">configure</span></code> now creates <code class="docutils literal notranslate"><span class="pre">Modules/Setup.stdlib</span></code> with
conditionally enabled/disabled extension module lines. The file is not
used, yet.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45573">bpo-45573</a>: <code class="docutils literal notranslate"><span class="pre">configure</span></code> now uses a unified format to set state, compiler
flags, and linker flags in Makefile. The new macro <code class="docutils literal notranslate"><span class="pre">PY_STDLIB_MOD</span></code> sets
three variables that are consumed by <code class="docutils literal notranslate"><span class="pre">Modules/Setup</span></code> and <code class="docutils literal notranslate"><span class="pre">setup.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45816">bpo-45816</a>: Python now supports building with Visual Studio 2022 (MSVC
v143, VS Version 17.0). Patch by Jeremiah Vivian.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45800">bpo-45800</a>: Settings for <code class="xref py py-mod docutils literal notranslate"><span class="pre">pyexpat</span></code> C extension are now detected by
<code class="docutils literal notranslate"><span class="pre">configure</span></code>. The bundled <code class="docutils literal notranslate"><span class="pre">expat</span></code> library is built in <code class="docutils literal notranslate"><span class="pre">Makefile</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45798">bpo-45798</a>: Settings for <a class="reference internal" href="../library/decimal.html#module-decimal" title="decimal: Implementation of the General Decimal Arithmetic Specification."><code class="xref py py-mod docutils literal notranslate"><span class="pre">decimal</span></code></a> internal C extension are now
detected by <code class="docutils literal notranslate"><span class="pre">configure</span></code>. The bundled <code class="docutils literal notranslate"><span class="pre">libmpdec</span></code> library is built in
<code class="docutils literal notranslate"><span class="pre">Makefile</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45723">bpo-45723</a>: <strong class="program">configure</strong> has a new option <code class="docutils literal notranslate"><span class="pre">--with-pkg-config</span></code> to
disable or require pkg-config.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45774">bpo-45774</a>: The build dependencies for <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> are now detected by
<code class="docutils literal notranslate"><span class="pre">configure</span></code> and <code class="docutils literal notranslate"><span class="pre">pkg-config</span></code>. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45763">bpo-45763</a>: The build dependencies for <a class="reference internal" href="../library/zlib.html#module-zlib" title="zlib: Low-level interface to compression and decompression routines compatible with gzip."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zlib</span></code></a>, <a class="reference internal" href="../library/bz2.html#module-bz2" title="bz2: Interfaces for bzip2 compression and decompression."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bz2</span></code></a>, and
<a class="reference internal" href="../library/lzma.html#module-lzma" title="lzma: A Python wrapper for the liblzma compression library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">lzma</span></code></a> are now detected by <code class="docutils literal notranslate"><span class="pre">configure</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45747">bpo-45747</a>: gdbm and dbm build dependencies are now detected by
<code class="docutils literal notranslate"><span class="pre">configure</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45743">bpo-45743</a>: On macOS, the build system no longer passes
<code class="docutils literal notranslate"><span class="pre">search_paths_first</span></code> to the linker. The flag has been the default since
Xcode 4 / macOS 10.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45723">bpo-45723</a>: <code class="docutils literal notranslate"><span class="pre">configure.ac</span></code> is now compatible with autoconf 2.71.
Deprecated checks <code class="docutils literal notranslate"><span class="pre">STDC_HEADERS</span></code> and <code class="docutils literal notranslate"><span class="pre">AC_HEADER_TIME</span></code> have been
removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45723">bpo-45723</a>: <code class="docutils literal notranslate"><span class="pre">configure</span></code> now prints a warning when pkg-config is missing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45731">bpo-45731</a>: <code class="docutils literal notranslate"><span class="pre">configure</span> <span class="pre">--enable-loadable-sqlite-extensions</span></code> is now
handled by new <code class="docutils literal notranslate"><span class="pre">PY_SQLITE_ENABLE_LOAD_EXTENSION</span></code> macro instead of logic
in setup.py.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45723">bpo-45723</a>: configure.ac now uses custom helper macros and
<code class="docutils literal notranslate"><span class="pre">AC_CACHE_CHECK</span></code> to simplify and speed up configure runs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45696">bpo-45696</a>: Skip the marshal step for frozen modules by generating C code
that produces a set of ready-to-use code objects. This speeds up startup
time by another 10% or more.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45561">bpo-45561</a>: Run smelly.py tool from $(srcdir).</p></li>
</ul>
</section>
<section id="id307">
<h3>Windows<a class="headerlink" href="#id307" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=46105">bpo-46105</a>: Fixed calculation of <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a> in a venv on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45901">bpo-45901</a>: When installed through the Microsoft Store and set as the
default app for <code class="file docutils literal notranslate"><span class="pre">*.py</span></code> files, command line arguments will now be
passed to Python when invoking a script without explicitly launching
Python (that is, <code class="docutils literal notranslate"><span class="pre">script.py</span> <span class="pre">args</span></code> rather than <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">script.py</span>
<span class="pre">args</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45616">bpo-45616</a>: Fix Python Launcher’s ability to distinguish between versions
3.1 and 3.10 when either one is explicitly requested. Previously, 3.1
would be used if 3.10 was requested but not installed, and 3.10 would be
used if 3.1 was requested but 3.10 was installed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45850">bpo-45850</a>: Implement changes to build with deep-frozen modules on Windows.
Note that we now require Python 3.10 as the “bootstrap” or “host” Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45732">bpo-45732</a>: Updates bundled Tcl/Tk to 8.6.12.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45720">bpo-45720</a>: Internal reference to <code class="file docutils literal notranslate"><span class="pre">shlwapi.dll</span></code> was dropped to help
improve startup time. This DLL will no longer be loaded at the start of
every Python process.</p></li>
</ul>
</section>
<section id="id308">
<h3>macOS<a class="headerlink" href="#id308" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45732">bpo-45732</a>: Update python.org macOS installer to use Tcl/Tk 8.6.12.</p></li>
</ul>
</section>
<section id="id309">
<h3>C API<a class="headerlink" href="#id309" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39026">bpo-39026</a>: Fix Python.h to build C extensions with Xcode: remove a
relative include from <code class="docutils literal notranslate"><span class="pre">Include/cpython/pystate.h</span></code>.</p></li>
</ul>
</section>
</section>
<section id="python-3-11-0-alpha-2">
<h2>Python 3.11.0 alpha 2<a class="headerlink" href="#python-3-11-0-alpha-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2021-11-05</em></p>
<section id="id310">
<h3>Core and Builtins<a class="headerlink" href="#id310" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45716">bpo-45716</a>: Improve the <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> message when using <code class="docutils literal notranslate"><span class="pre">True</span></code>,
<code class="docutils literal notranslate"><span class="pre">None</span></code> or <code class="docutils literal notranslate"><span class="pre">False</span></code> as keywords in a function call. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45688">bpo-45688</a>: <a class="reference internal" href="../library/sys.html#sys.stdlib_module_names" title="sys.stdlib_module_names"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.stdlib_module_names</span></code></a> now contains the macOS-specific
module <code class="xref py py-mod docutils literal notranslate"><span class="pre">_scproxy</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45379">bpo-45379</a>: Clarify <a class="reference internal" href="../library/exceptions.html#ImportError" title="ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a> message when we try to explicitly
import a frozen module but frozen modules are disabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44525">bpo-44525</a>: Specialize simple calls to Python functions (no starargs,
keyword dict, or closure)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45530">bpo-45530</a>: Cases of sorting using tuples as keys may now be significantly
faster in some cases. Patch by Tim Peters.</p>
<p>The order of the result may differ from earlier releases if the tuple
elements don’t define a total ordering (see
<a class="reference internal" href="../reference/expressions.html#expressions-value-comparisons"><span class="std std-ref">Value comparisons</span></a> for information on total ordering).
It’s generally true that the result of sorting simply isn’t well-defined
in the absence of a total ordering on list elements.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45526">bpo-45526</a>: In obmalloc, set ADDRESS_BITS to not ignore any bits (ignored
16 before). That is safer in the case that the kernel gives user-space
virtual addresses that span a range greater than 48 bits.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30570">bpo-30570</a>: Fixed a crash in <code class="docutils literal notranslate"><span class="pre">issubclass()</span></code> from infinite recursion when
searching pathological <code class="docutils literal notranslate"><span class="pre">__bases__</span></code> tuples.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45521">bpo-45521</a>: Fix a bug in the obmalloc radix tree code. On 64-bit machines,
the bug causes the tree to hold 46-bits of virtual addresses, rather than
the intended 48-bits.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45494">bpo-45494</a>: Fix parser crash when reporting errors involving invalid
continuation characters. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45445">bpo-45445</a>: Python now fails to initialize if it finds an invalid
<a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span></code></a> option in the command line. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45340">bpo-45340</a>: Object attributes are held in an array instead of a dictionary.
An object’s dictionary are created lazily, only when needed. Reduces the
memory consumption of a typical Python object by about 30%. Patch by Mark
Shannon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45408">bpo-45408</a>: Fix a crash in the parser when reporting tokenizer errors that
occur at the same time unclosed parentheses are detected. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29410">bpo-29410</a>: Add SipHash13 for string hash algorithm and use it by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45385">bpo-45385</a>: Fix reference leak from descr_check. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45367">bpo-45367</a>: Specialized the <code class="docutils literal notranslate"><span class="pre">BINARY_MULTIPLY</span></code> opcode to
<code class="docutils literal notranslate"><span class="pre">BINARY_MULTIPLY_INT</span></code> and <code class="docutils literal notranslate"><span class="pre">BINARY_MULTIPLY_FLOAT</span></code> using the PEP 659
machinery.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21736">bpo-21736</a>: Frozen stdlib modules now have <code class="docutils literal notranslate"><span class="pre">__file__</span></code> to the .py file
they would otherwise be loaded from, if possible. For packages,
<code class="docutils literal notranslate"><span class="pre">__path__</span></code> now has the correct entry instead of being an empty list,
which allows unfrozen submodules to be imported. These are set only if
the stdlib directory is known when the runtime is initialized. Note that
the file at <code class="docutils literal notranslate"><span class="pre">__file__</span></code> is not guaranteed to exist. None of this affects
non-stdlib frozen modules nor, for now, frozen modules imported using
<code class="docutils literal notranslate"><span class="pre">PyImport_ImportFrozenModule()</span></code>. Also, at the moment <code class="docutils literal notranslate"><span class="pre">co_filename</span></code> is
not updated for the module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45020">bpo-45020</a>: For frozen stdlib modules, record the original module name as
<code class="docutils literal notranslate"><span class="pre">module.__spec__.loader_state.origname</span></code>. If the value is different than
<code class="docutils literal notranslate"><span class="pre">module.__spec__.name</span></code> then the module was defined as an alias in
Tools/scripts/freeze_modules.py. If it is <code class="docutils literal notranslate"><span class="pre">None</span></code> then the module comes
from a source file outside the stdlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45324">bpo-45324</a>: In FrozenImporter.find_spec(), we now preserve the information
needed in exec_module() to load the module. This change mostly impacts
internal details, rather than changing the importer’s behavior.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45292">bpo-45292</a>: Implement <span class="target" id="index-210"></span><a class="pep reference external" href="https://peps.python.org/pep-0654/"><strong>PEP 654</strong></a>. Add <a class="reference internal" href="../library/exceptions.html#ExceptionGroup" title="ExceptionGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">ExceptionGroup</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#BaseExceptionGroup" title="BaseExceptionGroup"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseExceptionGroup</span></code></a>. Update traceback display code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40116">bpo-40116</a>: Change to the implementation of split dictionaries. Classes
where the instances differ either in the exact set of attributes, or in
the order in which those attributes are set, can still share keys. This
should have no observable effect on users of Python or the C-API. Patch by
Mark Shannon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44050">bpo-44050</a>: Extensions that indicate they use global state (by setting
<code class="docutils literal notranslate"><span class="pre">m_size</span></code> to -1) can again be used in multiple interpreters. This reverts
to behavior of Python 3.8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44525">bpo-44525</a>: Setup initial specialization infrastructure for the
<code class="docutils literal notranslate"><span class="pre">CALL_FUNCTION</span></code> opcode. Implemented initial specializations for C
function calls:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">CALL_FUNCTION_BUILTIN_O</span></code> for <code class="docutils literal notranslate"><span class="pre">METH_O</span></code> flag.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CALL_FUNCTION_BUILTIN_FAST</span></code> for <code class="docutils literal notranslate"><span class="pre">METH_FASTCALL</span></code> flag without keywords.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CALL_FUNCTION_LEN</span></code> for <code class="docutils literal notranslate"><span class="pre">len(o)</span></code>.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">CALL_FUNCTION_ISINSTANCE</span></code> for <code class="docutils literal notranslate"><span class="pre">isinstance(o,</span> <span class="pre">t)</span></code>.</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44511">bpo-44511</a>: Improve the generated bytecode for class and mapping patterns.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43706">bpo-43706</a>: Speed up calls to <code class="docutils literal notranslate"><span class="pre">enumerate()</span></code> by using the <span class="target" id="index-211"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Donghee Na.</p></li>
</ul>
</section>
<section id="id311">
<h3>Library<a class="headerlink" href="#id311" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45679">bpo-45679</a>: Fix caching of multi-value <a class="reference internal" href="../library/typing.html#typing.Literal" title="typing.Literal"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Literal</span></code></a>.
<code class="docutils literal notranslate"><span class="pre">Literal[True,</span> <span class="pre">2]</span></code> is no longer equal to <code class="docutils literal notranslate"><span class="pre">Literal[1,</span> <span class="pre">2]</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42064">bpo-42064</a>: Convert <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> to multi-phase initialisation (PEP 489).
Patches by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45438">bpo-45438</a>: Fix typing.Signature string representation for generic builtin
types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45613">bpo-45613</a>: <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> now sets <a class="reference internal" href="../library/sqlite3.html#sqlite3.threadsafety" title="sqlite3.threadsafety"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sqlite3.threadsafety</span></code></a> based on
the default threading mode the underlying SQLite library has been compiled
with. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45574">bpo-45574</a>: Fix warning about <code class="docutils literal notranslate"><span class="pre">print_escape</span></code> being unused.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45581">bpo-45581</a>: <a class="reference internal" href="../library/sqlite3.html#sqlite3.connect" title="sqlite3.connect"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.connect()</span></code></a> now correctly raises <a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a>
if the underlying SQLite API signals memory error. Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45557">bpo-45557</a>: <a class="reference internal" href="../library/pprint.html#pprint.pprint" title="pprint.pprint"><code class="xref py py-func docutils literal notranslate"><span class="pre">pprint.pprint()</span></code></a> now handles <em>underscore_numbers</em>
correctly. Previously it was always setting it to <code class="docutils literal notranslate"><span class="pre">False</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44019">bpo-44019</a>: Add <a class="reference internal" href="../library/operator.html#operator.call" title="operator.call"><code class="xref py py-func docutils literal notranslate"><span class="pre">operator.call()</span></code></a> to <code class="docutils literal notranslate"><span class="pre">operator.__all__</span></code>. Patch by
Kreusada.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42174">bpo-42174</a>: <a class="reference internal" href="../library/shutil.html#shutil.get_terminal_size" title="shutil.get_terminal_size"><code class="xref py py-meth docutils literal notranslate"><span class="pre">shutil.get_terminal_size()</span></code></a> now falls back to sane values
if the column or line count are 0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35673">bpo-35673</a>: Improve the introspectability of the <code class="docutils literal notranslate"><span class="pre">__loader__</span></code> attribute
for namespace packages. <a class="reference internal" href="../library/importlib.html#importlib.machinery.NamespaceLoader" title="importlib.machinery.NamespaceLoader"><code class="xref py py-class docutils literal notranslate"><span class="pre">importlib.machinery.NamespaceLoader</span></code></a> is
now public, and implements the <a class="reference internal" href="../library/importlib.html#importlib.abc.InspectLoader" title="importlib.abc.InspectLoader"><code class="xref py py-class docutils literal notranslate"><span class="pre">importlib.abc.InspectLoader</span></code></a>
interface. <code class="docutils literal notranslate"><span class="pre">_NamespaceLoader</span></code> is kept for backward compatibility.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45515">bpo-45515</a>: Add references to <a class="reference internal" href="../library/zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a> in the <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a>
documentation, mostly replacing outdated references to <code class="docutils literal notranslate"><span class="pre">dateutil.tz</span></code>.
Change by Paul Ganssle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45475">bpo-45475</a>: Reverted optimization of iterating <a class="reference internal" href="../library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">gzip.GzipFile</span></code></a>,
<a class="reference internal" href="../library/bz2.html#bz2.BZ2File" title="bz2.BZ2File"><code class="xref py py-class docutils literal notranslate"><span class="pre">bz2.BZ2File</span></code></a>, and <a class="reference internal" href="../library/lzma.html#lzma.LZMAFile" title="lzma.LZMAFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">lzma.LZMAFile</span></code></a> (see <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43787">bpo-43787</a>) because
it caused regression when user iterate them without having reference of
them. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45489">bpo-45489</a>: Update <a class="reference internal" href="../library/typing.html#typing.ForwardRef" title="typing.ForwardRef"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForwardRef</span></code></a> to support <code class="docutils literal notranslate"><span class="pre">|</span></code> operator.
Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42222">bpo-42222</a>: Removed deprecated support for float arguments in
<em>randrange()</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45428">bpo-45428</a>: Fix a regression in py_compile when reading filenames from
standard input.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45467">bpo-45467</a>: Fix incremental decoder and stream reader in the
“raw-unicode-escape” codec. Previously they failed if the escape sequence
was split.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45461">bpo-45461</a>: Fix incremental decoder and stream reader in the
“unicode-escape” codec. Previously they failed if the escape sequence was
split.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45239">bpo-45239</a>: Fixed <a class="reference internal" href="../library/email.utils.html#email.utils.parsedate_tz" title="email.utils.parsedate_tz"><code class="xref py py-func docutils literal notranslate"><span class="pre">email.utils.parsedate_tz()</span></code></a> crashing with
<a class="reference internal" href="../library/exceptions.html#UnboundLocalError" title="UnboundLocalError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnboundLocalError</span></code></a> on certain invalid input instead of returning
<code class="docutils literal notranslate"><span class="pre">None</span></code>. Patch by Ben Hoyt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45417">bpo-45417</a>: Fix quadratic behaviour in the enum module: Creation of enum
classes with a lot of entries was quadratic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45249">bpo-45249</a>: Fix the behaviour of <a class="reference internal" href="../library/traceback.html#traceback.print_exc" title="traceback.print_exc"><code class="xref py py-func docutils literal notranslate"><span class="pre">traceback.print_exc()</span></code></a> when
displaying the caret when the <code class="docutils literal notranslate"><span class="pre">end_offset</span></code> in the exception is set to 0.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45416">bpo-45416</a>: Fix use of <a class="reference internal" href="../library/asyncio-sync.html#asyncio.Condition" title="asyncio.Condition"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Condition</span></code></a> with explicit
<a class="reference internal" href="../library/asyncio-sync.html#asyncio.Lock" title="asyncio.Lock"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Lock</span></code></a> objects, which was a regression due to removal of
explicit loop arguments. Patch by Joongi Kim.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20028">bpo-20028</a>: Empty escapechar/quotechar is not allowed when initializing
<a class="reference internal" href="../library/csv.html#csv.Dialect" title="csv.Dialect"><code class="xref py py-class docutils literal notranslate"><span class="pre">csv.Dialect</span></code></a>. Patch by Vajrasky Kok and Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44904">bpo-44904</a>: Fix bug in the <a class="reference internal" href="../library/doctest.html#module-doctest" title="doctest: Test pieces of code within docstrings."><code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code></a> module that caused it to fail if
a docstring included an example with a <code class="docutils literal notranslate"><span class="pre">classmethod</span></code> <code class="docutils literal notranslate"><span class="pre">property</span></code>. Patch
by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45406">bpo-45406</a>: Make <a class="reference internal" href="../library/inspect.html#inspect.getmodule" title="inspect.getmodule"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getmodule()</span></code></a> catch <code class="docutils literal notranslate"><span class="pre">FileNotFoundError</span></code>
raised by <code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getabsfile()</span></code>, and return <code class="docutils literal notranslate"><span class="pre">None</span></code> to indicate that
the module could not be determined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45411">bpo-45411</a>: Add extensions for files containing subtitles - .srt & .vtt -
to the mimetypes.py module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10716">bpo-10716</a>: Migrated pydoc to HTML5 (without changing the look of it). Side
effect is to update xmlrpc’s <code class="docutils literal notranslate"><span class="pre">ServerHTMLDoc</span></code> which now uses the CSS too.
cgitb now relies less on pydoc (as it can’t use the CSS file).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27580">bpo-27580</a>: Add support of null characters in <a class="reference internal" href="../library/csv.html#module-csv" title="csv: Write and read tabular data to and from delimited files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45262">bpo-45262</a>: Prevent use-after-free in asyncio. Make sure the cached running
loop holder gets cleared on dealloc to prevent use-after-free in
get_running_loop</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45386">bpo-45386</a>: Make <a class="reference internal" href="../library/xmlrpc.client.html#module-xmlrpc.client" title="xmlrpc.client: XML-RPC client access."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xmlrpc.client</span></code></a> more robust to C runtimes where the
underlying C <code class="docutils literal notranslate"><span class="pre">strftime</span></code> function results in a <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> when
testing for year formatting options.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20028">bpo-20028</a>: Improve error message of <a class="reference internal" href="../library/csv.html#csv.Dialect" title="csv.Dialect"><code class="xref py py-class docutils literal notranslate"><span class="pre">csv.Dialect</span></code></a> when
initializing. Patch by Vajrasky Kok and Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45343">bpo-45343</a>: Update bundled pip to 21.2.4 and setuptools to 58.1.0</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45328">bpo-45328</a>: Fixed <a class="reference internal" href="../library/http.client.html#http.client.HTTPConnection" title="http.client.HTTPConnection"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.client.HTTPConnection</span></code></a> to work properly in
OSs that don’t support the <code class="docutils literal notranslate"><span class="pre">TCP_NODELAY</span></code> socket option.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45243">bpo-45243</a>: Add <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.setlimit" title="sqlite3.Connection.setlimit"><code class="xref py py-meth docutils literal notranslate"><span class="pre">setlimit()</span></code></a> and
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.getlimit" title="sqlite3.Connection.getlimit"><code class="xref py py-meth docutils literal notranslate"><span class="pre">getlimit()</span></code></a> to <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> for
setting and getting SQLite limits by connection basis. Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45320">bpo-45320</a>: Removed from the <a class="reference internal" href="../library/inspect.html#module-inspect" title="inspect: Extract information and source code from live objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">inspect</span></code></a> module:</p>
<ul class="simple">
<li><dl class="simple">
<dt>the <code class="docutils literal notranslate"><span class="pre">getargspec</span></code> function, deprecated since Python 3.0;</dt><dd><p>use <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> or <a class="reference internal" href="../library/inspect.html#inspect.getfullargspec" title="inspect.getfullargspec"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getfullargspec()</span></code></a> instead.</p>
</dd>
</dl>
</li>
<li><p>the <code class="docutils literal notranslate"><span class="pre">formatargspec</span></code> function, deprecated since Python 3.5;
use the <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> function and <code class="xref py py-class docutils literal notranslate"><span class="pre">Signature</span></code> object
directly.</p></li>
<li><p>the undocumented <code class="docutils literal notranslate"><span class="pre">Signature.from_builtin</span></code> and <code class="docutils literal notranslate"><span class="pre">Signature.from_function</span></code>
functions, deprecated since Python 3.5; use the
<a class="reference internal" href="../library/inspect.html#inspect.Signature.from_callable" title="inspect.Signature.from_callable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Signature.from_callable()</span></code></a> method
instead.</p></li>
</ul>
<p>Patch by Hugo van Kemenade.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45192">bpo-45192</a>: Fix the <code class="docutils literal notranslate"><span class="pre">tempfile._infer_return_type</span></code> function so that the
<code class="docutils literal notranslate"><span class="pre">dir</span></code> argument of the <a class="reference internal" href="../library/tempfile.html#module-tempfile" title="tempfile: Generate temporary files and directories."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tempfile</span></code></a> functions accepts an object
implementing the <code class="docutils literal notranslate"><span class="pre">os.PathLike</span></code> protocol.</p>
<p>Patch by Kyungmin Lee.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45160">bpo-45160</a>: When tracing a tkinter variable used by a ttk OptionMenu,
callbacks are no longer made twice.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25625">bpo-25625</a>: Added non parallel-safe <a class="reference internal" href="../library/contextlib.html#contextlib.chdir" title="contextlib.chdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">chdir()</span></code></a> context
manager to change the current working directory and then restore it on
exit. Simple wrapper around <a class="reference internal" href="../library/os.html#os.chdir" title="os.chdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">chdir()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24139">bpo-24139</a>: Add support for SQLite extended result codes in
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Error" title="sqlite3.Error"><code class="xref py py-exc docutils literal notranslate"><span class="pre">sqlite3.Error</span></code></a>. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24444">bpo-24444</a>: Fixed an error raised in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> help display when help
for an option is set to 1+ blank spaces or when <em>choices</em> arg is an empty
container.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44547">bpo-44547</a>: Implement <code class="docutils literal notranslate"><span class="pre">Fraction.__int__</span></code>, so that a
<a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a> instance <code class="docutils literal notranslate"><span class="pre">f</span></code> passes an <code class="docutils literal notranslate"><span class="pre">isinstance(f,</span>
<span class="pre">typing.SupportsInt)</span></code> check.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40321">bpo-40321</a>: Adds support for HTTP 308 redirects to <a class="reference internal" href="../library/urllib.html#module-urllib" title="urllib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib</span></code></a>. See
<span class="target" id="index-212"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc7538.html"><strong>RFC 7538</strong></a> for details. Patch by Jochem Schulenklopper.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41374">bpo-41374</a>: Ensure that <code class="docutils literal notranslate"><span class="pre">socket.TCP_*</span></code> constants are exposed on Cygwin
3.1.6 and greater.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35970">bpo-35970</a>: Add help flag to the base64 module’s command line interface.
Patch contributed by Robert Kuska.</p></li>
</ul>
</section>
<section id="id312">
<h3>Documentation<a class="headerlink" href="#id312" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45726">bpo-45726</a>: Improve documentation for <a class="reference internal" href="../library/functools.html#functools.singledispatch" title="functools.singledispatch"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.singledispatch()</span></code></a> and
<a class="reference internal" href="../library/functools.html#functools.singledispatchmethod" title="functools.singledispatchmethod"><code class="xref py py-class docutils literal notranslate"><span class="pre">functools.singledispatchmethod</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45680">bpo-45680</a>: Amend the docs on <code class="docutils literal notranslate"><span class="pre">GenericAlias</span></code> objects to clarify that
non-container classes can also implement <code class="docutils literal notranslate"><span class="pre">__class_getitem__</span></code>. Patch
contributed by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45618">bpo-45618</a>: Update Sphinx version used to build the documentation to 4.2.0.
Patch by Maciej Olko.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45655">bpo-45655</a>: Add a new “relevant PEPs” section to the top of the
documentation for the <code class="docutils literal notranslate"><span class="pre">typing</span></code> module. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45604">bpo-45604</a>: Add <code class="docutils literal notranslate"><span class="pre">level</span></code> argument to <code class="docutils literal notranslate"><span class="pre">multiprocessing.log_to_stderr</span></code>
function docs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45516">bpo-45516</a>: Add protocol description to the
<a class="reference internal" href="../library/importlib.html#importlib.abc.TraversableResources" title="importlib.abc.TraversableResources"><code class="xref py py-class docutils literal notranslate"><span class="pre">importlib.abc.TraversableResources</span></code></a> documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45464">bpo-45464</a>: Mention in the documentation of <a class="reference internal" href="../library/exceptions.html#bltin-exceptions"><span class="std std-ref">Built-in Exceptions</span></a> that inheriting from multiple exception types in a
single subclass is not recommended due to possible memory layout
incompatibility.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45449">bpo-45449</a>: Add note about <span class="target" id="index-213"></span><a class="pep reference external" href="https://peps.python.org/pep-0585/"><strong>PEP 585</strong></a> in <a class="reference internal" href="../library/collections.abc.html#module-collections.abc" title="collections.abc: Abstract base classes for containers"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45516">bpo-45516</a>: Add protocol description to the
<a class="reference internal" href="../library/importlib.html#importlib.abc.Traversable" title="importlib.abc.Traversable"><code class="xref py py-class docutils literal notranslate"><span class="pre">importlib.abc.Traversable</span></code></a> documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20692">bpo-20692</a>: Add Programming FAQ entry explaining that int literal attribute
access requires either a space after or parentheses around the literal.</p></li>
</ul>
</section>
<section id="id313">
<h3>Tests<a class="headerlink" href="#id313" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45678">bpo-45678</a>: Add tests for scenarios in which
<a class="reference internal" href="../library/functools.html#functools.singledispatchmethod" title="functools.singledispatchmethod"><code class="xref py py-class docutils literal notranslate"><span class="pre">functools.singledispatchmethod</span></code></a> is stacked on top of a method that
has already been wrapped by two other decorators. Patch by Alex Waygood.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45578">bpo-45578</a>: Add tests for <a class="reference internal" href="../library/dis.html#dis.distb" title="dis.distb"><code class="xref py py-func docutils literal notranslate"><span class="pre">dis.distb()</span></code></a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45678">bpo-45678</a>: Add tests to ensure that <code class="docutils literal notranslate"><span class="pre">functools.singledispatchmethod</span></code>
correctly wraps the attributes of the target function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45668">bpo-45668</a>: PGO tests now pass when Python is built without test extension
modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45577">bpo-45577</a>: Add subtests for all <code class="docutils literal notranslate"><span class="pre">pickle</span></code> protocols in <code class="docutils literal notranslate"><span class="pre">test_zoneinfo</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45566">bpo-45566</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_frozen_pickle</span></code> in <code class="docutils literal notranslate"><span class="pre">test_dataclasses</span></code> to check all
<code class="docutils literal notranslate"><span class="pre">pickle</span></code> versions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43592">bpo-43592</a>: <code class="xref py py-mod docutils literal notranslate"><span class="pre">test.libregrtest</span></code> now raises the soft resource limit for
the maximum number of file descriptors when the default is too low for our
test suite as was often the case on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39679">bpo-39679</a>: Add more test cases for <code class="docutils literal notranslate"><span class="pre">@functools.singledispatchmethod</span></code>
when combined with <code class="docutils literal notranslate"><span class="pre">@classmethod</span></code> or <code class="docutils literal notranslate"><span class="pre">@staticmethod</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45410">bpo-45410</a>: When libregrtest spawns a worker process, stderr is now written
into stdout to keep messages order. Use a single pipe for stdout and
stderr, rather than two pipes. Previously, messages were out of order
which made analysis of buildbot logs harder Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45402">bpo-45402</a>: Fix test_tools.test_sundry() when Python is built out of tree:
fix how the freeze_modules.py tool locates the _freeze_module program.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45403">bpo-45403</a>: Fix test_sys.test_stdlib_dir() when Python is built outside the
source tree: compare normalized paths. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45400">bpo-45400</a>: Fix
test_name_error_suggestions_do_not_trigger_for_too_many_locals() of
test_exceptions if a directory name contains “a1” (like
“Python-3.11.0a1”): use a stricter regular expression. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10572">bpo-10572</a>: Rename <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> tests from <code class="docutils literal notranslate"><span class="pre">test_sqlite</span></code> to
<code class="docutils literal notranslate"><span class="pre">test_sqlite3</span></code>, and relocate them to <code class="docutils literal notranslate"><span class="pre">Lib/test/test_sqlite3</span></code>. Patch by
Erlend E. Aasland.</p></li>
</ul>
</section>
<section id="id314">
<h3>Build<a class="headerlink" href="#id314" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43158">bpo-43158</a>: <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> now uses values from configure script to build the
<code class="docutils literal notranslate"><span class="pre">_uuid</span></code> extension module. Configure now detects util-linux’s
<code class="docutils literal notranslate"><span class="pre">libuuid</span></code>, too.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45666">bpo-45666</a>: Fix warning of <code class="docutils literal notranslate"><span class="pre">swprintf</span></code> and <code class="docutils literal notranslate"><span class="pre">%s</span></code> usage in
<code class="docutils literal notranslate"><span class="pre">_testembed.c</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45548">bpo-45548</a>: <code class="docutils literal notranslate"><span class="pre">Modules/Setup</span></code> and <code class="docutils literal notranslate"><span class="pre">Modules/makesetup</span></code> have been improved.
The <code class="docutils literal notranslate"><span class="pre">Setup</span></code> file now contains working rules for all extensions. Outdated
comments have been removed. Rules defined by <code class="docutils literal notranslate"><span class="pre">makesetup</span></code> track
dependencies correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45548">bpo-45548</a>: The <a class="reference internal" href="../library/math.html#module-math" title="math: Mathematical functions (sin() etc.)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code></a> and <a class="reference internal" href="../library/cmath.html#module-cmath" title="cmath: Mathematical functions for complex numbers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">cmath</span></code></a> implementation now require a
C99 compatible <code class="docutils literal notranslate"><span class="pre">libm</span></code> and no longer ship with workarounds for missing
acosh, asinh, atanh, expm1, and log1p functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45595">bpo-45595</a>: <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> and <code class="docutils literal notranslate"><span class="pre">makesetup</span></code> now track build dependencies on
all Python header files and module specific header files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45571">bpo-45571</a>: <code class="docutils literal notranslate"><span class="pre">Modules/Setup</span></code> now use <code class="docutils literal notranslate"><span class="pre">PY_CFLAGS_NODIST</span></code> instead of
<code class="docutils literal notranslate"><span class="pre">PY_CFLAGS</span></code> to compile shared modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45570">bpo-45570</a>: <code class="xref py py-mod docutils literal notranslate"><span class="pre">pyexpat</span></code> and <code class="xref py py-mod docutils literal notranslate"><span class="pre">_elementtree</span></code> no longer define
obsolete macros <code class="docutils literal notranslate"><span class="pre">HAVE_EXPAT_CONFIG_H</span></code> and <code class="docutils literal notranslate"><span class="pre">USE_PYEXPAT_CAPI</span></code>.
<code class="docutils literal notranslate"><span class="pre">XML_POOR_ENTROPY</span></code> is now defined in <code class="docutils literal notranslate"><span class="pre">expat_config.h</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43974">bpo-43974</a>: <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> no longer defines <code class="docutils literal notranslate"><span class="pre">Py_BUILD_CORE_MODULE</span></code>.
Instead every module, that uses the internal API, defines the macro.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45548">bpo-45548</a>: Fill in missing entries in Modules/Setup.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45532">bpo-45532</a>: Update <a class="reference internal" href="../library/sys.html#sys.version" title="sys.version"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.version</span></code></a> to use <code class="docutils literal notranslate"><span class="pre">main</span></code> as fallback
information. Patch by Jeong YunWon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45536">bpo-45536</a>: The <code class="docutils literal notranslate"><span class="pre">configure</span></code> script now checks whether OpenSSL headers and
libraries provide required APIs. Most common APIs are verified. The check
detects outdated or missing OpenSSL. Failures do not stop configure.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45221">bpo-45221</a>: Fixed regression in handling of <code class="docutils literal notranslate"><span class="pre">LDFLAGS</span></code> and <code class="docutils literal notranslate"><span class="pre">CPPFLAGS</span></code>
options where <code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.parse_known_args()</span></code> could interpret an option
as one of the built-in command line argument, for example <code class="docutils literal notranslate"><span class="pre">-h</span></code> for help.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45440">bpo-45440</a>: Building Python now requires a C99 <code class="docutils literal notranslate"><span class="pre"><math.h></span></code> header file
providing the following functions: <code class="docutils literal notranslate"><span class="pre">copysign()</span></code>, <code class="docutils literal notranslate"><span class="pre">hypot()</span></code>,
<code class="docutils literal notranslate"><span class="pre">isfinite()</span></code>, <code class="docutils literal notranslate"><span class="pre">isinf()</span></code>, <code class="docutils literal notranslate"><span class="pre">isnan()</span></code>, <code class="docutils literal notranslate"><span class="pre">round()</span></code>. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45405">bpo-45405</a>: Prevent <code class="docutils literal notranslate"><span class="pre">internal</span> <span class="pre">configure</span> <span class="pre">error</span></code> when running <code class="docutils literal notranslate"><span class="pre">configure</span></code>
with recent versions of non-Apple clang. Patch by David Bohman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45433">bpo-45433</a>: Avoid linking libpython with libcrypt.</p></li>
</ul>
</section>
<section id="id315">
<h3>Windows<a class="headerlink" href="#id315" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43652">bpo-43652</a>: Update Tcl/Tk to 8.6.11, actually this time. The previous
update incorrectly included 8.6.10.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45337">bpo-45337</a>: venv now warns when the created environment may need to be
accessed at a different path, due to redirections, links or junctions. It
also now correctly installs or upgrades components when the alternate path
is required.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43851">bpo-43851</a>: Build SQLite <code class="docutils literal notranslate"><span class="pre">SQLITE_OMIT_AUTOINIT</span></code> on Windows. Patch by
Erlend E. Aasland.</p></li>
</ul>
</section>
<section id="id316">
<h3>macOS<a class="headerlink" href="#id316" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44828">bpo-44828</a>: Avoid tkinter file dialog failure on macOS 12 Monterey when
using the Tk 8.6.11 provided by python.org macOS installers. Patch by Marc
Culler of the Tk project.</p></li>
</ul>
</section>
<section id="id317">
<h3>IDLE<a class="headerlink" href="#id317" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45495">bpo-45495</a>: Add context keywords ‘case’ and ‘match’ to completions list.</p></li>
</ul>
</section>
<section id="id318">
<h3>C API<a class="headerlink" href="#id318" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29103">bpo-29103</a>: <a class="reference internal" href="../c-api/type.html#c.PyType_FromModuleAndSpec" title="PyType_FromModuleAndSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpec*</span></code></a> now
copies the class name from the spec to a buffer owned by the class, so the
original can be safely deallocated. Patch by Petr Viktorin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45522">bpo-45522</a>: The internal freelists for frame, float, list, dict, async
generators, and context objects can now be disabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35134">bpo-35134</a>: Exclude <a class="reference internal" href="../c-api/weakref.html#c.PyWeakref_GET_OBJECT" title="PyWeakref_GET_OBJECT"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyWeakref_GET_OBJECT()</span></code></a> from the limited C API.
It never worked since the <code class="xref c c-type docutils literal notranslate"><span class="pre">PyWeakReference</span></code> structure is opaque
in the limited C API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35081">bpo-35081</a>: Move the <code class="docutils literal notranslate"><span class="pre">interpreteridobject.h</span></code> header file from
<code class="docutils literal notranslate"><span class="pre">Include/</span></code> to <code class="docutils literal notranslate"><span class="pre">Include/internal/</span></code>. It only provides private functions.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35134">bpo-35134</a>: The non-limited API files <code class="docutils literal notranslate"><span class="pre">cellobject.h</span></code>, <code class="docutils literal notranslate"><span class="pre">classobject.h</span></code>,
<code class="docutils literal notranslate"><span class="pre">context.h</span></code>, <code class="docutils literal notranslate"><span class="pre">funcobject.h</span></code>, <code class="docutils literal notranslate"><span class="pre">genobject.h</span></code> and <code class="docutils literal notranslate"><span class="pre">longintrepr.h</span></code>
have been moved to the <code class="docutils literal notranslate"><span class="pre">Include/cpython</span></code> directory. Moreover, the
<code class="docutils literal notranslate"><span class="pre">eval.h</span></code> header file was removed. These files must not be included
directly, as they are already included in <code class="docutils literal notranslate"><span class="pre">Python.h</span></code>: <a class="reference internal" href="../c-api/intro.html#api-includes"><span class="std std-ref">Include
Files</span></a>. If they have been included directly, consider
including <code class="docutils literal notranslate"><span class="pre">Python.h</span></code> instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45474">bpo-45474</a>: The following items are no longer available when
<code class="docutils literal notranslate"><span class="pre">Py_LIMITED_API</span></code> is defined:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../c-api/marshal.html#c.PyMarshal_WriteLongToFile" title="PyMarshal_WriteLongToFile"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMarshal_WriteLongToFile()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/marshal.html#c.PyMarshal_WriteObjectToFile" title="PyMarshal_WriteObjectToFile"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMarshal_WriteObjectToFile()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/marshal.html#c.PyMarshal_ReadObjectFromString" title="PyMarshal_ReadObjectFromString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMarshal_ReadObjectFromString()</span></code></a></p></li>
<li><p><a class="reference internal" href="../c-api/marshal.html#c.PyMarshal_WriteObjectToString" title="PyMarshal_WriteObjectToString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMarshal_WriteObjectToString()</span></code></a></p></li>
<li><p>the <code class="docutils literal notranslate"><span class="pre">Py_MARSHAL_VERSION</span></code> macro</p></li>
</ul>
<p>These are not part of the <a class="reference internal" href="../c-api/stable.html#limited-api-list"><span class="std std-ref">limited API</span></a>.</p>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45434">bpo-45434</a>: Remove the <code class="docutils literal notranslate"><span class="pre">pystrhex.h</span></code> header file. It only contains private
functions. C extensions should only include the main <code class="docutils literal notranslate"><span class="pre"><Python.h></span></code> header
file. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45440">bpo-45440</a>: Remove the <code class="docutils literal notranslate"><span class="pre">Py_FORCE_DOUBLE()</span></code> macro. It was used by the
<code class="docutils literal notranslate"><span class="pre">Py_IS_INFINITY()</span></code> macro. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45434">bpo-45434</a>: <code class="docutils literal notranslate"><span class="pre"><Python.h></span></code> no longer includes the header files
<code class="docutils literal notranslate"><span class="pre"><stdlib.h></span></code>, <code class="docutils literal notranslate"><span class="pre"><stdio.h></span></code>, <code class="docutils literal notranslate"><span class="pre"><errno.h></span></code> and <code class="docutils literal notranslate"><span class="pre"><string.h></span></code> when the
<code class="docutils literal notranslate"><span class="pre">Py_LIMITED_API</span></code> macro is set to <code class="docutils literal notranslate"><span class="pre">0x030b0000</span></code> (Python 3.11) or higher.
C extensions should explicitly include the header files after <code class="docutils literal notranslate"><span class="pre">#include</span>
<span class="pre"><Python.h></span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41123">bpo-41123</a>: Remove <code class="docutils literal notranslate"><span class="pre">Py_UNICODE_COPY()</span></code> and <code class="docutils literal notranslate"><span class="pre">Py_UNICODE_FILL()</span></code> macros,
deprecated since Python 3.3. Use <code class="docutils literal notranslate"><span class="pre">PyUnicode_CopyCharacters()</span></code> or
<code class="docutils literal notranslate"><span class="pre">memcpy()</span></code> (<code class="docutils literal notranslate"><span class="pre">wchar_t*</span></code> string), and <code class="docutils literal notranslate"><span class="pre">PyUnicode_Fill()</span></code> functions
instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45412">bpo-45412</a>: Remove the following math macros using the <code class="docutils literal notranslate"><span class="pre">errno</span></code> variable:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">Py_ADJUST_ERANGE1()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Py_ADJUST_ERANGE2()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Py_OVERFLOWED()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Py_SET_ERANGE_IF_OVERFLOW()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Py_SET_ERRNO_ON_MATH_ERROR()</span></code></p></li>
</ul>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45395">bpo-45395</a>: Custom frozen modules (the array set to
<code class="docutils literal notranslate"><span class="pre">PyImport_FrozenModules</span></code>) are now treated as additions, rather than
replacing all the default frozen modules. Frozen stdlib modules can still
be disabled by setting the “code” field of the custom array entry to NULL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43760">bpo-43760</a>: Add new <a class="reference internal" href="../c-api/init.html#c.PyThreadState_EnterTracing" title="PyThreadState_EnterTracing"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_EnterTracing()</span></code></a>, and
<a class="reference internal" href="../c-api/init.html#c.PyThreadState_LeaveTracing" title="PyThreadState_LeaveTracing"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_LeaveTracing()</span></code></a> functions to the limited C API to
suspend and resume tracing and profiling. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44220">bpo-44220</a>: <a class="reference internal" href="../c-api/tuple.html#c.PyStructSequence_UnnamedField" title="PyStructSequence_UnnamedField"><code class="xref c c-var docutils literal notranslate"><span class="pre">PyStructSequence_UnnamedField</span></code></a> is added to the Stable
ABI.</p></li>
</ul>
</section>
</section>
<section id="python-3-11-0-alpha-1">
<h2>Python 3.11.0 alpha 1<a class="headerlink" href="#python-3-11-0-alpha-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2021-10-05</em></p>
<section id="id319">
<h3>Security<a class="headerlink" href="#id319" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42278">bpo-42278</a>: Replaced usage of <a class="reference internal" href="../library/tempfile.html#tempfile.mktemp" title="tempfile.mktemp"><code class="xref py py-func docutils literal notranslate"><span class="pre">tempfile.mktemp()</span></code></a> with
<a class="reference internal" href="../library/tempfile.html#tempfile.TemporaryDirectory" title="tempfile.TemporaryDirectory"><code class="xref py py-class docutils literal notranslate"><span class="pre">TemporaryDirectory</span></code></a> to avoid a potential race condition.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44600">bpo-44600</a>: Fix incorrect line numbers while tracing some failed patterns
in <a class="reference internal" href="../reference/compound_stmts.html#match"><span class="std std-ref">match</span></a> statements. Patch by Charles Burkland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41180">bpo-41180</a>: Add auditing events to the <a class="reference internal" href="../library/marshal.html#module-marshal" title="marshal: Convert Python objects to streams of bytes and back (with different constraints)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">marshal</span></code></a> module, and stop
raising <code class="docutils literal notranslate"><span class="pre">code.__init__</span></code> events for every unmarshalled code object.
Directly instantiated code objects will continue to raise an event, and
audit event handlers should inspect or collect the raw marshal data. This
reduces a significant performance overhead when loading from <code class="docutils literal notranslate"><span class="pre">.pyc</span></code>
files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44394">bpo-44394</a>: Update the vendored copy of libexpat to 2.4.1 (from 2.2.8) to
get the fix for the <span class="target" id="index-214"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2013-0340"><strong>CVE 2013-0340</strong></a> “Billion Laughs” vulnerability. This
copy is most used on Windows and macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43124">bpo-43124</a>: Made the internal <code class="docutils literal notranslate"><span class="pre">putcmd</span></code> function in <a class="reference internal" href="../library/smtplib.html#module-smtplib" title="smtplib: SMTP protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">smtplib</span></code></a>
sanitize input for presence of <code class="docutils literal notranslate"><span class="pre">\r</span></code> and <code class="docutils literal notranslate"><span class="pre">\n</span></code> characters to avoid
(unlikely) command injection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44022">bpo-44022</a>: <a class="reference internal" href="../library/http.client.html#module-http.client" title="http.client: HTTP and HTTPS protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.client</span></code></a> now avoids infinitely reading potential HTTP
headers after a <code class="docutils literal notranslate"><span class="pre">100</span> <span class="pre">Continue</span></code> status response from the server.</p></li>
</ul>
</section>
<section id="id320">
<h3>Core and Builtins<a class="headerlink" href="#id320" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43760">bpo-43760</a>: The number of hardware branches per instruction dispatch is
reduced from two to one by adding a special instruction for tracing. Patch
by Mark Shannon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45061">bpo-45061</a>: Add a deallocator to the bool type to detect refcount bugs in C
extensions which call Py_DECREF(Py_True) or Py_DECREF(Py_False) by
mistake. Detect also refcount bugs when the empty tuple singleton or the
Unicode empty string singleton is destroyed by mistake. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24076">bpo-24076</a>: sum() was further optimised for summing up single digit
integers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45190">bpo-45190</a>: Update Unicode databases to Unicode 14.0.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45167">bpo-45167</a>: Fix deepcopying of <a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a> objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45155">bpo-45155</a>: <a class="reference internal" href="../library/stdtypes.html#int.to_bytes" title="int.to_bytes"><code class="xref py py-meth docutils literal notranslate"><span class="pre">int.to_bytes()</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#int.from_bytes" title="int.from_bytes"><code class="xref py py-meth docutils literal notranslate"><span class="pre">int.from_bytes()</span></code></a> now take a
default value of <code class="docutils literal notranslate"><span class="pre">"big"</span></code> for the <code class="docutils literal notranslate"><span class="pre">byteorder</span></code> argument.
<a class="reference internal" href="../library/stdtypes.html#int.to_bytes" title="int.to_bytes"><code class="xref py py-meth docutils literal notranslate"><span class="pre">int.to_bytes()</span></code></a> also takes a default value of <code class="docutils literal notranslate"><span class="pre">1</span></code> for the
<code class="docutils literal notranslate"><span class="pre">length</span></code> argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44219">bpo-44219</a>: Release the GIL while performing <code class="docutils literal notranslate"><span class="pre">isatty</span></code> system calls on
arbitrary file descriptors. In particular, this affects <a class="reference internal" href="../library/os.html#os.isatty" title="os.isatty"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.isatty()</span></code></a>,
<a class="reference internal" href="../library/os.html#os.device_encoding" title="os.device_encoding"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.device_encoding()</span></code></a> and <a class="reference internal" href="../library/io.html#io.TextIOWrapper" title="io.TextIOWrapper"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.TextIOWrapper</span></code></a>. By extension,
<a class="reference internal" href="../library/io.html#io.open" title="io.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.open()</span></code></a> in text mode is also affected. This change solves a
deadlock in <a class="reference internal" href="../library/os.html#os.isatty" title="os.isatty"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.isatty()</span></code></a>. Patch by Vincent Michel in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44219">bpo-44219</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44959">bpo-44959</a>: Added fallback to extension modules with ‘.sl’ suffix on HP-UX</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45121">bpo-45121</a>: Fix issue where <code class="docutils literal notranslate"><span class="pre">Protocol.__init__</span></code> raises <code class="docutils literal notranslate"><span class="pre">RecursionError</span></code>
when it’s called directly or via <code class="docutils literal notranslate"><span class="pre">super()</span></code>. Patch provided by Yurii
Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44348">bpo-44348</a>: The deallocator function of the <a class="reference internal" href="../library/exceptions.html#BaseException" title="BaseException"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BaseException</span></code></a> type now
uses the trashcan mechanism to prevent stack overflow. For example, when a
<a class="reference internal" href="../library/exceptions.html#RecursionError" title="RecursionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RecursionError</span></code></a> instance is raised, it can be linked to another
RecursionError through the <code class="docutils literal notranslate"><span class="pre">__context__</span></code> attribute or the
<code class="docutils literal notranslate"><span class="pre">__traceback__</span></code> attribute, and then a chain of exceptions is created.
When the chain is destroyed, nested deallocator function calls can crash
with a stack overflow if the chain is too long compared to the available
stack memory. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45123">bpo-45123</a>: Fix PyAiter_Check to only check for the __anext__ presence (not
for __aiter__). Rename PyAiter_Check to PyAIter_Check, PyObject_GetAiter
-> PyObject_GetAIter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1514420">bpo-1514420</a>: Interpreter no longer attempts to open files with names in
angle brackets (like “<string>” or “<stdin>”) when formatting an
exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41031">bpo-41031</a>: Match C and Python code formatting of unprintable exceptions
and exceptions in the <a class="reference internal" href="../library/__main__.html#module-__main__" title="__main__: The environment where top-level code is run. Covers command-line interfaces, import-time behavior, and ``__name__ == '__main__'``."><code class="xref py py-mod docutils literal notranslate"><span class="pre">__main__</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37330">bpo-37330</a>: <a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a>, <a class="reference internal" href="../library/io.html#io.open" title="io.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.open()</span></code></a>, <a class="reference internal" href="../library/codecs.html#codecs.open" title="codecs.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">codecs.open()</span></code></a> and
<a class="reference internal" href="../library/fileinput.html#fileinput.FileInput" title="fileinput.FileInput"><code class="xref py py-class docutils literal notranslate"><span class="pre">fileinput.FileInput</span></code></a> no longer accept <code class="docutils literal notranslate"><span class="pre">'U'</span></code> (“universal
newline”) in the file mode. This flag was deprecated since Python 3.3.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45083">bpo-45083</a>: When the interpreter renders an exception, its name now has a
complete qualname. Previously only the class name was concatenated to the
module name, which sometimes resulted in an incorrect full name being
displayed.</p>
<p>(This issue impacted only the C code exception rendering, the
<a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> module was using qualname already).</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34561">bpo-34561</a>: List sorting now uses the merge-ordering strategy from Munro
and Wild’s <code class="docutils literal notranslate"><span class="pre">powersort()</span></code>. Unlike the former strategy, this is provably
near-optimal in the entropy of the distribution of run lengths. Most uses
of <code class="docutils literal notranslate"><span class="pre">list.sort()</span></code> probably won’t see a significant time difference, but
may see significant improvements in cases where the former strategy was
exceptionally poor. However, as these are all fast linear-time
approximations to a problem that’s inherently at best quadratic-time to
solve truly optimally, it’s also possible to contrive cases where the
former strategy did better.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45056">bpo-45056</a>: Compiler now removes trailing unused constants from co_consts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45020">bpo-45020</a>: Add a new command line option, “-X frozen_modules=[on|off]” to
opt out of (or into) using optional frozen modules. This defaults to “on”
(or “off” if it’s running out of the source tree).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45012">bpo-45012</a>: In <a class="reference internal" href="../library/posix.html#module-posix" title="posix: The most common POSIX system calls (normally used via module os). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">posix</span></code></a>, release GIL during <code class="docutils literal notranslate"><span class="pre">stat()</span></code>, <code class="docutils literal notranslate"><span class="pre">lstat()</span></code>,
and <code class="docutils literal notranslate"><span class="pre">fstatat()</span></code> syscalls made by <a class="reference internal" href="../library/os.html#os.DirEntry.stat" title="os.DirEntry.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.DirEntry.stat()</span></code></a>. Patch by
Stanisław Skonieczny.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45018">bpo-45018</a>: Fixed pickling of range iterators that iterated for over
<code class="docutils literal notranslate"><span class="pre">2**32</span></code> times.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45000">bpo-45000</a>: A <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> is now raised when trying to delete
<a class="reference internal" href="../library/constants.html#debug__" title="__debug__"><code class="xref py py-const docutils literal notranslate"><span class="pre">__debug__</span></code></a>. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44963">bpo-44963</a>: Implement <code class="docutils literal notranslate"><span class="pre">send()</span></code> and <code class="docutils literal notranslate"><span class="pre">throw()</span></code> methods for
<code class="docutils literal notranslate"><span class="pre">anext_awaitable</span></code> objects. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44962">bpo-44962</a>: Fix a race in WeakKeyDictionary, WeakValueDictionary and
WeakSet when two threads attempt to commit the last pending removal. This
fixes asyncio.create_task and fixes a data loss in asyncio.run where
shutdown_asyncgens is not run</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24234">bpo-24234</a>: Implement the <code class="xref py py-meth docutils literal notranslate"><span class="pre">__bytes__()</span></code> special method on the
<a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> type, so a bytes object <code class="docutils literal notranslate"><span class="pre">b</span></code> passes an <code class="docutils literal notranslate"><span class="pre">isinstance(b,</span>
<span class="pre">typing.SupportsBytes)</span></code> check.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24234">bpo-24234</a>: Implement the <code class="xref py py-meth docutils literal notranslate"><span class="pre">__complex__()</span></code> special method on the
<a class="reference internal" href="../library/functions.html#complex" title="complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">complex</span></code></a> type, so a complex number <code class="docutils literal notranslate"><span class="pre">z</span></code> passes an <code class="docutils literal notranslate"><span class="pre">isinstance(z,</span>
<span class="pre">typing.SupportsComplex)</span></code> check.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44954">bpo-44954</a>: Fixed a corner case bug where the result of
<code class="docutils literal notranslate"><span class="pre">float.fromhex('0x.8p-1074')</span></code> was rounded the wrong way.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44947">bpo-44947</a>: Refine the syntax error for trailing commas in import
statements. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44945">bpo-44945</a>: Specialize the BINARY_ADD instruction using the PEP 659
machinery. Adds five new instructions:</p>
<ul class="simple">
<li><p>BINARY_ADD_ADAPTIVE</p></li>
<li><p>BINARY_ADD_FLOAT</p></li>
<li><p>BINARY_ADD_INT</p></li>
<li><p>BINARY_ADD_UNICODE</p></li>
<li><p>BINARY_ADD_UNICODE_INPLACE_FAST</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44929">bpo-44929</a>: Fix some edge cases of <code class="docutils literal notranslate"><span class="pre">enum.Flag</span></code> string representation in
the REPL. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44914">bpo-44914</a>: Class version tags are no longer recycled.</p>
<p>This means that a version tag serves as a unique identifier for the state
of a class. We rely on this for effective specialization of the LOAD_ATTR
and other instructions.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44698">bpo-44698</a>: Restore behaviour of complex exponentiation with integer-valued
exponent of type <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> or <a class="reference internal" href="../library/functions.html#complex" title="complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">complex</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44895">bpo-44895</a>: A debug variable <span class="target" id="index-215"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONDUMPREFSFILE"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONDUMPREFSFILE</span></code></a> is added for
creating a dump file which is generated by <a class="reference internal" href="../using/configure.html#cmdoption-with-trace-refs"><code class="xref std std-option docutils literal notranslate"><span class="pre">--with-trace-refs</span></code></a>.
Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44900">bpo-44900</a>: Add five superinstructions for PEP 659 quickening:</p>
<ul class="simple">
<li><p>LOAD_FAST LOAD_FAST</p></li>
<li><p>STORE_FAST LOAD_FAST</p></li>
<li><p>LOAD_FAST LOAD_CONST</p></li>
<li><p>LOAD_CONST LOAD_FAST</p></li>
<li><p>STORE_FAST STORE_FAST</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44889">bpo-44889</a>: Initial implementation of adaptive specialization of
<code class="docutils literal notranslate"><span class="pre">LOAD_METHOD</span></code>. The following specialized forms were added:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">LOAD_METHOD_CACHED</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LOAD_METHOD_MODULE</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">LOAD_METHOD_CLASS</span></code></p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44890">bpo-44890</a>: Specialization stats are always collected in debug builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44885">bpo-44885</a>: Correct the ast locations of f-strings with format specs and
repeated expressions. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44878">bpo-44878</a>: Remove the loop from the bytecode interpreter. All instructions
end with a DISPATCH macro, so the loop is now redundant.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44878">bpo-44878</a>: Remove switch statement for interpreter loop when using
computed gotos. This makes sure that we only have one dispatch table in
the interpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44874">bpo-44874</a>: Deprecate the old trashcan macros
(<code class="docutils literal notranslate"><span class="pre">Py_TRASHCAN_SAFE_BEGIN</span></code>/<code class="docutils literal notranslate"><span class="pre">Py_TRASHCAN_SAFE_END</span></code>). They should be
replaced by the new macros <code class="docutils literal notranslate"><span class="pre">Py_TRASHCAN_BEGIN</span></code> and <code class="docutils literal notranslate"><span class="pre">Py_TRASHCAN_END</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44872">bpo-44872</a>: Use new trashcan macros (Py_TRASHCAN_BEGIN/END) in
frameobject.c instead of the old ones (Py_TRASHCAN_SAFE_BEGIN/END).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33930">bpo-33930</a>: Fix segmentation fault with deep recursion when cleaning method
objects. Patch by Augusto Goulart and Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25782">bpo-25782</a>: Fix bug where <code class="docutils literal notranslate"><span class="pre">PyErr_SetObject</span></code> hangs when the current
exception has a cycle in its context chain.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44856">bpo-44856</a>: Fix reference leaks in the error paths of <code class="docutils literal notranslate"><span class="pre">update_bases()</span></code>
and <code class="docutils literal notranslate"><span class="pre">__build_class__</span></code>. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44826">bpo-44826</a>: Initial implementation of adaptive specialization of STORE_ATTR</p>
<p>Three specialized forms of STORE_ATTR are added:</p>
<ul class="simple">
<li><p>STORE_ATTR_SLOT</p></li>
<li><p>STORE_ATTR_SPLIT_KEYS</p></li>
<li><p>STORE_ATTR_WITH_HINT</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44838">bpo-44838</a>: Fixed a bug that was causing the parser to raise an incorrect
custom <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> for invalid ‘if’ expressions. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44821">bpo-44821</a>: Create instance dictionaries (__dict__) eagerly, to improve
regularity of object layout and assist specialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44792">bpo-44792</a>: Improve syntax errors for if expressions. Patch by Miguel Brito</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34013">bpo-34013</a>: Generalize the invalid legacy statement custom error message
(like the one generated when “print” is called without parentheses) to
include more generic expressions. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44732">bpo-44732</a>: Rename <code class="docutils literal notranslate"><span class="pre">types.Union</span></code> to <code class="docutils literal notranslate"><span class="pre">types.UnionType</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44725">bpo-44725</a>: Expose specialization stats in python via
<code class="xref py py-func docutils literal notranslate"><span class="pre">_opcode.get_specialization_stats()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44717">bpo-44717</a>: Improve AttributeError on circular imports of submodules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44698">bpo-44698</a>: Fix undefined behaviour in complex object exponentiation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44653">bpo-44653</a>: Support <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> types in parameter substitution in the
union type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44676">bpo-44676</a>: Add ability to serialise <code class="docutils literal notranslate"><span class="pre">types.Union</span></code> objects. Patch
provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44633">bpo-44633</a>: Parameter substitution of the union type with wrong types now
raises <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> instead of returning <a class="reference internal" href="../library/constants.html#NotImplemented" title="NotImplemented"><code class="xref py py-data docutils literal notranslate"><span class="pre">NotImplemented</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44661">bpo-44661</a>: Update <code class="docutils literal notranslate"><span class="pre">property_descr_set</span></code> to use vectorcall if possible.
Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44662">bpo-44662</a>: Add <code class="docutils literal notranslate"><span class="pre">__module__</span></code> to <code class="docutils literal notranslate"><span class="pre">types.Union</span></code>. This also fixes
<code class="docutils literal notranslate"><span class="pre">types.Union</span></code> issues with <code class="docutils literal notranslate"><span class="pre">typing.Annotated</span></code>. Patch provided by Yurii
Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44655">bpo-44655</a>: Include the name of the type in unset __slots__ attribute
errors. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44655">bpo-44655</a>: Don’t include a missing attribute with the same name as the
failing one when offering suggestions for missing attributes. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44646">bpo-44646</a>: Fix the hash of the union type: it no longer depends on the
order of arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44636">bpo-44636</a>: Collapse union of equal types. E.g. the result of <code class="docutils literal notranslate"><span class="pre">int</span> <span class="pre">|</span> <span class="pre">int</span></code>
is now <code class="docutils literal notranslate"><span class="pre">int</span></code>. Fix comparison of the union type with non-hashable
objects. E.g. <code class="docutils literal notranslate"><span class="pre">int</span> <span class="pre">|</span> <span class="pre">str</span> <span class="pre">==</span> <span class="pre">{}</span></code> no longer raises a TypeError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44611">bpo-44611</a>: On Windows, <a class="reference internal" href="../library/os.html#os.urandom" title="os.urandom"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.urandom()</span></code></a>: uses BCryptGenRandom API
instead of CryptGenRandom API which is deprecated from Microsoft Windows
API. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44635">bpo-44635</a>: Convert <code class="docutils literal notranslate"><span class="pre">None</span></code> to <code class="docutils literal notranslate"><span class="pre">type(None)</span></code> in the union type
constructor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26280">bpo-26280</a>: Implement adaptive specialization for BINARY_SUBSCR</p>
<p>Three specialized forms of BINARY_SUBSCR are added:</p>
<ul class="simple">
<li><p>BINARY_SUBSCR_LIST_INT</p></li>
<li><p>BINARY_SUBSCR_TUPLE_INT</p></li>
<li><p>BINARY_SUBSCR_DICT</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44589">bpo-44589</a>: Mapping patterns in <code class="docutils literal notranslate"><span class="pre">match</span></code> statements with two or more equal
literal keys will now raise a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> at compile-time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44606">bpo-44606</a>: Fix <code class="docutils literal notranslate"><span class="pre">__instancecheck__</span></code> and <code class="docutils literal notranslate"><span class="pre">__subclasscheck__</span></code> for the
union type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42073">bpo-42073</a>: The <code class="docutils literal notranslate"><span class="pre">@classmethod</span></code> decorator can now wrap other
classmethod-like descriptors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41972">bpo-41972</a>: Tuned the string-searching algorithm of fastsearch.h to have a
shorter inner loop for most cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44590">bpo-44590</a>: All necessary data for executing a Python function (local
variables, stack, etc) is now kept in a per-thread stack. Frame objects
are lazily allocated on demand. This increases performance by about 7% on
the standard benchmark suite. Introspection and debugging are unaffected
as frame objects are always available when needed. Patch by Mark Shannon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44584">bpo-44584</a>: The threading debug (<code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONTHREADDEBUG</span></code> environment
variable) is deprecated in Python 3.10 and will be removed in Python 3.12.
This feature requires a debug build of Python. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43895">bpo-43895</a>: An obsolete internal cache of shared object file handles added
in 1995 that attempted, but did not guarantee, that a .so would not be
dlopen’ed twice to work around flaws in mid-1990s posix-ish operating
systems has been removed from dynload_shlib.c.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44490">bpo-44490</a>: <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> now searches for type parameters in
<code class="docutils literal notranslate"><span class="pre">types.Union</span></code> objects. <code class="docutils literal notranslate"><span class="pre">get_type_hints</span></code> will also properly resolve
annotations with nested <code class="docutils literal notranslate"><span class="pre">types.Union</span></code> objects. Patch provided by Yurii
Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43950">bpo-43950</a>: Code objects can now provide the column information for
instructions when available. This is levaraged during traceback printing
to show the expressions responsible for errors.</p>
<p>Contributed by Pablo Galindo, Batuhan Taskaya and Ammar Askar as part of
<span class="target" id="index-216"></span><a class="pep reference external" href="https://peps.python.org/pep-0657/"><strong>PEP 657</strong></a>.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44562">bpo-44562</a>: Remove uses of <a class="reference internal" href="../c-api/gcsupport.html#c.PyObject_GC_Del" title="PyObject_GC_Del"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GC_Del()</span></code></a> in error path when
initializing <a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41486">bpo-41486</a>: Fix a memory consumption and copying performance regression in
earlier 3.10 beta releases if someone used an output buffer larger than
4GiB with zlib.decompress on input data that expands that large.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43908">bpo-43908</a>: Heap types with the <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_IMMUTABLETYPE" title="Py_TPFLAGS_IMMUTABLETYPE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_IMMUTABLETYPE</span></code></a> flag
can now inherit the <span class="target" id="index-217"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a> vectorcall protocol. Previously, this was
only possible for <a class="reference internal" href="../c-api/typeobj.html#static-types"><span class="std std-ref">static types</span></a>. Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44553">bpo-44553</a>: Implement GC methods for <code class="docutils literal notranslate"><span class="pre">types.Union</span></code> to break reference
cycles and prevent memory leaks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44490">bpo-44490</a>: Add <code class="docutils literal notranslate"><span class="pre">__parameters__</span></code> attribute and <code class="docutils literal notranslate"><span class="pre">__getitem__</span></code> operator
to <code class="docutils literal notranslate"><span class="pre">types.Union</span></code>. Patch provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44523">bpo-44523</a>: Remove the pass-through for <a class="reference internal" href="../library/functions.html#hash" title="hash"><code class="xref py py-func docutils literal notranslate"><span class="pre">hash()</span></code></a> of
<a class="reference internal" href="../library/weakref.html#weakref.proxy" title="weakref.proxy"><code class="xref py py-class docutils literal notranslate"><span class="pre">weakref.proxy</span></code></a> objects to prevent unintended consequences when the
original referred object dies while the proxy is part of a hashable
object. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44483">bpo-44483</a>: Fix a crash in <code class="docutils literal notranslate"><span class="pre">types.Union</span></code> objects when creating a union of
an object with bad <code class="docutils literal notranslate"><span class="pre">__module__</span></code> field.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44486">bpo-44486</a>: Modules will always have a dictionary, even when created by
<code class="docutils literal notranslate"><span class="pre">types.ModuleType.__new__()</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44472">bpo-44472</a>: Fix ltrace functionality when exceptions are raised. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12022">bpo-12022</a>: A <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> is now raised instead of an
<a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> in <a class="reference internal" href="../reference/compound_stmts.html#with"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">with</span></code></a> and <a class="reference internal" href="../reference/compound_stmts.html#async-with"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">async</span> <span class="pre">with</span></code></a>
statements for objects which do not support the <a class="reference internal" href="../glossary.html#term-context-manager"><span class="xref std std-term">context manager</span></a> or
<a class="reference internal" href="../glossary.html#term-asynchronous-context-manager"><span class="xref std std-term">asynchronous context manager</span></a> protocols correspondingly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44297">bpo-44297</a>: Make sure that the line number is set when entering a
comprehension scope. This ensures that backtraces including generator
expressions show the correct line number.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44456">bpo-44456</a>: Improve the syntax error when mixing positional and keyword
patterns. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44409">bpo-44409</a>: Fix error location information for tokenizer errors raised on
initialization of the tokenizer. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44396">bpo-44396</a>: Fix a possible crash in the tokenizer when raising syntax
errors for unclosed strings. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44376">bpo-44376</a>: Exact integer exponentiation (like <code class="docutils literal notranslate"><span class="pre">i**2</span></code> or <code class="docutils literal notranslate"><span class="pre">pow(i,</span> <span class="pre">2)</span></code>)
with a small exponent is much faster, due to reducing overhead in such
cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44313">bpo-44313</a>: Directly imported objects and modules (through import and from
import statements) don’t generate <code class="docutils literal notranslate"><span class="pre">LOAD_METHOD</span></code>/<code class="docutils literal notranslate"><span class="pre">CALL_METHOD</span></code> for
directly accessed objects on their namespace. They now use the regular
<code class="docutils literal notranslate"><span class="pre">LOAD_ATTR</span></code>/<code class="docutils literal notranslate"><span class="pre">CALL_FUNCTION</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44338">bpo-44338</a>: Implement adaptive specialization for LOAD_GLOBAL</p>
<p>Two specialized forms of LOAD_GLOBAL are added:</p>
<ul class="simple">
<li><p>LOAD_GLOBAL_MODULE</p></li>
<li><p>LOAD_GLOBAL_BUILTIN</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44368">bpo-44368</a>: Improve syntax errors for invalid “as” targets. Patch by Pablo
Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44349">bpo-44349</a>: Fix an edge case when displaying text from files with encoding
in syntax errors. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44337">bpo-44337</a>: Initial implementation of adaptive specialization of LOAD_ATTR</p>
<p>Four specialized forms of LOAD_ATTR are added:</p>
<ul class="simple">
<li><p>LOAD_ATTR_SLOT</p></li>
<li><p>LOAD_ATTR_SPLIT_KEYS</p></li>
<li><p>LOAD_ATTR_WITH_HINT</p></li>
<li><p>LOAD_ATTR_MODULE</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44335">bpo-44335</a>: Fix a regression when identifying incorrect characters in
syntax errors. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43693">bpo-43693</a>: Computation of the offsets of cell variables is done in the
compiler instead of at runtime. This reduces the overhead of handling cell
and free variables, especially in the case where a variable is both an
argument and cell variable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44317">bpo-44317</a>: Improve tokenizer error with improved locations. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44304">bpo-44304</a>: Fix a crash in the <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> module that happened when the
garbage collector clears <code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite.Statement</span></code> objects. Patch by Pablo
Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44305">bpo-44305</a>: Improve error message for <code class="docutils literal notranslate"><span class="pre">try</span></code> blocks without <code class="docutils literal notranslate"><span class="pre">except</span></code> or
<code class="docutils literal notranslate"><span class="pre">finally</span></code> blocks. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43413">bpo-43413</a>: Constructors of subclasses of some builtin classes (e.g.
<a class="reference internal" href="../library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a>, <a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a>, <a class="reference internal" href="../library/stdtypes.html#frozenset" title="frozenset"><code class="xref py py-class docutils literal notranslate"><span class="pre">frozenset</span></code></a>) no longer accept
arbitrary keyword arguments. [reverted in 3.11a4] Subclass of <a class="reference internal" href="../library/stdtypes.html#set" title="set"><code class="xref py py-class docutils literal notranslate"><span class="pre">set</span></code></a>
can now define a <code class="docutils literal notranslate"><span class="pre">__new__()</span></code> method with additional keyword parameters
without overriding also <code class="docutils literal notranslate"><span class="pre">__init__()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43667">bpo-43667</a>: Improve Unicode support in non-UTF locales on Oracle Solaris.
This issue does not affect other Solaris systems.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43693">bpo-43693</a>: A new opcode MAKE_CELL has been added that effectively moves
some of the work done on function entry into the compiler and into the
eval loop. In addition to creating the required cell objects, the new
opcode converts relevant arguments (and other locals) to cell variables on
function entry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44232">bpo-44232</a>: Fix a regression in <a class="reference internal" href="../library/functions.html#type" title="type"><code class="xref py py-func docutils literal notranslate"><span class="pre">type()</span></code></a> when a metaclass raises an
exception. The C function <code class="xref c c-func docutils literal notranslate"><span class="pre">type_new()</span></code> must properly report the
exception when a metaclass constructor raises an exception and the winner
class is not the metaclass. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44201">bpo-44201</a>: Avoid side effects of checking for specialized syntax errors in
the REPL that was causing it to ask for extra tokens after a syntax error
had been detected. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43693">bpo-43693</a>: <code class="docutils literal notranslate"><span class="pre">PyCodeObject</span></code> gained <code class="docutils literal notranslate"><span class="pre">co_fastlocalnames</span></code> and
<code class="docutils literal notranslate"><span class="pre">co_fastlocalkinds</span></code> as the authoritative source of fast locals info.
Marshaled code objects have changed accordingly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44184">bpo-44184</a>: Fix a crash at Python exit when a deallocator function removes
the last strong reference to a heap type. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44187">bpo-44187</a>: Implement quickening in the interpreter. This offers no
advantages as yet, but is an enabler of future optimizations. See PEP 659
for full explanation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44180">bpo-44180</a>: The parser doesn’t report generic syntax errors that happen in
a position further away that the one it reached in the first pass. Patch
by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44168">bpo-44168</a>: Fix error message in the parser involving keyword arguments
with invalid expressions. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44156">bpo-44156</a>: String caches in <code class="docutils literal notranslate"><span class="pre">compile.c</span></code> are now subinterpreter
compatible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44143">bpo-44143</a>: Fixed a crash in the parser that manifest when raising
tokenizer errors when an existing exception was present. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44032">bpo-44032</a>: Move ‘fast’ locals and other variables from the frame object to
a per-thread datastack.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44114">bpo-44114</a>: Fix incorrect dictkeys_reversed and dictitems_reversed function
signatures in C code, which broke webassembly builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44110">bpo-44110</a>: Improve <code class="xref py py-func docutils literal notranslate"><span class="pre">str.__getitem__()</span></code> error message</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26110">bpo-26110</a>: Add <code class="docutils literal notranslate"><span class="pre">CALL_METHOD_KW</span></code> opcode to speed up method calls with
keyword arguments. Idea originated from PyPy. A side effect is executing
<code class="docutils literal notranslate"><span class="pre">CALL_METHOD</span></code> is now branchless in the evaluation loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28307">bpo-28307</a>: Compiler now optimizes simple C-style formatting with literal
format containing only format codes %s, %r and %a by converting them to
f-string expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43149">bpo-43149</a>: Correct the syntax error message regarding multiple exception
types to not refer to “exception groups”. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43822">bpo-43822</a>: The parser will prioritize tokenizer errors over custom syntax
errors when raising exceptions. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40222">bpo-40222</a>: “Zero cost” exception handling.</p>
<ul class="simple">
<li><p>Uses a lookup table to determine how to handle exceptions.</p></li>
<li><p>Removes SETUP_FINALLY and POP_TOP block instructions, eliminating the runtime overhead of try statements.</p></li>
<li><p>Reduces the size of the frame object by about 60%.</p></li>
</ul>
<p>Patch by Mark Shannon</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43918">bpo-43918</a>: Document the signature and <code class="docutils literal notranslate"><span class="pre">default</span></code> argument in the
docstring of the new <code class="docutils literal notranslate"><span class="pre">anext</span></code> builtin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43833">bpo-43833</a>: Emit a deprecation warning if the numeric literal is
immediately followed by one of keywords: and, else, for, if, in, is, or.
Raise a syntax error with more informative message if it is immediately
followed by other keyword or identifier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43879">bpo-43879</a>: Add native_thread_id to PyThreadState. Patch by Gabriele N.
Tornetta.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43693">bpo-43693</a>: Compute cell offsets relative to locals in compiler. Allows the
interpreter to treats locals and cells a single array, which is slightly
more efficient. Also make the LOAD_CLOSURE opcode an alias for LOAD_FAST.
Preserving LOAD_CLOSURE helps keep bytecode a bit more readable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17792">bpo-17792</a>: More accurate error messages for access of unbound locals or
free vars.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28146">bpo-28146</a>: Fix a confusing error message in <a class="reference internal" href="../library/stdtypes.html#str.format" title="str.format"><code class="xref py py-func docutils literal notranslate"><span class="pre">str.format()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11105">bpo-11105</a>: When compiling <a class="reference internal" href="../library/ast.html#ast.AST" title="ast.AST"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.AST</span></code></a> objects with recursive
references through <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a>, the interpreter doesn’t crash anymore
instead it raises a <a class="reference internal" href="../library/exceptions.html#RecursionError" title="RecursionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RecursionError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39091">bpo-39091</a>: Fix crash when using passing a non-exception to a generator’s
<code class="docutils literal notranslate"><span class="pre">throw()</span></code> method. Patch by Noah Oxer</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33346">bpo-33346</a>: Asynchronous comprehensions are now allowed inside
comprehensions in asynchronous functions. Outer comprehensions implicitly
become asynchronous.</p></li>
</ul>
</section>
<section id="id321">
<h3>Library<a class="headerlink" href="#id321" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45371">bpo-45371</a>: Fix clang rpath issue in <code class="docutils literal notranslate"><span class="pre">distutils</span></code>. The UnixCCompiler now
uses correct clang option to add a runtime library directory (rpath) to a
shared library.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45329">bpo-45329</a>: Fix freed memory access in <code class="xref py py-class docutils literal notranslate"><span class="pre">pyexpat.xmlparser</span></code> when
building it with an installed expat library <= 2.2.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41710">bpo-41710</a>: On Unix, if the <code class="docutils literal notranslate"><span class="pre">sem_clockwait()</span></code> function is available in
the C library (glibc 2.30 and newer), the <a class="reference internal" href="../library/threading.html#threading.Lock.acquire" title="threading.Lock.acquire"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.Lock.acquire()</span></code></a>
method now uses the monotonic clock (<a class="reference internal" href="../library/time.html#time.CLOCK_MONOTONIC" title="time.CLOCK_MONOTONIC"><code class="xref py py-const docutils literal notranslate"><span class="pre">time.CLOCK_MONOTONIC</span></code></a>) for
the timeout, rather than using the system clock
(<a class="reference internal" href="../library/time.html#time.CLOCK_REALTIME" title="time.CLOCK_REALTIME"><code class="xref py py-const docutils literal notranslate"><span class="pre">time.CLOCK_REALTIME</span></code></a>), to not be affected by system clock
changes. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1596321">bpo-1596321</a>: Fix the <code class="xref py py-func docutils literal notranslate"><span class="pre">threading._shutdown()</span></code> function when the
<a class="reference internal" href="../library/threading.html#module-threading" title="threading: Thread-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code></a> module was imported first from a thread different than
the main thread: no longer log an error at Python exit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45274">bpo-45274</a>: Fix a race condition in the <a class="reference internal" href="../library/threading.html#threading.Thread.join" title="threading.Thread.join"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Thread.join()</span></code></a> method of the <a class="reference internal" href="../library/threading.html#module-threading" title="threading: Thread-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code></a> module. If the
function is interrupted by a signal and the signal handler raises an
exception, make sure that the thread remains in a consistent state to
prevent a deadlock. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21302">bpo-21302</a>: In Unix operating systems, <a class="reference internal" href="../library/time.html#time.sleep" title="time.sleep"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.sleep()</span></code></a> now uses the
<code class="docutils literal notranslate"><span class="pre">nanosleep()</span></code> function, if <code class="docutils literal notranslate"><span class="pre">clock_nanosleep()</span></code> is not available but
<code class="docutils literal notranslate"><span class="pre">nanosleep()</span></code> is available. <code class="docutils literal notranslate"><span class="pre">nanosleep()</span></code> allows to sleep with
nanosecond precision.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21302">bpo-21302</a>: On Windows, <a class="reference internal" href="../library/time.html#time.sleep" title="time.sleep"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.sleep()</span></code></a> now uses a waitable timer which
has a resolution of 100 nanoseconds (10<sup>-7</sup> seconds). Previously,
it had a resolution of 1 millisecond (10<sup>-3</sup> seconds). Patch by
Benjamin Szőke and Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45238">bpo-45238</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.IsolatedAsyncioTestCase.debug()</span></code>: it runs now
asynchronous methods and callbacks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36674">bpo-36674</a>: <a class="reference internal" href="../library/unittest.html#unittest.TestCase.debug" title="unittest.TestCase.debug"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestCase.debug()</span></code></a> raises now a
<a class="reference internal" href="../library/unittest.html#unittest.SkipTest" title="unittest.SkipTest"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.SkipTest</span></code></a> if the class or the test method are decorated
with the skipping decorator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45235">bpo-45235</a>: Fix an issue where argparse would not preserve values in a
provided namespace when using a subparser with defaults.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45183">bpo-45183</a>: Have zipimport.zipimporter.find_spec() not raise an exception
when the underlying zip file has been deleted and the internal cache has
been reset via invalidate_cache().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45234">bpo-45234</a>: Fixed a regression in <a class="reference internal" href="../library/shutil.html#shutil.copyfile" title="shutil.copyfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">copyfile()</span></code></a>,
<a class="reference internal" href="../library/shutil.html#shutil.copy" title="shutil.copy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy()</span></code></a>, <a class="reference internal" href="../library/shutil.html#shutil.copy2" title="shutil.copy2"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy2()</span></code></a> raising
<a class="reference internal" href="../library/exceptions.html#FileNotFoundError" title="FileNotFoundError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">FileNotFoundError</span></code></a> when source is a directory, which should raise
<a class="reference internal" href="../library/exceptions.html#IsADirectoryError" title="IsADirectoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IsADirectoryError</span></code></a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45228">bpo-45228</a>: Fix stack buffer overflow in parsing J1939 network address.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45225">bpo-45225</a>: use map function instead of genexpr in capwords.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42135">bpo-42135</a>: Fix typo: <code class="docutils literal notranslate"><span class="pre">importlib.find_loader</span></code> is really slated for
removal in Python 3.12 not 3.10, like the others in PR 25169.</p>
<p>Patch by Hugo van Kemenade.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20524">bpo-20524</a>: Improves error messages on <code class="docutils literal notranslate"><span class="pre">.format()</span></code> operation for <code class="docutils literal notranslate"><span class="pre">str</span></code>,
<code class="docutils literal notranslate"><span class="pre">float</span></code>, <code class="docutils literal notranslate"><span class="pre">int</span></code>, and <code class="docutils literal notranslate"><span class="pre">complex</span></code>. New format now shows the problematic
pattern and the object type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45168">bpo-45168</a>: Change <a class="reference internal" href="../library/dis.html#dis.dis" title="dis.dis"><code class="xref py py-func docutils literal notranslate"><span class="pre">dis.dis()</span></code></a> output to omit op arg values that cannot
be resolved due to <code class="docutils literal notranslate"><span class="pre">co_consts</span></code>, <code class="docutils literal notranslate"><span class="pre">co_names</span></code> etc not being provided.
Previously the oparg itself was repeated in the value field, which is not
useful and can be confusing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21302">bpo-21302</a>: In Unix operating systems, <a class="reference internal" href="../library/time.html#time.sleep" title="time.sleep"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.sleep()</span></code></a> now uses the
<code class="docutils literal notranslate"><span class="pre">clock_nanosleep()</span></code> function, if available, which allows to sleep for an
interval specified with nanosecond precision.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45173">bpo-45173</a>: Remove from the <a class="reference internal" href="../library/configparser.html#module-configparser" title="configparser: Configuration file parser."><code class="xref py py-mod docutils literal notranslate"><span class="pre">configparser</span></code></a> module: the
<code class="xref py py-class docutils literal notranslate"><span class="pre">SafeConfigParser</span></code> class, the <code class="xref py py-attr docutils literal notranslate"><span class="pre">filename</span></code> property of the
<a class="reference internal" href="../library/configparser.html#configparser.ParsingError" title="configparser.ParsingError"><code class="xref py py-class docutils literal notranslate"><span class="pre">ParsingError</span></code></a> class, the <code class="xref py py-meth docutils literal notranslate"><span class="pre">readfp()</span></code> method of
the <a class="reference internal" href="../library/configparser.html#configparser.ConfigParser" title="configparser.ConfigParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">ConfigParser</span></code></a> class, deprecated since Python
3.2.</p>
<p>Patch by Hugo van Kemenade.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44987">bpo-44987</a>: Pure ASCII strings are now normalized in constant time by
<a class="reference internal" href="../library/unicodedata.html#unicodedata.normalize" title="unicodedata.normalize"><code class="xref py py-func docutils literal notranslate"><span class="pre">unicodedata.normalize()</span></code></a>. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35474">bpo-35474</a>: Calling <a class="reference internal" href="../library/mimetypes.html#mimetypes.guess_all_extensions" title="mimetypes.guess_all_extensions"><code class="xref py py-func docutils literal notranslate"><span class="pre">mimetypes.guess_all_extensions()</span></code></a> with
<code class="docutils literal notranslate"><span class="pre">strict=False</span></code> no longer affects the result of the following call with
<code class="docutils literal notranslate"><span class="pre">strict=True</span></code>. Also, mutating the returned list no longer affects the
global state.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45166">bpo-45166</a>: <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> now works with
<a class="reference internal" href="../library/typing.html#typing.Final" title="typing.Final"><code class="xref py py-data docutils literal notranslate"><span class="pre">Final</span></code></a> wrapped in <a class="reference internal" href="../library/typing.html#typing.ForwardRef" title="typing.ForwardRef"><code class="xref py py-class docutils literal notranslate"><span class="pre">ForwardRef</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45162">bpo-45162</a>: Remove many old deprecated <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> features:</p>
<ul class="simple">
<li><p>“<code class="docutils literal notranslate"><span class="pre">fail*</span></code>” and “<code class="docutils literal notranslate"><span class="pre">assert*</span></code>” aliases of <a class="reference internal" href="../library/unittest.html#unittest.TestCase" title="unittest.TestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">TestCase</span></code></a> methods.</p></li>
<li><p>Broken from start <a class="reference internal" href="../library/unittest.html#unittest.TestCase" title="unittest.TestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">TestCase</span></code></a> method <code class="docutils literal notranslate"><span class="pre">assertDictContainsSubset()</span></code>.</p></li>
<li><p>Ignored <code class="xref py py-meth docutils literal notranslate"><span class="pre"><unittest.TestLoader.loadTestsFromModule></span> <span class="pre">TestLoader.loadTestsFromModule()</span></code> parameter <em>use_load_tests</em>.</p></li>
<li><p>Old alias <code class="docutils literal notranslate"><span class="pre">_TextTestResult</span></code> of <a class="reference internal" href="../library/unittest.html#unittest.TextTestResult" title="unittest.TextTestResult"><code class="xref py py-class docutils literal notranslate"><span class="pre">TextTestResult</span></code></a>.</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38371">bpo-38371</a>: Remove the deprecated <code class="docutils literal notranslate"><span class="pre">split()</span></code> method of
<code class="xref py py-class docutils literal notranslate"><span class="pre">_tkinter.TkappType</span></code>. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20499">bpo-20499</a>: Improve the speed and accuracy of statistics.pvariance().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45132">bpo-45132</a>: Remove <a class="reference internal" href="../reference/datamodel.html#object.__getitem__" title="object.__getitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__getitem__()</span></code></a> methods of
<a class="reference internal" href="../library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStream" title="xml.dom.pulldom.DOMEventStream"><code class="xref py py-class docutils literal notranslate"><span class="pre">xml.dom.pulldom.DOMEventStream</span></code></a>, <a class="reference internal" href="../library/wsgiref.html#wsgiref.util.FileWrapper" title="wsgiref.util.FileWrapper"><code class="xref py py-class docutils literal notranslate"><span class="pre">wsgiref.util.FileWrapper</span></code></a>
and <a class="reference internal" href="../library/fileinput.html#fileinput.FileInput" title="fileinput.FileInput"><code class="xref py py-class docutils literal notranslate"><span class="pre">fileinput.FileInput</span></code></a>, deprecated since Python 3.9.</p>
<p>Patch by Hugo van Kemenade.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45129">bpo-45129</a>: Due to significant security concerns, the <em>reuse_address</em>
parameter of <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.create_datagram_endpoint" title="asyncio.loop.create_datagram_endpoint"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.create_datagram_endpoint()</span></code></a>, disabled in
Python 3.9, is now entirely removed. This is because of the behavior of
the socket option <code class="docutils literal notranslate"><span class="pre">SO_REUSEADDR</span></code> in UDP.</p>
<p>Patch by Hugo van Kemenade.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45124">bpo-45124</a>: The <code class="docutils literal notranslate"><span class="pre">bdist_msi</span></code> command, deprecated in Python 3.9, is now
removed.</p>
<p>Use <code class="docutils literal notranslate"><span class="pre">bdist_wheel</span></code> (wheel packages) instead.</p>
<p>Patch by Hugo van Kemenade.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30856">bpo-30856</a>: <a class="reference internal" href="../library/unittest.html#unittest.TestResult" title="unittest.TestResult"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.TestResult</span></code></a> methods
<a class="reference internal" href="../library/unittest.html#unittest.TestResult.addFailure" title="unittest.TestResult.addFailure"><code class="xref py py-meth docutils literal notranslate"><span class="pre">addFailure()</span></code></a>,
<a class="reference internal" href="../library/unittest.html#unittest.TestResult.addError" title="unittest.TestResult.addError"><code class="xref py py-meth docutils literal notranslate"><span class="pre">addError()</span></code></a>,
<a class="reference internal" href="../library/unittest.html#unittest.TestResult.addSkip" title="unittest.TestResult.addSkip"><code class="xref py py-meth docutils literal notranslate"><span class="pre">addSkip()</span></code></a> and
<a class="reference internal" href="../library/unittest.html#unittest.TestResult.addSubTest" title="unittest.TestResult.addSubTest"><code class="xref py py-meth docutils literal notranslate"><span class="pre">addSubTest()</span></code></a> are now called immediately after
raising an exception in test or finishing a subtest. Previously they were
called only after finishing the test clean up.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45034">bpo-45034</a>: Changes how error is formatted for <code class="docutils literal notranslate"><span class="pre">struct.pack</span></code> with <code class="docutils literal notranslate"><span class="pre">'H'</span></code>
and <code class="docutils literal notranslate"><span class="pre">'h'</span></code> modes and too large / small numbers. Now it shows the actual
numeric limits, while previously it was showing arithmetic expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25894">bpo-25894</a>: <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> now always reports skipped and failed subtests
separately: separate characters in default mode and separate lines in
verbose mode. Also the test description is now output for errors in test
method, class and module cleanups.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45081">bpo-45081</a>: Fix issue when dataclasses that inherit from
<code class="docutils literal notranslate"><span class="pre">typing.Protocol</span></code> subclasses have wrong <code class="docutils literal notranslate"><span class="pre">__init__</span></code>. Patch provided by
Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45085">bpo-45085</a>: The <code class="docutils literal notranslate"><span class="pre">binhex</span></code> module, deprecated in Python 3.9, is now
removed. The following <a class="reference internal" href="../library/binascii.html#module-binascii" title="binascii: Tools for converting between binary and various ASCII-encoded binary representations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">binascii</span></code></a> functions, deprecated in Python
3.9, are now also removed:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">a2b_hqx()</span></code>, <code class="docutils literal notranslate"><span class="pre">b2a_hqx()</span></code>;</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">rlecode_hqx()</span></code>, <code class="docutils literal notranslate"><span class="pre">rledecode_hqx()</span></code>.</p></li>
</ul>
<p>The <a class="reference internal" href="../library/binascii.html#binascii.crc_hqx" title="binascii.crc_hqx"><code class="xref py py-func docutils literal notranslate"><span class="pre">binascii.crc_hqx()</span></code></a> function remains available.</p>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40360">bpo-40360</a>: The <code class="xref py py-mod docutils literal notranslate"><span class="pre">lib2to3</span></code> package is now deprecated and may not be
able to parse Python 3.10 or newer. See the <span class="target" id="index-218"></span><a class="pep reference external" href="https://peps.python.org/pep-0617/"><strong>PEP 617</strong></a> (New PEG parser for
CPython). Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45075">bpo-45075</a>: Rename <code class="xref py py-meth docutils literal notranslate"><span class="pre">traceback.StackSummary.format_frame()</span></code> to
<a class="reference internal" href="../library/traceback.html#traceback.StackSummary.format_frame_summary" title="traceback.StackSummary.format_frame_summary"><code class="xref py py-meth docutils literal notranslate"><span class="pre">traceback.StackSummary.format_frame_summary()</span></code></a>. This method was added
for 3.11 so it was not released yet.</p>
<p>Updated code and docs to better distinguish frame and FrameSummary.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31299">bpo-31299</a>: Add option to completely drop frames from a traceback by
returning <code class="docutils literal notranslate"><span class="pre">None</span></code> from a <code class="xref py py-meth docutils literal notranslate"><span class="pre">format_frame()</span></code>
override.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41620">bpo-41620</a>: <a class="reference internal" href="../library/unittest.html#unittest.TestCase.run" title="unittest.TestCase.run"><code class="xref py py-meth docutils literal notranslate"><span class="pre">run()</span></code></a> now always return a
<a class="reference internal" href="../library/unittest.html#unittest.TestResult" title="unittest.TestResult"><code class="xref py py-class docutils literal notranslate"><span class="pre">TestResult</span></code></a> instance. Previously it returned <code class="docutils literal notranslate"><span class="pre">None</span></code> if
the test class or method was decorated with a skipping decorator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45021">bpo-45021</a>: Fix a potential deadlock at shutdown of forked children when
using <a class="reference internal" href="../library/concurrent.futures.html#module-concurrent.futures" title="concurrent.futures: Execute computations concurrently using threads or processes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures</span></code></a> module</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43913">bpo-43913</a>: Fix bugs in cleaning up classes and modules in <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a>:</p>
<ul class="simple">
<li><p>Functions registered with <a class="reference internal" href="../library/unittest.html#unittest.addModuleCleanup" title="unittest.addModuleCleanup"><code class="xref py py-func docutils literal notranslate"><span class="pre">addModuleCleanup()</span></code></a> were not called unless the user defines <code class="docutils literal notranslate"><span class="pre">tearDownModule()</span></code> in their test module.</p></li>
<li><p>Functions registered with <a class="reference internal" href="../library/unittest.html#unittest.TestCase.addClassCleanup" title="unittest.TestCase.addClassCleanup"><code class="xref py py-meth docutils literal notranslate"><span class="pre">addClassCleanup()</span></code></a> were not called if <code class="docutils literal notranslate"><span class="pre">tearDownClass</span></code> is set to <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p>Buffering in <a class="reference internal" href="../library/unittest.html#unittest.TestResult" title="unittest.TestResult"><code class="xref py py-class docutils literal notranslate"><span class="pre">TestResult</span></code></a> did not work with functions registered with <code class="docutils literal notranslate"><span class="pre">addClassCleanup()</span></code> and <code class="docutils literal notranslate"><span class="pre">addModuleCleanup()</span></code>.</p></li>
<li><p>Errors in functions registered with <code class="docutils literal notranslate"><span class="pre">addClassCleanup()</span></code> and <code class="docutils literal notranslate"><span class="pre">addModuleCleanup()</span></code> were not handled correctly in buffered and debug modes.</p></li>
<li><p>Errors in <code class="docutils literal notranslate"><span class="pre">setUpModule()</span></code> and functions registered with <code class="docutils literal notranslate"><span class="pre">addModuleCleanup()</span></code> were reported in wrong order.</p></li>
<li><p>And several lesser bugs.</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45030">bpo-45030</a>: Fix integer overflow in pickling and copying the range
iterator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45001">bpo-45001</a>: Made email date parsing more robust against malformed input,
namely a whitespace-only <code class="docutils literal notranslate"><span class="pre">Date:</span></code> header. Patch by Wouter Bolsterlee.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45010">bpo-45010</a>: Remove support of special method <code class="docutils literal notranslate"><span class="pre">__div__</span></code> in
<a class="reference internal" href="../library/unittest.mock.html#module-unittest.mock" title="unittest.mock: Mock object library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest.mock</span></code></a>. It is not used in Python 3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39218">bpo-39218</a>: Improve accuracy of variance calculations by using <code class="docutils literal notranslate"><span class="pre">x*x</span></code>
instead of <code class="docutils literal notranslate"><span class="pre">x**2</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43613">bpo-43613</a>: Improve the speed of <a class="reference internal" href="../library/gzip.html#gzip.compress" title="gzip.compress"><code class="xref py py-func docutils literal notranslate"><span class="pre">gzip.compress()</span></code></a> and
<a class="reference internal" href="../library/gzip.html#gzip.decompress" title="gzip.decompress"><code class="xref py py-func docutils literal notranslate"><span class="pre">gzip.decompress()</span></code></a> by compressing and decompressing at once in memory
instead of in a streamed fashion.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37596">bpo-37596</a>: Ensure that <a class="reference internal" href="../library/stdtypes.html#set" title="set"><code class="xref py py-class docutils literal notranslate"><span class="pre">set</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#frozenset" title="frozenset"><code class="xref py py-class docutils literal notranslate"><span class="pre">frozenset</span></code></a> objects are
always <a class="reference internal" href="../library/marshal.html#module-marshal" title="marshal: Convert Python objects to streams of bytes and back (with different constraints)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">marshalled</span></code></a> reproducibly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44019">bpo-44019</a>: A new function <code class="docutils literal notranslate"><span class="pre">operator.call</span></code> has been added, such that
<code class="docutils literal notranslate"><span class="pre">operator.call(obj,</span> <span class="pre">*args,</span> <span class="pre">**kwargs)</span> <span class="pre">==</span> <span class="pre">obj(*args,</span> <span class="pre">**kwargs)</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42255">bpo-42255</a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">webbrowser.MacOSX</span></code> is deprecated and will be removed
in Python 3.13. It is untested and undocumented and also not used by
<a class="reference internal" href="../library/webbrowser.html#module-webbrowser" title="webbrowser: Easy-to-use controller for web browsers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">webbrowser</span></code></a> itself. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44955">bpo-44955</a>: Method <a class="reference internal" href="../library/unittest.html#unittest.TestResult.stopTestRun" title="unittest.TestResult.stopTestRun"><code class="xref py py-meth docutils literal notranslate"><span class="pre">stopTestRun()</span></code></a> is now always
called in pair with method <a class="reference internal" href="../library/unittest.html#unittest.TestResult.startTestRun" title="unittest.TestResult.startTestRun"><code class="xref py py-meth docutils literal notranslate"><span class="pre">startTestRun()</span></code></a> for
<a class="reference internal" href="../library/unittest.html#unittest.TestResult" title="unittest.TestResult"><code class="xref py py-class docutils literal notranslate"><span class="pre">TestResult</span></code></a> objects implicitly created in
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.run" title="unittest.TestCase.run"><code class="xref py py-meth docutils literal notranslate"><span class="pre">run()</span></code></a>. Previously it was not called for test
methods and classes decorated with a skipping decorator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39039">bpo-39039</a>: tarfile.open raises <a class="reference internal" href="../library/tarfile.html#tarfile.ReadError" title="tarfile.ReadError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ReadError</span></code></a> when a zlib error
occurs during file extraction.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44935">bpo-44935</a>: <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> on Solaris now also uses
<a class="reference internal" href="../library/os.html#os.posix_spawn" title="os.posix_spawn"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.posix_spawn()</span></code></a> for better performance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44911">bpo-44911</a>: <a class="reference internal" href="../library/unittest.html#unittest.IsolatedAsyncioTestCase" title="unittest.IsolatedAsyncioTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">IsolatedAsyncioTestCase</span></code></a> will no longer throw
an exception while cancelling leaked tasks. Patch by Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41322">bpo-41322</a>: Added <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> for tests and async tests that
return a value!=None (as this may indicate an improperly written test, for
example a test written as a generator function).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44524">bpo-44524</a>: Make exception message more useful when subclass from typing
special form alias. Patch provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38956">bpo-38956</a>: <a class="reference internal" href="../library/argparse.html#argparse.BooleanOptionalAction" title="argparse.BooleanOptionalAction"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.BooleanOptionalAction</span></code></a>’s default value is no
longer printed twice when used with
<a class="reference internal" href="../library/argparse.html#argparse.ArgumentDefaultsHelpFormatter" title="argparse.ArgumentDefaultsHelpFormatter"><code class="xref py py-class docutils literal notranslate"><span class="pre">argparse.ArgumentDefaultsHelpFormatter</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44860">bpo-44860</a>: Fix the <code class="docutils literal notranslate"><span class="pre">posix_user</span></code> scheme in <a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a> to not depend
on <a class="reference internal" href="../library/sys.html#sys.platlibdir" title="sys.platlibdir"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.platlibdir</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44859">bpo-44859</a>: Improve error handling in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> and raise more
accurate exceptions.</p>
<ul class="simple">
<li><p><a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a> is now raised instead of <a class="reference internal" href="../library/sqlite3.html#sqlite3.Warning" title="sqlite3.Warning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">sqlite3.Warning</span></code></a> when memory is not enough for encoding a statement to UTF-8 in <code class="docutils literal notranslate"><span class="pre">Connection.__call__()</span></code> and <code class="docutils literal notranslate"><span class="pre">Cursor.execute()</span></code>.</p></li>
<li><p><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodEncodeError</span></code> is now raised instead of <a class="reference internal" href="../library/sqlite3.html#sqlite3.Warning" title="sqlite3.Warning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">sqlite3.Warning</span></code></a> when the statement contains surrogate characters in <code class="docutils literal notranslate"><span class="pre">Connection.__call__()</span></code> and <code class="docutils literal notranslate"><span class="pre">Cursor.execute()</span></code>.</p></li>
<li><p><a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> is now raised instead of <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> for non-string script argument in <code class="docutils literal notranslate"><span class="pre">Cursor.executescript()</span></code>.</p></li>
<li><p><a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> is now raised for script containing the null character instead of truncating it in <code class="docutils literal notranslate"><span class="pre">Cursor.executescript()</span></code>.</p></li>
<li><p>Correctly handle exceptions raised when getting boolean value of the result of the progress handler.</p></li>
<li><p>Add many tests covering different corner cases.</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44581">bpo-44581</a>: Upgrade bundled pip to 21.2.3 and setuptools to 57.4.0</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44849">bpo-44849</a>: Fix the <a class="reference internal" href="../library/os.html#os.set_inheritable" title="os.set_inheritable"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.set_inheritable()</span></code></a> function on FreeBSD 14 for
file descriptor opened with the <a class="reference internal" href="../library/os.html#os.O_PATH" title="os.O_PATH"><code class="xref py py-const docutils literal notranslate"><span class="pre">O_PATH</span></code></a> flag: ignore the
<a class="reference internal" href="../library/errno.html#errno.EBADF" title="errno.EBADF"><code class="xref py py-const docutils literal notranslate"><span class="pre">EBADF</span></code></a> error on <code class="docutils literal notranslate"><span class="pre">ioctl()</span></code>, fallback on the <code class="docutils literal notranslate"><span class="pre">fcntl()</span></code>
implementation. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44605">bpo-44605</a>: The @functools.total_ordering() decorator now works with
metaclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44524">bpo-44524</a>: Fixed an issue wherein the <code class="docutils literal notranslate"><span class="pre">__name__</span></code> and <code class="docutils literal notranslate"><span class="pre">__qualname__</span></code>
attributes of subscribed specialforms could be <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44839">bpo-44839</a>: <a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-class docutils literal notranslate"><span class="pre">MemoryError</span></code></a> raised in user-defined functions will now
produce a <code class="docutils literal notranslate"><span class="pre">MemoryError</span></code> in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>. <a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-class docutils literal notranslate"><span class="pre">OverflowError</span></code></a> will
now be converted to <a class="reference internal" href="../library/sqlite3.html#sqlite3.DataError" title="sqlite3.DataError"><code class="xref py py-class docutils literal notranslate"><span class="pre">DataError</span></code></a>. Previously
<a class="reference internal" href="../library/sqlite3.html#sqlite3.OperationalError" title="sqlite3.OperationalError"><code class="xref py py-class docutils literal notranslate"><span class="pre">OperationalError</span></code></a> was produced in these cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44822">bpo-44822</a>: <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> user-defined functions and aggregators returning
<a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">strings</span></code></a> with embedded NUL characters are no longer
truncated. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44801">bpo-44801</a>: Ensure that the <a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-class docutils literal notranslate"><span class="pre">ParamSpec</span></code></a> variable in Callable
can only be substituted with a parameters expression (a list of types, an
ellipsis, ParamSpec or Concatenate).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44806">bpo-44806</a>: Non-protocol subclasses of <a class="reference internal" href="../library/typing.html#typing.Protocol" title="typing.Protocol"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Protocol</span></code></a> ignore now
the <code class="docutils literal notranslate"><span class="pre">__init__</span></code> method inherited from protocol base classes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27275">bpo-27275</a>: <a class="reference internal" href="../library/collections.html#collections.OrderedDict.popitem" title="collections.OrderedDict.popitem"><code class="xref py py-meth docutils literal notranslate"><span class="pre">collections.OrderedDict.popitem()</span></code></a> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">collections.OrderedDict.pop()</span></code> no longer call <code class="docutils literal notranslate"><span class="pre">__getitem__</span></code> and
<code class="docutils literal notranslate"><span class="pre">__delitem__</span></code> methods of the OrderedDict subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44793">bpo-44793</a>: Fix checking the number of arguments when subscribe a generic
type with <code class="docutils literal notranslate"><span class="pre">ParamSpec</span></code> parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44784">bpo-44784</a>: In importlib.metadata tests, override warnings behavior under
expected DeprecationWarnings (importlib_metadata 4.6.3).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44667">bpo-44667</a>: The <a class="reference internal" href="../library/tokenize.html#tokenize.tokenize" title="tokenize.tokenize"><code class="xref py py-func docutils literal notranslate"><span class="pre">tokenize.tokenize()</span></code></a> doesn’t incorrectly generate a
<code class="docutils literal notranslate"><span class="pre">NEWLINE</span></code> token if the source doesn’t end with a new line character but
the last line is a comment, as the function is already generating a <code class="docutils literal notranslate"><span class="pre">NL</span></code>
token. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44771">bpo-44771</a>: Added <code class="docutils literal notranslate"><span class="pre">importlib.simple</span></code> module implementing adapters from a
low-level resources reader interface to a <code class="docutils literal notranslate"><span class="pre">TraversableResources</span></code>
interface. Legacy API (<code class="docutils literal notranslate"><span class="pre">path</span></code>, <code class="docutils literal notranslate"><span class="pre">contents</span></code>, …) is now supported
entirely by the <code class="docutils literal notranslate"><span class="pre">.files()</span></code> API with a compatibility shim supplied for
resource loaders without that functionality. Feature parity with
<code class="docutils literal notranslate"><span class="pre">importlib_resources</span></code> 5.2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44752">bpo-44752</a>: <code class="xref py py-mod docutils literal notranslate"><span class="pre">rcompleter</span></code> does not call <a class="reference internal" href="../library/functions.html#getattr" title="getattr"><code class="xref py py-func docutils literal notranslate"><span class="pre">getattr()</span></code></a> on
<a class="reference internal" href="../library/functions.html#property" title="property"><code class="xref py py-class docutils literal notranslate"><span class="pre">property</span></code></a> objects to avoid the side-effect of evaluating the
corresponding method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44747">bpo-44747</a>: Refactor usage of <code class="docutils literal notranslate"><span class="pre">sys._getframe</span></code> in <code class="docutils literal notranslate"><span class="pre">typing</span></code> module. Patch
provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42378">bpo-42378</a>: Fixes the issue with log file being overwritten when
<a class="reference internal" href="../library/logging.handlers.html#logging.FileHandler" title="logging.FileHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.FileHandler</span></code></a> is used in <a class="reference internal" href="../library/atexit.html#module-atexit" title="atexit: Register and execute cleanup functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">atexit</span></code></a> with <em>filemode</em> set
to <code class="docutils literal notranslate"><span class="pre">'w'</span></code>. Note this will cause the message in <em>atexit</em> not being logged
if the log stream is already closed due to shutdown of logging.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44720">bpo-44720</a>: <code class="docutils literal notranslate"><span class="pre">weakref.proxy</span></code> objects referencing non-iterators now raise
<code class="docutils literal notranslate"><span class="pre">TypeError</span></code> rather than dereferencing the null <code class="docutils literal notranslate"><span class="pre">tp_iternext</span></code> slot and
crashing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44704">bpo-44704</a>: The implementation of <code class="docutils literal notranslate"><span class="pre">collections.abc.Set._hash()</span></code> now
matches that of <code class="docutils literal notranslate"><span class="pre">frozenset.__hash__()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44666">bpo-44666</a>: Fixed issue in <a class="reference internal" href="../library/compileall.html#compileall.compile_file" title="compileall.compile_file"><code class="xref py py-func docutils literal notranslate"><span class="pre">compileall.compile_file()</span></code></a> when
<code class="docutils literal notranslate"><span class="pre">sys.stdout</span></code> is redirected. Patch by Stefan Hölzl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44688">bpo-44688</a>: <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.create_collation" title="sqlite3.Connection.create_collation"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.create_collation()</span></code></a> now accepts
non-ASCII collation names. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44690">bpo-44690</a>: Adopt <em>binacii.a2b_base64</em>’s strict mode in <em>base64.b64decode</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42854">bpo-42854</a>: Fixed a bug in the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_ssl</span></code> module that was throwing
<a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> when using <code class="xref py py-meth docutils literal notranslate"><span class="pre">_ssl._SSLSocket.write()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">_ssl._SSLSocket.read()</span></code> for a big value of the <code class="docutils literal notranslate"><span class="pre">len</span></code> parameter.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44686">bpo-44686</a>: Replace <code class="docutils literal notranslate"><span class="pre">unittest.mock._importer</span></code> with
<code class="docutils literal notranslate"><span class="pre">pkgutil.resolve_name</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44353">bpo-44353</a>: Make <code class="docutils literal notranslate"><span class="pre">NewType.__call__</span></code> faster by implementing it in C. Patch
provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44682">bpo-44682</a>: Change the <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> <em>commands</em> directive to disallow setting
commands for an invalid breakpoint and to display an appropriate error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44353">bpo-44353</a>: Refactor <code class="docutils literal notranslate"><span class="pre">typing.NewType</span></code> from function into callable class.
Patch provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44678">bpo-44678</a>: Added a separate error message for discontinuous padding in
<em>binascii.a2b_base64</em> strict mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44524">bpo-44524</a>: Add missing <code class="docutils literal notranslate"><span class="pre">__name__</span></code> and <code class="docutils literal notranslate"><span class="pre">__qualname__</span></code> attributes to
<code class="docutils literal notranslate"><span class="pre">typing</span></code> module classes. Patch provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40897">bpo-40897</a>: Give priority to using the current class constructor in
<a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a>. Patch by Weipeng Hong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44638">bpo-44638</a>: Add a reference to the zipp project and hint as to how to use
it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44648">bpo-44648</a>: Fixed wrong error being thrown by <a class="reference internal" href="../library/inspect.html#inspect.getsource" title="inspect.getsource"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getsource()</span></code></a>
when examining a class in the interactive session. Instead of
<a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>, it should be <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> with appropriate error
message.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44608">bpo-44608</a>: Fix memory leak in <code class="xref py py-func docutils literal notranslate"><span class="pre">_tkinter._flatten()</span></code> if it is called
with a sequence or set, but not list or tuple.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44594">bpo-44594</a>: Fix an edge case of <code class="xref py py-class docutils literal notranslate"><span class="pre">ExitStack</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">AsyncExitStack</span></code> exception chaining. They will now match <code class="docutils literal notranslate"><span class="pre">with</span></code>
block behavior when <code class="docutils literal notranslate"><span class="pre">__context__</span></code> is explicitly set to <code class="docutils literal notranslate"><span class="pre">None</span></code> when the
exception is in flight.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42799">bpo-42799</a>: In <a class="reference internal" href="../library/fnmatch.html#module-fnmatch" title="fnmatch: Unix shell style filename pattern matching."><code class="xref py py-mod docutils literal notranslate"><span class="pre">fnmatch</span></code></a>, the cache size for compiled regex patterns
(<a class="reference internal" href="../library/functools.html#functools.lru_cache" title="functools.lru_cache"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.lru_cache()</span></code></a>) was bumped up from 256 to 32768, affecting
functions: <a class="reference internal" href="../library/fnmatch.html#fnmatch.fnmatch" title="fnmatch.fnmatch"><code class="xref py py-func docutils literal notranslate"><span class="pre">fnmatch.fnmatch()</span></code></a>, <a class="reference internal" href="../library/fnmatch.html#fnmatch.fnmatchcase" title="fnmatch.fnmatchcase"><code class="xref py py-func docutils literal notranslate"><span class="pre">fnmatch.fnmatchcase()</span></code></a>,
<a class="reference internal" href="../library/fnmatch.html#fnmatch.filter" title="fnmatch.filter"><code class="xref py py-func docutils literal notranslate"><span class="pre">fnmatch.filter()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41928">bpo-41928</a>: Update <a class="reference internal" href="../library/shutil.html#shutil.copyfile" title="shutil.copyfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copyfile()</span></code></a> to raise
<a class="reference internal" href="../library/exceptions.html#FileNotFoundError" title="FileNotFoundError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">FileNotFoundError</span></code></a> instead of confusing <a class="reference internal" href="../library/exceptions.html#IsADirectoryError" title="IsADirectoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IsADirectoryError</span></code></a>
when a path ending with a <code class="xref py py-const docutils literal notranslate"><span class="pre">os.path.sep</span></code> does not exist;
<a class="reference internal" href="../library/shutil.html#shutil.copy" title="shutil.copy"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copy()</span></code></a> and <a class="reference internal" href="../library/shutil.html#shutil.copy2" title="shutil.copy2"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copy2()</span></code></a> are also affected.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44569">bpo-44569</a>: Added the <code class="xref py py-func docutils literal notranslate"><span class="pre">StackSummary.format_frame()</span></code> function in
<a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a>. This allows users to customize the way individual lines
are formatted in tracebacks without re-implementing logic to handle
recursive tracebacks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44566">bpo-44566</a>: handle StopIteration subclass raised from
@contextlib.contextmanager generator</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44558">bpo-44558</a>: Make the implementation consistency of
<a class="reference internal" href="../library/operator.html#operator.indexOf" title="operator.indexOf"><code class="xref py py-func docutils literal notranslate"><span class="pre">indexOf()</span></code></a> between C and Python versions. Patch by Donghee
Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41249">bpo-41249</a>: Fixes <code class="docutils literal notranslate"><span class="pre">TypedDict</span></code> to work with <code class="docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code>
and postponed evaluation of annotations across modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44554">bpo-44554</a>: Refactor argument processing in <code class="xref py py-func docutils literal notranslate"><span class="pre">pdb.main()</span></code> to simplify
detection of errors in input loading and clarify behavior around module or
script invocation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34798">bpo-34798</a>: Break up paragraph about <a class="reference internal" href="../library/pprint.html#pprint.PrettyPrinter" title="pprint.PrettyPrinter"><code class="xref py py-class docutils literal notranslate"><span class="pre">pprint.PrettyPrinter</span></code></a>
construction parameters to make it easier to read.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44539">bpo-44539</a>: Added support for recognizing JPEG files without JFIF or Exif
markers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44461">bpo-44461</a>: Fix bug with <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>’s handling of import error due to a
package which does not have a <code class="docutils literal notranslate"><span class="pre">__main__</span></code> module</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43625">bpo-43625</a>: Fix a bug in the detection of CSV file headers by
<a class="reference internal" href="../library/csv.html#csv.Sniffer.has_header" title="csv.Sniffer.has_header"><code class="xref py py-meth docutils literal notranslate"><span class="pre">csv.Sniffer.has_header()</span></code></a> and improve documentation of same.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44516">bpo-44516</a>: Update vendored pip to 21.1.3</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42892">bpo-42892</a>: Fixed an exception thrown while parsing a malformed multipart
email by <a class="reference internal" href="../library/email.message.html#email.message.EmailMessage" title="email.message.EmailMessage"><code class="xref py py-class docutils literal notranslate"><span class="pre">email.message.EmailMessage</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44468">bpo-44468</a>: <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> now finds annotations in classes
and base classes with unexpected <code class="docutils literal notranslate"><span class="pre">__module__</span></code>. Previously, it skipped
those MRO elements.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44491">bpo-44491</a>: Allow clearing the <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> authorizer callback by
passing <a class="reference internal" href="../library/constants.html#None" title="None"><code class="xref py py-const docutils literal notranslate"><span class="pre">None</span></code></a> to <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.set_authorizer" title="sqlite3.Connection.set_authorizer"><code class="xref py py-meth docutils literal notranslate"><span class="pre">set_authorizer()</span></code></a>. Patch
by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43977">bpo-43977</a>: Set the proper <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_MAPPING" title="Py_TPFLAGS_MAPPING"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_MAPPING</span></code></a> and
<a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_SEQUENCE" title="Py_TPFLAGS_SEQUENCE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_SEQUENCE</span></code></a> flags for subclasses created before a
parent has been registered as a <a class="reference internal" href="../library/collections.abc.html#collections.abc.Mapping" title="collections.abc.Mapping"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.Mapping</span></code></a> or
<a class="reference internal" href="../library/collections.abc.html#collections.abc.Sequence" title="collections.abc.Sequence"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.Sequence</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44482">bpo-44482</a>: Fix very unlikely resource leak in <a class="reference internal" href="../library/glob.html#module-glob" title="glob: Unix shell style pathname pattern expansion."><code class="xref py py-mod docutils literal notranslate"><span class="pre">glob</span></code></a> in alternate
Python implementations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44466">bpo-44466</a>: The <a class="reference internal" href="../library/faulthandler.html#module-faulthandler" title="faulthandler: Dump the Python traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">faulthandler</span></code></a> module now detects if a fatal error
occurs during a garbage collector collection. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44471">bpo-44471</a>: A <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> is now raised instead of an
<a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> in <a class="reference internal" href="../library/contextlib.html#contextlib.ExitStack.enter_context" title="contextlib.ExitStack.enter_context"><code class="xref py py-meth docutils literal notranslate"><span class="pre">contextlib.ExitStack.enter_context()</span></code></a> and
<a class="reference internal" href="../library/contextlib.html#contextlib.AsyncExitStack.enter_async_context" title="contextlib.AsyncExitStack.enter_async_context"><code class="xref py py-meth docutils literal notranslate"><span class="pre">contextlib.AsyncExitStack.enter_async_context()</span></code></a> for objects which do
not support the <a class="reference internal" href="../glossary.html#term-context-manager"><span class="xref std std-term">context manager</span></a> or <a class="reference internal" href="../glossary.html#term-asynchronous-context-manager"><span class="xref std std-term">asynchronous context
manager</span></a> protocols correspondingly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44404">bpo-44404</a>: <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a>’s <code class="docutils literal notranslate"><span class="pre">after()</span></code> method now supports callables
without the <code class="docutils literal notranslate"><span class="pre">__name__</span></code> attribute.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41546">bpo-41546</a>: Make <a class="reference internal" href="../library/pprint.html#module-pprint" title="pprint: Data pretty printer."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pprint</span></code></a> (like the builtin <code class="docutils literal notranslate"><span class="pre">print</span></code>) not attempt to
write to <code class="docutils literal notranslate"><span class="pre">stdout</span></code> when it is <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44458">bpo-44458</a>: <code class="docutils literal notranslate"><span class="pre">BUFFER_BLOCK_SIZE</span></code> is now declared static, to avoid linking
collisions when bz2, lmza or zlib are statically linked.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44464">bpo-44464</a>: Remove exception for flake8 in deprecated importlib.metadata
interfaces. Sync with importlib_metadata 4.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44446">bpo-44446</a>: Take into account that <code class="docutils literal notranslate"><span class="pre">lineno</span></code> might be <code class="docutils literal notranslate"><span class="pre">None</span></code> in
<a class="reference internal" href="../library/traceback.html#traceback.FrameSummary" title="traceback.FrameSummary"><code class="xref py py-class docutils literal notranslate"><span class="pre">traceback.FrameSummary</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44439">bpo-44439</a>: Fix in <code class="xref py py-meth docutils literal notranslate"><span class="pre">bz2.BZ2File.write()</span></code> / <code class="xref py py-meth docutils literal notranslate"><span class="pre">lzma.LZMAFile.write()</span></code>
methods, when the input data is an object that supports the buffer
protocol, the file length may be wrong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44434">bpo-44434</a>: _thread.start_new_thread() no longer calls
PyThread_exit_thread() explicitly at the thread exit, the call was
redundant. On Linux with the glibc, pthread_exit() aborts the whole
process if dlopen() fails to open libgcc_s.so file (ex: EMFILE error).
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42972">bpo-42972</a>: The _thread.RLock type now fully implement the GC protocol: add
a traverse function and the <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_HAVE_GC" title="Py_TPFLAGS_HAVE_GC"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_HAVE_GC</span></code></a> flag. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44422">bpo-44422</a>: The <a class="reference internal" href="../library/threading.html#threading.enumerate" title="threading.enumerate"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.enumerate()</span></code></a> function now uses a reentrant
lock to prevent a hang on reentrant call. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38291">bpo-38291</a>: Importing typing.io or typing.re now prints a
<code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37880">bpo-37880</a>: argparse actions store_const and append_const each receive a
default value of <code class="docutils literal notranslate"><span class="pre">None</span></code> when the <code class="docutils literal notranslate"><span class="pre">const</span></code> kwarg is not provided.
Previously, this raised a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44389">bpo-44389</a>: Fix deprecation of <a class="reference internal" href="../library/ssl.html#ssl.OP_NO_TLSv1_3" title="ssl.OP_NO_TLSv1_3"><code class="xref py py-data docutils literal notranslate"><span class="pre">ssl.OP_NO_TLSv1_3</span></code></a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27827">bpo-27827</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PureWindowsPath.is_reserved()</span></code> now identifies a
greater range of reserved filenames, including those with trailing spaces
or colons.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44395">bpo-44395</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">as_string()</span></code> to pass unixfrom
properly. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34266">bpo-34266</a>: Handle exceptions from parsing the arg of <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>’s
run/restart command.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44362">bpo-44362</a>: Improve <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> module’s deprecation messages, error
reporting, and documentation for deprecations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44342">bpo-44342</a>: [Enum] Change pickling from by-value to by-name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44356">bpo-44356</a>: [Enum] Allow multiple data-type mixins if they are all the
same.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44351">bpo-44351</a>: Restore back <code class="xref py py-func docutils literal notranslate"><span class="pre">parse_makefile()</span></code> in <code class="docutils literal notranslate"><span class="pre">distutils.sysconfig</span></code>
because it behaves differently than the similar implementation in
<a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35800">bpo-35800</a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">smtpd.MailmanProxy</span></code> is now removed as it is unusable
without an external module, <code class="docutils literal notranslate"><span class="pre">mailman</span></code>. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44357">bpo-44357</a>: Added a function that returns cube root of the given number
<a class="reference internal" href="../library/math.html#math.cbrt" title="math.cbrt"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.cbrt()</span></code></a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44339">bpo-44339</a>: Change <code class="docutils literal notranslate"><span class="pre">math.pow(±0.0,</span> <span class="pre">-math.inf)</span></code> to return <code class="docutils literal notranslate"><span class="pre">inf</span></code> instead
of raising <code class="docutils literal notranslate"><span class="pre">ValueError</span></code>. This brings the special-case handling of
<code class="docutils literal notranslate"><span class="pre">math.pow</span></code> into compliance with the IEEE 754 standard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44242">bpo-44242</a>: Remove missing flag check from Enum creation and move into a
<code class="docutils literal notranslate"><span class="pre">verify</span></code> decorator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44246">bpo-44246</a>: In <code class="docutils literal notranslate"><span class="pre">importlib.metadata</span></code>, restore compatibility in the result
from <code class="docutils literal notranslate"><span class="pre">Distribution.entry_points</span></code> (<code class="docutils literal notranslate"><span class="pre">EntryPoints</span></code>) to honor expectations
in older implementations and issuing deprecation warnings for these cases:
A. <code class="docutils literal notranslate"><span class="pre">EntryPoints</span></code> objects are once again mutable, allowing for
<code class="docutils literal notranslate"><span class="pre">sort()</span></code> and other list-based mutation operations. Avoid deprecation
warnings by casting to a mutable sequence (e.g.
<code class="docutils literal notranslate"><span class="pre">list(dist.entry_points).sort()</span></code>). B. <code class="docutils literal notranslate"><span class="pre">EntryPoints</span></code> results once again
allow for access by index. To avoid deprecation warnings, cast the
result to a Sequence first (e.g. <code class="docutils literal notranslate"><span class="pre">tuple(dist.entry_points)[0]</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44246">bpo-44246</a>: In importlib.metadata.entry_points, de-duplication of
distributions no longer requires loading the full metadata for
PathDistribution objects, improving entry point loading performance by
~10x.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43858">bpo-43858</a>: Added a function that returns a copy of a dict of logging
levels: <a class="reference internal" href="../library/logging.html#logging.getLevelNamesMapping" title="logging.getLevelNamesMapping"><code class="xref py py-func docutils literal notranslate"><span class="pre">logging.getLevelNamesMapping()</span></code></a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44260">bpo-44260</a>: The <a class="reference internal" href="../library/random.html#random.Random" title="random.Random"><code class="xref py py-class docutils literal notranslate"><span class="pre">random.Random</span></code></a> constructor no longer reads system
entropy without need.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44254">bpo-44254</a>: On Mac, give turtledemo button text a color that works on both
light or dark background. Programmers cannot control the latter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44258">bpo-44258</a>: Support PEP 515 for Fraction’s initialization from string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44235">bpo-44235</a>: Remove deprecated functions in the <a class="reference internal" href="../library/gettext.html#module-gettext" title="gettext: Multilingual internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gettext</span></code></a>. Patch by
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38693">bpo-38693</a>: Prefer f-strings to <code class="docutils literal notranslate"><span class="pre">.format</span></code> in importlib.resources.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33693">bpo-33693</a>: Importlib.metadata now prefers f-strings to .format.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44241">bpo-44241</a>: Incorporate minor tweaks from importlib_metadata 4.1:
SimplePath protocol, support for Metadata 2.2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43216">bpo-43216</a>: Remove the <code class="xref py py-func docutils literal notranslate"><span class="pre">@asyncio.coroutine</span></code>
<a class="reference internal" href="../glossary.html#term-decorator"><span class="xref std std-term">decorator</span></a> enabling legacy generator-based coroutines to be
compatible with async/await code; remove
<code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.coroutines.CoroWrapper</span></code> used for wrapping legacy coroutine
objects in the debug mode. The decorator has been deprecated since Python
3.8 and the removal was initially scheduled for Python 3.10. Patch by
Illia Volochii.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44210">bpo-44210</a>: Make importlib.metadata._meta.PackageMetadata public.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43643">bpo-43643</a>: Declare readers.MultiplexedPath.name as a property per the
spec.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27334">bpo-27334</a>: The <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> context manager now performs a rollback
(thus releasing the database lock) if commit failed. Patch by Luca Citi
and Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4928">bpo-4928</a>: Documented existing behavior on POSIX: NamedTemporaryFiles are
not deleted when creating process is killed with SIGKILL</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44154">bpo-44154</a>: Optimize <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a> pickling for large
components.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33433">bpo-33433</a>: For IPv4 mapped IPv6 addresses (<span class="target" id="index-219"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4291.html"><strong>RFC 4291</strong></a> Section 2.5.5.2),
the <a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv6Address.is_private" title="ipaddress.IPv6Address.is_private"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress.IPv6Address.is_private</span></code></a> check is deferred to the
mapped IPv4 address. This solves a bug where public mapped IPv4 addresses
were considered private by the IPv6 check.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44150">bpo-44150</a>: Add optional <em>weights</em> argument to statistics.fmean().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44142">bpo-44142</a>: <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> will now drop the redundant parentheses
when tuples used as assignment targets (e.g in for loops).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44145">bpo-44145</a>: <a class="reference internal" href="../library/hmac.html#module-hmac" title="hmac: Keyed-Hashing for Message Authentication (HMAC) implementation"><code class="xref py py-mod docutils literal notranslate"><span class="pre">hmac</span></code></a> computations were not releasing the GIL while
calling the OpenSSL <code class="docutils literal notranslate"><span class="pre">HMAC_Update</span></code> C API (a new feature in 3.9). This
unintentionally prevented parallel computation as other <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a>
algorithms support.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44095">bpo-44095</a>: <a class="reference internal" href="../library/zipfile.html#zipfile.Path" title="zipfile.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">zipfile.Path</span></code></a> now supports <a class="reference internal" href="../library/zipfile.html#zipfile.Path.stem" title="zipfile.Path.stem"><code class="xref py py-attr docutils literal notranslate"><span class="pre">zipfile.Path.stem</span></code></a>,
<a class="reference internal" href="../library/zipfile.html#zipfile.Path.suffixes" title="zipfile.Path.suffixes"><code class="xref py py-attr docutils literal notranslate"><span class="pre">zipfile.Path.suffixes</span></code></a>, and <a class="reference internal" href="../library/zipfile.html#zipfile.Path.suffix" title="zipfile.Path.suffix"><code class="xref py py-attr docutils literal notranslate"><span class="pre">zipfile.Path.suffix</span></code></a> attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44077">bpo-44077</a>: It’s now possible to receive the type of service (ToS), a.k.a.
differentiated services (DS), a.k.a. differentiated services code point
(DSCP) and explicit congestion notification (ECN) IP header fields with
<code class="docutils literal notranslate"><span class="pre">socket.IP_RECVTOS</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37788">bpo-37788</a>: Fix a reference leak when a Thread object is never joined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38908">bpo-38908</a>: Subclasses of <code class="docutils literal notranslate"><span class="pre">typing.Protocol</span></code> which only have data
variables declared will now raise a <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> when checked with
<code class="docutils literal notranslate"><span class="pre">isinstance</span></code> unless they are decorated with <code class="xref py py-func docutils literal notranslate"><span class="pre">runtime_checkable()</span></code>.
Previously, these checks passed silently. Patch provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44098">bpo-44098</a>: <code class="docutils literal notranslate"><span class="pre">typing.ParamSpec</span></code> will no longer be found in the
<code class="docutils literal notranslate"><span class="pre">__parameters__</span></code> of most <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> generics except in valid use
locations specified by <span class="target" id="index-220"></span><a class="pep reference external" href="https://peps.python.org/pep-0612/"><strong>PEP 612</strong></a>. This prevents incorrect usage like
<code class="docutils literal notranslate"><span class="pre">typing.List[P][int]</span></code>. This change means incorrect usage which may have
passed silently in 3.10 beta 1 and earlier will now error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44089">bpo-44089</a>: Allow subclassing <code class="docutils literal notranslate"><span class="pre">csv.Error</span></code> in 3.10 (it was allowed in 3.9
and earlier but was disallowed in early versions of 3.10).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44081">bpo-44081</a>: <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> now doesn’t use redundant spaces to
separate <code class="docutils literal notranslate"><span class="pre">lambda</span></code> and the <code class="docutils literal notranslate"><span class="pre">:</span></code> if there are no parameters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44061">bpo-44061</a>: Fix regression in previous release when calling
<a class="reference internal" href="../library/pkgutil.html#pkgutil.iter_modules" title="pkgutil.iter_modules"><code class="xref py py-func docutils literal notranslate"><span class="pre">pkgutil.iter_modules()</span></code></a> with a list of <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> objects</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44059">bpo-44059</a>: Register the SerenityOS Browser in the <a class="reference internal" href="../library/webbrowser.html#module-webbrowser" title="webbrowser: Easy-to-use controller for web browsers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">webbrowser</span></code></a>
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36515">bpo-36515</a>: The <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> module no longer does unaligned memory
accesses when compiled for ARM platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40465">bpo-40465</a>: Remove random module features deprecated in Python 3.9.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44018">bpo-44018</a>: random.seed() no longer mutates bytearray inputs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38352">bpo-38352</a>: Add <code class="docutils literal notranslate"><span class="pre">IO</span></code>, <code class="docutils literal notranslate"><span class="pre">BinaryIO</span></code>, <code class="docutils literal notranslate"><span class="pre">TextIO</span></code>, <code class="docutils literal notranslate"><span class="pre">Match</span></code>, and
<code class="docutils literal notranslate"><span class="pre">Pattern</span></code> to <code class="docutils literal notranslate"><span class="pre">typing.__all__</span></code>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44002">bpo-44002</a>: <a class="reference internal" href="../library/urllib.parse.html#module-urllib.parse" title="urllib.parse: Parse URLs into or assemble them from components."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.parse</span></code></a> now uses <code class="xref py py-func docutils literal notranslate"><span class="pre">functool.lru_cache()</span></code> for its
internal URL splitting and quoting caches instead of rolling its own like
its the ’90s.</p>
<p>The undocumented internal <a class="reference internal" href="../library/urllib.parse.html#module-urllib.parse" title="urllib.parse: Parse URLs into or assemble them from components."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.parse</span></code></a> <code class="docutils literal notranslate"><span class="pre">Quoted</span></code> class API is now
deprecated, for removal in 3.14.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43972">bpo-43972</a>: When <a class="reference internal" href="../library/http.server.html#http.server.SimpleHTTPRequestHandler" title="http.server.SimpleHTTPRequestHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.server.SimpleHTTPRequestHandler</span></code></a> sends a
<code class="docutils literal notranslate"><span class="pre">301</span> <span class="pre">(Moved</span> <span class="pre">Permanently)</span></code> for a directory path not ending with <code class="docutils literal notranslate"><span class="pre">/</span></code>,
add a <code class="docutils literal notranslate"><span class="pre">Content-Length:</span> <span class="pre">0</span></code> header. This improves the behavior for certain
clients.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28528">bpo-28528</a>: Fix a bug in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> where <code class="xref py py-meth docutils literal notranslate"><span class="pre">checkline()</span></code> raises
<a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> if it is called after <code class="xref py py-meth docutils literal notranslate"><span class="pre">reset()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43853">bpo-43853</a>: Improved string handling for <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> user-defined
functions and aggregates:</p>
<ul class="simple">
<li><p>It is now possible to pass strings with embedded null characters to UDFs</p></li>
<li><p>Conversion failures now correctly raise <a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a></p></li>
</ul>
<p>Patch by Erlend E. Aasland.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43666">bpo-43666</a>: AIX: <code class="docutils literal notranslate"><span class="pre">Lib/_aix_support.get_platform()</span></code> may fail in an AIX
WPAR. The fileset bos.rte appears to have a builddate in both LPAR and
WPAR so this fileset is queried rather than bos.mp64. To prevent a similar
situation (no builddate in ODM) a value (9988) sufficient for completing a
build is provided. Patch by M Felt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43650">bpo-43650</a>: Fix <a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a> in <a class="reference internal" href="../library/shutil.html#shutil.unpack_archive" title="shutil.unpack_archive"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.unpack_archive()</span></code></a> which
fails inside <code class="xref py py-func docutils literal notranslate"><span class="pre">shutil._unpack_zipfile()</span></code> on large files. Patch by Igor
Bolshakov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43612">bpo-43612</a>: <a class="reference internal" href="../library/zlib.html#zlib.compress" title="zlib.compress"><code class="xref py py-func docutils literal notranslate"><span class="pre">zlib.compress()</span></code></a> now accepts a wbits parameter which
allows users to compress data as a raw deflate block without zlib headers
and trailers in one go. Previously this required instantiating a
<code class="docutils literal notranslate"><span class="pre">zlib.compressobj</span></code>. It also provides a faster alternative to
<code class="docutils literal notranslate"><span class="pre">gzip.compress</span></code> when wbits=31 is used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43392">bpo-43392</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">importlib._bootstrap._find_and_load()</span></code> now implements a
two-step check to avoid locking when modules have been already imported
and are ready. This improves performance of repeated calls to
<a class="reference internal" href="../library/importlib.html#importlib.import_module" title="importlib.import_module"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.import_module()</span></code></a> and <a class="reference internal" href="../library/importlib.html#importlib.__import__" title="importlib.__import__"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.__import__()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43318">bpo-43318</a>: Fix a bug where <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> does not always echo cleared
breakpoints.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43234">bpo-43234</a>: Prohibit passing
non-<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor" title="concurrent.futures.ThreadPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ThreadPoolExecutor</span></code></a> executors to
<code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.set_default_executor()</span></code> following a deprecation in Python 3.8.
Patch by Illia Volochii.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43232">bpo-43232</a>: Prohibit previously deprecated potentially disruptive
operations on <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.trsock.TransportSocket</span></code>. Patch by Illia
Volochii.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30077">bpo-30077</a>: Added support for Apple’s aifc/sowt pseudo-compression</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42971">bpo-42971</a>: Add definition of <code class="docutils literal notranslate"><span class="pre">errno.EQFULL</span></code> for platforms that define
this constant (such as macOS).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43086">bpo-43086</a>: Added a new optional <code class="code docutils literal notranslate"><span class="pre">strict_mode</span></code> parameter to
<em>binascii.a2b_base64</em>. When <code class="code docutils literal notranslate"><span class="pre">scrict_mode</span></code> is set to <code class="code docutils literal notranslate"><span class="pre">True</span></code>,
the <em>a2b_base64</em> function will accept only valid base64 content. More
details about what “valid base64 content” is, can be found in the
function’s documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43024">bpo-43024</a>: Improve the help signature of
<a class="reference internal" href="../library/traceback.html#traceback.print_exception" title="traceback.print_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">traceback.print_exception()</span></code></a>, <a class="reference internal" href="../library/traceback.html#traceback.format_exception" title="traceback.format_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">traceback.format_exception()</span></code></a> and
<a class="reference internal" href="../library/traceback.html#traceback.format_exception_only" title="traceback.format_exception_only"><code class="xref py py-func docutils literal notranslate"><span class="pre">traceback.format_exception_only()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33809">bpo-33809</a>: Add the <a class="reference internal" href="../library/traceback.html#traceback.TracebackException.print" title="traceback.TracebackException.print"><code class="xref py py-meth docutils literal notranslate"><span class="pre">traceback.TracebackException.print()</span></code></a> method which
prints the formatted exception information.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42862">bpo-42862</a>: <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> now utilizes <a class="reference internal" href="../library/functools.html#functools.lru_cache" title="functools.lru_cache"><code class="xref py py-meth docutils literal notranslate"><span class="pre">functools.lru_cache()</span></code></a> to
implement the connection statement cache. As a small optimisation, the
default statement cache size has been increased from 100 to 128. Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41818">bpo-41818</a>: Soumendra Ganguly: add termios.tcgetwinsize(),
termios.tcsetwinsize().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40497">bpo-40497</a>: <a class="reference internal" href="../library/subprocess.html#subprocess.check_output" title="subprocess.check_output"><code class="xref py py-meth docutils literal notranslate"><span class="pre">subprocess.check_output()</span></code></a> now raises <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>
when the invalid keyword argument <em>check</em> is passed by user code.
Previously such use would fail later with a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>. Patch by
Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37449">bpo-37449</a>: <code class="docutils literal notranslate"><span class="pre">ensurepip</span></code> now uses <code class="docutils literal notranslate"><span class="pre">importlib.resources.files()</span></code>
traversable APIs</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40956">bpo-40956</a>: Use Argument Clinic in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>. Patches by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41730">bpo-41730</a>: <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> is now raised when importing
<code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.tix</span></code>, which has been deprecated in documentation since
Python 3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20684">bpo-20684</a>: Remove unused <code class="docutils literal notranslate"><span class="pre">_signature_get_bound_param</span></code> function from
<a class="reference internal" href="../library/inspect.html#module-inspect" title="inspect: Extract information and source code from live objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">inspect</span></code></a> - by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41402">bpo-41402</a>: Fix <a class="reference internal" href="../library/email.message.html#email.message.EmailMessage.set_content" title="email.message.EmailMessage.set_content"><code class="xref py py-meth docutils literal notranslate"><span class="pre">email.message.EmailMessage.set_content()</span></code></a> when called
with binary data and <code class="docutils literal notranslate"><span class="pre">7bit</span></code> content transfer encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32695">bpo-32695</a>: The <em>compresslevel</em> and <em>preset</em> keyword arguments of
<a class="reference internal" href="../library/tarfile.html#tarfile.open" title="tarfile.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">tarfile.open()</span></code></a> are now both documented and tested.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41137">bpo-41137</a>: Use utf-8 encoding while reading .pdbrc files. Patch by
Srinivas Reddy Thatiparthy</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24391">bpo-24391</a>: Improved reprs of <a class="reference internal" href="../library/threading.html#module-threading" title="threading: Thread-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code></a> synchronization objects:
<a class="reference internal" href="../library/threading.html#threading.Semaphore" title="threading.Semaphore"><code class="xref py py-class docutils literal notranslate"><span class="pre">Semaphore</span></code></a>, <a class="reference internal" href="../library/threading.html#threading.BoundedSemaphore" title="threading.BoundedSemaphore"><code class="xref py py-class docutils literal notranslate"><span class="pre">BoundedSemaphore</span></code></a>,
<a class="reference internal" href="../library/threading.html#threading.Event" title="threading.Event"><code class="xref py py-class docutils literal notranslate"><span class="pre">Event</span></code></a> and <a class="reference internal" href="../library/threading.html#threading.Barrier" title="threading.Barrier"><code class="xref py py-class docutils literal notranslate"><span class="pre">Barrier</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5846">bpo-5846</a>: Deprecated the following <a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> functions, scheduled
for removal in Python 3.13:</p>
<ul class="simple">
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">findTestCases()</span></code></p></li>
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">makeSuite()</span></code></p></li>
<li><p><code class="xref py py-func docutils literal notranslate"><span class="pre">getTestCaseNames()</span></code></p></li>
</ul>
<p>Use <a class="reference internal" href="../library/unittest.html#unittest.TestLoader" title="unittest.TestLoader"><code class="xref py py-class docutils literal notranslate"><span class="pre">TestLoader</span></code></a> methods instead:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../library/unittest.html#unittest.TestLoader.loadTestsFromModule" title="unittest.TestLoader.loadTestsFromModule"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestLoader.loadTestsFromModule()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/unittest.html#unittest.TestLoader.loadTestsFromTestCase" title="unittest.TestLoader.loadTestsFromTestCase"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestLoader.loadTestsFromTestCase()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/unittest.html#unittest.TestLoader.getTestCaseNames" title="unittest.TestLoader.getTestCaseNames"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestLoader.getTestCaseNames()</span></code></a></p></li>
</ul>
<p>Patch by Erlend E. Aasland.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40563">bpo-40563</a>: Support pathlike objects on dbm/shelve. Patch by Hakan Çelik
and Henry-Joseph Audéoud.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34990">bpo-34990</a>: Fixed a Y2k38 bug in the compileall module where it would fail
to compile files with a modification time after the year 2038.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39549">bpo-39549</a>: Whereas the code for reprlib.Repr had previously used a
hardcoded string value of ‘…’, this PR updates it to use of a
“fillvalue” attribute, whose value defaults to ‘…’ and can be reset in
either individual reprlib.Repr instances or in subclasses thereof.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37022">bpo-37022</a>: <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> now displays exceptions from <code class="docutils literal notranslate"><span class="pre">repr()</span></code> with its
<code class="docutils literal notranslate"><span class="pre">p</span></code> and <code class="docutils literal notranslate"><span class="pre">pp</span></code> commands.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38840">bpo-38840</a>: Fix <code class="docutils literal notranslate"><span class="pre">test___all__</span></code> on platforms lacking a shared memory
implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39359">bpo-39359</a>: Add one missing check that the password is a bytes object for
an encrypted zipfile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38741">bpo-38741</a>: <a class="reference internal" href="../library/configparser.html#module-configparser" title="configparser: Configuration file parser."><code class="xref py py-mod docutils literal notranslate"><span class="pre">configparser</span></code></a>: using ‘]’ inside a section header will no
longer cut the section name short at the ‘]’</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38415">bpo-38415</a>: Added missing behavior to
<a class="reference internal" href="../library/contextlib.html#contextlib.asynccontextmanager" title="contextlib.asynccontextmanager"><code class="xref py py-func docutils literal notranslate"><span class="pre">contextlib.asynccontextmanager()</span></code></a> to match
<a class="reference internal" href="../library/contextlib.html#contextlib.contextmanager" title="contextlib.contextmanager"><code class="xref py py-func docutils literal notranslate"><span class="pre">contextlib.contextmanager()</span></code></a> so decorated functions can themselves be
decorators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30256">bpo-30256</a>: Pass multiprocessing BaseProxy argument <code class="docutils literal notranslate"><span class="pre">manager_owned</span></code>
through AutoProxy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27513">bpo-27513</a>: <a class="reference internal" href="../library/email.utils.html#email.utils.getaddresses" title="email.utils.getaddresses"><code class="xref py py-func docutils literal notranslate"><span class="pre">email.utils.getaddresses()</span></code></a> now accepts
<a class="reference internal" href="../library/email.header.html#email.header.Header" title="email.header.Header"><code class="xref py py-class docutils literal notranslate"><span class="pre">email.header.Header</span></code></a> objects along with string values. Patch by
Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16379">bpo-16379</a>: Add SQLite error code and name to <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> exceptions.
Patch by Aviv Palivoda, Daniel Shahaf, and Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26228">bpo-26228</a>: pty.spawn no longer hangs on FreeBSD, macOS, and Solaris.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33349">bpo-33349</a>: lib2to3 now recognizes async generators everywhere.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29298">bpo-29298</a>: Fix <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> when required subparsers without <code class="docutils literal notranslate"><span class="pre">dest</span></code> do
not receive arguments. Patch by Anthony Sottile.</p></li>
</ul>
</section>
<section id="id322">
<h3>Documentation<a class="headerlink" href="#id322" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45216">bpo-45216</a>: Remove extra documentation listing methods in <code class="docutils literal notranslate"><span class="pre">difflib</span></code>. It
was rendering twice in pydoc and was outdated in some places.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45024">bpo-45024</a>: <a class="reference internal" href="../library/collections.abc.html#module-collections.abc" title="collections.abc: Abstract base classes for containers"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a> documentation has been expanded to
explicitly cover how instance and subclass checks work, with additional
doctest examples and an exhaustive list of ABCs which test membership
purely by presence of the right <a class="reference internal" href="../glossary.html#term-special-method"><span class="xref std std-term">special method</span></a>s. Patch by Raymond
Hettinger.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44957">bpo-44957</a>: Promote PEP 604 union syntax by using it where possible. Also,
mention <code class="docutils literal notranslate"><span class="pre">X</span> <span class="pre">|</span> <span class="pre">Y</span></code> more prominently in section about <code class="docutils literal notranslate"><span class="pre">Union</span></code> and mention
<code class="docutils literal notranslate"><span class="pre">X</span> <span class="pre">|</span> <span class="pre">None</span></code> at all in section about <code class="docutils literal notranslate"><span class="pre">Optional</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16580">bpo-16580</a>: Added code equivalents for the <a class="reference internal" href="../library/stdtypes.html#int.to_bytes" title="int.to_bytes"><code class="xref py py-meth docutils literal notranslate"><span class="pre">int.to_bytes()</span></code></a> and
<a class="reference internal" href="../library/stdtypes.html#int.from_bytes" title="int.from_bytes"><code class="xref py py-meth docutils literal notranslate"><span class="pre">int.from_bytes()</span></code></a> methods, as well as tests ensuring that these code
equivalents are valid.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44903">bpo-44903</a>: Removed the <code class="docutils literal notranslate"><span class="pre">othergui.rst</span></code> file, any references to it, and
the list of GUI frameworks in the FAQ. In their place I’ve added links to
the Python Wiki <a class="reference external" href="https://wiki.python.org/moin/GuiProgramming">page on GUI frameworks</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33479">bpo-33479</a>: Tkinter documentation has been greatly expanded with new
“Architecture” and “Threading model” sections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36700">bpo-36700</a>: <a class="reference internal" href="../library/base64.html#module-base64" title="base64: RFC 4648: Base16, Base32, Base64 Data Encodings; Base85 and Ascii85"><code class="xref py py-mod docutils literal notranslate"><span class="pre">base64</span></code></a> RFC references were updated to point to
<span class="target" id="index-221"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc4648.html"><strong>RFC 4648</strong></a>; a section was added to point users to the new “security
considerations” section of the RFC.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44740">bpo-44740</a>: Replaced occurrences of uppercase “Web” and “Internet” with
lowercase versions per the 2016 revised Associated Press Style Book.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44693">bpo-44693</a>: Update the definition of __future__ in the glossary by
replacing the confusing word “pseudo-module” with a more accurate
description.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35183">bpo-35183</a>: Add typical examples to os.path.splitext docs</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30511">bpo-30511</a>: Clarify that <a class="reference internal" href="../library/shutil.html#shutil.make_archive" title="shutil.make_archive"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.make_archive()</span></code></a> is not thread-safe due
to reliance on changing the current working directory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44561">bpo-44561</a>: Update of three expired hyperlinks in
Doc/distributing/index.rst: “Project structure”, “Building and packaging
the project”, and “Uploading the project to the Python Packaging Index”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44651">bpo-44651</a>: Delete entry “coercion” in Doc/glossary.rst for its outdated
definition.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42958">bpo-42958</a>: Updated the docstring and docs of <a class="reference internal" href="../library/filecmp.html#filecmp.cmp" title="filecmp.cmp"><code class="xref py py-func docutils literal notranslate"><span class="pre">filecmp.cmp()</span></code></a> to be
more accurate and less confusing especially in respect to <em>shallow</em> arg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44631">bpo-44631</a>: Refactored the <code class="docutils literal notranslate"><span class="pre">repr()</span></code> code of the <code class="docutils literal notranslate"><span class="pre">_Environ</span></code> (os module).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44613">bpo-44613</a>: importlib.metadata is no longer provisional.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44558">bpo-44558</a>: Match the docstring and python implementation of
<a class="reference internal" href="../library/operator.html#operator.countOf" title="operator.countOf"><code class="xref py py-func docutils literal notranslate"><span class="pre">countOf()</span></code></a> to the behavior of its c implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44544">bpo-44544</a>: List all kwargs for <a class="reference internal" href="../library/textwrap.html#textwrap.wrap" title="textwrap.wrap"><code class="xref py py-func docutils literal notranslate"><span class="pre">textwrap.wrap()</span></code></a>,
<a class="reference internal" href="../library/textwrap.html#textwrap.fill" title="textwrap.fill"><code class="xref py py-func docutils literal notranslate"><span class="pre">textwrap.fill()</span></code></a>, and <a class="reference internal" href="../library/textwrap.html#textwrap.shorten" title="textwrap.shorten"><code class="xref py py-func docutils literal notranslate"><span class="pre">textwrap.shorten()</span></code></a>. Now, there are nav
links to attributes of <code class="xref py py-class docutils literal notranslate"><span class="pre">TextWrap</span></code>, which makes navigation much
easier while minimizing duplication in the documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38062">bpo-38062</a>: Clarify that atexit uses equality comparisons internally.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40620">bpo-40620</a>: Convert examples in tutorial controlflow.rst section 4.3 to be
interpreter-demo style.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43066">bpo-43066</a>: Added a warning to <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a> docs: filename arg with a
leading slash may cause archive to be un-openable on Windows systems.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39452">bpo-39452</a>: Rewrote <code class="docutils literal notranslate"><span class="pre">Doc/library/__main__.rst</span></code>. Broadened scope of the
document to explicitly discuss and differentiate between <code class="docutils literal notranslate"><span class="pre">__main__.py</span></code>
in packages versus the <code class="docutils literal notranslate"><span class="pre">__name__</span> <span class="pre">==</span> <span class="pre">'__main__'</span></code> expression (and the
idioms that surround it).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13814">bpo-13814</a>: In the Design FAQ, answer “Why don’t generators support the
with statement?”</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27752">bpo-27752</a>: Documentation of csv.Dialect is more descriptive.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44453">bpo-44453</a>: Fix documentation for the return type of
<a class="reference internal" href="../library/sysconfig.html#sysconfig.get_path" title="sysconfig.get_path"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_path()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44392">bpo-44392</a>: Added a new section in the C API documentation for types used
in type hinting. Documented <code class="docutils literal notranslate"><span class="pre">Py_GenericAlias</span></code> and
<code class="docutils literal notranslate"><span class="pre">Py_GenericAliasType</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38291">bpo-38291</a>: Mark <code class="docutils literal notranslate"><span class="pre">typing.io</span></code> and <code class="docutils literal notranslate"><span class="pre">typing.re</span></code> as deprecated since Python
3.8 in the documentation. They were never properly supported by type
checkers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44322">bpo-44322</a>: Document that SyntaxError args have a details tuple and that
details are adjusted for errors in f-string field replacement expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42392">bpo-42392</a>: Document the deprecation and removal of the <code class="docutils literal notranslate"><span class="pre">loop</span></code> parameter
for many functions and classes in <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44195">bpo-44195</a>: Corrected references to <code class="docutils literal notranslate"><span class="pre">TraversableResources</span></code> in docs. There
is no <code class="docutils literal notranslate"><span class="pre">TraversableReader</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41963">bpo-41963</a>: Document that <code class="docutils literal notranslate"><span class="pre">ConfigParser</span></code> strips off comments when reading
configuration files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44072">bpo-44072</a>: Correct where in the numeric ABC hierarchy <code class="docutils literal notranslate"><span class="pre">**</span></code> support is
added, i.e., in numbers.Complex, not numbers.Integral.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43558">bpo-43558</a>: Add the remark to <a class="reference internal" href="../library/dataclasses.html#module-dataclasses" title="dataclasses: Generate special methods on user-defined classes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dataclasses</span></code></a> documentation that the
<code class="xref py py-meth docutils literal notranslate"><span class="pre">__init__()</span></code> of any base class has to be called in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">__post_init__()</span></code>, along with a code example.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44025">bpo-44025</a>: Clarify when ‘_’ in match statements is a keyword, and when
not.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41706">bpo-41706</a>: Fix docs about how methods like <code class="docutils literal notranslate"><span class="pre">__add__</span></code> are invoked when
evaluating operator expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41621">bpo-41621</a>: Document that <a class="reference internal" href="../library/collections.html#collections.defaultdict" title="collections.defaultdict"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.defaultdict</span></code></a> parameter
<code class="docutils literal notranslate"><span class="pre">default_factory</span></code> defaults to <code class="docutils literal notranslate"><span class="pre">None</span></code> and is positional-only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41576">bpo-41576</a>: document BaseException in favor of bare except</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21760">bpo-21760</a>: The description for __file__ fixed. Patch by Furkan Onder</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39498">bpo-39498</a>: Add a “Security Considerations” index which links to standard
library modules that have explicitly documented security considerations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33479">bpo-33479</a>: Remove the unqualified claim that tkinter is threadsafe. It has
not been true for several years and likely never was. An explanation of
what is true may be added later, after more discussion, and possibly after
patching _tkinter.c,</p></li>
</ul>
</section>
<section id="id323">
<h3>Tests<a class="headerlink" href="#id323" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40173">bpo-40173</a>: Fix <a class="reference internal" href="../library/test.html#test.support.import_helper.import_fresh_module" title="test.support.import_helper.import_fresh_module"><code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.import_helper.import_fresh_module()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45280">bpo-45280</a>: Add a test case for empty <a class="reference internal" href="../library/typing.html#typing.NamedTuple" title="typing.NamedTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NamedTuple</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45269">bpo-45269</a>: Cover case when invalid <code class="docutils literal notranslate"><span class="pre">markers</span></code> type is supplied to
<code class="docutils literal notranslate"><span class="pre">c_make_encoder</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45128">bpo-45128</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_multiprocessing_fork</span></code> failure due to
<code class="docutils literal notranslate"><span class="pre">test_logging</span></code> and <code class="docutils literal notranslate"><span class="pre">sys.modules</span></code> manipulation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45209">bpo-45209</a>: Fix <code class="docutils literal notranslate"><span class="pre">UserWarning:</span> <span class="pre">resource_tracker</span></code> warning in
<code class="docutils literal notranslate"><span class="pre">_test_multiprocessing._TestSharedMemory.test_shared_memory_cleaned_after_process_termination</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45185">bpo-45185</a>: Enables <code class="docutils literal notranslate"><span class="pre">TestEnumerations</span></code> test cases in <code class="docutils literal notranslate"><span class="pre">test_ssl</span></code> suite.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45195">bpo-45195</a>: Fix test_readline.test_nonascii(): sometimes, the newline
character is not written at the end, so don’t expect it in the output.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45156">bpo-45156</a>: Fixes infinite loop on <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.seal" title="unittest.mock.seal"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.seal()</span></code></a> of mocks
created by <code class="xref py py-func docutils literal notranslate"><span class="pre">create_autospec()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45125">bpo-45125</a>: Improves pickling tests and docs of <code class="docutils literal notranslate"><span class="pre">SharedMemory</span></code> and
<code class="docutils literal notranslate"><span class="pre">SharableList</span></code> objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44860">bpo-44860</a>: Update <code class="docutils literal notranslate"><span class="pre">test_sysconfig.test_user_similar()</span></code> for the
posix_user scheme: <code class="docutils literal notranslate"><span class="pre">platlib</span></code> doesn’t use <a class="reference internal" href="../library/sys.html#sys.platlibdir" title="sys.platlibdir"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.platlibdir</span></code></a>. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45052">bpo-45052</a>: <code class="docutils literal notranslate"><span class="pre">WithProcessesTestSharedMemory.test_shared_memory_basics</span></code>
test was ignored, because <code class="docutils literal notranslate"><span class="pre">self.assertEqual(sms.size,</span> <span class="pre">sms2.size)</span></code> line
was failing. It is now removed and test is unskipped.</p>
<p>The main motivation for this line to be removed from the test is that the
<code class="docutils literal notranslate"><span class="pre">size</span></code> of <code class="docutils literal notranslate"><span class="pre">SharedMemory</span></code> is not ever guaranteed to be the same. It is
decided by the platform.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44895">bpo-44895</a>: libregrtest now clears the type cache later to reduce the risk
of false alarm when checking for reference leaks. Previously, the type
cache was cleared too early and libregrtest raised a false alarm about
reference leaks under very specific conditions. Patch by Irit Katriel and
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45042">bpo-45042</a>: Fixes that test classes decorated with
<code class="docutils literal notranslate"><span class="pre">@hashlib_helper.requires_hashdigest</span></code> were skipped all the time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25130">bpo-25130</a>: Add calls of <a class="reference internal" href="../library/gc.html#gc.collect" title="gc.collect"><code class="xref py py-func docutils literal notranslate"><span class="pre">gc.collect()</span></code></a> in tests to support PyPy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45011">bpo-45011</a>: Made tests relying on the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_asyncio</span></code> C extension module
optional to allow running on alternative Python implementations. Patch by
Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44949">bpo-44949</a>: Fix auto history tests of test_readline: sometimes, the newline
character is not written at the end, so don’t expect it in the output.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44891">bpo-44891</a>: Tests were added to clarify <a class="reference internal" href="../library/functions.html#id" title="id"><code class="xref py py-func docutils literal notranslate"><span class="pre">id()</span></code></a> is preserved when <code class="docutils literal notranslate"><span class="pre">obj</span>
<span class="pre">*</span> <span class="pre">1</span></code> is used on <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> objects. Patch by Nikita
Sobolev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44852">bpo-44852</a>: Add ability to wholesale silence DeprecationWarnings while
running the regression test suite.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40928">bpo-40928</a>: Notify users running test_decimal regression tests on macOS of
potential harmless “malloc can’t allocate region” messages spewed by
test_decimal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44734">bpo-44734</a>: Fixed floating-point precision issue in turtle tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44708">bpo-44708</a>: Regression tests, when run with -w, are now re-running only the
affected test methods instead of re-running the entire test file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42095">bpo-42095</a>: Added interop tests for Apple plists: generate plist files with
Python plistlib and parse with Apple plutil; and the other way round.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44647">bpo-44647</a>: Added a permanent Unicode-valued environment variable to
regression tests to ensure they handle this use case in the future. If
your test environment breaks because of that, report a bug to us, and
temporarily set PYTHONREGRTEST_UNICODE_GUARD=0 in your test environment.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44515">bpo-44515</a>: Adjust recently added contextlib tests to avoid assuming the
use of a refcounted GC</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44287">bpo-44287</a>: Fix asyncio test_popen() of test_windows_utils by using a
longer timeout. Use military grade battle-tested
<a class="reference internal" href="../library/test.html#test.support.SHORT_TIMEOUT" title="test.support.SHORT_TIMEOUT"><code class="xref py py-data docutils literal notranslate"><span class="pre">test.support.SHORT_TIMEOUT</span></code></a> timeout rather than a hardcoded timeout
of 10 seconds: it’s 30 seconds by default, but it is made longer on slow
buildbots. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44451">bpo-44451</a>: Reset <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> filters in
<code class="docutils literal notranslate"><span class="pre">test.test_importlib.test_metadata_api.APITests.test_entry_points_by_index</span></code>
to avoid <code class="docutils literal notranslate"><span class="pre">StopIteration</span></code> error if <code class="docutils literal notranslate"><span class="pre">DeprecationWarnings</span></code> are ignored.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44363">bpo-44363</a>: Account for address sanitizer in test_capi. test_capi now
passes when run GCC address sanitizer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44364">bpo-44364</a>: Add non integral tests for <a class="reference internal" href="../library/math.html#math.sqrt" title="math.sqrt"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.sqrt()</span></code></a> function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43921">bpo-43921</a>: Fix test_ssl.test_wrong_cert_tls13(): use
<code class="docutils literal notranslate"><span class="pre">suppress_ragged_eofs=False</span></code>, since <code class="docutils literal notranslate"><span class="pre">read()</span></code> can raise
<a class="reference internal" href="../library/ssl.html#ssl.SSLEOFError" title="ssl.SSLEOFError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ssl.SSLEOFError</span></code></a> on Windows. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43921">bpo-43921</a>: Fix test_pha_required_nocert() of test_ssl: catch two more EOF
cases (when the <code class="docutils literal notranslate"><span class="pre">recv()</span></code> method returns an empty string). Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44131">bpo-44131</a>: Add test_frozenmain to test_embed to test the
<code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FrozenMain()</span></code> C function. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Ignore error string case in test_file_not_exists().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42083">bpo-42083</a>: Add test to check that <code class="docutils literal notranslate"><span class="pre">PyStructSequence_NewType</span></code> accepts a
<code class="docutils literal notranslate"><span class="pre">PyStructSequence_Desc</span></code> with <code class="docutils literal notranslate"><span class="pre">doc</span></code> field set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35753">bpo-35753</a>: Fix crash in doctest when doctest parses modules that include
unwrappable functions by skipping those functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30256">bpo-30256</a>: Add test for nested queues when using <code class="docutils literal notranslate"><span class="pre">multiprocessing</span></code>
shared objects <code class="docutils literal notranslate"><span class="pre">AutoProxy[Queue]</span></code> inside <code class="docutils literal notranslate"><span class="pre">ListProxy</span></code> and <code class="docutils literal notranslate"><span class="pre">DictProxy</span></code></p></li>
</ul>
</section>
<section id="id324">
<h3>Build<a class="headerlink" href="#id324" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45220">bpo-45220</a>: Avoid building with the Windows 11 SDK previews automatically.
This may be overridden by setting the <code class="docutils literal notranslate"><span class="pre">DefaultWindowsSDKVersion</span></code>
environment variable before building.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45020">bpo-45020</a>: Freeze stdlib modules that are imported during startup. This
provides significant performance improvements to startup. If necessary,
use the previously added “-X frozen_modules=off” commandline option to
force importing the source modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45188">bpo-45188</a>: Windows builds now regenerate frozen modules as the first part
of the build. Previously the regeneration was later in the build, which
would require it to be restarted if any modules had changed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45163">bpo-45163</a>: Fixes Haiku platform build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45067">bpo-45067</a>: The ncurses function extended_color_content was introduced in
2017</p>
<p>(<a class="reference external" href="https://invisible-island.net/ncurses/NEWS.html#index-t20170401">https://invisible-island.net/ncurses/NEWS.html#index-t20170401</a>). The</p>
<p>ncurses-devel package in CentOS 7 had a older version ncurses resulted in
compilation error. For compiling ncurses with extended color support, we
verify the version of the ncurses library >= 20170401.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45019">bpo-45019</a>: Generate lines in relevant files for frozen modules. Up until
now each of the files had to be edited manually. This change makes it
easier to add to and modify the frozen modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44340">bpo-44340</a>: Add support for building with clang thin lto via
–with-lto=thin/full. Patch by Donghee Na and Brett Holman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44535">bpo-44535</a>: Enable building using a Visual Studio 2022 install on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43298">bpo-43298</a>: Improved error message when building without a Windows SDK
installed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44381">bpo-44381</a>: The Windows build now accepts <span class="target" id="index-222"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">EnableControlFlowGuard</span></code>
set to <code class="docutils literal notranslate"><span class="pre">guard</span></code> to enable CFG.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41282">bpo-41282</a>: Fix broken <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> that caused standard library
extension modules to be unnecessarily and incorrectly rebuilt during the
install phase of cpython.</p></li>
</ul>
</section>
<section id="id325">
<h3>Windows<a class="headerlink" href="#id325" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45375">bpo-45375</a>: Fixes an assertion failure due to searching for the standard
library in unnormalised paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45022">bpo-45022</a>: Update Windows release to include libffi 3.4.2</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45007">bpo-45007</a>: Update to OpenSSL 1.1.1l in Windows build</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44848">bpo-44848</a>: Upgrade Windows installer to use SQLite 3.36.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44572">bpo-44572</a>: Avoid consuming standard input in the <a class="reference internal" href="../library/platform.html#module-platform" title="platform: Retrieves as much platform identifying data as possible."><code class="xref py py-mod docutils literal notranslate"><span class="pre">platform</span></code></a> module</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44582">bpo-44582</a>: Accelerate speed of <a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a> initialization using a
native implementation of the registry scan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41299">bpo-41299</a>: Fix 16 milliseconds jitter when using timeouts in
<a class="reference internal" href="../library/threading.html#module-threading" title="threading: Thread-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code></a>, such as with <a class="reference internal" href="../library/threading.html#threading.Lock.acquire" title="threading.Lock.acquire"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.Lock.acquire()</span></code></a> or
<a class="reference internal" href="../library/threading.html#threading.Condition.wait" title="threading.Condition.wait"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.Condition.wait()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42686">bpo-42686</a>: Build <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> with math functions enabled. Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40263">bpo-40263</a>: This is a follow-on bug from
<a class="reference external" href="https://bugs.python.org/issue26903">https://bugs.python.org/issue26903</a>. Once that is applied we run into an
off-by-one assertion problem. The assert was not correct.</p></li>
</ul>
</section>
<section id="id326">
<h3>macOS<a class="headerlink" href="#id326" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45007">bpo-45007</a>: Update macOS installer builds to use OpenSSL 1.1.1l.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34602">bpo-34602</a>: When building CPython on macOS with <code class="docutils literal notranslate"><span class="pre">./configure</span>
<span class="pre">--with-undefined-behavior-sanitizer</span> <span class="pre">--with-pydebug</span></code>, the stack size is
now quadrupled to allow for the entire test suite to pass.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44848">bpo-44848</a>: Update macOS installer to use SQLite 3.36.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44689">bpo-44689</a>: <a class="reference internal" href="../library/ctypes.html#ctypes.util.find_library" title="ctypes.util.find_library"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ctypes.util.find_library()</span></code></a> now works correctly on macOS
11 Big Sur even if Python is built on an older version of macOS.
Previously, when built on older macOS systems, <code class="docutils literal notranslate"><span class="pre">find_library</span></code> was not
able to find macOS system libraries when running on Big Sur due to
changes in how system libraries are stored.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41972">bpo-41972</a>: The framework build’s user header path in sysconfig is changed
to add a ‘pythonX.Y’ component to match distutils’s behavior.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43109">bpo-43109</a>: Allow –with-lto configure option to work with Apple-supplied
Xcode or Command Line Tools.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34932">bpo-34932</a>: Add socket.TCP_KEEPALIVE support for macOS. Patch by Shane
Harvey.</p></li>
</ul>
</section>
<section id="id327">
<h3>IDLE<a class="headerlink" href="#id327" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45296">bpo-45296</a>: On Windows, change exit/quit message to suggest Ctrl-D, which
works, instead of <Ctrl-Z Return>, which does not work in IDLE.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45193">bpo-45193</a>: Make completion boxes appear on Ubuntu again.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40128">bpo-40128</a>: Mostly fix completions on macOS when not using tcl/tk 8.6.11
(as with 3.9). The added update_idletask call should be harmless and
possibly helpful otherwise.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33962">bpo-33962</a>: Move the indent space setting from the Font tab to the new
Windows tab. Patch by Mark Roseman and Terry Jan Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40468">bpo-40468</a>: Split the settings dialog General tab into Windows and Shell/ED
tabs. Move help sources, which extend the Help menu, to the Extensions
tab. Make space for new options and shorten the dialog. The latter makes
the dialog better fit small screens.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41611">bpo-41611</a>: Avoid uncaught exceptions in
<code class="docutils literal notranslate"><span class="pre">AutoCompleteWindow.winconfig_event()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41611">bpo-41611</a>: Fix IDLE sometimes freezing upon tab-completion on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44010">bpo-44010</a>: Highlight the new <a class="reference internal" href="../reference/compound_stmts.html#match"><span class="std std-ref">match</span></a> statement’s <a class="reference internal" href="../reference/lexical_analysis.html#soft-keywords"><span class="std std-ref">soft
keywords</span></a>: <a class="reference internal" href="../reference/compound_stmts.html#match"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">match</span></code></a>, <a class="reference internal" href="../reference/compound_stmts.html#match"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">case</span></code></a>, and
<a class="reference internal" href="../reference/compound_stmts.html#wildcard-patterns"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">_</span></code></a>. However, this highlighting is not
perfect and will be incorrect in some rare cases, including some <code class="docutils literal notranslate"><span class="pre">_</span></code>-s
in <code class="docutils literal notranslate"><span class="pre">case</span></code> patterns.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44026">bpo-44026</a>: Include interpreter’s typo fix suggestions in message line for
NameErrors and AttributeErrors. Patch by E. Paine.</p></li>
</ul>
</section>
<section id="id328">
<h3>Tools/Demos<a class="headerlink" href="#id328" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44786">bpo-44786</a>: Fix a warning in regular expression in the c-analyzer script.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44967">bpo-44967</a>: pydoc now returns a non-zero status code when a module cannot
be found.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44978">bpo-44978</a>: Allow the Argument Clinic tool to handle <code class="docutils literal notranslate"><span class="pre">__complex__</span></code>
special methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43425">bpo-43425</a>: Removed the ‘test2to3’ demo project that demonstrated using
lib2to3 to support Python 2.x and Python 3.x from a single source in a
distutils package. Patch by Donghee Na</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44074">bpo-44074</a>: Make patchcheck automatically detect the correct base branch
name (previously it was hardcoded to ‘master’)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20291">bpo-20291</a>: Added support for variadic positional parameters in Argument
Clinic.</p></li>
</ul>
</section>
<section id="id329">
<h3>C API<a class="headerlink" href="#id329" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41710">bpo-41710</a>: The PyThread_acquire_lock_timed() function now clamps the
timeout if it is too large, rather than aborting the process. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44687">bpo-44687</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">BufferedReader.peek()</span></code> no longer raises <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a>
when the entire file has already been buffered.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45116">bpo-45116</a>: Add the <a class="reference internal" href="../c-api/intro.html#c.Py_ALWAYS_INLINE" title="Py_ALWAYS_INLINE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_ALWAYS_INLINE</span></code></a> macro to ask the compiler
to always inline a static inline function. The compiler can ignore it and
decides to not inline the function. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45094">bpo-45094</a>: Add the <a class="reference internal" href="../c-api/intro.html#c.Py_NO_INLINE" title="Py_NO_INLINE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_NO_INLINE</span></code></a> macro to disable inlining on a
function. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=45061">bpo-45061</a>: Add a deallocator to the <a class="reference internal" href="../library/functions.html#bool" title="bool"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a> type to detect refcount
bugs in C extensions which call <code class="docutils literal notranslate"><span class="pre">Py_DECREF(Py_True);</span></code> or
<code class="docutils literal notranslate"><span class="pre">Py_DECREF(Py_False);</span></code> by mistake. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42035">bpo-42035</a>: Add a new <a class="reference internal" href="../c-api/type.html#c.PyType_GetQualName" title="PyType_GetQualName"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetQualName()</span></code></a> function to get type’s
qualified name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41103">bpo-41103</a>: Reverts removal of the old buffer protocol because they are
part of stable ABI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44751">bpo-44751</a>: Remove <code class="docutils literal notranslate"><span class="pre">crypt.h</span></code> include from the public <code class="docutils literal notranslate"><span class="pre">Python.h</span></code> header.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42747">bpo-42747</a>: The <code class="docutils literal notranslate"><span class="pre">Py_TPFLAGS_HAVE_VERSION_TAG</span></code> type flag now does nothing.
The <code class="docutils literal notranslate"><span class="pre">Py_TPFLAGS_HAVE_AM_SEND</span></code> flag (which was added in 3.10) is removed.
Both were unnecessary because it is not possible to have type objects with
the relevant fields missing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44530">bpo-44530</a>: Added the <code class="docutils literal notranslate"><span class="pre">co_qualname</span></code> to the <code class="docutils literal notranslate"><span class="pre">PyCodeObject</span></code> structure to
propagate the qualified name from the compiler to code objects.</p>
<p>Patch by Gabriele N. Tornetta</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44441">bpo-44441</a>: <a class="reference internal" href="../c-api/init.html#c.Py_RunMain" title="Py_RunMain"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_RunMain()</span></code></a> now resets <code class="xref c c-data docutils literal notranslate"><span class="pre">PyImport_Inittab</span></code> to
its initial value at exit. It must be possible to call
<a class="reference internal" href="../c-api/import.html#c.PyImport_AppendInittab" title="PyImport_AppendInittab"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_AppendInittab()</span></code></a> or <a class="reference internal" href="../c-api/import.html#c.PyImport_ExtendInittab" title="PyImport_ExtendInittab"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_ExtendInittab()</span></code></a> at
each Python initialization. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39947">bpo-39947</a>: Remove 4 private trashcan C API functions which were only kept
for the backward compatibility of the stable ABI with Python 3.8 and
older, since the trashcan API was not usable with the limited C API on
Python 3.8 and older. The trashcan API was excluded from the limited C API
in Python 3.9.</p>
<p>Removed functions:</p>
<ul class="simple">
<li><p>_PyTrash_deposit_object()</p></li>
<li><p>_PyTrash_destroy_chain()</p></li>
<li><p>_PyTrash_thread_deposit_object()</p></li>
<li><p>_PyTrash_thread_destroy_chain()</p></li>
</ul>
<p>The trashcan C API was never usable with the limited C API, since old
trashcan macros accessed directly <a class="reference internal" href="../c-api/init.html#c.PyThreadState" title="PyThreadState"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyThreadState</span></code></a> members like
<code class="docutils literal notranslate"><span class="pre">_tstate->trash_delete_nesting</span></code>, whereas the <a class="reference internal" href="../c-api/init.html#c.PyThreadState" title="PyThreadState"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyThreadState</span></code></a>
structure is opaque in the limited C API.</p>
<p>Exclude also the <code class="docutils literal notranslate"><span class="pre">PyTrash_UNWIND_LEVEL</span></code> constant from the C API.</p>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40939">bpo-40939</a>: Removed documentation for the removed <code class="docutils literal notranslate"><span class="pre">PyParser_*</span></code> C API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43795">bpo-43795</a>: The list in <a class="reference internal" href="../c-api/stable.html#limited-api-list"><span class="std std-ref">Contents of Limited API</span></a> now shows the public name
<a class="reference internal" href="../c-api/frame.html#c.PyFrameObject" title="PyFrameObject"><code class="xref c c-struct docutils literal notranslate"><span class="pre">PyFrameObject</span></code></a> rather than <code class="docutils literal notranslate"><span class="pre">_frame</span></code>. The non-existing entry
<code class="docutils literal notranslate"><span class="pre">_node</span></code> no longer appears in the list.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44378">bpo-44378</a>: <a class="reference internal" href="../c-api/structures.html#c.Py_IS_TYPE" title="Py_IS_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_IS_TYPE()</span></code></a> no longer uses <a class="reference internal" href="../c-api/structures.html#c.Py_TYPE" title="Py_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_TYPE()</span></code></a> to avoid
a compiler warning: no longer cast <code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">PyObject*</span></code> to <code class="docutils literal notranslate"><span class="pre">PyObject*</span></code>.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39573">bpo-39573</a>: Convert the <a class="reference internal" href="../c-api/structures.html#c.Py_TYPE" title="Py_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_TYPE()</span></code></a> and <a class="reference internal" href="../c-api/structures.html#c.Py_SIZE" title="Py_SIZE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SIZE()</span></code></a> macros to
static inline functions. The <a class="reference internal" href="../c-api/structures.html#c.Py_SET_TYPE" title="Py_SET_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SET_TYPE()</span></code></a> and
<a class="reference internal" href="../c-api/structures.html#c.Py_SET_SIZE" title="Py_SET_SIZE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SET_SIZE()</span></code></a> functions must now be used to set an object type and
size. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44263">bpo-44263</a>: The <a class="reference internal" href="../c-api/type.html#c.PyType_Ready" title="PyType_Ready"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_Ready()</span></code></a> function now raises an error if a
type is defined with the <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_HAVE_GC" title="Py_TPFLAGS_HAVE_GC"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_HAVE_GC</span></code></a> flag set but has no
traverse function (<a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_traverse" title="PyTypeObject.tp_traverse"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyTypeObject.tp_traverse</span></code></a>). Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43795">bpo-43795</a>: The undocumented function <code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FrozenMain()</span></code> is removed
from the Limited API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44113">bpo-44113</a>: Deprecate the following functions to configure the Python
initialization:</p>
<ul class="simple">
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_AddWarnOptionUnicode()</span></code></p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_AddWarnOption()</span></code></p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_AddXOption()</span></code></p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_HasWarnOptions()</span></code></p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetPath()</span></code></p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetProgramName()</span></code></p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetPythonHome()</span></code></p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetStandardStreamEncoding()</span></code></p></li>
<li><p><code class="xref c c-func docutils literal notranslate"><span class="pre">_Py_SetProgramFullPath()</span></code></p></li>
</ul>
<p>Use the new <a class="reference internal" href="../c-api/init_config.html#c.PyConfig" title="PyConfig"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyConfig</span></code></a> API of the <a class="reference internal" href="../c-api/init_config.html#init-config"><span class="std std-ref">Python Initialization
Configuration</span></a> instead (<span class="target" id="index-223"></span><a class="pep reference external" href="https://peps.python.org/pep-0587/"><strong>PEP 587</strong></a>).</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44094">bpo-44094</a>: Remove <code class="docutils literal notranslate"><span class="pre">PyErr_SetFromErrnoWithUnicodeFilename()</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyErr_SetFromWindowsErrWithUnicodeFilename()</span></code>, and
<code class="docutils literal notranslate"><span class="pre">PyErr_SetExcFromWindowsErrWithUnicodeFilename()</span></code>. They are not
documented and have been deprecated since Python 3.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43795">bpo-43795</a>: <a class="reference internal" href="../c-api/codec.html#c.PyCodec_Unregister" title="PyCodec_Unregister"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCodec_Unregister()</span></code></a> is now properly exported as a
function in the Windows Stable ABI DLL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44029">bpo-44029</a>: Remove deprecated <code class="docutils literal notranslate"><span class="pre">Py_UNICODE</span></code> APIs: <code class="docutils literal notranslate"><span class="pre">PyUnicode_Encode</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyUnicode_EncodeUTF7</span></code>, <code class="docutils literal notranslate"><span class="pre">PyUnicode_EncodeUTF8</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyUnicode_EncodeUTF16</span></code>, <code class="docutils literal notranslate"><span class="pre">PyUnicode_EncodeUTF32</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyUnicode_EncodeLatin1</span></code>, <code class="docutils literal notranslate"><span class="pre">PyUnicode_EncodeMBCS</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyUnicode_EncodeDecimal</span></code>, <code class="docutils literal notranslate"><span class="pre">PyUnicode_EncodeRawUnicodeEscape</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyUnicode_EncodeCharmap</span></code>, <code class="docutils literal notranslate"><span class="pre">PyUnicode_EncodeUnicodeEscape</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyUnicode_TransformDecimalToASCII</span></code>, <code class="docutils literal notranslate"><span class="pre">PyUnicode_TranslateCharmap</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyUnicodeEncodeError_Create</span></code>, <code class="docutils literal notranslate"><span class="pre">PyUnicodeTranslateError_Create</span></code>. See
<span class="target" id="index-224"></span><a class="pep reference external" href="https://peps.python.org/pep-0393/"><strong>PEP 393</strong></a> and <span class="target" id="index-225"></span><a class="pep reference external" href="https://peps.python.org/pep-0624/"><strong>PEP 624</strong></a> for reference.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42035">bpo-42035</a>: Add a new <a class="reference internal" href="../c-api/type.html#c.PyType_GetName" title="PyType_GetName"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetName()</span></code></a> function to get type’s short
name.</p></li>
</ul>
</section>
</section>
<section id="python-3-10-0-beta-1">
<h2>Python 3.10.0 beta 1<a class="headerlink" href="#python-3-10-0-beta-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2021-05-03</em></p>
<section id="id330">
<h3>Security<a class="headerlink" href="#id330" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43434">bpo-43434</a>: Creating <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> objects now also produces
<code class="docutils literal notranslate"><span class="pre">sqlite3.connect</span></code> and <code class="docutils literal notranslate"><span class="pre">sqlite3.connect/handle</span></code> <a class="reference internal" href="../library/sys.html#auditing"><span class="std std-ref">auditing events</span></a>. Previously these events were only produced by
<a class="reference internal" href="../library/sqlite3.html#sqlite3.connect" title="sqlite3.connect"><code class="xref py py-func docutils literal notranslate"><span class="pre">sqlite3.connect()</span></code></a> calls. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43998">bpo-43998</a>: The <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> module sets more secure cipher suites defaults.
Ciphers without forward secrecy and with SHA-1 MAC are disabled by
default. Security level 2 prohibits weak RSA, DH, and ECC keys with less
than 112 bits of security. <a class="reference internal" href="../library/ssl.html#ssl.SSLContext" title="ssl.SSLContext"><code class="xref py py-class docutils literal notranslate"><span class="pre">SSLContext</span></code></a> defaults to minimum
protocol version TLS 1.2. Settings are based on Hynek Schlawack’s
research.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43882">bpo-43882</a>: The presence of newline or tab characters in parts of a URL
could allow some forms of attacks.</p>
<p>Following the controlling specification for URLs defined by WHATWG
<a class="reference internal" href="../library/urllib.parse.html#module-urllib.parse" title="urllib.parse: Parse URLs into or assemble them from components."><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse()</span></code></a> now removes ASCII newlines and tabs from URLs,
preventing such attacks.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43472">bpo-43472</a>: Ensures interpreter-level audit hooks receive the
<code class="docutils literal notranslate"><span class="pre">cpython.PyInterpreterState_New</span></code> event when called through the
<code class="docutils literal notranslate"><span class="pre">_xxsubinterpreters</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43362">bpo-43362</a>: Fix invalid free in _sha3 module. The issue was introduced in
3.10.0a1. Python 3.9 and earlier are not affected.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43762">bpo-43762</a>: Add audit events for <code class="xref py py-func docutils literal notranslate"><span class="pre">sqlite3.connect/handle()</span></code>,
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.enable_load_extension" title="sqlite3.Connection.enable_load_extension"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.enable_load_extension()</span></code></a>, and
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.load_extension" title="sqlite3.Connection.load_extension"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.load_extension()</span></code></a>. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43756">bpo-43756</a>: Add new audit event <code class="docutils literal notranslate"><span class="pre">glob.glob/2</span></code> to incorporate the new
<em>root_dir</em> and <em>dir_fd</em> arguments added to <a class="reference internal" href="../library/glob.html#glob.glob" title="glob.glob"><code class="xref py py-func docutils literal notranslate"><span class="pre">glob.glob()</span></code></a> and
<a class="reference internal" href="../library/glob.html#glob.iglob" title="glob.iglob"><code class="xref py py-func docutils literal notranslate"><span class="pre">glob.iglob()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36384">bpo-36384</a>: <a class="reference internal" href="../library/ipaddress.html#module-ipaddress" title="ipaddress: IPv4/IPv6 manipulation library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress</span></code></a> module no longer accepts any leading zeros in
IPv4 address strings. Leading zeros are ambiguous and interpreted as octal
notation by some libraries. For example the legacy function
<a class="reference internal" href="../library/socket.html#socket.inet_aton" title="socket.inet_aton"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.inet_aton()</span></code></a> treats leading zeros as octal notation. glibc
implementation of modern <a class="reference internal" href="../library/socket.html#socket.inet_pton" title="socket.inet_pton"><code class="xref py py-func docutils literal notranslate"><span class="pre">inet_pton()</span></code></a> does not accept any
leading zeros. For a while the <a class="reference internal" href="../library/ipaddress.html#module-ipaddress" title="ipaddress: IPv4/IPv6 manipulation library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress</span></code></a> module used to accept
ambiguous leading zeros.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43075">bpo-43075</a>: Fix Regular Expression Denial of Service (ReDoS) vulnerability
in <a class="reference internal" href="../library/urllib.request.html#urllib.request.AbstractBasicAuthHandler" title="urllib.request.AbstractBasicAuthHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">urllib.request.AbstractBasicAuthHandler</span></code></a>. The ReDoS-vulnerable
regex has quadratic worst-case complexity and it allows cause a denial of
service when identifying crafted invalid RFCs. This ReDoS issue is on the
client side and needs remote attackers to control the HTTP server.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42800">bpo-42800</a>: Audit hooks are now fired for frame.f_code, traceback.tb_frame,
and generator code/frame attribute access.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37363">bpo-37363</a>: Add audit events to the <a class="reference internal" href="../library/http.client.html#module-http.client" title="http.client: HTTP and HTTPS protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.client</span></code></a> module.</p></li>
</ul>
</section>
<section id="id331">
<h3>Core and Builtins<a class="headerlink" href="#id331" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43977">bpo-43977</a>: Prevent classes being both a sequence and a mapping when
pattern matching.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43977">bpo-43977</a>: Use <a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_flags" title="PyTypeObject.tp_flags"><code class="xref c c-member docutils literal notranslate"><span class="pre">tp_flags</span></code></a> on the class object to
determine if the subject is a sequence or mapping when pattern matching.
Avoids the need to import <a class="reference internal" href="../library/collections.abc.html#module-collections.abc" title="collections.abc: Abstract base classes for containers"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a> when pattern matching.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43892">bpo-43892</a>: Restore proper validation of complex literal value patterns
when parsing <code class="xref std std-keyword docutils literal notranslate"><span class="pre">match</span></code> blocks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43933">bpo-43933</a>: Set frame.f_lineno to the line number of the ‘with’ kweyword
when executing the call to <code class="docutils literal notranslate"><span class="pre">__exit__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43933">bpo-43933</a>: If the current position in a frame has no line number then set
the f_lineno attribute to None, instead of -1, to conform to PEP 626. This
should not normally be possible, but might occur in some unusual
circumstances.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43963">bpo-43963</a>: Importing the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_signal</span></code> module in a subinterpreter has no
longer side effects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42739">bpo-42739</a>: The internal representation of line number tables is changed to
not use sentinels, and an explicit length parameter is added to the out of
process API function <code class="docutils literal notranslate"><span class="pre">PyLineTable_InitAddressRange</span></code>. This makes the
handling of line number tables more robust in some circumstances.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43908">bpo-43908</a>: Make <a class="reference internal" href="../library/re.html#module-re" title="re: Regular expression operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">re</span></code></a> types immutable. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43908">bpo-43908</a>: Make the <a class="reference internal" href="../library/array.html#array.array" title="array.array"><code class="xref py py-class docutils literal notranslate"><span class="pre">array.array</span></code></a> type immutable. Patch by Erlend
E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43901">bpo-43901</a>: Change class and module objects to lazy-create empty
annotations dicts on demand. The annotations dicts are stored in the
object’s __dict__ for backwards compatibility.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43892">bpo-43892</a>: Match patterns now use new dedicated AST nodes (<code class="docutils literal notranslate"><span class="pre">MatchValue</span></code>,
<code class="docutils literal notranslate"><span class="pre">MatchSingleton</span></code>, <code class="docutils literal notranslate"><span class="pre">MatchSequence</span></code>, <code class="docutils literal notranslate"><span class="pre">MatchStar</span></code>, <code class="docutils literal notranslate"><span class="pre">MatchMapping</span></code>,
<code class="docutils literal notranslate"><span class="pre">MatchClass</span></code>) rather than reusing expression AST nodes. <code class="docutils literal notranslate"><span class="pre">MatchAs</span></code> and
<code class="docutils literal notranslate"><span class="pre">MatchOr</span></code> are now defined as pattern nodes rather than as expression
nodes. Patch by Nick Coghlan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42725">bpo-42725</a>: Usage of <code class="docutils literal notranslate"><span class="pre">await</span></code>/<code class="docutils literal notranslate"><span class="pre">yield</span></code>/<code class="docutils literal notranslate"><span class="pre">yield</span> <span class="pre">from</span></code> and named
expressions within an annotation is now forbidden when PEP 563 is
activated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43754">bpo-43754</a>: When performing structural pattern matching (<span class="target" id="index-226"></span><a class="pep reference external" href="https://peps.python.org/pep-0634/"><strong>PEP 634</strong></a>),
captured names are now left unbound until the <em>entire</em> pattern has matched
successfully.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42737">bpo-42737</a>: Annotations for complex targets (everything beside simple
names) no longer cause any runtime effects with <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span>
<span class="pre">annotations</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43914">bpo-43914</a>: <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> exceptions raised by the interpreter will
highlight the full error range of the expression that constitutes the
syntax error itself, instead of just where the problem is detected. Patch
by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38605">bpo-38605</a>: Revert making <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">annotations</span></code> the
default. This follows the Steering Council decision to postpone PEP 563
changes to at least Python 3.11. See the original email for more
information regarding the decision:
<a class="reference external" href="https://mail.python.org/archives/list/python-dev@python.org/thread/CLVXXPQ2T2LQ5MP2Y53VVQFCXYWQJHKZ/">https://mail.python.org/archives/list/python-dev@python.org/thread/CLVXXPQ2T2LQ5MP2Y53VVQFCXYWQJHKZ/</a>.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43475">bpo-43475</a>: Hashes of NaN values now depend on object identity. Formerly,
they always hashed to 0 even though NaN values are not equal to one
another. Having the same hash for unequal values caused pile-ups in hash
tables.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43859">bpo-43859</a>: Improve the error message for <a class="reference internal" href="../library/exceptions.html#IndentationError" title="IndentationError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IndentationError</span></code></a>
exceptions. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41323">bpo-41323</a>: Constant tuple folding in bytecode optimizer now reuses tuple
in constant table.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43846">bpo-43846</a>: Data stack usage is much reduced for large literal and call
expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38530">bpo-38530</a>: When printing <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> raised by the interpreter,
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_Display()</span></code> will offer suggestions of similar variable names
in the function that the exception was raised from. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43823">bpo-43823</a>: Improve syntax errors for invalid dictionary literals. Patch by
Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43822">bpo-43822</a>: Improve syntax errors in the parser for missing commas between
expressions. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43798">bpo-43798</a>: <a class="reference internal" href="../library/ast.html#ast.alias" title="ast.alias"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.alias</span></code></a> nodes now include source location metadata
attributes e.g. lineno, col_offset.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43797">bpo-43797</a>: Improve <code class="docutils literal notranslate"><span class="pre">SyntaxError</span></code> error messages for invalid comparisons.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43760">bpo-43760</a>: Move the flag for checking whether tracing is enabled to the C
stack, from the heap. Should speed up dispatch in the interpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43682">bpo-43682</a>: Static methods (<a class="reference internal" href="../library/functions.html#staticmethod" title="staticmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">@staticmethod</span></code></a>) and class
methods (<a class="reference internal" href="../library/functions.html#classmethod" title="classmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">@classmethod</span></code></a>) now inherit the method
attributes (<code class="docutils literal notranslate"><span class="pre">__module__</span></code>, <code class="docutils literal notranslate"><span class="pre">__name__</span></code>, <code class="docutils literal notranslate"><span class="pre">__qualname__</span></code>, <code class="docutils literal notranslate"><span class="pre">__doc__</span></code>,
<code class="docutils literal notranslate"><span class="pre">__annotations__</span></code>) and have a new <code class="docutils literal notranslate"><span class="pre">__wrapped__</span></code> attribute. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43751">bpo-43751</a>: Fixed a bug where <code class="docutils literal notranslate"><span class="pre">anext(ait,</span> <span class="pre">default)</span></code> would erroneously
return None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42128">bpo-42128</a>: <a class="reference internal" href="../reference/datamodel.html#object.__match_args__" title="object.__match_args__"><code class="xref py py-data docutils literal notranslate"><span class="pre">__match_args__</span></code></a> is no longer allowed to be a
list.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43683">bpo-43683</a>: Add GEN_START opcode. Marks start of generator, including
async, or coroutine and handles sending values to a newly created
generator or coroutine.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43105">bpo-43105</a>: Importlib now resolves relative paths when creating module spec
objects from file locations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43682">bpo-43682</a>: Static methods (<a class="reference internal" href="../library/functions.html#staticmethod" title="staticmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">@staticmethod</span></code></a>) are now
callable as regular functions. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42609">bpo-42609</a>: Prevented crashes in the AST validator and optimizer when
compiling some absurdly long expressions like <code class="docutils literal notranslate"><span class="pre">"+0"*1000000</span></code>.
<a class="reference internal" href="../library/exceptions.html#RecursionError" title="RecursionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RecursionError</span></code></a> is now raised instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38530">bpo-38530</a>: When printing <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a>, <code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_Display()</span></code>
will offer suggestions of similar attribute names in the object that the
exception was raised from. Patch by Pablo Galindo</p></li>
</ul>
</section>
<section id="id332">
<h3>Library<a class="headerlink" href="#id332" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44015">bpo-44015</a>: In @dataclass(), raise a TypeError if KW_ONLY is specified more
than once.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25478">bpo-25478</a>: Added a <em>total()</em> method to collections.Counter() to compute
the sum of the counts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43733">bpo-43733</a>: Change <a class="reference internal" href="../library/netrc.html#netrc.netrc" title="netrc.netrc"><code class="xref py py-class docutils literal notranslate"><span class="pre">netrc.netrc</span></code></a> to use UTF-8 encoding before using
locale encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43979">bpo-43979</a>: Removed an unnecessary list comprehension before looping from
<a class="reference internal" href="../library/urllib.parse.html#urllib.parse.parse_qsl" title="urllib.parse.parse_qsl"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.parse_qsl()</span></code></a>. Patch by Christoph Zwerschke and Donghee
Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43993">bpo-43993</a>: Update bundled pip to 21.1.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43957">bpo-43957</a>: [Enum] Deprecate <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> when non-member is used in a
containment check; In 3.12 <code class="docutils literal notranslate"><span class="pre">True</span></code> or <code class="docutils literal notranslate"><span class="pre">False</span></code> will be returned instead,
and containment will return <code class="docutils literal notranslate"><span class="pre">True</span></code> if the value is either a member of
that enum or one of its members’ value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42904">bpo-42904</a>: For backwards compatibility with previous minor versions of
Python, if <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> receives no namespace dictionary
arguments, <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> will search through the global
then local namespaces during evaluation of stringized type annotations
(string forward references) inside a class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43945">bpo-43945</a>: [Enum] Deprecate non-standard mixin format() behavior: in 3.12
the enum member, not the member’s value, will be used for format() calls.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41139">bpo-41139</a>: Deprecate undocumented <code class="docutils literal notranslate"><span class="pre">cgi.log()</span></code> API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43937">bpo-43937</a>: Fixed the <a class="reference internal" href="../library/turtle.html#module-turtle" title="turtle: An educational framework for simple graphics applications"><code class="xref py py-mod docutils literal notranslate"><span class="pre">turtle</span></code></a> module working with non-default root
window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43930">bpo-43930</a>: Update bundled pip to 21.1 and setuptools to 56.0.0</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43907">bpo-43907</a>: Fix a bug in the pure-Python pickle implementation when using
protocol 5, where bytearray instances that occur several time in the
pickled object graph would incorrectly unpickle into repeated copies of
the bytearray object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43926">bpo-43926</a>: In <code class="docutils literal notranslate"><span class="pre">importlib.metadata</span></code>, provide a uniform interface to
<code class="docutils literal notranslate"><span class="pre">Description</span></code>, allow for any field to be encoded with multiline values,
remove continuation lines from multiline values, and add a <code class="docutils literal notranslate"><span class="pre">.json</span></code>
property for easy access to the PEP 566 JSON-compatible form. Sync with
<code class="docutils literal notranslate"><span class="pre">importlib_metadata</span> <span class="pre">4.0</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43920">bpo-43920</a>: OpenSSL 3.0.0: <a class="reference internal" href="../library/ssl.html#ssl.SSLContext.load_verify_locations" title="ssl.SSLContext.load_verify_locations"><code class="xref py py-meth docutils literal notranslate"><span class="pre">load_verify_locations()</span></code></a>
now returns a consistent error message when cadata contains no valid
certificate.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43607">bpo-43607</a>: <a class="reference internal" href="../library/urllib.html#module-urllib" title="urllib"><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib</span></code></a> can now convert Windows paths with <code class="docutils literal notranslate"><span class="pre">\\?\</span></code>
prefixes into URL paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43817">bpo-43817</a>: Add <a class="reference internal" href="../library/inspect.html#inspect.get_annotations" title="inspect.get_annotations"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.get_annotations()</span></code></a>, which safely computes the
annotations defined on an object. It works around the quirks of accessing
the annotations from various types of objects, and makes very few
assumptions about the object passed in. <a class="reference internal" href="../library/inspect.html#inspect.get_annotations" title="inspect.get_annotations"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.get_annotations()</span></code></a>
can also correctly un-stringize stringized annotations.</p>
<p><a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a>, <code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.from_callable()</span></code>, and
<code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.from_function()</span></code> now call <a class="reference internal" href="../library/inspect.html#inspect.get_annotations" title="inspect.get_annotations"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.get_annotations()</span></code></a> to
retrieve annotations. This means <a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.from_callable()</span></code> can now un-stringize stringized annotations,
too.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43284">bpo-43284</a>: platform.win32_ver derives the windows version from
sys.getwindowsversion().platform_version which in turn derives the version
from kernel32.dll (which can be of a different version than Windows
itself). Therefore change the platform.win32_ver to determine the version
using the platform module’s _syscmd_ver private function to return an
accurate version.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42854">bpo-42854</a>: The <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> module now uses <code class="docutils literal notranslate"><span class="pre">SSL_read_ex</span></code> and
<code class="docutils literal notranslate"><span class="pre">SSL_write_ex</span></code> internally. The functions support reading and writing of
data larger than 2 GB. Writing zero-length data no longer fails with a
protocol violation error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42333">bpo-42333</a>: Port <code class="docutils literal notranslate"><span class="pre">_ssl</span></code> extension module to multiphase initialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43880">bpo-43880</a>: <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> now raises DeprecationWarning for OP_NO_SSL/TLS*
options, old TLS versions, old protocols, and other features that have
been deprecated since Python 3.6, 3.7, or OpenSSL 1.1.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41559">bpo-41559</a>: <span class="target" id="index-227"></span><a class="pep reference external" href="https://peps.python.org/pep-0612/"><strong>PEP 612</strong></a> is now implemented purely in Python; builtin
<code class="docutils literal notranslate"><span class="pre">types.GenericAlias</span></code> objects no longer include <code class="docutils literal notranslate"><span class="pre">typing.ParamSpec</span></code> in
<code class="docutils literal notranslate"><span class="pre">__parameters__</span></code> (with the exception of <code class="docutils literal notranslate"><span class="pre">collections.abc.Callable</span></code>‘s
<code class="docutils literal notranslate"><span class="pre">GenericAlias</span></code>). This means previously invalid uses of <code class="docutils literal notranslate"><span class="pre">ParamSpec</span></code>
(such as <code class="docutils literal notranslate"><span class="pre">list[P]</span></code>) which worked in earlier versions of Python 3.10
alpha, will now raise <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> during substitution.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43867">bpo-43867</a>: The <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> <code class="docutils literal notranslate"><span class="pre">Server</span></code> class now explicitly
catches <a class="reference internal" href="../library/exceptions.html#SystemExit" title="SystemExit"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemExit</span></code></a> and closes the client connection in this case.
It happens when the <code class="docutils literal notranslate"><span class="pre">Server.serve_client()</span></code> method reaches the end of
file (EOF).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40443">bpo-40443</a>: Remove unused imports: pyclbr no longer uses copy, and typing
no longer uses ast. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43820">bpo-43820</a>: Remove an unneeded copy of the namespace passed to
dataclasses.make_dataclass().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43787">bpo-43787</a>: Add <code class="docutils literal notranslate"><span class="pre">__iter__()</span></code> method to <a class="reference internal" href="../library/bz2.html#bz2.BZ2File" title="bz2.BZ2File"><code class="xref py py-class docutils literal notranslate"><span class="pre">bz2.BZ2File</span></code></a>,
<a class="reference internal" href="../library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">gzip.GzipFile</span></code></a>, and <a class="reference internal" href="../library/lzma.html#lzma.LZMAFile" title="lzma.LZMAFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">lzma.LZMAFile</span></code></a>. It makes iterating
them about 2x faster. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43680">bpo-43680</a>: Deprecate io.OpenWrapper and _pyio.OpenWrapper: use io.open and
_pyio.open instead. Until Python 3.9, _pyio.open was not a static method
and builtins.open was set to OpenWrapper to not become a bound method when
set to a class variable. _io.open is a built-in function whereas
_pyio.open is a Python function. In Python 3.10, _pyio.open() is now a
static method, and builtins.open() is now io.open().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43680">bpo-43680</a>: The Python <code class="xref py py-func docutils literal notranslate"><span class="pre">_pyio.open()</span></code> function becomes a static method
to behave as <a class="reference internal" href="../library/io.html#io.open" title="io.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.open()</span></code></a> built-in function: don’t become a bound
method when stored as a class variable. It becomes possible since static
methods are now callable in Python 3.10. Moreover,
<code class="xref py py-func docutils literal notranslate"><span class="pre">_pyio.OpenWrapper()</span></code> becomes a simple alias to <code class="xref py py-func docutils literal notranslate"><span class="pre">_pyio.open()</span></code>.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41515">bpo-41515</a>: Fix <a class="reference internal" href="../library/exceptions.html#KeyError" title="KeyError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyError</span></code></a> raised in <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> due
to synthetic modules that don’t appear in <code class="docutils literal notranslate"><span class="pre">sys.modules</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43776">bpo-43776</a>: When <a class="reference internal" href="../library/subprocess.html#subprocess.Popen" title="subprocess.Popen"><code class="xref py py-class docutils literal notranslate"><span class="pre">subprocess.Popen</span></code></a> args are provided as a string or
as <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a>, the Popen instance repr now shows the right
thing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42248">bpo-42248</a>: [Enum] ensure exceptions raised in <code class="docutils literal notranslate"><span class="pre">_missing__</span></code> are released</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43744">bpo-43744</a>: fix issue with enum member name matching the start of a private
variable name</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43772">bpo-43772</a>: Fixed the return value of <code class="docutils literal notranslate"><span class="pre">TypeVar.__ror__</span></code>. Patch by Jelle
Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43764">bpo-43764</a>: Add match_args parameter to @dataclass decorator to allow
suppression of __match_args__ generation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43799">bpo-43799</a>: OpenSSL 3.0.0: define <code class="docutils literal notranslate"><span class="pre">OPENSSL_API_COMPAT</span></code> 1.1.1 to suppress
deprecation warnings. Python requires OpenSSL 1.1.1 APIs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43478">bpo-43478</a>: Mocks can no longer be used as the specs for other Mocks. As a
result, an already-mocked object cannot have an attribute mocked using
<code class="docutils literal notranslate"><span class="pre">autospec=True</span></code> or be the subject of a <code class="docutils literal notranslate"><span class="pre">create_autospec(...)</span></code> call.
This can uncover bugs in tests since these Mock-derived Mocks will always
pass certain tests (e.g. <a class="reference internal" href="../library/functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal notranslate"><span class="pre">isinstance()</span></code></a>) and builtin assert functions
(e.g. assert_called_once_with) will unconditionally pass.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43794">bpo-43794</a>: Add <a class="reference internal" href="../library/ssl.html#ssl.OP_IGNORE_UNEXPECTED_EOF" title="ssl.OP_IGNORE_UNEXPECTED_EOF"><code class="xref py py-const docutils literal notranslate"><span class="pre">ssl.OP_IGNORE_UNEXPECTED_EOF</span></code></a> constants (OpenSSL
3.0.0)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43785">bpo-43785</a>: Improve <code class="docutils literal notranslate"><span class="pre">bz2.BZ2File</span></code> performance by removing the RLock from
BZ2File. This makes BZ2File thread unsafe in the face of multiple
simultaneous readers or writers, just like its equivalent classes in
<a class="reference internal" href="../library/gzip.html#module-gzip" title="gzip: Interfaces for gzip compression and decompression using file objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gzip</span></code></a> and <a class="reference internal" href="../library/lzma.html#module-lzma" title="lzma: A Python wrapper for the liblzma compression library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">lzma</span></code></a> have always been. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43789">bpo-43789</a>: OpenSSL 3.0.0: Don’t call the password callback function a
second time when first call has signaled an error condition.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43788">bpo-43788</a>: The header files for <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> error codes are now OpenSSL
version-specific. Exceptions will now show correct reason and library
codes. The <code class="docutils literal notranslate"><span class="pre">make_ssl_data.py</span></code> script has been rewritten to use OpenSSL’s
text file with error codes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43766">bpo-43766</a>: Implement <span class="target" id="index-228"></span><a class="pep reference external" href="https://peps.python.org/pep-0647/"><strong>PEP 647</strong></a> in the <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> module by adding
<code class="xref py py-data docutils literal notranslate"><span class="pre">TypeGuard</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25264">bpo-25264</a>: <a class="reference internal" href="../library/os.path.html#os.path.realpath" title="os.path.realpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.realpath()</span></code></a> now accepts a <em>strict</em> keyword-only
argument. When set to <code class="docutils literal notranslate"><span class="pre">True</span></code>, <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> is raised if a path doesn’t
exist or a symlink loop is encountered.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43780">bpo-43780</a>: In <code class="docutils literal notranslate"><span class="pre">importlib.metadata</span></code>, incorporate changes from
importlib_metadata 3.10: Add mtime-based caching during distribution
discovery. Flagged use of dict result from <code class="docutils literal notranslate"><span class="pre">entry_points()</span></code> as
deprecated.</p></li>
<li><p><a class="reference external" href="https://github.com/python/cpython/issues/47383">gh-47383</a>: The <code class="docutils literal notranslate"><span class="pre">P.args</span></code> and <code class="docutils literal notranslate"><span class="pre">P.kwargs</span></code> attributes of
<a class="reference internal" href="../library/typing.html#typing.ParamSpec" title="typing.ParamSpec"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ParamSpec</span></code></a> are now instances of the new classes
<a class="reference internal" href="../library/typing.html#typing.ParamSpecArgs" title="typing.ParamSpecArgs"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ParamSpecArgs</span></code></a> and <a class="reference internal" href="../library/typing.html#typing.ParamSpecKwargs" title="typing.ParamSpecKwargs"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.ParamSpecKwargs</span></code></a>, which
enables a more useful <code class="docutils literal notranslate"><span class="pre">repr()</span></code>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43731">bpo-43731</a>: Add an <code class="docutils literal notranslate"><span class="pre">encoding</span></code> parameter <code class="xref py py-func docutils literal notranslate"><span class="pre">logging.fileConfig()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43712">bpo-43712</a>: Add <code class="docutils literal notranslate"><span class="pre">encoding</span></code> and <code class="docutils literal notranslate"><span class="pre">errors</span></code> parameters to
<a class="reference internal" href="../library/fileinput.html#fileinput.input" title="fileinput.input"><code class="xref py py-func docutils literal notranslate"><span class="pre">fileinput.input()</span></code></a> and <a class="reference internal" href="../library/fileinput.html#fileinput.FileInput" title="fileinput.FileInput"><code class="xref py py-class docutils literal notranslate"><span class="pre">fileinput.FileInput</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38659">bpo-38659</a>: A <code class="docutils literal notranslate"><span class="pre">simple_enum</span></code> decorator is added to the <code class="docutils literal notranslate"><span class="pre">enum</span></code> module to
convert a normal class into an Enum. <code class="docutils literal notranslate"><span class="pre">test_simple_enum</span></code> added to test
simple enums against a corresponding normal Enum. Standard library
modules updated to use <code class="docutils literal notranslate"><span class="pre">simple_enum</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43764">bpo-43764</a>: Fix an issue where <a class="reference internal" href="../reference/datamodel.html#object.__match_args__" title="object.__match_args__"><code class="xref py py-data docutils literal notranslate"><span class="pre">__match_args__</span></code></a> generation
could fail for some <a class="reference internal" href="../library/dataclasses.html#module-dataclasses" title="dataclasses: Generate special methods on user-defined classes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dataclasses</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43752">bpo-43752</a>: Fix <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> regression for zero-sized blobs with
converters, where <code class="docutils literal notranslate"><span class="pre">b""</span></code> was returned instead of <code class="docutils literal notranslate"><span class="pre">None</span></code>. The regression
was introduced by PR 24723. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43655">bpo-43655</a>: <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> dialog windows are now recognized as dialogs by
window managers on macOS and X Window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43723">bpo-43723</a>: The following <code class="docutils literal notranslate"><span class="pre">threading</span></code> methods are now deprecated and
should be replaced:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">currentThread</span></code> => <a class="reference internal" href="../library/threading.html#threading.current_thread" title="threading.current_thread"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.current_thread()</span></code></a></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">activeCount</span></code> => <a class="reference internal" href="../library/threading.html#threading.active_count" title="threading.active_count"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.active_count()</span></code></a></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Condition.notifyAll</span></code> => <a class="reference internal" href="../library/threading.html#threading.Condition.notify_all" title="threading.Condition.notify_all"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.Condition.notify_all()</span></code></a></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Event.isSet</span></code> => <a class="reference internal" href="../library/threading.html#threading.Event.is_set" title="threading.Event.is_set"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.Event.is_set()</span></code></a></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Thread.setName</span></code> => <a class="reference internal" href="../library/threading.html#threading.Thread.name" title="threading.Thread.name"><code class="xref py py-attr docutils literal notranslate"><span class="pre">threading.Thread.name</span></code></a></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">thread.getName</span></code> => <a class="reference internal" href="../library/threading.html#threading.Thread.name" title="threading.Thread.name"><code class="xref py py-attr docutils literal notranslate"><span class="pre">threading.Thread.name</span></code></a></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Thread.isDaemon</span></code> => <a class="reference internal" href="../library/threading.html#threading.Thread.daemon" title="threading.Thread.daemon"><code class="xref py py-attr docutils literal notranslate"><span class="pre">threading.Thread.daemon</span></code></a></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Thread.setDaemon</span></code> => <a class="reference internal" href="../library/threading.html#threading.Thread.daemon" title="threading.Thread.daemon"><code class="xref py py-attr docutils literal notranslate"><span class="pre">threading.Thread.daemon</span></code></a></p></li>
</ul>
<p>Patch by Jelle Zijlstra.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2135">bpo-2135</a>: Deprecate find_module() and find_loader() implementations in
importlib and zipimport.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43534">bpo-43534</a>: <a class="reference internal" href="../library/turtle.html#turtle.textinput" title="turtle.textinput"><code class="xref py py-func docutils literal notranslate"><span class="pre">turtle.textinput()</span></code></a> and <a class="reference internal" href="../library/turtle.html#turtle.numinput" title="turtle.numinput"><code class="xref py py-func docutils literal notranslate"><span class="pre">turtle.numinput()</span></code></a> create now
a transient window working on behalf of the canvas window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43532">bpo-43532</a>: Add the ability to specify keyword-only fields to dataclasses.
These fields will become keyword-only arguments to the generated __init__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43522">bpo-43522</a>: Fix problem with
<a class="reference internal" href="../library/ssl.html#ssl.SSLContext.hostname_checks_common_name" title="ssl.SSLContext.hostname_checks_common_name"><code class="xref py py-attr docutils literal notranslate"><span class="pre">hostname_checks_common_name</span></code></a>. OpenSSL does not copy
hostflags from <em>struct SSL_CTX</em> to <em>struct SSL</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8978">bpo-8978</a>: Improve error message for <a class="reference internal" href="../library/tarfile.html#tarfile.open" title="tarfile.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">tarfile.open()</span></code></a> when <a class="reference internal" href="../library/lzma.html#module-lzma" title="lzma: A Python wrapper for the liblzma compression library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">lzma</span></code></a>
/ <a class="reference internal" href="../library/bz2.html#module-bz2" title="bz2: Interfaces for bzip2 compression and decompression."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bz2</span></code></a> are unavailable. Patch by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42967">bpo-42967</a>: Allow <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> <code class="docutils literal notranslate"><span class="pre">separator</span></code> argument in
<code class="docutils literal notranslate"><span class="pre">urllib.parse.parse_qs</span></code> and <code class="docutils literal notranslate"><span class="pre">urllib.parse.parse_qsl</span></code> when parsing
<a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> query strings. Previously, this raised a <code class="docutils literal notranslate"><span class="pre">TypeError</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43296">bpo-43296</a>: Improve <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> error handling: <code class="docutils literal notranslate"><span class="pre">sqlite3_value_blob()</span></code>
errors that set <code class="docutils literal notranslate"><span class="pre">SQLITE_NOMEM</span></code> now raise <a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a>. Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43312">bpo-43312</a>: New functions <a class="reference internal" href="../library/sysconfig.html#sysconfig.get_preferred_scheme" title="sysconfig.get_preferred_scheme"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_preferred_scheme()</span></code></a> and
<a class="reference internal" href="../library/sysconfig.html#sysconfig.get_default_scheme" title="sysconfig.get_default_scheme"><code class="xref py py-func docutils literal notranslate"><span class="pre">sysconfig.get_default_scheme()</span></code></a> are added to query a platform for its
preferred “user”, “home”, and “prefix” (default) scheme names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43265">bpo-43265</a>: Improve <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.backup" title="sqlite3.Connection.backup"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.backup()</span></code></a> error handling. The
error message for non-existent target database names is now <code class="docutils literal notranslate"><span class="pre">unknown</span>
<span class="pre">database</span> <span class="pre"><database</span> <span class="pre">name></span></code> instead of <code class="docutils literal notranslate"><span class="pre">SQL</span> <span class="pre">logic</span> <span class="pre">error</span></code>. Patch by Erlend
E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41282">bpo-41282</a>: Install schemes in <code class="docutils literal notranslate"><span class="pre">distutils.command.install</span></code> are now loaded
from <a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41282">bpo-41282</a>: <code class="docutils literal notranslate"><span class="pre">distutils.sysconfig</span></code> has been merged to <a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43176">bpo-43176</a>: Fixed processing of a dataclass that inherits from a frozen
dataclass with no fields. It is now correctly detected as an error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43080">bpo-43080</a>: <a class="reference internal" href="../library/pprint.html#module-pprint" title="pprint: Data pretty printer."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pprint</span></code></a> now has support for
<a class="reference internal" href="../library/dataclasses.html#dataclasses.dataclass" title="dataclasses.dataclass"><code class="xref py py-class docutils literal notranslate"><span class="pre">dataclasses.dataclass</span></code></a>. Patch by Lewis Gaul.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39950">bpo-39950</a>: Add <code class="docutils literal notranslate"><span class="pre">pathlib.Path.hardlink_to()</span></code> method that supersedes
<code class="docutils literal notranslate"><span class="pre">link_to()</span></code>. The new method has the same argument order as
<code class="docutils literal notranslate"><span class="pre">symlink_to()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42904">bpo-42904</a>: <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> now checks the local namespace of
a class when evaluating <span class="target" id="index-229"></span><a class="pep reference external" href="https://peps.python.org/pep-0563/"><strong>PEP 563</strong></a> annotations inside said class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42269">bpo-42269</a>: Add <code class="docutils literal notranslate"><span class="pre">slots</span></code> parameter to <code class="docutils literal notranslate"><span class="pre">dataclasses.dataclass</span></code> decorator
to automatically generate <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> for class. Patch provided by Yurii
Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39529">bpo-39529</a>: Deprecated use of <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.get_event_loop" title="asyncio.get_event_loop"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.get_event_loop()</span></code></a> without
running event loop. Emit deprecation warning for <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> functions
which implicitly create a <a class="reference internal" href="../library/asyncio-future.html#asyncio.Future" title="asyncio.Future"><code class="xref py py-class docutils literal notranslate"><span class="pre">Future</span></code></a> or
<a class="reference internal" href="../library/asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">Task</span></code></a> objects if there is no running event loop and no
explicit <em>loop</em> argument is passed: <a class="reference internal" href="../library/asyncio-future.html#asyncio.ensure_future" title="asyncio.ensure_future"><code class="xref py py-func docutils literal notranslate"><span class="pre">ensure_future()</span></code></a>,
<a class="reference internal" href="../library/asyncio-future.html#asyncio.wrap_future" title="asyncio.wrap_future"><code class="xref py py-func docutils literal notranslate"><span class="pre">wrap_future()</span></code></a>, <a class="reference internal" href="../library/asyncio-task.html#asyncio.gather" title="asyncio.gather"><code class="xref py py-func docutils literal notranslate"><span class="pre">gather()</span></code></a>,
<a class="reference internal" href="../library/asyncio-task.html#asyncio.shield" title="asyncio.shield"><code class="xref py py-func docutils literal notranslate"><span class="pre">shield()</span></code></a>, <a class="reference internal" href="../library/asyncio-task.html#asyncio.as_completed" title="asyncio.as_completed"><code class="xref py py-func docutils literal notranslate"><span class="pre">as_completed()</span></code></a> and constructors of
<a class="reference internal" href="../library/asyncio-future.html#asyncio.Future" title="asyncio.Future"><code class="xref py py-class docutils literal notranslate"><span class="pre">Future</span></code></a>, <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">Task</span></code></a>,
<a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamReader" title="asyncio.StreamReader"><code class="xref py py-class docutils literal notranslate"><span class="pre">StreamReader</span></code></a>, <code class="xref py py-class docutils literal notranslate"><span class="pre">StreamReaderProtocol</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18369">bpo-18369</a>: Certificate and PrivateKey classes were added to the ssl
module. Certificates and keys can now be loaded from memory buffer, too.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41486">bpo-41486</a>: Use a new output buffer management code for <a class="reference internal" href="../library/bz2.html#module-bz2" title="bz2: Interfaces for bzip2 compression and decompression."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bz2</span></code></a> /
<a class="reference internal" href="../library/lzma.html#module-lzma" title="lzma: A Python wrapper for the liblzma compression library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">lzma</span></code></a> / <a class="reference internal" href="../library/zlib.html#module-zlib" title="zlib: Low-level interface to compression and decompression routines compatible with gzip."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zlib</span></code></a> modules, and add <code class="docutils literal notranslate"><span class="pre">.readall()</span></code> function to
<code class="docutils literal notranslate"><span class="pre">_compression.DecompressReader</span></code> class. These bring some performance
improvements. Patch by Ma Lin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31870">bpo-31870</a>: The <a class="reference internal" href="../library/ssl.html#ssl.get_server_certificate" title="ssl.get_server_certificate"><code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.get_server_certificate()</span></code></a> function now has a
<em>timeout</em> parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41735">bpo-41735</a>: Fix thread locks in zlib module may go wrong in rare case.
Patch by Ma Lin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36470">bpo-36470</a>: Fix dataclasses with <code class="docutils literal notranslate"><span class="pre">InitVar</span></code>s and
<a class="reference internal" href="../library/dataclasses.html#dataclasses.replace" title="dataclasses.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">replace()</span></code></a>. Patch by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40849">bpo-40849</a>: Expose X509_V_FLAG_PARTIAL_CHAIN ssl flag</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35114">bpo-35114</a>: <a class="reference internal" href="../library/ssl.html#ssl.RAND_status" title="ssl.RAND_status"><code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.RAND_status()</span></code></a> now returns a boolean value (as
documented) instead of <code class="docutils literal notranslate"><span class="pre">1</span></code> or <code class="docutils literal notranslate"><span class="pre">0</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39906">bpo-39906</a>: <a class="reference internal" href="../library/pathlib.html#pathlib.Path.stat" title="pathlib.Path.stat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.stat()</span></code></a> and <a class="reference internal" href="../library/pathlib.html#pathlib.Path.chmod" title="pathlib.Path.chmod"><code class="xref py py-meth docutils literal notranslate"><span class="pre">chmod()</span></code></a> now
accept a <em>follow_symlinks</em> keyword-only argument for consistency with
corresponding functions in the <a class="reference internal" href="../library/os.html#module-os" title="os: Miscellaneous operating system interfaces."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39899">bpo-39899</a>: <a class="reference internal" href="../library/os.path.html#os.path.expanduser" title="os.path.expanduser"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.expanduser()</span></code></a> now refuses to guess Windows home
directories if the basename of current user’s home directory does not
match their username.</p>
<p><a class="reference internal" href="../library/pathlib.html#pathlib.Path.expanduser" title="pathlib.Path.expanduser"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.expanduser()</span></code></a> and <a class="reference internal" href="../library/pathlib.html#pathlib.Path.home" title="pathlib.Path.home"><code class="xref py py-meth docutils literal notranslate"><span class="pre">home()</span></code></a> now
consistently raise <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> exception when a home directory
cannot be resolved. Previously a <a class="reference internal" href="../library/exceptions.html#KeyError" title="KeyError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyError</span></code></a> exception could be raised
on Windows when the <code class="docutils literal notranslate"><span class="pre">"USERNAME"</span></code> environment variable was unset.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36076">bpo-36076</a>: Added SNI support to <a class="reference internal" href="../library/ssl.html#ssl.get_server_certificate" title="ssl.get_server_certificate"><code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.get_server_certificate()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38490">bpo-38490</a>: Covariance, Pearson’s correlation, and simple linear regression
functionality was added to statistics module. Patch by Tymoteusz Wołodźko.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33731">bpo-33731</a>: Provide a locale.localize() function, which converts a
normalized number string into a locale format.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32745">bpo-32745</a>: Fix a regression in the handling of ctypes’
<a class="reference internal" href="../library/ctypes.html#ctypes.c_wchar_p" title="ctypes.c_wchar_p"><code class="xref py py-data docutils literal notranslate"><span class="pre">ctypes.c_wchar_p</span></code></a> type: embedded null characters would cause a
<a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> to be raised. Patch by Zackery Spytz.</p></li>
</ul>
</section>
<section id="id333">
<h3>Documentation<a class="headerlink" href="#id333" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43987">bpo-43987</a>: Add “Annotations Best Practices” document as a new HOWTO.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43977">bpo-43977</a>: Document the new <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_MAPPING" title="Py_TPFLAGS_MAPPING"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_MAPPING</span></code></a> and
<a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_SEQUENCE" title="Py_TPFLAGS_SEQUENCE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_SEQUENCE</span></code></a> type flags.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43959">bpo-43959</a>: The documentation on the PyContextVar C-API was clarified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43938">bpo-43938</a>: Update dataclasses documentation to express that
FrozenInstanceError is derived from AttributeError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43778">bpo-43778</a>: Fix the Sphinx glossary_search extension: create the _static/
sub-directory if it doesn’t exist.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43755">bpo-43755</a>: Update documentation to reflect that unparenthesized lambda
expressions can no longer be the expression part in an <code class="docutils literal notranslate"><span class="pre">if</span></code> clause in
comprehensions and generator expressions since Python 3.9.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43739">bpo-43739</a>: Fixing the example code in Doc/extending/extending.rst to
declare and initialize the pmodule variable to be of the right type.</p></li>
</ul>
</section>
<section id="id334">
<h3>Tests<a class="headerlink" href="#id334" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43961">bpo-43961</a>: Fix test_logging.test_namer_rotator_inheritance() on Windows:
use <a class="reference internal" href="../library/os.html#os.replace" title="os.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.replace()</span></code></a> rather than <a class="reference internal" href="../library/os.html#os.rename" title="os.rename"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.rename()</span></code></a>. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43842">bpo-43842</a>: Fix a race condition in the SMTP test of test_logging. Don’t
close a file descriptor (socket) from a different thread while
asyncore.loop() is polling the file descriptor. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43843">bpo-43843</a>: <code class="xref py py-mod docutils literal notranslate"><span class="pre">test.libregrtest</span></code> now marks a test as ENV_CHANGED
(altered the execution environment) if a thread raises an exception but
does not catch it. It sets a hook on <a class="reference internal" href="../library/threading.html#threading.excepthook" title="threading.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.excepthook()</span></code></a>. Use
<code class="docutils literal notranslate"><span class="pre">--fail-env-changed</span></code> option to mark the test as failed. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43811">bpo-43811</a>: Tests multiple OpenSSL versions on GitHub Actions. Use ccache
to speed up testing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43791">bpo-43791</a>: OpenSSL 3.0.0: Disable testing of legacy protocols TLS 1.0 and
1.1. Tests are failing with TLSV1_ALERT_INTERNAL_ERROR.</p></li>
</ul>
</section>
<section id="id335">
<h3>Build<a class="headerlink" href="#id335" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43567">bpo-43567</a>: Improved generated code refresh (AST/tokens/opcodes/keywords)
on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43669">bpo-43669</a>: Implement <span class="target" id="index-230"></span><a class="pep reference external" href="https://peps.python.org/pep-0644/"><strong>PEP 644</strong></a>. Python now requires OpenSSL 1.1.1 or
newer.</p></li>
</ul>
</section>
<section id="id336">
<h3>Windows<a class="headerlink" href="#id336" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35306">bpo-35306</a>: Adds additional arguments to <a class="reference internal" href="../library/os.html#os.startfile" title="os.startfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.startfile()</span></code></a> function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43538">bpo-43538</a>: Avoid raising errors from <a class="reference internal" href="../library/pathlib.html#pathlib.Path.exists" title="pathlib.Path.exists"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.exists()</span></code></a> when
passed an invalid filename.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38822">bpo-38822</a>: Fixed <a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a> failing on inaccessible directories with
a trailing slash, rather than falling back to the parent directory’s
metadata. This implicitly affected <a class="reference internal" href="../library/os.path.html#os.path.exists" title="os.path.exists"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.exists()</span></code></a> and
<a class="reference internal" href="../library/os.path.html#os.path.isdir" title="os.path.isdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.isdir()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26227">bpo-26227</a>: Fixed decoding of host names in <a class="reference internal" href="../library/socket.html#socket.gethostbyaddr" title="socket.gethostbyaddr"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.gethostbyaddr()</span></code></a>
and <a class="reference internal" href="../library/socket.html#socket.gethostbyname_ex" title="socket.gethostbyname_ex"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.gethostbyname_ex()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40432">bpo-40432</a>: Updated pegen regeneration script on Windows to find and use
Python 3.8 or higher. Prior to this, pegen regeneration already required
3.8 or higher, but the script may have used lower versions of Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43745">bpo-43745</a>: Actually updates Windows release to OpenSSL 1.1.1k. Earlier
releases were mislabelled and actually included 1.1.1i again.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43652">bpo-43652</a>: Update Tcl and Tk to 8.6.11 in Windows installer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43492">bpo-43492</a>: Upgrade Windows installer to use SQLite 3.35.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30555">bpo-30555</a>: Fix <code class="docutils literal notranslate"><span class="pre">WindowsConsoleIO</span></code> errors in the presence of fd
redirection. Patch by Segev Finer.</p></li>
</ul>
</section>
<section id="id337">
<h3>macOS<a class="headerlink" href="#id337" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42119">bpo-42119</a>: Fix check for macOS SDK paths when building Python. Narrow
search to match contents of SDKs, namely only files in
<code class="docutils literal notranslate"><span class="pre">/System/Library</span></code>, <code class="docutils literal notranslate"><span class="pre">/System/IOSSupport</span></code>, and <code class="docutils literal notranslate"><span class="pre">/usr</span></code> other than
<code class="docutils literal notranslate"><span class="pre">/usr/local</span></code>. Previously, anything under <code class="docutils literal notranslate"><span class="pre">/System</span></code> was assumed to be
in an SDK which causes problems with the new file system layout in 10.15+
where user file systems may appear to be mounted under <code class="docutils literal notranslate"><span class="pre">/System</span></code>. Paths
in <code class="docutils literal notranslate"><span class="pre">/Library</span></code> were also incorrectly treated as SDK locations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43568">bpo-43568</a>: Drop support for MACOSX_DEPLOYMENT_TARGET < 10.3</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=44009">bpo-44009</a>: Provide “python3.x-intel64” executable to allow reliably
forcing macOS universal2 framework builds to run under Rosetta 2 Intel-64
emulation on Apple Silicon Macs. This can be useful for testing or when
universal2 wheels are not yet available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43851">bpo-43851</a>: Build SQLite with <code class="docutils literal notranslate"><span class="pre">SQLITE_OMIT_AUTOINIT</span></code> on macOS. Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43492">bpo-43492</a>: Update macOS installer to use SQLite 3.35.4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42235">bpo-42235</a>: <code class="docutils literal notranslate"><span class="pre">Mac/BuildScript/build-installer.py</span></code> will now use
“–enable-optimizations” and <code class="docutils literal notranslate"><span class="pre">--with-lto</span></code> when building on macOS 10.15
or later.</p></li>
</ul>
</section>
<section id="id338">
<h3>IDLE<a class="headerlink" href="#id338" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37903">bpo-37903</a>: Add mouse actions to the shell sidebar. Left click and
optional drag selects one or more lines, as with the editor line number
sidebar. Right click after selecting raises a context menu with ‘copy
with prompts’. This zips together prompts from the sidebar with lines
from the selected text.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43981">bpo-43981</a>: Fix reference leak in test_sidebar and test_squeezer. Patches
by Terry Jan Reedy and Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37892">bpo-37892</a>: Indent IDLE Shell input with spaces instead of tabs</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43655">bpo-43655</a>: IDLE dialog windows are now recognized as dialogs by window
managers on macOS and X Window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37903">bpo-37903</a>: IDLE’s shell now shows prompts in a separate side-bar.</p></li>
</ul>
</section>
<section id="id339">
<h3>C API<a class="headerlink" href="#id339" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43916">bpo-43916</a>: Add a new <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_DISALLOW_INSTANTIATION" title="Py_TPFLAGS_DISALLOW_INSTANTIATION"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_DISALLOW_INSTANTIATION</span></code></a> type
flag to disallow creating type instances. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43774">bpo-43774</a>: Remove the now unused <code class="docutils literal notranslate"><span class="pre">PYMALLOC_DEBUG</span></code> macro. Debug hooks on
memory allocators are now installed by default if Python is built in debug
mode (if <code class="docutils literal notranslate"><span class="pre">Py_DEBUG</span></code> macro is defined). Moreover, they can now be used on
Python build in release mode (ex: using <code class="docutils literal notranslate"><span class="pre">PYTHONMALLOC=debug</span></code> environment
variable).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43962">bpo-43962</a>: _PyInterpreterState_IDIncref() now calls
_PyInterpreterState_IDInitref() and always increments id_refcount.
Previously, calling _xxsubinterpreters.get_current() could create an
id_refcount inconsistency when a _xxsubinterpreters.InterpreterID object
was deallocated. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28254">bpo-28254</a>: Add new C-API functions to control the state of the garbage
collector: <a class="reference internal" href="../c-api/gcsupport.html#c.PyGC_Enable" title="PyGC_Enable"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGC_Enable()</span></code></a>, <a class="reference internal" href="../c-api/gcsupport.html#c.PyGC_Disable" title="PyGC_Disable"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGC_Disable()</span></code></a>,
<a class="reference internal" href="../c-api/gcsupport.html#c.PyGC_IsEnabled" title="PyGC_IsEnabled"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGC_IsEnabled()</span></code></a>, corresponding to the functions in the
<a class="reference internal" href="../library/gc.html#module-gc" title="gc: Interface to the cycle-detecting garbage collector."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gc</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43908">bpo-43908</a>: Introduce <a class="reference internal" href="../c-api/typeobj.html#c.Py_TPFLAGS_IMMUTABLETYPE" title="Py_TPFLAGS_IMMUTABLETYPE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_TPFLAGS_IMMUTABLETYPE</span></code></a> flag for
immutable type objects, and modify <a class="reference internal" href="../c-api/type.html#c.PyType_Ready" title="PyType_Ready"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_Ready()</span></code></a> to set it for
static types. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43795">bpo-43795</a>: <a class="reference internal" href="../c-api/memory.html#c.PyMem_Calloc" title="PyMem_Calloc"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMem_Calloc()</span></code></a> is now available in the limited C API
(<code class="docutils literal notranslate"><span class="pre">Py_LIMITED_API</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43868">bpo-43868</a>: <a class="reference internal" href="../c-api/veryhigh.html#c.PyOS_ReadlineFunctionPointer" title="PyOS_ReadlineFunctionPointer"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyOS_ReadlineFunctionPointer()</span></code></a> is no longer exported by
limited C API headers and by <code class="docutils literal notranslate"><span class="pre">python3.dll</span></code> on Windows. Like any function
that takes <code class="docutils literal notranslate"><span class="pre">FILE*</span></code>, it is not part of the stable ABI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43795">bpo-43795</a>: Stable ABI and limited API definitions are generated from a
central manifest (<span class="target" id="index-231"></span><a class="pep reference external" href="https://peps.python.org/pep-0652/"><strong>PEP 652</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43753">bpo-43753</a>: Add the <a class="reference internal" href="../c-api/structures.html#c.Py_Is" title="Py_Is"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Is(x,</span> <span class="pre">y)</span></code></a> function to test if the
<em>x</em> object is the <em>y</em> object, the same as <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">is</span> <span class="pre">y</span></code> in Python. Add also
the <a class="reference internal" href="../c-api/structures.html#c.Py_IsNone" title="Py_IsNone"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_IsNone()</span></code></a>, <a class="reference internal" href="../c-api/structures.html#c.Py_IsTrue" title="Py_IsTrue"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_IsTrue()</span></code></a>, <a class="reference internal" href="../c-api/structures.html#c.Py_IsFalse" title="Py_IsFalse"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_IsFalse()</span></code></a>
functions to test if an object is, respectively, the <code class="docutils literal notranslate"><span class="pre">None</span></code> singleton,
the <code class="docutils literal notranslate"><span class="pre">True</span></code> singleton or the <code class="docutils literal notranslate"><span class="pre">False</span></code> singleton. Patch by Victor
Stinner.</p></li>
</ul>
</section>
</section>
<section id="python-3-10-0-alpha-7">
<h2>Python 3.10.0 alpha 7<a class="headerlink" href="#python-3-10-0-alpha-7" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2021-04-05</em></p>
<section id="id340">
<h3>Security<a class="headerlink" href="#id340" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42988">bpo-42988</a>: <span class="target" id="index-232"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2021-3426"><strong>CVE 2021-3426</strong></a>: Remove the <code class="docutils literal notranslate"><span class="pre">getfile</span></code> feature of the
<a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a> module which could be abused to read arbitrary files on the
disk (directory traversal vulnerability). Moreover, even source code of
Python modules can contain sensitive data like passwords. Vulnerability
reported by David Schwörer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43285">bpo-43285</a>: <a class="reference internal" href="../library/ftplib.html#module-ftplib" title="ftplib: FTP protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftplib</span></code></a> no longer trusts the IP address value returned
from the server in response to the PASV command by default. This prevents
a malicious FTP server from using the response to probe IPv4 address and
port combinations on the client network.</p>
<p>Code that requires the former vulnerable behavior may set a
<code class="docutils literal notranslate"><span class="pre">trust_server_pasv_ipv4_address</span></code> attribute on their <a class="reference internal" href="../library/ftplib.html#ftplib.FTP" title="ftplib.FTP"><code class="xref py py-class docutils literal notranslate"><span class="pre">ftplib.FTP</span></code></a>
instances to <code class="docutils literal notranslate"><span class="pre">True</span></code> to re-enable it.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43439">bpo-43439</a>: Add audit hooks for <a class="reference internal" href="../library/gc.html#gc.get_objects" title="gc.get_objects"><code class="xref py py-func docutils literal notranslate"><span class="pre">gc.get_objects()</span></code></a>,
<a class="reference internal" href="../library/gc.html#gc.get_referrers" title="gc.get_referrers"><code class="xref py py-func docutils literal notranslate"><span class="pre">gc.get_referrers()</span></code></a> and <a class="reference internal" href="../library/gc.html#gc.get_referents" title="gc.get_referents"><code class="xref py py-func docutils literal notranslate"><span class="pre">gc.get_referents()</span></code></a>. Patch by Pablo
Galindo.</p></li>
</ul>
</section>
<section id="id341">
<h3>Core and Builtins<a class="headerlink" href="#id341" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27129">bpo-27129</a>: Update CPython bytecode magic number.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43672">bpo-43672</a>: Raise ImportWarning when calling find_loader().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43660">bpo-43660</a>: Fix crash that happens when replacing <code class="docutils literal notranslate"><span class="pre">sys.stderr</span></code> with a
callable that can remove the object while an exception is being printed.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27129">bpo-27129</a>: The bytecode interpreter uses instruction, rather byte, offsets
internally. This reduces the number of EXTENDED_ARG instructions needed
and streamlines instruction dispatch a bit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40645">bpo-40645</a>: Fix reference leak in the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_hashopenssl</span></code> extension. Patch
by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42134">bpo-42134</a>: Calls to find_module() by the import system now raise
ImportWarning.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41064">bpo-41064</a>: Improve the syntax error for invalid usage of double starred
elements (‘**’) in f-strings. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43575">bpo-43575</a>: Speed up calls to <code class="docutils literal notranslate"><span class="pre">map()</span></code> by using the <span class="target" id="index-233"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42137">bpo-42137</a>: The import system now prefers using <code class="docutils literal notranslate"><span class="pre">__spec__</span></code> for
<code class="docutils literal notranslate"><span class="pre">ModuleType.__repr__</span></code> over <code class="docutils literal notranslate"><span class="pre">module_repr()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43452">bpo-43452</a>: Added micro-optimizations to <code class="docutils literal notranslate"><span class="pre">_PyType_Lookup()</span></code> to improve
cache lookup performance in the common case of cache hits.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43555">bpo-43555</a>: Report the column offset for <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> for invalid
line continuation characters. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43517">bpo-43517</a>: Fix misdetection of circular imports when using <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">pkg.mod</span>
<span class="pre">import</span> <span class="pre">attr</span></code>, which caused false positives in non-trivial multi-threaded
code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43497">bpo-43497</a>: Emit SyntaxWarnings for assertions with tuple constants, this
is a regression introduced in python3.7</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39316">bpo-39316</a>: Tracing now has correct line numbers for attribute accesses
when the attribute is on a different line from the object. Improves
debugging and profiling for multi-line method chains.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35883">bpo-35883</a>: Python no longer fails at startup with a fatal error if a
command line argument contains an invalid Unicode character. The
<a class="reference internal" href="../c-api/sys.html#c.Py_DecodeLocale" title="Py_DecodeLocale"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_DecodeLocale()</span></code></a> function now escapes byte sequences which would
be decoded as Unicode characters outside the [U+0000; U+10ffff] range.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43410">bpo-43410</a>: Fix a bug that was causing the parser to crash when emitting
syntax errors when reading input from stdin. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43406">bpo-43406</a>: Fix a possible race condition where <code class="docutils literal notranslate"><span class="pre">PyErr_CheckSignals</span></code>
tries to execute a non-Python signal handler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42128">bpo-42128</a>: Add <code class="docutils literal notranslate"><span class="pre">__match_args__</span></code> to <a class="reference internal" href="../c-api/tuple.html#struct-sequence-objects"><span class="std std-ref">struct sequence objects</span></a>. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43390">bpo-43390</a>: CPython now sets the <code class="docutils literal notranslate"><span class="pre">SA_ONSTACK</span></code> flag in <code class="docutils literal notranslate"><span class="pre">PyOS_setsig</span></code> for
the VM’s default signal handlers. This is friendlier to other in-process
code that an extension module or embedding use could pull in (such as
Golang’s cgo) where tiny thread stacks are the norm and <code class="docutils literal notranslate"><span class="pre">sigaltstack()</span></code>
has been used to provide for signal handlers. This is a no-op change for
the vast majority of processes that don’t use sigaltstack.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43287">bpo-43287</a>: Speed up calls to <code class="docutils literal notranslate"><span class="pre">filter()</span></code> by using the <span class="target" id="index-234"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37448">bpo-37448</a>: Add a radix tree based memory map to track in-use obmalloc
arenas. Use to replace the old implementation of address_in_range(). The
radix tree approach makes it easy to increase pool sizes beyond the OS
page size. Boosting the pool and arena size allows obmalloc to handle a
significantly higher percentage of requests from its ultra-fast paths.</p>
<p>It also has the advantage of eliminating the memory unsanitary behavior of
the previous address_in_range(). The old address_in_range() was marked
with the annotations _Py_NO_SANITIZE_ADDRESS, _Py_NO_SANITIZE_THREAD, and
_Py_NO_SANITIZE_MEMORY. Those annotations are no longer needed.</p>
<p>To disable the radix tree map, set a preprocessor flag as follows:
<code class="docutils literal notranslate"><span class="pre">-DWITH_PYMALLOC_RADIX_TREE=0</span></code>.</p>
<p>Co-authored-by: Tim Peters <<a class="reference external" href="mailto:tim.peters%40gmail.com">tim<span>.</span>peters<span>@</span>gmail<span>.</span>com</a>></p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29988">bpo-29988</a>: Only handle asynchronous exceptions and requests to drop the
GIL when returning from a call or on the back edges of loops. Makes sure
that <a class="reference internal" href="../reference/datamodel.html#object.__exit__" title="object.__exit__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__exit__()</span></code></a> is always called in with statements, even
for interrupts.</p></li>
</ul>
</section>
<section id="id342">
<h3>Library<a class="headerlink" href="#id342" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43720">bpo-43720</a>: Document various stdlib deprecations in imp, pkgutil, and
importlib.util for removal in Python 3.12.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43433">bpo-43433</a>: <a class="reference internal" href="../library/xmlrpc.client.html#xmlrpc.client.ServerProxy" title="xmlrpc.client.ServerProxy"><code class="xref py py-class docutils literal notranslate"><span class="pre">xmlrpc.client.ServerProxy</span></code></a> no longer ignores query and
fragment in the URL of the server.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31956">bpo-31956</a>: The <a class="reference internal" href="../library/array.html#array.array.index" title="array.array.index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">index()</span></code></a> method of <a class="reference internal" href="../library/array.html#array.array" title="array.array"><code class="xref py py-class docutils literal notranslate"><span class="pre">array.array</span></code></a>
now has optional <em>start</em> and <em>stop</em> parameters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40066">bpo-40066</a>: Enum: adjust <code class="docutils literal notranslate"><span class="pre">repr()</span></code> to show only enum and member name (not
value, nor angle brackets) and <code class="docutils literal notranslate"><span class="pre">str()</span></code> to show only member name. Update
and improve documentation to match.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42136">bpo-42136</a>: Deprecate all module_repr() methods found in importlib as their
use is being phased out by Python 3.12.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35930">bpo-35930</a>: Raising an exception raised in a “future” instance will create
reference cycles.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41369">bpo-41369</a>: Finish updating the vendored libmpdec to version 2.5.1. Patch
by Stefan Krah.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43422">bpo-43422</a>: Revert the _decimal C API which was added in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41324">bpo-41324</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43577">bpo-43577</a>: Fix deadlock when using <a class="reference internal" href="../library/ssl.html#ssl.SSLContext" title="ssl.SSLContext"><code class="xref py py-class docutils literal notranslate"><span class="pre">ssl.SSLContext</span></code></a> debug callback
with <a class="reference internal" href="../library/ssl.html#ssl.SSLContext.sni_callback" title="ssl.SSLContext.sni_callback"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.SSLContext.sni_callback()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43571">bpo-43571</a>: It’s now possible to create MPTCP sockets with IPPROTO_MPTCP</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43542">bpo-43542</a>: <code class="docutils literal notranslate"><span class="pre">image/heic</span></code> and <code class="docutils literal notranslate"><span class="pre">image/heif</span></code> were added to
<a class="reference internal" href="../library/mimetypes.html#module-mimetypes" title="mimetypes: Mapping of filename extensions to MIME types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mimetypes</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40645">bpo-40645</a>: The <a class="reference internal" href="../library/hmac.html#module-hmac" title="hmac: Keyed-Hashing for Message Authentication (HMAC) implementation"><code class="xref py py-mod docutils literal notranslate"><span class="pre">hmac</span></code></a> module now uses OpenSSL’s HMAC implementation
when digestmod argument is a hash name or builtin hash function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43510">bpo-43510</a>: Implement <span class="target" id="index-235"></span><a class="pep reference external" href="https://peps.python.org/pep-0597/"><strong>PEP 597</strong></a>: Add <code class="docutils literal notranslate"><span class="pre">EncodingWarning</span></code> warning, <code class="docutils literal notranslate"><span class="pre">-X</span>
<span class="pre">warn_default_encoding</span></code> option, <span class="target" id="index-236"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONWARNDEFAULTENCODING"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONWARNDEFAULTENCODING</span></code></a>
environment variable and <code class="docutils literal notranslate"><span class="pre">encoding="locale"</span></code> argument value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43521">bpo-43521</a>: <code class="docutils literal notranslate"><span class="pre">ast.unparse</span></code> can now render NaNs and empty sets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42914">bpo-42914</a>: <a class="reference internal" href="../library/pprint.html#pprint.pprint" title="pprint.pprint"><code class="xref py py-func docutils literal notranslate"><span class="pre">pprint.pprint()</span></code></a> gains a new boolean
<code class="docutils literal notranslate"><span class="pre">underscore_numbers</span></code> optional argument to emit integers with thousands
separated by an underscore character for improved readability (for example
<code class="docutils literal notranslate"><span class="pre">1_000_000</span></code> instead of <code class="docutils literal notranslate"><span class="pre">1000000</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41361">bpo-41361</a>: <a class="reference internal" href="../library/collections.html#collections.deque.rotate" title="collections.deque.rotate"><code class="xref py py-meth docutils literal notranslate"><span class="pre">rotate()</span></code></a> calls are now slightly faster
due to faster argument parsing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43423">bpo-43423</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">subprocess.communicate()</span></code> no longer raises an IndexError
when there is an empty stdout or stderr IO buffer during a timeout on
Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27820">bpo-27820</a>: Fixed long-standing bug of smtplib.SMTP where doing AUTH LOGIN
with initial_response_ok=False will fail.</p>
<p>The cause is that SMTP.auth_login _always_ returns a password if provided
with a challenge string, thus non-compliant with the standard for AUTH
LOGIN.</p>
<p>Also fixes bug with the test for smtpd.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43445">bpo-43445</a>: Add frozen modules to <a class="reference internal" href="../library/sys.html#sys.stdlib_module_names" title="sys.stdlib_module_names"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.stdlib_module_names</span></code></a>. For
example, add <code class="docutils literal notranslate"><span class="pre">"_frozen_importlib"</span></code> and <code class="docutils literal notranslate"><span class="pre">"_frozen_importlib_external"</span></code>
names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43245">bpo-43245</a>: Add keyword arguments support to <code class="docutils literal notranslate"><span class="pre">ChainMap.new_child()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29982">bpo-29982</a>: Add optional parameter <em>ignore_cleanup_errors</em> to
<a class="reference internal" href="../library/tempfile.html#tempfile.TemporaryDirectory" title="tempfile.TemporaryDirectory"><code class="xref py py-func docutils literal notranslate"><span class="pre">tempfile.TemporaryDirectory()</span></code></a> and allow multiple <code class="xref py py-func docutils literal notranslate"><span class="pre">cleanup()</span></code>
attempts. Contributed by C.A.M. Gerlach.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43428">bpo-43428</a>: Include changes from <a class="reference external" href="https://importlib-metadata.readthedocs.io/en/latest/history.html#v3-7-0">importlib_metadata 3.7</a>:</p>
<p>Performance enhancements to distribution discovery.</p>
<p><code class="docutils literal notranslate"><span class="pre">entry_points</span></code> only returns unique distributions.</p>
<p>Introduces new <code class="docutils literal notranslate"><span class="pre">EntryPoints</span></code> object for containing a set of entry points
with convenience methods for selecting entry points by group or name.
<code class="docutils literal notranslate"><span class="pre">entry_points</span></code> now returns this object if selection parameters are
supplied but continues to return a dict object for compatibility. Users
are encouraged to rely on the selection interface. The dict object result
is likely to be deprecated in the future.</p>
<p>Added packages_distributions function to return a mapping of packages to
the distributions that provide them.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43332">bpo-43332</a>: Improves the networking efficiency of <a class="reference internal" href="../library/http.client.html#module-http.client" title="http.client: HTTP and HTTPS protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.client</span></code></a> when
using a proxy via <code class="xref py py-meth docutils literal notranslate"><span class="pre">set_tunnel()</span></code>. Fewer small send
calls are made during connection setup.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43420">bpo-43420</a>: Improve performance of <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a> arithmetics
for large components. Contributed by Sergey B. Kirpichev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43356">bpo-43356</a>: Allow passing a signal number to <code class="docutils literal notranslate"><span class="pre">_thread.interrupt_main()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43399">bpo-43399</a>: Fix <code class="docutils literal notranslate"><span class="pre">ElementTree.extend</span></code> not working on iterators when using
the Python implementation</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43369">bpo-43369</a>: Improve <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> error handling: If
<code class="docutils literal notranslate"><span class="pre">sqlite3_column_text()</span></code> and <code class="docutils literal notranslate"><span class="pre">sqlite3_column_blob()</span></code> set
<code class="docutils literal notranslate"><span class="pre">SQLITE_NOMEM</span></code>, <a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a> is now raised. Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43368">bpo-43368</a>: Fix a regression introduced in PR 24562, where an empty
bytestring was fetched as <code class="docutils literal notranslate"><span class="pre">None</span></code> instead of <code class="docutils literal notranslate"><span class="pre">b''</span></code> in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>.
Patch by Mariusz Felisiak.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41282">bpo-41282</a>: Fixed stacklevel of <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> emitted from
<code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">distutils</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42129">bpo-42129</a>: <code class="docutils literal notranslate"><span class="pre">importlib.resources</span></code> now honors namespace packages, merging
resources from each location in the namespace as introduced in
<code class="docutils literal notranslate"><span class="pre">importlib_resources</span></code> 3.2 and including incidental changes through
5.0.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43295">bpo-43295</a>: <a class="reference internal" href="../library/datetime.html#datetime.datetime.strptime" title="datetime.datetime.strptime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.strptime()</span></code></a> now raises <code class="docutils literal notranslate"><span class="pre">ValueError</span></code>
instead of <code class="docutils literal notranslate"><span class="pre">IndexError</span></code> when matching <code class="docutils literal notranslate"><span class="pre">'z'</span></code> with the <code class="docutils literal notranslate"><span class="pre">%z</span></code> format
specifier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43125">bpo-43125</a>: Return empty string if base64mime.body_encode receive empty
bytes</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43084">bpo-43084</a>: <a class="reference internal" href="../library/curses.html#curses.window.enclose" title="curses.window.enclose"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.window.enclose()</span></code></a> returns now <code class="docutils literal notranslate"><span class="pre">True</span></code> or <code class="docutils literal notranslate"><span class="pre">False</span></code>
(as was documented) instead of <code class="docutils literal notranslate"><span class="pre">1</span></code> or <code class="docutils literal notranslate"><span class="pre">0</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42994">bpo-42994</a>: Add MIME types for opus, AAC, 3gpp and 3gpp2</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14678">bpo-14678</a>: Add an invalidate_caches() method to the zipimport.zipimporter
class to support importlib.invalidate_caches(). Patch by Desmond Cheong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42782">bpo-42782</a>: Fail fast in <a class="reference internal" href="../library/shutil.html#shutil.move" title="shutil.move"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.move()</span></code></a> to avoid creating destination
directories on failure.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40066">bpo-40066</a>: Enum’s <code class="docutils literal notranslate"><span class="pre">repr()</span></code> and <code class="docutils literal notranslate"><span class="pre">str()</span></code> have changed: <code class="docutils literal notranslate"><span class="pre">repr()</span></code> is now
<em>EnumClass.MemberName</em> and <code class="docutils literal notranslate"><span class="pre">str()</span></code> is <em>MemberName</em>. Additionally,
stdlib Enum’s whose contents are available as module attributes, such as
<code class="docutils literal notranslate"><span class="pre">RegexFlag.IGNORECASE</span></code>, have their <code class="docutils literal notranslate"><span class="pre">repr()</span></code> as <em>module.name</em>, e.g.
<code class="docutils literal notranslate"><span class="pre">re.IGNORECASE</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26053">bpo-26053</a>: Fixed bug where the <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> interactive run command echoed
the args from the shell command line, even if those have been overridden
at the pdb prompt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24160">bpo-24160</a>: Fixed bug where breakpoints did not persist across multiple
debugger sessions in <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>’s interactive mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40701">bpo-40701</a>: When the <a class="reference internal" href="../library/tempfile.html#tempfile.tempdir" title="tempfile.tempdir"><code class="xref py py-data docutils literal notranslate"><span class="pre">tempfile.tempdir</span></code></a> global variable is set to a
value of type bytes, it is now handled consistently. Previously
exceptions could be raised from some tempfile APIs when the directory did
not already exist in this situation. Also ensures that the
<a class="reference internal" href="../library/tempfile.html#tempfile.gettempdir" title="tempfile.gettempdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">tempfile.gettempdir()</span></code></a> and <a class="reference internal" href="../library/tempfile.html#tempfile.gettempdirb" title="tempfile.gettempdirb"><code class="xref py py-func docutils literal notranslate"><span class="pre">tempfile.gettempdirb()</span></code></a> functions
<em>always</em> return <code class="docutils literal notranslate"><span class="pre">str</span></code> and <code class="docutils literal notranslate"><span class="pre">bytes</span></code> respectively.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39342">bpo-39342</a>: Expose <code class="docutils literal notranslate"><span class="pre">X509_V_FLAG_ALLOW_PROXY_CERTS</span></code> as
<a class="reference internal" href="../library/ssl.html#ssl.VERIFY_ALLOW_PROXY_CERTS" title="ssl.VERIFY_ALLOW_PROXY_CERTS"><code class="xref py py-const docutils literal notranslate"><span class="pre">VERIFY_ALLOW_PROXY_CERTS</span></code></a> to allow proxy certificate
validation as explained in
<a class="reference external" href="https://docs.openssl.org/1.1.1/man7/proxy-certificates/">https://docs.openssl.org/1.1.1/man7/proxy-certificates/</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31861">bpo-31861</a>: Add builtins.aiter and builtins.anext. Patch by Joshua Bronson
(@jab), Daniel Pope (@lordmauve), and Justin Wang (@justin39).</p></li>
</ul>
</section>
<section id="id343">
<h3>Documentation<a class="headerlink" href="#id343" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43199">bpo-43199</a>: Answer “Why is there no goto?” in the Design and History FAQ.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43407">bpo-43407</a>: Clarified that a result from <a class="reference internal" href="../library/time.html#time.monotonic" title="time.monotonic"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.monotonic()</span></code></a>,
<a class="reference internal" href="../library/time.html#time.perf_counter" title="time.perf_counter"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.perf_counter()</span></code></a>, <a class="reference internal" href="../library/time.html#time.process_time" title="time.process_time"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.process_time()</span></code></a>, or
<a class="reference internal" href="../library/time.html#time.thread_time" title="time.thread_time"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.thread_time()</span></code></a> can be compared with the result from any
following call to the same function - not just the next immediate call.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43354">bpo-43354</a>: Fix type documentation for <code class="docutils literal notranslate"><span class="pre">Fault.faultCode</span></code>; the type has to
be <code class="docutils literal notranslate"><span class="pre">int</span></code> instead of <code class="docutils literal notranslate"><span class="pre">str</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41933">bpo-41933</a>: Clarified wording of s * n in the Common Sequence Operations</p></li>
</ul>
</section>
<section id="id344">
<h3>Tests<a class="headerlink" href="#id344" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37945">bpo-37945</a>: Fix test_getsetlocale_issue1813() of test_locale: skip the test
if <code class="docutils literal notranslate"><span class="pre">setlocale()</span></code> fails. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41561">bpo-41561</a>: Add workaround for Ubuntu’s custom OpenSSL security level
policy.</p></li>
</ul>
</section>
<section id="id345">
<h3>Build<a class="headerlink" href="#id345" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43179">bpo-43179</a>: Introduce and correctly use ALIGNOF_X in place of SIZEOF_X for
alignment-related code in optimized string routines. Patch by Jessica
Clarke.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43631">bpo-43631</a>: Update macOS, Windows, and CI to OpenSSL 1.1.1k.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43617">bpo-43617</a>: Improve configure.ac: Check for presence of autoconf-archive
package and remove our copies of M4 macros.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43466">bpo-43466</a>: The <code class="docutils literal notranslate"><span class="pre">configure</span></code> script now supports <code class="docutils literal notranslate"><span class="pre">--with-openssl-rpath</span></code>
option.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43372">bpo-43372</a>: Use <code class="docutils literal notranslate"><span class="pre">_freeze_importlib</span></code> to generate code for the
<code class="docutils literal notranslate"><span class="pre">__hello__</span></code> module. This approach ensures the code matches the
interpreter version. Previously, PYTHON_FOR_REGEN was used to generate
the code, which might be wrong. The marshal format for code objects has
changed with <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42246">bpo-42246</a>, commit 877df851. Update the code and the expected
code sizes in ctypes test_frozentable.</p></li>
</ul>
</section>
<section id="id346">
<h3>Windows<a class="headerlink" href="#id346" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43440">bpo-43440</a>: Build <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> with the <code class="docutils literal notranslate"><span class="pre">R*Tree</span></code> module enabled. Patch
by Erlend E. Aasland.</p></li>
</ul>
</section>
<section id="id347">
<h3>IDLE<a class="headerlink" href="#id347" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42225">bpo-42225</a>: Document that IDLE can fail on Unix either from misconfigured
IP masquerade rules or failure displaying complex colored (non-ascii)
characters.</p></li>
</ul>
</section>
<section id="id348">
<h3>C API<a class="headerlink" href="#id348" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43688">bpo-43688</a>: The limited C API is now supported if Python is built in debug
mode (if the <code class="docutils literal notranslate"><span class="pre">Py_DEBUG</span></code> macro is defined). In the limited C API, the
<a class="reference internal" href="../c-api/refcounting.html#c.Py_INCREF" title="Py_INCREF"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_INCREF()</span></code></a> and <a class="reference internal" href="../c-api/refcounting.html#c.Py_DECREF" title="Py_DECREF"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_DECREF()</span></code></a> functions are now implemented
as opaque function calls, rather than accessing directly the
<a class="reference internal" href="../c-api/structures.html#c.PyObject.ob_refcnt" title="PyObject.ob_refcnt"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyObject.ob_refcnt</span></code></a> member, if Python is built in debug mode
and the <code class="docutils literal notranslate"><span class="pre">Py_LIMITED_API</span></code> macro targets Python 3.10 or newer. It became
possible to support the limited C API in debug mode because the
<a class="reference internal" href="../c-api/structures.html#c.PyObject" title="PyObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyObject</span></code></a> structure is the same in release and debug mode since
Python 3.8 (see <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36465">bpo-36465</a>).</p>
<p>The limited C API is still not supported in the <code class="docutils literal notranslate"><span class="pre">--with-trace-refs</span></code>
special build (<code class="docutils literal notranslate"><span class="pre">Py_TRACE_REFS</span></code> macro).</p>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43244">bpo-43244</a>: Remove the <code class="docutils literal notranslate"><span class="pre">pyarena.h</span></code> header file with functions:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">PyArena_New()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyArena_Free()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyArena_Malloc()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyArena_AddPyObject()</span></code></p></li>
</ul>
<p>These functions were undocumented, excluded from the limited C API, and
were only used internally by the compiler. Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43244">bpo-43244</a>: Remove the compiler and parser functions using <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">_mod</span></code>
type, because the public AST C API was removed:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">PyAST_Compile()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyAST_CompileEx()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyAST_CompileObject()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyFuture_FromAST()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyFuture_FromASTObject()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyParser_ASTFromFile()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyParser_ASTFromFileObject()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyParser_ASTFromFilename()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyParser_ASTFromString()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyParser_ASTFromStringObject()</span></code></p></li>
</ul>
<p>These functions were undocumented and excluded from the limited C API.
Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43244">bpo-43244</a>: Remove <code class="docutils literal notranslate"><span class="pre">ast.h</span></code>, <code class="docutils literal notranslate"><span class="pre">asdl.h</span></code>, and <code class="docutils literal notranslate"><span class="pre">Python-ast.h</span></code> header
files. These functions were undocumented and excluded from the limited C
API. Most names defined by these header files were not prefixed by <code class="docutils literal notranslate"><span class="pre">Py</span></code>
and so could create names conflicts. For example, <code class="docutils literal notranslate"><span class="pre">Python-ast.h</span></code> defined
a <code class="docutils literal notranslate"><span class="pre">Yield</span></code> macro which was conflict with the <code class="docutils literal notranslate"><span class="pre">Yield</span></code> name used by the
Windows <code class="docutils literal notranslate"><span class="pre"><winbase.h></span></code> header. Use the Python <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> module instead.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43541">bpo-43541</a>: Fix a <code class="docutils literal notranslate"><span class="pre">PyEval_EvalCodeEx()</span></code> regression: fix reference
counting on builtins. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43244">bpo-43244</a>: Remove the <code class="docutils literal notranslate"><span class="pre">symtable.h</span></code> header file and the undocumented
functions:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">PyST_GetScope()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PySymtable_Build()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PySymtable_BuildObject()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PySymtable_Free()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Py_SymtableString()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">Py_SymtableStringObject()</span></code></p></li>
</ul>
<p>The <code class="docutils literal notranslate"><span class="pre">Py_SymtableString()</span></code> function was part the stable ABI by mistake
but it could not be used, because the <code class="docutils literal notranslate"><span class="pre">symtable.h</span></code> header file was
excluded from the limited C API.</p>
<p>The Python <a class="reference internal" href="../library/symtable.html#module-symtable" title="symtable: Interface to the compiler's internal symbol tables."><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code></a> module remains available and is unchanged.</p>
<p>Patch by Victor Stinner.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43244">bpo-43244</a>: Remove the <code class="docutils literal notranslate"><span class="pre">PyAST_Validate()</span></code> function. It is no longer
possible to build a AST object (<code class="docutils literal notranslate"><span class="pre">mod_ty</span></code> type) with the public C API.
The function was already excluded from the limited C API (<span class="target" id="index-237"></span><a class="pep reference external" href="https://peps.python.org/pep-0384/"><strong>PEP 384</strong></a>).
Patch by Victor Stinner.</p></li>
</ul>
</section>
</section>
<section id="python-3-10-0-alpha-6">
<h2>Python 3.10.0 alpha 6<a class="headerlink" href="#python-3-10-0-alpha-6" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2021-03-01</em></p>
<section id="id349">
<h3>Security<a class="headerlink" href="#id349" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42967">bpo-42967</a>: Fix web cache poisoning vulnerability by defaulting the query
args separator to <code class="docutils literal notranslate"><span class="pre">&</span></code>, and allowing the user to choose a custom
separator.</p></li>
</ul>
</section>
<section id="id350">
<h3>Core and Builtins<a class="headerlink" href="#id350" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43321">bpo-43321</a>: Fix <code class="docutils literal notranslate"><span class="pre">SystemError</span></code> raised when <code class="docutils literal notranslate"><span class="pre">PyArg_Parse*()</span></code> is used with
<code class="docutils literal notranslate"><span class="pre">#</span></code> but without <code class="docutils literal notranslate"><span class="pre">PY_SSIZE_T_CLEAN</span></code> defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36346">bpo-36346</a>: <code class="docutils literal notranslate"><span class="pre">PyArg_Parse*()</span></code> functions now emits <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code>
when <code class="docutils literal notranslate"><span class="pre">u</span></code> or <code class="docutils literal notranslate"><span class="pre">Z</span></code> format is used. See <span class="target" id="index-238"></span><a class="pep reference external" href="https://peps.python.org/pep-0623/"><strong>PEP 623</strong></a> for detail.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43277">bpo-43277</a>: Add a new <a class="reference internal" href="../c-api/set.html#c.PySet_CheckExact" title="PySet_CheckExact"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySet_CheckExact()</span></code></a> function to the C-API to
check if an object is an instance of <a class="reference internal" href="../library/stdtypes.html#set" title="set"><code class="xref py py-class docutils literal notranslate"><span class="pre">set</span></code></a> but not an instance of a
subtype. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42990">bpo-42990</a>: The <a class="reference internal" href="../library/types.html#types.FunctionType" title="types.FunctionType"><code class="xref py py-data docutils literal notranslate"><span class="pre">types.FunctionType</span></code></a> constructor now inherits the
current builtins if the <em>globals</em> dictionary has no <code class="docutils literal notranslate"><span class="pre">"__builtins__"</span></code>
key, rather than using <code class="docutils literal notranslate"><span class="pre">{"None":</span> <span class="pre">None}</span></code> as builtins: same behavior as
<a class="reference internal" href="../library/functions.html#eval" title="eval"><code class="xref py py-func docutils literal notranslate"><span class="pre">eval()</span></code></a> and <a class="reference internal" href="../library/functions.html#exec" title="exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">exec()</span></code></a> functions. Defining a function with <code class="docutils literal notranslate"><span class="pre">def</span>
<span class="pre">function(...):</span> <span class="pre">...</span></code> in Python is not affected, globals cannot be
overridden with this syntax: it also inherits the current builtins. Patch
by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42990">bpo-42990</a>: Functions have a new <code class="docutils literal notranslate"><span class="pre">__builtins__</span></code> attribute which is used
to look for builtin symbols when a function is executed, instead of
looking into <code class="docutils literal notranslate"><span class="pre">__globals__['__builtins__']</span></code>. Patch by Mark Shannon and
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43149">bpo-43149</a>: Improve the error message in the parser for exception groups
without parentheses. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43121">bpo-43121</a>: Fixed an incorrect <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> message for missing comma
in literals. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42819">bpo-42819</a>: <a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a>: Explicitly disable bracketed paste in the
interactive interpreter, even if it’s set in the inputrc, is enabled by
default (eg GNU Readline 8.1), or a user calls
<code class="docutils literal notranslate"><span class="pre">readline.read_init_file()</span></code>. The Python REPL has not implemented
bracketed paste support. Also, bracketed mode writes the <code class="docutils literal notranslate"><span class="pre">"\x1b[?2004h"</span></code>
escape sequence into stdout which causes test failures in applications
that don’t support it. It can still be explicitly enabled by calling
<code class="docutils literal notranslate"><span class="pre">readline.parse_and_bind("set</span> <span class="pre">enable-bracketed-paste</span> <span class="pre">on")</span></code>. Patch by
Dustin Rodrigues.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42808">bpo-42808</a>: Simple calls to <code class="docutils literal notranslate"><span class="pre">type(object)</span></code> are now faster due to the
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Dennis Sweeney.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42217">bpo-42217</a>: Make the compiler merges same co_code and co_linetable objects
in a module like already did for co_consts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41972">bpo-41972</a>: Substring search functions such as <code class="docutils literal notranslate"><span class="pre">str1</span> <span class="pre">in</span> <span class="pre">str2</span></code> and
<code class="docutils literal notranslate"><span class="pre">str2.find(str1)</span></code> now sometimes use the “Two-Way” string comparison
algorithm to avoid quadratic behavior on long strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42128">bpo-42128</a>: Implement <span class="target" id="index-239"></span><a class="pep reference external" href="https://peps.python.org/pep-0634/"><strong>PEP 634</strong></a> (structural pattern matching). Patch by
Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40692">bpo-40692</a>: In the <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor</span></code></a>,
validate that <code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocess.synchronize()</span></code> is available on a given
platform and rely on that check in the <a class="reference internal" href="../library/concurrent.futures.html#module-concurrent.futures" title="concurrent.futures: Execute computations concurrently using threads or processes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures</span></code></a> test
suite so we can run tests that are unrelated to
<code class="xref py py-class docutils literal notranslate"><span class="pre">ProcessPoolExecutor</span></code> on those platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38302">bpo-38302</a>: If <a class="reference internal" href="../reference/datamodel.html#object.__ipow__" title="object.__ipow__"><code class="xref py py-func docutils literal notranslate"><span class="pre">object.__ipow__()</span></code></a> returns <a class="reference internal" href="../library/constants.html#NotImplemented" title="NotImplemented"><code class="xref py py-data docutils literal notranslate"><span class="pre">NotImplemented</span></code></a>, the
operator will correctly fall back to <a class="reference internal" href="../reference/datamodel.html#object.__pow__" title="object.__pow__"><code class="xref py py-func docutils literal notranslate"><span class="pre">object.__pow__()</span></code></a> and
<a class="reference internal" href="../reference/datamodel.html#object.__rpow__" title="object.__rpow__"><code class="xref py py-func docutils literal notranslate"><span class="pre">object.__rpow__()</span></code></a> as expected.</p></li>
</ul>
</section>
<section id="id351">
<h3>Library<a class="headerlink" href="#id351" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43316">bpo-43316</a>: The <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">gzip</span></code> command line application now properly
fails when detecting an unsupported extension. It exits with a non-zero
exit code and prints an error message to stderr.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43317">bpo-43317</a>: Set the chunk size for the <code class="docutils literal notranslate"><span class="pre">gzip</span></code> module main function to
io.DEFAULT_BUFFER_SIZE. This is slightly faster than the 1024 bytes
constant that was used previously.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43146">bpo-43146</a>: Handle None in single-arg versions of
<a class="reference internal" href="../library/traceback.html#traceback.print_exception" title="traceback.print_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">print_exception()</span></code></a> and
<a class="reference internal" href="../library/traceback.html#traceback.format_exception" title="traceback.format_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">format_exception()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43260">bpo-43260</a>: Fix TextIOWrapper can not flush internal buffer forever after
very large text is written.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43258">bpo-43258</a>: Prevent needless allocation of <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> aggregate
function context when no rows match an aggregate query. Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43251">bpo-43251</a>: Improve <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> error handling:
<code class="docutils literal notranslate"><span class="pre">sqlite3_column_name()</span></code> failures now result in <a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a>. Patch
by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40956">bpo-40956</a>: Fix segfault in <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.backup" title="sqlite3.Connection.backup"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.backup()</span></code></a> if no
argument was provided. The regression was introduced by PR 23838. Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43172">bpo-43172</a>: The readline module now passes its tests when built directly
against libedit. Existing irreconcilable API differences remain in
<a class="reference internal" href="../library/readline.html#readline.get_begidx" title="readline.get_begidx"><code class="xref py py-func docutils literal notranslate"><span class="pre">readline.get_begidx()</span></code></a> and <a class="reference internal" href="../library/readline.html#readline.get_endidx" title="readline.get_endidx"><code class="xref py py-func docutils literal notranslate"><span class="pre">readline.get_endidx()</span></code></a> behavior based
on libreadline vs libedit use.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43163">bpo-43163</a>: Fix a bug in <a class="reference internal" href="../library/codeop.html#module-codeop" title="codeop: Compile (possibly incomplete) Python code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">codeop</span></code></a> that was causing it to not ask for
more input when multi-line snippets have unclosed parentheses. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43162">bpo-43162</a>: deprecate unsupported ability to access enum members as
attributes of other enum members</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43146">bpo-43146</a>: Fix recent regression in None argument handling in
<a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> module functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43102">bpo-43102</a>: The namedtuple __new__ method had its __builtins__ set to None
instead of an actual dictionary. This created problems for introspection
tools.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43106">bpo-43106</a>: Added <a class="reference internal" href="../library/os.html#os.O_EVTONLY" title="os.O_EVTONLY"><code class="xref py py-const docutils literal notranslate"><span class="pre">O_EVTONLY</span></code></a>, <a class="reference internal" href="../library/os.html#os.O_FSYNC" title="os.O_FSYNC"><code class="xref py py-const docutils literal notranslate"><span class="pre">O_FSYNC</span></code></a>,
<a class="reference internal" href="../library/os.html#os.O_SYMLINK" title="os.O_SYMLINK"><code class="xref py py-const docutils literal notranslate"><span class="pre">O_SYMLINK</span></code></a> and <a class="reference internal" href="../library/os.html#os.O_NOFOLLOW_ANY" title="os.O_NOFOLLOW_ANY"><code class="xref py py-const docutils literal notranslate"><span class="pre">O_NOFOLLOW_ANY</span></code></a> for macOS. Patch by
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42960">bpo-42960</a>: Adds <a class="reference internal" href="../library/resource.html#resource.RLIMIT_KQUEUES" title="resource.RLIMIT_KQUEUES"><code class="xref py py-const docutils literal notranslate"><span class="pre">resource.RLIMIT_KQUEUES</span></code></a> constant from FreeBSD to
the <a class="reference internal" href="../library/resource.html#module-resource" title="resource: An interface to provide resource usage information on the current process. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">resource</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42151">bpo-42151</a>: Make the pure Python implementation of
<a class="reference internal" href="../library/xml.etree.elementtree.html#module-xml.etree.ElementTree" title="xml.etree.ElementTree: Implementation of the ElementTree API."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree.ElementTree</span></code></a> behave the same as the C implementation
(<code class="xref py py-mod docutils literal notranslate"><span class="pre">_elementree</span></code>) regarding default attribute values (by not setting
<code class="docutils literal notranslate"><span class="pre">specified_attributes=1</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29753">bpo-29753</a>: In ctypes, now packed bitfields are calculated properly and the
first item of packed bitfields is now shrank correctly.</p></li>
</ul>
</section>
<section id="id352">
<h3>Documentation<a class="headerlink" href="#id352" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27646">bpo-27646</a>: Clarify that ‘yield from <expr>’ works with any iterable, not
just iterators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36346">bpo-36346</a>: Update some deprecated unicode APIs which are documented as
“will be removed in 4.0” to “3.12”. See <span class="target" id="index-240"></span><a class="pep reference external" href="https://peps.python.org/pep-0623/"><strong>PEP 623</strong></a> for detail.</p></li>
</ul>
</section>
<section id="id353">
<h3>Tests<a class="headerlink" href="#id353" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43288">bpo-43288</a>: Fix test_importlib to correctly skip Unicode file tests if the
filesystem does not support them.</p></li>
</ul>
</section>
<section id="id354">
<h3>Build<a class="headerlink" href="#id354" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43174">bpo-43174</a>: Windows build now uses <code class="docutils literal notranslate"><span class="pre">/utf-8</span></code> compiler option.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43103">bpo-43103</a>: Add a new configure <code class="docutils literal notranslate"><span class="pre">--without-static-libpython</span></code> option to
not build the <code class="docutils literal notranslate"><span class="pre">libpythonMAJOR.MINOR.a</span></code> static library and not install
the <code class="docutils literal notranslate"><span class="pre">python.o</span></code> object file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13501">bpo-13501</a>: The configure script can now use <em>libedit</em> instead of
<em>readline</em> with the command line option <code class="docutils literal notranslate"><span class="pre">--with-readline=editline</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42603">bpo-42603</a>: Make configure script use pkg-config to detect the location of
Tcl/Tk headers and libraries, used to build tkinter.</p>
<p>On macOS, a Tcl/Tk configuration provided by pkg-config will be preferred
over Tcl/Tk frameworks installed in <code class="docutils literal notranslate"><span class="pre">/{System/,}Library/Frameworks</span></code>. If
both exist and the latter is preferred, the appropriate <code class="docutils literal notranslate"><span class="pre">--with-tcltk-*</span></code>
configuration options need to be explicitly set.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39448">bpo-39448</a>: Add the “regen-frozen” makefile target that regenerates the
code for the frozen <code class="docutils literal notranslate"><span class="pre">__hello__</span></code> module.</p></li>
</ul>
</section>
<section id="id355">
<h3>Windows<a class="headerlink" href="#id355" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43155">bpo-43155</a>: <a class="reference internal" href="../c-api/structures.html#c.PyCMethod_New" title="PyCMethod_New"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCMethod_New()</span></code></a> is now present in <code class="docutils literal notranslate"><span class="pre">python3.lib</span></code>.</p></li>
</ul>
</section>
<section id="id356">
<h3>macOS<a class="headerlink" href="#id356" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41837">bpo-41837</a>: Update macOS installer build to use OpenSSL 1.1.1j.</p></li>
</ul>
</section>
<section id="id357">
<h3>IDLE<a class="headerlink" href="#id357" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43283">bpo-43283</a>: Document why printing to IDLE’s Shell is often slower than
printing to a system terminal and that it can be made faster by
pre-formatting a single string before printing.</p></li>
</ul>
</section>
<section id="id358">
<h3>C API<a class="headerlink" href="#id358" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43278">bpo-43278</a>: Always put compiler and system information on the first line of
the REPL welcome message.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43270">bpo-43270</a>: Remove the private <code class="docutils literal notranslate"><span class="pre">_PyErr_OCCURRED()</span></code> macro: use the public
<a class="reference internal" href="../c-api/exceptions.html#c.PyErr_Occurred" title="PyErr_Occurred"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_Occurred()</span></code></a> function instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35134">bpo-35134</a>: Move odictobject.h, parser_interface.h, picklebufobject.h,
pydebug.h, and pyfpe.h into the cpython/ directory. They must not be
included directly, as they are already included by Python.h: <a class="reference internal" href="../c-api/intro.html#api-includes"><span class="std std-ref">Include
Files</span></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35134">bpo-35134</a>: Move pyarena.h, pyctype.h, and pytime.h into the cpython/
directory. They must not be included directly, as they are already
included by Python.h: <a class="reference internal" href="../c-api/intro.html#api-includes"><span class="std std-ref">Include Files</span></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: <a class="reference internal" href="../c-api/exceptions.html#c.PyExceptionClass_Name" title="PyExceptionClass_Name"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyExceptionClass_Name()</span></code></a> is now always declared as a
function, in order to hide implementation details. The macro accessed
<a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_name" title="PyTypeObject.tp_name"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyTypeObject.tp_name</span></code></a> directly. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43239">bpo-43239</a>: The <a class="reference internal" href="../c-api/structures.html#c.PyCFunction_New" title="PyCFunction_New"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCFunction_New()</span></code></a> function is now exported in the
ABI when compiled with <code class="docutils literal notranslate"><span class="pre">-fvisibility=hidden</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: <a class="reference internal" href="../c-api/iter.html#c.PyIter_Check" title="PyIter_Check"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyIter_Check()</span></code></a> is now always declared as a function, in
order to hide implementation details. The macro accessed
<a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_iternext" title="PyTypeObject.tp_iternext"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyTypeObject.tp_iternext</span></code></a> directly. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: Convert <a class="reference internal" href="../c-api/descriptor.html#c.PyDescr_IsData" title="PyDescr_IsData"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDescr_IsData()</span></code></a> macro to a function to hide
implementation details: The macro accessed
<a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_descr_set" title="PyTypeObject.tp_descr_set"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyTypeObject.tp_descr_set</span></code></a> directly. Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43181">bpo-43181</a>: Convert <a class="reference internal" href="../c-api/object.html#c.PyObject_TypeCheck" title="PyObject_TypeCheck"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_TypeCheck()</span></code></a> macro to a static inline
function. Patch by Erlend E. Aasland.</p></li>
</ul>
</section>
</section>
<section id="python-3-10-0-alpha-5">
<h2>Python 3.10.0 alpha 5<a class="headerlink" href="#python-3-10-0-alpha-5" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2021-02-02</em></p>
<section id="id359">
<h3>Security<a class="headerlink" href="#id359" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42938">bpo-42938</a>: Avoid static buffers when computing the repr of
<a class="reference internal" href="../library/ctypes.html#ctypes.c_double" title="ctypes.c_double"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.c_double</span></code></a> and <a class="reference internal" href="../library/ctypes.html#ctypes.c_longdouble" title="ctypes.c_longdouble"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.c_longdouble</span></code></a> values.</p></li>
</ul>
</section>
<section id="id360">
<h3>Core and Builtins<a class="headerlink" href="#id360" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42990">bpo-42990</a>: Refactor the <code class="docutils literal notranslate"><span class="pre">PyEval_</span></code> family of functions.</p>
<ul>
<li><p>An new function <code class="docutils literal notranslate"><span class="pre">_PyEval_Vector</span></code> is added to simplify calls to Python from C.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">_PyEval_EvalCodeWithName</span></code> is removed</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyEval_EvalCodeEx</span></code> is retained as part of the API, but is not used internally</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38631">bpo-38631</a>: Replace <a class="reference internal" href="../c-api/sys.html#c.Py_FatalError" title="Py_FatalError"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FatalError()</span></code></a> calls in the compiler with
regular <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> exceptions. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42997">bpo-42997</a>: Improve error message for missing “:” before blocks. Patch by
Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43017">bpo-43017</a>: Improve error message in the parser when using un-parenthesised
tuples in comprehensions. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42986">bpo-42986</a>: Fix parser crash when reporting syntax errors in f-string with
newlines. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40176">bpo-40176</a>: Syntax errors for unterminated string literals now point to the
start of the string instead of reporting EOF/EOL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42927">bpo-42927</a>: The inline cache for <code class="docutils literal notranslate"><span class="pre">LOAD_ATTR</span></code> now also optimizes access to
attributes defined by <code class="docutils literal notranslate"><span class="pre">__slots__</span></code>. This makes reading such attribute up
to 30% faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42864">bpo-42864</a>: Improve error messages in the parser when parentheses are not
closed. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42924">bpo-42924</a>: Fix <code class="docutils literal notranslate"><span class="pre">bytearray</span></code> repetition incorrectly copying data from the
start of the buffer, even if the data is offset within the buffer (e.g.
after reassigning a slice at the start of the <code class="docutils literal notranslate"><span class="pre">bytearray</span></code> to a shorter
byte string).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42882">bpo-42882</a>: Fix the <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicode_FromId()</span></code> function
(_Py_IDENTIFIER(var) API) when <a class="reference internal" href="../c-api/init.html#c.Py_Initialize" title="Py_Initialize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Initialize()</span></code></a> /
<a class="reference internal" href="../c-api/init.html#c.Py_Finalize" title="Py_Finalize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Finalize()</span></code></a> is called multiple times: preserve
<code class="docutils literal notranslate"><span class="pre">_PyRuntime.unicode_ids.next_index</span></code> value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42827">bpo-42827</a>: Fix a crash when working out the error line of a
<a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> in some multi-line expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42823">bpo-42823</a>: frame.f_lineno is correct even if frame.f_trace is set to True</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37324">bpo-37324</a>: Remove deprecated aliases to
<a class="reference internal" href="../library/collections.abc.html#collections-abstract-base-classes"><span class="std std-ref">Collections Abstract Base Classes</span></a> from the <a class="reference internal" href="../library/collections.html#module-collections" title="collections: Container datatypes"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections</span></code></a>
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41994">bpo-41994</a>: Fixed possible leak in <code class="docutils literal notranslate"><span class="pre">import</span></code> when <code class="docutils literal notranslate"><span class="pre">sys.modules</span></code> is not a
<code class="docutils literal notranslate"><span class="pre">dict</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27772">bpo-27772</a>: In string formatting, preceding the <em>width</em> field by <code class="docutils literal notranslate"><span class="pre">'0'</span></code> no
longer affects the default alignment for strings.</p></li>
</ul>
</section>
<section id="id361">
<h3>Library<a class="headerlink" href="#id361" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43108">bpo-43108</a>: Fixed a reference leak in the <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> module. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43077">bpo-43077</a>: Update the bundled pip to 21.0.1 and setuptools to 52.0.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41282">bpo-41282</a>: Deprecate <code class="docutils literal notranslate"><span class="pre">distutils</span></code> in documentation and add warning on
import.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43014">bpo-43014</a>: Improve performance of <a class="reference internal" href="../library/tokenize.html#module-tokenize" title="tokenize: Lexical scanner for Python source code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tokenize</span></code></a> by 20-30%. Patch by
Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42323">bpo-42323</a>: Fix <a class="reference internal" href="../library/math.html#math.nextafter" title="math.nextafter"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.nextafter()</span></code></a> for NaN on AIX.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42955">bpo-42955</a>: Add <a class="reference internal" href="../library/sys.html#sys.stdlib_module_names" title="sys.stdlib_module_names"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.stdlib_module_names</span></code></a>, containing the list of the
standard library module names. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42944">bpo-42944</a>: Fix <code class="docutils literal notranslate"><span class="pre">random.Random.sample</span></code> when <code class="docutils literal notranslate"><span class="pre">counts</span></code> argument is not
<code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42934">bpo-42934</a>: Use <a class="reference internal" href="../library/traceback.html#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">TracebackException</span></code></a>’s new <code class="docutils literal notranslate"><span class="pre">compact</span></code>
param in <a class="reference internal" href="../library/unittest.html#unittest.TestResult" title="unittest.TestResult"><code class="xref py py-class docutils literal notranslate"><span class="pre">TestResult</span></code></a> to reduce time and memory consumed
by traceback formatting.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42931">bpo-42931</a>: Add <code class="xref py py-func docutils literal notranslate"><span class="pre">randbytes()</span></code> to <code class="docutils literal notranslate"><span class="pre">random.__all__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38250">bpo-38250</a>: [Enum] Flags consisting of a single bit are now considered
canonical, and will be the only flags returned from listing and iterating
over a Flag class or a Flag member. Multi-bit flags are considered
aliases; they will be returned from lookups and operations that result in
their value. Iteration for both Flag and Flag members is in definition
order.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42877">bpo-42877</a>: Added the <code class="docutils literal notranslate"><span class="pre">compact</span></code> parameter to the constructor of
<a class="reference internal" href="../library/traceback.html#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">traceback.TracebackException</span></code></a> to reduce time and memory for use
cases that only need to call <code class="xref py py-func docutils literal notranslate"><span class="pre">TracebackException.format()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">TracebackException.format_exception_only()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42923">bpo-42923</a>: The <a class="reference internal" href="../c-api/sys.html#c.Py_FatalError" title="Py_FatalError"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FatalError()</span></code></a> function and the
<a class="reference internal" href="../library/faulthandler.html#module-faulthandler" title="faulthandler: Dump the Python traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">faulthandler</span></code></a> module now dump the list of extension modules on a
fatal error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42848">bpo-42848</a>: Removed recursion from <a class="reference internal" href="../library/traceback.html#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">TracebackException</span></code></a>
to allow it to handle long exception chains.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42901">bpo-42901</a>: [Enum] move member creation from <code class="docutils literal notranslate"><span class="pre">EnumMeta.__new__</span></code> to
<code class="docutils literal notranslate"><span class="pre">_proto_member.__set_name__</span></code>, allowing members to be created and visible
in <code class="docutils literal notranslate"><span class="pre">__init_subclass__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42780">bpo-42780</a>: Fix os.set_inheritable() for O_PATH file descriptors on Linux.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42866">bpo-42866</a>: Fix a reference leak in the <code class="docutils literal notranslate"><span class="pre">getcodec()</span></code> function of CJK
codecs. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42846">bpo-42846</a>: Convert the 6 CJK codec extension modules (_codecs_cn,
_codecs_hk, _codecs_iso2022, _codecs_jp, _codecs_kr and _codecs_tw) to the
multiphase initialization API (<span class="target" id="index-241"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>). Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42851">bpo-42851</a>: remove __init_subclass__ support for Enum members</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42834">bpo-42834</a>: Make internal caches of the <code class="docutils literal notranslate"><span class="pre">_json</span></code> module compatible with
subinterpreters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41748">bpo-41748</a>: Fix HTMLParser parsing rules for element attributes containing
commas with spaces. Patch by Karl Dubost.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40810">bpo-40810</a>: Require SQLite 3.7.15 or newer. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Convert the _multibytecodec extension module (CJK codecs) to
multi-phase initialization (<span class="target" id="index-242"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>). Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42802">bpo-42802</a>: The distutils <code class="docutils literal notranslate"><span class="pre">bdist_wininst</span></code> command deprecated in Python
3.8 has been removed. The distutils <code class="docutils literal notranslate"><span class="pre">bdist_wheel</span></code> command is now
recommended to distribute binary packages on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24464">bpo-24464</a>: The undocumented built-in function
<code class="docutils literal notranslate"><span class="pre">sqlite3.enable_shared_cache</span></code> is now deprecated, scheduled for removal
in Python 3.12. Its use is strongly discouraged by the SQLite3
documentation. Patch by Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42384">bpo-42384</a>: Make pdb populate sys.path[0] exactly the same as regular
python execution.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42383">bpo-42383</a>: Fix pdb: previously pdb would fail to restart the debugging
target if it was specified using a relative path and the current directory
changed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42005">bpo-42005</a>: Fix CLI of <a class="reference internal" href="../library/profile.html#module-cProfile" title="cProfile"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cProfile</span></code></a> and <a class="reference internal" href="../library/profile.html#module-profile" title="profile: Python source profiler."><code class="xref py py-mod docutils literal notranslate"><span class="pre">profile</span></code></a> to catch
<a class="reference internal" href="../library/exceptions.html#BrokenPipeError" title="BrokenPipeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BrokenPipeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41604">bpo-41604</a>: Don’t decrement the reference count of the previous user_ptr
when set_panel_userptr fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41149">bpo-41149</a>: Allow executing callables that have a boolean value of
<code class="docutils literal notranslate"><span class="pre">False</span></code> when passed to <code class="xref py py-class docutils literal notranslate"><span class="pre">Threading.thread</span></code> as the target. Patch
contributed by Barney Stratford.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38307">bpo-38307</a>: Add an ‘end_lineno’ attribute to the Class and Function objects
that appear in the tree returned by pyclbr functions. This and the
existing ‘lineno’ attribute define the extent of class and def statements.
Patch by Aviral Srivastava.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39273">bpo-39273</a>: The <code class="docutils literal notranslate"><span class="pre">BUTTON5_*</span></code> constants are now exposed in the
<a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a> module if available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33289">bpo-33289</a>: Correct call to <a class="reference internal" href="../library/tkinter.colorchooser.html#module-tkinter.colorchooser" title="tkinter.colorchooser: Color choosing dialog (Tk)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.colorchooser</span></code></a> to return RGB
triplet of ints instead of floats. Patch by Cheryl Sabella.</p></li>
</ul>
</section>
<section id="id362">
<h3>Documentation<a class="headerlink" href="#id362" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40304">bpo-40304</a>: Fix doc for type(name, bases, dict). Patch by Boris
Verkhovskiy and Éric Araujo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42811">bpo-42811</a>: Updated importlib.util.resolve_name() doc to use
__spec__.parent instead of __package__. (Thanks Yair Frid.)</p></li>
</ul>
</section>
<section id="id363">
<h3>Tests<a class="headerlink" href="#id363" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40823">bpo-40823</a>: Use <code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestLoader().loadTestsFromTestCase()</span></code> instead
of <code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.makeSuite()</span></code> in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> tests. Patch by Erlend E.
Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40810">bpo-40810</a>: In <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>, fix <code class="docutils literal notranslate"><span class="pre">CheckTraceCallbackContent</span></code> for SQLite
pre 3.7.15.</p></li>
</ul>
</section>
<section id="id364">
<h3>Build<a class="headerlink" href="#id364" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43031">bpo-43031</a>: Pass <code class="docutils literal notranslate"><span class="pre">--timeout=$(TESTTIMEOUT)</span></code> option to the default profile
task <code class="docutils literal notranslate"><span class="pre">./python</span> <span class="pre">-m</span> <span class="pre">test</span> <span class="pre">--pgo</span></code> command.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36143">bpo-36143</a>: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-all</span></code> now also runs <code class="docutils literal notranslate"><span class="pre">regen-keyword</span></code>. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42874">bpo-42874</a>: Removed the grep -q and -E flags in the tzpath validation
section of the configure script to better accommodate users of some
platforms (specifically Solaris 10).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Add library search path by wr-cc in add_cross_compiling_paths()
for VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42856">bpo-42856</a>: Add <code class="docutils literal notranslate"><span class="pre">--with-wheel-pkg-dir=PATH</span></code> option to the <code class="docutils literal notranslate"><span class="pre">./configure</span></code>
script. If specified, the <a class="reference internal" href="../library/ensurepip.html#module-ensurepip" title="ensurepip: Bootstrapping the "pip" installer into an existing Python installation or virtual environment."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ensurepip</span></code></a> module looks for <code class="docutils literal notranslate"><span class="pre">setuptools</span></code>
and <code class="docutils literal notranslate"><span class="pre">pip</span></code> wheel packages in this directory: if both are present, these
wheel packages are used instead of ensurepip bundled wheel packages.</p>
<p>Some Linux distribution packaging policies recommend against bundling
dependencies. For example, Fedora installs wheel packages in the
<code class="docutils literal notranslate"><span class="pre">/usr/share/python-wheels/</span></code> directory and don’t install the
<code class="docutils literal notranslate"><span class="pre">ensurepip._bundled</span></code> package.</p>
</li>
</ul>
</section>
<section id="id365">
<h3>Windows<a class="headerlink" href="#id365" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41837">bpo-41837</a>: Updated Windows installer to include OpenSSL 1.1.1i</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42584">bpo-42584</a>: Upgrade Windows installer to use SQLite 3.34.0.</p></li>
</ul>
</section>
<section id="id366">
<h3>macOS<a class="headerlink" href="#id366" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42504">bpo-42504</a>: Ensure that the value of
sysconfig.get_config_var(‘MACOSX_DEPLOYMENT_TARGET’) is always a string,
even in when the value is parsable as an integer.</p></li>
</ul>
</section>
<section id="id367">
<h3>IDLE<a class="headerlink" href="#id367" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43008">bpo-43008</a>: Make IDLE invoke <a class="reference internal" href="../library/sys.html#sys.excepthook" title="sys.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.excepthook()</span></code></a> in normal, 2-process
mode. Patch by Ken Hilton.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33065">bpo-33065</a>: Fix problem debugging user classes with __repr__ method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23544">bpo-23544</a>: Disable Debug=>Stack Viewer when user code is running or
Debugger is active, to prevent hang or crash. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32631">bpo-32631</a>: Finish zzdummy example extension module: make menu entries
work; add docstrings and tests with 100% coverage.</p></li>
</ul>
</section>
<section id="id368">
<h3>C API<a class="headerlink" href="#id368" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42979">bpo-42979</a>: When Python is built in debug mode (with C assertions), calling
a type slot like <code class="docutils literal notranslate"><span class="pre">sq_length</span></code> (<code class="docutils literal notranslate"><span class="pre">__len__()</span></code> in Python) now fails with a
fatal error if the slot succeeded with an exception set, or failed with no
exception set. The error message contains the slot, the type name, and the
current exception (if an exception is set). Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=43030">bpo-43030</a>: Fixed a compiler warning in <a class="reference internal" href="../c-api/unicode.html#c.Py_UNICODE_ISSPACE" title="Py_UNICODE_ISSPACE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_UNICODE_ISSPACE()</span></code></a> on
platforms with signed <code class="xref c c-type docutils literal notranslate"><span class="pre">wchar_t</span></code>.</p></li>
</ul>
</section>
</section>
<section id="python-3-10-0-alpha-4">
<h2>Python 3.10.0 alpha 4<a class="headerlink" href="#python-3-10-0-alpha-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2021-01-04</em></p>
<section id="id369">
<h3>Core and Builtins<a class="headerlink" href="#id369" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42814">bpo-42814</a>: Fix undefined behavior in <code class="docutils literal notranslate"><span class="pre">Objects/genericaliasobject.c</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42806">bpo-42806</a>: Fix the column offsets for f-strings <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> nodes
surrounded by parentheses and for nodes that spawn multiple lines. Patch
by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40631">bpo-40631</a>: Fix regression where a single parenthesized starred expression
was a valid assignment target.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27794">bpo-27794</a>: Improve the error message for failed writes/deletes to property
objects. When possible, the attribute name is now shown. Patch provided by
Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42745">bpo-42745</a>: Make the type attribute lookup cache per-interpreter. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42246">bpo-42246</a>: Jumps to jumps are not eliminated when it would break PEP 626.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42246">bpo-42246</a>: Make sure that the <code class="docutils literal notranslate"><span class="pre">f_lasti</span></code> and <code class="docutils literal notranslate"><span class="pre">f_lineno</span></code> attributes of a
frame are set correctly when an exception is raised or re-raised. Required
for PEP 626.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32381">bpo-32381</a>: The coding cookie (ex: <code class="docutils literal notranslate"><span class="pre">#</span> <span class="pre">coding:</span> <span class="pre">latin1</span></code>) is now ignored in
the command passed to the <a class="reference internal" href="../using/cmdline.html#cmdoption-c"><code class="xref std std-option docutils literal notranslate"><span class="pre">-c</span></code></a> command line option. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30858">bpo-30858</a>: Improve error location in expressions that contain assignments.
Patch by Pablo Galindo and Lysandros Nikolaou.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42615">bpo-42615</a>: Remove jump commands made redundant by the deletion of
unreachable bytecode blocks</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42639">bpo-42639</a>: Make the <a class="reference internal" href="../library/atexit.html#module-atexit" title="atexit: Register and execute cleanup functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">atexit</span></code></a> module state per-interpreter. It is now
safe have more than one <a class="reference internal" href="../library/atexit.html#module-atexit" title="atexit: Register and execute cleanup functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">atexit</span></code></a> module instance. Patch by Donghee Na
and Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32381">bpo-32381</a>: Fix encoding name when running a <code class="docutils literal notranslate"><span class="pre">.pyc</span></code> file on Windows:
<a class="reference internal" href="../c-api/veryhigh.html#c.PyRun_SimpleFileExFlags" title="PyRun_SimpleFileExFlags"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyRun_SimpleFileExFlags()</span></code></a> now uses the correct encoding to
decode the filename.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42195">bpo-42195</a>: The <code class="docutils literal notranslate"><span class="pre">__args__</span></code> of the parameterized generics for
<a class="reference internal" href="../library/typing.html#typing.Callable" title="typing.Callable"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Callable</span></code></a> and <a class="reference internal" href="../library/collections.abc.html#collections.abc.Callable" title="collections.abc.Callable"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.Callable</span></code></a> are now
consistent. The <code class="docutils literal notranslate"><span class="pre">__args__</span></code> for <a class="reference internal" href="../library/collections.abc.html#collections.abc.Callable" title="collections.abc.Callable"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.abc.Callable</span></code></a> are
now flattened while <a class="reference internal" href="../library/typing.html#typing.Callable" title="typing.Callable"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Callable</span></code></a>’s have not changed. To allow
this change, <a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a> can now be subclassed and
<code class="docutils literal notranslate"><span class="pre">collections.abc.Callable</span></code>’s <code class="docutils literal notranslate"><span class="pre">__class_getitem__</span></code> will now return a
subclass of <code class="docutils literal notranslate"><span class="pre">types.GenericAlias</span></code>. Tests for typing were also updated to
not subclass things like <code class="docutils literal notranslate"><span class="pre">Callable[...,</span> <span class="pre">T]</span></code> as that is not a valid base
class. Finally, both <code class="docutils literal notranslate"><span class="pre">Callable</span></code>s no longer validate their
<code class="docutils literal notranslate"><span class="pre">argtypes</span></code>, in <code class="docutils literal notranslate"><span class="pre">Callable[[argtypes],</span> <span class="pre">resulttype]</span></code> to prepare for
<span class="target" id="index-243"></span><a class="pep reference external" href="https://peps.python.org/pep-0612/"><strong>PEP 612</strong></a>. Patch by Ken Jin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40137">bpo-40137</a>: Convert functools module to use
<a class="reference internal" href="../c-api/type.html#c.PyType_FromModuleAndSpec" title="PyType_FromModuleAndSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromModuleAndSpec()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40077">bpo-40077</a>: Convert <a class="reference internal" href="../library/array.html#module-array" title="array: Space efficient arrays of uniformly typed numeric values."><code class="xref py py-mod docutils literal notranslate"><span class="pre">array</span></code></a> to use heap types, and establish module
state for these.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42008">bpo-42008</a>: Fix _random.Random() seeding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="xref py py-mod docutils literal notranslate"><span class="pre">pyexpat</span></code> extension module to multi-phase
initialization (<span class="target" id="index-244"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40521">bpo-40521</a>: Make the Unicode dictionary of interned strings compatible with
subinterpreters. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39465">bpo-39465</a>: Make <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyUnicode_FromId()</span></code> function compatible with
subinterpreters. Each interpreter now has an array of identifier objects
(interned strings decoded from UTF-8). Patch by Victor Stinner.</p></li>
</ul>
</section>
<section id="id370">
<h3>Library<a class="headerlink" href="#id370" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42257">bpo-42257</a>: Handle empty string in variable executable in
platform.libc_ver()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42772">bpo-42772</a>: randrange() now raises a TypeError when step is specified
without a stop argument. Formerly, it silently ignored the step argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42759">bpo-42759</a>: Fixed equality comparison of <code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.Variable</span></code> and
<a class="reference internal" href="../library/tkinter.font.html#tkinter.font.Font" title="tkinter.font.Font"><code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.font.Font</span></code></a>. Objects which belong to different Tcl
interpreters are now always different, even if they have the same name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42756">bpo-42756</a>: Configure LMTP Unix-domain socket to use socket global default
timeout when a timeout is not explicitly provided.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23328">bpo-23328</a>: Allow / character in username, password fields on _PROXY
envars.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42740">bpo-42740</a>: <a class="reference internal" href="../library/typing.html#typing.get_args" title="typing.get_args"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_args()</span></code></a> and <a class="reference internal" href="../library/typing.html#typing.get_origin" title="typing.get_origin"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_origin()</span></code></a> now
support <span class="target" id="index-245"></span><a class="pep reference external" href="https://peps.python.org/pep-0604/"><strong>PEP 604</strong></a> union types and <span class="target" id="index-246"></span><a class="pep reference external" href="https://peps.python.org/pep-0612/"><strong>PEP 612</strong></a> additions to <code class="docutils literal notranslate"><span class="pre">Callable</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42655">bpo-42655</a>: <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> <em>extra_groups</em> is now correctly passed into
setgroups() system call.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42727">bpo-42727</a>: <code class="docutils literal notranslate"><span class="pre">EnumMeta.__prepare__</span></code> now accepts <code class="docutils literal notranslate"><span class="pre">**kwds</span></code> to properly
support <code class="docutils literal notranslate"><span class="pre">__init_subclass__</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38308">bpo-38308</a>: Add optional <em>weights</em> to <em>statistics.harmonic_mean()</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42721">bpo-42721</a>: When simple query dialogs (<a class="reference internal" href="../library/dialog.html#module-tkinter.simpledialog" title="tkinter.simpledialog: Simple dialog windows (Tk)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.simpledialog</span></code></a>),
message boxes (<a class="reference internal" href="../library/tkinter.messagebox.html#module-tkinter.messagebox" title="tkinter.messagebox: Various types of alert dialogs (Tk)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.messagebox</span></code></a>) or color choose dialog
(<a class="reference internal" href="../library/tkinter.colorchooser.html#module-tkinter.colorchooser" title="tkinter.colorchooser: Color choosing dialog (Tk)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.colorchooser</span></code></a>) are created without arguments <em>master</em> and
<em>parent</em>, and the default root window is not yet created, and
<code class="xref py py-func docutils literal notranslate"><span class="pre">NoDefaultRoot()</span></code> was not called, a new temporal hidden root
window will be created automatically. It will not be set as the default
root window and will be destroyed right after closing the dialog window.
It will help to use these simple dialog windows in programs which do not
need other GUI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25246">bpo-25246</a>: Optimized <a class="reference internal" href="../library/collections.html#collections.deque.remove" title="collections.deque.remove"><code class="xref py py-meth docutils literal notranslate"><span class="pre">collections.deque.remove()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35728">bpo-35728</a>: Added a root parameter to <a class="reference internal" href="../library/tkinter.font.html#tkinter.font.nametofont" title="tkinter.font.nametofont"><code class="xref py py-func docutils literal notranslate"><span class="pre">tkinter.font.nametofont()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15303">bpo-15303</a>: <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> supports now widgets with boolean value False.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42681">bpo-42681</a>: Fixed range checks for color and pair numbers in <a class="reference internal" href="../library/curses.html#module-curses" title="curses: An interface to the curses library, providing portable terminal handling. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">curses</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42685">bpo-42685</a>: Improved placing of simple query windows in Tkinter (such as
<a class="reference internal" href="../library/dialog.html#tkinter.simpledialog.askinteger" title="tkinter.simpledialog.askinteger"><code class="xref py py-func docutils literal notranslate"><span class="pre">tkinter.simpledialog.askinteger()</span></code></a>). They are now centered at the
center of the parent window if it is specified and shown, otherwise at the
center of the screen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9694">bpo-9694</a>: Argparse help no longer uses the confusing phrase, “optional
arguments”. It uses “options” instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_thread</span></code> extension module to the multiphase
initialization API (<span class="target" id="index-247"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>) and convert its static types to heap
types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37961">bpo-37961</a>: Fix crash in <code class="xref py py-func docutils literal notranslate"><span class="pre">tracemalloc.Traceback.__repr__()</span></code> (regressed
in Python 3.9).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42630">bpo-42630</a>: <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> functions and constructors which need a default
root window raise now <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> with descriptive message instead
of obscure <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> or <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> if it is not created
yet or cannot be created automatically.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42639">bpo-42639</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">atexit._run_exitfuncs()</span></code> now logs callback exceptions
using <a class="reference internal" href="../library/sys.html#sys.unraisablehook" title="sys.unraisablehook"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.unraisablehook</span></code></a>, rather than logging them directly into
<a class="reference internal" href="../library/sys.html#sys.stderr" title="sys.stderr"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.stderr</span></code></a> and raise the last exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42644">bpo-42644</a>: <code class="docutils literal notranslate"><span class="pre">logging.disable</span></code> will now validate the types and value of
its parameter. It also now accepts strings representing the levels (as
does <code class="docutils literal notranslate"><span class="pre">logging.setLevel</span></code>) instead of only the numerical values.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42639">bpo-42639</a>: At Python exit, if a callback registered with
<a class="reference internal" href="../library/atexit.html#atexit.register" title="atexit.register"><code class="xref py py-func docutils literal notranslate"><span class="pre">atexit.register()</span></code></a> fails, its exception is now logged. Previously,
only some exceptions were logged, and the last exception was always
silently ignored.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36541">bpo-36541</a>: Fixed lib2to3.pgen2 to be able to parse PEP-570 positional only
argument syntax.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42382">bpo-42382</a>: In <code class="docutils literal notranslate"><span class="pre">importlib.metadata</span></code>: - <code class="docutils literal notranslate"><span class="pre">EntryPoint</span></code> objects now expose
a <code class="docutils literal notranslate"><span class="pre">.dist</span></code> object referencing the <code class="docutils literal notranslate"><span class="pre">Distribution</span></code> when constructed from
a <code class="docutils literal notranslate"><span class="pre">Distribution</span></code>. - Add support for package discovery under package
normalization rules. - The object returned by <code class="docutils literal notranslate"><span class="pre">metadata()</span></code> now has a
formally defined protocol called <code class="docutils literal notranslate"><span class="pre">PackageMetadata</span></code> with declared support
for the <code class="docutils literal notranslate"><span class="pre">.get_all()</span></code> method. - Synced with importlib_metadata 3.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41877">bpo-41877</a>: A check is added against misspellings of autospect, auto_spec
and set_spec being passed as arguments to patch, patch.object and
create_autospec.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39717">bpo-39717</a>: [tarfile] update nested exception raising to use <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">None</span></code>
or <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">e</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41877">bpo-41877</a>: AttributeError for suspected misspellings of assertions on
mocks are now pointing out that the cause are misspelled assertions and
also what to do if the misspelling is actually an intended attribute name.
The unittest.mock document is also updated to reflect the current set of
recognised misspellings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41559">bpo-41559</a>: Implemented <span class="target" id="index-248"></span><a class="pep reference external" href="https://peps.python.org/pep-0612/"><strong>PEP 612</strong></a>: added <code class="docutils literal notranslate"><span class="pre">ParamSpec</span></code> and <code class="docutils literal notranslate"><span class="pre">Concatenate</span></code>
to <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a>. Patch by Ken Jin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42385">bpo-42385</a>: StrEnum: fix _generate_next_value_ to return a str</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Define THREAD_STACK_SIZE for VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34750">bpo-34750</a>: [Enum] <code class="docutils literal notranslate"><span class="pre">_EnumDict.update()</span></code> is now supported.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42517">bpo-42517</a>: Enum: private names do not become members / do not generate
errors – they remain normal attributes</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42678">bpo-42678</a>: <code class="docutils literal notranslate"><span class="pre">Enum</span></code>: call <code class="docutils literal notranslate"><span class="pre">__init_subclass__</span></code> after members have been
added</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28964">bpo-28964</a>: <a class="reference internal" href="../library/ast.html#ast.literal_eval" title="ast.literal_eval"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.literal_eval()</span></code></a> adds line number information (if
available) in error message for malformed nodes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42470">bpo-42470</a>: <a class="reference internal" href="../library/random.html#random.sample" title="random.sample"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.sample()</span></code></a> no longer warns on a sequence which is
also a set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">posixpath.expanduser()</span></code> returns the input <em>path</em> unchanged
if user home directory is None on VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42388">bpo-42388</a>: Fix subprocess.check_output(…, input=None) behavior when
text=True to be consistent with that of the documentation and
universal_newlines=True.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34463">bpo-34463</a>: Fixed discrepancy between <a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> and the interpreter
in formatting of SyntaxError with lineno not set (<a class="reference internal" href="../library/traceback.html#module-traceback" title="traceback: Print or retrieve a stack traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">traceback</span></code></a> was
changed to match interpreter).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42393">bpo-42393</a>: Raise <a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> instead of silent truncation in
<a class="reference internal" href="../library/socket.html#socket.ntohs" title="socket.ntohs"><code class="xref py py-meth docutils literal notranslate"><span class="pre">socket.ntohs()</span></code></a> and <a class="reference internal" href="../library/socket.html#socket.htons" title="socket.htons"><code class="xref py py-meth docutils literal notranslate"><span class="pre">socket.htons()</span></code></a>. Silent truncation was
deprecated in Python 3.7. Patch by Erlend E. Aasland</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42222">bpo-42222</a>: Harmonized <a class="reference internal" href="../library/random.html#random.randrange" title="random.randrange"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.randrange()</span></code></a> argument handling to match
<a class="reference internal" href="../library/stdtypes.html#range" title="range"><code class="xref py py-func docutils literal notranslate"><span class="pre">range()</span></code></a>.</p>
<ul class="simple">
<li><p>The integer test and conversion in <code class="docutils literal notranslate"><span class="pre">randrange()</span></code> now uses
<a class="reference internal" href="../library/operator.html#operator.index" title="operator.index"><code class="xref py py-func docutils literal notranslate"><span class="pre">operator.index()</span></code></a>.</p></li>
<li><p>Non-integer arguments to <code class="docutils literal notranslate"><span class="pre">randrange()</span></code> are deprecated.</p></li>
<li><p>The <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> is deprecated in favor of a <code class="docutils literal notranslate"><span class="pre">TypeError</span></code>.</p></li>
<li><p>It now runs a little faster than before.</p></li>
</ul>
<p>(Contributed by Raymond Hettinger and Serhiy Storchaka.)</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42163">bpo-42163</a>: Restore compatibility for <code class="docutils literal notranslate"><span class="pre">uname_result</span></code> around deepcopy and
_replace.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42090">bpo-42090</a>: <code class="docutils literal notranslate"><span class="pre">zipfile.Path.joinpath</span></code> now accepts arbitrary arguments, same
as <code class="docutils literal notranslate"><span class="pre">pathlib.Path.joinpath</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the _csv module to the multi-phase initialization API
(<span class="target" id="index-249"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42059">bpo-42059</a>: <a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypedDict</span></code></a> types created using the alternative
call-style syntax now correctly respect the <code class="docutils literal notranslate"><span class="pre">total</span></code> keyword argument
when setting their <code class="docutils literal notranslate"><span class="pre">__required_keys__</span></code> and <code class="docutils literal notranslate"><span class="pre">__optional_keys__</span></code> class
attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41960">bpo-41960</a>: Add <code class="docutils literal notranslate"><span class="pre">globalns</span></code> and <code class="docutils literal notranslate"><span class="pre">localns</span></code> parameters to the
<a class="reference internal" href="../library/inspect.html#inspect.signature" title="inspect.signature"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.signature()</span></code></a> and <a class="reference internal" href="../library/inspect.html#inspect.Signature.from_callable" title="inspect.Signature.from_callable"><code class="xref py py-meth docutils literal notranslate"><span class="pre">inspect.Signature.from_callable()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41907">bpo-41907</a>: fix <code class="docutils literal notranslate"><span class="pre">format()</span></code> behavior for <code class="docutils literal notranslate"><span class="pre">IntFlag</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41891">bpo-41891</a>: Ensure asyncio.wait_for waits for task completion</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24792">bpo-24792</a>: Fixed bug where <code class="xref py py-mod docutils literal notranslate"><span class="pre">zipimporter</span></code> sometimes reports an
incorrect cause of import errors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Fix site and sysconfig modules for VxWorks RTOS which has no
home directories.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41462">bpo-41462</a>: Add <a class="reference internal" href="../library/os.html#os.set_blocking" title="os.set_blocking"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.set_blocking()</span></code></a> support for VxWorks RTOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40219">bpo-40219</a>: Lowered <code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.ttk.LabeledScale</span></code> dummy widget to
prevent hiding part of the content label.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37193">bpo-37193</a>: Fixed memory leak in <code class="docutils literal notranslate"><span class="pre">socketserver.ThreadingMixIn</span></code> introduced
in Python 3.7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39068">bpo-39068</a>: Fix initialization race condition in <code class="xref py py-func docutils literal notranslate"><span class="pre">a85encode()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">b85encode()</span></code> in <a class="reference internal" href="../library/base64.html#module-base64" title="base64: RFC 4648: Base16, Base32, Base64 Data Encodings; Base85 and Ascii85"><code class="xref py py-mod docutils literal notranslate"><span class="pre">base64</span></code></a>. Patch by Brandon Stansbury.</p></li>
</ul>
</section>
<section id="id371">
<h3>Documentation<a class="headerlink" href="#id371" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17140">bpo-17140</a>: Add documentation for the
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.pool.ThreadPool" title="multiprocessing.pool.ThreadPool"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.pool.ThreadPool</span></code></a> class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34398">bpo-34398</a>: Prominently feature listings from the glossary in documentation
search results. Patch by Ammar Askar.</p></li>
</ul>
</section>
<section id="id372">
<h3>Tests<a class="headerlink" href="#id372" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42794">bpo-42794</a>: Update test_nntplib to use official group name of news.aioe.org
for testing. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Skip some asyncio tests on VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42641">bpo-42641</a>: Enhance <code class="docutils literal notranslate"><span class="pre">test_select.test_select()</span></code>: it now takes 500
milliseconds rather than 10 seconds. Use Python rather than a shell to
make the test more portable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Skip some tests in _test_all_chown_common() on VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42199">bpo-42199</a>: Fix bytecode helper assertNotInBytecode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41443">bpo-41443</a>: Add more attribute checking in test_posix.py</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Disable os.popen and impacted tests on VxWorks</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41439">bpo-41439</a>: Port test_ssl and test_uuid to VxWorks RTOS.</p></li>
</ul>
</section>
<section id="id373">
<h3>Build<a class="headerlink" href="#id373" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42692">bpo-42692</a>: Fix __builtin_available check on older compilers. Patch by
Joshua Root.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27640">bpo-27640</a>: Added <code class="docutils literal notranslate"><span class="pre">--disable-test-modules</span></code> option to the <code class="docutils literal notranslate"><span class="pre">configure</span></code>
script: don’t build nor install test modules. Patch by Xavier de Gaye,
Thomas Petazzoni and Peixing Xin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42604">bpo-42604</a>: Now all platforms use a value for the “EXT_SUFFIX” build
variable derived from SOABI (for instance in freeBSD, “EXT_SUFFIX” is now
“.cpython-310d.so” instead of “.so”). Previously only Linux, Mac and
VxWorks were using a value for “EXT_SUFFIX” that included “SOABI”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42598">bpo-42598</a>: Fix implicit function declarations in configure which could
have resulted in incorrect configuration checks. Patch contributed by
Joshua Root.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Enable libpython3.so for VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29076">bpo-29076</a>: Add fish shell support to macOS installer.</p></li>
</ul>
</section>
<section id="id374">
<h3>macOS<a class="headerlink" href="#id374" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42361">bpo-42361</a>: Update macOS installer build to use Tcl/Tk 8.6.11 (rc2,
expected to be final release).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41837">bpo-41837</a>: Update macOS installer build to use OpenSSL 1.1.1i.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42584">bpo-42584</a>: Update macOS installer to use SQLite 3.34.0.</p></li>
</ul>
</section>
<section id="id375">
<h3>Tools/Demos<a class="headerlink" href="#id375" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42726">bpo-42726</a>: Fixed Python 3 compatibility issue with gdb/libpython.py
handling of attribute dictionaries.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42613">bpo-42613</a>: Fix <code class="docutils literal notranslate"><span class="pre">freeze.py</span></code> tool to use the prope config and library
directories. Patch by Victor Stinner.</p></li>
</ul>
</section>
<section id="id376">
<h3>C API<a class="headerlink" href="#id376" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42591">bpo-42591</a>: Export the <code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FrozenMain()</span></code> function: fix a Python 3.9.0
regression. Python 3.9 uses <code class="docutils literal notranslate"><span class="pre">-fvisibility=hidden</span></code> and the function was
not exported explicitly and so not exported.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32381">bpo-32381</a>: Remove the private <code class="xref c c-func docutils literal notranslate"><span class="pre">_Py_fopen()</span></code> function which is no
longer needed. Use <code class="xref c c-func docutils literal notranslate"><span class="pre">_Py_wfopen()</span></code> or <code class="xref c c-func docutils literal notranslate"><span class="pre">_Py_fopen_obj()</span></code>
instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/resource.html#module-resource" title="resource: An interface to provide resource usage information on the current process. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">resource</span></code></a> extension module to module state</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42111">bpo-42111</a>: Update the <code class="docutils literal notranslate"><span class="pre">xxlimited</span></code> module to be a better example of how
to use the limited C API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40052">bpo-40052</a>: Fix an alignment build warning/error in function
<code class="docutils literal notranslate"><span class="pre">PyVectorcall_Function()</span></code>. Patch by Andreas Schneider, Antoine Pitrou
and Petr Viktorin.</p></li>
</ul>
</section>
</section>
<section id="python-3-10-0-alpha-3">
<h2>Python 3.10.0 alpha 3<a class="headerlink" href="#python-3-10-0-alpha-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2020-12-07</em></p>
<section id="id377">
<h3>Security<a class="headerlink" href="#id377" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40791">bpo-40791</a>: Add <code class="docutils literal notranslate"><span class="pre">volatile</span></code> to the accumulator variable in
<code class="docutils literal notranslate"><span class="pre">hmac.compare_digest</span></code>, making constant-time-defeating optimizations less
likely.</p></li>
</ul>
</section>
<section id="id378">
<h3>Core and Builtins<a class="headerlink" href="#id378" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42576">bpo-42576</a>: <code class="docutils literal notranslate"><span class="pre">types.GenericAlias</span></code> will now raise a <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> when
attempting to initialize with a keyword argument. Previously, this would
cause the interpreter to crash if the interpreter was compiled with debug
symbols. This does not affect interpreters compiled for release. Patch by
Ken Jin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42536">bpo-42536</a>: Several built-in and standard library types now ensure that
their internal result tuples are always tracked by the <a class="reference internal" href="../glossary.html#term-garbage-collection"><span class="xref std std-term">garbage
collector</span></a>:</p>
<ul class="simple">
<li><p><a class="reference internal" href="../library/collections.html#collections.OrderedDict" title="collections.OrderedDict"><code class="xref py py-meth docutils literal notranslate"><span class="pre">collections.OrderedDict.items()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/stdtypes.html#dict.items" title="dict.items"><code class="xref py py-meth docutils literal notranslate"><span class="pre">dict.items()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/functions.html#enumerate" title="enumerate"><code class="xref py py-func docutils literal notranslate"><span class="pre">enumerate()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/functools.html#functools.reduce" title="functools.reduce"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.reduce()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/itertools.html#itertools.combinations" title="itertools.combinations"><code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.combinations()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/itertools.html#itertools.combinations_with_replacement" title="itertools.combinations_with_replacement"><code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.combinations_with_replacement()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/itertools.html#itertools.permutations" title="itertools.permutations"><code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.permutations()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/itertools.html#itertools.product" title="itertools.product"><code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.product()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/itertools.html#itertools.zip_longest" title="itertools.zip_longest"><code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.zip_longest()</span></code></a></p></li>
<li><p><a class="reference internal" href="../library/functions.html#zip" title="zip"><code class="xref py py-func docutils literal notranslate"><span class="pre">zip()</span></code></a></p></li>
</ul>
<p>Previously, they could have become untracked by a prior garbage
collection. Patch by Brandt Bucher.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42500">bpo-42500</a>: Improve handling of exceptions near recursion limit. Converts a
number of Fatal Errors in RecursionErrors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42246">bpo-42246</a>: PEP 626: After a return, the f_lineno attribute of a frame is
always the last line executed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42435">bpo-42435</a>: Speed up comparison of bytes objects with non-bytes objects
when option <a class="reference internal" href="../using/cmdline.html#cmdoption-b"><code class="xref std std-option docutils literal notranslate"><span class="pre">-b</span></code></a> is specified. Speed up comparison of bytarray
objects with non-buffer object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="docutils literal notranslate"><span class="pre">_warnings</span></code> extension module to the multi-phase
initialization API (<span class="target" id="index-250"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>). Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41686">bpo-41686</a>: On Windows, the <code class="docutils literal notranslate"><span class="pre">SIGINT</span></code> event, <code class="docutils literal notranslate"><span class="pre">_PyOS_SigintEvent()</span></code>, is
now created even if Python is configured to not install signal handlers
(if <a class="reference internal" href="../c-api/init_config.html#c.PyConfig.install_signal_handlers" title="PyConfig.install_signal_handlers"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyConfig.install_signal_handlers</span></code></a> equals to 0, or
<code class="docutils literal notranslate"><span class="pre">Py_InitializeEx(0)</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42381">bpo-42381</a>: Allow assignment expressions in set literals and set
comprehensions as per PEP 572. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42202">bpo-42202</a>: Change function parameters annotations internal representation
to tuple of strings. Patch provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42374">bpo-42374</a>: Fix a regression introduced by the new parser, where an
unparenthesized walrus operator was not allowed within generator
expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42316">bpo-42316</a>: Allow an unparenthesized walrus in subscript indexes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42349">bpo-42349</a>: Make sure that the compiler front-end produces a well-formed
control flow graph. Be more aggressive in the compiler back-end, as it is
now safe to do so.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42296">bpo-42296</a>: On Windows, fix a regression in signal handling which prevented
to interrupt a program using CTRL+C. The signal handler can be run in a
thread different than the Python thread, in which case the test deciding
if the thread can handle signals is wrong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42332">bpo-42332</a>: <a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a> objects can now be the targets of
weakrefs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42282">bpo-42282</a>: Optimise constant subexpressions that appear as part of named
expressions (previously the AST optimiser did not descend into named
expressions). Patch by Nick Coghlan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42266">bpo-42266</a>: Fixed a bug with the LOAD_ATTR opcode cache that was not
respecting monkey-patching a class-level attribute to make it a
descriptor. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40077">bpo-40077</a>: Convert <a class="reference internal" href="../library/queue.html#module-queue" title="queue: A synchronized queue class."><code class="xref py py-mod docutils literal notranslate"><span class="pre">queue</span></code></a> to use heap types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42246">bpo-42246</a>: Improved accuracy of line tracing events and f_lineno attribute
of Frame objects. See PEP 626 for details.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40077">bpo-40077</a>: Convert <a class="reference internal" href="../library/mmap.html#module-mmap" title="mmap: Interface to memory-mapped files for Unix and Windows."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mmap</span></code></a> to use heap types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42233">bpo-42233</a>: Allow <code class="docutils literal notranslate"><span class="pre">GenericAlias</span></code> objects to use <a class="reference internal" href="../library/stdtypes.html#types-union"><span class="std std-ref">union type
expressions</span></a>. This allows expressions like <code class="docutils literal notranslate"><span class="pre">list[int]</span> <span class="pre">|</span>
<span class="pre">dict[float,</span> <span class="pre">str]</span></code> where previously a <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> would have been
thrown. This also fixes union type expressions not de-duplicating
<code class="docutils literal notranslate"><span class="pre">GenericAlias</span></code> objects. (Contributed by Ken Jin in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42233">bpo-42233</a>.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26131">bpo-26131</a>: The import system triggers a <code class="docutils literal notranslate"><span class="pre">ImportWarning</span></code> when it falls
back to using <code class="docutils literal notranslate"><span class="pre">load_module()</span></code>.</p></li>
</ul>
</section>
<section id="id379">
<h3>Library<a class="headerlink" href="#id379" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5054">bpo-5054</a>: CGIHTTPRequestHandler.run_cgi() HTTP_ACCEPT improperly parsed.
Replace the special purpose getallmatchingheaders with generic get_all
method and add relevant tests.</p>
<p>Original Patch by Martin Panter. Modified by Senthil Kumaran.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42562">bpo-42562</a>: Fix issue when dis failed to parse function that has no line
numbers. Patch provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17735">bpo-17735</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.findsource()</span></code> now raises <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> instead of
<a class="reference internal" href="../library/exceptions.html#IndexError" title="IndexError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IndexError</span></code></a> when <code class="xref py py-attr docutils literal notranslate"><span class="pre">co_lineno</span></code> of a code object is greater than
the file length. This can happen, for example, when a file is edited after
it was imported. PR by Irit Katriel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42116">bpo-42116</a>: Fix handling of trailing comments by <a class="reference internal" href="../library/inspect.html#inspect.getsource" title="inspect.getsource"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getsource()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42532">bpo-42532</a>: Remove unexpected call of <code class="docutils literal notranslate"><span class="pre">__bool__</span></code> when passing a
<code class="docutils literal notranslate"><span class="pre">spec_arg</span></code> argument to a Mock.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38200">bpo-38200</a>: Added itertools.pairwise()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41818">bpo-41818</a>: Fix test_master_read() so that it succeeds on all platforms
that either raise OSError or return b”” upon reading from master.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42487">bpo-42487</a>: ChainMap.__iter__ no longer calls __getitem__ on underlying
maps</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42482">bpo-42482</a>: <a class="reference internal" href="../library/traceback.html#traceback.TracebackException" title="traceback.TracebackException"><code class="xref py py-class docutils literal notranslate"><span class="pre">TracebackException</span></code></a> no longer holds a
reference to the exception’s traceback object. Consequently, instances of
TracebackException for equivalent but non-equal exceptions now compare as
equal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41818">bpo-41818</a>: Make test_openpty() avoid unexpected success due to number of
rows and/or number of columns being == 0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42392">bpo-42392</a>: Remove loop parameter from <code class="docutils literal notranslate"><span class="pre">asyncio.subprocess</span></code> and
<code class="docutils literal notranslate"><span class="pre">asyncio.tasks</span></code> functions. Patch provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42392">bpo-42392</a>: Remove loop parameter from <code class="docutils literal notranslate"><span class="pre">asyncio.open_connection</span></code> and
<code class="docutils literal notranslate"><span class="pre">asyncio.start_server</span></code> functions. Patch provided by Yurii Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28468">bpo-28468</a>: Add <a class="reference internal" href="../library/platform.html#platform.freedesktop_os_release" title="platform.freedesktop_os_release"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.freedesktop_os_release()</span></code></a> function to parse
freedesktop.org <code class="docutils literal notranslate"><span class="pre">os-release</span></code> files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42299">bpo-42299</a>: Removed the <code class="docutils literal notranslate"><span class="pre">formatter</span></code> module, which was deprecated in
Python 3.4. It is somewhat obsolete, little used, and not tested. It was
originally scheduled to be removed in Python 3.6, but such removals were
delayed until after Python 2.7 EOL. Existing users should copy whatever
classes they use into their code. Patch by Donghee Na and and Terry J.
Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26131">bpo-26131</a>: Deprecate zipimport.zipimporter.load_module() in favour of
exec_module().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41818">bpo-41818</a>: Updated tests for the pty library. test_basic() has been
changed to test_openpty(); this additionally checks if slave termios and
slave winsize are being set properly by pty.openpty(). In order to add
support for FreeBSD, NetBSD, OpenBSD, and Darwin, this also adds
test_master_read(), which demonstrates that pty.spawn() should not depend
on an OSError to exit from its copy loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42392">bpo-42392</a>: Remove loop parameter from <code class="docutils literal notranslate"><span class="pre">__init__</span></code> in all
<code class="docutils literal notranslate"><span class="pre">asyncio.locks</span></code> and <code class="docutils literal notranslate"><span class="pre">asyncio.Queue</span></code> classes. Patch provided by Yurii
Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15450">bpo-15450</a>: Make <a class="reference internal" href="../library/filecmp.html#filecmp.dircmp" title="filecmp.dircmp"><code class="xref py py-class docutils literal notranslate"><span class="pre">filecmp.dircmp</span></code></a> respect subclassing. Now the
<a class="reference internal" href="../library/filecmp.html#filecmp.dircmp.subdirs" title="filecmp.dircmp.subdirs"><code class="xref py py-attr docutils literal notranslate"><span class="pre">filecmp.dircmp.subdirs</span></code></a> behaves as expected when subclassing
dircmp.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42413">bpo-42413</a>: The exception <a class="reference internal" href="../library/socket.html#socket.timeout" title="socket.timeout"><code class="xref py py-exc docutils literal notranslate"><span class="pre">socket.timeout</span></code></a> is now an alias of
<a class="reference internal" href="../library/exceptions.html#TimeoutError" title="TimeoutError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TimeoutError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Support signal module on VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42406">bpo-42406</a>: We fixed an issue in <code class="docutils literal notranslate"><span class="pre">pickle.whichmodule</span></code> in which importing
<code class="docutils literal notranslate"><span class="pre">multiprocessing</span></code> could change the how pickle identifies which module an
object belongs to, potentially breaking the unpickling of those objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42403">bpo-42403</a>: Simplify the <a class="reference internal" href="../library/importlib.html#module-importlib" title="importlib: The implementation of the import machinery."><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib</span></code></a> external bootstrap code:
<code class="docutils literal notranslate"><span class="pre">importlib._bootstrap_external</span></code> now uses regular imports to import
builtin modules. When it is imported, the builtin <a class="reference internal" href="../library/functions.html#import__" title="__import__"><code class="xref py py-func docutils literal notranslate"><span class="pre">__import__()</span></code></a>
function is already fully working and so can be used to import builtin
modules like <a class="reference internal" href="../library/sys.html#module-sys" title="sys: Access system-specific parameters and functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sys</span></code></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Convert _sre module types to heap types (PEP 384). Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42375">bpo-42375</a>: subprocess module update for DragonFlyBSD support.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41713">bpo-41713</a>: Port the <code class="docutils literal notranslate"><span class="pre">_signal</span></code> extension module to the multi-phase
initialization API (<span class="target" id="index-251"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>). Patch by Victor Stinner and Mohamed
Koubaa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37205">bpo-37205</a>: <a class="reference internal" href="../library/time.html#time.time" title="time.time"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.time()</span></code></a>, <a class="reference internal" href="../library/time.html#time.perf_counter" title="time.perf_counter"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.perf_counter()</span></code></a> and
<a class="reference internal" href="../library/time.html#time.monotonic" title="time.monotonic"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.monotonic()</span></code></a> functions can no longer fail with a Python fatal
error, instead raise a regular Python exception on failure.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42328">bpo-42328</a>: Fixed <a class="reference internal" href="../library/tkinter.ttk.html#tkinter.ttk.Style.map" title="tkinter.ttk.Style.map"><code class="xref py py-meth docutils literal notranslate"><span class="pre">tkinter.ttk.Style.map()</span></code></a>. The function accepts now
the representation of the default state as empty sequence (as returned by
<code class="docutils literal notranslate"><span class="pre">Style.map()</span></code>). The structure of the result is now the same on all
platform and does not depend on the value of <code class="docutils literal notranslate"><span class="pre">wantobjects</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42345">bpo-42345</a>: Fix various issues with <code class="docutils literal notranslate"><span class="pre">typing.Literal</span></code> parameter handling
(flatten, deduplicate, use type to cache key). Patch provided by Yurii
Karabas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37205">bpo-37205</a>: <a class="reference internal" href="../library/time.html#time.perf_counter" title="time.perf_counter"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.perf_counter()</span></code></a> on Windows and <a class="reference internal" href="../library/time.html#time.monotonic" title="time.monotonic"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.monotonic()</span></code></a>
on macOS are now system-wide. Previously, they used an offset computed at
startup to reduce the precision loss caused by the float type. Use
<a class="reference internal" href="../library/time.html#time.perf_counter_ns" title="time.perf_counter_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.perf_counter_ns()</span></code></a> and <a class="reference internal" href="../library/time.html#time.monotonic_ns" title="time.monotonic_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.monotonic_ns()</span></code></a> added in Python
3.7 to avoid this precision loss.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42318">bpo-42318</a>: Fixed support of non-BMP characters in <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a> on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42350">bpo-42350</a>: Fix the <a class="reference internal" href="../library/threading.html#threading.Thread" title="threading.Thread"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.Thread</span></code></a> class at fork: do nothing if
the thread is already stopped (ex: fork called at Python exit).
Previously, an error was logged in the child process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42333">bpo-42333</a>: Port _ssl extension module to heap types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42014">bpo-42014</a>: The <code class="docutils literal notranslate"><span class="pre">onerror</span></code> callback from <code class="docutils literal notranslate"><span class="pre">shutil.rmtree</span></code> now receives
correct function when <code class="docutils literal notranslate"><span class="pre">os.open</span></code> fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42237">bpo-42237</a>: Fix <code class="docutils literal notranslate"><span class="pre">os.sendfile()</span></code> on illumos.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42308">bpo-42308</a>: Add <a class="reference internal" href="../library/threading.html#threading.__excepthook__" title="threading.__excepthook__"><code class="xref py py-data docutils literal notranslate"><span class="pre">threading.__excepthook__</span></code></a> to allow retrieving the
original value of <a class="reference internal" href="../library/threading.html#threading.excepthook" title="threading.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.excepthook()</span></code></a> in case it is set to a
broken or a different value. Patch by Mario Corchero.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42131">bpo-42131</a>: Implement PEP 451/spec methods on zipimport.zipimporter:
find_spec(), create_module(), and exec_module().</p>
<p>This also allows for the documented deprecation of find_loader(),
find_module(), and load_module().</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41877">bpo-41877</a>: Mock objects which are not unsafe will now raise an
AttributeError if an attribute with the prefix asert, aseert, or assrt is
accessed, in addition to this already happening for the prefixes assert or
assret.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42264">bpo-42264</a>: <code class="docutils literal notranslate"><span class="pre">sqlite3.OptimizedUnicode</span></code> has been undocumented and obsolete
since Python 3.3, when it was made an alias to <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a>. It is now
deprecated, scheduled for removal in Python 3.12.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42251">bpo-42251</a>: Added <a class="reference internal" href="../library/threading.html#threading.gettrace" title="threading.gettrace"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.gettrace()</span></code></a> and
<a class="reference internal" href="../library/threading.html#threading.getprofile" title="threading.getprofile"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.getprofile()</span></code></a> to retrieve the functions set by
<a class="reference internal" href="../library/threading.html#threading.settrace" title="threading.settrace"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.settrace()</span></code></a> and <a class="reference internal" href="../library/threading.html#threading.setprofile" title="threading.setprofile"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.setprofile()</span></code></a> respectively.
Patch by Mario Corchero.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42249">bpo-42249</a>: Fixed writing binary Plist files larger than 4 GiB.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42236">bpo-42236</a>: On Unix, the <a class="reference internal" href="../library/os.html#os.device_encoding" title="os.device_encoding"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.device_encoding()</span></code></a> function now returns
<code class="docutils literal notranslate"><span class="pre">'UTF-8'</span></code> rather than the device encoding if the <a class="reference internal" href="../library/os.html#utf8-mode"><span class="std std-ref">Python UTF-8 Mode</span></a> is enabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41754">bpo-41754</a>: webbrowser: Ignore <em>NotADirectoryError</em> when calling
<code class="docutils literal notranslate"><span class="pre">xdg-settings</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42183">bpo-42183</a>: Fix a stack overflow error for asyncio Task or Future repr().</p>
<p>The overflow occurs under some circumstances when a Task or Future
recursively returns itself.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42140">bpo-42140</a>: Improve asyncio.wait function to create the futures set just
one time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42133">bpo-42133</a>: Update various modules in the stdlib to fall back on
<code class="docutils literal notranslate"><span class="pre">__spec__.loader</span></code> when <code class="docutils literal notranslate"><span class="pre">__loader__</span></code> isn’t defined on a module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26131">bpo-26131</a>: The <code class="docutils literal notranslate"><span class="pre">load_module()</span></code> methods found in <code class="docutils literal notranslate"><span class="pre">importlib</span></code> now
trigger a <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39825">bpo-39825</a>: Windows: Change <code class="docutils literal notranslate"><span class="pre">sysconfig.get_config_var('EXT_SUFFIX')</span></code> to
the expected full <code class="docutils literal notranslate"><span class="pre">platform_tag.extension</span></code> format. Previously it was
hard-coded to <code class="docutils literal notranslate"><span class="pre">.pyd</span></code>, now it is compatible with <code class="docutils literal notranslate"><span class="pre">distutils.sysconfig</span></code>
and will result in something like <code class="docutils literal notranslate"><span class="pre">.cp38-win_amd64.pyd</span></code>. This brings
windows into conformance with the other platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26389">bpo-26389</a>: The <a class="reference internal" href="../library/traceback.html#traceback.format_exception" title="traceback.format_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">traceback.format_exception()</span></code></a>,
<a class="reference internal" href="../library/traceback.html#traceback.format_exception_only" title="traceback.format_exception_only"><code class="xref py py-func docutils literal notranslate"><span class="pre">traceback.format_exception_only()</span></code></a>, and
<a class="reference internal" href="../library/traceback.html#traceback.print_exception" title="traceback.print_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">traceback.print_exception()</span></code></a> functions can now take an exception
object as a positional-only argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41889">bpo-41889</a>: Enum: fix regression involving inheriting a multiply inherited
enum</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41861">bpo-41861</a>: Convert <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> to use heap types (PEP 384). Patch by
Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40624">bpo-40624</a>: Added support for the XPath <code class="docutils literal notranslate"><span class="pre">!=</span></code> operator in xml.etree</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28850">bpo-28850</a>: Fix <a class="reference internal" href="../library/pprint.html#pprint.PrettyPrinter.format" title="pprint.PrettyPrinter.format"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pprint.PrettyPrinter.format()</span></code></a> overrides being ignored
for contents of small containers. The <code class="xref py py-func docutils literal notranslate"><span class="pre">pprint._safe_repr()</span></code> function
was removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41625">bpo-41625</a>: Expose the <code class="xref c c-func docutils literal notranslate"><span class="pre">splice()</span></code> as <a class="reference internal" href="../library/os.html#os.splice" title="os.splice"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.splice()</span></code></a> in the
<a class="reference internal" href="../library/os.html#module-os" title="os: Miscellaneous operating system interfaces."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os</span></code></a> module. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34215">bpo-34215</a>: Clarify the error message for
<a class="reference internal" href="../library/asyncio-exceptions.html#asyncio.IncompleteReadError" title="asyncio.IncompleteReadError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">asyncio.IncompleteReadError</span></code></a> when <code class="docutils literal notranslate"><span class="pre">expected</span></code> is <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41543">bpo-41543</a>: Add async context manager support for contextlib.nullcontext.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21041">bpo-21041</a>: <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.parents" title="pathlib.PurePath.parents"><code class="xref py py-attr docutils literal notranslate"><span class="pre">pathlib.PurePath.parents</span></code></a> now supports negative
indexing. Patch contributed by Yaroslav Pankovych.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41332">bpo-41332</a>: Added missing connect_accepted_socket() method to
<code class="docutils literal notranslate"><span class="pre">asyncio.AbstractEventLoop</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12800">bpo-12800</a>: Extracting a symlink from a tarball should succeed and
overwrite the symlink if it already exists. The fix is to remove the
existing file or symlink before extraction. Based on patch by Chris AtLee,
Jeffrey Kintscher, and Senthil Kumaran.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40968">bpo-40968</a>: <a class="reference internal" href="../library/urllib.request.html#module-urllib.request" title="urllib.request: Extensible library for opening URLs."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.request</span></code></a> and <a class="reference internal" href="../library/http.client.html#module-http.client" title="http.client: HTTP and HTTPS protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.client</span></code></a> now send
<code class="docutils literal notranslate"><span class="pre">http/1.1</span></code> ALPN extension during TLS handshake when no custom context is
supplied.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41001">bpo-41001</a>: Add <a class="reference internal" href="../library/os.html#os.eventfd" title="os.eventfd"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.eventfd()</span></code></a> to provide a low level interface for
Linux’s event notification file descriptor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40816">bpo-40816</a>: Add AsyncContextDecorator to contextlib to support async
context manager as a decorator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40550">bpo-40550</a>: Fix time-of-check/time-of-action issue in
subprocess.Popen.send_signal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39411">bpo-39411</a>: Add an <code class="docutils literal notranslate"><span class="pre">is_async</span></code> identifier to <a class="reference internal" href="../library/pyclbr.html#module-pyclbr" title="pyclbr: Supports information extraction for a Python module browser."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pyclbr</span></code></a>’s <code class="docutils literal notranslate"><span class="pre">Function</span></code>
objects. Patch by Batuhan Taskaya</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35498">bpo-35498</a>: Add slice support to <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.parents" title="pathlib.PurePath.parents"><code class="xref py py-attr docutils literal notranslate"><span class="pre">pathlib.PurePath.parents</span></code></a>.</p></li>
</ul>
</section>
<section id="id380">
<h3>Documentation<a class="headerlink" href="#id380" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42238">bpo-42238</a>: Tentative to deprecate <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">suspicious</span></code> by first removing it
from the CI and documentation builds, but keeping it around for manual
uses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42153">bpo-42153</a>: Fix the URL for the IMAP protocol documents.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41028">bpo-41028</a>: Language and version switchers, previously maintained in every
cpython branches, are now handled by docsbuild-script.</p></li>
</ul>
</section>
<section id="id381">
<h3>Tests<a class="headerlink" href="#id381" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41473">bpo-41473</a>: Re-enable test_gdb on gdb 9.2 and newer:
<a class="reference external" href="https://bugzilla.redhat.com/show_bug.cgi?id=1866884">https://bugzilla.redhat.com/show_bug.cgi?id=1866884</a> bug is fixed in gdb
10.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42553">bpo-42553</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_asyncio.test_call_later()</span></code> race condition: don’t
measure asyncio performance in the <code class="docutils literal notranslate"><span class="pre">call_later()</span></code> unit test. The test
failed randomly on the CI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Fix test_netrc on VxWorks: create temporary directories using
temp_cwd().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: skip test_getaddrinfo_ipv6_scopeid_symbolic and
test_getnameinfo_ipv6_scopeid_symbolic on VxWorks</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: skip test_test of test_mailcap on VxWorks</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: add shell requirement for test_pipes</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: skip some tests related to fifo on VxWorks</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Fix test_doctest.py failures for VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40754">bpo-40754</a>: Include <code class="docutils literal notranslate"><span class="pre">_testinternalcapi</span></code> module in Windows installer for
test suite</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41561">bpo-41561</a>: test_ssl: skip test_min_max_version_mismatch when TLS 1.0 is
not available</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Fix os module failures for VxWorks RTOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Fix fifo test cases for VxWorks RTOS.</p></li>
</ul>
</section>
<section id="id382">
<h3>Build<a class="headerlink" href="#id382" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: remove libnet dependency from detect_socket() for VxWorks</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42398">bpo-42398</a>: Fix a race condition in “make regen-all” when make -jN option
is used to run jobs in parallel. The clinic.py script now only use atomic
write to write files. Moveover, generated files are now left unchanged if
the content does not change, to not change the file modification time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41617">bpo-41617</a>: Fix building <code class="docutils literal notranslate"><span class="pre">pycore_bitutils.h</span></code> internal header on old clang
version without <code class="docutils literal notranslate"><span class="pre">__builtin_bswap16()</span></code> (ex: Xcode 4.6.3 on Mac OS X
10.7). Patch by Joshua Root and Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38823">bpo-38823</a>: It is no longer possible to build the <code class="docutils literal notranslate"><span class="pre">_ctypes</span></code> extension
module without <code class="xref c c-type docutils literal notranslate"><span class="pre">wchar_t</span></code> type: remove <code class="docutils literal notranslate"><span class="pre">CTYPES_UNICODE</span></code> macro.
Anyway, the <code class="xref c c-type docutils literal notranslate"><span class="pre">wchar_t</span></code> type is required to build Python. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42087">bpo-42087</a>: Support was removed for AIX 5.3 and below. See <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40680">bpo-40680</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40998">bpo-40998</a>: Addressed three compiler warnings found by undefined behavior
sanitizer (ubsan).</p></li>
</ul>
</section>
<section id="id383">
<h3>Windows<a class="headerlink" href="#id383" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42120">bpo-42120</a>: Remove macro definition of <code class="docutils literal notranslate"><span class="pre">copysign</span></code> (to <code class="docutils literal notranslate"><span class="pre">_copysign</span></code>) in
headers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38506">bpo-38506</a>: The Windows launcher now properly handles Python 3.10 when
listing installed Python versions.</p></li>
</ul>
</section>
<section id="id384">
<h3>macOS<a class="headerlink" href="#id384" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42504">bpo-42504</a>: Fix build on macOS Big Sur when MACOSX_DEPLOYMENT_TARGET=11</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41116">bpo-41116</a>: Ensure distutils.unixxcompiler.find_library_file can find
system provided libraries on macOS 11.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41100">bpo-41100</a>: Add support for macOS 11 and Apple Silicon systems.</p>
<p>It is now possible to build “Universal 2” binaries using
“–enable-universalsdk –with-universal-archs=universal2”.</p>
<p>Binaries build on later macOS versions can be deployed back to older
versions (tested up to macOS 10.9), when using the correct deployment
target. This is tested using Xcode 11 and later.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42232">bpo-42232</a>: Added Darwin specific madvise options to mmap module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38443">bpo-38443</a>: The <code class="docutils literal notranslate"><span class="pre">--enable-universalsdk</span></code> and <code class="docutils literal notranslate"><span class="pre">--with-universal-archs</span></code>
options for the configure script now check that the specified
architectures can be used.</p></li>
</ul>
</section>
<section id="id385">
<h3>IDLE<a class="headerlink" href="#id385" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42508">bpo-42508</a>: Keep IDLE running on macOS. Remove obsolete workaround that
prevented running files with shortcuts when using new universal2
installers built on macOS 11.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42426">bpo-42426</a>: Fix reporting offset of the RE error in searchengine.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42415">bpo-42415</a>: Get docstrings for IDLE calltips more often by using
inspect.getdoc.</p></li>
</ul>
</section>
<section id="id386">
<h3>Tools/Demos<a class="headerlink" href="#id386" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42212">bpo-42212</a>: The smelly.py script now also checks the Python dynamic library
and extension modules, not only the Python static library. Make also the
script more verbose: explain what it does.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36310">bpo-36310</a>: Allow <code class="file docutils literal notranslate"><span class="pre">Tools/i18n/pygettext.py</span></code> to detect calls to
<code class="docutils literal notranslate"><span class="pre">gettext</span></code> in f-strings.</p></li>
</ul>
</section>
<section id="id387">
<h3>C API<a class="headerlink" href="#id387" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42423">bpo-42423</a>: The <a class="reference internal" href="../c-api/type.html#c.PyType_FromSpecWithBases" title="PyType_FromSpecWithBases"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpecWithBases()</span></code></a> and
<a class="reference internal" href="../c-api/type.html#c.PyType_FromModuleAndSpec" title="PyType_FromModuleAndSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromModuleAndSpec()</span></code></a> functions now accept a single class as
the <em>bases</em> argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/select.html#module-select" title="select: Wait for I/O completion on multiple streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">select</span></code></a> extension module to multiphase
initialization (<span class="target" id="index-252"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _posixsubprocess extension module to multiphase
initialization (<span class="target" id="index-253"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _posixshmem extension module to multiphase
initialization (<span class="target" id="index-254"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _struct extension module to multiphase initialization
(<span class="target" id="index-255"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <code class="xref py py-mod docutils literal notranslate"><span class="pre">spwd</span></code> extension module to multiphase
initialization (<span class="target" id="index-256"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/gc.html#module-gc" title="gc: Interface to the cycle-detecting garbage collector."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gc</span></code></a> extension module to multiphase initialization
(<span class="target" id="index-257"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _queue extension module to multiphase initialization
(<span class="target" id="index-258"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39573">bpo-39573</a>: Convert <a class="reference internal" href="../c-api/structures.html#c.Py_TYPE" title="Py_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_TYPE()</span></code></a> and <a class="reference internal" href="../c-api/structures.html#c.Py_SIZE" title="Py_SIZE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SIZE()</span></code></a> back to macros
to allow using them as an l-value. Many third party C extension modules
rely on the ability of using Py_TYPE() and Py_SIZE() to set an object type
and size: <code class="docutils literal notranslate"><span class="pre">Py_TYPE(obj)</span> <span class="pre">=</span> <span class="pre">type;</span></code> and <code class="docutils literal notranslate"><span class="pre">Py_SIZE(obj)</span> <span class="pre">=</span> <span class="pre">size;</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/symtable.html#module-symtable" title="symtable: Interface to the compiler's internal symbol tables."><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code></a> extension module to multiphase
initialization (<span class="target" id="index-259"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/grp.html#module-grp" title="grp: The group database (getgrnam() and friends). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">grp</span></code></a> and <a class="reference internal" href="../library/pwd.html#module-pwd" title="pwd: The password database (getpwnam() and friends). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pwd</span></code></a> extension modules to
multiphase initialization (<span class="target" id="index-260"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _random extension module to multiphase initialization
(<span class="target" id="index-261"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _hashlib extension module to multiphase initialization
(<span class="target" id="index-262"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41713">bpo-41713</a>: Removed the undocumented <code class="docutils literal notranslate"><span class="pre">PyOS_InitInterrupts()</span></code> function.
Initializing Python already implicitly installs signal handlers: see
<a class="reference internal" href="../c-api/init_config.html#c.PyConfig.install_signal_handlers" title="PyConfig.install_signal_handlers"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyConfig.install_signal_handlers</span></code></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: The <code class="docutils literal notranslate"><span class="pre">Py_TRASHCAN_BEGIN</span></code> macro no longer accesses PyTypeObject
attributes, but now can get the condition by calling the new private
<code class="xref c c-func docutils literal notranslate"><span class="pre">_PyTrash_cond()</span></code> function which hides implementation details.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42260">bpo-42260</a>: <a class="reference internal" href="../c-api/init.html#c.Py_GetPath" title="Py_GetPath"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetPath()</span></code></a>, <a class="reference internal" href="../c-api/init.html#c.Py_GetPrefix" title="Py_GetPrefix"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetPrefix()</span></code></a>,
<a class="reference internal" href="../c-api/init.html#c.Py_GetExecPrefix" title="Py_GetExecPrefix"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetExecPrefix()</span></code></a>, <a class="reference internal" href="../c-api/init.html#c.Py_GetProgramFullPath" title="Py_GetProgramFullPath"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetProgramFullPath()</span></code></a>,
<a class="reference internal" href="../c-api/init.html#c.Py_GetPythonHome" title="Py_GetPythonHome"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetPythonHome()</span></code></a> and <a class="reference internal" href="../c-api/init.html#c.Py_GetProgramName" title="Py_GetProgramName"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetProgramName()</span></code></a> functions now
return <code class="docutils literal notranslate"><span class="pre">NULL</span></code> if called before <a class="reference internal" href="../c-api/init.html#c.Py_Initialize" title="Py_Initialize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Initialize()</span></code></a> (before Python is
initialized). Use the new <a class="reference internal" href="../c-api/init_config.html#init-config"><span class="std std-ref">Python Initialization Configuration API</span></a> to get the <a class="reference internal" href="../c-api/init_config.html#init-path-config"><span class="std std-ref">Python Path Configuration.</span></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42260">bpo-42260</a>: The <a class="reference internal" href="../c-api/init_config.html#c.PyConfig_Read" title="PyConfig_Read"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyConfig_Read()</span></code></a> function now only parses
<a class="reference internal" href="../c-api/init_config.html#c.PyConfig.argv" title="PyConfig.argv"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyConfig.argv</span></code></a> arguments once: <a class="reference internal" href="../c-api/init_config.html#c.PyConfig.parse_argv" title="PyConfig.parse_argv"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyConfig.parse_argv</span></code></a>
is set to <code class="docutils literal notranslate"><span class="pre">2</span></code> after arguments are parsed. Since Python arguments are
strippped from <a class="reference internal" href="../c-api/init_config.html#c.PyConfig.argv" title="PyConfig.argv"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyConfig.argv</span></code></a>, parsing arguments twice would
parse the application options as Python options.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42262">bpo-42262</a>: Added <a class="reference internal" href="../c-api/refcounting.html#c.Py_NewRef" title="Py_NewRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_NewRef()</span></code></a> and <a class="reference internal" href="../c-api/refcounting.html#c.Py_XNewRef" title="Py_XNewRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_XNewRef()</span></code></a> functions to
increment the reference count of an object and return the object. Patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42260">bpo-42260</a>: When <a class="reference internal" href="../c-api/init.html#c.Py_Initialize" title="Py_Initialize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Initialize()</span></code></a> is called twice, the second call
now updates more <a class="reference internal" href="../library/sys.html#module-sys" title="sys: Access system-specific parameters and functions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sys</span></code></a> attributes for the configuration, rather than
only <a class="reference internal" href="../library/sys.html#sys.argv" title="sys.argv"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.argv</span></code></a>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41832">bpo-41832</a>: The <a class="reference internal" href="../c-api/type.html#c.PyType_FromModuleAndSpec" title="PyType_FromModuleAndSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromModuleAndSpec()</span></code></a> function now accepts
NULL <code class="docutils literal notranslate"><span class="pre">tp_doc</span></code> slot.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Added <a class="reference internal" href="../c-api/module.html#c.PyModule_AddObjectRef" title="PyModule_AddObjectRef"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_AddObjectRef()</span></code></a> function: similar to
<a class="reference internal" href="../c-api/module.html#c.PyModule_AddObject" title="PyModule_AddObject"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_AddObject()</span></code></a> but don’t steal a reference to the value on
success. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42171">bpo-42171</a>: The <a class="reference internal" href="../c-api/structures.html#c.METH_FASTCALL" title="METH_FASTCALL"><code class="xref c c-macro docutils literal notranslate"><span class="pre">METH_FASTCALL</span></code></a> calling convention is added to the
limited API. The functions <a class="reference internal" href="../c-api/module.html#c.PyModule_AddType" title="PyModule_AddType"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_AddType()</span></code></a>,
<a class="reference internal" href="../c-api/type.html#c.PyType_FromModuleAndSpec" title="PyType_FromModuleAndSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromModuleAndSpec()</span></code></a>, <a class="reference internal" href="../c-api/type.html#c.PyType_GetModule" title="PyType_GetModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetModule()</span></code></a> and
<a class="reference internal" href="../c-api/type.html#c.PyType_GetModuleState" title="PyType_GetModuleState"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetModuleState()</span></code></a> are added to the limited API on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42085">bpo-42085</a>: Add dedicated entry to PyAsyncMethods for sending values</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41073">bpo-41073</a>: <a class="reference internal" href="../c-api/type.html#c.PyType_GetSlot" title="PyType_GetSlot"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetSlot()</span></code></a> can now accept static types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30459">bpo-30459</a>: <a class="reference internal" href="../c-api/list.html#c.PyList_SET_ITEM" title="PyList_SET_ITEM"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyList_SET_ITEM()</span></code></a>, <a class="reference internal" href="../c-api/tuple.html#c.PyTuple_SET_ITEM" title="PyTuple_SET_ITEM"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyTuple_SET_ITEM()</span></code></a> and
<a class="reference internal" href="../c-api/cell.html#c.PyCell_SET" title="PyCell_SET"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCell_SET()</span></code></a> macros can no longer be used as l-value or r-value.
For example, <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">=</span> <span class="pre">PyList_SET_ITEM(a,</span> <span class="pre">b,</span> <span class="pre">c)</span></code> and <code class="docutils literal notranslate"><span class="pre">PyList_SET_ITEM(a,</span> <span class="pre">b,</span>
<span class="pre">c)</span> <span class="pre">=</span> <span class="pre">x</span></code> now fail with a compiler error. It prevents bugs like <code class="docutils literal notranslate"><span class="pre">if</span>
<span class="pre">(PyList_SET_ITEM</span> <span class="pre">(a,</span> <span class="pre">b,</span> <span class="pre">c)</span> <span class="pre"><</span> <span class="pre">0)</span> <span class="pre">...</span></code> test. Patch by Zackery Spytz and
Victor Stinner.</p></li>
</ul>
</section>
</section>
<section id="python-3-10-0-alpha-2">
<h2>Python 3.10.0 alpha 2<a class="headerlink" href="#python-3-10-0-alpha-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2020-11-03</em></p>
<section id="id388">
<h3>Security<a class="headerlink" href="#id388" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42103">bpo-42103</a>: Prevented potential DoS attack via CPU and RAM exhaustion when
processing malformed Apple Property List files in binary format.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42051">bpo-42051</a>: The <a class="reference internal" href="../library/plistlib.html#module-plistlib" title="plistlib: Generate and parse Apple plist files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">plistlib</span></code></a> module no longer accepts entity
declarations in XML plist files to avoid XML vulnerabilities. This should
not affect users as entity declarations are not used in regular plist
files.</p></li>
</ul>
</section>
<section id="id389">
<h3>Core and Builtins<a class="headerlink" href="#id389" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42236">bpo-42236</a>: If the <code class="docutils literal notranslate"><span class="pre">nl_langinfo(CODESET)</span></code> function returns an empty
string, Python now uses UTF-8 as the filesystem encoding. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42218">bpo-42218</a>: Fixed a bug in the PEG parser that was causing crashes in debug
mode. Now errors are checked in left-recursive rules to avoid cases where
such errors do not get handled in time and appear as long-distance crashes
in other places.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42214">bpo-42214</a>: Fixed a possible crash in the PEG parser when checking for the
‘!=’ token in the <code class="docutils literal notranslate"><span class="pre">barry_as_flufl</span></code> rule. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42206">bpo-42206</a>: Propagate and raise the errors caused by
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyAST_Validate()</span></code> in the parser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41796">bpo-41796</a>: The <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> module internal state is now per interpreter.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42143">bpo-42143</a>: Fix handling of errors during creation of <code class="docutils literal notranslate"><span class="pre">PyFunctionObject</span></code>,
which resulted in operations on uninitialized memory. Patch by Yonatan
Goldschmidt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41659">bpo-41659</a>: Fix a bug in the parser, where a curly brace following a
<code class="docutils literal notranslate"><span class="pre">primary</span></code> didn’t fail immediately. This led to invalid expressions like
<code class="docutils literal notranslate"><span class="pre">a</span> <span class="pre">{b}</span></code> to throw a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> with a wrong offset, or invalid
expressions ending with a curly brace like <code class="docutils literal notranslate"><span class="pre">a</span> <span class="pre">{</span></code> to not fail immediately
in the REPL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42150">bpo-42150</a>: Fix possible buffer overflow in the new parser when checking
for continuation lines. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42123">bpo-42123</a>: Run the parser two times. On the first run, disable all the
rules that only generate better error messages to gain performance. If
there’s a parse failure, run the parser a second time with those enabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42093">bpo-42093</a>: The <code class="docutils literal notranslate"><span class="pre">LOAD_ATTR</span></code> instruction now uses new “per opcode cache”
mechanism and it is about 36% faster now. Patch by Pablo Galindo and Yury
Selivanov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42030">bpo-42030</a>: Support for the legacy AIX-specific shared library loading
support has been removed. All versions of AIX since 4.3 have supported and
defaulted to using the common Unix mechanism instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41984">bpo-41984</a>: The garbage collector now tracks all user-defined classes.
Patch by Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41993">bpo-41993</a>: Fixed potential issues with removing not completely initialized
module from <code class="docutils literal notranslate"><span class="pre">sys.modules</span></code> when import fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41979">bpo-41979</a>: Star-unpacking is now allowed for with item’s targets in the
PEG parser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41974">bpo-41974</a>: Removed special methods <code class="docutils literal notranslate"><span class="pre">__int__</span></code>, <code class="docutils literal notranslate"><span class="pre">__float__</span></code>,
<code class="docutils literal notranslate"><span class="pre">__floordiv__</span></code>, <code class="docutils literal notranslate"><span class="pre">__mod__</span></code>, <code class="docutils literal notranslate"><span class="pre">__divmod__</span></code>, <code class="docutils literal notranslate"><span class="pre">__rfloordiv__</span></code>,
<code class="docutils literal notranslate"><span class="pre">__rmod__</span></code> and <code class="docutils literal notranslate"><span class="pre">__rdivmod__</span></code> of the <a class="reference internal" href="../library/functions.html#complex" title="complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">complex</span></code></a> class. They
always raised a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41902">bpo-41902</a>: Micro optimization when compute
<a class="reference internal" href="../c-api/typeobj.html#c.PySequenceMethods.sq_item" title="PySequenceMethods.sq_item"><code class="xref c c-member docutils literal notranslate"><span class="pre">sq_item</span></code></a> and
<a class="reference internal" href="../c-api/typeobj.html#c.PyMappingMethods.mp_subscript" title="PyMappingMethods.mp_subscript"><code class="xref c c-member docutils literal notranslate"><span class="pre">mp_subscript</span></code></a> of <a class="reference internal" href="../library/stdtypes.html#range" title="range"><code class="xref py py-class docutils literal notranslate"><span class="pre">range</span></code></a>. Patch by
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41894">bpo-41894</a>: When loading a native module and a load failure occurs, prevent
a possible UnicodeDecodeError when not running in a UTF-8 locale by
decoding the load error message using the current locale’s encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41902">bpo-41902</a>: Micro optimization for range.index if step is 1. Patch by
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41435">bpo-41435</a>: Add <code class="docutils literal notranslate"><span class="pre">sys._current_exceptions()</span></code> function to retrieve a
dictionary mapping each thread’s identifier to the topmost exception
currently active in that thread at the time the function is called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38605">bpo-38605</a>: Enable <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">annotations</span></code> (<span class="target" id="index-263"></span><a class="pep reference external" href="https://peps.python.org/pep-0563/"><strong>PEP 563</strong></a>) by
default. The values found in <a class="reference internal" href="../reference/datamodel.html#object.__annotations__" title="object.__annotations__"><code class="xref py py-attr docutils literal notranslate"><span class="pre">__annotations__</span></code></a> dicts are now
strings, for example <code class="docutils literal notranslate"><span class="pre">{"x":</span> <span class="pre">"int"}</span></code> instead of <code class="docutils literal notranslate"><span class="pre">{"x":</span> <span class="pre">int}</span></code>.</p></li>
</ul>
</section>
<section id="id390">
<h3>Library<a class="headerlink" href="#id390" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35455">bpo-35455</a>: On Solaris, <a class="reference internal" href="../library/time.html#time.thread_time" title="time.thread_time"><code class="xref py py-func docutils literal notranslate"><span class="pre">thread_time()</span></code></a> is now implemented with
<code class="docutils literal notranslate"><span class="pre">gethrvtime()</span></code> because <code class="docutils literal notranslate"><span class="pre">clock_gettime(CLOCK_THREAD_CPUTIME_ID)</span></code> is not
always available. Patch by Jakub Kulik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42233">bpo-42233</a>: The <a class="reference internal" href="../library/functions.html#repr" title="repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">repr()</span></code></a> of <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> types containing
<a class="reference internal" href="../library/stdtypes.html#types-genericalias"><span class="std std-ref">Generic Alias Types</span></a> previously did not show
the parameterized types in the <code class="docutils literal notranslate"><span class="pre">GenericAlias</span></code>. They have now been
changed to do so.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29566">bpo-29566</a>: <code class="docutils literal notranslate"><span class="pre">binhex.binhex()</span></code> consistently writes macOS 9 line endings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26789">bpo-26789</a>: The <a class="reference internal" href="../library/logging.handlers.html#logging.FileHandler" title="logging.FileHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.FileHandler</span></code></a> class now keeps a reference to
the builtin <a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a> function to be able to open or reopen the file
during Python finalization. Fix errors like: <code class="docutils literal notranslate"><span class="pre">NameError:</span> <span class="pre">name</span> <span class="pre">'open'</span> <span class="pre">is</span>
<span class="pre">not</span> <span class="pre">defined</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42157">bpo-42157</a>: Removed the <code class="docutils literal notranslate"><span class="pre">unicodedata.ucnhash_CAPI</span></code> attribute which was an
internal PyCapsule object. The related private <code class="docutils literal notranslate"><span class="pre">_PyUnicode_Name_CAPI</span></code>
structure was moved to the internal C API. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42157">bpo-42157</a>: Convert the <a class="reference internal" href="../library/unicodedata.html#module-unicodedata" title="unicodedata: Access the Unicode Database."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unicodedata</span></code></a> extension module to the
multiphase initialization API (<span class="target" id="index-264"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>) and convert the
<code class="docutils literal notranslate"><span class="pre">unicodedata.UCD</span></code> static type to a heap type. Patch by Mohamed Koubaa
and Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42146">bpo-42146</a>: Fix memory leak in <a class="reference internal" href="../library/subprocess.html#subprocess.Popen" title="subprocess.Popen"><code class="xref py py-func docutils literal notranslate"><span class="pre">subprocess.Popen()</span></code></a> in case an uid
(gid) specified in <code class="docutils literal notranslate"><span class="pre">user</span></code> (<code class="docutils literal notranslate"><span class="pre">group</span></code>, <code class="docutils literal notranslate"><span class="pre">extra_groups</span></code>) overflows
<code class="docutils literal notranslate"><span class="pre">uid_t</span></code> (<code class="docutils literal notranslate"><span class="pre">gid_t</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42103">bpo-42103</a>: <a class="reference internal" href="../library/plistlib.html#plistlib.InvalidFileException" title="plistlib.InvalidFileException"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InvalidFileException</span></code></a> and <a class="reference internal" href="../library/exceptions.html#RecursionError" title="RecursionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RecursionError</span></code></a>
are now the only errors caused by loading malformed binary Plist file
(previously ValueError and TypeError could be raised in some specific
cases).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41490">bpo-41490</a>: In <code class="docutils literal notranslate"><span class="pre">importlib.resources</span></code>, <code class="docutils literal notranslate"><span class="pre">.path</span></code> method is more aggressive
about releasing handles to zipfile objects early, enabling use-cases like
certifi to leave the context open but delete the underlying zip file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41052">bpo-41052</a>: Pickling heap types implemented in C with protocols 0 and 1
raises now an error instead of producing incorrect data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42089">bpo-42089</a>: In <code class="docutils literal notranslate"><span class="pre">importlib.metadata.PackageNotFoundError</span></code>, make reference
to the package metadata being missing to improve the user experience.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41491">bpo-41491</a>: plistlib: fix parsing XML plists with hexadecimal integer
values</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42065">bpo-42065</a>: Fix an incorrectly formatted error from
<code class="xref py py-meth docutils literal notranslate"><span class="pre">_codecs.charmap_decode()</span></code> when called with a mapped value outside
the range of valid Unicode code points. PR by Max Bernstein.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41966">bpo-41966</a>: Fix pickling pure Python <a class="reference internal" href="../library/datetime.html#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.time</span></code></a> subclasses.
Patch by Dean Inwood.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19270">bpo-19270</a>: <a class="reference internal" href="../library/sched.html#sched.scheduler.cancel" title="sched.scheduler.cancel"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sched.scheduler.cancel()</span></code></a> will now cancel the correct
event, if two events with same priority are scheduled for the same time.
Patch by Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28660">bpo-28660</a>: <a class="reference internal" href="../library/textwrap.html#textwrap.wrap" title="textwrap.wrap"><code class="xref py py-func docutils literal notranslate"><span class="pre">textwrap.wrap()</span></code></a> now attempts to break long words after
hyphens when <code class="docutils literal notranslate"><span class="pre">break_long_words=True</span></code> and <code class="docutils literal notranslate"><span class="pre">break_on_hyphens=True</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35823">bpo-35823</a>: Use <code class="docutils literal notranslate"><span class="pre">vfork()</span></code> instead of <code class="docutils literal notranslate"><span class="pre">fork()</span></code> for
<a class="reference internal" href="../library/subprocess.html#subprocess.Popen" title="subprocess.Popen"><code class="xref py py-func docutils literal notranslate"><span class="pre">subprocess.Popen()</span></code></a> on Linux to improve performance in cases where it
is deemed safe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42043">bpo-42043</a>: Add support for <code class="docutils literal notranslate"><span class="pre">zipfile.Path</span></code> inheritance.
<code class="docutils literal notranslate"><span class="pre">zipfile.Path.is_file()</span></code> now returns False for non-existent names.
<code class="docutils literal notranslate"><span class="pre">zipfile.Path</span></code> objects now expose a <code class="docutils literal notranslate"><span class="pre">.filename</span></code> attribute and rely on
that to resolve <code class="docutils literal notranslate"><span class="pre">.name</span></code> and <code class="docutils literal notranslate"><span class="pre">.parent</span></code> when the <code class="docutils literal notranslate"><span class="pre">Path</span></code> object is at
the root of the zipfile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42021">bpo-42021</a>: Fix possible ref leaks in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> module init.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39101">bpo-39101</a>: Fixed tests using IsolatedAsyncioTestCase from hanging on
BaseExceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41976">bpo-41976</a>: Fixed a bug that was causing <a class="reference internal" href="../library/ctypes.html#ctypes.util.find_library" title="ctypes.util.find_library"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.util.find_library()</span></code></a>
to return <code class="docutils literal notranslate"><span class="pre">None</span></code> when triying to locate a library in an environment when
gcc>=9 is available and <code class="docutils literal notranslate"><span class="pre">ldconfig</span></code> is not. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41943">bpo-41943</a>: Fix bug where TestCase.assertLogs doesn’t correctly filter
messages by level.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41923">bpo-41923</a>: Implement <span class="target" id="index-265"></span><a class="pep reference external" href="https://peps.python.org/pep-0613/"><strong>PEP 613</strong></a>, introducing <a class="reference internal" href="../library/typing.html#typing.TypeAlias" title="typing.TypeAlias"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.TypeAlias</span></code></a>
annotation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41905">bpo-41905</a>: A new function in abc: <em>update_abstractmethods</em> to re-calculate
an abstract class’s abstract status. In addition, <em>dataclass</em> has been
changed to call this function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23706">bpo-23706</a>: Added <em>newline</em> parameter to <code class="docutils literal notranslate"><span class="pre">pathlib.Path.write_text()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41876">bpo-41876</a>: Tkinter font class repr uses font name</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41831">bpo-41831</a>: <code class="docutils literal notranslate"><span class="pre">str()</span></code> for the <code class="docutils literal notranslate"><span class="pre">type</span></code> attribute of the <code class="docutils literal notranslate"><span class="pre">tkinter.Event</span></code>
object always returns now the numeric code returned by Tk instead of the
name of the event type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39337">bpo-39337</a>: <a class="reference internal" href="../library/codecs.html#encodings.normalize_encoding" title="encodings.normalize_encoding"><code class="xref py py-func docutils literal notranslate"><span class="pre">encodings.normalize_encoding()</span></code></a> now ignores non-ASCII
characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41747">bpo-41747</a>: Ensure all methods that generated from
<a class="reference internal" href="../library/dataclasses.html#dataclasses.dataclass" title="dataclasses.dataclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.dataclass()</span></code></a> objects now have the proper <code class="docutils literal notranslate"><span class="pre">__qualname__</span></code>
attribute referring to the class they belong to. Patch by Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30681">bpo-30681</a>: Handle exceptions caused by unparsable date headers when using
email “default” policy. Patch by Tim Bell, Georges Toth</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41586">bpo-41586</a>: Add F_SETPIPE_SZ and F_GETPIPE_SZ to fcntl module. Allow
setting pipesize on subprocess.Popen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41229">bpo-41229</a>: Add <code class="docutils literal notranslate"><span class="pre">contextlib.aclosing</span></code> for deterministic cleanup of async
generators which is analogous to <code class="docutils literal notranslate"><span class="pre">contextlib.closing</span></code> for non-async
generators. Patch by Joongi Kim and John Belmonte.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16396">bpo-16396</a>: Allow <code class="docutils literal notranslate"><span class="pre">ctypes.wintypes</span></code> to be imported on non-Windows
systems.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4356">bpo-4356</a>: Add a key function to the bisect module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40592">bpo-40592</a>: <a class="reference internal" href="../library/shutil.html#shutil.which" title="shutil.which"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.which()</span></code></a> now ignores empty entries in
<span class="target" id="index-266"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PATHEXT</span></code> instead of treating them as a match.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40492">bpo-40492</a>: Fix <code class="docutils literal notranslate"><span class="pre">--outfile</span></code> for <a class="reference internal" href="../library/profile.html#module-cProfile" title="cProfile"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cProfile</span></code></a> / <a class="reference internal" href="../library/profile.html#module-profile" title="profile: Python source profiler."><code class="xref py py-mod docutils literal notranslate"><span class="pre">profile</span></code></a> not
writing the output file in the original directory when the program being
profiled changes the working directory. PR by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34204">bpo-34204</a>: The <a class="reference internal" href="../library/shelve.html#module-shelve" title="shelve: Python object persistence."><code class="xref py py-mod docutils literal notranslate"><span class="pre">shelve</span></code></a> module now uses
<a class="reference internal" href="../library/pickle.html#pickle.DEFAULT_PROTOCOL" title="pickle.DEFAULT_PROTOCOL"><code class="xref py py-const docutils literal notranslate"><span class="pre">pickle.DEFAULT_PROTOCOL</span></code></a> by default instead of <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a>
protocol <code class="docutils literal notranslate"><span class="pre">3</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27321">bpo-27321</a>: Fixed KeyError exception when flattening an email to a string
attempts to replace a non-existent Content-Transfer-Encoding header.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38976">bpo-38976</a>: The <a class="reference internal" href="../library/http.cookiejar.html#module-http.cookiejar" title="http.cookiejar: Classes for automatic handling of HTTP cookies."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.cookiejar</span></code></a> module now supports the parsing of
cookies in CURL-style cookiejar files through MozillaCookieJar on all
platforms. Previously, such cookie entries would be silently ignored when
loading a cookiejar with such entries.</p>
<p>Additionally, the HTTP Only attribute is persisted in the object, and will
be correctly written to file if the MozillaCookieJar object is
subsequently dumped.</p>
</li>
</ul>
</section>
<section id="id391">
<h3>Documentation<a class="headerlink" href="#id391" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42061">bpo-42061</a>: Document __format__ functionality for IP addresses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41910">bpo-41910</a>: Document the default implementation of <code class="docutils literal notranslate"><span class="pre">object.__eq__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42010">bpo-42010</a>: Clarify that subscription expressions are also valid for
certain <a class="reference internal" href="../glossary.html#term-class"><span class="xref std std-term">classes</span></a> and <a class="reference internal" href="../glossary.html#term-type"><span class="xref std std-term">types</span></a> in the standard
library, and for user-defined classes and types if the classmethod
<code class="xref py py-meth docutils literal notranslate"><span class="pre">__class_getitem__()</span></code> is provided.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41805">bpo-41805</a>: Documented <a class="reference internal" href="../library/stdtypes.html#types-genericalias"><span class="std std-ref">generic alias type</span></a> and
<a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-data docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a>. Also added an entry in glossary for
<a class="reference internal" href="../glossary.html#term-generic-type"><span class="xref std std-term">generic types</span></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39693">bpo-39693</a>: Fix tarfile’s extractfile documentation</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39416">bpo-39416</a>: Document some restrictions on the default string
representations of numeric classes.</p></li>
</ul>
</section>
<section id="id392">
<h3>Tests<a class="headerlink" href="#id392" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41739">bpo-41739</a>: Fix test_logging.test_race_between_set_target_and_flush(): the
test now waits until all threads complete to avoid leaking running
threads.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41970">bpo-41970</a>: Avoid a test failure in <code class="docutils literal notranslate"><span class="pre">test_lib2to3</span></code> if the module has
already imported at the time the test executes. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41944">bpo-41944</a>: Tests for CJK codecs no longer call <code class="docutils literal notranslate"><span class="pre">eval()</span></code> on content
received via HTTP.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41306">bpo-41306</a>: Fixed a failure in <code class="docutils literal notranslate"><span class="pre">test_tk.test_widgets.ScaleTest</span></code> happening
when executing the test with Tk 8.6.10.</p></li>
</ul>
</section>
<section id="id393">
<h3>Build<a class="headerlink" href="#id393" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38980">bpo-38980</a>: Add <code class="docutils literal notranslate"><span class="pre">-fno-semantic-interposition</span></code> to both the compile and
link line when building with <code class="docutils literal notranslate"><span class="pre">--enable-optimizations</span></code>. Patch by Victor
Stinner and Pablo Galindo.</p></li>
</ul>
</section>
<section id="id394">
<h3>Windows<a class="headerlink" href="#id394" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38439">bpo-38439</a>: Updates the icons for IDLE in the Windows Store package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38252">bpo-38252</a>: Use 8-byte step to detect ASCII sequence in 64-bit Windows
build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39107">bpo-39107</a>: Update Tcl and Tk to 8.6.10 in Windows installer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41557">bpo-41557</a>: Update Windows installer to use SQLite 3.33.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38324">bpo-38324</a>: Avoid Unicode errors when accessing certain locale data on
Windows.</p></li>
</ul>
</section>
<section id="id395">
<h3>macOS<a class="headerlink" href="#id395" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41471">bpo-41471</a>: Ignore invalid prefix lengths in system proxy excludes.</p></li>
</ul>
</section>
<section id="id396">
<h3>IDLE<a class="headerlink" href="#id396" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33987">bpo-33987</a>: Mostly finish using ttk widgets, mainly for editor, settings,
and searches. Some patches by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40511">bpo-40511</a>: Typing opening and closing parentheses inside the parentheses
of a function call will no longer cause unnecessary “flashing” off and on
of an existing open call-tip, e.g. when typed in a string literal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38439">bpo-38439</a>: Add a 256×256 pixel IDLE icon to the Windows .ico file. Created
by Andrew Clover. Remove the low-color gif variations from the .ico file.</p></li>
</ul>
</section>
<section id="id397">
<h3>C API<a class="headerlink" href="#id397" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42157">bpo-42157</a>: The private <code class="docutils literal notranslate"><span class="pre">_PyUnicode_Name_CAPI</span></code> structure of the PyCapsule
API <code class="docutils literal notranslate"><span class="pre">unicodedata.ucnhash_CAPI</span></code> has been moved to the internal C API.
Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=42015">bpo-42015</a>: Fix potential crash in deallocating method objects when
dynamically allocated <a class="reference internal" href="../c-api/structures.html#c.PyMethodDef" title="PyMethodDef"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyMethodDef</span></code></a>’s lifetime is managed through
the <code class="docutils literal notranslate"><span class="pre">self</span></code> argument of a <a class="reference internal" href="../c-api/structures.html#c.PyCFunction" title="PyCFunction"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyCFunction</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40423">bpo-40423</a>: The <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module and <code class="docutils literal notranslate"><span class="pre">os.closerange</span></code> will now use
the <code class="docutils literal notranslate"><span class="pre">close_range(low,</span> <span class="pre">high,</span> <span class="pre">flags)</span></code> syscall when it is available for
more efficient closing of ranges of descriptors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41845">bpo-41845</a>: <a class="reference internal" href="../c-api/object.html#c.PyObject_GenericGetDict" title="PyObject_GenericGetDict"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GenericGetDict()</span></code></a> is available again in the
limited API when targeting 3.10 or later.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40422">bpo-40422</a>: Add <code class="docutils literal notranslate"><span class="pre">_Py_closerange</span></code> function to provide performant closing
of a range of file descriptors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41986">bpo-41986</a>: <code class="xref c c-data docutils literal notranslate"><span class="pre">Py_FileSystemDefaultEncodeErrors</span></code> and
<code class="xref c c-data docutils literal notranslate"><span class="pre">Py_UTF8Mode</span></code> are available again in limited API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41756">bpo-41756</a>: Add <code class="docutils literal notranslate"><span class="pre">PyIter_Send</span></code> function to allow sending value into
generator/coroutine/iterator without raising StopIteration exception to
signal return.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41784">bpo-41784</a>: Added <code class="docutils literal notranslate"><span class="pre">PyUnicode_AsUTF8AndSize</span></code> to the limited C API.</p></li>
</ul>
</section>
</section>
<section id="python-3-10-0-alpha-1">
<h2>Python 3.10.0 alpha 1<a class="headerlink" href="#python-3-10-0-alpha-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2020-10-05</em></p>
<section id="id398">
<h3>Security<a class="headerlink" href="#id398" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41304">bpo-41304</a>: Fixes <code class="docutils literal notranslate"><span class="pre">python3x._pth</span></code> being ignored on Windows, caused by the
fix for <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29778">bpo-29778</a> (<span class="target" id="index-267"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2020-15801"><strong>CVE 2020-15801</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41162">bpo-41162</a>: Audit hooks are now cleared later during finalization to avoid
missing events.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29778">bpo-29778</a>: Ensure <code class="file docutils literal notranslate"><span class="pre">python3.dll</span></code> is loaded from correct locations
when Python is embedded (<span class="target" id="index-268"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2020-15523"><strong>CVE 2020-15523</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41004">bpo-41004</a>: The __hash__() methods of ipaddress.IPv4Interface and
ipaddress.IPv6Interface incorrectly generated constant hash values of 32
and 128 respectively. This resulted in always causing hash collisions. The
fix uses hash() to generate hash values for the tuple of (address, mask
length, network address).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39603">bpo-39603</a>: Prevent http header injection by rejecting control characters
in http.client.putrequest(…).</p></li>
</ul>
</section>
<section id="id399">
<h3>Core and Builtins<a class="headerlink" href="#id399" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41909">bpo-41909</a>: Fixed stack overflow in <a class="reference internal" href="../library/functions.html#issubclass" title="issubclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">issubclass()</span></code></a> and
<a class="reference internal" href="../library/functions.html#isinstance" title="isinstance"><code class="xref py py-func docutils literal notranslate"><span class="pre">isinstance()</span></code></a> when getting the <code class="docutils literal notranslate"><span class="pre">__bases__</span></code> attribute leads to
infinite recursion.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41922">bpo-41922</a>: Speed up calls to <code class="docutils literal notranslate"><span class="pre">reversed()</span></code> by using the <span class="target" id="index-269"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41873">bpo-41873</a>: Calls to <code class="docutils literal notranslate"><span class="pre">float()</span></code> are now faster due to the <code class="docutils literal notranslate"><span class="pre">vectorcall</span></code>
calling convention. Patch by Dennis Sweeney.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41870">bpo-41870</a>: Speed up calls to <code class="docutils literal notranslate"><span class="pre">bool()</span></code> by using the <span class="target" id="index-270"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_bisect</span></code> module to the multi-phase
initialization API (<span class="target" id="index-271"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39934">bpo-39934</a>: Correctly count control blocks in ‘except’ in compiler. Ensures
that a syntax error, rather a fatal error, occurs for deeply nested, named
exception handlers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41780">bpo-41780</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">__dir__()</span></code> of <a class="reference internal" href="../library/types.html#types.GenericAlias" title="types.GenericAlias"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.GenericAlias</span></code></a>. Patch by
Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_lsprof</span></code> extension module to multi-phase
initialization (<span class="target" id="index-272"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <a class="reference internal" href="../library/cmath.html#module-cmath" title="cmath: Mathematical functions for complex numbers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">cmath</span></code></a> extension module to multi-phase
initialization (<span class="target" id="index-273"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_scproxy</span></code> extension module to multi-phase
initialization (<span class="target" id="index-274"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <a class="reference internal" href="../library/termios.html#module-termios" title="termios: POSIX style tty control. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">termios</span></code></a> extension module to multi-phase
initialization (<span class="target" id="index-275"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Convert the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_sha256</span></code> extension module types to heap
types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41690">bpo-41690</a>: Fix a possible stack overflow in the parser when parsing
functions and classes with a huge amount of arguments. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_overlapped</span></code> extension module to multi-phase
initialization (<span class="target" id="index-276"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_curses_panel</span></code> extension module to
multi-phase initialization (<span class="target" id="index-277"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_opcode</span></code> extension module to multi-phase
initialization (<span class="target" id="index-278"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41681">bpo-41681</a>: Fixes the wrong error description in the error raised by using
2 <code class="docutils literal notranslate"><span class="pre">,</span></code> in format string in f-string and <a class="reference internal" href="../library/stdtypes.html#str.format" title="str.format"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.format()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41675">bpo-41675</a>: The implementation of <a class="reference internal" href="../library/signal.html#signal.siginterrupt" title="signal.siginterrupt"><code class="xref py py-func docutils literal notranslate"><span class="pre">signal.siginterrupt()</span></code></a> now uses
<code class="xref c c-func docutils literal notranslate"><span class="pre">sigaction()</span></code> (if it is available in the system) instead of the
deprecated <code class="xref c c-func docutils literal notranslate"><span class="pre">siginterrupt()</span></code>. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41670">bpo-41670</a>: Prevent line trace being skipped on platforms not compiled with
<code class="docutils literal notranslate"><span class="pre">USE_COMPUTED_GOTOS</span></code>. Fixes issue where some lines nested within a
try-except block were not being traced on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41654">bpo-41654</a>: Fix a crash that occurred when destroying subclasses of
<a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-class docutils literal notranslate"><span class="pre">MemoryError</span></code></a>. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <a class="reference internal" href="../library/zlib.html#module-zlib" title="zlib: Low-level interface to compression and decompression routines compatible with gzip."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zlib</span></code></a> extension module to multi-phase
initialization (<span class="target" id="index-279"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41631">bpo-41631</a>: The <code class="docutils literal notranslate"><span class="pre">_ast</span></code> module uses again a global state. Using a module
state per module instance is causing subtle practical problems. For
example, the Mercurial project replaces the <code class="docutils literal notranslate"><span class="pre">__import__()</span></code> function to
implement lazy import, whereas Python expected that <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">_ast</span></code> always
return a fully initialized <code class="docutils literal notranslate"><span class="pre">_ast</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40077">bpo-40077</a>: Convert <code class="xref py py-mod docutils literal notranslate"><span class="pre">_operator</span></code> to use <a class="reference internal" href="../c-api/type.html#c.PyType_FromSpec" title="PyType_FromSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpec()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1653741">bpo-1653741</a>: Port <code class="xref py py-mod docutils literal notranslate"><span class="pre">_sha3</span></code> to multi-phase init. Convert static types
to heap types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_blake2</span></code> extension module to the multi-phase
initialization API (<span class="target" id="index-280"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41533">bpo-41533</a>: Free the stack allocated in <code class="docutils literal notranslate"><span class="pre">va_build_stack</span></code> if
<code class="docutils literal notranslate"><span class="pre">do_mkstack</span></code> fails and the stack is not a <code class="docutils literal notranslate"><span class="pre">small_stack</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41531">bpo-41531</a>: Fix a bug that was dropping keys when compiling dict literals
with more than 0xFFFF elements. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41525">bpo-41525</a>: The output of <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">--help</span></code> contains now only ASCII
characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="xref py py-mod docutils literal notranslate"><span class="pre">_sha1</span></code>, <code class="xref py py-mod docutils literal notranslate"><span class="pre">_sha512</span></code>, and <code class="xref py py-mod docutils literal notranslate"><span class="pre">_md5</span></code>
extension modules to multi-phase initialization API (<span class="target" id="index-281"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41431">bpo-41431</a>: Optimize <code class="docutils literal notranslate"><span class="pre">dict_merge()</span></code> for copying dict (e.g. <code class="docutils literal notranslate"><span class="pre">dict(d)</span></code>
and <code class="docutils literal notranslate"><span class="pre">{}.update(d)</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41428">bpo-41428</a>: Implement PEP 604. This supports (int | str) etc. in place of
Union[str, int].</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41340">bpo-41340</a>: Removed fallback implementation for <code class="docutils literal notranslate"><span class="pre">strdup</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38156">bpo-38156</a>: Handle interrupts that come after EOF correctly in
<code class="docutils literal notranslate"><span class="pre">PyOS_StdioReadline</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41342">bpo-41342</a>: <a class="reference internal" href="../library/functions.html#round" title="round"><code class="xref py py-func docutils literal notranslate"><span class="pre">round()</span></code></a> with integer argument is now faster (9–60%).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41334">bpo-41334</a>: Constructors <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-func docutils literal notranslate"><span class="pre">str()</span></code></a>, <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">bytes()</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-func docutils literal notranslate"><span class="pre">bytearray()</span></code></a>
are now faster (around 30–40% for small objects).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41295">bpo-41295</a>: Resolve a regression in CPython 3.8.4 where defining
“__setattr__” in a multi-inheritance setup and calling up the hierarchy
chain could fail if builtins/extension types were involved in the base
types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41323">bpo-41323</a>: Bytecode optimizations are performed directly on the control
flow graph. This will result in slightly more compact code objects in some
circumstances.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41247">bpo-41247</a>: Always cache the running loop holder when running
<code class="docutils literal notranslate"><span class="pre">asyncio.set_running_loop</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41252">bpo-41252</a>: Fix incorrect refcounting in _ssl.c’s
<code class="docutils literal notranslate"><span class="pre">_servername_callback()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> to multi-phase initialization</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <code class="xref py py-mod docutils literal notranslate"><span class="pre">winapi</span></code> to multiphase initialization</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41215">bpo-41215</a>: Use non-NULL default values in the PEG parser keyword list to
overcome a bug that was preventing Python from being properly compiled
when using the XLC compiler. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41218">bpo-41218</a>: Python 3.8.3 had a regression where compiling with
ast.PyCF_ALLOW_TOP_LEVEL_AWAIT would aggressively mark list comprehension
with CO_COROUTINE. Now only list comprehension making use of async/await
will tagged as so.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/faulthandler.html#module-faulthandler" title="faulthandler: Dump the Python traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">faulthandler</span></code></a> to multiphase initialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <code class="xref py py-mod docutils literal notranslate"><span class="pre">sha256</span></code> to multiphase initialization</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41175">bpo-41175</a>: Guard against a NULL pointer dereference within bytearrayobject
triggered by the <code class="docutils literal notranslate"><span class="pre">bytearray()</span> <span class="pre">+</span> <span class="pre">bytearray()</span></code> operation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41100">bpo-41100</a>: add arm64 to the allowable Mac OS arches in mpdecimal.h</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41094">bpo-41094</a>: Fix decoding errors with audit when open files with non-ASCII
names on non-UTF-8 locale.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39960">bpo-39960</a>: The “hackcheck” that prevents sneaking around a type’s
__setattr__() by calling the superclass method was rewritten to allow C
implemented heap types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41084">bpo-41084</a>: Prefix the error message with ‘f-string: ‘, when parsing an
f-string expression which throws a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40521">bpo-40521</a>: Empty frozensets are no longer singletons.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41076">bpo-41076</a>: Pre-feed the parser with the location of the f-string
expression, not the f-string itself, which allows us to skip the shifting
of the AST node locations after the parsing is completed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41056">bpo-41056</a>: Fixes a reference to deallocated stack space during startup
when constructing sys.path involving a relative symlink when code was
supplied via -c. (discovered via Coverity)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41061">bpo-41061</a>: Fix incorrect expressions and asserts in hashtable code and
tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41052">bpo-41052</a>: Opt out serialization/deserialization for _random.Random</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40939">bpo-40939</a>: Rename <code class="docutils literal notranslate"><span class="pre">PyPegen*</span></code> functions to <code class="docutils literal notranslate"><span class="pre">PyParser*</span></code>, so that we can
remove the old set of <code class="docutils literal notranslate"><span class="pre">PyParser*</span></code> functions that were using the old
parser, but keep everything backwards-compatible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35975">bpo-35975</a>: Stefan Behnel reported that cf_feature_version is used even
when PyCF_ONLY_AST is not set. This is against the intention and against
the documented behavior, so it’s been fixed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40939">bpo-40939</a>: Remove the remaining files from the old parser and the
<code class="xref py py-mod docutils literal notranslate"><span class="pre">symbol</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40077">bpo-40077</a>: Convert <code class="xref py py-mod docutils literal notranslate"><span class="pre">_bz2</span></code> to use <a class="reference internal" href="../c-api/type.html#c.PyType_FromSpec" title="PyType_FromSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpec()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41006">bpo-41006</a>: The <code class="docutils literal notranslate"><span class="pre">encodings.latin_1</span></code> module is no longer imported at
startup. Now it is only imported when it is the filesystem encoding or the
stdio encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40636">bpo-40636</a>: <a class="reference internal" href="../library/functions.html#zip" title="zip"><code class="xref py py-func docutils literal notranslate"><span class="pre">zip()</span></code></a> now supports <span class="target" id="index-282"></span><a class="pep reference external" href="https://peps.python.org/pep-0618/"><strong>PEP 618</strong></a>’s <code class="docutils literal notranslate"><span class="pre">strict</span></code> parameter,
which raises a <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> if the arguments are exhausted at
different lengths. Patch by Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <code class="xref py py-mod docutils literal notranslate"><span class="pre">_gdbm</span></code> to multiphase initialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40985">bpo-40985</a>: Fix a bug that caused the <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> text to be empty
when a file ends with a line ending in a line continuation character (i.e.
backslash). The error text should contain the text of the last line.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40958">bpo-40958</a>: Fix a possible buffer overflow in the PEG parser when gathering
information for emitting syntax errors. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <code class="xref py py-mod docutils literal notranslate"><span class="pre">_dbm</span></code> to multiphase initialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40957">bpo-40957</a>: Fix refleak in _Py_fopen_obj() when PySys_Audit() fails</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40950">bpo-40950</a>: Add a state to the <code class="xref py py-mod docutils literal notranslate"><span class="pre">nis</span></code> module (<span class="target" id="index-283"></span><a class="pep reference external" href="https://peps.python.org/pep-3121/"><strong>PEP 3121</strong></a>) and apply
the multiphase initialization. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40947">bpo-40947</a>: The Python <a class="reference internal" href="../c-api/init_config.html#init-path-config"><span class="std std-ref">Path Configuration</span></a> now
takes <a class="reference internal" href="../c-api/init_config.html#c.PyConfig.platlibdir" title="PyConfig.platlibdir"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyConfig.platlibdir</span></code></a> in account.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40939">bpo-40939</a>: Remove the old parser, the <code class="xref py py-mod docutils literal notranslate"><span class="pre">parser</span></code> module and all
associated support code, command-line options and environment variables.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40847">bpo-40847</a>: Fix a bug where a line with only a line continuation character
is not considered a blank line at tokenizer level. In such cases, more
than a single <code class="docutils literal notranslate"><span class="pre">NEWLINE</span></code> token was emitted. The old parser was working
around the issue, but the new parser threw a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> for valid
input due to this. For example, an empty line following a line
continuation character was interpreted as a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40890">bpo-40890</a>: Each dictionary view now has a <code class="docutils literal notranslate"><span class="pre">mapping</span></code> attribute that
provides a <a class="reference internal" href="../library/types.html#types.MappingProxyType" title="types.MappingProxyType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.MappingProxyType</span></code></a> wrapping the original
dictionary. Patch contributed by Dennis Sweeney.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40889">bpo-40889</a>: Improved the performance of symmetric difference operations on
dictionary item views. Patch by Dennis Sweeney.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40904">bpo-40904</a>: Fix possible segfault in the new PEG parser when parsing
f-string containing yield statements with no value (<code class="code docutils literal notranslate"><span class="pre">f"{yield}"</span></code>).
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40903">bpo-40903</a>: Fixed a possible segfault in the new PEG parser when producing
error messages for invalid assignments of the form <code class="code docutils literal notranslate"><span class="pre">p=p=</span></code>. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40880">bpo-40880</a>: Fix invalid memory read in the new parser when checking
newlines in string literals. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40883">bpo-40883</a>: Fix memory leak in when parsing f-strings in the new parser.
Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40870">bpo-40870</a>: Raise <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> when validating custom AST’s where the
constants <code class="docutils literal notranslate"><span class="pre">True</span></code>, <code class="docutils literal notranslate"><span class="pre">False</span></code> and <code class="docutils literal notranslate"><span class="pre">None</span></code> are used within a
<a class="reference internal" href="../library/ast.html#ast.Name" title="ast.Name"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Name</span></code></a> node.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40854">bpo-40854</a>: Allow overriding <a class="reference internal" href="../library/sys.html#sys.platlibdir" title="sys.platlibdir"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.platlibdir</span></code></a> via a new
<span class="target" id="index-284"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONPLATLIBDIR"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONPLATLIBDIR</span></code></a> environment variable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40826">bpo-40826</a>: Fix GIL usage in <code class="xref c c-func docutils literal notranslate"><span class="pre">PyOS_Readline()</span></code>: lock the GIL to set
an exception and pass the Python thread state when checking if there is a
pending signal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/fcntl.html#module-fcntl" title="fcntl: The fcntl() and ioctl() system calls. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">fcntl</span></code></a> to multiphase initialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19468">bpo-19468</a>: Delete unnecessary instance check in importlib.reload(). Patch
by Furkan Önder.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40824">bpo-40824</a>: Unexpected errors in calling the <code class="docutils literal notranslate"><span class="pre">__iter__</span></code> method are no
longer masked by <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> in the <a class="reference internal" href="../reference/expressions.html#in"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">in</span></code></a> operator and functions
<a class="reference internal" href="../library/operator.html#operator.contains" title="operator.contains"><code class="xref py py-func docutils literal notranslate"><span class="pre">contains()</span></code></a>, <a class="reference internal" href="../library/operator.html#operator.indexOf" title="operator.indexOf"><code class="xref py py-func docutils literal notranslate"><span class="pre">indexOf()</span></code></a> and
<a class="reference internal" href="../library/operator.html#operator.countOf" title="operator.countOf"><code class="xref py py-func docutils literal notranslate"><span class="pre">countOf()</span></code></a> of the <a class="reference internal" href="../library/operator.html#module-operator" title="operator: Functions corresponding to the standard operators."><code class="xref py py-mod docutils literal notranslate"><span class="pre">operator</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40792">bpo-40792</a>: Attributes <code class="docutils literal notranslate"><span class="pre">start</span></code>, <code class="docutils literal notranslate"><span class="pre">stop</span></code> and <code class="docutils literal notranslate"><span class="pre">step</span></code> of the
<a class="reference internal" href="../library/stdtypes.html#range" title="range"><code class="xref py py-class docutils literal notranslate"><span class="pre">range</span></code></a> object now always has exact type <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>. Previously,
they could have been an instance of a subclass of <code class="docutils literal notranslate"><span class="pre">int</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40780">bpo-40780</a>: Fix a corner case where g-style string formatting of a float
failed to remove trailing zeros.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38964">bpo-38964</a>: When there’s a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> in the expression part of an
fstring, the filename attribute of the <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> gets correctly
set to the name of the file the fstring resides in.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40750">bpo-40750</a>: Support the “-d” debug flag in the new PEG parser. Patch by
Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40217">bpo-40217</a>: Instances of types created with
<a class="reference internal" href="../c-api/type.html#c.PyType_FromSpecWithBases" title="PyType_FromSpecWithBases"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpecWithBases()</span></code></a> will no longer automatically visit
their class object when traversing references in the garbage collector.
The user is expected to manually visit the object’s class. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39573">bpo-39573</a>: <a class="reference internal" href="../c-api/structures.html#c.Py_TYPE" title="Py_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_TYPE()</span></code></a> is changed to the inline static function.
Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40696">bpo-40696</a>: Fix a hang that can arise after <a class="reference internal" href="../reference/expressions.html#generator.throw" title="generator.throw"><code class="xref py py-meth docutils literal notranslate"><span class="pre">generator.throw()</span></code></a> due to
a cycle in the exception context chain.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40521">bpo-40521</a>: Each interpreter now its has own free lists, singletons and
caches:</p>
<ul class="simple">
<li><p>Free lists: float, tuple, list, dict, frame, context,
asynchronous generator, MemoryError.</p></li>
<li><p>Singletons: empty tuple, empty bytes string, empty Unicode string,
single byte character, single Unicode (latin1) character.</p></li>
<li><p>Slice cache.</p></li>
</ul>
<p>They are no longer shared by all interpreters.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40679">bpo-40679</a>: Certain <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> messages about missing or extra
arguments now include the function’s <a class="reference internal" href="../glossary.html#term-qualified-name"><span class="xref std std-term">qualified name</span></a>. Patch by
Dennis Sweeney.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29590">bpo-29590</a>: Make the stack trace correct after calling
<a class="reference internal" href="../reference/expressions.html#generator.throw" title="generator.throw"><code class="xref py py-meth docutils literal notranslate"><span class="pre">generator.throw()</span></code></a> on a generator that has yielded from a <code class="docutils literal notranslate"><span class="pre">yield</span>
<span class="pre">from</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4022">bpo-4022</a>: Improve performance of generators by not raising internal
StopIteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/mmap.html#module-mmap" title="mmap: Interface to memory-mapped files for Unix and Windows."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mmap</span></code></a> to multiphase initialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <code class="xref py py-mod docutils literal notranslate"><span class="pre">_lzma</span></code> to multiphase initialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37999">bpo-37999</a>: Builtin and extension functions that take integer arguments no
longer accept <a class="reference internal" href="../library/decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal notranslate"><span class="pre">Decimal</span></code></a>s, <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">Fraction</span></code></a>s and other objects that can be converted to integers only with a loss
(e.g. that have the <a class="reference internal" href="../reference/datamodel.html#object.__int__" title="object.__int__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__int__()</span></code></a> method but do not have the
<a class="reference internal" href="../reference/datamodel.html#object.__index__" title="object.__index__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__index__()</span></code></a> method).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29882">bpo-29882</a>: Add <a class="reference internal" href="../library/stdtypes.html#int.bit_count" title="int.bit_count"><code class="xref py py-meth docutils literal notranslate"><span class="pre">int.bit_count()</span></code></a>, counting the number of ones in the
binary representation of an integer. Patch by Niklas Fiekas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36982">bpo-36982</a>: Use ncurses extended color functions when available to support
terminals with 256 colors, and add the new function
<a class="reference internal" href="../library/curses.html#curses.has_extended_color_support" title="curses.has_extended_color_support"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.has_extended_color_support()</span></code></a> to indicate whether extended
color support is provided by the underlying ncurses library.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19569">bpo-19569</a>: Add the private macros <code class="docutils literal notranslate"><span class="pre">_Py_COMP_DIAG_PUSH</span></code>,
<code class="docutils literal notranslate"><span class="pre">_Py_COMP_DIAG_IGNORE_DEPR_DECLS</span></code>, and <code class="docutils literal notranslate"><span class="pre">_Py_COMP_DIAG_POP</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26680">bpo-26680</a>: The int type now supports the x.is_integer() method for
compatibility with float.</p></li>
</ul>
</section>
<section id="id400">
<h3>Library<a class="headerlink" href="#id400" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41900">bpo-41900</a>: C14N 2.0 serialisation in xml.etree.ElementTree failed for
unprefixed attributes when a default namespace was defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41887">bpo-41887</a>: Strip leading spaces and tabs on <a class="reference internal" href="../library/ast.html#ast.literal_eval" title="ast.literal_eval"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.literal_eval()</span></code></a>. Also
document stripping of spaces and tabs for <a class="reference internal" href="../library/functions.html#eval" title="eval"><code class="xref py py-func docutils literal notranslate"><span class="pre">eval()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41773">bpo-41773</a>: Note in documentation that <a class="reference internal" href="../library/random.html#random.choices" title="random.choices"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.choices()</span></code></a> doesn’t
support non-finite weights, raise <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> when given non-finite
weights.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41840">bpo-41840</a>: Fix a bug in the <a class="reference internal" href="../library/symtable.html#module-symtable" title="symtable: Interface to the compiler's internal symbol tables."><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code></a> module that was causing
module-scope global variables to not be reported as both local and global.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41842">bpo-41842</a>: Add <a class="reference internal" href="../library/codecs.html#codecs.unregister" title="codecs.unregister"><code class="xref py py-func docutils literal notranslate"><span class="pre">codecs.unregister()</span></code></a> function to unregister a codec
search function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40564">bpo-40564</a>: In <code class="docutils literal notranslate"><span class="pre">zipfile.Path</span></code>, mutate the passed ZipFile object type
instead of making a copy. Prevents issues when both the local copy and the
caller’s copy attempt to close the same file handle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40670">bpo-40670</a>: More reliable validation of statements in
<a class="reference internal" href="../library/timeit.html#timeit.Timer" title="timeit.Timer"><code class="xref py py-class docutils literal notranslate"><span class="pre">timeit.Timer</span></code></a>. It now accepts “empty” statements (only whitespaces
and comments) and rejects misindentent statements.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41833">bpo-41833</a>: The <a class="reference internal" href="../library/threading.html#threading.Thread" title="threading.Thread"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.Thread</span></code></a> constructor now uses the target
name if the <em>target</em> argument is specified but the <em>name</em> argument is
omitted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41817">bpo-41817</a>: fix <code class="docutils literal notranslate"><span class="pre">tkinter.EventType</span></code> Enum so all members are strings, and
none are tuples</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41810">bpo-41810</a>: <a class="reference internal" href="../library/types.html#types.EllipsisType" title="types.EllipsisType"><code class="xref py py-data docutils literal notranslate"><span class="pre">types.EllipsisType</span></code></a>, <a class="reference internal" href="../library/types.html#types.NotImplementedType" title="types.NotImplementedType"><code class="xref py py-data docutils literal notranslate"><span class="pre">types.NotImplementedType</span></code></a>
and <a class="reference internal" href="../library/types.html#types.NoneType" title="types.NoneType"><code class="xref py py-data docutils literal notranslate"><span class="pre">types.NoneType</span></code></a> have been reintroduced, providing a new set of
types readily interpretable by static type checkers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41815">bpo-41815</a>: Fix SQLite3 segfault when backing up closed database. Patch
contributed by Peter David McCormick.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41816">bpo-41816</a>: StrEnum added: it ensures that all members are already strings
or string candidates</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41517">bpo-41517</a>: fix bug allowing Enums to be extended via multiple inheritance</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39587">bpo-39587</a>: use the correct mix-in data type when constructing Enums</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41792">bpo-41792</a>: Add is_typeddict function to typing.py to check if a type is a
TypedDict class</p>
<p>Previously there was no way to check that without using private API. See
the <a class="reference external" href="https://github.com/python/typing/issues/751">relevant issue in python/typing</a>.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41789">bpo-41789</a>: Honor <code class="docutils literal notranslate"><span class="pre">object</span></code> overrides in <code class="docutils literal notranslate"><span class="pre">Enum</span></code> class creation
(specifically, <code class="docutils literal notranslate"><span class="pre">__str__</span></code>, <code class="docutils literal notranslate"><span class="pre">__repr__</span></code>, <code class="docutils literal notranslate"><span class="pre">__format__</span></code>, and
<code class="docutils literal notranslate"><span class="pre">__reduce_ex__</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32218">bpo-32218</a>: <code class="docutils literal notranslate"><span class="pre">enum.Flag</span></code> and <code class="docutils literal notranslate"><span class="pre">enum.IntFlag</span></code> members are now iterable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39651">bpo-39651</a>: Fix a race condition in the <code class="docutils literal notranslate"><span class="pre">call_soon_threadsafe()</span></code> method
of <code class="docutils literal notranslate"><span class="pre">asyncio.ProactorEventLoop</span></code>: do nothing if the self-pipe socket has
been closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="docutils literal notranslate"><span class="pre">mashal</span></code> extension module to the multi-phase
initialization API (<span class="target" id="index-285"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port the <code class="docutils literal notranslate"><span class="pre">_string</span></code> extension module to the multi-phase
initialization API (<span class="target" id="index-286"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41732">bpo-41732</a>: Added an <a class="reference internal" href="../glossary.html#term-iterator"><span class="xref std std-term">iterator</span></a> to <a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-class docutils literal notranslate"><span class="pre">memoryview</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41720">bpo-41720</a>: Fixed <code class="xref py py-meth docutils literal notranslate"><span class="pre">turtle.Vec2D.__rmul__()</span></code> for arguments which are not
int or float.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41696">bpo-41696</a>: Fix handling of debug mode in <a class="reference internal" href="../library/asyncio-runner.html#asyncio.run" title="asyncio.run"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.run()</span></code></a>. This allows
setting <code class="docutils literal notranslate"><span class="pre">PYTHONASYNCIODEBUG</span></code> or <code class="docutils literal notranslate"><span class="pre">-X</span> <span class="pre">dev</span></code> to enable asyncio debug mode
when using <a class="reference internal" href="../library/asyncio-runner.html#asyncio.run" title="asyncio.run"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.run()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41687">bpo-41687</a>: Fix implementation of sendfile to be compatible with Solaris.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41662">bpo-41662</a>: No longer override exceptions raised in <code class="docutils literal notranslate"><span class="pre">__len__()</span></code> of a
sequence of parameters in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> with
<a class="reference internal" href="../library/sqlite3.html#sqlite3.ProgrammingError" title="sqlite3.ProgrammingError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ProgrammingError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39010">bpo-39010</a>: Restarting a <code class="docutils literal notranslate"><span class="pre">ProactorEventLoop</span></code> on Windows no longer logs
spurious <code class="docutils literal notranslate"><span class="pre">ConnectionResetErrors</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41638">bpo-41638</a>: <a class="reference internal" href="../library/sqlite3.html#sqlite3.ProgrammingError" title="sqlite3.ProgrammingError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ProgrammingError</span></code></a> message for absent parameter
in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> contains now the name of the parameter instead of its
index when parameters are supplied as a dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41662">bpo-41662</a>: Fixed crash when mutate list of parameters during iteration in
<a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41513">bpo-41513</a>: Improved the accuracy of math.hypot(). Internally, each step
is computed with extra precision so that the result is now almost always
correctly rounded.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41609">bpo-41609</a>: The pdb whatis command correctly reports instance methods as
‘Method’ rather than ‘Function’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39994">bpo-39994</a>: Fixed pprint’s handling of dict subclasses that override
__repr__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32751">bpo-32751</a>: When cancelling the task due to a timeout,
<a class="reference internal" href="../library/asyncio-task.html#asyncio.wait_for" title="asyncio.wait_for"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.wait_for()</span></code></a> will now wait until the cancellation is complete
also in the case when <em>timeout</em> is <= 0, like it does with positive
timeouts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37658">bpo-37658</a>: <a class="reference internal" href="../library/asyncio-task.html#asyncio.wait_for" title="asyncio.wait_for"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.wait_for()</span></code></a> now properly handles races between
cancellation of itself and the completion of the wrapped awaitable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40782">bpo-40782</a>: Change the method asyncio.AbstractEventLoop.run_in_executor to
not be a coroutine.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41520">bpo-41520</a>: Fix <a class="reference internal" href="../library/codeop.html#module-codeop" title="codeop: Compile (possibly incomplete) Python code."><code class="xref py py-mod docutils literal notranslate"><span class="pre">codeop</span></code></a> regression that prevented turning compile
warnings into errors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41528">bpo-41528</a>: turtle uses math module functions to convert degrees to radians
and vice versa and to calculate vector norm</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41513">bpo-41513</a>: Minor algorithmic improvement to math.hypot() and math.dist()
giving small gains in speed and accuracy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41503">bpo-41503</a>: Fixed a race between setTarget and flush in
logging.handlers.MemoryHandler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41497">bpo-41497</a>: Fix potential UnicodeDecodeError in dis module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41467">bpo-41467</a>: On Windows, fix asyncio <code class="docutils literal notranslate"><span class="pre">recv_into()</span></code> return value when the
socket/pipe is closed (<a class="reference internal" href="../library/exceptions.html#BrokenPipeError" title="BrokenPipeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BrokenPipeError</span></code></a>): return <code class="docutils literal notranslate"><span class="pre">0</span></code> rather than
an empty byte string (<code class="docutils literal notranslate"><span class="pre">b''</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41425">bpo-41425</a>: Make tkinter doc example runnable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41421">bpo-41421</a>: Make an algebraic simplification to random.paretovariate(). It
now is slightly less subject to round-off error and is slightly faster.
Inputs that used to cause ZeroDivisionError now cause an OverflowError
instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41440">bpo-41440</a>: Add <a class="reference internal" href="../library/os.html#os.cpu_count" title="os.cpu_count"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.cpu_count()</span></code></a> support for VxWorks RTOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41316">bpo-41316</a>: Fix the <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> module to write only basename of TAR
file to GZIP compression header.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41384">bpo-41384</a>: Raise TclError instead of TypeError when an unknown option is
passed to tkinter.OptionMenu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41317">bpo-41317</a>: Use add_done_callback() in asyncio.loop.sock_accept() to
unsubscribe reader early on cancellation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41364">bpo-41364</a>: Reduce import overhead of <a class="reference internal" href="../library/uuid.html#module-uuid" title="uuid: UUID objects (universally unique identifiers) according to RFC 9562"><code class="xref py py-mod docutils literal notranslate"><span class="pre">uuid</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35328">bpo-35328</a>: Set the environment variable <code class="docutils literal notranslate"><span class="pre">VIRTUAL_ENV_PROMPT</span></code> at
<a class="reference internal" href="../library/venv.html#module-venv" title="venv: Creation of virtual environments."><code class="xref py py-mod docutils literal notranslate"><span class="pre">venv</span></code></a> activation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41341">bpo-41341</a>: Recursive evaluation of <code class="docutils literal notranslate"><span class="pre">typing.ForwardRef</span></code> in
<code class="docutils literal notranslate"><span class="pre">get_type_hints</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41344">bpo-41344</a>: Prevent creating <code class="xref py py-class docutils literal notranslate"><span class="pre">shared_memory.SharedMemory</span></code> objects
with <code class="code docutils literal notranslate"><span class="pre">size=0</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41333">bpo-41333</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">collections.OrderedDict.pop()</span></code> is now 2 times faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41288">bpo-41288</a>: Unpickling invalid NEWOBJ_EX opcode with the C implementation
raises now UnpicklingError instead of crashing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39017">bpo-39017</a>: Avoid infinite loop when reading specially crafted TAR files
using the tarfile module (<span class="target" id="index-287"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2019-20907"><strong>CVE 2019-20907</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41273">bpo-41273</a>: Speed up any transport using <code class="docutils literal notranslate"><span class="pre">_ProactorReadPipeTransport</span></code> by
calling <code class="docutils literal notranslate"><span class="pre">recv_into</span></code> instead of <code class="docutils literal notranslate"><span class="pre">recv</span></code>, thus not creating a new buffer
for each <code class="docutils literal notranslate"><span class="pre">recv</span></code> call in the transport’s read loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41235">bpo-41235</a>: Fix the error handling in
<a class="reference internal" href="../library/ssl.html#ssl.SSLContext.load_dh_params" title="ssl.SSLContext.load_dh_params"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.SSLContext.load_dh_params()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41207">bpo-41207</a>: In distutils.spawn, restore expectation that DistutilsExecError
is raised when the command is not found.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29727">bpo-29727</a>: Register <a class="reference internal" href="../library/array.html#array.array" title="array.array"><code class="xref py py-class docutils literal notranslate"><span class="pre">array.array</span></code></a> as a
<a class="reference internal" href="../library/collections.abc.html#collections.abc.MutableSequence" title="collections.abc.MutableSequence"><code class="xref py py-class docutils literal notranslate"><span class="pre">MutableSequence</span></code></a>. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39168">bpo-39168</a>: Remove the <code class="docutils literal notranslate"><span class="pre">__new__</span></code> method of <a class="reference internal" href="../library/typing.html#typing.Generic" title="typing.Generic"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Generic</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41194">bpo-41194</a>: Fix a crash in the <code class="docutils literal notranslate"><span class="pre">_ast</span></code> module: it can no longer be loaded
more than once. It now uses a global state rather than a module state.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41195">bpo-41195</a>: Add read-only ssl.SSLContext.security_level attribute to
retrieve the context’s security level.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41193">bpo-41193</a>: The <code class="docutils literal notranslate"><span class="pre">write_history()</span></code> atexit function of the readline
completer now ignores any <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> to ignore error if the filesystem
is read-only, instead of only ignoring <a class="reference internal" href="../library/exceptions.html#FileNotFoundError" title="FileNotFoundError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">FileNotFoundError</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#PermissionError" title="PermissionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PermissionError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41182">bpo-41182</a>: selector: use DefaultSelector based upon implementation</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41161">bpo-41161</a>: The decimal module now requires libmpdec-2.5.0. Users of
–with-system-libmpdec should update their system library.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40874">bpo-40874</a>: The decimal module now requires libmpdec-2.5.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41138">bpo-41138</a>: Fixed the <a class="reference internal" href="../library/trace.html#module-trace" title="trace: Trace or track Python statement execution."><code class="xref py py-mod docutils literal notranslate"><span class="pre">trace</span></code></a> module CLI for Python source files with
non-UTF-8 encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31082">bpo-31082</a>: Use the term “iterable” in the docstring for
<a class="reference internal" href="../library/functools.html#functools.reduce" title="functools.reduce"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.reduce()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40521">bpo-40521</a>: Remove freelist from collections.deque().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31938">bpo-31938</a>: Fix default-value signatures of several functions in the
<a class="reference internal" href="../library/select.html#module-select" title="select: Wait for I/O completion on multiple streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">select</span></code></a> module - by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41068">bpo-41068</a>: Fixed reading files with non-ASCII names from ZIP archive
directly after writing them.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41058">bpo-41058</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">pdb.find_function()</span></code> now correctly determines the source
file encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41056">bpo-41056</a>: Invalid file descriptor values are now prevented from being
passed to os.fpathconf. (discovered by Coverity)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41056">bpo-41056</a>: Fix a NULL pointer dereference within the ssl module during a
MemoryError in the keylog callback. (discovered by Coverity)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41056">bpo-41056</a>: Fixed an instance where a MemoryError within the zoneinfo
module might not be reported or not reported at its source. (found by
Coverity)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41048">bpo-41048</a>: <a class="reference internal" href="../library/mimetypes.html#mimetypes.read_mime_types" title="mimetypes.read_mime_types"><code class="xref py py-func docutils literal notranslate"><span class="pre">mimetypes.read_mime_types()</span></code></a> function reads the rule file
using UTF-8 encoding, not the locale encoding. Patch by Srinivas Reddy
Thatiparthy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41043">bpo-41043</a>: Fixed the use of <a class="reference internal" href="../library/glob.html#glob.glob" title="glob.glob"><code class="xref py py-func docutils literal notranslate"><span class="pre">glob()</span></code></a> in the stdlib: literal part
of the path is now always correctly escaped.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41025">bpo-41025</a>: Fixed an issue preventing the C implementation of
<a class="reference internal" href="../library/zoneinfo.html#zoneinfo.ZoneInfo" title="zoneinfo.ZoneInfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">zoneinfo.ZoneInfo</span></code></a> from being subclassed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35018">bpo-35018</a>: Add the <a class="reference internal" href="../library/xml.sax.handler.html#xml.sax.handler.LexicalHandler" title="xml.sax.handler.LexicalHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">xml.sax.handler.LexicalHandler</span></code></a> class that is
present in other SAX XML implementations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41002">bpo-41002</a>: Improve performance of HTTPResponse.read with a given amount.
Patch by Bruce Merry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40448">bpo-40448</a>: <a class="reference internal" href="../library/ensurepip.html#module-ensurepip" title="ensurepip: Bootstrapping the "pip" installer into an existing Python installation or virtual environment."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ensurepip</span></code></a> now disables the use of <code class="docutils literal notranslate"><span class="pre">pip</span></code> cache when
installing the bundled versions of <code class="docutils literal notranslate"><span class="pre">pip</span></code> and <code class="docutils literal notranslate"><span class="pre">setuptools</span></code>. Patch by
Krzysztof Konopko.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40967">bpo-40967</a>: Removed <code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Task.current_task()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.Task.all_tasks()</span></code>. Patch contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40924">bpo-40924</a>: Ensure <code class="docutils literal notranslate"><span class="pre">importlib.resources.path</span></code> returns an extant path for
the SourceFileLoader’s resource reader. Avoids the regression identified
in master while a long-term solution is devised.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40955">bpo-40955</a>: Fix a minor memory leak in <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module when
extra_groups was specified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40855">bpo-40855</a>: The standard deviation and variance functions in the statistics
module were ignoring their mu and xbar arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40939">bpo-40939</a>: Use the new PEG parser when generating the stdlib
<a class="reference internal" href="../library/keyword.html#module-keyword" title="keyword: Test whether a string is a keyword in Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">keyword</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23427">bpo-23427</a>: Add <a class="reference internal" href="../library/sys.html#sys.orig_argv" title="sys.orig_argv"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.orig_argv</span></code></a> attribute: the list of the original
command line arguments passed to the Python executable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33689">bpo-33689</a>: Ignore empty or whitespace-only lines in .pth files. This
matches the documentated behavior. Before, empty lines caused the
site-packages dir to appear multiple times in sys.path. By Ido Michael,
contributors Malcolm Smith and Tal Einat.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40884">bpo-40884</a>: Added a <code class="docutils literal notranslate"><span class="pre">defaults</span></code> parameter to <a class="reference internal" href="../library/logging.html#logging.Formatter" title="logging.Formatter"><code class="xref py py-class docutils literal notranslate"><span class="pre">logging.Formatter</span></code></a>,
to allow specifying default values for custom fields. Patch by Asaf Alon
and Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40876">bpo-40876</a>: Clarify error message in the <a class="reference internal" href="../library/csv.html#module-csv" title="csv: Write and read tabular data to and from delimited files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39791">bpo-39791</a>: Refresh importlib.metadata from importlib_metadata 1.6.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40807">bpo-40807</a>: Stop codeop._maybe_compile, used by code.InteractiveInterpreter
(and IDLE). from emitting each warning three times.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32604">bpo-32604</a>: Fix reference leak in the <a class="reference internal" href="../library/select.html#module-select" title="select: Wait for I/O completion on multiple streams."><code class="xref py py-mod docutils literal notranslate"><span class="pre">select</span></code></a> module when the module
is imported in a subinterpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39791">bpo-39791</a>: Built-in loaders (SourceFileLoader and ZipImporter) now supply
<code class="docutils literal notranslate"><span class="pre">TraversableResources</span></code> implementations for <code class="docutils literal notranslate"><span class="pre">ResourceReader</span></code>, and the
fallback function has been removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39314">bpo-39314</a>: <a class="reference internal" href="../library/rlcompleter.html#rlcompleter.Completer" title="rlcompleter.Completer"><code class="xref py py-class docutils literal notranslate"><span class="pre">rlcompleter.Completer</span></code></a> and the standard Python shell
now close the parenthesis for functions that take no arguments. Patch
contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17005">bpo-17005</a>: The topological sort functionality that was introduced
initially in the <a class="reference internal" href="../library/functools.html#module-functools" title="functools: Higher-order functions and operations on callable objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">functools</span></code></a> module has been moved to a new
<a class="reference internal" href="../library/graphlib.html#module-graphlib" title="graphlib: Functionality to operate with graph-like structures"><code class="xref py py-mod docutils literal notranslate"><span class="pre">graphlib</span></code></a> module to better accommodate the new tools and keep the
original scope of the <a class="reference internal" href="../library/functools.html#module-functools" title="functools: Higher-order functions and operations on callable objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">functools</span></code></a> module. Patch by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40834">bpo-40834</a>: Fix truncate when sending str object
with_xxsubinterpreters.channel_send.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40755">bpo-40755</a>: Add rich comparisons to collections.Counter().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26407">bpo-26407</a>: Unexpected errors in calling the <code class="docutils literal notranslate"><span class="pre">__iter__</span></code> method are no
longer masked by <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> in <a class="reference internal" href="../library/csv.html#csv.reader" title="csv.reader"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.reader()</span></code></a>,
<code class="xref py py-func docutils literal notranslate"><span class="pre">csv.writer.writerow()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">csv.writer.writerows()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39384">bpo-39384</a>: Fixed email.contentmanager to allow set_content() to set a null
string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40744">bpo-40744</a>: The <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> module uses SQLite API functions that
require SQLite v3.7.3 or higher. This patch removes support for older
SQLite versions, and explicitly requires SQLite 3.7.3 both at build,
compile and runtime. Patch by Sergey Fedoseev and Erlend E. Aasland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40777">bpo-40777</a>: Initialize PyDateTime_IsoCalendarDateType.tp_base at run-time
to avoid errors on some compilers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38488">bpo-38488</a>: Update ensurepip to install pip 20.1.1 and setuptools 47.1.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40792">bpo-40792</a>: The result of <a class="reference internal" href="../library/operator.html#operator.index" title="operator.index"><code class="xref py py-func docutils literal notranslate"><span class="pre">operator.index()</span></code></a> now always has exact type
<a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>. Previously, the result could have been an instance of a
subclass of <code class="docutils literal notranslate"><span class="pre">int</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40767">bpo-40767</a>: <a class="reference internal" href="../library/webbrowser.html#module-webbrowser" title="webbrowser: Easy-to-use controller for web browsers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">webbrowser</span></code></a> now properly finds the default browser in
pure Wayland systems by checking the WAYLAND_DISPLAY environment variable.
Patch contributed by Jérémy Attali.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40791">bpo-40791</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">hashlib.compare_digest()</span></code> uses OpenSSL’s
<code class="docutils literal notranslate"><span class="pre">CRYPTO_memcmp()</span></code> function when OpenSSL is available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40795">bpo-40795</a>: <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> module: If ctypes fails to convert the result of
a callback or if a ctypes callback function raises an exception,
sys.unraisablehook is now called with an exception set. Previously, the
error was logged into stderr by <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_Print" title="PyErr_Print"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_Print()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16995">bpo-16995</a>: Add <a class="reference internal" href="../library/base64.html#base64.b32hexencode" title="base64.b32hexencode"><code class="xref py py-func docutils literal notranslate"><span class="pre">base64.b32hexencode()</span></code></a> and <a class="reference internal" href="../library/base64.html#base64.b32hexdecode" title="base64.b32hexdecode"><code class="xref py py-func docutils literal notranslate"><span class="pre">base64.b32hexdecode()</span></code></a>
to support the Base32 Encoding with Extended Hex Alphabet.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30008">bpo-30008</a>: Fix <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> code to be compatible with OpenSSL 1.1.x builds
that use <code class="docutils literal notranslate"><span class="pre">no-deprecated</span></code> and <code class="docutils literal notranslate"><span class="pre">--api=1.1.0</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30064">bpo-30064</a>: Fix asyncio <code class="docutils literal notranslate"><span class="pre">loop.sock_*</span></code> race condition issue</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40759">bpo-40759</a>: Deprecate the <code class="xref py py-mod docutils literal notranslate"><span class="pre">symbol</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40756">bpo-40756</a>: The second argument (extra) of <code class="docutils literal notranslate"><span class="pre">LoggerAdapter.__init__</span></code> now
defaults to None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37129">bpo-37129</a>: Add a new <a class="reference internal" href="../library/os.html#os.RWF_APPEND" title="os.RWF_APPEND"><code class="xref py py-const docutils literal notranslate"><span class="pre">os.RWF_APPEND</span></code></a> flag for <a class="reference internal" href="../library/os.html#os.pwritev" title="os.pwritev"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.pwritev()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40737">bpo-40737</a>: Fix possible reference leak for <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> initialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40726">bpo-40726</a>: Handle cases where the <code class="docutils literal notranslate"><span class="pre">end_lineno</span></code> is <code class="docutils literal notranslate"><span class="pre">None</span></code> on
<a class="reference internal" href="../library/ast.html#ast.increment_lineno" title="ast.increment_lineno"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.increment_lineno()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40698">bpo-40698</a>: <code class="docutils literal notranslate"><span class="pre">distutils</span></code> upload creates SHA2-256 and Blake2b-256 digests.
MD5 digests is skipped if platform blocks MD5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40695">bpo-40695</a>: <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> no longer falls back to builtin hash
implementations when OpenSSL provides a hash digest and the algorithm is
blocked by security policy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9216">bpo-9216</a>: <a class="reference internal" href="../library/hashlib.html#hashlib.new" title="hashlib.new"><code class="xref py py-func docutils literal notranslate"><span class="pre">hashlib.new()</span></code></a> passed <code class="docutils literal notranslate"><span class="pre">usedforsecurity</span></code> to OpenSSL EVP
constructor <code class="docutils literal notranslate"><span class="pre">_hashlib.new()</span></code>. test_hashlib and test_smtplib handle
strict security policy better.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40614">bpo-40614</a>: <a class="reference internal" href="../library/ast.html#ast.parse" title="ast.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.parse()</span></code></a> will not parse self documenting expressions
in f-strings when passed <code class="docutils literal notranslate"><span class="pre">feature_version</span></code> is less than <code class="docutils literal notranslate"><span class="pre">(3,</span> <span class="pre">8)</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40626">bpo-40626</a>: Add h5 file extension as MIME Type application/x-hdf5, as per
HDF Group recommendation for HDF5 formatted data files. Patch contributed
by Mark Schwab.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25920">bpo-25920</a>: On macOS, when building Python for macOS 10.4 and older, which
wasn’t the case for python.org macOS installer, <a class="reference internal" href="../library/socket.html#socket.getaddrinfo" title="socket.getaddrinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.getaddrinfo()</span></code></a>
no longer uses an internal lock to prevent race conditions when calling
<code class="docutils literal notranslate"><span class="pre">getaddrinfo()</span></code> which is thread-safe since macOS 10.5. Python 3.9
requires macOS 10.6 or newer. The internal lock caused random hang on fork
when another thread was calling <a class="reference internal" href="../library/socket.html#socket.getaddrinfo" title="socket.getaddrinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.getaddrinfo()</span></code></a>. The lock was
also used on FreeBSD older than 5.3, OpenBSD older than 201311 and NetBSD
older than 4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40671">bpo-40671</a>: Prepare <code class="docutils literal notranslate"><span class="pre">_hashlib</span></code> for <span class="target" id="index-288"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a> and use
<a class="reference internal" href="../c-api/module.html#c.PyModule_AddType" title="PyModule_AddType"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_AddType()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32309">bpo-32309</a>: Added a new <a class="reference internal" href="../glossary.html#term-coroutine"><span class="xref std std-term">coroutine</span></a> <a class="reference internal" href="../library/asyncio-task.html#asyncio.to_thread" title="asyncio.to_thread"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.to_thread()</span></code></a>. It is
mainly used for running IO-bound functions in a separate thread to avoid
blocking the event loop, and essentially works as a high-level version of
<a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.run_in_executor" title="asyncio.loop.run_in_executor"><code class="xref py py-meth docutils literal notranslate"><span class="pre">run_in_executor()</span></code></a> that can directly take keyword
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36543">bpo-36543</a>: Restored the deprecated <code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree.cElementTree</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40611">bpo-40611</a>: <a class="reference internal" href="../library/mmap.html#mmap.MAP_POPULATE" title="mmap.MAP_POPULATE"><code class="xref py py-const docutils literal notranslate"><span class="pre">MAP_POPULATE</span></code></a> constant has now been added to the
list of exported <a class="reference internal" href="../library/mmap.html#module-mmap" title="mmap: Interface to memory-mapped files for Unix and Windows."><code class="xref py py-mod docutils literal notranslate"><span class="pre">mmap</span></code></a> module flags.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39881">bpo-39881</a>: PEP 554 for use in the test suite. (Patch By Joannah Nanjekye)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13097">bpo-13097</a>: <code class="docutils literal notranslate"><span class="pre">ctypes</span></code> now raises an <code class="docutils literal notranslate"><span class="pre">ArgumentError</span></code> when a callback is
invoked with more than 1024 arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39385">bpo-39385</a>: A new test assertion context-manager,
<code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.assertNoLogs()</span></code> will ensure a given block of code emits no
log messages using the logging module. Contributed by Kit Yan Choi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23082">bpo-23082</a>: Updated the error message and docs of PurePath.relative_to() to
better reflect the function behaviour.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40318">bpo-40318</a>: Use SQLite3 trace v2 API, if it is available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40105">bpo-40105</a>: ZipFile truncates files to avoid corruption when a shorter
comment is provided in append (“a”) mode. Patch by Jan Mazur.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40084">bpo-40084</a>: Fix <code class="docutils literal notranslate"><span class="pre">Enum.__dir__</span></code>: dir(Enum.member) now includes attributes
as well as methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31122">bpo-31122</a>: ssl.wrap_socket() now raises ssl.SSLEOFError rather than
OSError when peer closes connection during TLS negotiation</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39728">bpo-39728</a>: fix default <code class="docutils literal notranslate"><span class="pre">_missing_</span></code> so a duplicate <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> is not
set as the <code class="docutils literal notranslate"><span class="pre">__context__</span></code> of the original <code class="docutils literal notranslate"><span class="pre">ValueError</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39244">bpo-39244</a>: Fixed <code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.context.get_all_start_methods</span></code> to
properly return the default method first on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39040">bpo-39040</a>: Fix parsing of invalid mime headers parameters by collapsing
whitespace between encoded words in a bare-quote-string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38731">bpo-38731</a>: Add <code class="docutils literal notranslate"><span class="pre">--quiet</span></code> option to command-line interface of
<a class="reference internal" href="../library/py_compile.html#module-py_compile" title="py_compile: Generate byte-code files from Python source files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">py_compile</span></code></a>. Patch by Gregory Schevchenko.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35714">bpo-35714</a>: <a class="reference internal" href="../library/struct.html#struct.error" title="struct.error"><code class="xref py py-exc docutils literal notranslate"><span class="pre">struct.error</span></code></a> is now raised if there is a null character
in a <a class="reference internal" href="../library/struct.html#module-struct" title="struct: Interpret bytes as packed binary data."><code class="xref py py-mod docutils literal notranslate"><span class="pre">struct</span></code></a> format string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38144">bpo-38144</a>: Added the <em>root_dir</em> and <em>dir_fd</em> parameters in
<a class="reference internal" href="../library/glob.html#glob.glob" title="glob.glob"><code class="xref py py-func docutils literal notranslate"><span class="pre">glob.glob()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26543">bpo-26543</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">IMAP4.noop()</span></code> when debug mode is enabled (ex:
<code class="docutils literal notranslate"><span class="pre">imaplib.Debug</span> <span class="pre">=</span> <span class="pre">3</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12178">bpo-12178</a>: <a class="reference internal" href="../library/csv.html#csv.writer" title="csv.writer"><code class="xref py py-func docutils literal notranslate"><span class="pre">csv.writer()</span></code></a> now correctly escapes <em>escapechar</em> when
input contains <em>escapechar</em>. Patch by Catalin Iacob, Berker Peksag, and
Itay Elbirt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36290">bpo-36290</a>: AST nodes are now raising <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> on conflicting
keyword arguments. Patch contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33944">bpo-33944</a>: Added site.py site-packages tracing in verbose mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35078">bpo-35078</a>: Refactor formatweekday, formatmonthname methods in
LocaleHTMLCalendar and LocaleTextCalendar classes in calendar module to
call the base class methods.This enables customizable CSS classes for
LocaleHTMLCalendar. Patch by Srinivas Reddy Thatiparthy</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29620">bpo-29620</a>: <a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertWarns" title="unittest.TestCase.assertWarns"><code class="xref py py-func docutils literal notranslate"><span class="pre">assertWarns()</span></code></a> no longer raises a
<code class="docutils literal notranslate"><span class="pre">RuntimeException</span></code> when accessing a module’s <code class="docutils literal notranslate"><span class="pre">__warningregistry__</span></code>
causes importation of a new module, or when a new module is imported in
another thread. Patch by Kernc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31844">bpo-31844</a>: Remove <code class="docutils literal notranslate"><span class="pre">ParserBase.error()</span></code> method from the private and
undocumented <code class="docutils literal notranslate"><span class="pre">_markupbase</span></code> module. <a class="reference internal" href="../library/html.parser.html#html.parser.HTMLParser" title="html.parser.HTMLParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">html.parser.HTMLParser</span></code></a> is
the only subclass of <code class="docutils literal notranslate"><span class="pre">ParserBase</span></code> and its <code class="docutils literal notranslate"><span class="pre">error()</span></code> implementation was
deprecated in Python 3.4 and removed in Python 3.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34226">bpo-34226</a>: Fix <code class="docutils literal notranslate"><span class="pre">cgi.parse_multipart</span></code> without content_length. Patch by
Roger Duran</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33660">bpo-33660</a>: Fix pathlib.PosixPath to resolve a relative path located on the
root directory properly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28557">bpo-28557</a>: Improve the error message for a misbehaving <code class="docutils literal notranslate"><span class="pre">rawio.readinto</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26680">bpo-26680</a>: The d.is_integer() method is added to the Decimal type, for
compatibility with other number types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26680">bpo-26680</a>: The x.is_integer() method is incorporated into the abstract
types of the numeric tower, Real, Rational and Integral, with appropriate
default implementations.</p></li>
</ul>
</section>
<section id="id401">
<h3>Documentation<a class="headerlink" href="#id401" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41428">bpo-41428</a>: Add documentation for <span class="target" id="index-289"></span><a class="pep reference external" href="https://peps.python.org/pep-0604/"><strong>PEP 604</strong></a> (Allow writing union types as
<code class="docutils literal notranslate"><span class="pre">X</span> <span class="pre">|</span> <span class="pre">Y</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41774">bpo-41774</a>: In Programming FAQ “Sequences (Tuples/Lists)” section, add “How
do you remove multiple items from a list”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35293">bpo-35293</a>: Fix RemovedInSphinx40Warning when building the documentation.
Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37149">bpo-37149</a>: Change Shipman tkinter doc link from archive.org to TkDocs.
(The doc has been removed from the NMT server.) The new link responds
much faster and includes a short explanatory note.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41726">bpo-41726</a>: Update the refcounts info of <code class="docutils literal notranslate"><span class="pre">PyType_FromModuleAndSpec</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41624">bpo-41624</a>: Fix the signature of <a class="reference internal" href="../library/typing.html#typing.Coroutine" title="typing.Coroutine"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Coroutine</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40204">bpo-40204</a>: Enable Sphinx 3.2 <code class="docutils literal notranslate"><span class="pre">c_allow_pre_v3</span></code> option and disable
<code class="docutils literal notranslate"><span class="pre">c_warn_on_allowed_pre_v3</span></code> option to make the documentation compatible
with Sphinx 2 and Sphinx 3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41045">bpo-41045</a>: Add documentation for debug feature of f-strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41314">bpo-41314</a>: Changed the release when <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">__future__</span> <span class="pre">import</span> <span class="pre">annotations</span></code>
becomes the default from <code class="docutils literal notranslate"><span class="pre">4.0</span></code> to <code class="docutils literal notranslate"><span class="pre">3.10</span></code> (following a change in PEP
563).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40979">bpo-40979</a>: Refactored typing.rst, arranging more than 70 classes,
functions, and decorators into new sub-sections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40552">bpo-40552</a>: Fix in tutorial section 4.2. Code snippet is now correct.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39883">bpo-39883</a>: Make code, examples, and recipes in the Python documentation be
licensed under the more permissive BSD0 license in addition to the
existing Python 2.0 license.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37703">bpo-37703</a>: Updated Documentation to comprehensively elaborate on the
behaviour of gather.cancel()</p></li>
</ul>
</section>
<section id="id402">
<h3>Tests<a class="headerlink" href="#id402" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41939">bpo-41939</a>: Fix test_site.test_license_exists_at_url(): call
<code class="docutils literal notranslate"><span class="pre">urllib.request.urlcleanup()</span></code> to reset the global
<code class="docutils literal notranslate"><span class="pre">urllib.request._opener</span></code>. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41731">bpo-41731</a>: Make test_cmd_line_script pass with option ‘-vv’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41602">bpo-41602</a>: Add tests for SIGINT handling in the runpy module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41521">bpo-41521</a>: <a class="reference internal" href="../library/test.html#module-test.support" title="test.support: Support for Python's regression test suite."><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support</span></code></a>: Rename <code class="docutils literal notranslate"><span class="pre">blacklist</span></code> parameter of
<a class="reference internal" href="../library/test.html#test.support.check__all__" title="test.support.check__all__"><code class="xref py py-func docutils literal notranslate"><span class="pre">check__all__()</span></code></a> to <code class="docutils literal notranslate"><span class="pre">not_exported</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41477">bpo-41477</a>: Make ctypes optional in test_genericalias.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41085">bpo-41085</a>: Fix integer overflow in the <a class="reference internal" href="../library/array.html#array.array.index" title="array.array.index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">array.array.index()</span></code></a> method on
64-bit Windows for index larger than <code class="docutils literal notranslate"><span class="pre">2**31</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41069">bpo-41069</a>: <code class="xref py py-data docutils literal notranslate"><span class="pre">test.support.TESTFN</span></code> and the current directory for tests
when run via <code class="docutils literal notranslate"><span class="pre">test.regrtest</span></code> contain now non-ascii characters if
possible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38377">bpo-38377</a>: On Linux, skip tests using multiprocessing if the current user
cannot create a file in <code class="docutils literal notranslate"><span class="pre">/dev/shm/</span></code> directory. Add the
<a class="reference internal" href="../library/test.html#test.support.skip_if_broken_multiprocessing_synchronize" title="test.support.skip_if_broken_multiprocessing_synchronize"><code class="xref py py-func docutils literal notranslate"><span class="pre">skip_if_broken_multiprocessing_synchronize()</span></code></a> function
to the <a class="reference internal" href="../library/test.html#module-test.support" title="test.support: Support for Python's regression test suite."><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41009">bpo-41009</a>: Fix use of <code class="docutils literal notranslate"><span class="pre">support.require_{linux|mac|freebsd}_version()</span></code>
decorators as class decorator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41003">bpo-41003</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_copyreg</span></code> when <code class="docutils literal notranslate"><span class="pre">numpy</span></code> is installed:
<code class="docutils literal notranslate"><span class="pre">test.pickletester</span></code> now saves/restores warnings filters when importing
<code class="docutils literal notranslate"><span class="pre">numpy</span></code>, to ignore filters installed by <code class="docutils literal notranslate"><span class="pre">numpy</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40964">bpo-40964</a>: Disable remote <a class="reference internal" href="../library/imaplib.html#module-imaplib" title="imaplib: IMAP4 protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">imaplib</span></code></a> tests, host cyrus.andrew.cmu.edu
is blocking incoming connections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40927">bpo-40927</a>: Fix test_binhex when run twice: it now uses
import_fresh_module() to ensure that it raises DeprecationWarning each
time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17258">bpo-17258</a>: Skip some <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> tests when MD5 hash digest is
blocked.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Increase LOOPBACK_TIMEOUT to 10 for VxWorks RTOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38169">bpo-38169</a>: Increase code coverage for SharedMemory and ShareableList</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34401">bpo-34401</a>: Make test_gdb properly run on HP-UX. Patch by Michael Osipov.</p></li>
</ul>
</section>
<section id="id403">
<h3>Build<a class="headerlink" href="#id403" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38249">bpo-38249</a>: Update <a class="reference internal" href="../c-api/intro.html#c.Py_UNREACHABLE" title="Py_UNREACHABLE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_UNREACHABLE</span></code></a> to use __builtin_unreachable()
if only the compiler is able to use it. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41617">bpo-41617</a>: Fix <code class="docutils literal notranslate"><span class="pre">pycore_bitutils.h</span></code> header file to support old clang
versions: <code class="docutils literal notranslate"><span class="pre">__builtin_bswap16()</span></code> is not available in LLVM clang 3.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40204">bpo-40204</a>: Pin Sphinx version to 2.3.1 in <code class="docutils literal notranslate"><span class="pre">Doc/Makefile</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36020">bpo-36020</a>: The C99 functions <code class="xref c c-func docutils literal notranslate"><span class="pre">snprintf()</span></code> and <code class="xref c c-func docutils literal notranslate"><span class="pre">vsnprintf()</span></code>
are now required to build Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40684">bpo-40684</a>: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> now uses the <code class="docutils literal notranslate"><span class="pre">PLATLIBDIR</span></code> variable for the
destination <code class="docutils literal notranslate"><span class="pre">lib-dynload/</span></code> directory when <code class="docutils literal notranslate"><span class="pre">./configure</span>
<span class="pre">--with-platlibdir</span></code> is used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40683">bpo-40683</a>: Fixed an issue where the <a class="reference internal" href="../library/zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a> module and its tests
were not included when Python is installed with <code class="docutils literal notranslate"><span class="pre">make</span></code>.</p></li>
</ul>
</section>
<section id="id404">
<h3>Windows<a class="headerlink" href="#id404" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41744">bpo-41744</a>: Fixes automatic import of props file when using the Nuget
package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41627">bpo-41627</a>: The user site directory for 32-bit now includes a <code class="docutils literal notranslate"><span class="pre">-32</span></code>
suffix to distinguish it from the 64-bit interpreter’s directory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41526">bpo-41526</a>: Fixed layout of final page of the installer by removing the
special thanks to Mark Hammond (with his permission).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41492">bpo-41492</a>: Fixes the description that appears in UAC prompts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40948">bpo-40948</a>: Improve post-install message to direct people to the “py”
command.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41412">bpo-41412</a>: The installer will now fail to install on Windows 7 and Windows
8. Further, the UCRT dependency is now always downloaded on demand.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40741">bpo-40741</a>: Update Windows release to include SQLite 3.32.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41142">bpo-41142</a>: <code class="xref py py-mod docutils literal notranslate"><span class="pre">msilib</span></code> now supports creating CAB files with non-ASCII
file path and adding files with non-ASCII file path to them.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41074">bpo-41074</a>: Fixed support of non-ASCII names in functions
<code class="xref py py-func docutils literal notranslate"><span class="pre">msilib.OpenDatabase()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">msilib.init_database()</span></code> and
non-ASCII SQL in method <code class="xref py py-meth docutils literal notranslate"><span class="pre">msilib.Database.OpenView()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41039">bpo-41039</a>: Stable ABI redirection DLL (python3.dll) now uses <code class="docutils literal notranslate"><span class="pre">#pragma</span>
<span class="pre">comment(linker)</span></code> for re-exporting.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40164">bpo-40164</a>: Updates Windows OpenSSL to 1.1.1g</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39631">bpo-39631</a>: Changes the registered MIME type for <code class="docutils literal notranslate"><span class="pre">.py</span></code> files on Windows
to <code class="docutils literal notranslate"><span class="pre">text/x-python</span></code> instead of <code class="docutils literal notranslate"><span class="pre">text/plain</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40677">bpo-40677</a>: Manually define IO_REPARSE_TAG_APPEXECLINK in case some old
Windows SDK doesn’t have it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37556">bpo-37556</a>: Extend py.exe help to mention overrides via venv, shebang,
environmental variables & ini files.</p></li>
</ul>
</section>
<section id="id405">
<h3>macOS<a class="headerlink" href="#id405" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41557">bpo-41557</a>: Update macOS installer to use SQLite 3.33.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39580">bpo-39580</a>: Avoid opening Finder window if running installer from the
command line. Patch contributed by Rick Heil.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41100">bpo-41100</a>: Fix configure error when building on macOS 11. Note that the
current Python release was released shortly after the first developer
preview of macOS 11 (Big Sur); there are other known issues with building
and running on the developer preview. Big Sur is expected to be fully
supported in a future bugfix release of Python 3.8.x and with 3.9.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40741">bpo-40741</a>: Update macOS installer to use SQLite 3.32.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41005">bpo-41005</a>: fixed an XDG settings issue not allowing macos to open browser
in webbrowser.py</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40741">bpo-40741</a>: Update macOS installer to use SQLite 3.32.2.</p></li>
</ul>
</section>
<section id="id406">
<h3>IDLE<a class="headerlink" href="#id406" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41775">bpo-41775</a>: Use ‘IDLE Shell’ as shell title</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35764">bpo-35764</a>: Rewrite the Calltips doc section.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40181">bpo-40181</a>: In calltips, stop reminding that ‘/’ marks the end of
positional-only arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41468">bpo-41468</a>: Improve IDLE run crash error message (which users should never
see).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41373">bpo-41373</a>: Save files loaded with no line ending, as when blank, or
different line endings, by setting its line ending to the system default.
Fix regression in 3.8.4 and 3.9.0b4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41300">bpo-41300</a>: Save files with non-ascii chars. Fix regression released in
3.9.0b4 and 3.8.4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37765">bpo-37765</a>: Add keywords to module name completion list. Rewrite
Completions section of IDLE doc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41152">bpo-41152</a>: The encoding of <code class="docutils literal notranslate"><span class="pre">stdin</span></code>, <code class="docutils literal notranslate"><span class="pre">stdout</span></code> and <code class="docutils literal notranslate"><span class="pre">stderr</span></code> in IDLE is
now always UTF-8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41144">bpo-41144</a>: Make Open Module open a special module such as os.path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39885">bpo-39885</a>: Make context menu Cut and Copy work again when right-clicking
within a selection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40723">bpo-40723</a>: Make test_idle pass when run after import.</p></li>
</ul>
</section>
<section id="id407">
<h3>C API<a class="headerlink" href="#id407" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41936">bpo-41936</a>: Removed undocumented macros <code class="docutils literal notranslate"><span class="pre">Py_ALLOW_RECURSION</span></code> and
<code class="docutils literal notranslate"><span class="pre">Py_END_ALLOW_RECURSION</span></code> and the <code class="docutils literal notranslate"><span class="pre">recursion_critical</span></code> field of the
<a class="reference internal" href="../c-api/init.html#c.PyInterpreterState" title="PyInterpreterState"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyInterpreterState</span></code></a> structure.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41692">bpo-41692</a>: The <code class="docutils literal notranslate"><span class="pre">PyUnicode_InternImmortal()</span></code> function is now deprecated
and will be removed in Python 3.12: use <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_InternInPlace" title="PyUnicode_InternInPlace"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_InternInPlace()</span></code></a>
instead. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41842">bpo-41842</a>: Add <a class="reference internal" href="../c-api/codec.html#c.PyCodec_Unregister" title="PyCodec_Unregister"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCodec_Unregister()</span></code></a> function to unregister a codec
search function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41834">bpo-41834</a>: Remove the <code class="docutils literal notranslate"><span class="pre">_Py_CheckRecursionLimit</span></code> variable: it has been
replaced by <code class="docutils literal notranslate"><span class="pre">ceval.recursion_limit</span></code> of the <a class="reference internal" href="../c-api/init.html#c.PyInterpreterState" title="PyInterpreterState"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyInterpreterState</span></code></a>
structure. Patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41689">bpo-41689</a>: Types created with <a class="reference internal" href="../c-api/type.html#c.PyType_FromSpec" title="PyType_FromSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpec()</span></code></a> now make any
signature in their <code class="docutils literal notranslate"><span class="pre">tp_doc</span></code> slot accessible from <code class="docutils literal notranslate"><span class="pre">__text_signature__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41524">bpo-41524</a>: Fix bug in PyOS_mystrnicmp and PyOS_mystricmp that incremented
pointers beyond the end of a string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41324">bpo-41324</a>: Add a minimal decimal capsule API. The API supports fast
conversions between Decimals up to 38 digits and their triple
representation as a C struct.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30155">bpo-30155</a>: Add <a class="reference internal" href="../c-api/datetime.html#c.PyDateTime_DATE_GET_TZINFO" title="PyDateTime_DATE_GET_TZINFO"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDateTime_DATE_GET_TZINFO()</span></code></a> and
<a class="reference internal" href="../c-api/datetime.html#c.PyDateTime_TIME_GET_TZINFO" title="PyDateTime_TIME_GET_TZINFO"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDateTime_TIME_GET_TZINFO()</span></code></a> macros for accessing the <code class="docutils literal notranslate"><span class="pre">tzinfo</span></code>
attributes of <a class="reference internal" href="../library/datetime.html#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a> and <a class="reference internal" href="../library/datetime.html#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.time</span></code></a>
objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: Revert <a class="reference internal" href="../c-api/type.html#c.PyType_HasFeature" title="PyType_HasFeature"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_HasFeature()</span></code></a> change: it reads again
directly the <a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_flags" title="PyTypeObject.tp_flags"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyTypeObject.tp_flags</span></code></a> member when the limited C
API is not used, rather than always calling <a class="reference internal" href="../c-api/type.html#c.PyType_GetFlags" title="PyType_GetFlags"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetFlags()</span></code></a>
which hides implementation details.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41123">bpo-41123</a>: Remove <code class="docutils literal notranslate"><span class="pre">PyUnicode_AsUnicodeCopy</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41123">bpo-41123</a>: Removed <code class="docutils literal notranslate"><span class="pre">PyLong_FromUnicode()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41123">bpo-41123</a>: Removed <code class="docutils literal notranslate"><span class="pre">PyUnicode_GetMax()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41123">bpo-41123</a>: Removed <code class="docutils literal notranslate"><span class="pre">Py_UNICODE_str*</span></code> functions manipulating
<code class="docutils literal notranslate"><span class="pre">Py_UNICODE*</span></code> strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=41103">bpo-41103</a>: <code class="docutils literal notranslate"><span class="pre">PyObject_AsCharBuffer()</span></code>, <code class="docutils literal notranslate"><span class="pre">PyObject_AsReadBuffer()</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyObject_CheckReadBuffer()</span></code>, and <code class="docutils literal notranslate"><span class="pre">PyObject_AsWriteBuffer()</span></code> are
removed. Please migrate to new buffer protocol;
<a class="reference internal" href="../c-api/buffer.html#c.PyObject_GetBuffer" title="PyObject_GetBuffer"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GetBuffer()</span></code></a> and <a class="reference internal" href="../c-api/buffer.html#c.PyBuffer_Release" title="PyBuffer_Release"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBuffer_Release()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36346">bpo-36346</a>: Raises DeprecationWarning for <code class="docutils literal notranslate"><span class="pre">PyUnicode_FromUnicode(NULL,</span>
<span class="pre">size)</span></code> and <code class="docutils literal notranslate"><span class="pre">PyUnicode_FromStringAndSize(NULL,</span> <span class="pre">size)</span></code> with <code class="docutils literal notranslate"><span class="pre">size</span> <span class="pre">></span> <span class="pre">0</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36346">bpo-36346</a>: Mark <code class="docutils literal notranslate"><span class="pre">Py_UNICODE_COPY</span></code>, <code class="docutils literal notranslate"><span class="pre">Py_UNICODE_FILL</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyUnicode_WSTR_LENGTH</span></code>, <code class="docutils literal notranslate"><span class="pre">PyUnicode_FromUnicode</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyUnicode_AsUnicode</span></code>, and <code class="docutils literal notranslate"><span class="pre">PyUnicode_AsUnicodeAndSize</span></code> as deprecated
in C. Remove <code class="docutils literal notranslate"><span class="pre">Py_UNICODE_MATCH</span></code> which was deprecated and broken since
Python 3.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40989">bpo-40989</a>: The <code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_INIT()</span></code> and <code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_INIT_VAR()</span></code>
macros become aliases to, respectively, <a class="reference internal" href="../c-api/allocation.html#c.PyObject_Init" title="PyObject_Init"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_Init()</span></code></a> and
<a class="reference internal" href="../c-api/allocation.html#c.PyObject_InitVar" title="PyObject_InitVar"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_InitVar()</span></code></a> functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36020">bpo-36020</a>: On Windows, <code class="docutils literal notranslate"><span class="pre">#include</span> <span class="pre">"pyerrors.h"</span></code> no longer defines
<code class="docutils literal notranslate"><span class="pre">snprintf</span></code> and <code class="docutils literal notranslate"><span class="pre">vsnprintf</span></code> macros.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40943">bpo-40943</a>: The <code class="docutils literal notranslate"><span class="pre">PY_SSIZE_T_CLEAN</span></code> macro must now be defined to use
<a class="reference internal" href="../c-api/arg.html#c.PyArg_ParseTuple" title="PyArg_ParseTuple"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_ParseTuple()</span></code></a> and <a class="reference internal" href="../c-api/arg.html#c.Py_BuildValue" title="Py_BuildValue"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_BuildValue()</span></code></a> formats which use
<code class="docutils literal notranslate"><span class="pre">#</span></code>: <code class="docutils literal notranslate"><span class="pre">es#</span></code>, <code class="docutils literal notranslate"><span class="pre">et#</span></code>, <code class="docutils literal notranslate"><span class="pre">s#</span></code>, <code class="docutils literal notranslate"><span class="pre">u#</span></code>, <code class="docutils literal notranslate"><span class="pre">y#</span></code>, <code class="docutils literal notranslate"><span class="pre">z#</span></code>, <code class="docutils literal notranslate"><span class="pre">U#</span></code> and
<code class="docutils literal notranslate"><span class="pre">Z#</span></code>. See <a class="reference internal" href="../c-api/arg.html#arg-parsing"><span class="std std-ref">Parsing arguments and building values</span></a> and
the <span class="target" id="index-290"></span><a class="pep reference external" href="https://peps.python.org/pep-0353/"><strong>PEP 353</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40910">bpo-40910</a>: Export explicitly the <a class="reference internal" href="../c-api/init_config.html#c.Py_GetArgcArgv" title="Py_GetArgcArgv"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetArgcArgv()</span></code></a> function to the
C API and document the function. Previously, it was exported implicitly
which no longer works since Python is built with <code class="docutils literal notranslate"><span class="pre">-fvisibility=hidden</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40724">bpo-40724</a>: Allow defining buffer slots in type specs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40679">bpo-40679</a>: Fix a <code class="docutils literal notranslate"><span class="pre">_PyEval_EvalCode()</span></code> crash if <em>qualname</em> argument is
NULL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40839">bpo-40839</a>: Calling <a class="reference internal" href="../c-api/dict.html#c.PyDict_GetItem" title="PyDict_GetItem"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDict_GetItem()</span></code></a> without <a class="reference internal" href="../glossary.html#term-GIL"><span class="xref std std-term">GIL</span></a> held had
been allowed for historical reason. It is no longer allowed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40826">bpo-40826</a>: <code class="xref c c-func docutils literal notranslate"><span class="pre">PyOS_InterruptOccurred()</span></code> now fails with a fatal error
if it is called with the GIL released.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40792">bpo-40792</a>: The result of <a class="reference internal" href="../c-api/number.html#c.PyNumber_Index" title="PyNumber_Index"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyNumber_Index()</span></code></a> now always has exact
type <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>. Previously, the result could have been an instance of a
subclass of <code class="docutils literal notranslate"><span class="pre">int</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39573">bpo-39573</a>: Convert <a class="reference internal" href="../c-api/refcounting.html#c.Py_REFCNT" title="Py_REFCNT"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_REFCNT()</span></code></a> and <a class="reference internal" href="../c-api/structures.html#c.Py_SIZE" title="Py_SIZE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SIZE()</span></code></a> macros to
static inline functions. They cannot be used as l-value anymore: use
<a class="reference internal" href="../c-api/refcounting.html#c.Py_SET_REFCNT" title="Py_SET_REFCNT"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SET_REFCNT()</span></code></a> and <a class="reference internal" href="../c-api/structures.html#c.Py_SET_SIZE" title="Py_SET_SIZE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SET_SIZE()</span></code></a> to set an object
reference count and size. This change is backward incompatible on purpose,
to prepare the C API for an opaque <a class="reference internal" href="../c-api/structures.html#c.PyObject" title="PyObject"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyObject</span></code></a> structure.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40703">bpo-40703</a>: The PyType_FromSpec*() functions no longer overwrite the type’s
“__module__” attribute if it is set via “Py_tp_members” or “Py_tp_getset”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39583">bpo-39583</a>: Remove superfluous “extern C” declarations from
<code class="docutils literal notranslate"><span class="pre">Include/cpython/*.h</span></code>.</p></li>
</ul>
</section>
</section>
<section id="python-3-9-0-beta-1">
<h2>Python 3.9.0 beta 1<a class="headerlink" href="#python-3-9-0-beta-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2020-05-19</em></p>
<section id="id408">
<h3>Security<a class="headerlink" href="#id408" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40501">bpo-40501</a>: <a class="reference internal" href="../library/uuid.html#module-uuid" title="uuid: UUID objects (universally unique identifiers) according to RFC 9562"><code class="xref py py-mod docutils literal notranslate"><span class="pre">uuid</span></code></a> no longer uses <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> to load
<code class="file docutils literal notranslate"><span class="pre">libuuid</span></code> or <code class="file docutils literal notranslate"><span class="pre">rpcrt4.dll</span></code> at runtime.</p></li>
</ul>
</section>
<section id="id409">
<h3>Core and Builtins<a class="headerlink" href="#id409" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40663">bpo-40663</a>: Correctly generate annotations where parentheses are omitted
but required (e.g: <code class="docutils literal notranslate"><span class="pre">Type[(str,</span> <span class="pre">int,</span> <span class="pre">*other))]</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40596">bpo-40596</a>: Fixed <a class="reference internal" href="../library/stdtypes.html#str.isidentifier" title="str.isidentifier"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.isidentifier()</span></code></a> for non-canonicalized strings
containing non-BMP characters on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40593">bpo-40593</a>: Improved syntax errors for invalid characters in source code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40585">bpo-40585</a>: Fixed a bug when using <a class="reference internal" href="../library/codeop.html#codeop.compile_command" title="codeop.compile_command"><code class="xref py py-func docutils literal notranslate"><span class="pre">codeop.compile_command()</span></code></a> that was
causing exceptions to be swallowed with the new parser. Patch by Pablo
Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40566">bpo-40566</a>: Apply <span class="target" id="index-291"></span><a class="pep reference external" href="https://peps.python.org/pep-0573/"><strong>PEP 573</strong></a> to <a class="reference internal" href="../library/abc.html#module-abc" title="abc: Abstract base classes according to :pep:`3119`."><code class="xref py py-mod docutils literal notranslate"><span class="pre">abc</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40502">bpo-40502</a>: Initialize <code class="docutils literal notranslate"><span class="pre">n->n_col_offset</span></code>. (Patch by Joannah Nanjekye)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40527">bpo-40527</a>: Fix command line argument parsing: no longer write errors
multiple times into stderr.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/errno.html#module-errno" title="errno: Standard errno system symbols."><code class="xref py py-mod docutils literal notranslate"><span class="pre">errno</span></code></a> to multiphase initialization (<span class="target" id="index-292"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40523">bpo-40523</a>: Add pass-throughs for <a class="reference internal" href="../library/functions.html#hash" title="hash"><code class="xref py py-func docutils literal notranslate"><span class="pre">hash()</span></code></a> and <a class="reference internal" href="../library/functions.html#reversed" title="reversed"><code class="xref py py-func docutils literal notranslate"><span class="pre">reversed()</span></code></a> to
<a class="reference internal" href="../library/weakref.html#weakref.proxy" title="weakref.proxy"><code class="xref py py-class docutils literal notranslate"><span class="pre">weakref.proxy</span></code></a> objects. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/syslog.html#module-syslog" title="syslog: An interface to the Unix syslog library routines. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">syslog</span></code></a> to multiphase initialization (<span class="target" id="index-293"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40246">bpo-40246</a>: Reporting a specialised error message for invalid string
prefixes, which was introduced in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40246">bpo-40246</a>, is being reverted due to
backwards compatibility concerns for strings that immediately follow a
reserved keyword without whitespace between them. Constructs like
<code class="docutils literal notranslate"><span class="pre">bg="#d00"</span> <span class="pre">if</span> <span class="pre">clear</span> <span class="pre">else"#fca"</span></code> were failing to parse, which is not an
acceptable breakage on such short notice.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40417">bpo-40417</a>: Fix imp module deprecation warning when PyImport_ReloadModule
is called. Patch by Robert Rouhani.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40408">bpo-40408</a>: Fixed support of nested type variables in GenericAlias (e.g.
<code class="docutils literal notranslate"><span class="pre">list[list[T]]</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _stat module to multiphase initialization (<span class="target" id="index-294"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29587">bpo-29587</a>: Enable implicit exception chaining when calling
<a class="reference internal" href="../reference/expressions.html#generator.throw" title="generator.throw"><code class="xref py py-meth docutils literal notranslate"><span class="pre">generator.throw()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40328">bpo-40328</a>: Add tools for generating mappings headers for CJKCodecs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40228">bpo-40228</a>: Setting frame.f_lineno is now robust w.r.t. changes in the
source-to-bytecode compiler</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38880">bpo-38880</a>: Added the ability to list interpreters associated with channel
ends in the internal subinterpreters module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37986">bpo-37986</a>: Improve performance of <a class="reference internal" href="../c-api/long.html#c.PyLong_FromDouble" title="PyLong_FromDouble"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromDouble()</span></code></a> for values
that fit into <span class="c-expr sig sig-inline c"><span class="kt">long</span></span>.</p></li>
</ul>
</section>
<section id="id410">
<h3>Library<a class="headerlink" href="#id410" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40662">bpo-40662</a>: Fixed <a class="reference internal" href="../library/ast.html#ast.get_source_segment" title="ast.get_source_segment"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.get_source_segment()</span></code></a> for ast nodes that have
incomplete location information. Patch by Irit Katriel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40665">bpo-40665</a>: Convert <a class="reference internal" href="../library/bisect.html#module-bisect" title="bisect: Array bisection algorithms for binary searching."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bisect</span></code></a> to use Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40536">bpo-40536</a>: Added the <a class="reference internal" href="../library/zoneinfo.html#zoneinfo.available_timezones" title="zoneinfo.available_timezones"><code class="xref py py-func docutils literal notranslate"><span class="pre">available_timezones()</span></code></a> function to the
<a class="reference internal" href="../library/zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a> module. Patch by Paul Ganssle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40645">bpo-40645</a>: The <a class="reference internal" href="../library/hmac.html#hmac.HMAC" title="hmac.HMAC"><code class="xref py py-class docutils literal notranslate"><span class="pre">hmac.HMAC</span></code></a> exposes internal implementation details.
The attributes <code class="docutils literal notranslate"><span class="pre">digest_cons</span></code>, <code class="docutils literal notranslate"><span class="pre">inner</span></code>, and <code class="docutils literal notranslate"><span class="pre">outer</span></code> are deprecated
and will be removed in the future.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40645">bpo-40645</a>: The internal module <code class="docutils literal notranslate"><span class="pre">_hashlib</span></code> wraps and exposes OpenSSL’s
HMAC API. The new code will be used in Python 3.10 after the internal
implementation details of the pure Python HMAC module are no longer part
of the public API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40637">bpo-40637</a>: Builtin hash modules can now be disabled or selectively enabled
with <code class="docutils literal notranslate"><span class="pre">configure</span> <span class="pre">--with-builtin-hashlib-hashes=sha3,blake1</span></code> or
<code class="docutils literal notranslate"><span class="pre">--without-builtin-hashlib-hashes</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37630">bpo-37630</a>: The <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> module can now use SHA3 hashes and SHAKE XOF
from OpenSSL when available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40479">bpo-40479</a>: The <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> now compiles with OpenSSL 3.0.0-alpha2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40257">bpo-40257</a>: Revert changes to <a class="reference internal" href="../library/inspect.html#inspect.getdoc" title="inspect.getdoc"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getdoc()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40607">bpo-40607</a>: When cancelling a task due to timeout, <a class="reference internal" href="../library/asyncio-task.html#asyncio.wait_for" title="asyncio.wait_for"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.wait_for()</span></code></a>
will now propagate the exception if an error happens during cancellation.
Patch by Roman Skurikhin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40612">bpo-40612</a>: Fix edge cases in SyntaxError formatting. If the offset is <=
0, no caret is printed. If the offset is > line length, the caret is
printed pointing just after the last character.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40597">bpo-40597</a>: If text content lines are longer than policy.max_line_length,
always use a content-encoding to make sure they are wrapped.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40571">bpo-40571</a>: Added functools.cache() as a simpler, more discoverable way to
access the unbounded cache variant of lru_cache(maxsize=None).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40503">bpo-40503</a>: <span class="target" id="index-295"></span><a class="pep reference external" href="https://peps.python.org/pep-0615/"><strong>PEP 615</strong></a>, the <a class="reference internal" href="../library/zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a> module. Adds support for the
IANA time zone database.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40397">bpo-40397</a>: Removed attributes <code class="docutils literal notranslate"><span class="pre">__args__</span></code> and <code class="docutils literal notranslate"><span class="pre">__parameters__</span></code> from
special generic aliases like <code class="docutils literal notranslate"><span class="pre">typing.List</span></code> (not subscripted).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40549">bpo-40549</a>: Convert posixmodule.c (“posix” or “nt” module) to the
multiphase initialization (PEP 489).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31033">bpo-31033</a>: Add a <code class="docutils literal notranslate"><span class="pre">msg</span></code> argument to <code class="xref py py-meth docutils literal notranslate"><span class="pre">Future.cancel()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">Task.cancel()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40541">bpo-40541</a>: Added an optional <em>counts</em> parameter to random.sample().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40515">bpo-40515</a>: The <a class="reference internal" href="../library/ssl.html#module-ssl" title="ssl: TLS/SSL wrapper for socket objects"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ssl</span></code></a> and <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> modules now actively check
that OpenSSL is build with thread support. Python 3.7.0 made thread
support mandatory and no longer works safely with a no-thread builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31033">bpo-31033</a>: When a <a class="reference internal" href="../library/asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Task</span></code></a> is cancelled, the exception
traceback now chains all the way back to where the task was first
interrupted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40504">bpo-40504</a>: <a class="reference internal" href="../library/functools.html#functools.lru_cache" title="functools.lru_cache"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.lru_cache()</span></code></a> objects can now be the targets of
weakrefs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40559">bpo-40559</a>: Fix possible memory leak in the C implementation of
<a class="reference internal" href="../library/asyncio-task.html#asyncio.Task" title="asyncio.Task"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Task</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40480">bpo-40480</a>: <code class="docutils literal notranslate"><span class="pre">fnmatch.fnmatch()</span></code> could take exponential time in the
presence of multiple <code class="docutils literal notranslate"><span class="pre">*</span></code> pattern characters. This was repaired by
generating more elaborate regular expressions to avoid futile
backtracking.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40495">bpo-40495</a>: <a class="reference internal" href="../library/compileall.html#module-compileall" title="compileall: Tools for byte-compiling all Python source files in a directory tree."><code class="xref py py-mod docutils literal notranslate"><span class="pre">compileall</span></code></a> is now able to use hardlinks to prevent
duplicates in a case when <code class="docutils literal notranslate"><span class="pre">.pyc</span></code> files for different optimization levels
have the same content.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40457">bpo-40457</a>: The ssl module now support OpenSSL builds without TLS 1.0 and
1.1 methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40355">bpo-40355</a>: Improve error reporting in <a class="reference internal" href="../library/ast.html#ast.literal_eval" title="ast.literal_eval"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.literal_eval()</span></code></a> in the
presence of malformed <a class="reference internal" href="../library/ast.html#ast.Dict" title="ast.Dict"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Dict</span></code></a> nodes instead of silently ignoring
any non-conforming elements. Patch by Curtis Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40465">bpo-40465</a>: Deprecated the optional <em>random</em> argument to
<em>random.shuffle()</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40459">bpo-40459</a>: <a class="reference internal" href="../library/platform.html#platform.win32_ver" title="platform.win32_ver"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.win32_ver()</span></code></a> now produces correct <em>ptype</em> strings
instead of empty strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39435">bpo-39435</a>: The first argument of <a class="reference internal" href="../library/pickle.html#pickle.loads" title="pickle.loads"><code class="xref py py-func docutils literal notranslate"><span class="pre">pickle.loads()</span></code></a> is now
positional-only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39305">bpo-39305</a>: Update <code class="xref py py-mod docutils literal notranslate"><span class="pre">nntplib</span></code> to merge <code class="xref py py-class docutils literal notranslate"><span class="pre">nntplib.NNTP</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">nntplib._NNTPBase</span></code>. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32494">bpo-32494</a>: Update <a class="reference internal" href="../library/dbm.html#module-dbm.gnu" title="dbm.gnu: GNU database manager (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.gnu</span></code></a> to use gdbm_count if possible when
calling <a class="reference internal" href="../library/functions.html#len" title="len"><code class="xref py py-func docutils literal notranslate"><span class="pre">len()</span></code></a>. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40453">bpo-40453</a>: Add <code class="docutils literal notranslate"><span class="pre">isolated=True</span></code> keyword-only parameter to
<code class="docutils literal notranslate"><span class="pre">_xxsubinterpreters.create()</span></code>. An isolated subinterpreter cannot spawn
threads, spawn a child process or call <code class="docutils literal notranslate"><span class="pre">os.fork()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40286">bpo-40286</a>: Remove <code class="docutils literal notranslate"><span class="pre">_random.Random.randbytes()</span></code>: the C implementation of
<code class="docutils literal notranslate"><span class="pre">randbytes()</span></code>. Implement the method in Python to ease subclassing:
<code class="docutils literal notranslate"><span class="pre">randbytes()</span></code> now directly reuses <code class="docutils literal notranslate"><span class="pre">getrandbits()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40394">bpo-40394</a>: Added default arguments to
<a class="reference internal" href="../library/difflib.html#difflib.SequenceMatcher.find_longest_match" title="difflib.SequenceMatcher.find_longest_match"><code class="xref py py-meth docutils literal notranslate"><span class="pre">difflib.SequenceMatcher.find_longest_match()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39995">bpo-39995</a>: Fix a race condition in concurrent.futures._ThreadWakeup:
access to _ThreadWakeup is now protected with the shutdown lock.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30966">bpo-30966</a>: <code class="docutils literal notranslate"><span class="pre">Process.shutdown(wait=True)</span></code> of <a class="reference internal" href="../library/concurrent.futures.html#module-concurrent.futures" title="concurrent.futures: Execute computations concurrently using threads or processes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures</span></code></a>
now closes explicitly the result queue.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30966">bpo-30966</a>: Add a new <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.SimpleQueue.close" title="multiprocessing.SimpleQueue.close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">close()</span></code></a> method to
the <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.SimpleQueue" title="multiprocessing.SimpleQueue"><code class="xref py py-class docutils literal notranslate"><span class="pre">SimpleQueue</span></code></a> class to explicitly close the
queue.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39966">bpo-39966</a>: Revert <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25597">bpo-25597</a>. <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.MagicMock" title="unittest.mock.MagicMock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.MagicMock</span></code></a> with wraps’
set uses default return values for magic methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39791">bpo-39791</a>: Added <code class="docutils literal notranslate"><span class="pre">files()</span></code> function to importlib.resources with support
for subdirectories in package data, matching backport in
importlib_resources 1.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40375">bpo-40375</a>: <a class="reference internal" href="../library/imaplib.html#imaplib.IMAP4.unselect" title="imaplib.IMAP4.unselect"><code class="xref py py-meth docutils literal notranslate"><span class="pre">imaplib.IMAP4.unselect()</span></code></a> is added. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40389">bpo-40389</a>: <code class="docutils literal notranslate"><span class="pre">repr()</span></code> now returns <code class="docutils literal notranslate"><span class="pre">typing.Optional[T]</span></code> when called for
<code class="docutils literal notranslate"><span class="pre">typing.Union</span></code> of two types, one of which is <code class="docutils literal notranslate"><span class="pre">NoneType</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40291">bpo-40291</a>: Add support for CAN_J1939 sockets (available on Linux 5.4+)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40273">bpo-40273</a>: <a class="reference internal" href="../library/types.html#types.MappingProxyType" title="types.MappingProxyType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.MappingProxyType</span></code></a> is now reversible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39075">bpo-39075</a>: The repr for <a class="reference internal" href="../library/types.html#types.SimpleNamespace" title="types.SimpleNamespace"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.SimpleNamespace</span></code></a> is now insertion
ordered rather than alphabetical.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40192">bpo-40192</a>: On AIX, <a class="reference internal" href="../library/time.html#time.thread_time" title="time.thread_time"><code class="xref py py-func docutils literal notranslate"><span class="pre">thread_time()</span></code></a> is now implemented with
<code class="docutils literal notranslate"><span class="pre">thread_cputime()</span></code> which has nanosecond resolution, rather than
<code class="docutils literal notranslate"><span class="pre">clock_gettime(CLOCK_THREAD_CPUTIME_ID)</span></code> which has a resolution of 10
milliseconds. Patch by Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40025">bpo-40025</a>: Raise TypeError when _generate_next_value_ is defined after
members. Patch by Ethan Onstott.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39058">bpo-39058</a>: In the argparse module, the repr for Namespace() and other
argument holders now displayed in the order attributes were added.
Formerly, it displayed in alphabetical order even though argument order is
preserved the user visible parts of the module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24416">bpo-24416</a>: The <code class="docutils literal notranslate"><span class="pre">isocalendar()</span></code> methods of <a class="reference internal" href="../library/datetime.html#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.date</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a> now return a <a class="reference internal" href="../glossary.html#term-named-tuple"><span class="xref std std-term">named tuple</span></a> instead of a
<a class="reference internal" href="../library/stdtypes.html#tuple" title="tuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a>.</p></li>
</ul>
</section>
<section id="id411">
<h3>Documentation<a class="headerlink" href="#id411" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34790">bpo-34790</a>: Add version of removal for explicit passing of coros to
<code class="docutils literal notranslate"><span class="pre">asyncio.wait()</span></code>’s documentation</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40561">bpo-40561</a>: Provide docstrings for webbrowser open functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40499">bpo-40499</a>: Mention that <a class="reference internal" href="../library/asyncio-task.html#asyncio.wait" title="asyncio.wait"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.wait()</span></code></a> requires a non-empty set of
awaitables.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39705">bpo-39705</a>: Tutorial example for sorted() in the Loop Techniques section is
given a better explanation. Also a new example is included to explain
sorted()’s basic behavior.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39435">bpo-39435</a>: Fix an incorrect signature for <a class="reference internal" href="../library/pickle.html#pickle.loads" title="pickle.loads"><code class="xref py py-func docutils literal notranslate"><span class="pre">pickle.loads()</span></code></a> in the docs</p></li>
</ul>
</section>
<section id="id412">
<h3>Tests<a class="headerlink" href="#id412" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40055">bpo-40055</a>: distutils.tests now saves/restores warnings filters to leave
them unchanged. Importing tests imports docutils which imports
pkg_resources which adds a warnings filter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40436">bpo-40436</a>: test_gdb and test.pythoninfo now check gdb command exit code.</p></li>
</ul>
</section>
<section id="id413">
<h3>Build<a class="headerlink" href="#id413" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40653">bpo-40653</a>: Move _dirnameW out of HAVE_SYMLINK to fix a potential compiling
issue.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40514">bpo-40514</a>: Add <code class="docutils literal notranslate"><span class="pre">--with-experimental-isolated-subinterpreters</span></code> build
option to <code class="docutils literal notranslate"><span class="pre">configure</span></code>: better isolate subinterpreters, experimental
build mode.</p></li>
</ul>
</section>
<section id="id414">
<h3>Windows<a class="headerlink" href="#id414" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40650">bpo-40650</a>: Include winsock2.h in pytime.c for timeval.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40458">bpo-40458</a>: Increase reserved stack space to prevent overflow crash on
Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39148">bpo-39148</a>: Add IPv6 support to <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> datagram endpoints in
ProactorEventLoop. Change the raised exception for unknown address
families to ValueError as it’s not coming from Windows API.</p></li>
</ul>
</section>
<section id="id415">
<h3>macOS<a class="headerlink" href="#id415" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34956">bpo-34956</a>: When building Python on macOS from source, <code class="docutils literal notranslate"><span class="pre">_tkinter</span></code> now
links with non-system Tcl and Tk frameworks if they are installed in
<code class="docutils literal notranslate"><span class="pre">/Library/Frameworks</span></code>, as had been the case on older releases of macOS.
If a macOS SDK is explicitly configured, by using
<code class="docutils literal notranslate"><span class="pre">--enable-universalsdk=</span></code> or <code class="docutils literal notranslate"><span class="pre">-isysroot</span></code>, only the SDK itself is
searched. The default behavior can still be overridden with
<code class="docutils literal notranslate"><span class="pre">--with-tcltk-includes</span></code> and <code class="docutils literal notranslate"><span class="pre">--with-tcltk-libs</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35569">bpo-35569</a>: Expose RFC 3542 IPv6 socket options.</p></li>
</ul>
</section>
<section id="id416">
<h3>Tools/Demos<a class="headerlink" href="#id416" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40479">bpo-40479</a>: Update multissltest helper to test with latest OpenSSL 1.0.2,
1.1.0, 1.1.1, and 3.0.0-alpha.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40431">bpo-40431</a>: Fix a syntax typo in <code class="docutils literal notranslate"><span class="pre">turtledemo</span></code> that now raises a
<code class="docutils literal notranslate"><span class="pre">SyntaxError</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40163">bpo-40163</a>: Fix multissltest tool. OpenSSL has changed download URL for old
releases. The multissltest tool now tries to download from current and old
download URLs.</p></li>
</ul>
</section>
<section id="id417">
<h3>C API<a class="headerlink" href="#id417" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39465">bpo-39465</a>: Remove the <code class="docutils literal notranslate"><span class="pre">_PyUnicode_ClearStaticStrings()</span></code> function from
the C API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38787">bpo-38787</a>: Add PyCFunction_CheckExact() macro for exact type checks now
that we allow subtypes of PyCFunction, as well as PyCMethod_CheckExact()
and PyCMethod_Check() for the new PyCMethod subtype.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40545">bpo-40545</a>: Declare <code class="docutils literal notranslate"><span class="pre">_PyErr_GetTopmostException()</span></code> with <code class="docutils literal notranslate"><span class="pre">PyAPI_FUNC()</span></code>
to properly export the function in the C API. The function remains private
(<code class="docutils literal notranslate"><span class="pre">_Py</span></code>) prefix.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40412">bpo-40412</a>: Nullify inittab_copy during finalization, preventing future
interpreter initializations in an embedded situation from crashing. Patch
by Gregory Szorc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40429">bpo-40429</a>: The <a class="reference internal" href="../c-api/init.html#c.PyThreadState_GetFrame" title="PyThreadState_GetFrame"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_GetFrame()</span></code></a> function now returns a
strong reference to the frame.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40428">bpo-40428</a>: Remove the following functions from the C API. Call
<a class="reference internal" href="../c-api/gcsupport.html#c.PyGC_Collect" title="PyGC_Collect"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGC_Collect()</span></code></a> explicitly to free all free lists.</p>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">PyAsyncGen_ClearFreeLists()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyContext_ClearFreeList()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyDict_ClearFreeList()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyFloat_ClearFreeList()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyFrame_ClearFreeList()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyList_ClearFreeList()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PySet_ClearFreeList()</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PyTuple_ClearFreeList()</span></code></p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40421">bpo-40421</a>: New <a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetBack" title="PyFrame_GetBack"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetBack()</span></code></a> function: get the frame next
outer frame.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40421">bpo-40421</a>: New <a class="reference internal" href="../c-api/frame.html#c.PyFrame_GetCode" title="PyFrame_GetCode"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyFrame_GetCode()</span></code></a> function: return a borrowed
reference to the frame code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40217">bpo-40217</a>: Ensure that instances of types created with
<a class="reference internal" href="../c-api/type.html#c.PyType_FromSpecWithBases" title="PyType_FromSpecWithBases"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpecWithBases()</span></code></a> will visit its class object when
traversing references in the garbage collector (implemented as an
extension of the provided <a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_traverse" title="PyTypeObject.tp_traverse"><code class="xref c c-member docutils literal notranslate"><span class="pre">tp_traverse</span></code></a>). Patch by
Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38787">bpo-38787</a>: Module C state is now accessible from C-defined heap type
methods (<span class="target" id="index-296"></span><a class="pep reference external" href="https://peps.python.org/pep-0573/"><strong>PEP 573</strong></a>). Patch by Marcel Plch and Petr Viktorin.</p></li>
</ul>
</section>
</section>
<section id="python-3-9-0-alpha-6">
<h2>Python 3.9.0 alpha 6<a class="headerlink" href="#python-3-9-0-alpha-6" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2020-04-27</em></p>
<section id="id418">
<h3>Security<a class="headerlink" href="#id418" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40121">bpo-40121</a>: Fixes audit events raised on creating a new socket.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39073">bpo-39073</a>: Disallow CR or LF in email.headerregistry.Address arguments to
guard against header injection attacks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39503">bpo-39503</a>: <span class="target" id="index-297"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2020-8492"><strong>CVE 2020-8492</strong></a>: The
<a class="reference internal" href="../library/urllib.request.html#urllib.request.AbstractBasicAuthHandler" title="urllib.request.AbstractBasicAuthHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">AbstractBasicAuthHandler</span></code></a> class of the
<a class="reference internal" href="../library/urllib.request.html#module-urllib.request" title="urllib.request: Extensible library for opening URLs."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.request</span></code></a> module uses an inefficient regular expression which
can be exploited by an attacker to cause a denial of service. Fix the
regex to prevent the catastrophic backtracking. Vulnerability reported by
Ben Caller and Matt Schwager.</p></li>
</ul>
</section>
<section id="id419">
<h3>Core and Builtins<a class="headerlink" href="#id419" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40313">bpo-40313</a>: Improve the performance of bytes.hex().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40334">bpo-40334</a>: Switch to a new parser, based on PEG. For more details see PEP
617. To temporarily switch back to the old parser, use <code class="docutils literal notranslate"><span class="pre">-X</span> <span class="pre">oldparser</span></code> or
<code class="docutils literal notranslate"><span class="pre">PYTHONOLDPARSER=1</span></code>. In Python 3.10 we will remove the old parser
completely, including the <code class="docutils literal notranslate"><span class="pre">parser</span></code> module (already deprecated) and
anything that depends on it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40267">bpo-40267</a>: Fix the tokenizer to display the correct error message, when
there is a <code class="docutils literal notranslate"><span class="pre">SyntaxError</span></code> on the last input character and no newline
follows. It used to be <code class="docutils literal notranslate"><span class="pre">unexpected</span> <span class="pre">EOF</span> <span class="pre">while</span> <span class="pre">parsing</span></code>, while it should
be <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">syntax</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39522">bpo-39522</a>: Correctly unparse explicit <code class="docutils literal notranslate"><span class="pre">u</span></code> prefix for strings when
postponed evaluation for annotations activated. Patch by Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40246">bpo-40246</a>: Report a specialized error message, <code class="docutils literal notranslate"><span class="pre">invalid</span> <span class="pre">string</span> <span class="pre">prefix</span></code>,
when the tokenizer encounters a string with an invalid prefix.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40082">bpo-40082</a>: Fix the signal handler: it now always uses the main
interpreter, rather than trying to get the current Python thread state.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37388">bpo-37388</a>: str.encode() and str.decode() no longer check the encoding and
errors in development mode or in debug mode during Python finalization.
The codecs machinery can no longer work on very late calls to str.encode()
and str.decode().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40077">bpo-40077</a>: Fix possible refleaks in <code class="xref py py-mod docutils literal notranslate"><span class="pre">_json</span></code>, memo of PyScannerObject
should be traversed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37207">bpo-37207</a>: Speed up calls to <code class="docutils literal notranslate"><span class="pre">dict()</span></code> by using the <span class="target" id="index-298"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40141">bpo-40141</a>: Add column and line information to <code class="docutils literal notranslate"><span class="pre">ast.keyword</span></code> nodes. Patch
by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/resource.html#module-resource" title="resource: An interface to provide resource usage information on the current process. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">resource</span></code></a> to multiphase initialization
(<span class="target" id="index-299"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port <a class="reference internal" href="../library/math.html#module-math" title="math: Mathematical functions (sin() etc.)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code></a> to multiphase initialization (<span class="target" id="index-300"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _uuid module to multiphase initialization (<span class="target" id="index-301"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40077">bpo-40077</a>: Convert json module to use <a class="reference internal" href="../c-api/type.html#c.PyType_FromSpec" title="PyType_FromSpec"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_FromSpec()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40067">bpo-40067</a>: Improve the error message for multiple star expressions in an
assignment. Patch by Furkan Onder</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _functools module to multiphase initialization (PEP
489). Patch by Paulo Henrique Silva.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port operator module to multiphase initialization (PEP 489).
Patch by Paulo Henrique Silva.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20526">bpo-20526</a>: Fix <a class="reference internal" href="../c-api/init.html#c.PyThreadState_Clear" title="PyThreadState_Clear"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_Clear()</span></code></a>. <code class="docutils literal notranslate"><span class="pre">PyThreadState.frame</span></code> is
a borrowed reference, not a strong reference: <code class="docutils literal notranslate"><span class="pre">PyThreadState_Clear()</span></code>
must not call <code class="docutils literal notranslate"><span class="pre">Py_CLEAR(tstate->frame)</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port time module to multiphase initialization (<span class="target" id="index-302"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).
Patch by Paulo Henrique Silva.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _weakref extension module to multiphase initialization
(<span class="target" id="index-303"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40020">bpo-40020</a>: Fix a leak and subsequent crash in parsetok.c caused by realloc
misuse on a rare codepath.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39939">bpo-39939</a>: Added str.removeprefix and str.removesuffix methods and
corresponding bytes, bytearray, and collections.UserString methods to
remove affixes from a string if present. See <span class="target" id="index-304"></span><a class="pep reference external" href="https://peps.python.org/pep-0616/"><strong>PEP 616</strong></a> for a full
description. Patch by Dennis Sweeney.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39481">bpo-39481</a>: Implement PEP 585. This supports list[int], tuple[str, …]
etc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32894">bpo-32894</a>: Support unparsing of infinity numbers in postponed annotations.
Patch by Batuhan Taşkaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37207">bpo-37207</a>: Speed up calls to <code class="docutils literal notranslate"><span class="pre">list()</span></code> by using the <span class="target" id="index-305"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Mark Shannon.</p></li>
</ul>
</section>
<section id="id420">
<h3>Library<a class="headerlink" href="#id420" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40398">bpo-40398</a>: <a class="reference internal" href="../library/typing.html#typing.get_args" title="typing.get_args"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_args()</span></code></a> now always returns an empty tuple for
special generic aliases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40396">bpo-40396</a>: Functions <a class="reference internal" href="../library/typing.html#typing.get_origin" title="typing.get_origin"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_origin()</span></code></a>, <a class="reference internal" href="../library/typing.html#typing.get_args" title="typing.get_args"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_args()</span></code></a>
and <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> support now generic aliases like
<code class="docutils literal notranslate"><span class="pre">list[int]</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38061">bpo-38061</a>: Optimize the <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module on FreeBSD using
<code class="docutils literal notranslate"><span class="pre">closefrom()</span></code>. A single <code class="docutils literal notranslate"><span class="pre">close(fd)</span></code> syscall is cheap, but when
<code class="docutils literal notranslate"><span class="pre">sysconf(_SC_OPEN_MAX)</span></code> is high, the loop calling <code class="docutils literal notranslate"><span class="pre">close(fd)</span></code> on each
file descriptor can take several milliseconds.</p>
<p>The workaround on FreeBSD to improve performance was to load and mount the
fdescfs kernel module, but this is not enabled by default.</p>
<p>Initial patch by Ed Maste (emaste), Conrad Meyer (cem), Kyle Evans
(kevans) and Kubilay Kocak (koobs):
<a class="reference external" href="https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242274">https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242274</a></p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38061">bpo-38061</a>: On FreeBSD, <code class="docutils literal notranslate"><span class="pre">os.closerange(fd_low,</span> <span class="pre">fd_high)</span></code> now calls
<code class="docutils literal notranslate"><span class="pre">closefrom(fd_low)</span></code> if <em>fd_high</em> is greater than or equal to
<code class="docutils literal notranslate"><span class="pre">sysconf(_SC_OPEN_MAX)</span></code>.</p>
<p>Initial patch by Ed Maste (emaste), Conrad Meyer (cem), Kyle Evans
(kevans) and Kubilay Kocak (koobs):
<a class="reference external" href="https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242274">https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=242274</a></p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40360">bpo-40360</a>: The <code class="xref py py-mod docutils literal notranslate"><span class="pre">lib2to3</span></code> module is pending deprecation due to
<span class="target" id="index-306"></span><a class="pep reference external" href="https://peps.python.org/pep-0617/"><strong>PEP 617</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40138">bpo-40138</a>: Fix the Windows implementation of <a class="reference internal" href="../library/os.html#os.waitpid" title="os.waitpid"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.waitpid()</span></code></a> for exit
code larger than <code class="docutils literal notranslate"><span class="pre">INT_MAX</span> <span class="pre">>></span> <span class="pre">8</span></code>. The exit status is now interpreted as
an unsigned number.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39942">bpo-39942</a>: Set “__main__” as the default module name when “__name__” is
missing in <a class="reference internal" href="../library/typing.html#typing.TypeVar" title="typing.TypeVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypeVar</span></code></a>. Patch by Weipeng Hong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40275">bpo-40275</a>: The <a class="reference internal" href="../library/logging.html#module-logging" title="logging: Flexible event logging system for applications."><code class="xref py py-mod docutils literal notranslate"><span class="pre">logging</span></code></a> package is now imported lazily in
<a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> only when the <a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertLogs" title="unittest.TestCase.assertLogs"><code class="xref py py-meth docutils literal notranslate"><span class="pre">assertLogs()</span></code></a>
assertion is used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40275">bpo-40275</a>: The <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> package is now imported lazily in
<a class="reference internal" href="../library/unittest.html#module-unittest" title="unittest: Unit testing framework for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest</span></code></a> only when the <a class="reference internal" href="../library/unittest.html#unittest.IsolatedAsyncioTestCase" title="unittest.IsolatedAsyncioTestCase"><code class="xref py py-class docutils literal notranslate"><span class="pre">IsolatedAsyncioTestCase</span></code></a>
class is used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40330">bpo-40330</a>: In <code class="xref py py-meth docutils literal notranslate"><span class="pre">ShareableList.__setitem__()</span></code>, check the size of a new
string item after encoding it to utf-8, not before.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40148">bpo-40148</a>: Added <code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.with_stem()</span></code> to create a new Path with
the stem replaced.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40325">bpo-40325</a>: Deprecated support for set objects in random.sample().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40257">bpo-40257</a>: Improved help for the <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a> module. Docstrings are now
shown for all special forms and special generic aliases (like <code class="docutils literal notranslate"><span class="pre">Union</span></code>
and <code class="docutils literal notranslate"><span class="pre">List</span></code>). Using <code class="docutils literal notranslate"><span class="pre">help()</span></code> with generic alias like <code class="docutils literal notranslate"><span class="pre">List[int]</span></code> will
show the help for the correspondent concrete type (<code class="docutils literal notranslate"><span class="pre">list</span></code> in this case).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40257">bpo-40257</a>: <a class="reference internal" href="../library/inspect.html#inspect.getdoc" title="inspect.getdoc"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getdoc()</span></code></a> no longer returns docstring inherited
from the type of the object or from parent class if it is a class if it is
not defined in the object itself. In <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a> the documentation string
is now shown not only for class, function, method etc, but for any object
that has its own <code class="docutils literal notranslate"><span class="pre">__doc__</span></code> attribute.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40287">bpo-40287</a>: Fixed <code class="docutils literal notranslate"><span class="pre">SpooledTemporaryFile.seek()</span></code> to return the position.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40290">bpo-40290</a>: Added zscore() to statistics.NormalDist().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40282">bpo-40282</a>: Allow <code class="docutils literal notranslate"><span class="pre">random.getrandbits(0)</span></code> to succeed and to return 0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40286">bpo-40286</a>: Add <a class="reference internal" href="../library/random.html#random.randbytes" title="random.randbytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">random.randbytes()</span></code></a> function and
<a class="reference internal" href="../library/random.html#random.Random.randbytes" title="random.Random.randbytes"><code class="xref py py-meth docutils literal notranslate"><span class="pre">random.Random.randbytes()</span></code></a> method to generate random bytes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40277">bpo-40277</a>: <a class="reference internal" href="../library/collections.html#collections.namedtuple" title="collections.namedtuple"><code class="xref py py-func docutils literal notranslate"><span class="pre">collections.namedtuple()</span></code></a> now provides a human-readable
repr for its field accessors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40270">bpo-40270</a>: The included copy of sqlite3 on Windows is now compiled with
the json extension. This allows the use of functions such as
<code class="docutils literal notranslate"><span class="pre">json_object</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29255">bpo-29255</a>: Wait in <code class="docutils literal notranslate"><span class="pre">KqueueSelector.select</span></code> when no fds are registered</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40260">bpo-40260</a>: Ensure <a class="reference internal" href="../library/modulefinder.html#module-modulefinder" title="modulefinder: Find modules used by a script."><code class="xref py py-mod docutils literal notranslate"><span class="pre">modulefinder</span></code></a> uses <a class="reference internal" href="../library/io.html#io.open_code" title="io.open_code"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.open_code()</span></code></a> and
respects coding comments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40234">bpo-40234</a>: Allow again to spawn daemon threads in subinterpreters (revert
change which denied them).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39207">bpo-39207</a>: Workers in <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">ProcessPoolExecutor</span></code></a> are
now spawned on demand, only when there are no available idle workers to
reuse. This optimizes startup overhead and reduces the amount of lost CPU
time to idle workers. Patch by Kyle Stanley.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40091">bpo-40091</a>: Fix a hang at fork in the logging module: the new private
_at_fork_reinit() method is now used to reinitialize locks at fork in the
child process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40149">bpo-40149</a>: Implement traverse and clear slots in _abc._abc_data type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40208">bpo-40208</a>: Remove deprecated <code class="xref py py-meth docutils literal notranslate"><span class="pre">symtable.SymbolTable.has_exec()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40196">bpo-40196</a>: Fix a bug in the <a class="reference internal" href="../library/symtable.html#module-symtable" title="symtable: Interface to the compiler's internal symbol tables."><code class="xref py py-mod docutils literal notranslate"><span class="pre">symtable</span></code></a> module that was causing
incorrectly report global variables as local. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40190">bpo-40190</a>: Add support for <code class="docutils literal notranslate"><span class="pre">_SC_AIX_REALMEM</span></code> to <code class="xref py py-func docutils literal notranslate"><span class="pre">posix.sysconf()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40182">bpo-40182</a>: Removed the <code class="docutils literal notranslate"><span class="pre">_field_types</span></code> attribute of the
<a class="reference internal" href="../library/typing.html#typing.NamedTuple" title="typing.NamedTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NamedTuple</span></code></a> class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36517">bpo-36517</a>: Multiple inheritance with <a class="reference internal" href="../library/typing.html#typing.NamedTuple" title="typing.NamedTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NamedTuple</span></code></a> now raises
an error instead of silently ignoring other types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40126">bpo-40126</a>: Fixed reverting multiple patches in unittest.mock. Patcher’s
<code class="docutils literal notranslate"><span class="pre">__exit__()</span></code> is now never called if its <code class="docutils literal notranslate"><span class="pre">__enter__()</span></code> is failed.
Returning true from <code class="docutils literal notranslate"><span class="pre">__exit__()</span></code> silences now the exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40094">bpo-40094</a>: CGIHTTPRequestHandler of http.server now logs the CGI script
exit code, rather than the CGI script exit status of os.waitpid(). For
example, if the script is killed by signal 11, it now logs: “CGI script
exit code -11.”</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40108">bpo-40108</a>: Improve the error message when triying to import a module using
<a class="reference internal" href="../library/runpy.html#module-runpy" title="runpy: Locate and run Python modules without importing them first."><code class="xref py py-mod docutils literal notranslate"><span class="pre">runpy</span></code></a> and incorrectly using the “.py” extension at the end of the
module name. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40094">bpo-40094</a>: Add <a class="reference internal" href="../library/os.html#os.waitstatus_to_exitcode" title="os.waitstatus_to_exitcode"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.waitstatus_to_exitcode()</span></code></a> function: convert a wait
status to an exit code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40089">bpo-40089</a>: Fix threading._after_fork(): if fork was not called by a thread
spawned by threading.Thread, threading._after_fork() now creates a
_MainThread instance for _main_thread, instead of a _DummyThread instance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40089">bpo-40089</a>: Add a private <code class="docutils literal notranslate"><span class="pre">_at_fork_reinit()</span></code> method to
<code class="xref py py-class docutils literal notranslate"><span class="pre">_thread.Lock</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">_thread.RLock</span></code>, <a class="reference internal" href="../library/threading.html#threading.RLock" title="threading.RLock"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.RLock</span></code></a>
and <a class="reference internal" href="../library/threading.html#threading.Condition" title="threading.Condition"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.Condition</span></code></a> classes: reinitialize the lock at fork in
the child process, reset the lock to the unlocked state. Rename also the
private <code class="docutils literal notranslate"><span class="pre">_reset_internal_locks()</span></code> method of <a class="reference internal" href="../library/threading.html#threading.Event" title="threading.Event"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.Event</span></code></a> to
<code class="docutils literal notranslate"><span class="pre">_at_fork_reinit()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25780">bpo-25780</a>: Expose <a class="reference internal" href="../library/socket.html#socket.CAN_RAW_JOIN_FILTERS" title="socket.CAN_RAW_JOIN_FILTERS"><code class="xref py py-const docutils literal notranslate"><span class="pre">CAN_RAW_JOIN_FILTERS</span></code></a> in the
<a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39503">bpo-39503</a>: <a class="reference internal" href="../library/urllib.request.html#urllib.request.AbstractBasicAuthHandler" title="urllib.request.AbstractBasicAuthHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">AbstractBasicAuthHandler</span></code></a> of
<a class="reference internal" href="../library/urllib.request.html#module-urllib.request" title="urllib.request: Extensible library for opening URLs."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.request</span></code></a> now parses all WWW-Authenticate HTTP headers and
accepts multiple challenges per header: use the realm of the first Basic
challenge.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39812">bpo-39812</a>: Removed daemon threads from <a class="reference internal" href="../library/concurrent.futures.html#module-concurrent.futures" title="concurrent.futures: Execute computations concurrently using threads or processes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures</span></code></a> by adding
an internal <code class="docutils literal notranslate"><span class="pre">threading._register_atexit()</span></code>, which calls registered
functions prior to joining all non-daemon threads. This allows for
compatibility with subinterpreters, which don’t support daemon threads.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40050">bpo-40050</a>: Fix <code class="docutils literal notranslate"><span class="pre">importlib._bootstrap_external</span></code>: avoid creating a new
<code class="docutils literal notranslate"><span class="pre">winreg</span></code> builtin module if it’s already available in
<a class="reference internal" href="../library/sys.html#sys.modules" title="sys.modules"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.modules</span></code></a>, and remove redundant imports.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40014">bpo-40014</a>: Fix <code class="docutils literal notranslate"><span class="pre">os.getgrouplist()</span></code>: if <code class="docutils literal notranslate"><span class="pre">getgrouplist()</span></code> function fails
because the group list is too small, retry with a larger group list. On
failure, the glibc implementation of <code class="docutils literal notranslate"><span class="pre">getgrouplist()</span></code> sets <code class="docutils literal notranslate"><span class="pre">ngroups</span></code>
to the total number of groups. For other implementations, double the group
list size.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40017">bpo-40017</a>: Add <a class="reference internal" href="../library/time.html#time.CLOCK_TAI" title="time.CLOCK_TAI"><code class="xref py py-const docutils literal notranslate"><span class="pre">time.CLOCK_TAI</span></code></a> constant if the operating system
support it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40016">bpo-40016</a>: In re docstring, clarify the relationship between inline and
argument compile flags.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39953">bpo-39953</a>: Update internal table of OpenSSL error codes in the <code class="docutils literal notranslate"><span class="pre">ssl</span></code>
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36144">bpo-36144</a>: Added <span class="target" id="index-307"></span><a class="pep reference external" href="https://peps.python.org/pep-0584/"><strong>PEP 584</strong></a> operators to
<a class="reference internal" href="../library/weakref.html#weakref.WeakValueDictionary" title="weakref.WeakValueDictionary"><code class="xref py py-class docutils literal notranslate"><span class="pre">weakref.WeakValueDictionary</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36144">bpo-36144</a>: Added <span class="target" id="index-308"></span><a class="pep reference external" href="https://peps.python.org/pep-0584/"><strong>PEP 584</strong></a> operators to
<a class="reference internal" href="../library/weakref.html#weakref.WeakKeyDictionary" title="weakref.WeakKeyDictionary"><code class="xref py py-class docutils literal notranslate"><span class="pre">weakref.WeakKeyDictionary</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38891">bpo-38891</a>: Fix linear runtime behaviour of the <code class="docutils literal notranslate"><span class="pre">__getitem__</span></code> and
<code class="docutils literal notranslate"><span class="pre">__setitem__</span></code> methods in
<a class="reference internal" href="../library/multiprocessing.shared_memory.html#multiprocessing.shared_memory.ShareableList" title="multiprocessing.shared_memory.ShareableList"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.shared_memory.ShareableList</span></code></a>. This avoids
quadratic performance when iterating a <code class="docutils literal notranslate"><span class="pre">ShareableList</span></code>. Patch by Thomas
Krennwallner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39682">bpo-39682</a>: Remove undocumented support for <em>closing</em> a <code class="docutils literal notranslate"><span class="pre">pathlib.Path</span></code>
object via its context manager. The context manager magic methods remain,
but they are now a no-op, making <code class="docutils literal notranslate"><span class="pre">Path</span></code> objects immutable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36144">bpo-36144</a>: Added <span class="target" id="index-309"></span><a class="pep reference external" href="https://peps.python.org/pep-0584/"><strong>PEP 584</strong></a> operators (<code class="docutils literal notranslate"><span class="pre">|</span></code> and <code class="docutils literal notranslate"><span class="pre">|=</span></code>) to
<a class="reference internal" href="../library/collections.html#collections.ChainMap" title="collections.ChainMap"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.ChainMap</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39011">bpo-39011</a>: Normalization of line endings in ElementTree attributes was
removed, as line endings which were replaced by entity numbers should be
preserved in original form.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38410">bpo-38410</a>: Properly handle <a class="reference internal" href="../library/sys.html#sys.audit" title="sys.audit"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.audit()</span></code></a> failures in
<a class="reference internal" href="../library/sys.html#sys.set_asyncgen_hooks" title="sys.set_asyncgen_hooks"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.set_asyncgen_hooks()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36541">bpo-36541</a>: lib2to3 now recognizes named assignment expressions (the walrus
operator, <code class="docutils literal notranslate"><span class="pre">:=</span></code>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35967">bpo-35967</a>: In platform, delay the invocation of ‘uname -p’ until the
processor attribute is requested.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35113">bpo-35113</a>: <a class="reference internal" href="../library/inspect.html#inspect.getsource" title="inspect.getsource"><code class="xref py py-meth docutils literal notranslate"><span class="pre">inspect.getsource()</span></code></a> now returns correct source code for
inner class with same name as module level class. Decorators are also
returned as part of source of the class. Patch by Karthikeyan
Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33262">bpo-33262</a>: Deprecate passing None as an argument for <a class="reference internal" href="../library/shlex.html#shlex.split" title="shlex.split"><code class="xref py py-func docutils literal notranslate"><span class="pre">shlex.split()</span></code></a>’s
<code class="docutils literal notranslate"><span class="pre">s</span></code> parameter. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31758">bpo-31758</a>: Prevent crashes when using an uninitialized
<code class="docutils literal notranslate"><span class="pre">_elementtree.XMLParser</span></code> object. Patch by Oren Milman.</p></li>
</ul>
</section>
<section id="id421">
<h3>Documentation<a class="headerlink" href="#id421" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27635">bpo-27635</a>: The pickle documentation incorrectly claimed that <code class="docutils literal notranslate"><span class="pre">__new__</span></code>
isn’t called by default when unpickling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39879">bpo-39879</a>: Updated <a class="reference internal" href="../reference/datamodel.html#datamodel"><span class="std std-ref">Data model</span></a> docs to include <a class="reference internal" href="../library/stdtypes.html#dict" title="dict"><code class="xref py py-func docutils literal notranslate"><span class="pre">dict()</span></code></a> insertion
order preservation. Patch by Furkan Onder and Samy Lahfa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38387">bpo-38387</a>: Document <a class="reference internal" href="../c-api/intro.html#c.PyDoc_STRVAR" title="PyDoc_STRVAR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PyDoc_STRVAR</span></code></a> macro in the C-API reference.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13743">bpo-13743</a>: Some methods within xml.dom.minidom.Element class are now
better documented.</p></li>
</ul>
</section>
<section id="id422">
<h3>Tests<a class="headerlink" href="#id422" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Set expected default encoding in test_c_locale_coercion.py for
VxWorks RTOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40162">bpo-40162</a>: Update Travis CI configuration to OpenSSL 1.1.1f.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40146">bpo-40146</a>: Update OpenSSL to 1.1.1f in Azure Pipelines.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40094">bpo-40094</a>: Add <a class="reference internal" href="../library/test.html#test.support.wait_process" title="test.support.wait_process"><code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.wait_process()</span></code></a> function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40003">bpo-40003</a>: <code class="docutils literal notranslate"><span class="pre">test.bisect_cmd</span></code> now copies Python command line options like
<code class="docutils literal notranslate"><span class="pre">-O</span></code> or <code class="docutils literal notranslate"><span class="pre">-W</span></code>. Moreover, emit a warning if <code class="docutils literal notranslate"><span class="pre">test.bisect_cmd</span></code> is used
with <code class="docutils literal notranslate"><span class="pre">-w</span></code>/<code class="docutils literal notranslate"><span class="pre">--verbose2</span></code> option.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39380">bpo-39380</a>: Add the encoding in <a class="reference internal" href="../library/ftplib.html#ftplib.FTP" title="ftplib.FTP"><code class="xref py py-class docutils literal notranslate"><span class="pre">ftplib.FTP</span></code></a> and
<a class="reference internal" href="../library/ftplib.html#ftplib.FTP_TLS" title="ftplib.FTP_TLS"><code class="xref py py-class docutils literal notranslate"><span class="pre">ftplib.FTP_TLS</span></code></a> to the constructor as keyword-only and change the
default from <code class="docutils literal notranslate"><span class="pre">latin-1</span></code> to <code class="docutils literal notranslate"><span class="pre">utf-8</span></code> to follow <span class="target" id="index-310"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc2640.html"><strong>RFC 2640</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39793">bpo-39793</a>: Use the same domain when testing <code class="docutils literal notranslate"><span class="pre">make_msgid</span></code>. Patch by
Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1812">bpo-1812</a>: Fix newline handling in doctest.testfile when loading from a
package whose loader has a get_data method. Patch by Peter Donis.</p></li>
</ul>
</section>
<section id="id423">
<h3>Build<a class="headerlink" href="#id423" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38360">bpo-38360</a>: Support single-argument form of macOS -isysroot flag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40158">bpo-40158</a>: Fix CPython MSBuild Properties in NuGet Package
(build/native/python.props)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38527">bpo-38527</a>: Fix configure check on Solaris for “float word ordering”:
sometimes, the correct “grep” command was not being used. Patch by Arnon
Yaari.</p></li>
</ul>
</section>
<section id="id424">
<h3>Windows<a class="headerlink" href="#id424" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40164">bpo-40164</a>: Updates Windows to OpenSSL 1.1.1f</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8901">bpo-8901</a>: Ignore the Windows registry when the <code class="docutils literal notranslate"><span class="pre">-E</span></code> option is used.</p></li>
</ul>
</section>
<section id="id425">
<h3>macOS<a class="headerlink" href="#id425" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38329">bpo-38329</a>: python.org macOS installers now update the Current version
symlink of /Library/Frameworks/Python.framework/Versions for 3.9 installs.
Previously, Current was only updated for Python 2.x installs. This should
make it easier to embed Python 3 into other macOS applications.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40164">bpo-40164</a>: Update macOS installer builds to use OpenSSL 1.1.1g.</p></li>
</ul>
</section>
<section id="id426">
<h3>IDLE<a class="headerlink" href="#id426" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38439">bpo-38439</a>: Add a 256×256 pixel IDLE icon to support more modern
environments. Created by Andrew Clover. Delete the unused macOS idle.icns
icon file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38689">bpo-38689</a>: IDLE will no longer freeze when inspect.signature fails when
fetching a calltip.</p></li>
</ul>
</section>
<section id="id427">
<h3>Tools/Demos<a class="headerlink" href="#id427" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40385">bpo-40385</a>: Removed the checkpyc.py tool. Please see compileall without
force mode as a potential alternative.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40179">bpo-40179</a>: Fixed translation of <code class="docutils literal notranslate"><span class="pre">#elif</span></code> in Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40094">bpo-40094</a>: Fix <code class="docutils literal notranslate"><span class="pre">which.py</span></code> script exit code: it now uses
<a class="reference internal" href="../library/os.html#os.waitstatus_to_exitcode" title="os.waitstatus_to_exitcode"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.waitstatus_to_exitcode()</span></code></a> to convert <a class="reference internal" href="../library/os.html#os.system" title="os.system"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.system()</span></code></a> exit status
into an exit code.</p></li>
</ul>
</section>
<section id="id428">
<h3>C API<a class="headerlink" href="#id428" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40241">bpo-40241</a>: Move the <code class="xref c c-type docutils literal notranslate"><span class="pre">PyGC_Head</span></code> structure to the internal C API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: Convert <a class="reference internal" href="../c-api/gcsupport.html#c.PyObject_IS_GC" title="PyObject_IS_GC"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_IS_GC()</span></code></a> macro to a function to hide
implementation details.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40241">bpo-40241</a>: Add the functions <a class="reference internal" href="../c-api/gcsupport.html#c.PyObject_GC_IsTracked" title="PyObject_GC_IsTracked"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GC_IsTracked()</span></code></a> and
<a class="reference internal" href="../c-api/gcsupport.html#c.PyObject_GC_IsFinalized" title="PyObject_GC_IsFinalized"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GC_IsFinalized()</span></code></a> to the public API to allow to query if
Python objects are being currently tracked or have been already finalized
by the garbage collector respectively. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: The <code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_NEW()</span></code> macro becomes an alias to the
<a class="reference internal" href="../c-api/allocation.html#c.PyObject_New" title="PyObject_New"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_New()</span></code></a> macro, and the <code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_NEW_VAR()</span></code> macro
becomes an alias to the <a class="reference internal" href="../c-api/allocation.html#c.PyObject_NewVar" title="PyObject_NewVar"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_NewVar()</span></code></a> macro, to hide
implementation details. They no longer access directly the
<a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_basicsize" title="PyTypeObject.tp_basicsize"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyTypeObject.tp_basicsize</span></code></a> member.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: <a class="reference internal" href="../c-api/type.html#c.PyType_HasFeature" title="PyType_HasFeature"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_HasFeature()</span></code></a> now always calls
<a class="reference internal" href="../c-api/type.html#c.PyType_GetFlags" title="PyType_GetFlags"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_GetFlags()</span></code></a> to hide implementation details. Previously, it
accessed directly the <a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_flags" title="PyTypeObject.tp_flags"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyTypeObject.tp_flags</span></code></a> member when the
limited C API was not used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: Convert the <code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GET_WEAKREFS_LISTPTR()</span></code> macro to a
function to hide implementation details: the macro accessed directly to
the <a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_weaklistoffset" title="PyTypeObject.tp_weaklistoffset"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyTypeObject.tp_weaklistoffset</span></code></a> member.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: Convert <a class="reference internal" href="../c-api/buffer.html#c.PyObject_CheckBuffer" title="PyObject_CheckBuffer"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_CheckBuffer()</span></code></a> macro to a function to
hide implementation details: the macro accessed directly the
<a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_as_buffer" title="PyTypeObject.tp_as_buffer"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyTypeObject.tp_as_buffer</span></code></a> member.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40170">bpo-40170</a>: Always declare <a class="reference internal" href="../c-api/number.html#c.PyIndex_Check" title="PyIndex_Check"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyIndex_Check()</span></code></a> as an opaque function to
hide implementation details: remove <code class="docutils literal notranslate"><span class="pre">PyIndex_Check()</span></code> macro. The macro
accessed directly the <a class="reference internal" href="../c-api/typeobj.html#c.PyTypeObject.tp_as_number" title="PyTypeObject.tp_as_number"><code class="xref c c-member docutils literal notranslate"><span class="pre">PyTypeObject.tp_as_number</span></code></a> member.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39947">bpo-39947</a>: Add <a class="reference internal" href="../c-api/init.html#c.PyThreadState_GetID" title="PyThreadState_GetID"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_GetID()</span></code></a> function: get the unique
identifier of a Python thread state.</p></li>
</ul>
</section>
</section>
<section id="python-3-9-0-alpha-5">
<h2>Python 3.9.0 alpha 5<a class="headerlink" href="#python-3-9-0-alpha-5" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2020-03-23</em></p>
<section id="id429">
<h3>Security<a class="headerlink" href="#id429" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38576">bpo-38576</a>: Disallow control characters in hostnames in http.client,
addressing <span class="target" id="index-311"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2019-18348"><strong>CVE 2019-18348</strong></a>. Such potentially malicious header injection
URLs now cause a InvalidURL to be raised.</p></li>
</ul>
</section>
<section id="id430">
<h3>Core and Builtins<a class="headerlink" href="#id430" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40010">bpo-40010</a>: Optimize pending calls in multithreaded applications. If a
thread different than the main thread schedules a pending call
(<a class="reference internal" href="../c-api/init.html#c.Py_AddPendingCall" title="Py_AddPendingCall"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_AddPendingCall()</span></code></a>), the bytecode evaluation loop is no longer
interrupted at each bytecode instruction to check for pending calls which
cannot be executed. Only the main thread can execute pending calls.</p>
<p>Previously, the bytecode evaluation loop was interrupted at each
instruction until the main thread executes pending calls.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _weakref extension module to multiphase initialization
(<span class="target" id="index-312"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _collections module to multiphase initialization
(<span class="target" id="index-313"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40010">bpo-40010</a>: Optimize signal handling in multithreaded applications. If a
thread different than the main thread gets a signal, the bytecode
evaluation loop is no longer interrupted at each bytecode instruction to
check for pending signals which cannot be handled. Only the main thread of
the main interpreter can handle signals.</p>
<p>Previously, the bytecode evaluation loop was interrupted at each
instruction until the main thread handles signals.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39984">bpo-39984</a>: If <a class="reference internal" href="../c-api/init.html#c.Py_AddPendingCall" title="Py_AddPendingCall"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_AddPendingCall()</span></code></a> is called in a subinterpreter,
the function is now scheduled to be called from the subinterpreter, rather
than being called from the main interpreter. Each subinterpreter now has
its own list of scheduled calls.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _heapq module to multiphase initialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port itertools module to multiphase initialization
(<span class="target" id="index-314"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37207">bpo-37207</a>: Speed up calls to <code class="docutils literal notranslate"><span class="pre">frozenset()</span></code> by using the <span class="target" id="index-315"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39984">bpo-39984</a>: subinterpreters: Move
<code class="docutils literal notranslate"><span class="pre">_PyRuntimeState.ceval.tracing_possible</span></code> to
<code class="docutils literal notranslate"><span class="pre">PyInterpreterState.ceval.tracing_possible</span></code>: each interpreter now has
its own variable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37207">bpo-37207</a>: Speed up calls to <code class="docutils literal notranslate"><span class="pre">set()</span></code> by using the <span class="target" id="index-316"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _statistics module to multiphase initialization
(<span class="target" id="index-317"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39968">bpo-39968</a>: Use inline function to replace extension modules’
get_module_state macros.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39965">bpo-39965</a>: Correctly raise <code class="docutils literal notranslate"><span class="pre">SyntaxError</span></code> if <em>await</em> is used inside
non-async functions and <code class="docutils literal notranslate"><span class="pre">PyCF_ALLOW_TOP_LEVEL_AWAIT</span></code> is set (like in the
asyncio REPL). Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39562">bpo-39562</a>: Allow executing asynchronous comprehensions on the top level
when the <code class="docutils literal notranslate"><span class="pre">PyCF_ALLOW_TOP_LEVEL_AWAIT</span></code> flag is given. Patch by Batuhan
Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37207">bpo-37207</a>: Speed up calls to <code class="docutils literal notranslate"><span class="pre">tuple()</span></code> by using the <span class="target" id="index-318"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>
<code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38373">bpo-38373</a>: Changed list overallocation strategy. It no longer
overallocates if the new size is closer to overallocated size than to the
old size and adds padding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39926">bpo-39926</a>: Update Unicode database to Unicode version 13.0.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19466">bpo-19466</a>: Clear the frames of daemon threads earlier during the Python
shutdown to call objects destructors. So “unclosed file” resource warnings
are now emitted for daemon threads in a more reliable way.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38894">bpo-38894</a>: Fix a bug that was causing incomplete results when calling
<code class="docutils literal notranslate"><span class="pre">pathlib.Path.glob</span></code> in the presence of symlinks that point to files
where the user does not have read access. Patch by Pablo Galindo and Matt
Wozniski.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39877">bpo-39877</a>: Fix <a class="reference internal" href="../c-api/init.html#c.PyEval_RestoreThread" title="PyEval_RestoreThread"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_RestoreThread()</span></code></a> random crash at exit with
daemon threads. It now accesses the <code class="docutils literal notranslate"><span class="pre">_PyRuntime</span></code> variable directly
instead of using <code class="docutils literal notranslate"><span class="pre">tstate->interp->runtime</span></code>, since <code class="docutils literal notranslate"><span class="pre">tstate</span></code> can be a
dangling pointer after <a class="reference internal" href="../c-api/init.html#c.Py_Finalize" title="Py_Finalize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Finalize()</span></code></a> has been called. Moreover,
the daemon thread now exits before trying to take the GIL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39871">bpo-39871</a>: Fix a possible <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> in
<code class="docutils literal notranslate"><span class="pre">math.{atan2,copysign,remainder}()</span></code> when the first argument cannot be
converted to a <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39776">bpo-39776</a>: Fix race condition where threads created by PyGILState_Ensure()
could get a duplicate id.</p>
<p>This affects consumers of tstate->id like the contextvar caching
machinery, which could return invalid cached objects under heavy thread
load (observed in embedded scenarios).</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39778">bpo-39778</a>: Fixed a crash due to incorrect handling of weak references in
<code class="docutils literal notranslate"><span class="pre">collections.OrderedDict</span></code> classes. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port audioop extension module to multiphase initialization
(<span class="target" id="index-319"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39702">bpo-39702</a>: Relax <a class="reference internal" href="../glossary.html#term-decorator"><span class="xref std std-term">decorator</span></a> grammar restrictions to allow any valid
expression (<span class="target" id="index-320"></span><a class="pep reference external" href="https://peps.python.org/pep-0614/"><strong>PEP 614</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38091">bpo-38091</a>: Tweak import deadlock detection code to not deadlock itself.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _locale extension module to multiphase initialization
(<span class="target" id="index-321"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39087">bpo-39087</a>: Optimize <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_AsUTF8" title="PyUnicode_AsUTF8"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsUTF8()</span></code></a> and
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_AsUTF8AndSize" title="PyUnicode_AsUTF8AndSize"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsUTF8AndSize()</span></code></a> slightly when they need to create
internal UTF-8 cache.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39520">bpo-39520</a>: Fix unparsing of ext slices with no items (<code class="docutils literal notranslate"><span class="pre">foo[:,]</span></code>). Patch
by Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39220">bpo-39220</a>: Do not optimize annotations if ‘from __future__ import
annotations’ is used. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35712">bpo-35712</a>: Using <a class="reference internal" href="../library/constants.html#NotImplemented" title="NotImplemented"><code class="xref py py-data docutils literal notranslate"><span class="pre">NotImplemented</span></code></a> in a boolean context has been
deprecated. Patch contributed by Josh Rosenberg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22490">bpo-22490</a>: Don’t leak environment variable <code class="docutils literal notranslate"><span class="pre">__PYVENV_LAUNCHER__</span></code> into
the interpreter session on macOS.</p></li>
</ul>
</section>
<section id="id431">
<h3>Library<a class="headerlink" href="#id431" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39830">bpo-39830</a>: Add <a class="reference internal" href="../library/zipfile.html#zipfile.Path" title="zipfile.Path"><code class="xref py py-class docutils literal notranslate"><span class="pre">zipfile.Path</span></code></a> to <code class="docutils literal notranslate"><span class="pre">__all__</span></code> in the <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a>
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40000">bpo-40000</a>: Improved error messages for validation of <code class="docutils literal notranslate"><span class="pre">ast.Constant</span></code>
nodes. Patch by Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39999">bpo-39999</a>: <code class="docutils literal notranslate"><span class="pre">__module__</span></code> of the AST node classes is now set to “ast”
instead of “_ast”. Added docstrings for dummy AST node classes and
deprecated attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39991">bpo-39991</a>: <a class="reference internal" href="../library/uuid.html#uuid.getnode" title="uuid.getnode"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid.getnode()</span></code></a> now skips IPv6 addresses with the same
string length than a MAC address (17 characters): only use MAC addresses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39988">bpo-39988</a>: Deprecated <code class="docutils literal notranslate"><span class="pre">ast.AugLoad</span></code> and <code class="docutils literal notranslate"><span class="pre">ast.AugStore</span></code> node classes
because they are no longer used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39656">bpo-39656</a>: Ensure <code class="docutils literal notranslate"><span class="pre">bin/python3.#</span></code> is always present in virtual
environments on POSIX platforms - by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39969">bpo-39969</a>: Deprecated <code class="docutils literal notranslate"><span class="pre">ast.Param</span></code> node class because it’s no longer
used. Patch by Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39360">bpo-39360</a>: Ensure all workers exit when finalizing a
<code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Pool</span></code> implicitly via the module finalization
handlers of multiprocessing. This fixes a deadlock situation that can be
experienced when the Pool is not properly finalized via the context
manager or a call to <code class="docutils literal notranslate"><span class="pre">multiprocessing.Pool.terminate</span></code>. Patch by Batuhan
Taskaya and Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35370">bpo-35370</a>: sys.settrace(), sys.setprofile() and _lsprof.Profiler.enable()
now properly report <a class="reference internal" href="../c-api/sys.html#c.PySys_Audit" title="PySys_Audit"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_Audit()</span></code></a> error if “sys.setprofile” or
“sys.settrace” audit event is denied.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39936">bpo-39936</a>: AIX: Fix _aix_support module when the subprocess is not
available, when building Python from scratch. It now uses new private
_bootsubprocess module, rather than having two implementations depending
if subprocess is available or not. So _aix_support.aix_platform() result
is now the same if subprocess is available or not.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36144">bpo-36144</a>: <a class="reference internal" href="../library/collections.html#collections.OrderedDict" title="collections.OrderedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.OrderedDict</span></code></a> now implements <code class="docutils literal notranslate"><span class="pre">|</span></code> and
<code class="docutils literal notranslate"><span class="pre">|=</span></code> (<span class="target" id="index-322"></span><a class="pep reference external" href="https://peps.python.org/pep-0584/"><strong>PEP 584</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39652">bpo-39652</a>: The column name found in <code class="docutils literal notranslate"><span class="pre">sqlite3.Cursor.description</span></code> is now
truncated on the first ‘[’ only if the PARSE_COLNAMES option is set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39915">bpo-39915</a>: Ensure <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.AsyncMock.await_args_list" title="unittest.mock.AsyncMock.await_args_list"><code class="xref py py-attr docutils literal notranslate"><span class="pre">unittest.mock.AsyncMock.await_args_list</span></code></a> has call
objects in the order of awaited arguments instead of using
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.Mock.call_args" title="unittest.mock.Mock.call_args"><code class="xref py py-attr docutils literal notranslate"><span class="pre">unittest.mock.Mock.call_args</span></code></a> which has the last value of the call.
Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36144">bpo-36144</a>: Updated <a class="reference internal" href="../library/os.html#os.environ" title="os.environ"><code class="xref py py-data docutils literal notranslate"><span class="pre">os.environ</span></code></a> and <a class="reference internal" href="../library/os.html#os.environb" title="os.environb"><code class="xref py py-data docutils literal notranslate"><span class="pre">os.environb</span></code></a> to support
<span class="target" id="index-323"></span><a class="pep reference external" href="https://peps.python.org/pep-0584/"><strong>PEP 584</strong></a>’s merge (<code class="docutils literal notranslate"><span class="pre">|</span></code>) and update (<code class="docutils literal notranslate"><span class="pre">|=</span></code>) operators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38662">bpo-38662</a>: The <code class="docutils literal notranslate"><span class="pre">ensurepip</span></code> module now invokes <code class="docutils literal notranslate"><span class="pre">pip</span></code> via the <code class="docutils literal notranslate"><span class="pre">runpy</span></code>
module. Hence it is no longer tightly coupled with the internal API of the
bundled <code class="docutils literal notranslate"><span class="pre">pip</span></code> version, allowing easier updates to a newer <code class="docutils literal notranslate"><span class="pre">pip</span></code>
version both internally and for distributors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38075">bpo-38075</a>: Fix the <a class="reference internal" href="../library/random.html#random.Random.seed" title="random.Random.seed"><code class="xref py py-meth docutils literal notranslate"><span class="pre">random.Random.seed()</span></code></a> method when a <a class="reference internal" href="../library/functions.html#bool" title="bool"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>
is passed as the seed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39916">bpo-39916</a>: More reliable use of <code class="docutils literal notranslate"><span class="pre">os.scandir()</span></code> in <code class="docutils literal notranslate"><span class="pre">Path.glob()</span></code>. It no
longer emits a ResourceWarning when interrupted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39850">bpo-39850</a>: <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> now supports abstract socket addresses
(if abstract sockets are supported in the running platform). When creating
arbitrary addresses (like when default-constructing
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.connection.Listener" title="multiprocessing.connection.Listener"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.connection.Listener</span></code></a> objects) abstract sockets are
preferred to avoid the case when the temporary-file-generated address is
too large for an AF_UNIX socket address. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36287">bpo-36287</a>: <a class="reference internal" href="../library/ast.html#ast.dump" title="ast.dump"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.dump()</span></code></a> no longer outputs optional fields and
attributes with default values. The default values for optional fields and
attributes of AST nodes are now set as class attributes (e.g.
<code class="docutils literal notranslate"><span class="pre">Constant.kind</span></code> is set to <code class="docutils literal notranslate"><span class="pre">None</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39889">bpo-39889</a>: Fixed <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> for extended slices containing a
single element (e.g. <code class="docutils literal notranslate"><span class="pre">a[i:j,]</span></code>). Remove redundant tuples when index with
a tuple (e.g. <code class="docutils literal notranslate"><span class="pre">a[i,</span> <span class="pre">j]</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39828">bpo-39828</a>: Fix <a class="reference internal" href="../library/json.html#module-json.tool" title="json.tool: A command-line interface to validate and pretty-print JSON."><code class="xref py py-mod docutils literal notranslate"><span class="pre">json.tool</span></code></a> to catch <a class="reference internal" href="../library/exceptions.html#BrokenPipeError" title="BrokenPipeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BrokenPipeError</span></code></a>. Patch by
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13487">bpo-13487</a>: Avoid a possible <em>“RuntimeError: dictionary changed size during
iteration”</em> from <a class="reference internal" href="../library/inspect.html#inspect.getmodule" title="inspect.getmodule"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getmodule()</span></code></a> when it tried to loop through
<a class="reference internal" href="../library/sys.html#sys.modules" title="sys.modules"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.modules</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39674">bpo-39674</a>: Revert “<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37330">bpo-37330</a>: open() no longer accept ‘U’ in file mode”.
The “U” mode of open() is kept in Python 3.9 to ease transition from
Python 2.7, but will be removed in Python 3.10.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28577">bpo-28577</a>: The hosts method on 32-bit prefix length IPv4Networks and
128-bit prefix IPv6Networks now returns a list containing the single
Address instead of an empty list.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39826">bpo-39826</a>: Add getConnection method to logging HTTPHandler to enable
custom connections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39763">bpo-39763</a>: Reimplement <code class="docutils literal notranslate"><span class="pre">distutils.spawn.spawn</span></code> function with the
<a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39794">bpo-39794</a>: Add –without-decimal-contextvar build option. This enables a
thread-local rather than a coroutine local context.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36144">bpo-36144</a>: <a class="reference internal" href="../library/collections.html#collections.defaultdict" title="collections.defaultdict"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.defaultdict</span></code></a> now implements <code class="docutils literal notranslate"><span class="pre">|</span></code>
(<span class="target" id="index-324"></span><a class="pep reference external" href="https://peps.python.org/pep-0584/"><strong>PEP 584</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39517">bpo-39517</a>: Fix runpy.run_path() when using pathlike objects</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39775">bpo-39775</a>: Change <code class="docutils literal notranslate"><span class="pre">inspect.Signature.parameters</span></code> back to
<code class="docutils literal notranslate"><span class="pre">collections.OrderedDict</span></code>. This was changed to <code class="docutils literal notranslate"><span class="pre">dict</span></code> in Python
3.9.0a4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39678">bpo-39678</a>: Refactor queue_manager in
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor</span></code></a> to make it easier to
maintain.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39764">bpo-39764</a>: Fix AttributeError when calling get_stack on a PyAsyncGenObject
Task</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39769">bpo-39769</a>: The <a class="reference internal" href="../library/compileall.html#compileall.compile_dir" title="compileall.compile_dir"><code class="xref py py-func docutils literal notranslate"><span class="pre">compileall.compile_dir()</span></code></a> function’s <em>ddir</em> parameter
and the compileall command line flag <code class="docutils literal notranslate"><span class="pre">-d</span></code> no longer write the wrong
pathname to the generated pyc file for submodules beneath the root of the
directory tree being compiled. This fixes a regression introduced with
Python 3.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36144">bpo-36144</a>: <a class="reference internal" href="../library/types.html#types.MappingProxyType" title="types.MappingProxyType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.MappingProxyType</span></code></a> objects now support the merge
(<code class="docutils literal notranslate"><span class="pre">|</span></code>) operator from <span class="target" id="index-325"></span><a class="pep reference external" href="https://peps.python.org/pep-0584/"><strong>PEP 584</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38691">bpo-38691</a>: The <a class="reference internal" href="../library/importlib.html#module-importlib" title="importlib: The implementation of the import machinery."><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib</span></code></a> module now ignores the
<span class="target" id="index-326"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONCASEOK"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONCASEOK</span></code></a> environment variable when the <a class="reference internal" href="../using/cmdline.html#cmdoption-E"><code class="xref std std-option docutils literal notranslate"><span class="pre">-E</span></code></a> or
<a class="reference internal" href="../using/cmdline.html#cmdoption-I"><code class="xref std std-option docutils literal notranslate"><span class="pre">-I</span></code></a> command line options are being used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39719">bpo-39719</a>: Remove <code class="xref py py-meth docutils literal notranslate"><span class="pre">tempfile.SpooledTemporaryFile.softspace()</span></code> as files
no longer have the <code class="docutils literal notranslate"><span class="pre">softspace</span></code> attribute in Python 3. Patch by Shantanu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39667">bpo-39667</a>: Improve pathlib.Path compatibility on zipfile.Path and correct
performance degradation as found in zipp 3.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39638">bpo-39638</a>: Keep ASDL signatures in the docstrings for <code class="docutils literal notranslate"><span class="pre">AST</span></code> nodes. Patch
by Batuhan Taskaya</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39639">bpo-39639</a>: Deprecated <code class="docutils literal notranslate"><span class="pre">ast.Suite</span></code> node class because it’s no longer
used. Patch by Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39609">bpo-39609</a>: Add thread_name_prefix to default asyncio executor</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39548">bpo-39548</a>: Fix handling of header in
<a class="reference internal" href="../library/urllib.request.html#urllib.request.AbstractDigestAuthHandler" title="urllib.request.AbstractDigestAuthHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">urllib.request.AbstractDigestAuthHandler</span></code></a> when the optional
<code class="docutils literal notranslate"><span class="pre">qop</span></code> parameter is not present.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39509">bpo-39509</a>: HTTP status codes <code class="docutils literal notranslate"><span class="pre">103</span> <span class="pre">EARLY_HINTS</span></code> and <code class="docutils literal notranslate"><span class="pre">425</span> <span class="pre">TOO_EARLY</span></code> are
added to <a class="reference internal" href="../library/http.html#http.HTTPStatus" title="http.HTTPStatus"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.HTTPStatus</span></code></a>. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39507">bpo-39507</a>: Adding HTTP status 418 “I’m a Teapot” to HTTPStatus in http
library. Patch by Ross Rhodes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39495">bpo-39495</a>: Remove default value from <em>attrs</em> parameter of
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder.start" title="xml.etree.ElementTree.TreeBuilder.start"><code class="xref py py-meth docutils literal notranslate"><span class="pre">xml.etree.ElementTree.TreeBuilder.start()</span></code></a> for consistency between
Python and C implementations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38971">bpo-38971</a>: Open issue in the BPO indicated a desire to make the
implementation of codecs.open() at parity with io.open(), which implements
a try/except to assure file stream gets closed before an exception is
raised.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38641">bpo-38641</a>: Added starred expressions support to <code class="docutils literal notranslate"><span class="pre">return</span></code> and <code class="docutils literal notranslate"><span class="pre">yield</span></code>
statements for <code class="docutils literal notranslate"><span class="pre">lib2to3</span></code>. Patch by Vlad Emelianov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37534">bpo-37534</a>: When using minidom module to generate XML documents the ability
to add Standalone Document Declaration is added. All the changes are made
to generate a document in compliance with Extensible Markup Language (XML)
1.0 (Fifth Edition) W3C Recommendation (available here:
<a class="reference external" href="https://www.w3.org/TR/xml/#sec-prolog-dtd">https://www.w3.org/TR/xml/#sec-prolog-dtd</a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34788">bpo-34788</a>: Add support for scoped IPv6 addresses to <a class="reference internal" href="../library/ipaddress.html#module-ipaddress" title="ipaddress: IPv4/IPv6 manipulation library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress</span></code></a>.
Patch by Oleksandr Pavliuk.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34822">bpo-34822</a>: Simplified AST for subscription. Simple indices are now
represented by their value, extended slices are represented as tuples.
<a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> classes <code class="docutils literal notranslate"><span class="pre">Index</span></code> and <code class="docutils literal notranslate"><span class="pre">ExtSlice</span></code> are considered deprecated
and will be removed in future Python versions. In the meantime,
<code class="docutils literal notranslate"><span class="pre">Index(value)</span></code> now returns a <code class="docutils literal notranslate"><span class="pre">value</span></code> itself, <code class="docutils literal notranslate"><span class="pre">ExtSlice(slices)</span></code>
returns <code class="docutils literal notranslate"><span class="pre">Tuple(slices,</span> <span class="pre">Load())</span></code>.</p></li>
</ul>
</section>
<section id="id432">
<h3>Documentation<a class="headerlink" href="#id432" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39868">bpo-39868</a>: Updated the Language Reference for <span class="target" id="index-327"></span><a class="pep reference external" href="https://peps.python.org/pep-0572/"><strong>PEP 572</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13790">bpo-13790</a>: Change ‘string’ to ‘specification’ in format doc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17422">bpo-17422</a>: The language reference no longer restricts default class
namespaces to dicts only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39530">bpo-39530</a>: Fix misleading documentation about mixed-type numeric
comparisons.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39718">bpo-39718</a>: Update <a class="reference internal" href="../library/token.html#module-token" title="token: Constants representing terminal nodes of the parse tree."><code class="xref py py-mod docutils literal notranslate"><span class="pre">token</span></code></a> documentation to reflect additions in
Python 3.8</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39677">bpo-39677</a>: Changed operand name of <strong>MAKE_FUNCTION</strong> from <em>argc</em> to
<em>flags</em> for module <a class="reference internal" href="../library/dis.html#module-dis" title="dis: Disassembler for Python bytecode."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dis</span></code></a></p></li>
</ul>
</section>
<section id="id433">
<h3>Tests<a class="headerlink" href="#id433" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40019">bpo-40019</a>: test_gdb now skips tests if it detects that gdb failed to read
debug information because the Python binary is optimized.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27807">bpo-27807</a>: <code class="docutils literal notranslate"><span class="pre">test_site.test_startup_imports()</span></code> is now skipped if a path
of <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a> contains a <code class="docutils literal notranslate"><span class="pre">.pth</span></code> file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26067">bpo-26067</a>: Do not fail test_shutil test_chown test when uid or gid of user
cannot be resolved to a name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39855">bpo-39855</a>: test_subprocess.test_user() now skips the test on an user name
if the user name doesn’t exist. For example, skip the test if the user
“nobody” doesn’t exist on Linux.</p></li>
</ul>
</section>
<section id="id434">
<h3>Build<a class="headerlink" href="#id434" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39761">bpo-39761</a>: Fix build with DTrace but without additional DFLAGS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39763">bpo-39763</a>: setup.py now uses a basic implementation of the
<a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module if the <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module is not available:
before required C extension modules are built.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1294959">bpo-1294959</a>: Add <code class="docutils literal notranslate"><span class="pre">--with-platlibdir</span></code> option to the configure script:
name of the platform-specific library directory, stored in the new
<a class="reference internal" href="../library/sys.html#sys.platlibdir" title="sys.platlibdir"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.platlibdir</span></code></a> attribute. It is used to build the path of
platform-specific extension modules and the path of the standard library.
It is equal to <code class="docutils literal notranslate"><span class="pre">"lib"</span></code> on most platforms. On Fedora and SuSE, it is
equal to <code class="docutils literal notranslate"><span class="pre">"lib64"</span></code> on 64-bit platforms. Patch by Jan Matějek, Matěj
Cepl, Charalampos Stratakis and Victor Stinner.</p></li>
</ul>
</section>
<section id="id435">
<h3>Windows<a class="headerlink" href="#id435" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39930">bpo-39930</a>: Ensures the required <code class="file docutils literal notranslate"><span class="pre">vcruntime140.dll</span></code> is included in
install packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39847">bpo-39847</a>: Avoid hang when computer is hibernated whilst waiting for a
mutex (for lock-related objects from <a class="reference internal" href="../library/threading.html#module-threading" title="threading: Thread-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code></a>) around 49-day
uptime.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38597">bpo-38597</a>: <code class="docutils literal notranslate"><span class="pre">distutils</span></code> will no longer statically link
<code class="file docutils literal notranslate"><span class="pre">vcruntime140.dll</span></code> when a redistributable version is unavailable.
All future releases of CPython will include a copy of this DLL to ensure
distributed extensions can continue to load.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38380">bpo-38380</a>: Update Windows builds to use SQLite 3.31.1</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39789">bpo-39789</a>: Update Windows release build machines to Visual Studio 2019
(MSVC 14.2).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34803">bpo-34803</a>: Package for nuget.org now includes repository reference and
bundled icon image.</p></li>
</ul>
</section>
<section id="id436">
<h3>macOS<a class="headerlink" href="#id436" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38380">bpo-38380</a>: Update macOS builds to use SQLite 3.31.1</p></li>
</ul>
</section>
<section id="id437">
<h3>IDLE<a class="headerlink" href="#id437" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27115">bpo-27115</a>: For ‘Go to Line’, use a Query box subclass with IDLE standard
behavior and improved error checking.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39885">bpo-39885</a>: Since clicking to get an IDLE context menu moves the cursor,
any text selection should be and now is cleared.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39852">bpo-39852</a>: Edit “Go to line” now clears any selection, preventing
accidental deletion. It also updates Ln and Col on the status bar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39781">bpo-39781</a>: Selecting code context lines no longer causes a jump.</p></li>
</ul>
</section>
<section id="id438">
<h3>Tools/Demos<a class="headerlink" href="#id438" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36184">bpo-36184</a>: Port python-gdb.py to FreeBSD. python-gdb.py now checks for
“take_gil” function name to check if a frame tries to acquire the GIL,
instead of checking for “pthread_cond_timedwait” which is specific to
Linux and can be a different condition than the GIL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38080">bpo-38080</a>: Added support to fix <code class="docutils literal notranslate"><span class="pre">getproxies</span></code> in the
<code class="xref py py-mod docutils literal notranslate"><span class="pre">lib2to3.fixes.fix_urllib</span></code> module. Patch by José Roberto Meza
Cabrera.</p></li>
</ul>
</section>
<section id="id439">
<h3>C API<a class="headerlink" href="#id439" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=40024">bpo-40024</a>: Add <a class="reference internal" href="../c-api/module.html#c.PyModule_AddType" title="PyModule_AddType"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_AddType()</span></code></a> helper function: add a type to a
module. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39946">bpo-39946</a>: Remove <code class="docutils literal notranslate"><span class="pre">_PyRuntime.getframe</span></code> hook and remove
<code class="docutils literal notranslate"><span class="pre">_PyThreadState_GetFrame</span></code> macro which was an alias to
<code class="docutils literal notranslate"><span class="pre">_PyRuntime.getframe</span></code>. They were only exposed by the internal C API.
Remove also <code class="docutils literal notranslate"><span class="pre">PyThreadFrameGetter</span></code> type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39947">bpo-39947</a>: Add <a class="reference internal" href="../c-api/init.html#c.PyThreadState_GetFrame" title="PyThreadState_GetFrame"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_GetFrame()</span></code></a> function: get the current
frame of a Python thread state.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37207">bpo-37207</a>: Add _PyArg_NoKwnames helper function. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39947">bpo-39947</a>: Add <a class="reference internal" href="../c-api/init.html#c.PyThreadState_GetInterpreter" title="PyThreadState_GetInterpreter"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_GetInterpreter()</span></code></a>: get the interpreter
of a Python thread state.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39947">bpo-39947</a>: Add <a class="reference internal" href="../c-api/init.html#c.PyInterpreterState_Get" title="PyInterpreterState_Get"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyInterpreterState_Get()</span></code></a> function to the limited C
API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35370">bpo-35370</a>: If <a class="reference internal" href="../c-api/sys.html#c.PySys_Audit" title="PySys_Audit"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_Audit()</span></code></a> fails in <a class="reference internal" href="../c-api/init.html#c.PyEval_SetProfile" title="PyEval_SetProfile"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_SetProfile()</span></code></a>
or <a class="reference internal" href="../c-api/init.html#c.PyEval_SetTrace" title="PyEval_SetTrace"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_SetTrace()</span></code></a>, log the error as an unraisable exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39947">bpo-39947</a>: Move the static inline function flavor of
Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() to the internal C API:
they access PyThreadState attributes. The limited C API provides regular
functions which hide implementation details.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39947">bpo-39947</a>: Py_TRASHCAN_BEGIN_CONDITION and Py_TRASHCAN_END macro no longer
access PyThreadState attributes, but call new private _PyTrash_begin() and
_PyTrash_end() functions which hide implementation details.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39884">bpo-39884</a>: <a class="reference internal" href="../c-api/descriptor.html#c.PyDescr_NewMethod" title="PyDescr_NewMethod"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDescr_NewMethod()</span></code></a> and <a class="reference internal" href="../c-api/structures.html#c.PyCFunction_NewEx" title="PyCFunction_NewEx"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyCFunction_NewEx()</span></code></a> now
include the method name in the SystemError “bad call flags” error message
to ease debug.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39877">bpo-39877</a>: Deprecated <code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_InitThreads()</span></code> and
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_ThreadsInitialized()</span></code>. Calling
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_InitThreads()</span></code> now does nothing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38249">bpo-38249</a>: <a class="reference internal" href="../c-api/intro.html#c.Py_UNREACHABLE" title="Py_UNREACHABLE"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_UNREACHABLE</span></code></a> is now implemented with
<code class="docutils literal notranslate"><span class="pre">__builtin_unreachable()</span></code> and analogs in release mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38643">bpo-38643</a>: <a class="reference internal" href="../c-api/number.html#c.PyNumber_ToBase" title="PyNumber_ToBase"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyNumber_ToBase()</span></code></a> now raises a <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a>
instead of crashing when called with invalid base.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39882">bpo-39882</a>: The <a class="reference internal" href="../c-api/sys.html#c.Py_FatalError" title="Py_FatalError"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FatalError()</span></code></a> function is replaced with a macro
which logs automatically the name of the current function, unless the
<code class="docutils literal notranslate"><span class="pre">Py_LIMITED_API</span></code> macro is defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39824">bpo-39824</a>: Extension modules: <a class="reference internal" href="../c-api/module.html#c.PyModuleDef.m_traverse" title="PyModuleDef.m_traverse"><code class="xref c c-member docutils literal notranslate"><span class="pre">m_traverse</span></code></a>,
<a class="reference internal" href="../c-api/module.html#c.PyModuleDef.m_clear" title="PyModuleDef.m_clear"><code class="xref c c-member docutils literal notranslate"><span class="pre">m_clear</span></code></a> and <a class="reference internal" href="../c-api/module.html#c.PyModuleDef.m_free" title="PyModuleDef.m_free"><code class="xref c c-member docutils literal notranslate"><span class="pre">m_free</span></code></a>
functions of <a class="reference internal" href="../c-api/module.html#c.PyModuleDef" title="PyModuleDef"><code class="xref c c-type docutils literal notranslate"><span class="pre">PyModuleDef</span></code></a> are no longer called if the module
state was requested but is not allocated yet. This is the case immediately
after the module is created and before the module is executed
(<a class="reference internal" href="../c-api/module.html#c.Py_mod_exec" title="Py_mod_exec"><code class="xref c c-data docutils literal notranslate"><span class="pre">Py_mod_exec</span></code></a> function). More precisely, these functions are not
called if <a class="reference internal" href="../c-api/module.html#c.PyModuleDef.m_size" title="PyModuleDef.m_size"><code class="xref c c-member docutils literal notranslate"><span class="pre">m_size</span></code></a> is greater than 0 and the module
state (as returned by <a class="reference internal" href="../c-api/module.html#c.PyModule_GetState" title="PyModule_GetState"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_GetState()</span></code></a>) is <code class="docutils literal notranslate"><span class="pre">NULL</span></code>.</p>
<p>Extension modules without module state (<code class="docutils literal notranslate"><span class="pre">m_size</span> <span class="pre"><=</span> <span class="pre">0</span></code>) are not affected.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38913">bpo-38913</a>: Fixed segfault in <code class="docutils literal notranslate"><span class="pre">Py_BuildValue()</span></code> called with a format
containing “#” and undefined PY_SSIZE_T_CLEAN whwn an exception is set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38500">bpo-38500</a>: Add a private API to get and set the frame evaluation function:
add <a class="reference internal" href="../c-api/init.html#c._PyInterpreterState_GetEvalFrameFunc" title="_PyInterpreterState_GetEvalFrameFunc"><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyInterpreterState_GetEvalFrameFunc()</span></code></a> and
<a class="reference internal" href="../c-api/init.html#c._PyInterpreterState_SetEvalFrameFunc" title="_PyInterpreterState_SetEvalFrameFunc"><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyInterpreterState_SetEvalFrameFunc()</span></code></a> C functions. The
<a class="reference internal" href="../c-api/init.html#c._PyFrameEvalFunction" title="_PyFrameEvalFunction"><code class="xref c c-type docutils literal notranslate"><span class="pre">_PyFrameEvalFunction</span></code></a> function type now takes a <em>tstate</em>
parameter.</p></li>
</ul>
</section>
</section>
<section id="python-3-9-0-alpha-4">
<h2>Python 3.9.0 alpha 4<a class="headerlink" href="#python-3-9-0-alpha-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2020-02-25</em></p>
<section id="id440">
<h3>Security<a class="headerlink" href="#id440" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39184">bpo-39184</a>: Add audit events to functions in <code class="docutils literal notranslate"><span class="pre">fcntl</span></code>, <code class="docutils literal notranslate"><span class="pre">msvcrt</span></code>, <code class="docutils literal notranslate"><span class="pre">os</span></code>,
<code class="docutils literal notranslate"><span class="pre">resource</span></code>, <code class="docutils literal notranslate"><span class="pre">shutil</span></code>, <code class="docutils literal notranslate"><span class="pre">signal</span></code> and <code class="docutils literal notranslate"><span class="pre">syslog</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39401">bpo-39401</a>: Avoid unsafe DLL load at startup on Windows 7 and earlier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39184">bpo-39184</a>: Add audit events to command execution functions in os and pty
modules.</p></li>
</ul>
</section>
<section id="id441">
<h3>Core and Builtins<a class="headerlink" href="#id441" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39382">bpo-39382</a>: Fix a use-after-free in the single inheritance path of
<code class="docutils literal notranslate"><span class="pre">issubclass()</span></code>, when the <code class="docutils literal notranslate"><span class="pre">__bases__</span></code> of an object has a single
reference, and so does its first item. Patch by Yonatan Goldschmidt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39573">bpo-39573</a>: Update clinic tool to use <a class="reference internal" href="../c-api/structures.html#c.Py_IS_TYPE" title="Py_IS_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_IS_TYPE()</span></code></a>. Patch by
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39619">bpo-39619</a>: Enable use of <a class="reference internal" href="../library/os.html#os.chroot" title="os.chroot"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.chroot()</span></code></a> on HP-UX systems.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39573">bpo-39573</a>: Add <a class="reference internal" href="../c-api/structures.html#c.Py_IS_TYPE" title="Py_IS_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_IS_TYPE()</span></code></a> static inline function to check
whether the object <em>o</em> type is <em>type</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39606">bpo-39606</a>: Fix regression caused by fix for <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39386">bpo-39386</a>, that prevented
calling <code class="docutils literal notranslate"><span class="pre">aclose</span></code> on an async generator that had already been closed or
exhausted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39579">bpo-39579</a>: Change the ending column offset of <code class="docutils literal notranslate"><span class="pre">Attribute</span></code> nodes
constructed in <code class="docutils literal notranslate"><span class="pre">ast_for_dotted_name</span></code> to point at the end of the current
node and not at the end of the last <code class="docutils literal notranslate"><span class="pre">NAME</span></code> node.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _crypt extension module to multiphase initialization
(<span class="target" id="index-328"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _contextvars extension module to multiphase
initialization (<span class="target" id="index-329"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39510">bpo-39510</a>: Fix segfault in <code class="docutils literal notranslate"><span class="pre">readinto()</span></code> method on closed BufferedReader.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39502">bpo-39502</a>: Fix <a class="reference internal" href="../library/time.html#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.localtime()</span></code></a> on 64-bit AIX to support years
before 1902 and after 2038. Patch by M Felt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39492">bpo-39492</a>: Fix a reference cycle in the C Pickler that was preventing the
garbage collection of deleted, pickled objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39453">bpo-39453</a>: Fixed a possible crash in <code class="xref py py-meth docutils literal notranslate"><span class="pre">list.__contains__()</span></code> when a list
is changed during comparing items. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39434">bpo-39434</a>: <a class="reference internal" href="../glossary.html#term-floor-division"><span class="xref std std-term">floor division</span></a> of float operation now has a better
performance. Also the message of <a class="reference internal" href="../library/exceptions.html#ZeroDivisionError" title="ZeroDivisionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ZeroDivisionError</span></code></a> for this
operation is updated. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _codecs extension module to multiphase initialization
(<span class="target" id="index-330"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _bz2 extension module to multiphase initialization
(<span class="target" id="index-331"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _abc extension module to multiphase initialization
(<span class="target" id="index-332"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39320">bpo-39320</a>: Replace two complex bytecodes for building dicts with two
simpler ones. The new bytecodes <code class="docutils literal notranslate"><span class="pre">DICT_MERGE</span></code> and <code class="docutils literal notranslate"><span class="pre">DICT_UPDATE</span></code> have
been added The old bytecodes <code class="docutils literal notranslate"><span class="pre">BUILD_MAP_UNPACK</span></code> and
<code class="docutils literal notranslate"><span class="pre">BUILD_MAP_UNPACK_WITH_CALL</span></code> have been removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39219">bpo-39219</a>: Syntax errors raised in the tokenizer now always set correct
“text” and “offset” attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36051">bpo-36051</a>: Drop the GIL during large <code class="docutils literal notranslate"><span class="pre">bytes.join</span></code> operations. Patch by
Bruce Merry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38960">bpo-38960</a>: Fix DTrace build issues on FreeBSD. Patch by David Carlier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37207">bpo-37207</a>: Speed up calls to <code class="docutils literal notranslate"><span class="pre">range()</span></code> by about 30%, by using the PEP
590 <code class="docutils literal notranslate"><span class="pre">vectorcall</span></code> calling convention. Patch by Mark Shannon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36144">bpo-36144</a>: <a class="reference internal" href="../library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> (and <a class="reference internal" href="../library/collections.html#collections.UserDict" title="collections.UserDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.UserDict</span></code></a>) objects now
support PEP 584’s merge (<code class="docutils literal notranslate"><span class="pre">|</span></code>) and update (<code class="docutils literal notranslate"><span class="pre">|=</span></code>) operators. Patch by
Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32856">bpo-32856</a>: Optimized the idiom for assignment a temporary variable in
comprehensions. Now <code class="docutils literal notranslate"><span class="pre">for</span> <span class="pre">y</span> <span class="pre">in</span> <span class="pre">[expr]</span></code> in comprehensions is as fast as a
simple assignment <code class="docutils literal notranslate"><span class="pre">y</span> <span class="pre">=</span> <span class="pre">expr</span></code>.</p></li>
</ul>
</section>
<section id="id442">
<h3>Library<a class="headerlink" href="#id442" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30566">bpo-30566</a>: Fix <a class="reference internal" href="../library/exceptions.html#IndexError" title="IndexError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">IndexError</span></code></a> when trying to decode an invalid string
with punycode codec.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39649">bpo-39649</a>: Remove obsolete check for <code class="docutils literal notranslate"><span class="pre">__args__</span></code> in
<code class="docutils literal notranslate"><span class="pre">bdb.Bdb.format_stack_entry</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39648">bpo-39648</a>: Expanded <a class="reference internal" href="../library/math.html#math.gcd" title="math.gcd"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.gcd()</span></code></a> and <a class="reference internal" href="../library/math.html#math.lcm" title="math.lcm"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.lcm()</span></code></a> to handle
multiple arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39681">bpo-39681</a>: Fix a regression where the C pickle module wouldn’t allow
unpickling from a file-like object that doesn’t expose a readinto()
method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35950">bpo-35950</a>: Raise <a class="reference internal" href="../library/io.html#io.UnsupportedOperation" title="io.UnsupportedOperation"><code class="xref py py-exc docutils literal notranslate"><span class="pre">io.UnsupportedOperation</span></code></a> in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">io.BufferedReader.truncate()</span></code> when it is called on a read-only
<a class="reference internal" href="../library/io.html#io.BufferedReader" title="io.BufferedReader"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.BufferedReader</span></code></a> instance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39479">bpo-39479</a>: Add <a class="reference internal" href="../library/math.html#math.lcm" title="math.lcm"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.lcm()</span></code></a> function: least common multiple.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39674">bpo-39674</a>: Revert “Do not expose abstract collection classes in the
collections module” change (<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25988">bpo-25988</a>). Aliases to ABC like
collections.Mapping are kept in Python 3.9 to ease transition from Python
2.7, but will be removed in Python 3.10.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39104">bpo-39104</a>: Fix hanging ProcessPoolExcutor on <code class="docutils literal notranslate"><span class="pre">shutdown(wait=False)</span></code> when
a task has failed pickling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39627">bpo-39627</a>: Fixed TypedDict totality check for inherited keys.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39474">bpo-39474</a>: Fixed starting position of AST for expressions like <code class="docutils literal notranslate"><span class="pre">(a)(b)</span></code>,
<code class="docutils literal notranslate"><span class="pre">(a)[b]</span></code> and <code class="docutils literal notranslate"><span class="pre">(a).b</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21016">bpo-21016</a>: The <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a> and <a class="reference internal" href="../library/trace.html#module-trace" title="trace: Trace or track Python statement execution."><code class="xref py py-mod docutils literal notranslate"><span class="pre">trace</span></code></a> modules now use the
<a class="reference internal" href="../library/sysconfig.html#module-sysconfig" title="sysconfig: Python's configuration information"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sysconfig</span></code></a> module to get the path to the Python standard library, to
support uncommon installation path like <code class="docutils literal notranslate"><span class="pre">/usr/lib64/python3.9/</span></code> on
Fedora. Patch by Jan Matějek.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39590">bpo-39590</a>: Collections.deque now holds strong references during
deque.__contains__ and deque.count, fixing crashes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39586">bpo-39586</a>: The distutils <code class="docutils literal notranslate"><span class="pre">bdist_msi</span></code> command is deprecated in Python
3.9, use <code class="docutils literal notranslate"><span class="pre">bdist_wheel</span></code> (wheel packages) instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39595">bpo-39595</a>: Improved performance of zipfile.Path for files with a large
number of entries. Also improved performance and fixed minor issue as
published with <a class="reference external" href="https://importlib-metadata.readthedocs.io/en/latest/history.html#v1-5-0">importlib_metadata 1.5</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39350">bpo-39350</a>: Fix regression in <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a> if the numerator
and/or the denominator is an <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> subclass. The <a class="reference internal" href="../library/math.html#math.gcd" title="math.gcd"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.gcd()</span></code></a>
function is now used to normalize the <em>numerator</em> and <em>denominator</em>.
<a class="reference internal" href="../library/math.html#math.gcd" title="math.gcd"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.gcd()</span></code></a> always return a <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a> type. Previously, the GCD
type depended on <em>numerator</em> and <em>denominator</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39567">bpo-39567</a>: Added audit for <a class="reference internal" href="../library/os.html#os.walk" title="os.walk"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.walk()</span></code></a>, <a class="reference internal" href="../library/os.html#os.fwalk" title="os.fwalk"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.fwalk()</span></code></a>,
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.glob" title="pathlib.Path.glob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.glob()</span></code></a> and <a class="reference internal" href="../library/pathlib.html#pathlib.Path.rglob" title="pathlib.Path.rglob"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.Path.rglob()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39559">bpo-39559</a>: Remove unused, undocumented argument <code class="docutils literal notranslate"><span class="pre">getters</span></code> from
<a class="reference internal" href="../library/uuid.html#uuid.getnode" title="uuid.getnode"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid.getnode()</span></code></a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38149">bpo-38149</a>: <a class="reference internal" href="../library/sys.html#sys.audit" title="sys.audit"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.audit()</span></code></a> is now called only once per call of
<a class="reference internal" href="../library/glob.html#glob.glob" title="glob.glob"><code class="xref py py-func docutils literal notranslate"><span class="pre">glob.glob()</span></code></a> and <a class="reference internal" href="../library/glob.html#glob.iglob" title="glob.iglob"><code class="xref py py-func docutils literal notranslate"><span class="pre">glob.iglob()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39546">bpo-39546</a>: Fix a regression in <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser" title="argparse.ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">ArgumentParser</span></code></a> where
<code class="docutils literal notranslate"><span class="pre">allow_abbrev=False</span></code> was ignored for long options that used a prefix
character other than “-“.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39450">bpo-39450</a>: Striped whitespace from docstring before returning it from
<code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.case.shortDescription()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12915">bpo-12915</a>: A new function <code class="docutils literal notranslate"><span class="pre">resolve_name</span></code> has been added to the
<code class="docutils literal notranslate"><span class="pre">pkgutil</span></code> module. This resolves a string of the form <code class="docutils literal notranslate"><span class="pre">'a.b.c.d'</span></code> or
<code class="docutils literal notranslate"><span class="pre">'a.b:c.d'</span></code> to an object. In the example, <code class="docutils literal notranslate"><span class="pre">a.b</span></code> is a package/module
and <code class="docutils literal notranslate"><span class="pre">c.d</span></code> is an object within that package/module reached via recursive
attribute access.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39353">bpo-39353</a>: The <a class="reference internal" href="../library/binascii.html#binascii.crc_hqx" title="binascii.crc_hqx"><code class="xref py py-func docutils literal notranslate"><span class="pre">binascii.crc_hqx()</span></code></a> function is no longer deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39493">bpo-39493</a>: Mark <code class="docutils literal notranslate"><span class="pre">typing.IO.closed</span></code> as a property</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39491">bpo-39491</a>: Add <a class="reference internal" href="../library/typing.html#typing.Annotated" title="typing.Annotated"><code class="xref py py-data docutils literal notranslate"><span class="pre">typing.Annotated</span></code></a> and <code class="docutils literal notranslate"><span class="pre">include_extras</span></code> parameter
to <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-func docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> as part of <span class="target" id="index-333"></span><a class="pep reference external" href="https://peps.python.org/pep-0593/"><strong>PEP 593</strong></a>. Patch by Till
Varoquaux, documentation by Till Varoquaux and Konstantin Kashin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39485">bpo-39485</a>: Fix a bug in <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.create_autospec" title="unittest.mock.create_autospec"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.create_autospec()</span></code></a> that would
complain about the wrong number of arguments for custom descriptors
defined in an extension module returning functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38932">bpo-38932</a>: Mock fully resets child objects on reset_mock(). Patch by
Vegard Stikbakke</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39082">bpo-39082</a>: Allow AsyncMock to correctly patch static/class methods</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39432">bpo-39432</a>: Implement PEP-489 algorithm for non-ascii “PyInit_…” symbol
names in distutils to make it export the correct init symbol also on
Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18819">bpo-18819</a>: Omit <code class="docutils literal notranslate"><span class="pre">devmajor</span></code> and <code class="docutils literal notranslate"><span class="pre">devminor</span></code> fields for non-device files
in <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> archives, enabling bit-for-bit compatibility with GNU
<code class="docutils literal notranslate"><span class="pre">tar(1)</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39349">bpo-39349</a>: Added a new <em>cancel_futures</em> parameter to
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.Executor.shutdown" title="concurrent.futures.Executor.shutdown"><code class="xref py py-meth docutils literal notranslate"><span class="pre">concurrent.futures.Executor.shutdown()</span></code></a> that cancels all pending
futures which have not started running, instead of waiting for them to
complete before shutting down the executor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39274">bpo-39274</a>: <code class="docutils literal notranslate"><span class="pre">bool(fraction.Fraction)</span></code> now returns a boolean even if
(numerator != 0) does not return a boolean (ex: numpy number).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34793">bpo-34793</a>: Remove support for <code class="docutils literal notranslate"><span class="pre">with</span> <span class="pre">(await</span> <span class="pre">asyncio.lock):</span></code> and <code class="docutils literal notranslate"><span class="pre">with</span>
<span class="pre">(yield</span> <span class="pre">from</span> <span class="pre">asyncio.lock):</span></code>. The same is correct for
<code class="docutils literal notranslate"><span class="pre">asyncio.Condition</span></code> and <code class="docutils literal notranslate"><span class="pre">asyncio.Semaphore</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25597">bpo-25597</a>: Ensure, if <code class="docutils literal notranslate"><span class="pre">wraps</span></code> is supplied to
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.MagicMock" title="unittest.mock.MagicMock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.MagicMock</span></code></a>, it is used to calculate return values
for the magic methods instead of using the default return values. Patch by
Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36350">bpo-36350</a>: <code class="docutils literal notranslate"><span class="pre">inspect.Signature.parameters</span></code> and
<code class="docutils literal notranslate"><span class="pre">inspect.BoundArguments.arguments</span></code> are now dicts instead of
OrderedDicts. Patch contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35727">bpo-35727</a>: Fix sys.exit() and sys.exit(None) exit code propagation when
used in multiprocessing.Process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32173">bpo-32173</a>: * Add <code class="docutils literal notranslate"><span class="pre">lazycache</span></code> function to <code class="docutils literal notranslate"><span class="pre">__all__</span></code>. * Use
<code class="docutils literal notranslate"><span class="pre">dict.clear</span></code> to clear the cache. * Refactoring <code class="docutils literal notranslate"><span class="pre">getline</span></code> function and
<code class="docutils literal notranslate"><span class="pre">checkcache</span></code> function.</p></li>
</ul>
</section>
<section id="id443">
<h3>Documentation<a class="headerlink" href="#id443" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17422">bpo-17422</a>: The language reference now specifies restrictions on class
namespaces. Adapted from a patch by Ethan Furman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39572">bpo-39572</a>: Updated documentation of <code class="docutils literal notranslate"><span class="pre">total</span></code> flag of <code class="docutils literal notranslate"><span class="pre">TypedDict</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39654">bpo-39654</a>: In pyclbr doc, update ‘class’ to ‘module’ where appropriate and
add readmodule comment. Patch by Hakan Çelik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39153">bpo-39153</a>: Clarify refcounting semantics for the following functions: -
PyObject_SetItem - PyMapping_SetItemString - PyDict_SetItem -
PyDict_SetItemString</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39392">bpo-39392</a>: Explain that when filling with turtle, overlap regions may be
left unfilled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39369">bpo-39369</a>: Update mmap readline method description. The fact that the
readline method does update the file position should not be ignored since
this might give the impression for the programmer that it doesn’t update
it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9056">bpo-9056</a>: Include subsection in TOC for PDF version of docs.</p></li>
</ul>
</section>
<section id="id444">
<h3>Tests<a class="headerlink" href="#id444" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38325">bpo-38325</a>: Skip tests on non-BMP characters of test_winconsoleio.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39502">bpo-39502</a>: Skip test_zipfile.test_add_file_after_2107() if
<a class="reference internal" href="../library/time.html#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.localtime()</span></code></a> fails with <a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a>. It is the case on
AIX 6.1 for example.</p></li>
</ul>
</section>
<section id="id445">
<h3>Build<a class="headerlink" href="#id445" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39489">bpo-39489</a>: Remove <code class="docutils literal notranslate"><span class="pre">COUNT_ALLOCS</span></code> special build.</p></li>
</ul>
</section>
<section id="id446">
<h3>Windows<a class="headerlink" href="#id446" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39553">bpo-39553</a>: Delete unused code related to SxS manifests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39439">bpo-39439</a>: Honor the Python path when a virtualenv is active on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39393">bpo-39393</a>: Improve the error message when attempting to load a DLL with
unresolved dependencies.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38883">bpo-38883</a>: <a class="reference internal" href="../library/pathlib.html#pathlib.Path.home" title="pathlib.Path.home"><code class="xref py py-meth docutils literal notranslate"><span class="pre">home()</span></code></a> and <a class="reference internal" href="../library/pathlib.html#pathlib.Path.expanduser" title="pathlib.Path.expanduser"><code class="xref py py-meth docutils literal notranslate"><span class="pre">expanduser()</span></code></a>
on Windows now prefer <span class="target" id="index-334"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">USERPROFILE</span></code> and no longer use
<span class="target" id="index-335"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">HOME</span></code>, which is not normally set for regular user accounts. This
makes them again behave like <a class="reference internal" href="../library/os.path.html#os.path.expanduser" title="os.path.expanduser"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.expanduser()</span></code></a>, which was changed
to ignore <span class="target" id="index-336"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">HOME</span></code> in 3.8, see <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36264">bpo-36264</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39185">bpo-39185</a>: The build.bat script has additional options for very-quiet
output (-q) and very-verbose output (-vv)</p></li>
</ul>
</section>
<section id="id447">
<h3>IDLE<a class="headerlink" href="#id447" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39663">bpo-39663</a>: Add tests for pyparse find_good_parse_start().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39600">bpo-39600</a>: In the font configuration window, remove duplicated font names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30780">bpo-30780</a>: Add remaining configdialog tests for buttons and highlights and
keys tabs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39388">bpo-39388</a>: IDLE Settings Cancel button now cancels pending changes</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38792">bpo-38792</a>: Close an IDLE shell calltip if a <a class="reference internal" href="../library/exceptions.html#KeyboardInterrupt" title="KeyboardInterrupt"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyboardInterrupt</span></code></a> or
shell restart occurs. Patch by Zackery Spytz.</p></li>
</ul>
</section>
<section id="id448">
<h3>C API<a class="headerlink" href="#id448" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35081">bpo-35081</a>: Move the <code class="docutils literal notranslate"><span class="pre">bytes_methods.h</span></code> header file to the internal C API
as <code class="docutils literal notranslate"><span class="pre">pycore_bytes_methods.h</span></code>: it only contains private symbols (prefixed
by <code class="docutils literal notranslate"><span class="pre">_Py</span></code>), except of the <code class="docutils literal notranslate"><span class="pre">PyDoc_STRVAR_shared()</span></code> macro.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35081">bpo-35081</a>: Move the <code class="docutils literal notranslate"><span class="pre">dtoa.h</span></code> header file to the internal C API as
<code class="docutils literal notranslate"><span class="pre">pycore_dtoa.h</span></code>: it only contains private functions (prefixed by
<code class="docutils literal notranslate"><span class="pre">_Py</span></code>). The <a class="reference internal" href="../library/math.html#module-math" title="math: Mathematical functions (sin() etc.)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code></a> and <a class="reference internal" href="../library/cmath.html#module-cmath" title="cmath: Mathematical functions for complex numbers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">cmath</span></code></a> modules must now be compiled
with the <code class="docutils literal notranslate"><span class="pre">Py_BUILD_CORE</span></code> macro defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39573">bpo-39573</a>: Add <a class="reference internal" href="../c-api/structures.html#c.Py_SET_SIZE" title="Py_SET_SIZE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SET_SIZE()</span></code></a> function to set the size of an
object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39500">bpo-39500</a>: <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_IsIdentifier" title="PyUnicode_IsIdentifier"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_IsIdentifier()</span></code></a> does not call
<a class="reference internal" href="../c-api/sys.html#c.Py_FatalError" title="Py_FatalError"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FatalError()</span></code></a> anymore if the string is not ready.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39573">bpo-39573</a>: Add <a class="reference internal" href="../c-api/structures.html#c.Py_SET_TYPE" title="Py_SET_TYPE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SET_TYPE()</span></code></a> function to set the type of an
object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39573">bpo-39573</a>: Add a <a class="reference internal" href="../c-api/refcounting.html#c.Py_SET_REFCNT" title="Py_SET_REFCNT"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SET_REFCNT()</span></code></a> function to set the reference
counter of an object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39542">bpo-39542</a>: Convert <a class="reference internal" href="../c-api/type.html#c.PyType_HasFeature" title="PyType_HasFeature"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_HasFeature()</span></code></a>, <a class="reference internal" href="../c-api/type.html#c.PyType_Check" title="PyType_Check"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_Check()</span></code></a> and
<a class="reference internal" href="../c-api/type.html#c.PyType_CheckExact" title="PyType_CheckExact"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyType_CheckExact()</span></code></a> macros to static inline functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39542">bpo-39542</a>: In the limited C API, <code class="docutils literal notranslate"><span class="pre">PyObject_INIT()</span></code> and
<code class="docutils literal notranslate"><span class="pre">PyObject_INIT_VAR()</span></code> are now defined as aliases to
<a class="reference internal" href="../c-api/allocation.html#c.PyObject_Init" title="PyObject_Init"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_Init()</span></code></a> and <a class="reference internal" href="../c-api/allocation.html#c.PyObject_InitVar" title="PyObject_InitVar"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_InitVar()</span></code></a> to make their
implementation opaque. It avoids to leak implementation details in the
limited C API. Exclude the following functions from the limited C API:
<code class="docutils literal notranslate"><span class="pre">_Py_NewReference()</span></code>, <code class="docutils literal notranslate"><span class="pre">_Py_ForgetReference()</span></code>,
<code class="docutils literal notranslate"><span class="pre">_PyTraceMalloc_NewReference()</span></code> and <code class="docutils literal notranslate"><span class="pre">_Py_GetRefTotal()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39542">bpo-39542</a>: Exclude trashcan mechanism from the limited C API: it requires
access to PyTypeObject and PyThreadState structure fields, whereas these
structures are opaque in the limited C API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39511">bpo-39511</a>: The <a class="reference internal" href="../c-api/init.html#c.PyThreadState_Clear" title="PyThreadState_Clear"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_Clear()</span></code></a> function now calls the
<code class="xref c c-member docutils literal notranslate"><span class="pre">PyThreadState.on_delete</span></code> callback. Previously, that happened in
<a class="reference internal" href="../c-api/init.html#c.PyThreadState_Delete" title="PyThreadState_Delete"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_Delete()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38076">bpo-38076</a>: Fix to clear the interpreter state only after clearing module
globals to guarantee module state access from C Extensions during runtime
destruction</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39245">bpo-39245</a>: The Vectorcall API (PEP 590) was made public, adding the
functions <code class="docutils literal notranslate"><span class="pre">PyObject_Vectorcall</span></code>, <code class="docutils literal notranslate"><span class="pre">PyObject_VectorcallMethod</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyVectorcall_Function</span></code>, <code class="docutils literal notranslate"><span class="pre">PyObject_CallOneArg</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyObject_CallMethodNoArgs</span></code>, <code class="docutils literal notranslate"><span class="pre">PyObject_CallMethodOneArg</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyObject_FastCallDict</span></code>, and the flag <code class="docutils literal notranslate"><span class="pre">Py_TPFLAGS_HAVE_VECTORCALL</span></code>.</p></li>
</ul>
</section>
</section>
<section id="python-3-9-0-alpha-3">
<h2>Python 3.9.0 alpha 3<a class="headerlink" href="#python-3-9-0-alpha-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2020-01-24</em></p>
<section id="id449">
<h3>Core and Builtins<a class="headerlink" href="#id449" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39427">bpo-39427</a>: Document all possibilities for the <code class="docutils literal notranslate"><span class="pre">-X</span></code> options in the
command line help section. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39421">bpo-39421</a>: Fix possible crashes when operating with the functions in the
<a class="reference internal" href="../library/heapq.html#module-heapq" title="heapq: Heap queue algorithm (a.k.a. priority queue)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">heapq</span></code></a> module and custom comparison operators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39386">bpo-39386</a>: Prevent double awaiting of async iterator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17005">bpo-17005</a>: Add <code class="xref py py-class docutils literal notranslate"><span class="pre">functools.TopologicalSorter</span></code> to the
<a class="reference internal" href="../library/functools.html#module-functools" title="functools: Higher-order functions and operations on callable objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">functools</span></code></a> module to offers functionality to perform topological
sorting of graphs. Patch by Pablo Galindo, Tim Peters and Larry Hastings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39320">bpo-39320</a>: Replace four complex bytecodes for building sequences with
three simpler ones.</p>
<p>The following four bytecodes have been removed:</p>
<ul class="simple">
<li><p>BUILD_LIST_UNPACK</p></li>
<li><p>BUILD_TUPLE_UNPACK</p></li>
<li><p>BUILD_SET_UNPACK</p></li>
<li><p>BUILD_TUPLE_UNPACK_WITH_CALL</p></li>
</ul>
<p>The following three bytecodes have been added:</p>
<ul class="simple">
<li><p>LIST_TO_TUPLE</p></li>
<li><p>LIST_EXTEND</p></li>
<li><p>SET_UPDATE</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39336">bpo-39336</a>: Import loaders which publish immutable module objects can now
publish immutable packages in addition to individual modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39322">bpo-39322</a>: Added a new function <a class="reference internal" href="../library/gc.html#gc.is_finalized" title="gc.is_finalized"><code class="xref py py-func docutils literal notranslate"><span class="pre">gc.is_finalized()</span></code></a> to check if an
object has been finalized by the garbage collector. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39048">bpo-39048</a>: Improve the displayed error message when incorrect types are
passed to <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">with</span></code> statements by looking up the <code class="xref py py-meth docutils literal notranslate"><span class="pre">__aenter__()</span></code>
special method before the <code class="xref py py-meth docutils literal notranslate"><span class="pre">__aexit__()</span></code> special method when entering
an asynchronous context manager. Patch by Géry Ogam.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39235">bpo-39235</a>: Fix AST end location for lone generator expression in function
call, e.g. f(i for i in a).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39209">bpo-39209</a>: Correctly handle multi-line tokens in interactive mode. Patch
by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1635741">bpo-1635741</a>: Port _json extension module to multiphase initialization
(<span class="target" id="index-337"></span><a class="pep reference external" href="https://peps.python.org/pep-0489/"><strong>PEP 489</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39216">bpo-39216</a>: Fix constant folding optimization for positional only arguments
- by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39215">bpo-39215</a>: Fix <code class="docutils literal notranslate"><span class="pre">SystemError</span></code> when nested function has annotation on
positional-only argument - by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39200">bpo-39200</a>: Correct the error message when calling the <a class="reference internal" href="../library/functions.html#min" title="min"><code class="xref py py-func docutils literal notranslate"><span class="pre">min()</span></code></a> or
<a class="reference internal" href="../library/functions.html#max" title="max"><code class="xref py py-func docutils literal notranslate"><span class="pre">max()</span></code></a> with no arguments. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39200">bpo-39200</a>: Correct the error message when trying to construct
<a class="reference internal" href="../library/stdtypes.html#range" title="range"><code class="xref py py-class docutils literal notranslate"><span class="pre">range</span></code></a> objects with no arguments. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39166">bpo-39166</a>: Fix incorrect line execution reporting in trace functions when
tracing the last iteration of asynchronous for loops. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39114">bpo-39114</a>: Fix incorrect line execution reporting in trace functions when
tracing exception handlers with name binding. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39156">bpo-39156</a>: Split the COMPARE_OP bytecode instruction into four distinct
instructions.</p>
<ul class="simple">
<li><p>COMPARE_OP for rich comparisons</p></li>
<li><p>IS_OP for ‘is’ and ‘is not’ tests</p></li>
<li><p>CONTAINS_OP for ‘in’ and ‘is not’ tests</p></li>
<li><p>JUMP_IF_NOT_EXC_MATCH for checking exceptions in ‘try-except’ statements.</p></li>
</ul>
<p>This improves the clarity of the interpreter and should provide a modest
speedup.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38588">bpo-38588</a>: Fix possible crashes in dict and list when calling
<a class="reference internal" href="../c-api/object.html#c.PyObject_RichCompareBool" title="PyObject_RichCompareBool"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_RichCompareBool()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13601">bpo-13601</a>: By default, <code class="docutils literal notranslate"><span class="pre">sys.stderr</span></code> is line-buffered now, even if
<code class="docutils literal notranslate"><span class="pre">stderr</span></code> is redirected to a file. You can still make <code class="docutils literal notranslate"><span class="pre">sys.stderr</span></code>
unbuffered by passing the <a class="reference internal" href="../using/cmdline.html#cmdoption-u"><code class="xref std std-option docutils literal notranslate"><span class="pre">-u</span></code></a> command-line option or setting the
<span class="target" id="index-338"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONUNBUFFERED"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONUNBUFFERED</span></code></a> environment variable.</p>
<p>(Contributed by Jendrik Seipp in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13601">bpo-13601</a>.)</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38610">bpo-38610</a>: Fix possible crashes in several list methods by holding strong
references to list elements when calling
<a class="reference internal" href="../c-api/object.html#c.PyObject_RichCompareBool" title="PyObject_RichCompareBool"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_RichCompareBool()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32021">bpo-32021</a>: Include brotli .br encoding in mimetypes encodings_map</p></li>
</ul>
</section>
<section id="id450">
<h3>Library<a class="headerlink" href="#id450" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39430">bpo-39430</a>: Fixed race condition in lazy imports in <a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39413">bpo-39413</a>: The <a class="reference internal" href="../library/os.html#os.unsetenv" title="os.unsetenv"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.unsetenv()</span></code></a> function is now also available on
Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39390">bpo-39390</a>: Fixed a regression with the <code class="docutils literal notranslate"><span class="pre">ignore</span></code> callback of
<a class="reference internal" href="../library/shutil.html#shutil.copytree" title="shutil.copytree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copytree()</span></code></a>. The argument types are now <code class="docutils literal notranslate"><span class="pre">str</span></code> and
<code class="docutils literal notranslate"><span class="pre">List[str]</span></code> again.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39395">bpo-39395</a>: The <a class="reference internal" href="../library/os.html#os.putenv" title="os.putenv"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.putenv()</span></code></a> and <a class="reference internal" href="../library/os.html#os.unsetenv" title="os.unsetenv"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.unsetenv()</span></code></a> functions are now
always available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39406">bpo-39406</a>: If <code class="docutils literal notranslate"><span class="pre">setenv()</span></code> C function is available, <a class="reference internal" href="../library/os.html#os.putenv" title="os.putenv"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.putenv()</span></code></a> is
now implemented with <code class="docutils literal notranslate"><span class="pre">setenv()</span></code> instead of <code class="docutils literal notranslate"><span class="pre">putenv()</span></code>, so Python
doesn’t have to handle the environment variable memory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39396">bpo-39396</a>: Fix <code class="docutils literal notranslate"><span class="pre">math.nextafter(-0.0,</span> <span class="pre">+0.0)</span></code> on AIX 7.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29435">bpo-29435</a>: Allow <a class="reference internal" href="../library/tarfile.html#tarfile.is_tarfile" title="tarfile.is_tarfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">tarfile.is_tarfile()</span></code></a> to be used with file and
file-like objects, like <a class="reference internal" href="../library/zipfile.html#zipfile.is_zipfile" title="zipfile.is_zipfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">zipfile.is_zipfile()</span></code></a>. Patch by William
Woodruff.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39377">bpo-39377</a>: Removed <code class="docutils literal notranslate"><span class="pre">encoding</span></code> option from <a class="reference internal" href="../library/json.html#json.loads" title="json.loads"><code class="xref py py-func docutils literal notranslate"><span class="pre">json.loads()</span></code></a>. It has
been deprecated since Python 3.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39389">bpo-39389</a>: Write accurate compression level metadata in <a class="reference internal" href="../library/gzip.html#module-gzip" title="gzip: Interfaces for gzip compression and decompression using file objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gzip</span></code></a>
archives, rather than always signaling maximum compression.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39366">bpo-39366</a>: The previously deprecated <code class="docutils literal notranslate"><span class="pre">xpath()</span></code> and <code class="docutils literal notranslate"><span class="pre">xgtitle()</span></code> methods
of <code class="xref py py-class docutils literal notranslate"><span class="pre">nntplib.NNTP</span></code> have been removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39357">bpo-39357</a>: Remove the <em>buffering</em> parameter of <a class="reference internal" href="../library/bz2.html#bz2.BZ2File" title="bz2.BZ2File"><code class="xref py py-class docutils literal notranslate"><span class="pre">bz2.BZ2File</span></code></a>. Since
Python 3.0, it was ignored and using it was emitting
<a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a>. Pass an open file object, to control how the
file is opened. The <em>compresslevel</em> parameter becomes keyword-only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39353">bpo-39353</a>: Deprecate binhex4 and hexbin4 standards. Deprecate the
<code class="xref py py-mod docutils literal notranslate"><span class="pre">binhex</span></code> module and the following <a class="reference internal" href="../library/binascii.html#module-binascii" title="binascii: Tools for converting between binary and various ASCII-encoded binary representations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">binascii</span></code></a> functions:
<code class="xref py py-func docutils literal notranslate"><span class="pre">b2a_hqx()</span></code>, <code class="xref py py-func docutils literal notranslate"><span class="pre">a2b_hqx()</span></code>,
<code class="xref py py-func docutils literal notranslate"><span class="pre">rlecode_hqx()</span></code>, <code class="xref py py-func docutils literal notranslate"><span class="pre">rledecode_hqx()</span></code>,
<a class="reference internal" href="../library/binascii.html#binascii.crc_hqx" title="binascii.crc_hqx"><code class="xref py py-func docutils literal notranslate"><span class="pre">crc_hqx()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39351">bpo-39351</a>: Remove <code class="docutils literal notranslate"><span class="pre">base64.encodestring()</span></code> and <code class="docutils literal notranslate"><span class="pre">base64.decodestring()</span></code>,
aliases deprecated since Python 3.1: use <a class="reference internal" href="../library/base64.html#base64.encodebytes" title="base64.encodebytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">base64.encodebytes()</span></code></a> and
<a class="reference internal" href="../library/base64.html#base64.decodebytes" title="base64.decodebytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">base64.decodebytes()</span></code></a> instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39350">bpo-39350</a>: Remove <code class="docutils literal notranslate"><span class="pre">fractions.gcd()</span></code> function, deprecated since Python
3.5 (<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22486">bpo-22486</a>): use <a class="reference internal" href="../library/math.html#math.gcd" title="math.gcd"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.gcd()</span></code></a> instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39329">bpo-39329</a>: <a class="reference internal" href="../library/smtplib.html#smtplib.LMTP" title="smtplib.LMTP"><code class="xref py py-class docutils literal notranslate"><span class="pre">LMTP</span></code></a> constructor now has an optional
<em>timeout</em> parameter. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39313">bpo-39313</a>: Add a new <code class="docutils literal notranslate"><span class="pre">exec_function</span></code> option (<em>–exec-function</em> in the
CLI) to <code class="docutils literal notranslate"><span class="pre">RefactoringTool</span></code> for making <code class="docutils literal notranslate"><span class="pre">exec</span></code> a function. Patch by
Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39259">bpo-39259</a>: <a class="reference internal" href="../library/ftplib.html#ftplib.FTP_TLS" title="ftplib.FTP_TLS"><code class="xref py py-class docutils literal notranslate"><span class="pre">FTP_TLS</span></code></a> and <a class="reference internal" href="../library/ftplib.html#ftplib.FTP_TLS" title="ftplib.FTP_TLS"><code class="xref py py-class docutils literal notranslate"><span class="pre">FTP_TLS</span></code></a> now raise
a <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-class docutils literal notranslate"><span class="pre">ValueError</span></code></a> if the given timeout for their constructor is zero
to prevent the creation of a non-blocking socket. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39259">bpo-39259</a>: <a class="reference internal" href="../library/smtplib.html#smtplib.SMTP" title="smtplib.SMTP"><code class="xref py py-class docutils literal notranslate"><span class="pre">SMTP</span></code></a> and <a class="reference internal" href="../library/smtplib.html#smtplib.SMTP_SSL" title="smtplib.SMTP_SSL"><code class="xref py py-class docutils literal notranslate"><span class="pre">SMTP_SSL</span></code></a> now raise
a <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-class docutils literal notranslate"><span class="pre">ValueError</span></code></a> if the given timeout for their constructor is zero
to prevent the creation of a non-blocking socket. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39310">bpo-39310</a>: Add <a class="reference internal" href="../library/math.html#math.ulp" title="math.ulp"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.ulp()</span></code></a>: return the value of the least significant
bit of a float.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39297">bpo-39297</a>: Improved performance of importlib.metadata distribution
discovery and resilients to inaccessible sys.path entries
(importlib_metadata v1.4.0).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39259">bpo-39259</a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">NNTP</span></code> and <code class="xref py py-class docutils literal notranslate"><span class="pre">NNTP_SSL</span></code> now raise a
<a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-class docutils literal notranslate"><span class="pre">ValueError</span></code></a> if the given timeout for their constructor is zero to
prevent the creation of a non-blocking socket. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38901">bpo-38901</a>: When you specify prompt=’.’ or equivalently python -m venv
–prompt . … the basename of the current directory is used to set the
created venv’s prompt when it’s activated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39288">bpo-39288</a>: Add <a class="reference internal" href="../library/math.html#math.nextafter" title="math.nextafter"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.nextafter()</span></code></a>: return the next floating-point
value after <em>x</em> towards <em>y</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39259">bpo-39259</a>: <a class="reference internal" href="../library/poplib.html#poplib.POP3" title="poplib.POP3"><code class="xref py py-class docutils literal notranslate"><span class="pre">POP3</span></code></a> and <a class="reference internal" href="../library/poplib.html#poplib.POP3_SSL" title="poplib.POP3_SSL"><code class="xref py py-class docutils literal notranslate"><span class="pre">POP3_SSL</span></code></a> now raise a
<a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-class docutils literal notranslate"><span class="pre">ValueError</span></code></a> if the given timeout for their constructor is zero to
prevent the creation of a non-blocking socket. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39242">bpo-39242</a>: Updated the Gmane domain from news.gmane.org to news.gmane.io
which is used for examples of <code class="xref py py-class docutils literal notranslate"><span class="pre">NNTP</span></code> news reader server and
nntplib tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35292">bpo-35292</a>: Proxy the <code class="docutils literal notranslate"><span class="pre">SimpleHTTPRequestHandler.guess_type</span></code> to
<code class="docutils literal notranslate"><span class="pre">mimetypes.guess_type</span></code> so the <code class="docutils literal notranslate"><span class="pre">mimetypes.init</span></code> is called lazily to
avoid unnecessary costs when <a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a> module is imported.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39239">bpo-39239</a>: The <a class="reference internal" href="../library/select.html#select.epoll.unregister" title="select.epoll.unregister"><code class="xref py py-meth docutils literal notranslate"><span class="pre">select.epoll.unregister()</span></code></a> method no longer ignores
the <a class="reference internal" href="../library/errno.html#errno.EBADF" title="errno.EBADF"><code class="xref py py-data docutils literal notranslate"><span class="pre">EBADF</span></code></a> error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38907">bpo-38907</a>: In http.server script, restore binding to IPv4 on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39152">bpo-39152</a>: Fix ttk.Scale.configure([name]) to return configuration tuple
for name or all options. Giovanni Lombardo contributed part of the patch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39198">bpo-39198</a>: If an exception were to be thrown in <code class="docutils literal notranslate"><span class="pre">Logger.isEnabledFor</span></code>
(say, by asyncio timeouts or stopit) , the <code class="docutils literal notranslate"><span class="pre">logging</span></code> global lock may not
be released appropriately, resulting in deadlock. This change wraps that
block of code with <code class="docutils literal notranslate"><span class="pre">try...finally</span></code> to ensure the lock is released.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39191">bpo-39191</a>: Perform a check for running loop before starting a new task in
<code class="docutils literal notranslate"><span class="pre">loop.run_until_complete()</span></code> to fail fast; it prevents the side effect of
new task spawning before exception raising.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38871">bpo-38871</a>: Correctly parenthesize filter-based statements that contain
lambda expressions in <code class="xref py py-mod docutils literal notranslate"><span class="pre">lib2to3</span></code>. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39142">bpo-39142</a>: A change was made to logging.config.dictConfig to avoid
converting instances of named tuples to ConvertingTuple. It’s assumed that
named tuples are too specialised to be treated like ordinary tuples; if a
user of named tuples requires ConvertingTuple functionality, they will
have to implement that themselves in their named tuple class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39158">bpo-39158</a>: ast.literal_eval() now supports empty sets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39129">bpo-39129</a>: Fix import path for <code class="docutils literal notranslate"><span class="pre">asyncio.TimeoutError</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39057">bpo-39057</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.request.proxy_bypass_environment()</span></code> now ignores
leading dots and no longer ignores a trailing newline.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39056">bpo-39056</a>: Fixed handling invalid warning category in the -W option. No
longer import the re module if it is not needed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39055">bpo-39055</a>: <a class="reference internal" href="../library/base64.html#base64.b64decode" title="base64.b64decode"><code class="xref py py-func docutils literal notranslate"><span class="pre">base64.b64decode()</span></code></a> with <code class="docutils literal notranslate"><span class="pre">validate=True</span></code> raises now a
binascii.Error if the input ends with a single <code class="docutils literal notranslate"><span class="pre">\n</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21600">bpo-21600</a>: Fix <code class="xref py py-func docutils literal notranslate"><span class="pre">mock.patch.stopall()</span></code> to stop active patches that were
created with <code class="xref py py-func docutils literal notranslate"><span class="pre">mock.patch.dict()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39019">bpo-39019</a>: Implement dummy <code class="docutils literal notranslate"><span class="pre">__class_getitem__</span></code> for
<a class="reference internal" href="../library/tempfile.html#tempfile.SpooledTemporaryFile" title="tempfile.SpooledTemporaryFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">tempfile.SpooledTemporaryFile</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39019">bpo-39019</a>: Implement dummy <code class="docutils literal notranslate"><span class="pre">__class_getitem__</span></code> for <code class="docutils literal notranslate"><span class="pre">subprocess.Popen</span></code>,
<code class="docutils literal notranslate"><span class="pre">subprocess.CompletedProcess</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38914">bpo-38914</a>: Adjusted the wording of the warning issued by distutils’
<code class="docutils literal notranslate"><span class="pre">check</span></code> command when the <code class="docutils literal notranslate"><span class="pre">author</span></code> and <code class="docutils literal notranslate"><span class="pre">maintainer</span></code> fields are
supplied but no corresponding e-mail field (<code class="docutils literal notranslate"><span class="pre">author_email</span></code> or
<code class="docutils literal notranslate"><span class="pre">maintainer_email</span></code>) is found. The wording now reflects the fact that
these fields are suggested, but not required. Patch by Juergen Gmach.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38878">bpo-38878</a>: Fixed __subclasshook__ of <a class="reference internal" href="../library/os.html#os.PathLike" title="os.PathLike"><code class="xref py py-class docutils literal notranslate"><span class="pre">os.PathLike</span></code></a> to return a
correct result upon inheritance. Patch by Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38615">bpo-38615</a>: <a class="reference internal" href="../library/imaplib.html#imaplib.IMAP4" title="imaplib.IMAP4"><code class="xref py py-class docutils literal notranslate"><span class="pre">IMAP4</span></code></a> and <a class="reference internal" href="../library/imaplib.html#imaplib.IMAP4_SSL" title="imaplib.IMAP4_SSL"><code class="xref py py-class docutils literal notranslate"><span class="pre">IMAP4_SSL</span></code></a> now
have an optional <em>timeout</em> parameter for their constructors. Also, the
<a class="reference internal" href="../library/imaplib.html#imaplib.IMAP4.open" title="imaplib.IMAP4.open"><code class="xref py py-meth docutils literal notranslate"><span class="pre">open()</span></code></a> method now has an optional <em>timeout</em> parameter
with this change. The overridden methods of <a class="reference internal" href="../library/imaplib.html#imaplib.IMAP4_SSL" title="imaplib.IMAP4_SSL"><code class="xref py py-class docutils literal notranslate"><span class="pre">IMAP4_SSL</span></code></a>
and <a class="reference internal" href="../library/imaplib.html#imaplib.IMAP4_stream" title="imaplib.IMAP4_stream"><code class="xref py py-class docutils literal notranslate"><span class="pre">IMAP4_stream</span></code></a> were applied to this change. Patch by
Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35182">bpo-35182</a>: Fixed <code class="xref py py-func docutils literal notranslate"><span class="pre">Popen.communicate()</span></code> subsequent call crash when the
child process has already closed any piped standard stream, but still
continues to be running. Patch by Andriy Maletsky.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38630">bpo-38630</a>: On Unix, <a class="reference internal" href="../library/subprocess.html#subprocess.Popen.send_signal" title="subprocess.Popen.send_signal"><code class="xref py py-meth docutils literal notranslate"><span class="pre">subprocess.Popen.send_signal()</span></code></a> now polls the
process status. Polling reduces the risk of sending a signal to the wrong
process if the process completed, the <a class="reference internal" href="../library/subprocess.html#subprocess.Popen.returncode" title="subprocess.Popen.returncode"><code class="xref py py-attr docutils literal notranslate"><span class="pre">subprocess.Popen.returncode</span></code></a>
attribute is still <code class="docutils literal notranslate"><span class="pre">None</span></code>, and the pid has been reassigned (recycled) to
a new different process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38536">bpo-38536</a>: Removes trailing space in formatted currency with
<code class="docutils literal notranslate"><span class="pre">international=True</span></code> and a locale with symbol following value. E.g.
<code class="docutils literal notranslate"><span class="pre">locale.currency(12.34,</span> <span class="pre">international=True)</span></code> returned <code class="docutils literal notranslate"><span class="pre">'12,34</span> <span class="pre">EUR</span> <span class="pre">'</span></code>
instead of <code class="docutils literal notranslate"><span class="pre">'12,34</span> <span class="pre">EUR'</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38473">bpo-38473</a>: Use signature from inner mock for autospecced methods attached
with <code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.attach_mock()</span></code>. Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38361">bpo-38361</a>: Fixed an issue where <code class="docutils literal notranslate"><span class="pre">ident</span></code> could include a leading path
separator when <a class="reference internal" href="../library/syslog.html#syslog.openlog" title="syslog.openlog"><code class="xref py py-func docutils literal notranslate"><span class="pre">syslog.openlog()</span></code></a> was called without arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38293">bpo-38293</a>: Add <a class="reference internal" href="../library/copy.html#copy.copy" title="copy.copy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.copy()</span></code></a> and <a class="reference internal" href="../library/copy.html#copy.deepcopy" title="copy.deepcopy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.deepcopy()</span></code></a> support to
<a class="reference internal" href="../library/functions.html#property" title="property"><code class="xref py py-func docutils literal notranslate"><span class="pre">property()</span></code></a> objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37958">bpo-37958</a>: Added the pstats.Stats.get_profile_dict() method to return the
profile data as a StatsProfile instance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28367">bpo-28367</a>: Termios magic constants for the following baud rates: -
B500000 - B576000 - B921600 - B1000000 - B1152000 - B1500000 -
B2000000 - B2500000 - B3000000 - B3500000 - B4000000 Patch by
Andrey Smirnov</p></li>
</ul>
</section>
<section id="id451">
<h3>Documentation<a class="headerlink" href="#id451" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39381">bpo-39381</a>: Mention in docs that <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.get_event_loop" title="asyncio.get_event_loop"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.get_event_loop()</span></code></a> implicitly
creates new event loop only if called from the main thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38918">bpo-38918</a>: Add an entry for <code class="docutils literal notranslate"><span class="pre">__module__</span></code> in the “function” & “method”
sections of the <a class="reference internal" href="../library/inspect.html#module-inspect" title="inspect: Extract information and source code from live objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">inspect</span></code></a> docs’ <a class="reference internal" href="../library/inspect.html#inspect-types"><span class="std std-ref">Types and members</span></a> table.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=3530">bpo-3530</a>: In the <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> module documentation, fix a misleading
<code class="docutils literal notranslate"><span class="pre">NodeTransformer</span></code> example and add advice on when to use the
<code class="docutils literal notranslate"><span class="pre">fix_missing_locations</span></code> function.</p></li>
</ul>
</section>
<section id="id452">
<h3>Build<a class="headerlink" href="#id452" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39395">bpo-39395</a>: On non-Windows platforms, the <code class="xref c c-func docutils literal notranslate"><span class="pre">setenv()</span></code> and
<code class="xref c c-func docutils literal notranslate"><span class="pre">unsetenv()</span></code> functions are now required to build Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39160">bpo-39160</a>: Updated the documentation in <code class="docutils literal notranslate"><span class="pre">./configure</span> <span class="pre">--help</span></code> to show
default values, reference documentation where required and add additional
explanation where needed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39144">bpo-39144</a>: The ctags and etags build targets both include Modules/_ctypes
and Python standard library source files.</p></li>
</ul>
</section>
<section id="id453">
<h3>IDLE<a class="headerlink" href="#id453" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39050">bpo-39050</a>: Make IDLE Settings dialog Help button work again.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34118">bpo-34118</a>: Tag memoryview, range, and tuple as classes, the same as list,
etcetera, in the library manual built-in functions list.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32989">bpo-32989</a>: Add tests for editor newline_and_indent_event method. Remove
dead code from pyparse find_good_parse_start method.</p></li>
</ul>
</section>
<section id="id454">
<h3>C API<a class="headerlink" href="#id454" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39372">bpo-39372</a>: Clean header files of interfaces defined but with no
implementation. The public API symbols being removed are:
<code class="docutils literal notranslate"><span class="pre">_PyBytes_InsertThousandsGroupingLocale</span></code>,
<code class="docutils literal notranslate"><span class="pre">_PyBytes_InsertThousandsGrouping</span></code>, <code class="docutils literal notranslate"><span class="pre">_Py_InitializeFromArgs</span></code>,
<code class="docutils literal notranslate"><span class="pre">_Py_InitializeFromWideArgs</span></code>, <code class="docutils literal notranslate"><span class="pre">_PyFloat_Repr</span></code>, <code class="docutils literal notranslate"><span class="pre">_PyFloat_Digits</span></code>,
<code class="docutils literal notranslate"><span class="pre">_PyFloat_DigitsInit</span></code>, <code class="docutils literal notranslate"><span class="pre">PyFrame_ExtendStack</span></code>,
<code class="docutils literal notranslate"><span class="pre">_PyAIterWrapper_Type</span></code>, <code class="docutils literal notranslate"><span class="pre">PyNullImporter_Type</span></code>, <code class="docutils literal notranslate"><span class="pre">PyCmpWrapper_Type</span></code>,
<code class="docutils literal notranslate"><span class="pre">PySortWrapper_Type</span></code>, <code class="docutils literal notranslate"><span class="pre">PyNoArgsFunction</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39164">bpo-39164</a>: Add a private <code class="docutils literal notranslate"><span class="pre">_PyErr_GetExcInfo()</span></code> function to retrieve
exception information of the specified Python thread state.</p></li>
</ul>
</section>
</section>
<section id="python-3-9-0-alpha-2">
<h2>Python 3.9.0 alpha 2<a class="headerlink" href="#python-3-9-0-alpha-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2019-12-18</em></p>
<section id="id455">
<h3>Security<a class="headerlink" href="#id455" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38945">bpo-38945</a>: Newline characters have been escaped when performing uu
encoding to prevent them from overflowing into to content section of the
encoded file. This prevents malicious or accidental modification of data
during the decoding process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37228">bpo-37228</a>: Due to significant security concerns, the <em>reuse_address</em>
parameter of <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.loop.create_datagram_endpoint" title="asyncio.loop.create_datagram_endpoint"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.loop.create_datagram_endpoint()</span></code></a> is no longer
supported. This is because of the behavior of <code class="docutils literal notranslate"><span class="pre">SO_REUSEADDR</span></code> in UDP. For
more details, see the documentation for
<code class="docutils literal notranslate"><span class="pre">loop.create_datagram_endpoint()</span></code>. (Contributed by Kyle Stanley, Antoine
Pitrou, and Yury Selivanov in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37228">bpo-37228</a>.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38804">bpo-38804</a>: Fixes a ReDoS vulnerability in <a class="reference internal" href="../library/http.cookiejar.html#module-http.cookiejar" title="http.cookiejar: Classes for automatic handling of HTTP cookies."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.cookiejar</span></code></a>. Patch by
Ben Caller.</p></li>
</ul>
</section>
<section id="id456">
<h3>Core and Builtins<a class="headerlink" href="#id456" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39028">bpo-39028</a>: Slightly improve the speed of keyword argument parsing with
many kwargs by strengthening the assumption that kwargs are interned
strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39080">bpo-39080</a>: Fix the value of <em>end_col_offset</em> for Starred Expression AST
nodes when they are among the elements in the <em>args</em> attribute of Call AST
nodes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39031">bpo-39031</a>: When parsing an “elif” node, lineno and col_offset of the node
now point to the “elif” keyword and not to its condition, making it
consistent with the “if” node. Patch by Lysandros Nikolaou.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20443">bpo-20443</a>: In Python 3.9.0a1, sys.argv[0] was made an absolute path if a
filename was specified on the command line. Revert this change, since most
users expect sys.argv to be unmodified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39008">bpo-39008</a>: <a class="reference internal" href="../c-api/sys.html#c.PySys_Audit" title="PySys_Audit"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_Audit()</span></code></a> now requires <code class="docutils literal notranslate"><span class="pre">Py_ssize_t</span></code> to be used
for size arguments in the format string, regardless of whether
<code class="docutils literal notranslate"><span class="pre">PY_SSIZE_T_CLEAN</span></code> was defined at include time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38673">bpo-38673</a>: In REPL mode, don’t switch to PS2 if the line starts with
comment or whitespace. Based on work by Batuhan Taşkaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38922">bpo-38922</a>: Calling <code class="docutils literal notranslate"><span class="pre">replace</span></code> on a code object now raises the
<code class="docutils literal notranslate"><span class="pre">code.__new__</span></code> audit event.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38920">bpo-38920</a>: Add audit hooks for when <a class="reference internal" href="../library/sys.html#sys.excepthook" title="sys.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.excepthook()</span></code></a> and
<a class="reference internal" href="../library/sys.html#sys.unraisablehook" title="sys.unraisablehook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.unraisablehook()</span></code></a> are invoked.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38892">bpo-38892</a>: Improve documentation for audit events table and functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38852">bpo-38852</a>: Set the thread stack size to 8 Mb for debug builds on android
platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38858">bpo-38858</a>: Each Python subinterpreter now has its own “small integer
singletons”: numbers in [-5; 257] range. It is no longer possible to
change the number of small integers at build time by overriding
<code class="docutils literal notranslate"><span class="pre">NSMALLNEGINTS</span></code> and <code class="docutils literal notranslate"><span class="pre">NSMALLPOSINTS</span></code> macros: macros should now be
modified manually in <code class="docutils literal notranslate"><span class="pre">pycore_pystate.h</span></code> header file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36854">bpo-36854</a>: The garbage collector state becomes per interpreter
(<code class="docutils literal notranslate"><span class="pre">PyInterpreterState.gc</span></code>), rather than being global
(<code class="docutils literal notranslate"><span class="pre">_PyRuntimeState.gc</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38835">bpo-38835</a>: The <code class="docutils literal notranslate"><span class="pre">PyFPE_START_PROTECT()</span></code> and <code class="docutils literal notranslate"><span class="pre">PyFPE_END_PROTECT()</span></code>
macros are empty: they have been doing nothing for the last year, so stop
using them.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38328">bpo-38328</a>: Sped up the creation time of constant <a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> and
<a class="reference internal" href="../library/stdtypes.html#set" title="set"><code class="xref py py-class docutils literal notranslate"><span class="pre">set</span></code></a> displays. Patch by Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38707">bpo-38707</a>: <code class="docutils literal notranslate"><span class="pre">MainThread.native_id</span></code> is now correctly reset in child
processes spawned using <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Process" title="multiprocessing.Process"><code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Process</span></code></a>, instead of
retaining the parent’s value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38629">bpo-38629</a>: Added <code class="docutils literal notranslate"><span class="pre">__floor__</span></code> and <code class="docutils literal notranslate"><span class="pre">__ceil__</span></code> methods to float object.
Patch by Batuhan Taşkaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27145">bpo-27145</a>: int + int and int - int operators can now return small integer
singletons. Patch by hongweipeng.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38021">bpo-38021</a>: Provide a platform tag for AIX that is sufficient for PEP425
binary distribution identification. Patch by Michael Felt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35409">bpo-35409</a>: Ignore GeneratorExit exceptions when throwing an exception into
the aclose coroutine of an asynchronous generator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33387">bpo-33387</a>: Removed WITH_CLEANUP_START, WITH_CLEANUP_FINISH, BEGIN_FINALLY,
END_FINALLY, CALL_FINALLY and POP_FINALLY bytecodes. Replaced with RERAISE
and WITH_EXCEPT_START bytecodes. The compiler now generates different code
for exceptional and non-exceptional branches for ‘with’ and ‘try-except’
statements. For ‘try-finally’ statements the ‘finally’ block is replicated
for each exit from the ‘try’ body.</p></li>
</ul>
</section>
<section id="id457">
<h3>Library<a class="headerlink" href="#id457" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39033">bpo-39033</a>: Fix <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> in <a class="reference internal" href="../library/zipimport.html#module-zipimport" title="zipimport: Support for importing Python modules from ZIP archives."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipimport</span></code></a>. Patch by Karthikeyan
Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39022">bpo-39022</a>: Update importlib.metadata to include improvements from
importlib_metadata 1.3 including better serialization of EntryPoints and
improved documentation for custom finders.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39006">bpo-39006</a>: Fix asyncio when the ssl module is missing: only check for
ssl.SSLSocket instance if the ssl module is available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38708">bpo-38708</a>: Fix a potential IndexError in email parser when parsing an
empty msg-id.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38698">bpo-38698</a>: Add a new <code class="docutils literal notranslate"><span class="pre">InvalidMessageID</span></code> token to email parser to
represent invalid Message-ID headers. Also, add defects when there is
remaining value after parsing the header.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38994">bpo-38994</a>: Implement <code class="docutils literal notranslate"><span class="pre">__class_getitem__</span></code> for <code class="docutils literal notranslate"><span class="pre">os.PathLike</span></code>,
<code class="docutils literal notranslate"><span class="pre">pathlib.Path</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38979">bpo-38979</a>: Return class from <code class="docutils literal notranslate"><span class="pre">ContextVar.__class_getitem__</span></code> to simplify
subclassing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38978">bpo-38978</a>: Implement <code class="docutils literal notranslate"><span class="pre">__class_getitem__</span></code> on asyncio objects (Future,
Task, Queue). Patch by Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38916">bpo-38916</a>: <a class="reference internal" href="../library/array.html#array.array" title="array.array"><code class="xref py py-class docutils literal notranslate"><span class="pre">array.array</span></code></a>: Remove <code class="docutils literal notranslate"><span class="pre">tostring()</span></code> and
<code class="docutils literal notranslate"><span class="pre">fromstring()</span></code> methods. They were aliases to <code class="docutils literal notranslate"><span class="pre">tobytes()</span></code> and
<code class="docutils literal notranslate"><span class="pre">frombytes()</span></code>, deprecated since Python 3.2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38986">bpo-38986</a>: Make repr of C accelerated TaskWakeupMethWrapper the same as of
pure Python version.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38982">bpo-38982</a>: Fix asyncio <code class="docutils literal notranslate"><span class="pre">PidfdChildWatcher</span></code>: handle <code class="docutils literal notranslate"><span class="pre">waitpid()</span></code> error.
If <code class="docutils literal notranslate"><span class="pre">waitpid()</span></code> is called elsewhere, <code class="docutils literal notranslate"><span class="pre">waitpid()</span></code> call fails with
<a class="reference internal" href="../library/exceptions.html#ChildProcessError" title="ChildProcessError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ChildProcessError</span></code></a>: use return code 255 in this case, and log a
warning. It ensures that the pidfd file descriptor is closed if this error
occurs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38529">bpo-38529</a>: Drop too noisy asyncio warning about deletion of a stream
without explicit <code class="docutils literal notranslate"><span class="pre">.close()</span></code> call.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27413">bpo-27413</a>: Added ability to pass through <code class="docutils literal notranslate"><span class="pre">ensure_ascii</span></code> options to
json.dumps in the <code class="docutils literal notranslate"><span class="pre">json.tool</span></code> command-line interface.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38634">bpo-38634</a>: The <a class="reference internal" href="../library/readline.html#module-readline" title="readline: GNU readline support for Python. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">readline</span></code></a> module now detects if Python is linked to
libedit at runtime on all platforms. Previously, the check was only done
on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33684">bpo-33684</a>: Fix <code class="docutils literal notranslate"><span class="pre">json.tool</span></code> failed to read a JSON file with non-ASCII
characters when locale encoding is not UTF-8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38698">bpo-38698</a>: Prevent UnboundLocalError to pop up in parse_message_id.</p>
<p>parse_message_id() was improperly using a token defined inside an
exception handler, which was raising <code class="docutils literal notranslate"><span class="pre">UnboundLocalError</span></code> on parsing an
invalid value. Patch by Claudiu Popa.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38927">bpo-38927</a>: Use <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">pip</span></code> instead of <code class="docutils literal notranslate"><span class="pre">pip</span></code> to upgrade
dependencies in venv.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26730">bpo-26730</a>: Fix <code class="docutils literal notranslate"><span class="pre">SpooledTemporaryFile.rollover()</span></code> might corrupt the file
when it is in text mode. Patch by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38881">bpo-38881</a>: random.choices() now raises a ValueError when all the weights
are zero.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38876">bpo-38876</a>: Raise pickle.UnpicklingError when loading an item from memo for
invalid input.</p>
<p>The previous code was raising a <code class="docutils literal notranslate"><span class="pre">KeyError</span></code> for both the Python and C
implementation. This was caused by the specified index of an invalid input
which did not exist in the memo structure, where the pickle stores what
objects it has seen. The malformed input would have caused either a
<code class="docutils literal notranslate"><span class="pre">BINGET</span></code> or <code class="docutils literal notranslate"><span class="pre">LONG_BINGET</span></code> load from the memo, leading to a
<code class="docutils literal notranslate"><span class="pre">KeyError</span></code> as the determined index was bogus. Patch by Claudiu Popa.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38688">bpo-38688</a>: Calling func:<code class="docutils literal notranslate"><span class="pre">shutil.copytree</span></code> to copy a directory tree from
one directory to another subdirectory resulted in an endless loop and a
RecursionError. A fix was added to consume an iterator and create the list
of the entries to be copied, avoiding the recursion for newly created
directories. Patch by Bruno P. Kinoshita.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38863">bpo-38863</a>: Improve <code class="xref py py-func docutils literal notranslate"><span class="pre">is_cgi()</span></code> function in <a class="reference internal" href="../library/http.server.html#module-http.server" title="http.server: HTTP server and request handlers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.server</span></code></a>, which
enables processing the case that cgi directory is a child of another
directory other than root.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37838">bpo-37838</a>: <a class="reference internal" href="../library/typing.html#typing.get_type_hints" title="typing.get_type_hints"><code class="xref py py-meth docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code></a> properly handles functions
decorated with <a class="reference internal" href="../library/functools.html#functools.wraps" title="functools.wraps"><code class="xref py py-meth docutils literal notranslate"><span class="pre">functools.wraps()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38870">bpo-38870</a>: Expose <a class="reference internal" href="../library/ast.html#ast.unparse" title="ast.unparse"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.unparse()</span></code></a> as a function of the <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a>
module that can be used to unparse an <a class="reference internal" href="../library/ast.html#ast.AST" title="ast.AST"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.AST</span></code></a> object and produce
a string with code that would produce an equivalent <a class="reference internal" href="../library/ast.html#ast.AST" title="ast.AST"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.AST</span></code></a>
object when parsed. Patch by Pablo Galindo and Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38859">bpo-38859</a>: AsyncMock now returns StopAsyncIteration on the exhaustion of a
side_effects iterable. Since PEP-479 its Impossible to raise a
StopIteration exception from a coroutine.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38857">bpo-38857</a>: AsyncMock fix for return values that are awaitable types. This
also covers side_effect iterable values that happened to be awaitable, and
wraps callables that return an awaitable type. Before these awaitables
were being awaited instead of being returned as is.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38834">bpo-38834</a>: <a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.TypedDict</span></code></a> subclasses now track which keys are
optional using the <code class="docutils literal notranslate"><span class="pre">__required_keys__</span></code> and <code class="docutils literal notranslate"><span class="pre">__optional_keys__</span></code>
attributes, to enable runtime validation by downstream projects. Patch by
Zac Hatfield-Dodds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38821">bpo-38821</a>: Fix unhandled exceptions in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> when
internationalizing error messages for arguments with <code class="docutils literal notranslate"><span class="pre">nargs</span></code> set to
special (non-integer) values. Patch by Federico Bond.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38820">bpo-38820</a>: Make Python compatible with OpenSSL 3.0.0.
<a class="reference internal" href="../library/ssl.html#ssl.SSLSocket.getpeercert" title="ssl.SSLSocket.getpeercert"><code class="xref py py-func docutils literal notranslate"><span class="pre">ssl.SSLSocket.getpeercert()</span></code></a> no longer returns IPv6 addresses with a
trailing new line.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38811">bpo-38811</a>: Fix an unhandled exception in <a class="reference internal" href="../library/pathlib.html#module-pathlib" title="pathlib: Object-oriented filesystem paths"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pathlib</span></code></a> when
<a class="reference internal" href="../library/os.html#os.link" title="os.link"><code class="xref py py-meth docutils literal notranslate"><span class="pre">os.link()</span></code></a> is missing. Patch by Toke Høiland-Jørgensen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38686">bpo-38686</a>: Added support for multiple <code class="docutils literal notranslate"><span class="pre">qop</span></code> values in
<a class="reference internal" href="../library/urllib.request.html#urllib.request.AbstractDigestAuthHandler" title="urllib.request.AbstractDigestAuthHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">urllib.request.AbstractDigestAuthHandler</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38712">bpo-38712</a>: Add the Linux-specific <a class="reference internal" href="../library/signal.html#signal.pidfd_send_signal" title="signal.pidfd_send_signal"><code class="xref py py-func docutils literal notranslate"><span class="pre">signal.pidfd_send_signal()</span></code></a>
function, which allows sending a signal to a process identified by a file
descriptor rather than a pid.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38348">bpo-38348</a>: Add <code class="docutils literal notranslate"><span class="pre">-i</span></code> and <code class="docutils literal notranslate"><span class="pre">--indent</span></code> (indentation level), and
<code class="docutils literal notranslate"><span class="pre">--no-type-comments</span></code> (type comments) command line options to ast parsing
tool.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37523">bpo-37523</a>: Change <code class="xref py py-class docutils literal notranslate"><span class="pre">zipfile.ZipExtFile</span></code> to raise <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> when
trying to access the underlying file object after it has been closed. This
new behavior is consistent with how accessing closed files is handled in
other parts of Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38045">bpo-38045</a>: Improve the performance of <code class="xref py py-func docutils literal notranslate"><span class="pre">enum._decompose()</span></code> in
<a class="reference internal" href="../library/enum.html#module-enum" title="enum: Implementation of an enumeration class."><code class="xref py py-mod docutils literal notranslate"><span class="pre">enum</span></code></a>. Patch by hongweipeng.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36820">bpo-36820</a>: Break cycle generated when saving an exception in socket.py,
codeop.py and dyld.py as they keep alive not only the exception but user
objects through the <code class="docutils literal notranslate"><span class="pre">__traceback__</span></code> attribute. Patch by Mario Corchero.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36406">bpo-36406</a>: Handle namespace packages in <a class="reference internal" href="../library/doctest.html#module-doctest" title="doctest: Test pieces of code within docstrings."><code class="xref py py-mod docutils literal notranslate"><span class="pre">doctest</span></code></a>. Patch by
Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34776">bpo-34776</a>: Fix dataclasses to support forward references in type
annotations</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20928">bpo-20928</a>: ElementTree supports recursive XInclude processing. Patch by
Stefan Behnel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29636">bpo-29636</a>: Add whitespace options for formatting JSON with the
<code class="docutils literal notranslate"><span class="pre">json.tool</span></code> CLI. The following mutually exclusive options are now
supported: <code class="docutils literal notranslate"><span class="pre">--indent</span></code> for setting the indent level in spaces; <code class="docutils literal notranslate"><span class="pre">--tab</span></code>
for indenting with tabs; <code class="docutils literal notranslate"><span class="pre">--no-indent</span></code> for suppressing newlines; and
<code class="docutils literal notranslate"><span class="pre">--compact</span></code> for suppressing all whitespace. The default behavior remains
the same as <code class="docutils literal notranslate"><span class="pre">--indent=4</span></code>.</p></li>
</ul>
</section>
<section id="id458">
<h3>Documentation<a class="headerlink" href="#id458" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38928">bpo-38928</a>: Correct when venv’s <code class="docutils literal notranslate"><span class="pre">upgrade_dependencies()</span></code> and
<code class="docutils literal notranslate"><span class="pre">--upgrade-deps</span></code> are added.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38899">bpo-38899</a>: Update documentation to state that to activate virtual
environments under fish one should use <code class="docutils literal notranslate"><span class="pre">source</span></code>, not <code class="docutils literal notranslate"><span class="pre">.</span></code> as documented
at <a class="reference external" href="https://fishshell.com/docs/current/cmds/source.html">https://fishshell.com/docs/current/cmds/source.html</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22377">bpo-22377</a>: Improves documentation of the values that
<a class="reference internal" href="../library/datetime.html#datetime.datetime.strptime" title="datetime.datetime.strptime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.strptime()</span></code></a> accepts for <code class="docutils literal notranslate"><span class="pre">%Z</span></code>. Patch by Karl
Dubost.</p></li>
</ul>
</section>
<section id="id459">
<h3>Tests<a class="headerlink" href="#id459" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38546">bpo-38546</a>: Fix test_ressources_gced_in_workers() of
test_concurrent_futures: explicitly stop the manager to prevent leaking a
child process running in the background after the test completes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38546">bpo-38546</a>: Multiprocessing and concurrent.futures tests now stop the
resource tracker process when tests complete.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38614">bpo-38614</a>: Replace hardcoded timeout constants in tests with new
<a class="reference internal" href="../library/test.html#module-test.support" title="test.support: Support for Python's regression test suite."><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support</span></code></a> constants: <a class="reference internal" href="../library/test.html#test.support.LOOPBACK_TIMEOUT" title="test.support.LOOPBACK_TIMEOUT"><code class="xref py py-data docutils literal notranslate"><span class="pre">LOOPBACK_TIMEOUT</span></code></a>,
<a class="reference internal" href="../library/test.html#test.support.INTERNET_TIMEOUT" title="test.support.INTERNET_TIMEOUT"><code class="xref py py-data docutils literal notranslate"><span class="pre">INTERNET_TIMEOUT</span></code></a>,
<a class="reference internal" href="../library/test.html#test.support.SHORT_TIMEOUT" title="test.support.SHORT_TIMEOUT"><code class="xref py py-data docutils literal notranslate"><span class="pre">SHORT_TIMEOUT</span></code></a> and
<a class="reference internal" href="../library/test.html#test.support.LONG_TIMEOUT" title="test.support.LONG_TIMEOUT"><code class="xref py py-data docutils literal notranslate"><span class="pre">LONG_TIMEOUT</span></code></a>. It becomes easier to adjust these four
timeout constants for all tests at once, rather than having to adjust
every single test file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38547">bpo-38547</a>: Fix test_pty: if the process is the session leader, closing the
master file descriptor raises a SIGHUP signal: simply ignore SIGHUP when
running the tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38992">bpo-38992</a>: Fix a test for <a class="reference internal" href="../library/math.html#math.fsum" title="math.fsum"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.fsum()</span></code></a> that was failing due to
constant folding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38991">bpo-38991</a>: <a class="reference internal" href="../library/test.html#module-test.support" title="test.support: Support for Python's regression test suite."><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support</span></code></a>:
<code class="xref py py-func docutils literal notranslate"><span class="pre">run_python_until_end()</span></code>,
<code class="xref py py-func docutils literal notranslate"><span class="pre">assert_python_ok()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">assert_python_failure()</span></code> functions no longer strip
whitespaces from stderr. Remove <code class="docutils literal notranslate"><span class="pre">test.support.strip_python_stderr()</span></code>
function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38965">bpo-38965</a>: Fix test_faulthandler on GCC 10. Use the “volatile” keyword in
<code class="docutils literal notranslate"><span class="pre">faulthandler._stack_overflow()</span></code> to prevent tail call optimization on
any compiler, rather than relying on compiler specific pragma.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38875">bpo-38875</a>: test_capi: trashcan tests now require the test “cpu” resource.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38841">bpo-38841</a>: Skip asyncio test_create_datagram_endpoint_existing_sock_unix
on platforms lacking a functional bind() for named unix domain sockets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38692">bpo-38692</a>: Skip the test_posix.test_pidfd_open() test if
<code class="docutils literal notranslate"><span class="pre">os.pidfd_open()</span></code> fails with a <a class="reference internal" href="../library/exceptions.html#PermissionError" title="PermissionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PermissionError</span></code></a>. This situation
can happen in a Linux sandbox using a syscall whitelist which doesn’t
allow the <code class="docutils literal notranslate"><span class="pre">pidfd_open()</span></code> syscall yet.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38839">bpo-38839</a>: Fix some unused functions in tests. Patch by Adam Johnson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38669">bpo-38669</a>: Raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when passing target as a string with
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.patch.object" title="unittest.mock.patch.object"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.mock.patch.object()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37957">bpo-37957</a>: test.regrtest now can receive a list of test patterns to ignore
(using the -i/–ignore argument) or a file with a list of patterns to
ignore (using the –ignore-file argument). Patch by Pablo Galindo.</p></li>
</ul>
</section>
<section id="id460">
<h3>Build<a class="headerlink" href="#id460" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37404">bpo-37404</a>: <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> now raises <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when calling
incompatible methods with an <a class="reference internal" href="../library/ssl.html#ssl.SSLSocket" title="ssl.SSLSocket"><code class="xref py py-class docutils literal notranslate"><span class="pre">ssl.SSLSocket</span></code></a> socket. Patch by Ido
Michael.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36500">bpo-36500</a>: Added an optional “regen” project to the Visual Studio solution
that will regenerate all grammar, tokens, and opcodes.</p></li>
</ul>
</section>
<section id="id461">
<h3>Windows<a class="headerlink" href="#id461" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=39007">bpo-39007</a>: Add auditing events to functions in <a class="reference internal" href="../library/winreg.html#module-winreg" title="winreg: Routines and objects for manipulating the Windows registry. (Windows)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">winreg</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33125">bpo-33125</a>: Add support for building and releasing Windows ARM64 packages.</p></li>
</ul>
</section>
<section id="id462">
<h3>macOS<a class="headerlink" href="#id462" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37931">bpo-37931</a>: Fixed a crash on OSX dynamic builds that occurred when
re-initializing the posix module after a Py_Finalize if the environment
had changed since the previous <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">posix</span></code>. Patch by Benoît Hudson.</p></li>
</ul>
</section>
<section id="id463">
<h3>IDLE<a class="headerlink" href="#id463" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38944">bpo-38944</a>: Escape key now closes IDLE completion windows. Patch by Johnny
Najera.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38943">bpo-38943</a>: Fix IDLE autocomplete windows not always appearing on some
systems. Patch by Johnny Najera.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38862">bpo-38862</a>: ‘Strip Trailing Whitespace’ on the Format menu removes extra
newlines at the end of non-shell files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38636">bpo-38636</a>: Fix IDLE Format menu tab toggle and file indent width. These
functions (default shortcuts Alt-T and Alt-U) were mistakenly disabled in
3.7.5 and 3.8.0.</p></li>
</ul>
</section>
<section id="id464">
<h3>C API<a class="headerlink" href="#id464" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38896">bpo-38896</a>: Remove <code class="docutils literal notranslate"><span class="pre">PyUnicode_ClearFreeList()</span></code> function: the Unicode free
list has been removed in Python 3.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37340">bpo-37340</a>: Remove <code class="docutils literal notranslate"><span class="pre">PyMethod_ClearFreeList()</span></code> and
<code class="docutils literal notranslate"><span class="pre">PyCFunction_ClearFreeList()</span></code> functions: the free lists of bound method
objects have been removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38835">bpo-38835</a>: Exclude <code class="docutils literal notranslate"><span class="pre">PyFPE_START_PROTECT()</span></code> and <code class="docutils literal notranslate"><span class="pre">PyFPE_END_PROTECT()</span></code>
macros of <code class="docutils literal notranslate"><span class="pre">pyfpe.h</span></code> from <code class="docutils literal notranslate"><span class="pre">Py_LIMITED_API</span></code> (stable API).</p></li>
</ul>
</section>
</section>
<section id="python-3-9-0-alpha-1">
<h2>Python 3.9.0 alpha 1<a class="headerlink" href="#python-3-9-0-alpha-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2019-11-19</em></p>
<section id="id465">
<h3>Security<a class="headerlink" href="#id465" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38722">bpo-38722</a>: <a class="reference internal" href="../library/runpy.html#module-runpy" title="runpy: Locate and run Python modules without importing them first."><code class="xref py py-mod docutils literal notranslate"><span class="pre">runpy</span></code></a> now uses <a class="reference internal" href="../library/io.html#io.open_code" title="io.open_code"><code class="xref py py-meth docutils literal notranslate"><span class="pre">io.open_code()</span></code></a> to open code files.
Patch by Jason Killen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38622">bpo-38622</a>: Add additional audit events for the <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38418">bpo-38418</a>: Fixes audit event for <a class="reference internal" href="../library/os.html#os.system" title="os.system"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.system()</span></code></a> to be named
<code class="docutils literal notranslate"><span class="pre">os.system</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38243">bpo-38243</a>: Escape the server title of
<a class="reference internal" href="../library/xmlrpc.server.html#xmlrpc.server.DocXMLRPCServer" title="xmlrpc.server.DocXMLRPCServer"><code class="xref py py-class docutils literal notranslate"><span class="pre">xmlrpc.server.DocXMLRPCServer</span></code></a> when rendering the document page as
HTML. (Contributed by Donghee Na in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38243">bpo-38243</a>.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38174">bpo-38174</a>: Update vendorized expat library version to 2.2.8, which
resolves <span class="target" id="index-339"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2019-15903"><strong>CVE 2019-15903</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37764">bpo-37764</a>: Fixes email._header_value_parser.get_unstructured going into an
infinite loop for a specific case in which the email header does not have
trailing whitespace, and the case in which it contains an invalid encoded
word. Patch by Ashwin Ramaswami.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37461">bpo-37461</a>: Fix an infinite loop when parsing specially crafted email
headers. Patch by Abhilash Raj.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37363">bpo-37363</a>: Adds audit events for the range of supported run commands (see
<a class="reference internal" href="../using/cmdline.html#using-on-general"><span class="std std-ref">Command line and environment</span></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37463">bpo-37463</a>: ssl.match_hostname() no longer accepts IPv4 addresses with
additional text after the address and only quad-dotted notation without
trailing whitespaces. Some inet_aton() implementations ignore whitespace
and all data after whitespace, e.g. ‘127.0.0.1 whatever’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37363">bpo-37363</a>: Adds audit events for <a class="reference internal" href="../library/ensurepip.html#module-ensurepip" title="ensurepip: Bootstrapping the "pip" installer into an existing Python installation or virtual environment."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ensurepip</span></code></a>, <a class="reference internal" href="../library/ftplib.html#module-ftplib" title="ftplib: FTP protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ftplib</span></code></a>,
<a class="reference internal" href="../library/glob.html#module-glob" title="glob: Unix shell style pathname pattern expansion."><code class="xref py py-mod docutils literal notranslate"><span class="pre">glob</span></code></a>, <a class="reference internal" href="../library/imaplib.html#module-imaplib" title="imaplib: IMAP4 protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">imaplib</span></code></a>, <code class="xref py py-mod docutils literal notranslate"><span class="pre">nntplib</span></code>, <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a>, <a class="reference internal" href="../library/poplib.html#module-poplib" title="poplib: POP3 protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">poplib</span></code></a>,
<a class="reference internal" href="../library/shutil.html#module-shutil" title="shutil: High-level file operations, including copying."><code class="xref py py-mod docutils literal notranslate"><span class="pre">shutil</span></code></a>, <a class="reference internal" href="../library/smtplib.html#module-smtplib" title="smtplib: SMTP protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">smtplib</span></code></a>, <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>, <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a>,
<code class="xref py py-mod docutils literal notranslate"><span class="pre">telnetlib</span></code>, <a class="reference internal" href="../library/tempfile.html#module-tempfile" title="tempfile: Generate temporary files and directories."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tempfile</span></code></a> and <a class="reference internal" href="../library/webbrowser.html#module-webbrowser" title="webbrowser: Easy-to-use controller for web browsers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">webbrowser</span></code></a>, as well as
<a class="reference internal" href="../library/os.html#os.listdir" title="os.listdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.listdir()</span></code></a>, <a class="reference internal" href="../library/os.html#os.scandir" title="os.scandir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.scandir()</span></code></a> and <a class="reference internal" href="../library/functions.html#breakpoint" title="breakpoint"><code class="xref py py-func docutils literal notranslate"><span class="pre">breakpoint()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37364">bpo-37364</a>: <a class="reference internal" href="../library/io.html#io.open_code" title="io.open_code"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.open_code()</span></code></a> is now used when reading <code class="file docutils literal notranslate"><span class="pre">.pth</span></code>
files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34631">bpo-34631</a>: Updated OpenSSL to 1.1.1c in Windows installer</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34155">bpo-34155</a>: Fix parsing of invalid email addresses with more than one <code class="docutils literal notranslate"><span class="pre">@</span></code>
(e.g. a@b@c.com.) to not return the part before 2nd <code class="docutils literal notranslate"><span class="pre">@</span></code> as valid email
address. Patch by maxking & jpic.</p></li>
</ul>
</section>
<section id="id466">
<h3>Core and Builtins<a class="headerlink" href="#id466" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38631">bpo-38631</a>: Replace <code class="docutils literal notranslate"><span class="pre">Py_FatalError()</span></code> call with a regular
<a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> exception in <code class="xref py py-meth docutils literal notranslate"><span class="pre">float.__getformat__()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38639">bpo-38639</a>: Optimized <a class="reference internal" href="../library/math.html#math.floor" title="math.floor"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.floor()</span></code></a>, <a class="reference internal" href="../library/math.html#math.ceil" title="math.ceil"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.ceil()</span></code></a> and
<a class="reference internal" href="../library/math.html#math.trunc" title="math.trunc"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.trunc()</span></code></a> for floats.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38640">bpo-38640</a>: Fixed a bug in the compiler that was causing to raise in the
presence of break statements and continue statements inside always false
while loops. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38613">bpo-38613</a>: Optimized some set operations (e.g. <code class="docutils literal notranslate"><span class="pre">|</span></code>, <code class="docutils literal notranslate"><span class="pre">^</span></code>, and <code class="docutils literal notranslate"><span class="pre">-</span></code>) of
<code class="docutils literal notranslate"><span class="pre">dict_keys</span></code>. <code class="docutils literal notranslate"><span class="pre">d.keys()</span> <span class="pre">|</span> <span class="pre">other</span></code> was slower than <code class="docutils literal notranslate"><span class="pre">set(d)</span> <span class="pre">|</span> <span class="pre">other</span></code> but
they are almost same performance for now.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28029">bpo-28029</a>: <code class="docutils literal notranslate"><span class="pre">"".replace("",</span> <span class="pre">s,</span> <span class="pre">n)</span></code> now returns <code class="docutils literal notranslate"><span class="pre">s</span></code> instead of an empty
string for all non-zero <code class="docutils literal notranslate"><span class="pre">n</span></code>. There are similar changes for
<a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38535">bpo-38535</a>: Fixed line numbers and column offsets for AST nodes for calls
without arguments in decorators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38525">bpo-38525</a>: Fix a segmentation fault when using reverse iterators of empty
<code class="docutils literal notranslate"><span class="pre">dict</span></code> objects. Patch by Donghee Na and Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38465">bpo-38465</a>: <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a>, <a class="reference internal" href="../library/array.html#array.array" title="array.array"><code class="xref py py-class docutils literal notranslate"><span class="pre">array</span></code></a> and
<a class="reference internal" href="../library/mmap.html#mmap.mmap" title="mmap.mmap"><code class="xref py py-class docutils literal notranslate"><span class="pre">mmap</span></code></a> objects allow now to export more than <code class="docutils literal notranslate"><span class="pre">2**31</span></code>
buffers at a time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38469">bpo-38469</a>: Fixed a bug where the scope of named expressions was not being
resolved correctly in the presence of the <em>global</em> keyword. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38437">bpo-38437</a>: Activate the <code class="docutils literal notranslate"><span class="pre">GC_DEBUG</span></code> macro for debug builds of the
interpreter (when <code class="docutils literal notranslate"><span class="pre">Py_DEBUG</span></code> is set). Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38379">bpo-38379</a>: When the garbage collector makes a collection in which some
objects resurrect (they are reachable from outside the isolated cycles
after the finalizers have been executed), do not block the collection of
all objects that are still unreachable. Patch by Pablo Galindo and Tim
Peters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38379">bpo-38379</a>: When cyclic garbage collection (gc) runs finalizers that
resurrect unreachable objects, the current gc run ends, without collecting
any cyclic trash. However, the statistics reported by <code class="docutils literal notranslate"><span class="pre">collect()</span></code> and
<code class="docutils literal notranslate"><span class="pre">get_stats()</span></code> claimed that all cyclic trash found was collected, and
that the resurrected objects were collected. Changed the stats to report
that none were collected.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38392">bpo-38392</a>: In debug mode, <a class="reference internal" href="../c-api/gcsupport.html#c.PyObject_GC_Track" title="PyObject_GC_Track"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GC_Track()</span></code></a> now calls
<code class="docutils literal notranslate"><span class="pre">tp_traverse()</span></code> of the object type to ensure that the object is valid:
test that objects visited by <code class="docutils literal notranslate"><span class="pre">tp_traverse()</span></code> are valid.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38210">bpo-38210</a>: Remove unnecessary intersection and update set operation in
dictview with empty set. (Contributed by Donghee Na in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38210">bpo-38210</a>.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38402">bpo-38402</a>: Check the error from the system’s underlying <code class="docutils literal notranslate"><span class="pre">crypt</span></code> or
<code class="docutils literal notranslate"><span class="pre">crypt_r</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37474">bpo-37474</a>: On FreeBSD, Python no longer calls <code class="docutils literal notranslate"><span class="pre">fedisableexcept()</span></code> at
startup to control the floating-point control mode. The call became
useless since FreeBSD 6: it became the default mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38006">bpo-38006</a>: Fix a bug due to the interaction of weakrefs and the cyclic
garbage collector. We must clear any weakrefs in garbage in order to
prevent their callbacks from executing and causing a crash.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38317">bpo-38317</a>: Fix warnings options priority: <code class="docutils literal notranslate"><span class="pre">PyConfig.warnoptions</span></code> has the
highest priority, as stated in the <span class="target" id="index-340"></span><a class="pep reference external" href="https://peps.python.org/pep-0587/"><strong>PEP 587</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38310">bpo-38310</a>: Predict <code class="docutils literal notranslate"><span class="pre">BUILD_MAP_UNPACK_WITH_CALL</span></code> -> <code class="docutils literal notranslate"><span class="pre">CALL_FUNCTION_EX</span></code>
opcode pairs in the main interpreter loop. Patch by Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36871">bpo-36871</a>: Improve error handling for the assert_has_calls and
assert_has_awaits methods of mocks. Fixed a bug where any errors
encountered while binding the expected calls to the mock’s spec were
silently swallowed, leading to misleading error output.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11410">bpo-11410</a>: Better control over symbol visibility is provided through use
of the visibility attributes available in gcc >= 4.0, provided in a
uniform way across POSIX and Windows. The POSIX build files have been
updated to compile with -fvisibility=hidden, minimising exported symbols.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38219">bpo-38219</a>: Optimized the <a class="reference internal" href="../library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> constructor and the
<a class="reference internal" href="../library/stdtypes.html#dict.update" title="dict.update"><code class="xref py py-meth docutils literal notranslate"><span class="pre">update()</span></code></a> method for the case when the argument is a dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38236">bpo-38236</a>: Python now dumps path configuration if it fails to import the
Python codecs of the filesystem and stdio encodings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38013">bpo-38013</a>: Allow to call <code class="docutils literal notranslate"><span class="pre">async_generator_athrow().throw(...)</span></code> even for
non-started async generator helper. It fixes annoying warning at the end
of <a class="reference internal" href="../library/asyncio-runner.html#asyncio.run" title="asyncio.run"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.run()</span></code></a> call.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38124">bpo-38124</a>: Fix an off-by-one error in PyState_AddModule that could cause
out-of-bounds memory access.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38116">bpo-38116</a>: The select module is now PEP-384 compliant and no longer has
static state</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38113">bpo-38113</a>: ast module updated to PEP-384 and all statics removed</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38076">bpo-38076</a>: The struct module is now PEP-384 compatible</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38075">bpo-38075</a>: The random module is now PEP-384 compatible</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38074">bpo-38074</a>: zlib module made PEP-384 compatible</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38073">bpo-38073</a>: Make pwd extension module PEP-384 compatible</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38072">bpo-38072</a>: grp module made PEP-384 compatible</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38069">bpo-38069</a>: Make _posixsubprocess PEP-384 compatible</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38071">bpo-38071</a>: Make termios extension module PEP-384 compatible</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38005">bpo-38005</a>: Fixed comparing and creating of InterpreterID and ChannelID.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36946">bpo-36946</a>: Fix possible signed integer overflow when handling slices.
Patch by hongweipeng.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37994">bpo-37994</a>: Fixed silencing arbitrary errors if an attribute lookup fails
in several sites. Only AttributeError should be silenced.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8425">bpo-8425</a>: Optimize set difference_update for the case when the other set
is much larger than the base set. (Suggested by Evgeny Kapun with code
contributed by Michele Orrù).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37966">bpo-37966</a>: The implementation of <a class="reference internal" href="../library/unicodedata.html#unicodedata.is_normalized" title="unicodedata.is_normalized"><code class="xref py py-func docutils literal notranslate"><span class="pre">is_normalized()</span></code></a> has
been greatly sped up on strings that aren’t normalized, by implementing
the full normalization-quick-check algorithm from the Unicode standard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37947">bpo-37947</a>: Adjust correctly the recursion level in the symtable generation
for named expressions. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37812">bpo-37812</a>: The <code class="docutils literal notranslate"><span class="pre">CHECK_SMALL_INT</span></code> macro used inside
<code class="file docutils literal notranslate"><span class="pre">Object/longobject.c</span></code> has been replaced with an explicit <code class="docutils literal notranslate"><span class="pre">return</span></code>
at each call site.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37751">bpo-37751</a>: Fix <a class="reference internal" href="../library/codecs.html#codecs.lookup" title="codecs.lookup"><code class="xref py py-func docutils literal notranslate"><span class="pre">codecs.lookup()</span></code></a> to normalize the encoding name the
same way than <a class="reference internal" href="../library/codecs.html#encodings.normalize_encoding" title="encodings.normalize_encoding"><code class="xref py py-func docutils literal notranslate"><span class="pre">encodings.normalize_encoding()</span></code></a>, except that
<a class="reference internal" href="../library/codecs.html#codecs.lookup" title="codecs.lookup"><code class="xref py py-func docutils literal notranslate"><span class="pre">codecs.lookup()</span></code></a> also converts the name to lower case.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37830">bpo-37830</a>: Fixed compilation of <a class="reference internal" href="../reference/simple_stmts.html#break"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">break</span></code></a> and <a class="reference internal" href="../reference/simple_stmts.html#continue"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">continue</span></code></a>
in the <a class="reference internal" href="../reference/compound_stmts.html#finally"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">finally</span></code></a> block when the corresponding <a class="reference internal" href="../reference/compound_stmts.html#try"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">try</span></code></a>
block contains <a class="reference internal" href="../reference/simple_stmts.html#return"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">return</span></code></a> with a non-constant value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20490">bpo-20490</a>: Improve import error message for partially initialized module
on circular <code class="docutils literal notranslate"><span class="pre">from</span></code> imports - by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37840">bpo-37840</a>: Fix handling of negative indices in
<a class="reference internal" href="../c-api/typeobj.html#c.PySequenceMethods.sq_item" title="PySequenceMethods.sq_item"><code class="xref c c-member docutils literal notranslate"><span class="pre">sq_item</span></code></a> of <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a>. Patch by
Sergey Fedoseev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37802">bpo-37802</a>: Slightly improve performance of
<a class="reference internal" href="../c-api/long.html#c.PyLong_FromUnsignedLong" title="PyLong_FromUnsignedLong"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromUnsignedLong()</span></code></a>, <a class="reference internal" href="../c-api/long.html#c.PyLong_FromUnsignedLongLong" title="PyLong_FromUnsignedLongLong"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromUnsignedLongLong()</span></code></a>
and <a class="reference internal" href="../c-api/long.html#c.PyLong_FromSize_t" title="PyLong_FromSize_t"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_FromSize_t()</span></code></a>. Patch by Sergey Fedoseev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37409">bpo-37409</a>: Ensure explicit relative imports from interactive sessions and
scripts (having no parent package) always raise ImportError, rather than
treating the current module as the package. Patch by Ben Lewis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32912">bpo-32912</a>: Reverted <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32912">bpo-32912</a>: emitting <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a> instead
of <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> for invalid escape sequences in string and
bytes literals.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37757">bpo-37757</a>: <span class="target" id="index-341"></span><a class="pep reference external" href="https://peps.python.org/pep-0572/"><strong>PEP 572</strong></a>: As described in the PEP, assignment expressions now
raise <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> when their interaction with comprehension scoping
results in an ambiguous target scope.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">TargetScopeError</span></code> subclass originally proposed by the PEP has been
removed in favour of just raising regular syntax errors for the disallowed
cases.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36279">bpo-36279</a>: Fix potential use of uninitialized memory in <a class="reference internal" href="../library/os.html#os.wait3" title="os.wait3"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.wait3()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36311">bpo-36311</a>: Decoding bytes objects larger than 2GiB is faster and no longer
fails when a multibyte characters spans a chunk boundary.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34880">bpo-34880</a>: The <a class="reference internal" href="../reference/simple_stmts.html#assert"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">assert</span></code></a> statement now works properly if the
<a class="reference internal" href="../library/exceptions.html#AssertionError" title="AssertionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AssertionError</span></code></a> exception is being shadowed. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37340">bpo-37340</a>: Removed object cache (<code class="docutils literal notranslate"><span class="pre">free_list</span></code>) for bound method objects.
Temporary bound method objects are less used than before thanks to the
<code class="docutils literal notranslate"><span class="pre">LOAD_METHOD</span></code> opcode and the <code class="docutils literal notranslate"><span class="pre">_PyObject_VectorcallMethod</span></code> C API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37648">bpo-37648</a>: Fixed minor inconsistency in <code class="xref py py-meth docutils literal notranslate"><span class="pre">list.__contains__()</span></code>,
<code class="xref py py-meth docutils literal notranslate"><span class="pre">tuple.__contains__()</span></code> and a few other places. The collection’s item
is now always at the left and the needle is on the right of <code class="docutils literal notranslate"><span class="pre">==</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37444">bpo-37444</a>: Update differing exception between <code class="xref py py-meth docutils literal notranslate"><span class="pre">builtins.__import__()</span></code>
and <a class="reference internal" href="../library/importlib.html#importlib.__import__" title="importlib.__import__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">importlib.__import__()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37619">bpo-37619</a>: When adding a wrapper descriptor from one class to a different
class (for example, setting <code class="docutils literal notranslate"><span class="pre">__add__</span> <span class="pre">=</span> <span class="pre">str.__add__</span></code> on an <code class="docutils literal notranslate"><span class="pre">int</span></code>
subclass), an exception is correctly raised when the operator is called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37593">bpo-37593</a>: Swap the positions of the <em>posonlyargs</em> and <em>args</em> parameters
in the constructor of <code class="xref py py-class docutils literal notranslate"><span class="pre">ast.parameters</span></code> nodes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37543">bpo-37543</a>: Optimized pymalloc for non PGO build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37537">bpo-37537</a>: Compute allocated pymalloc blocks inside
_Py_GetAllocatedBlocks(). This slows down _Py_GetAllocatedBlocks() but
gives a small speedup to _PyObject_Malloc() and _PyObject_Free().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37467">bpo-37467</a>: Fix <a class="reference internal" href="../library/sys.html#sys.excepthook" title="sys.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.excepthook()</span></code></a> and <code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_Display()</span></code> if a
filename is a bytes string. For example, for a SyntaxError exception where
the filename attribute is a bytes string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37433">bpo-37433</a>: Fix <code class="docutils literal notranslate"><span class="pre">SyntaxError</span></code> indicator printing too many spaces for
multi-line strings - by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37417">bpo-37417</a>: <a class="reference internal" href="../library/stdtypes.html#bytearray.extend" title="bytearray.extend"><code class="xref py py-meth docutils literal notranslate"><span class="pre">bytearray.extend()</span></code></a> now correctly handles errors that
arise during iteration. Patch by Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37414">bpo-37414</a>: The undocumented <code class="docutils literal notranslate"><span class="pre">sys.callstats()</span></code> function has been removed.
Since Python 3.7, it was deprecated and always returned <code class="docutils literal notranslate"><span class="pre">None</span></code>. It
required a special build option <code class="docutils literal notranslate"><span class="pre">CALL_PROFILE</span></code> which was already removed
in Python 3.7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37392">bpo-37392</a>: Remove <code class="docutils literal notranslate"><span class="pre">sys.getcheckinterval()</span></code> and
<code class="docutils literal notranslate"><span class="pre">sys.setcheckinterval()</span></code> functions. They were deprecated since Python
3.2. Use <a class="reference internal" href="../library/sys.html#sys.getswitchinterval" title="sys.getswitchinterval"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.getswitchinterval()</span></code></a> and <a class="reference internal" href="../library/sys.html#sys.setswitchinterval" title="sys.setswitchinterval"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.setswitchinterval()</span></code></a>
instead. Remove also <code class="docutils literal notranslate"><span class="pre">check_interval</span></code> field of the
<code class="docutils literal notranslate"><span class="pre">PyInterpreterState</span></code> structure.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37388">bpo-37388</a>: In development mode and in debug build, <em>encoding</em> and <em>errors</em>
arguments are now checked on string encoding and decoding operations.
Examples: <a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a>, <a class="reference internal" href="../library/stdtypes.html#str.encode" title="str.encode"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.encode()</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytes.decode" title="bytes.decode"><code class="xref py py-meth docutils literal notranslate"><span class="pre">bytes.decode()</span></code></a>.</p>
<p>By default, for best performances, the <em>errors</em> argument is only checked
at the first encoding/decoding error, and the <em>encoding</em> argument is
sometimes ignored for empty strings.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37348">bpo-37348</a>: Optimized decoding short ASCII string with UTF-8 and ascii
codecs. <code class="docutils literal notranslate"><span class="pre">b"foo".decode()</span></code> is about 15% faster. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24214">bpo-24214</a>: Improved support of the surrogatepass error handler in the
UTF-8 and UTF-16 incremental decoders.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37330">bpo-37330</a>: <a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a>, <a class="reference internal" href="../library/io.html#io.open" title="io.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.open()</span></code></a>, <a class="reference internal" href="../library/codecs.html#codecs.open" title="codecs.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">codecs.open()</span></code></a> and
<a class="reference internal" href="../library/fileinput.html#fileinput.FileInput" title="fileinput.FileInput"><code class="xref py py-class docutils literal notranslate"><span class="pre">fileinput.FileInput</span></code></a> no longer accept <code class="docutils literal notranslate"><span class="pre">'U'</span></code> (“universal
newline”) in the file mode. This flag was deprecated since Python 3.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35224">bpo-35224</a>: Reverse evaluation order of key: value in dict comprehensions
as proposed in PEP 572. I.e. in <code class="docutils literal notranslate"><span class="pre">{k:</span> <span class="pre">v</span> <span class="pre">for</span> <span class="pre">...}</span></code>, <code class="docutils literal notranslate"><span class="pre">k</span></code> will be
evaluated before <code class="docutils literal notranslate"><span class="pre">v</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37316">bpo-37316</a>: Fix the <a class="reference internal" href="../c-api/sys.html#c.PySys_Audit" title="PySys_Audit"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySys_Audit()</span></code></a> call in <a class="reference internal" href="../library/mmap.html#mmap.mmap" title="mmap.mmap"><code class="xref py py-class docutils literal notranslate"><span class="pre">mmap.mmap</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37300">bpo-37300</a>: Remove an unnecessary Py_XINCREF in classobject.c.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37269">bpo-37269</a>: Fix a bug in the peephole optimizer that was not treating
correctly constant conditions with binary operators. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20443">bpo-20443</a>: Python now gets the absolute path of the script filename
specified on the command line (ex: “python3 script.py”): the __file__
attribute of the __main__ module and sys.path[0] become an absolute path,
rather than a relative path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37257">bpo-37257</a>: Python’s small object allocator (<code class="docutils literal notranslate"><span class="pre">obmalloc.c</span></code>) now allows (no
more than) one empty arena to remain available for immediate reuse,
without returning it to the OS. This prevents thrashing in simple loops
where an arena could be created and destroyed anew on each iteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37231">bpo-37231</a>: The dispatching of type slots to special methods (for example
calling <code class="docutils literal notranslate"><span class="pre">__mul__</span></code> when doing <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">*</span> <span class="pre">y</span></code>) has been made faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36974">bpo-36974</a>: Implemented separate vectorcall functions for every calling
convention of builtin functions and methods. This improves performance for
calls.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37213">bpo-37213</a>: Handle correctly negative line offsets in the peephole
optimizer. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37219">bpo-37219</a>: Remove erroneous optimization for empty set differences.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15913">bpo-15913</a>: Implement <a class="reference internal" href="../c-api/buffer.html#c.PyBuffer_SizeFromFormat" title="PyBuffer_SizeFromFormat"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBuffer_SizeFromFormat()</span></code></a> function
(previously documented but not implemented): call <a class="reference internal" href="../library/struct.html#struct.calcsize" title="struct.calcsize"><code class="xref py py-func docutils literal notranslate"><span class="pre">struct.calcsize()</span></code></a>.
Patch by Joannah Nanjekye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36922">bpo-36922</a>: Slot functions optimize any callable with
<code class="docutils literal notranslate"><span class="pre">Py_TPFLAGS_METHOD_DESCRIPTOR</span></code> instead of only instances of
<code class="docutils literal notranslate"><span class="pre">function</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36974">bpo-36974</a>: The slot <code class="docutils literal notranslate"><span class="pre">tp_vectorcall_offset</span></code> is inherited unconditionally
to support <code class="docutils literal notranslate"><span class="pre">super().__call__()</span></code> when the base class uses vectorcall.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37160">bpo-37160</a>: <a class="reference internal" href="../library/threading.html#threading.get_native_id" title="threading.get_native_id"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.get_native_id()</span></code></a> now also supports NetBSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37077">bpo-37077</a>: Add <a class="reference internal" href="../library/threading.html#threading.get_native_id" title="threading.get_native_id"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.get_native_id()</span></code></a> support for AIX. Patch by
M. Felt</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36781">bpo-36781</a>: <a class="reference internal" href="../library/functions.html#sum" title="sum"><code class="xref py py-func docutils literal notranslate"><span class="pre">sum()</span></code></a> has been optimized for boolean values.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34556">bpo-34556</a>: Add <code class="docutils literal notranslate"><span class="pre">--upgrade-deps</span></code> to venv module. Patch by Cooper Ry Lees</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20523">bpo-20523</a>: <code class="docutils literal notranslate"><span class="pre">pdb.Pdb</span></code> supports ~/.pdbrc in Windows 7. Patch by Tim Hopper
and Dan Lidral-Porter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35551">bpo-35551</a>: Updated encodings: - Removed the “tis260” encoding, which was
an alias for the nonexistent “tactis” codec. - Added “mac_centeuro” as an
alias for the mac_latin2 encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19072">bpo-19072</a>: The <a class="reference internal" href="../library/functions.html#classmethod" title="classmethod"><code class="xref py py-class docutils literal notranslate"><span class="pre">classmethod</span></code></a> decorator can now wrap other
descriptors such as property objects. Adapted from a patch written by
Graham Dumpleton.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27575">bpo-27575</a>: Improve speed of dictview intersection by directly using set
intersection logic. Patch by David Su.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30773">bpo-30773</a>: Prohibit parallel running of aclose() / asend() / athrow(). Fix
ag_running to reflect the actual running status of the AG.</p></li>
</ul>
</section>
<section id="id467">
<h3>Library<a class="headerlink" href="#id467" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36589">bpo-36589</a>: The <a class="reference internal" href="../library/curses.html#curses.update_lines_cols" title="curses.update_lines_cols"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.update_lines_cols()</span></code></a> function now returns
<code class="docutils literal notranslate"><span class="pre">None</span></code> instead of <code class="docutils literal notranslate"><span class="pre">1</span></code> on success.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38807">bpo-38807</a>: Update <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> messages for <a class="reference internal" href="../library/os.path.html#os.path.join" title="os.path.join"><code class="xref py py-meth docutils literal notranslate"><span class="pre">os.path.join()</span></code></a> to
include <a class="reference internal" href="../library/os.html#os.PathLike" title="os.PathLike"><code class="xref py py-class docutils literal notranslate"><span class="pre">os.PathLike</span></code></a> objects as acceptable input types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38724">bpo-38724</a>: Add a repr for <code class="docutils literal notranslate"><span class="pre">subprocess.Popen</span></code> objects. Patch by Andrey
Doroschenko.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38786">bpo-38786</a>: pydoc now recognizes and parses HTTPS URLs. Patch by python273.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38785">bpo-38785</a>: Prevent asyncio from crashing if parent <code class="docutils literal notranslate"><span class="pre">__init__</span></code> is not
called from a constructor of object derived from <code class="docutils literal notranslate"><span class="pre">asyncio.Future</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38723">bpo-38723</a>: <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> now uses <a class="reference internal" href="../library/io.html#io.open_code" title="io.open_code"><code class="xref py py-meth docutils literal notranslate"><span class="pre">io.open_code()</span></code></a> to trigger auditing
events.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27805">bpo-27805</a>: Allow opening pipes and other non-seekable files in append mode
with <a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38438">bpo-38438</a>: Simplify the <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a> usage message for <code class="docutils literal notranslate"><span class="pre">nargs="*"</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38761">bpo-38761</a>: WeakSet is now registered as a collections.abc.MutableSet.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38716">bpo-38716</a>: logging: change RotatingHandler namer and rotator to
class-level attributes. This stops __init__ from setting them to None in
the case where a subclass defines them with eponymous methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38713">bpo-38713</a>: Add <a class="reference internal" href="../library/os.html#os.P_PIDFD" title="os.P_PIDFD"><code class="xref py py-const docutils literal notranslate"><span class="pre">os.P_PIDFD</span></code></a> constant, which may be passed to
<a class="reference internal" href="../library/os.html#os.waitid" title="os.waitid"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.waitid()</span></code></a> to wait on a Linux process file descriptor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38692">bpo-38692</a>: Add <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.PidfdChildWatcher</span></code>, a Linux-specific child
watcher implementation that polls process file descriptors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38692">bpo-38692</a>: Expose the Linux <code class="docutils literal notranslate"><span class="pre">pidfd_open</span></code> syscall as
<a class="reference internal" href="../library/os.html#os.pidfd_open" title="os.pidfd_open"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.pidfd_open()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38602">bpo-38602</a>: Added constants <code class="xref py py-const docutils literal notranslate"><span class="pre">F_OFD_GETLK</span></code>,
<code class="xref py py-const docutils literal notranslate"><span class="pre">F_OFD_SETLK</span></code> and <code class="xref py py-const docutils literal notranslate"><span class="pre">F_OFD_SETLKW</span></code> to the
<a class="reference internal" href="../library/fcntl.html#module-fcntl" title="fcntl: The fcntl() and ioctl() system calls. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">fcntl</span></code></a> module. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38334">bpo-38334</a>: Fixed seeking backward on an encrypted
<code class="xref py py-class docutils literal notranslate"><span class="pre">zipfile.ZipExtFile</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38312">bpo-38312</a>: Add <a class="reference internal" href="../library/curses.html#curses.get_escdelay" title="curses.get_escdelay"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.get_escdelay()</span></code></a>, <a class="reference internal" href="../library/curses.html#curses.set_escdelay" title="curses.set_escdelay"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.set_escdelay()</span></code></a>,
<a class="reference internal" href="../library/curses.html#curses.get_tabsize" title="curses.get_tabsize"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.get_tabsize()</span></code></a>, and <a class="reference internal" href="../library/curses.html#curses.set_tabsize" title="curses.set_tabsize"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.set_tabsize()</span></code></a> functions - by
Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38586">bpo-38586</a>: Now <a class="reference internal" href="../library/logging.config.html#logging.config.fileConfig" title="logging.config.fileConfig"><code class="xref py py-func docutils literal notranslate"><span class="pre">fileConfig()</span></code></a> correctly sets the .name
of handlers loaded.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38565">bpo-38565</a>: Add new cache_parameters() method for functools.lru_cache() to
better support pickling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34679">bpo-34679</a>: asynci.ProactorEventLoop.close() now only calls
signal.set_wakeup_fd() in the main thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31202">bpo-31202</a>: The case the result of <code class="xref py py-func docutils literal notranslate"><span class="pre">pathlib.WindowsPath.glob()</span></code> matches
now the case of the pattern for literal parts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36321">bpo-36321</a>: Remove misspelled attribute. The 3.8 changelog noted that this
would be removed in 3.9.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38521">bpo-38521</a>: Fixed erroneous equality comparison in statistics.NormalDist().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38493">bpo-38493</a>: Added <a class="reference internal" href="../library/os.html#os.CLD_KILLED" title="os.CLD_KILLED"><code class="xref py py-const docutils literal notranslate"><span class="pre">CLD_KILLED</span></code></a> and <a class="reference internal" href="../library/os.html#os.CLD_STOPPED" title="os.CLD_STOPPED"><code class="xref py py-const docutils literal notranslate"><span class="pre">CLD_STOPPED</span></code></a> for
<code class="xref py py-attr docutils literal notranslate"><span class="pre">si_code</span></code>. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38478">bpo-38478</a>: Fixed a bug in <code class="xref py py-meth docutils literal notranslate"><span class="pre">inspect.signature.bind()</span></code> that was causing
it to fail when handling a keyword argument with same name as
positional-only parameter. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33604">bpo-33604</a>: Fixed <code class="docutils literal notranslate"><span class="pre">hmac.new</span></code> and <code class="docutils literal notranslate"><span class="pre">hmac.HMAC</span></code> to raise TypeError instead
of ValueError when the digestmod parameter, now required in 3.8, is
omitted. Also clarified the hmac module documentation and docstrings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38378">bpo-38378</a>: Parameters <em>out</em> and <em>in</em> of <a class="reference internal" href="../library/os.html#os.sendfile" title="os.sendfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.sendfile()</span></code></a> was renamed to
<em>out_fd</em> and <em>in_fd</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38417">bpo-38417</a>: Added support for setting the umask in the child process to the
subprocess module on POSIX systems.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38449">bpo-38449</a>: Revert PR 15522, which introduces a regression in
<a class="reference internal" href="../library/mimetypes.html#mimetypes.guess_type" title="mimetypes.guess_type"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mimetypes.guess_type()</span></code></a> due to improper handling of filenames as
urls.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38431">bpo-38431</a>: Fix <code class="docutils literal notranslate"><span class="pre">__repr__</span></code> method for <a class="reference internal" href="../library/dataclasses.html#dataclasses.InitVar" title="dataclasses.InitVar"><code class="xref py py-class docutils literal notranslate"><span class="pre">dataclasses.InitVar</span></code></a> to
support typing objects, patch by Samuel Colvin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38109">bpo-38109</a>: Add missing <a class="reference internal" href="../library/stat.html#stat.S_IFDOOR" title="stat.S_IFDOOR"><code class="xref py py-const docutils literal notranslate"><span class="pre">stat.S_IFDOOR</span></code></a>, <a class="reference internal" href="../library/stat.html#stat.S_IFPORT" title="stat.S_IFPORT"><code class="xref py py-const docutils literal notranslate"><span class="pre">stat.S_IFPORT</span></code></a>,
<a class="reference internal" href="../library/stat.html#stat.S_IFWHT" title="stat.S_IFWHT"><code class="xref py py-const docutils literal notranslate"><span class="pre">stat.S_IFWHT</span></code></a>, <a class="reference internal" href="../library/stat.html#stat.S_ISDOOR" title="stat.S_ISDOOR"><code class="xref py py-func docutils literal notranslate"><span class="pre">stat.S_ISDOOR()</span></code></a>, <a class="reference internal" href="../library/stat.html#stat.S_ISPORT" title="stat.S_ISPORT"><code class="xref py py-func docutils literal notranslate"><span class="pre">stat.S_ISPORT()</span></code></a>, and
<a class="reference internal" href="../library/stat.html#stat.S_ISWHT" title="stat.S_ISWHT"><code class="xref py py-func docutils literal notranslate"><span class="pre">stat.S_ISWHT()</span></code></a> values to the Python implementation of <a class="reference internal" href="../library/stat.html#module-stat" title="stat: Utilities for interpreting the results of os.stat(), os.lstat() and os.fstat()."><code class="xref py py-mod docutils literal notranslate"><span class="pre">stat</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38422">bpo-38422</a>: Clarify docstrings of pathlib suffix(es)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38405">bpo-38405</a>: Nested subclasses of <a class="reference internal" href="../library/typing.html#typing.NamedTuple" title="typing.NamedTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.NamedTuple</span></code></a> are now
pickleable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38332">bpo-38332</a>: Prevent <a class="reference internal" href="../library/exceptions.html#KeyError" title="KeyError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyError</span></code></a> thrown by
<code class="xref py py-func docutils literal notranslate"><span class="pre">_encoded_words.decode()</span></code> when given an encoded-word with invalid
content-type encoding from propagating all the way to
<code class="xref py py-func docutils literal notranslate"><span class="pre">email.message.get()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38371">bpo-38371</a>: Deprecated the <code class="docutils literal notranslate"><span class="pre">split()</span></code> method in
<code class="xref py py-class docutils literal notranslate"><span class="pre">_tkinter.TkappType</span></code> in favour of the <code class="docutils literal notranslate"><span class="pre">splitlist()</span></code> method which
has more consistent and predictable behavior.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38341">bpo-38341</a>: Add <a class="reference internal" href="../library/smtplib.html#smtplib.SMTPNotSupportedError" title="smtplib.SMTPNotSupportedError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">smtplib.SMTPNotSupportedError</span></code></a> to the <a class="reference internal" href="../library/smtplib.html#module-smtplib" title="smtplib: SMTP protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">smtplib</span></code></a>
exported names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38319">bpo-38319</a>: sendfile() used in socket and shutil modules was raising
OverflowError for files >= 2GiB on 32-bit architectures. (patch by
Giampaolo Rodola)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38242">bpo-38242</a>: Revert the new asyncio Streams API</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13153">bpo-13153</a>: OS native encoding is now used for converting between Python
strings and Tcl objects. This allows to display, copy and paste to
clipboard emoji and other non-BMP characters. Converting strings from Tcl
to Python and back now never fails (except MemoryError).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38019">bpo-38019</a>: Correctly handle pause/resume reading of closed asyncio unix
pipe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38163">bpo-38163</a>: Child mocks will now detect their type as either synchronous or
asynchronous, asynchronous child mocks will be AsyncMocks and synchronous
child mocks will be either MagicMock or Mock (depending on their parent
type).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38161">bpo-38161</a>: Removes _AwaitEvent from AsyncMock.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38216">bpo-38216</a>: Allow the rare code that wants to send invalid http requests
from the <code class="docutils literal notranslate"><span class="pre">http.client</span></code> library a way to do so. The fixes for <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30458">bpo-30458</a>
led to breakage for some projects that were relying on this ability to
test their own behavior in the face of bad requests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28286">bpo-28286</a>: Deprecate opening <a class="reference internal" href="../library/gzip.html#gzip.GzipFile" title="gzip.GzipFile"><code class="xref py py-class docutils literal notranslate"><span class="pre">GzipFile</span></code></a> for writing
implicitly. Always specify the <em>mode</em> argument for writing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38108">bpo-38108</a>: Any synchronous magic methods on an AsyncMock now return a
MagicMock. Any asynchronous magic methods on a MagicMock now return an
AsyncMock.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38265">bpo-38265</a>: Update the <em>length</em> parameter of <a class="reference internal" href="../library/os.html#os.pread" title="os.pread"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.pread()</span></code></a> to accept
<a class="reference internal" href="../c-api/intro.html#c.Py_ssize_t" title="Py_ssize_t"><code class="xref c c-type docutils literal notranslate"><span class="pre">Py_ssize_t</span></code></a> instead of <span class="c-expr sig sig-inline c"><span class="kt">int</span></span>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38112">bpo-38112</a>: <a class="reference internal" href="../library/compileall.html#module-compileall" title="compileall: Tools for byte-compiling all Python source files in a directory tree."><code class="xref py py-mod docutils literal notranslate"><span class="pre">compileall</span></code></a> has a higher default recursion limit and new
command-line arguments for path manipulation, symlinks handling, and
multiple optimization levels.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38248">bpo-38248</a>: asyncio: Fix inconsistent immediate Task cancellation</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38237">bpo-38237</a>: The arguments for the builtin pow function are more
descriptive. They can now also be passed in as keywords.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34002">bpo-34002</a>: Improve efficiency in parts of email package by changing
while-pop to a for loop, using isdisjoint instead of set intersections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38191">bpo-38191</a>: Constructors of <a class="reference internal" href="../library/typing.html#typing.NamedTuple" title="typing.NamedTuple"><code class="xref py py-class docutils literal notranslate"><span class="pre">NamedTuple</span></code></a> and
<a class="reference internal" href="../library/typing.html#typing.TypedDict" title="typing.TypedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">TypedDict</span></code></a> types now accept arbitrary keyword argument
names, including “cls”, “self”, “typename”, “_typename”, “fields” and
“_fields”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38155">bpo-38155</a>: Add <code class="docutils literal notranslate"><span class="pre">__all__</span></code> to <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a>. Patch by Tahia Khan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38185">bpo-38185</a>: Fixed case-insensitive string comparison in
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Row" title="sqlite3.Row"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Row</span></code></a> indexing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38136">bpo-38136</a>: Changes AsyncMock call count and await count to be two
different counters. Now await count only counts when a coroutine has been
awaited, not when it has been called, and vice-versa. Update the
documentation around this.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37828">bpo-37828</a>: Fix default mock name in
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.Mock.assert_called" title="unittest.mock.Mock.assert_called"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.mock.Mock.assert_called()</span></code></a> exceptions. Patch by Abraham
Toriz Cruz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38175">bpo-38175</a>: Fix a memory leak in comparison of <a class="reference internal" href="../library/sqlite3.html#sqlite3.Row" title="sqlite3.Row"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Row</span></code></a>
objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33936">bpo-33936</a>: _hashlib no longer calls obsolete OpenSSL initialization
function with OpenSSL 1.1.0+.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34706">bpo-34706</a>: Preserve subclassing in inspect.Signature.from_callable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38153">bpo-38153</a>: Names of hashing algorithms from OpenSSL are now normalized to
follow Python’s naming conventions. For example OpenSSL uses sha3-512
instead of sha3_512 or blake2b512 instead of blake2b.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38115">bpo-38115</a>: Fix a bug in dis.findlinestarts() where it would return invalid
bytecode offsets. Document that a code object’s co_lnotab can contain
invalid bytecode offsets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38148">bpo-38148</a>: Add slots to <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> transport classes, which can reduce
memory usage.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38142">bpo-38142</a>: The _hashlib OpenSSL wrapper extension module is now PEP-384
compliant.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9216">bpo-9216</a>: hashlib constructors now support usedforsecurity flag to signal
that a hashing algorithm is not used in a security context.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36991">bpo-36991</a>: Fixes a potential incorrect AttributeError exception escaping
ZipFile.extract() in some unsupported input error situations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38134">bpo-38134</a>: Remove obsolete copy of PBKDF2_HMAC_fast. All supported OpenSSL
versions contain a fast implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38132">bpo-38132</a>: The OpenSSL hashlib wrapper uses a simpler implementation.
Several Macros and pointless caches are gone. The hash name now comes from
OpenSSL’s EVP. The algorithm name stays the same, except it is now always
lower case.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38008">bpo-38008</a>: Fix parent class check in protocols to correctly identify the
module that provides a builtin protocol, instead of assuming they all come
from the <a class="reference internal" href="../library/collections.abc.html#module-collections.abc" title="collections.abc: Abstract base classes for containers"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a> module</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34037">bpo-34037</a>: For <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>, add a new coroutine
<code class="xref py py-meth docutils literal notranslate"><span class="pre">loop.shutdown_default_executor()</span></code>. The new coroutine provides an API
to schedule an executor shutdown that waits on the threadpool to finish
closing. Also, <a class="reference internal" href="../library/asyncio-runner.html#asyncio.run" title="asyncio.run"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.run()</span></code></a> has been updated to utilize the new
coroutine. Patch by Kyle Stanley.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37405">bpo-37405</a>: Fixed regression bug for socket.getsockname() for non-CAN_ISOTP
AF_CAN address family sockets by returning a 1-tuple instead of string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38121">bpo-38121</a>: Update parameter names on functions in importlib.metadata
matching the changes in the 0.22 release of importlib_metadata.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38110">bpo-38110</a>: The os.closewalk() implementation now uses the libc fdwalk()
API on platforms where it is available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38093">bpo-38093</a>: Fixes AsyncMock so it doesn’t crash when used with
AsyncContextManagers or AsyncIterators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37488">bpo-37488</a>: Add warning to <code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.utctimetuple()</span></code>,
<code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.utcnow()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.utcfromtimestamp()</span></code> .</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35640">bpo-35640</a>: Allow passing a <a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like object</span></a> as <code class="docutils literal notranslate"><span class="pre">directory</span></code>
argument to the <a class="reference internal" href="../library/http.server.html#http.server.SimpleHTTPRequestHandler" title="http.server.SimpleHTTPRequestHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.server.SimpleHTTPRequestHandler</span></code></a> class. Patch
by Géry Ogam.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38086">bpo-38086</a>: Update importlib.metadata with changes from <a class="reference external" href="https://gitlab.com/python-devs/importlib_metadata/blob/0.21/importlib_metadata/docs/changelog.rst">importlib_metadata
0.21</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37251">bpo-37251</a>: Remove <code class="docutils literal notranslate"><span class="pre">__code__</span></code> check in AsyncMock that incorrectly
evaluated function specs as async objects but failed to evaluate classes
with <code class="docutils literal notranslate"><span class="pre">__await__</span></code> but no <code class="docutils literal notranslate"><span class="pre">__code__</span></code> attribute defined as async objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38037">bpo-38037</a>: Fix reference counters in the <a class="reference internal" href="../library/signal.html#module-signal" title="signal: Set handlers for asynchronous events."><code class="xref py py-mod docutils literal notranslate"><span class="pre">signal</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38066">bpo-38066</a>: Hide internal asyncio.Stream methods: feed_eof(), feed_data(),
set_exception() and set_transport().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38059">bpo-38059</a>: inspect.py now uses sys.exit() instead of exit()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38049">bpo-38049</a>: Added command-line interface for the <a class="reference internal" href="../library/ast.html#module-ast" title="ast: Abstract Syntax Tree classes and manipulation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ast</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37953">bpo-37953</a>: In <a class="reference internal" href="../library/typing.html#module-typing" title="typing: Support for type hints (see :pep:`484`)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">typing</span></code></a>, improved the <code class="docutils literal notranslate"><span class="pre">__hash__</span></code> and <code class="docutils literal notranslate"><span class="pre">__eq__</span></code>
methods for <code class="xref py py-class docutils literal notranslate"><span class="pre">ForwardReferences</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38026">bpo-38026</a>: Fixed <a class="reference internal" href="../library/inspect.html#inspect.getattr_static" title="inspect.getattr_static"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getattr_static()</span></code></a> used <code class="docutils literal notranslate"><span class="pre">isinstance</span></code> while
it should avoid dynamic lookup.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35923">bpo-35923</a>: Update <a class="reference internal" href="../library/importlib.html#importlib.machinery.BuiltinImporter" title="importlib.machinery.BuiltinImporter"><code class="xref py py-class docutils literal notranslate"><span class="pre">importlib.machinery.BuiltinImporter</span></code></a> to use
<code class="docutils literal notranslate"><span class="pre">loader._ORIGIN</span></code> instead of a hardcoded value. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38010">bpo-38010</a>: In <code class="docutils literal notranslate"><span class="pre">importlib.metadata</span></code> sync with <code class="docutils literal notranslate"><span class="pre">importlib_metadata</span></code>
0.20, clarifying behavior of <code class="docutils literal notranslate"><span class="pre">files()</span></code> and fixing issue where only one
requirement was returned for <code class="docutils literal notranslate"><span class="pre">requires()</span></code> on <code class="docutils literal notranslate"><span class="pre">dist-info</span></code> packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38006">bpo-38006</a>: weakref.WeakValueDictionary defines a local remove() function
used as callback for weak references. This function was created with a
closure. Modify the implementation to avoid the closure.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37995">bpo-37995</a>: Added the <em>indent</em> option to <a class="reference internal" href="../library/ast.html#ast.dump" title="ast.dump"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.dump()</span></code></a> which allows it
to produce a multiline indented output.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34410">bpo-34410</a>: Fixed a crash in the <code class="xref py py-func docutils literal notranslate"><span class="pre">tee()</span></code> iterator when re-enter it.
RuntimeError is now raised in this case.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37140">bpo-37140</a>: Fix a ctypes regression of Python 3.8. When a ctypes.Structure
is passed by copy to a function, ctypes internals created a temporary
object which had the side effect of calling the structure finalizer
(__del__) twice. The Python semantics requires a finalizer to be called
exactly once. Fix ctypes internals to no longer call the finalizer twice.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37587">bpo-37587</a>: <code class="docutils literal notranslate"><span class="pre">_json.scanstring</span></code> is now up to 3x faster when there are many
backslash escaped characters in the JSON string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37834">bpo-37834</a>: Prevent shutil.rmtree exception when built on non-Windows
system without fd system call support, like older versions of macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10978">bpo-10978</a>: Semaphores and BoundedSemaphores can now release more than one
waiting thread at a time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37972">bpo-37972</a>: Subscripts to the <code class="docutils literal notranslate"><span class="pre">unittest.mock.call</span></code> objects now receive
the same chaining mechanism as any other custom attributes, so that the
following usage no longer raises a <code class="docutils literal notranslate"><span class="pre">TypeError</span></code>:</p>
<p><code class="docutils literal notranslate"><span class="pre">call().foo().__getitem__('bar')</span></code></p>
<p>Patch by blhsing</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37965">bpo-37965</a>: Fix C compiler warning caused by
distutils.ccompiler.CCompiler.has_function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37964">bpo-37964</a>: Add <code class="docutils literal notranslate"><span class="pre">F_GETPATH</span></code> command to <a class="reference internal" href="../library/fcntl.html#module-fcntl" title="fcntl: The fcntl() and ioctl() system calls. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">fcntl</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37960">bpo-37960</a>: <code class="docutils literal notranslate"><span class="pre">repr()</span></code> of buffered and text streams now silences only
expected exceptions when get the value of “name” and “mode” attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37961">bpo-37961</a>: Add a <code class="docutils literal notranslate"><span class="pre">total_nframe</span></code> field to the traces collected by the
tracemalloc module. This field indicates the original number of frames
before it was truncated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37951">bpo-37951</a>: Most features of the subprocess module now work again in
subinterpreters. Only <em>preexec_fn</em> is restricted in subinterpreters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36205">bpo-36205</a>: Fix the rusage implementation of time.process_time() to
correctly report the sum of the system and user CPU time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37950">bpo-37950</a>: Fix <a class="reference internal" href="../library/ast.html#ast.dump" title="ast.dump"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.dump()</span></code></a> when call with incompletely initialized
node.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34679">bpo-34679</a>: Restores instantiation of Windows IOCP event loops from the
non-main thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36917">bpo-36917</a>: Add default implementation of the
<a class="reference internal" href="../library/ast.html#ast.NodeVisitor.visit_Constant" title="ast.NodeVisitor.visit_Constant"><code class="xref py py-meth docutils literal notranslate"><span class="pre">ast.NodeVisitor.visit_Constant()</span></code></a> method which emits a deprecation
warning and calls corresponding methods <code class="docutils literal notranslate"><span class="pre">visit_Num()</span></code>, <code class="docutils literal notranslate"><span class="pre">visit_Str()</span></code>,
etc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37798">bpo-37798</a>: Update test_statistics.py to verify that the statistics module
works well for both C and Python implementations. Patch by Donghee Na</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26589">bpo-26589</a>: Added a new status code to the http module: 451
UNAVAILABLE_FOR_LEGAL_REASONS</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37915">bpo-37915</a>: Fix a segmentation fault that appeared when comparing instances
of <code class="docutils literal notranslate"><span class="pre">datetime.timezone</span></code> and <code class="docutils literal notranslate"><span class="pre">datetime.tzinfo</span></code> objects. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32554">bpo-32554</a>: Deprecate having random.seed() call hash on arbitrary types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9938">bpo-9938</a>: Add optional keyword argument <code class="docutils literal notranslate"><span class="pre">exit_on_error</span></code> for
<code class="xref py py-class docutils literal notranslate"><span class="pre">ArgumentParser</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37851">bpo-37851</a>: The <a class="reference internal" href="../library/faulthandler.html#module-faulthandler" title="faulthandler: Dump the Python traceback."><code class="xref py py-mod docutils literal notranslate"><span class="pre">faulthandler</span></code></a> module no longer allocates its
alternative stack at Python startup. Now the stack is only allocated at
the first faulthandler usage.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32793">bpo-32793</a>: Fix a duplicated debug message when
<a class="reference internal" href="../library/smtplib.html#smtplib.SMTP.connect" title="smtplib.SMTP.connect"><code class="xref py py-meth docutils literal notranslate"><span class="pre">smtplib.SMTP.connect()</span></code></a> is called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37885">bpo-37885</a>: venv: Don’t generate unset variable warning on deactivate.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37868">bpo-37868</a>: Fix dataclasses.is_dataclass when given an instance that never
raises AttributeError in __getattr__. That is, an object that returns
something for __dataclass_fields__ even if it’s not a dataclass.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37811">bpo-37811</a>: Fix <code class="docutils literal notranslate"><span class="pre">socket</span></code> module’s <code class="docutils literal notranslate"><span class="pre">socket.connect(address)</span></code> function
being unable to establish connection in case of interrupted system call.
The problem was observed on all OSes which <code class="docutils literal notranslate"><span class="pre">poll(2)</span></code> system call can
take only non-negative integers and -1 as a timeout value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37863">bpo-37863</a>: Optimizations for Fraction.__hash__ suggested by Tim Peters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21131">bpo-21131</a>: Fix <code class="docutils literal notranslate"><span class="pre">faulthandler.register(chain=True)</span></code> stack. faulthandler
now allocates a dedicated stack of <code class="docutils literal notranslate"><span class="pre">SIGSTKSZ*2</span></code> bytes, instead of just
<code class="docutils literal notranslate"><span class="pre">SIGSTKSZ</span></code> bytes. Calling the previous signal handler in faulthandler
signal handler uses more than <code class="docutils literal notranslate"><span class="pre">SIGSTKSZ</span></code> bytes of stack memory on some
platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37798">bpo-37798</a>: Add C fastpath for statistics.NormalDist.inv_cdf() Patch by
Donghee Na</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37804">bpo-37804</a>: Remove the deprecated method <code class="docutils literal notranslate"><span class="pre">threading.Thread.isAlive()</span></code>.
Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37819">bpo-37819</a>: Add Fraction.as_integer_ratio() to match the corresponding
methods in bool, int, float, and decimal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14465">bpo-14465</a>: Add an xml.etree.ElementTree.indent() function for
pretty-printing XML trees. Contributed by Stefan Behnel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37810">bpo-37810</a>: Fix <a class="reference internal" href="../library/difflib.html#module-difflib" title="difflib: Helpers for computing differences between objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">difflib</span></code></a> <code class="docutils literal notranslate"><span class="pre">?</span></code> hint in diff output when dealing with
tabs. Patch by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37772">bpo-37772</a>: In <code class="docutils literal notranslate"><span class="pre">zipfile.Path</span></code>, when adding implicit dirs, ensure that
ancestral directories are added and that duplicates are excluded.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18578">bpo-18578</a>: Renamed and documented <code class="docutils literal notranslate"><span class="pre">test.bytecode_helper</span></code> as
<code class="docutils literal notranslate"><span class="pre">test.support.bytecode_helper</span></code>. Patch by Joannah Nanjekye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37785">bpo-37785</a>: Fix xgettext warnings in <a class="reference internal" href="../library/argparse.html#module-argparse" title="argparse: Command-line option and argument parsing library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">argparse</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34488">bpo-34488</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">writelines()</span></code> method of <a class="reference internal" href="../library/io.html#io.BytesIO" title="io.BytesIO"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.BytesIO</span></code></a> is now
slightly faster when many small lines are passed. Patch by Sergey
Fedoseev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37449">bpo-37449</a>: <code class="docutils literal notranslate"><span class="pre">ensurepip</span></code> now uses <code class="docutils literal notranslate"><span class="pre">importlib.resources.read_binary()</span></code> to
read data instead of <code class="docutils literal notranslate"><span class="pre">pkgutil.get_data()</span></code>. Patch by Joannah Nanjekye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28292">bpo-28292</a>: Mark calendar.py helper functions as being private. The
follows PEP 8 guidance to maintain the style conventions in the module and
it addresses a known case of user confusion.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18049">bpo-18049</a>: Add definition of THREAD_STACK_SIZE for AIX in
Python/thread_pthread.h The default thread stacksize caused crashes with
the default recursion limit Patch by M Felt</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37742">bpo-37742</a>: The logging.getLogger() API now returns the root logger when
passed the name ‘root’, whereas previously it returned a non-root logger
named ‘root’. This could affect cases where user code explicitly wants a
non-root logger named ‘root’, or instantiates a logger using
logging.getLogger(__name__) in some top-level module called ‘root.py’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37738">bpo-37738</a>: Fix the implementation of curses <code class="docutils literal notranslate"><span class="pre">addch(str,</span> <span class="pre">color_pair)</span></code>:
pass the color pair to <code class="docutils literal notranslate"><span class="pre">setcchar()</span></code>, instead of always passing 0 as the
color pair.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37723">bpo-37723</a>: Fix performance regression on regular expression parsing with
huge character sets. Patch by Yann Vaginay.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35943">bpo-35943</a>: The function <a class="reference internal" href="../c-api/import.html#c.PyImport_GetModule" title="PyImport_GetModule"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyImport_GetModule()</span></code></a> now ensures any
module it returns is fully initialized. Patch by Joannah Nanjekye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32178">bpo-32178</a>: Fix IndexError in <a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a> package when trying to parse
invalid address fields starting with <code class="docutils literal notranslate"><span class="pre">:</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37268">bpo-37268</a>: The <code class="xref py py-mod docutils literal notranslate"><span class="pre">parser</span></code> module is deprecated and will be removed in
future versions of Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11953">bpo-11953</a>: Completing WSA* error codes in <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37685">bpo-37685</a>: Fixed comparisons of <a class="reference internal" href="../library/datetime.html#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.timedelta</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.timezone" title="datetime.timezone"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.timezone</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37697">bpo-37697</a>: Synchronize <code class="docutils literal notranslate"><span class="pre">importlib.metadata</span></code> with <a class="reference external" href="https://gitlab.com/python-devs/importlib_metadata/-/milestones/20">importlib_metadata
0.19</a>,
improving handling of EGG-INFO files and fixing a crash when entry point
names contained colons.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37695">bpo-37695</a>: Correct <a class="reference internal" href="../library/curses.html#curses.unget_wch" title="curses.unget_wch"><code class="xref py py-func docutils literal notranslate"><span class="pre">curses.unget_wch()</span></code></a> error message. Patch by
Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37689">bpo-37689</a>: Add <code class="xref py py-meth docutils literal notranslate"><span class="pre">is_relative_to()</span></code> in <code class="xref py py-class docutils literal notranslate"><span class="pre">PurePath</span></code> to determine
whether or not one path is relative to another.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29553">bpo-29553</a>: Fixed <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser.format_usage" title="argparse.ArgumentParser.format_usage"><code class="xref py py-meth docutils literal notranslate"><span class="pre">argparse.ArgumentParser.format_usage()</span></code></a> for mutually
exclusive groups. Patch by Andrew Nester.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37691">bpo-37691</a>: Let math.dist() accept coordinates as sequences (or iterables)
rather than just tuples.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37685">bpo-37685</a>: Fixed <code class="docutils literal notranslate"><span class="pre">__eq__</span></code>, <code class="docutils literal notranslate"><span class="pre">__lt__</span></code> etc implementations in some
classes. They now return <a class="reference internal" href="../library/constants.html#NotImplemented" title="NotImplemented"><code class="xref py py-data docutils literal notranslate"><span class="pre">NotImplemented</span></code></a> for unsupported type of
the other operand. This allows the other operand to play role (for example
the equality comparison with <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.ANY" title="unittest.mock.ANY"><code class="xref py py-data docutils literal notranslate"><span class="pre">ANY</span></code></a> will return
<code class="docutils literal notranslate"><span class="pre">True</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37354">bpo-37354</a>: Make Activate.ps1 Powershell script static to allow for signing
it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37664">bpo-37664</a>: Update wheels bundled with ensurepip (pip 19.2.3 and setuptools
41.2.0)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37663">bpo-37663</a>: Bring consistency to venv shell activation scripts by always
using __VENV_PROMPT__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37642">bpo-37642</a>: Allowed the pure Python implementation of
<a class="reference internal" href="../library/datetime.html#datetime.timezone" title="datetime.timezone"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.timezone</span></code></a> to represent sub-minute offsets close to
minimum and maximum boundaries, specifically in the ranges (23:59, 24:00)
and (-23:59, 24:00). Patch by Ngalim Siregar</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36161">bpo-36161</a>: In <a class="reference internal" href="../library/posix.html#module-posix" title="posix: The most common POSIX system calls (normally used via module os). (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">posix</span></code></a>, use <code class="docutils literal notranslate"><span class="pre">ttyname_r</span></code> instead of <code class="docutils literal notranslate"><span class="pre">ttyname</span></code> for
thread safety.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36324">bpo-36324</a>: Make internal attributes for statistics.NormalDist() private.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37555">bpo-37555</a>: Fix <code class="docutils literal notranslate"><span class="pre">NonCallableMock._call_matcher</span></code> returning tuple instead
of <code class="docutils literal notranslate"><span class="pre">_Call</span></code> object when <code class="docutils literal notranslate"><span class="pre">self._spec_signature</span></code> exists. Patch by
Elizabeth Uselton</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29446">bpo-29446</a>: Make <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">tkinter</span> <span class="pre">import</span> <span class="pre">*</span></code> import only the expected
objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16970">bpo-16970</a>: Adding a value error when an invalid value in passed to nargs
Patch by Robert Leenders</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34443">bpo-34443</a>: Exceptions from <a class="reference internal" href="../library/enum.html#module-enum" title="enum: Implementation of an enumeration class."><code class="xref py py-mod docutils literal notranslate"><span class="pre">enum</span></code></a> now use the <code class="docutils literal notranslate"><span class="pre">__qualname</span></code> of the
enum class in the exception message instead of the <code class="docutils literal notranslate"><span class="pre">__name__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37491">bpo-37491</a>: Fix <code class="docutils literal notranslate"><span class="pre">IndexError</span></code> when parsing email headers with unexpectedly
ending bare-quoted string value. Patch by Abhilash Raj.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37587">bpo-37587</a>: Make json.loads faster for long strings. (Patch by Marco
Paolini)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18378">bpo-18378</a>: Recognize “UTF-8” as a valid value for LC_CTYPE in
locale._parse_localename.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37579">bpo-37579</a>: Return <a class="reference internal" href="../library/constants.html#NotImplemented" title="NotImplemented"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NotImplemented</span></code></a> in Python implementation of
<code class="docutils literal notranslate"><span class="pre">__eq__</span></code> for <a class="reference internal" href="../library/datetime.html#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> and <a class="reference internal" href="../library/datetime.html#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code></a>
when the other object being compared is not of the same type to match C
implementation. Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21478">bpo-21478</a>: Record calls to parent when autospecced object is attached to a
mock using <code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.attach_mock()</span></code>. Patch by Karthikeyan
Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37531">bpo-37531</a>: “python3 -m test -jN –timeout=TIMEOUT” now kills a worker
process if it runs longer than <em>TIMEOUT</em> seconds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37482">bpo-37482</a>: Fix serialization of display name in originator or destination
address fields with both encoded words and special chars.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36993">bpo-36993</a>: Improve error reporting for corrupt zip files with bad zip64
extra data. Patch by Daniel Hillier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37502">bpo-37502</a>: pickle.loads() no longer raises TypeError when the buffers
argument is set to None</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37520">bpo-37520</a>: Correct behavior for zipfile.Path.parent when the path object
identifies a subdirectory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18374">bpo-18374</a>: Fix the <code class="docutils literal notranslate"><span class="pre">.col_offset</span></code> attribute of nested <a class="reference internal" href="../library/ast.html#ast.BinOp" title="ast.BinOp"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.BinOp</span></code></a>
instances which had a too large value in some situations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37424">bpo-37424</a>: Fixes a possible hang when using a timeout on
<code class="docutils literal notranslate"><span class="pre">subprocess.run()</span></code> while capturing output. If the child process spawned
its own children or otherwise connected its stdout or stderr handles with
another process, we could hang after the timeout was reached and our child
was killed when attempting to read final output from the pipes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37421">bpo-37421</a>: Fix <code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocessing.util.get_temp_dir()</span></code> finalizer: clear
also the ‘tempdir’ configuration of the current process, so next call to
<code class="docutils literal notranslate"><span class="pre">get_temp_dir()</span></code> will create a new temporary directory, rather than
reusing the removed temporary directory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37481">bpo-37481</a>: The distutils <code class="docutils literal notranslate"><span class="pre">bdist_wininst</span></code> command is deprecated in Python
3.8, use <code class="docutils literal notranslate"><span class="pre">bdist_wheel</span></code> (wheel packages) instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37479">bpo-37479</a>: When <code class="docutils literal notranslate"><span class="pre">Enum.__str__</span></code> is overridden in a derived class, the
override will be used by <code class="docutils literal notranslate"><span class="pre">Enum.__format__</span></code> regardless of whether mixin
classes are present.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37440">bpo-37440</a>: http.client now enables TLS 1.3 post-handshake authentication
for default context or if a cert_file is passed to HTTPSConnection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37437">bpo-37437</a>: Update vendorized expat version to 2.2.7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37428">bpo-37428</a>: SSLContext.post_handshake_auth = True no longer sets
SSL_VERIFY_POST_HANDSHAKE verify flag for client connections. Although the
option is documented as ignored for clients, OpenSSL implicitly enables
cert chain validation when the flag is set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37420">bpo-37420</a>: <a class="reference internal" href="../library/os.html#os.sched_setaffinity" title="os.sched_setaffinity"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.sched_setaffinity()</span></code></a> now correctly handles errors that
arise during iteration over its <code class="docutils literal notranslate"><span class="pre">mask</span></code> argument. Patch by Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37412">bpo-37412</a>: The <a class="reference internal" href="../library/os.html#os.getcwdb" title="os.getcwdb"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.getcwdb()</span></code></a> function now uses the UTF-8 encoding on
Windows, rather than the ANSI code page: see <span class="target" id="index-342"></span><a class="pep reference external" href="https://peps.python.org/pep-0529/"><strong>PEP 529</strong></a> for the rationale.
The function is no longer deprecated on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37406">bpo-37406</a>: The sqlite3 module now raises TypeError, rather than
ValueError, if operation argument type is not str: execute(),
executemany() and calling a connection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29412">bpo-29412</a>: Fix IndexError in parsing a header value ending unexpectedly.
Patch by Abhilash Raj.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36546">bpo-36546</a>: The <em>dist</em> argument for statistics.quantiles() is now
positional only. The current name doesn’t reflect that the argument can be
either a dataset or a distribution. Marking the parameter as positional
avoids confusion and makes it possible to change the name later.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37394">bpo-37394</a>: Fix a bug that was causing the <a class="reference internal" href="../library/queue.html#module-queue" title="queue: A synchronized queue class."><code class="xref py py-mod docutils literal notranslate"><span class="pre">queue</span></code></a> module to fail if
the accelerator module was not available. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37376">bpo-37376</a>: <a class="reference internal" href="../library/pprint.html#module-pprint" title="pprint: Data pretty printer."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pprint</span></code></a> now has support for
<a class="reference internal" href="../library/types.html#types.SimpleNamespace" title="types.SimpleNamespace"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.SimpleNamespace</span></code></a>. Patch by Carl Bordum Hansen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26967">bpo-26967</a>: An <a class="reference internal" href="../library/argparse.html#argparse.ArgumentParser" title="argparse.ArgumentParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">ArgumentParser</span></code></a> with
<code class="docutils literal notranslate"><span class="pre">allow_abbrev=False</span></code> no longer disables grouping of short flags, such as
<code class="docutils literal notranslate"><span class="pre">-vv</span></code>, but only disables abbreviation of long flags as documented. Patch
by Zac Hatfield-Dodds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37212">bpo-37212</a>: <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.call" title="unittest.mock.call"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.call()</span></code></a> now preserves the order of keyword
arguments in repr output. Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37372">bpo-37372</a>: Fix error unpickling datetime.time objects from Python 2 with
seconds>=24. Patch by Justin Blanchard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37345">bpo-37345</a>: Add formal support for UDPLITE sockets. Support was present
before, but it is now easier to detect support with <code class="docutils literal notranslate"><span class="pre">hasattr(socket,</span>
<span class="pre">'IPPROTO_UDPLITE')</span></code> and there are constants defined for each of the
values needed: <code class="docutils literal notranslate"><span class="pre">socket.IPPROTO_UDPLITE</span></code>, <code class="docutils literal notranslate"><span class="pre">UDPLITE_SEND_CSCOV</span></code>, and
<code class="docutils literal notranslate"><span class="pre">UDPLITE_RECV_CSCOV</span></code>. Patch by Gabe Appleton.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37358">bpo-37358</a>: Optimized <code class="docutils literal notranslate"><span class="pre">functools.partial</span></code> by using vectorcall.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37347">bpo-37347</a>: <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.create_aggregate" title="sqlite3.Connection.create_aggregate"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.create_aggregate()</span></code></a>,
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.create_function" title="sqlite3.Connection.create_function"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.create_function()</span></code></a>,
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.set_authorizer" title="sqlite3.Connection.set_authorizer"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.set_authorizer()</span></code></a>,
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.set_progress_handler" title="sqlite3.Connection.set_progress_handler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.set_progress_handler()</span></code></a>
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.set_trace_callback" title="sqlite3.Connection.set_trace_callback"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.set_trace_callback()</span></code></a> methods lead to segfaults if
some of these methods are called twice with an equal object but not the
same. Now callbacks are stored more carefully. Patch by Aleksandr Balezin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37163">bpo-37163</a>: The <em>obj</em> argument of <a class="reference internal" href="../library/dataclasses.html#dataclasses.replace" title="dataclasses.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.replace()</span></code></a> is
positional-only now.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37085">bpo-37085</a>: Add the optional Linux SocketCAN Broadcast Manager constants,
used as flags to configure the BCM behaviour, in the socket module. Patch
by Karl Ding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37328">bpo-37328</a>: <code class="docutils literal notranslate"><span class="pre">HTMLParser.unescape</span></code> is removed. It was undocumented and
deprecated since Python 3.4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37305">bpo-37305</a>: Add .webmanifest -> application/manifest+json to list of
recognized file types and content type headers</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37320">bpo-37320</a>: <code class="docutils literal notranslate"><span class="pre">aifc.openfp()</span></code> alias to <code class="docutils literal notranslate"><span class="pre">aifc.open()</span></code>, <code class="docutils literal notranslate"><span class="pre">sunau.openfp()</span></code>
alias to <code class="docutils literal notranslate"><span class="pre">sunau.open()</span></code>, and <code class="docutils literal notranslate"><span class="pre">wave.openfp()</span></code> alias to <code class="docutils literal notranslate"><span class="pre">wave.open()</span></code>
have been removed. They were deprecated since Python 3.7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37315">bpo-37315</a>: Deprecated accepting floats with integral value (like <code class="docutils literal notranslate"><span class="pre">5.0</span></code>)
in <a class="reference internal" href="../library/math.html#math.factorial" title="math.factorial"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.factorial()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37312">bpo-37312</a>: <code class="docutils literal notranslate"><span class="pre">_dummy_thread</span></code> and <code class="docutils literal notranslate"><span class="pre">dummy_threading</span></code> modules have been
removed. These modules were deprecated since Python 3.7 which requires
threading support.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33972">bpo-33972</a>: Email with single part but content-type set to <code class="docutils literal notranslate"><span class="pre">multipart/*</span></code>
doesn’t raise AttributeError anymore.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37280">bpo-37280</a>: Use threadpool for reading from file for sendfile fallback
mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37279">bpo-37279</a>: Fix asyncio sendfile support when sendfile sends extra data in
fallback mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19865">bpo-19865</a>: <a class="reference internal" href="../library/ctypes.html#ctypes.create_unicode_buffer" title="ctypes.create_unicode_buffer"><code class="xref py py-func docutils literal notranslate"><span class="pre">ctypes.create_unicode_buffer()</span></code></a> now also supports non-BMP
characters on platforms with 16-bit <code class="xref c c-type docutils literal notranslate"><span class="pre">wchar_t</span></code> (for example,
Windows and AIX).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37266">bpo-37266</a>: In a subinterpreter, spawning a daemon thread now raises an
exception. Daemon threads were never supported in subinterpreters.
Previously, the subinterpreter finalization crashed with a Python fatal
error if a daemon thread was still running.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37210">bpo-37210</a>: Allow pure Python implementation of <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a> to work even
when the C <code class="xref py py-mod docutils literal notranslate"><span class="pre">_pickle</span></code> module is unavailable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21872">bpo-21872</a>: Fix <a class="reference internal" href="../library/lzma.html#module-lzma" title="lzma: A Python wrapper for the liblzma compression library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">lzma</span></code></a>: module decompresses data incompletely. When
decompressing a FORMAT_ALONE format file, and it doesn’t have the end
marker, sometimes the last one to dozens bytes can’t be output. Patch by
Ma Lin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35922">bpo-35922</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">RobotFileParser.crawl_delay()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">RobotFileParser.request_rate()</span></code> to return <code class="docutils literal notranslate"><span class="pre">None</span></code> rather than raise
<a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> when no relevant rule is defined in the robots.txt
file. Patch by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35766">bpo-35766</a>: Change the format of feature_version to be a (major, minor)
tuple.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36607">bpo-36607</a>: Eliminate <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> raised by
<a class="reference internal" href="../library/asyncio-task.html#asyncio.all_tasks" title="asyncio.all_tasks"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.all_tasks()</span></code></a> if internal tasks weak set is changed by another
thread during iteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18748">bpo-18748</a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">_pyio.IOBase</span></code> destructor now does nothing if getting
the <code class="docutils literal notranslate"><span class="pre">closed</span></code> attribute fails to better mimic <code class="xref py py-class docutils literal notranslate"><span class="pre">_io.IOBase</span></code>
finalizer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36402">bpo-36402</a>: Fix a race condition at Python shutdown when waiting for
threads. Wait until the Python thread state of all non-daemon threads get
deleted (join all non-daemon threads), rather than just wait until
non-daemon Python threads complete.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37206">bpo-37206</a>: Default values which cannot be represented as Python objects no
longer improperly represented as <code class="docutils literal notranslate"><span class="pre">None</span></code> in function signatures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37111">bpo-37111</a>: Added <code class="docutils literal notranslate"><span class="pre">encoding</span></code> and <code class="docutils literal notranslate"><span class="pre">errors</span></code> keyword parameters to
<code class="docutils literal notranslate"><span class="pre">logging.basicConfig</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12144">bpo-12144</a>: Ensure cookies with <code class="docutils literal notranslate"><span class="pre">expires</span></code> attribute are handled in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">CookieJar.make_cookies()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34886">bpo-34886</a>: Fix an unintended ValueError from <a class="reference internal" href="../library/subprocess.html#subprocess.run" title="subprocess.run"><code class="xref py py-func docutils literal notranslate"><span class="pre">subprocess.run()</span></code></a> when
checking for conflicting <em>input</em> and <em>stdin</em> or <em>capture_output</em> and
<em>stdout</em> or <em>stderr</em> args when they were explicitly provided but with
<code class="docutils literal notranslate"><span class="pre">None</span></code> values within a passed in <code class="docutils literal notranslate"><span class="pre">**kwargs</span></code> dict rather than as passed
directly by name. Patch contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37173">bpo-37173</a>: The exception message for <code class="docutils literal notranslate"><span class="pre">inspect.getfile()</span></code> now correctly
reports the passed class rather than the builtins module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37178">bpo-37178</a>: Give math.perm() a one argument form that means the same as
math.factorial().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37178">bpo-37178</a>: For math.perm(n, k), let k default to n, giving the same result
as factorial.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37165">bpo-37165</a>: Converted _collections._count_elements to use the Argument
Clinic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34767">bpo-34767</a>: Do not always create a <a class="reference internal" href="../library/collections.html#collections.deque" title="collections.deque"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.deque</span></code></a> in
<a class="reference internal" href="../library/asyncio-sync.html#asyncio.Lock" title="asyncio.Lock"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Lock</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37158">bpo-37158</a>: Speed-up statistics.fmean() by switching from a function to a
generator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34282">bpo-34282</a>: Remove <code class="docutils literal notranslate"><span class="pre">Enum._convert</span></code> method, deprecated in 3.8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37150">bpo-37150</a>: <code class="docutils literal notranslate"><span class="pre">argparse._ActionsContainer.add_argument</span></code> now throws error,
if someone accidentally pass FileType class object instead of instance of
FileType as <code class="docutils literal notranslate"><span class="pre">type</span></code> argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28724">bpo-28724</a>: The socket module now has the <a class="reference internal" href="../library/socket.html#socket.send_fds" title="socket.send_fds"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.send_fds()</span></code></a> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">socket.recv.fds()</span></code> methods. Contributed by Joannah Nanjekye, Shinya
Okano and Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35621">bpo-35621</a>: Support running asyncio subprocesses when execution event loop
in a thread on UNIX.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36520">bpo-36520</a>: Lengthy email headers with UTF-8 characters are now properly
encoded when they are folded. Patch by Jeffrey Kintscher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30835">bpo-30835</a>: Fixed a bug in email parsing where a message with invalid bytes
in content-transfer-encoding of a multipart message can cause an
AttributeError. Patch by Andrew Donnellan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31163">bpo-31163</a>: pathlib.Path instance’s rename and replace methods now return
the new Path instance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25068">bpo-25068</a>: <a class="reference internal" href="../library/urllib.request.html#urllib.request.ProxyHandler" title="urllib.request.ProxyHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">urllib.request.ProxyHandler</span></code></a> now lowercases the keys of
the passed dictionary.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26185">bpo-26185</a>: Fix <a class="reference internal" href="../library/functions.html#repr" title="repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">repr()</span></code></a> on empty <code class="xref py py-class docutils literal notranslate"><span class="pre">ZipInfo</span></code> object. Patch by
Mickaël Schoentgen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21315">bpo-21315</a>: Email headers containing RFC2047 encoded words are parsed
despite the missing whitespace, and a defect registered. Also missing
trailing whitespace after encoded words is now registered as a defect.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Port test_datetime to VxWorks: skip zoneinfo tests on VxWorks</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35805">bpo-35805</a>: Add parser for Message-ID header and add it to default
HeaderRegistry. This should prevent folding of Message-ID using RFC 2048
encoded words.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36871">bpo-36871</a>: Ensure method signature is used instead of constructor
signature of a class while asserting mock object against method calls.
Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35070">bpo-35070</a>: posix.getgrouplist() now works correctly when the user belongs
to NGROUPS_MAX supplemental groups. Patch by Jeffrey Kintscher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31783">bpo-31783</a>: Fix race condition in ThreadPoolExecutor when worker threads
are created during interpreter shutdown.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36582">bpo-36582</a>: Fix <code class="docutils literal notranslate"><span class="pre">UserString.encode()</span></code> to correctly return <code class="docutils literal notranslate"><span class="pre">bytes</span></code>
rather than a <code class="docutils literal notranslate"><span class="pre">UserString</span></code> instance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32424">bpo-32424</a>: Deprecate xml.etree.ElementTree.Element.copy() in favor of
copy.copy().</p>
<p>Patch by Gordon P. Hemsley</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36564">bpo-36564</a>: Fix infinite loop in email header folding logic that would be
triggered when an email policy’s max_line_length is not long enough to
include the required markup and any values in the message. Patch by Paul
Ganssle</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36543">bpo-36543</a>: Removed methods Element.getchildren(), Element.getiterator()
and ElementTree.getiterator() and the xml.etree.cElementTree module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36409">bpo-36409</a>: Remove the old plistlib API deprecated in Python 3.4</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36302">bpo-36302</a>: distutils sorts source file lists so that Extension .so files
build more reproducibly by default</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36250">bpo-36250</a>: Ignore <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> from <code class="docutils literal notranslate"><span class="pre">signal</span></code> with <code class="docutils literal notranslate"><span class="pre">interaction</span></code> in
non-main thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36046">bpo-36046</a>: Added <code class="docutils literal notranslate"><span class="pre">user</span></code>, <code class="docutils literal notranslate"><span class="pre">group</span></code> and <code class="docutils literal notranslate"><span class="pre">extra_groups</span></code> parameters to
the subprocess.Popen constructor. Patch by Patrick McLean.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32627">bpo-32627</a>: Fix compile error when <code class="docutils literal notranslate"><span class="pre">_uuid</span></code> headers conflicting included.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35800">bpo-35800</a>: Deprecate <code class="docutils literal notranslate"><span class="pre">smtpd.MailmanProxy</span></code> ready for future removal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35168">bpo-35168</a>: <a class="reference internal" href="../library/shlex.html#shlex.shlex.punctuation_chars" title="shlex.shlex.punctuation_chars"><code class="xref py py-attr docutils literal notranslate"><span class="pre">shlex.shlex.punctuation_chars</span></code></a> is now a read-only
property.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8538">bpo-8538</a>: Add support for boolean actions like <code class="docutils literal notranslate"><span class="pre">--foo</span></code> and <code class="docutils literal notranslate"><span class="pre">--no-foo</span></code>
to argparse. Patch contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20504">bpo-20504</a>: Fixes a bug in <code class="xref py py-mod docutils literal notranslate"><span class="pre">cgi</span></code> module when a multipart/form-data
request has no <code class="docutils literal notranslate"><span class="pre">Content-Length</span></code> header.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25988">bpo-25988</a>: The abstract base classes in <a class="reference internal" href="../library/collections.abc.html#module-collections.abc" title="collections.abc: Abstract base classes for containers"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a> no longer
are exposed in the regular <a class="reference internal" href="../library/collections.html#module-collections" title="collections: Container datatypes"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11122">bpo-11122</a>: Distutils won’t check for rpmbuild in specified paths only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34775">bpo-34775</a>: Division handling of PurePath now returns NotImplemented
instead of raising a TypeError when passed something other than an
instance of str or PurePath. Patch by Roger Aiudi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34749">bpo-34749</a>: <a class="reference internal" href="../library/binascii.html#binascii.a2b_base64" title="binascii.a2b_base64"><code class="xref py py-func docutils literal notranslate"><span class="pre">binascii.a2b_base64()</span></code></a> is now up to 2 times faster. Patch
by Sergey Fedoseev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34519">bpo-34519</a>: Add additional aliases for HP Roman 8. Patch by Michael Osipov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28009">bpo-28009</a>: Fix uuid.getnode() on platforms with ‘.’ as MAC Addr delimiter
as well fix for MAC Addr format that omits a leading 0 in MAC Addr values.
Currently, AIX is the only know platform with these settings. Patch by
Michael Felt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30618">bpo-30618</a>: Add <a class="reference internal" href="../library/pathlib.html#pathlib.Path.readlink" title="pathlib.Path.readlink"><code class="xref py py-meth docutils literal notranslate"><span class="pre">readlink()</span></code></a>. Patch by Girts Folkmanis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32498">bpo-32498</a>: Made <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.unquote" title="urllib.parse.unquote"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.unquote()</span></code></a> accept bytes in addition to
strings. Patch by Stein Karlsen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33348">bpo-33348</a>: lib2to3 now recognizes expressions after <code class="docutils literal notranslate"><span class="pre">*</span></code> and <code class="docutils literal notranslate"><span class="pre">**</span></code> like
in <code class="docutils literal notranslate"><span class="pre">f(*[]</span> <span class="pre">or</span> <span class="pre">[])</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32689">bpo-32689</a>: Update <a class="reference internal" href="../library/shutil.html#shutil.move" title="shutil.move"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.move()</span></code></a> function to allow for Path objects
to be used as source argument. Patch by Emily Morehouse and Maxwell
“5.13b” McKinnon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32820">bpo-32820</a>: Added <code class="docutils literal notranslate"><span class="pre">__format__</span></code> to IPv4 and IPv6 classes. Always outputs
a fully zero-padded string. Supports b/x/n modifiers (bin/hex/native
format). Native format for IPv4 is bin, native format for IPv6 is hex.
Also supports ‘#’ and ‘_’ modifiers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27657">bpo-27657</a>: Fix urllib.parse.urlparse() with numeric paths. A string like
“path:80” is no longer parsed as a path but as a scheme (“path”) and a
path (“80”).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4963">bpo-4963</a>: Fixed non-deterministic behavior related to mimetypes extension
mapping and module reinitialization.</p></li>
</ul>
</section>
<section id="id468">
<h3>Documentation<a class="headerlink" href="#id468" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21767">bpo-21767</a>: Explicitly mention abc support in functools.singledispatch</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38816">bpo-38816</a>: Provides more details about the interaction between
<code class="xref c c-func docutils literal notranslate"><span class="pre">fork()</span></code> and CPython’s runtime, focusing just on the C-API. This
includes cautions about where <code class="xref c c-func docutils literal notranslate"><span class="pre">fork()</span></code> should and shouldn’t be
called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38351">bpo-38351</a>: Modernize <a class="reference internal" href="../library/email.html#module-email" title="email: Package supporting the parsing, manipulating, and generating email messages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email</span></code></a> examples from %-formatting to f-strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38778">bpo-38778</a>: Document the fact that <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> is raised if
<a class="reference internal" href="../library/os.html#os.fork" title="os.fork"><code class="xref py py-meth docutils literal notranslate"><span class="pre">os.fork()</span></code></a> is called in a subinterpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38592">bpo-38592</a>: Add Brazilian Portuguese to the language switcher at Python
Documentation website.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38294">bpo-38294</a>: Add list of no-longer-escaped chars to re.escape documentation</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38053">bpo-38053</a>: Modernized the plistlib documentation</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26868">bpo-26868</a>: Fix example usage of <a class="reference internal" href="../c-api/module.html#c.PyModule_AddObject" title="PyModule_AddObject"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyModule_AddObject()</span></code></a> to properly
handle errors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36797">bpo-36797</a>: Fix a dead link in the distutils API Reference.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37977">bpo-37977</a>: Warn more strongly and clearly about pickle insecurity</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37979">bpo-37979</a>: Added a link to dateutil.parser.isoparse in the
datetime.fromisoformat documentation. Patch by Paul Ganssle</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12707">bpo-12707</a>: Deprecate info(), geturl(), getcode() methods in favor of the
headers, url, and status properties, respectively, for HTTPResponse and
addinfourl. Also deprecate the code attribute of addinfourl in favor of
the status attribute. Patch by Ashwin Ramaswami</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37937">bpo-37937</a>: Mention <code class="docutils literal notranslate"><span class="pre">frame.f_trace</span></code> in <a class="reference internal" href="../library/sys.html#sys.settrace" title="sys.settrace"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.settrace()</span></code></a> docs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37878">bpo-37878</a>: Make <a class="reference internal" href="../c-api/init.html#c.PyThreadState_DeleteCurrent" title="PyThreadState_DeleteCurrent"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyThreadState_DeleteCurrent()</span></code></a> Internal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37759">bpo-37759</a>: Beginning edits to Whatsnew 3.8</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37726">bpo-37726</a>: Stop recommending getopt in the tutorial for command line
argument parsing and promote argparse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32910">bpo-32910</a>: Remove implementation-specific behaviour of how venv’s
Deactivate works.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37256">bpo-37256</a>: Fix wording of arguments for <code class="xref py py-class docutils literal notranslate"><span class="pre">Request</span></code> in
<a class="reference internal" href="../library/urllib.request.html#module-urllib.request" title="urllib.request: Extensible library for opening URLs."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.request</span></code></a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37284">bpo-37284</a>: Add a brief note to indicate that any new
<code class="docutils literal notranslate"><span class="pre">sys.implementation</span></code> required attributes must go through the PEP
process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30088">bpo-30088</a>: Documented that <a class="reference internal" href="../library/mailbox.html#mailbox.Maildir" title="mailbox.Maildir"><code class="xref py py-class docutils literal notranslate"><span class="pre">mailbox.Maildir</span></code></a> constructor doesn’t
attempt to verify the maildir folder layout correctness. Patch by
Sviatoslav Sydorenko.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37521">bpo-37521</a>: Fix <code class="docutils literal notranslate"><span class="pre">importlib</span></code> examples to insert any newly created modules
via importlib.util.module_from_spec() immediately into sys.modules instead
of after calling loader.exec_module().</p>
<p>Thanks to Benjamin Mintz for finding the bug.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37456">bpo-37456</a>: Slash (‘/’) is now part of syntax.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37487">bpo-37487</a>: Fix PyList_GetItem index description to include 0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37149">bpo-37149</a>: Replace the dead link to the Tkinter 8.5 reference by John
Shipman, New Mexico Tech, with a link to the archive.org copy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37478">bpo-37478</a>: Added possible exceptions to the description of os.chdir().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34903">bpo-34903</a>: Documented that in <a class="reference internal" href="../library/datetime.html#datetime.datetime.strptime" title="datetime.datetime.strptime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.strptime()</span></code></a>, the
leading zero in some two-digit formats is optional. Patch by Mike Gleen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36260">bpo-36260</a>: Add decompression pitfalls to zipfile module documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37004">bpo-37004</a>: In the documentation for difflib, a note was added explicitly
warning that the results of SequenceMatcher’s ratio method may depend on
the order of the input strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36960">bpo-36960</a>: Restructured the <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a> docs in the interest of making
them more user-friendly and improving readability. Patch by Brad Solomon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36487">bpo-36487</a>: Make C-API docs clear about what the “main” interpreter is.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23460">bpo-23460</a>: The documentation for decimal string formatting using the
<code class="docutils literal notranslate"><span class="pre">:g</span></code> specifier has been updated to reflect the correct exponential
notation cutoff point. Original patch contributed by Tuomas Suutari.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35803">bpo-35803</a>: Document and test that <code class="docutils literal notranslate"><span class="pre">tempfile</span></code> functions may accept a
<a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like object</span></a> for the <code class="docutils literal notranslate"><span class="pre">dir</span></code> argument. Patch by Anthony
Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33944">bpo-33944</a>: Added a note about the intended use of code in .pth files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34293">bpo-34293</a>: Fix the Doc/Makefile regarding PAPER environment variable and
PDF builds</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25237">bpo-25237</a>: Add documentation for tkinter modules</p></li>
</ul>
</section>
<section id="id469">
<h3>Tests<a class="headerlink" href="#id469" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38614">bpo-38614</a>: Fix test_communicate() of test_asyncio.test_subprocess: use
<code class="docutils literal notranslate"><span class="pre">support.LONG_TIMEOUT</span></code> (5 minutes), instead of just 1 minute.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38614">bpo-38614</a>: Add timeout constants to <a class="reference internal" href="../library/test.html#module-test.support" title="test.support: Support for Python's regression test suite."><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support</span></code></a>:
<a class="reference internal" href="../library/test.html#test.support.LOOPBACK_TIMEOUT" title="test.support.LOOPBACK_TIMEOUT"><code class="xref py py-data docutils literal notranslate"><span class="pre">LOOPBACK_TIMEOUT</span></code></a>,
<a class="reference internal" href="../library/test.html#test.support.INTERNET_TIMEOUT" title="test.support.INTERNET_TIMEOUT"><code class="xref py py-data docutils literal notranslate"><span class="pre">INTERNET_TIMEOUT</span></code></a>,
<a class="reference internal" href="../library/test.html#test.support.SHORT_TIMEOUT" title="test.support.SHORT_TIMEOUT"><code class="xref py py-data docutils literal notranslate"><span class="pre">SHORT_TIMEOUT</span></code></a> and
<a class="reference internal" href="../library/test.html#test.support.LONG_TIMEOUT" title="test.support.LONG_TIMEOUT"><code class="xref py py-data docutils literal notranslate"><span class="pre">LONG_TIMEOUT</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38502">bpo-38502</a>: test.regrtest now uses process groups in the multiprocessing
mode (-jN command line option) if process groups are available: if
<a class="reference internal" href="../library/os.html#os.setsid" title="os.setsid"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.setsid()</span></code></a> and <a class="reference internal" href="../library/os.html#os.killpg" title="os.killpg"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.killpg()</span></code></a> functions are available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35998">bpo-35998</a>: Fix a race condition in test_asyncio.test_start_tls_server_1().
Previously, there was a race condition between the test main() function
which replaces the protocol and the test ServerProto protocol which sends
ANSWER once it gets HELLO. Now, only the test main() function is
responsible to send data, ServerProto no longer sends data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38470">bpo-38470</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_compileall.test_compile_dir_maxlevels()</span></code> on Windows
without long path support: only create 3 subdirectories instead of between
20 and 100 subdirectories.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37531">bpo-37531</a>: On timeout, regrtest no longer attempts to call
<code class="docutils literal notranslate"><span class="pre">popen.communicate()</span></code> again: it can hang until all child processes using
stdout and stderr pipes completes. Kill the worker process and ignores its
output. Change also the faulthandler timeout of the main process from 1
minute to 5 minutes, for Python slowest buildbots.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38239">bpo-38239</a>: Fix test_gdb for Link Time Optimization (LTO) builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38275">bpo-38275</a>: test_ssl now handles disabled TLS/SSL versions better.
OpenSSL’s crypto policy and run-time settings are recognized and tests for
disabled versions are skipped. Tests also accept more TLS minimum_versions
for platforms that override OpenSSL’s default with strict settings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38271">bpo-38271</a>: The private keys for test_ssl were encrypted with 3DES in
traditional PKCS#5 format. 3DES and the digest algorithm of PKCS#5 are
blocked by some strict crypto policies. Use PKCS#8 format with AES256
encryption instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38270">bpo-38270</a>: test.support now has a helper function to check for
availability of a hash digest function. Several tests are refactored avoid
MD5 and use SHA256 instead. Other tests are marked to use MD5 and skipped
when MD5 is disabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37123">bpo-37123</a>: Multiprocessing test test_mymanager() now also expects
-SIGTERM, not only exitcode 0. BaseManager._finalize_manager() sends
SIGTERM to the manager process if it takes longer than 1 second to stop,
which happens on slow buildbots.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38212">bpo-38212</a>: Multiprocessing tests: increase
test_queue_feeder_donot_stop_onexc() timeout from 1 to 60 seconds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38117">bpo-38117</a>: Test with OpenSSL 1.1.1d</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38018">bpo-38018</a>: Increase code coverage for multiprocessing.shared_memory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37805">bpo-37805</a>: Add tests for json.dump(…, skipkeys=True). Patch by Donghee
Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37531">bpo-37531</a>: Enhance regrtest multiprocess timeout: write a message when
killing a worker process, catch popen.kill() and popen.wait() exceptions,
put a timeout on the second call to popen.communicate().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37876">bpo-37876</a>: Add tests for ROT-13 codec.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36833">bpo-36833</a>: Added tests for <code class="samp docutils literal notranslate"><span class="pre">PyDateTime_</span><em><span class="pre">xxx</span></em><span class="pre">_GET_</span><em><span class="pre">xxx</span></em><span class="pre">()</span></code> macros of
the C API of the <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a> module. Patch by Joannah Nanjekye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37558">bpo-37558</a>: Fix test_shared_memory_cleaned_after_process_termination name
handling</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37526">bpo-37526</a>: Add <code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.catch_threading_exception()</span></code>: context
manager catching <a class="reference internal" href="../library/threading.html#threading.Thread" title="threading.Thread"><code class="xref py py-class docutils literal notranslate"><span class="pre">threading.Thread</span></code></a> exception using
<a class="reference internal" href="../library/threading.html#threading.excepthook" title="threading.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.excepthook()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37421">bpo-37421</a>: test_concurrent_futures now explicitly stops the ForkServer
instance if it’s running.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37421">bpo-37421</a>: multiprocessing tests now stop the ForkServer instance if it’s
running: close the “alive” file descriptor to ask the server to stop and
then remove its UNIX address.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37421">bpo-37421</a>: test_distutils.test_build_ext() is now able to remove the
temporary directory on Windows: don’t import the newly built C extension
(“xx”) in the current process, but test it in a separated process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37421">bpo-37421</a>: test_concurrent_futures now cleans up multiprocessing to remove
immediately temporary directories created by
multiprocessing.util.get_temp_dir().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37421">bpo-37421</a>: test_winconsoleio doesn’t leak a temporary file anymore: use
tempfile.TemporaryFile() to remove it when the test completes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37421">bpo-37421</a>: multiprocessing tests now explicitly call <code class="docutils literal notranslate"><span class="pre">_run_finalizers()</span></code>
to immediately remove temporary directories created by tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37421">bpo-37421</a>: urllib.request tests now call
<a class="reference internal" href="../library/urllib.request.html#urllib.request.urlcleanup" title="urllib.request.urlcleanup"><code class="xref py py-func docutils literal notranslate"><span class="pre">urlcleanup()</span></code></a> to remove temporary files created by
<code class="docutils literal notranslate"><span class="pre">urlretrieve()</span></code> tests and to clear the <code class="docutils literal notranslate"><span class="pre">_opener</span></code> global variable set
by <code class="docutils literal notranslate"><span class="pre">urlopen()</span></code> and functions calling indirectly <code class="docutils literal notranslate"><span class="pre">urlopen()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37472">bpo-37472</a>: Remove <code class="docutils literal notranslate"><span class="pre">Lib/test/outstanding_bugs.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37199">bpo-37199</a>: Fix test failures when IPv6 is unavailable or disabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19696">bpo-19696</a>: Replace deprecated method “random.choose” with “random.choice”
in “test_pkg_import.py”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37335">bpo-37335</a>: Remove no longer necessary code from c locale coercion tests</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37421">bpo-37421</a>: Fix test_shutil to no longer leak temporary files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37411">bpo-37411</a>: Fix test_wsgiref.testEnviron() to no longer depend on the
environment variables (don’t fail if “X” variable is set).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37400">bpo-37400</a>: Fix test_os.test_chown(): use os.getgroups() rather than
grp.getgrall() to get groups. Rename also the test to test_chown_gid().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37359">bpo-37359</a>: Add –cleanup option to python3 -m test to remove
<code class="docutils literal notranslate"><span class="pre">test_python_*</span></code> directories of previous failed jobs. Add “make
cleantest” to run <code class="docutils literal notranslate"><span class="pre">python3</span> <span class="pre">-m</span> <span class="pre">test</span> <span class="pre">--cleanup</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37362">bpo-37362</a>: test_gdb no longer fails if it gets an “unexpected” message on
stderr: it now ignores stderr. The purpose of test_gdb is to test that
python-gdb.py commands work as expected, not to test gdb.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35998">bpo-35998</a>: Avoid TimeoutError in test_asyncio: test_start_tls_server_1()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37278">bpo-37278</a>: Fix test_asyncio ProactorLoopCtrlC: join the thread to prevent
leaking a running thread and leaking a reference.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37261">bpo-37261</a>: Fix <a class="reference internal" href="../library/test.html#test.support.catch_unraisable_exception" title="test.support.catch_unraisable_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.catch_unraisable_exception()</span></code></a>: its
__exit__() method now ignores unraisable exception raised when clearing
its <code class="docutils literal notranslate"><span class="pre">unraisable</span></code> attribute.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37069">bpo-37069</a>: regrtest now uses <a class="reference internal" href="../library/sys.html#sys.unraisablehook" title="sys.unraisablehook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.unraisablehook()</span></code></a> to mark a test as
“environment altered” (ENV_CHANGED) if it emits an “unraisable exception”.
Moreover, regrtest logs a warning in this case.</p>
<p>Use <code class="docutils literal notranslate"><span class="pre">python3</span> <span class="pre">-m</span> <span class="pre">test</span> <span class="pre">--fail-env-changed</span></code> to catch unraisable exceptions
in tests.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37252">bpo-37252</a>: Fix assertions in <code class="docutils literal notranslate"><span class="pre">test_close</span></code> and
<code class="docutils literal notranslate"><span class="pre">test_events_mask_overflow</span></code> devpoll tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37169">bpo-37169</a>: Rewrite <code class="docutils literal notranslate"><span class="pre">_PyObject_IsFreed()</span></code> unit tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37153">bpo-37153</a>: <code class="docutils literal notranslate"><span class="pre">test_venv.test_multiprocessing()</span></code> now explicitly calls
<code class="docutils literal notranslate"><span class="pre">pool.terminate()</span></code> to wait until the pool completes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34001">bpo-34001</a>: Make test_ssl pass with LibreSSL. LibreSSL handles minimum and
maximum TLS version differently than OpenSSL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36919">bpo-36919</a>: Make <code class="docutils literal notranslate"><span class="pre">test_source_encoding.test_issue2301</span></code> implementation
independent. The test will work now for both CPython and IronPython.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30202">bpo-30202</a>: Update <code class="docutils literal notranslate"><span class="pre">test.test_importlib.test_abc</span></code> to test
<code class="docutils literal notranslate"><span class="pre">find_spec()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28009">bpo-28009</a>: Modify the test_uuid logic to test when a program is available
AND can be used to obtain a MACADDR as basis for an UUID. Patch by M. Felt</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34596">bpo-34596</a>: Fallback to a default reason when <a class="reference internal" href="../library/unittest.html#unittest.skip" title="unittest.skip"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.skip()</span></code></a> is
uncalled. Patch by Naitree Zhu.</p></li>
</ul>
</section>
<section id="id470">
<h3>Build<a class="headerlink" href="#id470" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38809">bpo-38809</a>: On Windows, build scripts will now recognize and use python.exe
from an active virtual env.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38684">bpo-38684</a>: Fix _hashlib build when Blake2 is disabled, but OpenSSL
supports it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38468">bpo-38468</a>: Misc/python-config.in now uses <code class="docutils literal notranslate"><span class="pre">getvar()</span></code> for all still
existing <code class="docutils literal notranslate"><span class="pre">sysconfig.get_config_var()</span></code> calls. Patch by Joannah Nanjekye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37415">bpo-37415</a>: Fix stdatomic.h header check for ICC compiler: the ICC
implementation lacks atomic_uintptr_t type which is needed by Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38301">bpo-38301</a>: In Solaris family, we must be sure to use <code class="docutils literal notranslate"><span class="pre">-D_REENTRANT</span></code>.
Patch by Jesús Cea Avión.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36002">bpo-36002</a>: Locate <code class="docutils literal notranslate"><span class="pre">llvm-profdata</span></code> and <code class="docutils literal notranslate"><span class="pre">llvm-ar</span></code> binaries using
<code class="docutils literal notranslate"><span class="pre">AC_PATH_TOOL</span></code> rather than <code class="docutils literal notranslate"><span class="pre">AC_PATH_TARGET_TOOL</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37936">bpo-37936</a>: The <code class="file docutils literal notranslate"><span class="pre">.gitignore</span></code> file systematically keeps “rooted”, with
a non-trailing slash, all the rules that are meant to apply to files in a
specific place in the repo. Previously, when the intended file to ignore
happened to be at the root of the repo, we’d most often accidentally also
ignore files and directories with the same name anywhere in the tree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37760">bpo-37760</a>: The <code class="file docutils literal notranslate"><span class="pre">Tools/unicode/makeunicodedata.py</span></code> script, which is
used for converting information from the Unicode Character Database into
generated code and data used by the methods of <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> and by the
<a class="reference internal" href="../library/unicodedata.html#module-unicodedata" title="unicodedata: Access the Unicode Database."><code class="xref py py-mod docutils literal notranslate"><span class="pre">unicodedata</span></code></a> module, now handles each character’s data as a
<code class="docutils literal notranslate"><span class="pre">dataclass</span></code> with named attributes, rather than a length-18 list of
different fields.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37936">bpo-37936</a>: The <code class="file docutils literal notranslate"><span class="pre">.gitignore</span></code> file no longer applies to any files that
are in fact tracked in the Git repository. Patch by Greg Price.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37725">bpo-37725</a>: Change “clean” makefile target to also clean the program guided
optimization (PGO) data. Previously you would have to use “make clean”
and “make profile-removal”, or “make clobber”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37707">bpo-37707</a>: Mark some individual tests to skip when –pgo is used. The
tests marked increase the PGO task time significantly and likely don’t
help improve optimization of the final executable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36044">bpo-36044</a>: Reduce the number of unit tests run for the PGO generation
task. This speeds up the task by a factor of about 15x. Running the full
unit test suite is slow. This change may result in a slightly less
optimized build since not as many code branches will be executed. If you
are willing to wait for the much slower build, the old behavior can be
restored using ‘./configure [..] PROFILE_TASK=”-m test –pgo-extended”’.
We make no guarantees as to which PGO task set produces a faster build.
Users who care should run their own relevant benchmarks as results can
depend on the environment, workload, and compiler tool chain.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37468">bpo-37468</a>: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> no longer installs <code class="docutils literal notranslate"><span class="pre">wininst-*.exe</span></code> files
used by distutils bdist_wininst: bdist_wininst only works on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37189">bpo-37189</a>: Many <code class="samp docutils literal notranslate"><span class="pre">PyRun_</span><em><span class="pre">XXX</span></em><span class="pre">()</span></code> functions like
<a class="reference internal" href="../c-api/veryhigh.html#c.PyRun_String" title="PyRun_String"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyRun_String()</span></code></a> were no longer exported in <code class="docutils literal notranslate"><span class="pre">libpython38.dll</span></code> by
mistake. Export them again to fix the ABI compatibility.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25361">bpo-25361</a>: Enables use of SSE2 instructions in Windows 32-bit build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36210">bpo-36210</a>: Update optional extension module detection for AIX. ossaudiodev
and spwd are not applicable for AIX, and are no longer reported as
missing. 3rd-party packaging of ncurses (with ASIS support) conflicts with
officially supported AIX curses library, so configure AIX to use
libcurses.a. However, skip trying to build _curses_panel.</p>
<p>patch by M Felt</p>
</li>
</ul>
</section>
<section id="id471">
<h3>Windows<a class="headerlink" href="#id471" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38589">bpo-38589</a>: Fixes HTML Help shortcut when Windows is not installed to C
drive</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38453">bpo-38453</a>: Ensure ntpath.realpath() correctly resolves relative paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38519">bpo-38519</a>: Restores the internal C headers that were missing from the
nuget.org and Microsoft Store packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38492">bpo-38492</a>: Remove <code class="docutils literal notranslate"><span class="pre">pythonw.exe</span></code> dependency on the Microsoft C++ runtime.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38344">bpo-38344</a>: Fix error message in activate.bat</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38359">bpo-38359</a>: Ensures <code class="docutils literal notranslate"><span class="pre">pyw.exe</span></code> launcher reads correct registry key.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38355">bpo-38355</a>: Fixes <code class="docutils literal notranslate"><span class="pre">ntpath.realpath</span></code> failing on <code class="docutils literal notranslate"><span class="pre">sys.executable</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38117">bpo-38117</a>: Update bundled OpenSSL to 1.1.1d</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38092">bpo-38092</a>: Reduce overhead when using multiprocessing in a Windows virtual
environment.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38133">bpo-38133</a>: Allow py.exe launcher to locate installations from the
Microsoft Store and improve display of active virtual environments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38114">bpo-38114</a>: The <code class="docutils literal notranslate"><span class="pre">pip.ini</span></code> is no longer included in the Nuget package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32592">bpo-32592</a>: Set Windows 8 as the minimum required version for API support</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36634">bpo-36634</a>: <a class="reference internal" href="../library/os.html#os.cpu_count" title="os.cpu_count"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.cpu_count()</span></code></a> now returns active processors rather than
maximum processors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36634">bpo-36634</a>: venv activate.bat now works when the existing variables contain
double quote characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38081">bpo-38081</a>: Prevent error calling <a class="reference internal" href="../library/os.path.html#os.path.realpath" title="os.path.realpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.realpath()</span></code></a> on <code class="docutils literal notranslate"><span class="pre">'NUL'</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38087">bpo-38087</a>: Fix case sensitivity in test_pathlib and test_ntpath.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38088">bpo-38088</a>: Fixes distutils not finding vcruntime140.dll with only the v142
toolset installed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37283">bpo-37283</a>: Ensure command-line and unattend.xml setting override
previously detected states in Windows installer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38030">bpo-38030</a>: Fixes <a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a> failing for block devices on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38020">bpo-38020</a>: Fixes potential crash when calling <a class="reference internal" href="../library/os.html#os.readlink" title="os.readlink"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.readlink()</span></code></a> (or
indirectly through <a class="reference internal" href="../library/os.path.html#os.path.realpath" title="os.path.realpath"><code class="xref py py-func docutils literal notranslate"><span class="pre">realpath()</span></code></a>) on a file that is not a
supported link.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37705">bpo-37705</a>: Improve the implementation of <code class="docutils literal notranslate"><span class="pre">winerror_to_errno()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37549">bpo-37549</a>: <a class="reference internal" href="../library/os.html#os.dup" title="os.dup"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.dup()</span></code></a> no longer fails for standard streams on Windows
7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1311">bpo-1311</a>: The <code class="docutils literal notranslate"><span class="pre">nul</span></code> file on Windows now returns True from
<a class="reference internal" href="../library/os.path.html#os.path.exists" title="os.path.exists"><code class="xref py py-func docutils literal notranslate"><span class="pre">exists()</span></code></a> and a valid result from <a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a> with
<code class="docutils literal notranslate"><span class="pre">S_IFCHR</span></code> set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9949">bpo-9949</a>: Enable support for following symlinks in <code class="xref py py-func docutils literal notranslate"><span class="pre">os.realpath()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37834">bpo-37834</a>: Treat all name surrogate reparse points on Windows in
<a class="reference internal" href="../library/os.html#os.lstat" title="os.lstat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.lstat()</span></code></a> and other reparse points as regular files in
<a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36266">bpo-36266</a>: Add the module name in the formatted error message when DLL
load fail happens during module import in
<code class="docutils literal notranslate"><span class="pre">_PyImport_FindSharedFuncptrWindows()</span></code>. Patch by Srinivas Nyayapati.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25172">bpo-25172</a>: Trying to import the <code class="xref py py-mod docutils literal notranslate"><span class="pre">crypt</span></code> module on Windows will
result in an <a class="reference internal" href="../library/exceptions.html#ImportError" title="ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a> with a message explaining that the module
isn’t supported on Windows. On other platforms, if the underlying
<code class="docutils literal notranslate"><span class="pre">_crypt</span></code> module is not available, the ImportError will include a message
explaining the problem.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37778">bpo-37778</a>: Fixes the icons used for file associations to the Microsoft
Store package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37734">bpo-37734</a>: Fix use of registry values to launch Python from Microsoft
Store app.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37702">bpo-37702</a>: Fix memory leak on Windows in creating an SSLContext object or
running <code class="docutils literal notranslate"><span class="pre">urllib.request.urlopen('https://...')</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37672">bpo-37672</a>: Switch Windows Store package’s pip to use bundled
<code class="file docutils literal notranslate"><span class="pre">pip.ini</span></code> instead of <span class="target" id="index-343"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PIP_USER</span></code> variable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10945">bpo-10945</a>: Officially drop support for creating bdist_wininst installers
on non-Windows systems.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37445">bpo-37445</a>: Include the <code class="docutils literal notranslate"><span class="pre">FORMAT_MESSAGE_IGNORE_INSERTS</span></code> flag in
<code class="docutils literal notranslate"><span class="pre">FormatMessageW()</span></code> calls.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37369">bpo-37369</a>: Fixes path for <a class="reference internal" href="../library/sys.html#sys.executable" title="sys.executable"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.executable</span></code></a> when running from the
Microsoft Store.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37380">bpo-37380</a>: Don’t collect unfinished processes with <code class="docutils literal notranslate"><span class="pre">subprocess._active</span></code>
on Windows to cleanup later. Patch by Ruslan Kuprieiev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37351">bpo-37351</a>: Removes libpython38.a from standard Windows distribution.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35360">bpo-35360</a>: Update Windows builds to use SQLite 3.28.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37267">bpo-37267</a>: On Windows, <a class="reference internal" href="../library/os.html#os.dup" title="os.dup"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.dup()</span></code></a> no longer creates an inheritable fd
when handling a character file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36779">bpo-36779</a>: Ensure <code class="docutils literal notranslate"><span class="pre">time.tzname</span></code> is correct on Windows when the active
code page is set to CP_UTF7 or CP_UTF8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32587">bpo-32587</a>: Make <a class="reference internal" href="../library/winreg.html#winreg.REG_MULTI_SZ" title="winreg.REG_MULTI_SZ"><code class="xref py py-const docutils literal notranslate"><span class="pre">winreg.REG_MULTI_SZ</span></code></a> support zero-length strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28269">bpo-28269</a>: Replace use of <code class="xref c c-func docutils literal notranslate"><span class="pre">strcasecmp()</span></code> for the system function
<code class="xref c c-func docutils literal notranslate"><span class="pre">_stricmp()</span></code>. Patch by Minmin Gong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36590">bpo-36590</a>: Add native Bluetooth RFCOMM support to socket module.</p></li>
</ul>
</section>
<section id="id472">
<h3>macOS<a class="headerlink" href="#id472" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38117">bpo-38117</a>: Updated OpenSSL to 1.1.1d in macOS installer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38089">bpo-38089</a>: Move Azure Pipelines to latest VM versions and make macOS tests
optional</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18049">bpo-18049</a>: Increase the default stack size of threads from 5MB to 16MB on
macOS, to match the stack size of the main thread. This avoids crashes on
deep recursion in threads.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34602">bpo-34602</a>: Avoid test suite failures on macOS by no longer calling
resource.setrlimit to increase the process stack size limit at runtime.
The runtime change is no longer needed since the interpreter is being
built with a larger default stack size.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35360">bpo-35360</a>: Update macOS installer to use SQLite 3.28.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34631">bpo-34631</a>: Updated OpenSSL to 1.1.1c in macOS installer.</p></li>
</ul>
</section>
<section id="id473">
<h3>IDLE<a class="headerlink" href="#id473" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26353">bpo-26353</a>: Stop adding newline when saving an IDLE shell window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4630">bpo-4630</a>: Add an option to toggle IDLE’s cursor blink for shell, editor,
and output windows. See Settings, General, Window Preferences, Cursor
Blink. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38598">bpo-38598</a>: Do not try to compile IDLE shell or output windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36698">bpo-36698</a>: IDLE no longer fails when write non-encodable characters to
stderr. It now escapes them with a backslash, as the regular Python
interpreter. Added the <code class="docutils literal notranslate"><span class="pre">errors</span></code> field to the standard streams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35379">bpo-35379</a>: When exiting IDLE, catch any AttributeError. One happens when
EditorWindow.close is called twice. Printing a traceback, when IDLE is
run from a terminal, is useless and annoying.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38183">bpo-38183</a>: To avoid problems, test_idle ignores the user config directory.
It no longer tries to create or access .idlerc or any files within. Users
must run IDLE to discover problems with saving settings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38077">bpo-38077</a>: IDLE no longer adds ‘argv’ to the user namespace when
initializing it. This bug only affected 3.7.4 and 3.8.0b2 to 3.8.0b4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38041">bpo-38041</a>: Shell restart lines now fill the window width, always start
with ‘=’, and avoid wrapping unnecessarily. The line will still wrap if
the included file name is long relative to the width.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35771">bpo-35771</a>: To avoid occasional spurious test_idle failures on slower
machines, increase the <code class="docutils literal notranslate"><span class="pre">hover_delay</span></code> in test_tooltip.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37824">bpo-37824</a>: Properly handle user input warnings in IDLE shell. Cease
turning SyntaxWarnings into SyntaxErrors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37929">bpo-37929</a>: IDLE Settings dialog now closes properly when there is no shell
window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37902">bpo-37902</a>: Add mousewheel scrolling for IDLE module, path, and stack
browsers. Patch by George Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37849">bpo-37849</a>: Fixed completions list appearing too high or low when shown
above the current line.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36419">bpo-36419</a>: Refactor IDLE autocomplete and improve testing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37748">bpo-37748</a>: Reorder the Run menu. Put the most common choice, Run Module,
at the top.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37692">bpo-37692</a>: Improve highlight config sample with example shell interaction
and better labels for shell elements.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37628">bpo-37628</a>: Settings dialog no longer expands with font size.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37627">bpo-37627</a>: Initialize the Customize Run dialog with the command line
arguments most recently entered before. The user can optionally edit
before submitting them.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33610">bpo-33610</a>: Fix code context not showing the correct context when first
toggled on.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37530">bpo-37530</a>: Optimize code context to reduce unneeded background activity.
Font and highlight changes now occur along with text changes instead of
after a random delay.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27452">bpo-27452</a>: Cleanup <code class="docutils literal notranslate"><span class="pre">config.py</span></code> by inlining <code class="docutils literal notranslate"><span class="pre">RemoveFile</span></code> and
simplifying the handling of <code class="docutils literal notranslate"><span class="pre">file</span></code> in <code class="docutils literal notranslate"><span class="pre">CreateConfigHandlers</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37325">bpo-37325</a>: Fix tab focus traversal order for help source and custom run
dialogs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37321">bpo-37321</a>: Both subprocess connection error messages now refer to the
‘Startup failure’ section of the IDLE doc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17535">bpo-17535</a>: Add optional line numbers for IDLE editor windows. Windows
open without line numbers unless set otherwise in the General tab of the
configuration dialog.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26806">bpo-26806</a>: To compensate for stack frames added by IDLE and avoid possible
problems with low recursion limits, add 30 to limits in the user code
execution process. Subtract 30 when reporting recursion limits to make
this addition mostly transparent.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37177">bpo-37177</a>: Properly ‘attach’ search dialogs to their main window so that
they behave like other dialogs and do not get hidden behind their main
window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37039">bpo-37039</a>: Adjust “Zoom Height” to individual screens by momentarily
maximizing the window on first use with a particular screen. Changing
screen settings may invalidate the saved height. While a window is
maximized, “Zoom Height” has no effect.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35763">bpo-35763</a>: Make calltip reminder about ‘/’ meaning positional-only less
obtrusive by only adding it when there is room on the first line.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5680">bpo-5680</a>: Add ‘Run… Customized’ to the Run menu to run a module with
customized settings. Any ‘command line arguments’ entered are added to
sys.argv. One can suppress the normal Shell main module restart.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36390">bpo-36390</a>: Gather Format menu functions into format.py. Combine
paragraph.py, rstrip.py, and format methods from editor.py.</p></li>
</ul>
</section>
<section id="id474">
<h3>Tools/Demos<a class="headerlink" href="#id474" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38118">bpo-38118</a>: Update Valgrind suppression file to ignore a false alarm in
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_Decode" title="PyUnicode_Decode"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_Decode()</span></code></a> when using GCC builtin strcmp().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38347">bpo-38347</a>: pathfix.py: Assume all files that end on ‘.py’ are Python
scripts when working recursively.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37803">bpo-37803</a>: pdb’s <code class="docutils literal notranslate"><span class="pre">--help</span></code> and <code class="docutils literal notranslate"><span class="pre">--version</span></code> long options now work.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37942">bpo-37942</a>: Improve ArgumentClinic converter for floats.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37704">bpo-37704</a>: Remove <code class="docutils literal notranslate"><span class="pre">Tools/scripts/h2py.py</span></code>: use cffi to access a C API in
Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37675">bpo-37675</a>: 2to3 now works when run from a zipped standard library.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37034">bpo-37034</a>: Argument Clinic now uses the argument name on errors with
keyword-only argument instead of their position. Patch contributed by Rémi
Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37064">bpo-37064</a>: Add option -k to pathscript.py script: preserve shebang flags.
Add option -a to pathscript.py script: add flags.</p></li>
</ul>
</section>
<section id="id475">
<h3>C API<a class="headerlink" href="#id475" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37633">bpo-37633</a>: Re-export some function compatibility wrappers for macros in
<code class="docutils literal notranslate"><span class="pre">pythonrun.h</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38644">bpo-38644</a>: Provide <a class="reference internal" href="../c-api/exceptions.html#c.Py_EnterRecursiveCall" title="Py_EnterRecursiveCall"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_EnterRecursiveCall()</span></code></a> and
<a class="reference internal" href="../c-api/exceptions.html#c.Py_LeaveRecursiveCall" title="Py_LeaveRecursiveCall"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_LeaveRecursiveCall()</span></code></a> as regular functions for the limited API.
Previously, there were defined as macros, but these macros didn’t work
with the limited API which cannot access <code class="docutils literal notranslate"><span class="pre">PyThreadState.recursion_depth</span></code>
field. Remove <code class="docutils literal notranslate"><span class="pre">_Py_CheckRecursionLimit</span></code> from the stable ABI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38650">bpo-38650</a>: The global variable <a class="reference internal" href="../c-api/tuple.html#c.PyStructSequence_UnnamedField" title="PyStructSequence_UnnamedField"><code class="xref c c-data docutils literal notranslate"><span class="pre">PyStructSequence_UnnamedField</span></code></a> is
now a constant and refers to a constant string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38540">bpo-38540</a>: Fixed possible leak in <a class="reference internal" href="../c-api/arg.html#c.PyArg_Parse" title="PyArg_Parse"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_Parse()</span></code></a> and similar
functions for format units <code class="docutils literal notranslate"><span class="pre">"es#"</span></code> and <code class="docutils literal notranslate"><span class="pre">"et#"</span></code> when the macro
<code class="xref c c-macro docutils literal notranslate"><span class="pre">PY_SSIZE_T_CLEAN</span></code> is not defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38395">bpo-38395</a>: Fix a crash in <a class="reference internal" href="../library/weakref.html#weakref.proxy" title="weakref.proxy"><code class="xref py py-class docutils literal notranslate"><span class="pre">weakref.proxy</span></code></a> objects due to incorrect
lifetime management when calling some associated methods that may delete
the last reference to object being referenced by the proxy. Patch by Pablo
Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36389">bpo-36389</a>: The <code class="docutils literal notranslate"><span class="pre">_PyObject_CheckConsistency()</span></code> function is now also
available in release mode. For example, it can be used to debug a crash in
the <code class="docutils literal notranslate"><span class="pre">visit_decref()</span></code> function of the GC.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38266">bpo-38266</a>: Revert the removal of PyThreadState_DeleteCurrent() with
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38303">bpo-38303</a>: Update audioop extension module to use the stable ABI
(PEP-384). Patch by Tyler Kieft.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38234">bpo-38234</a>: <code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetPath()</span></code> now sets <a class="reference internal" href="../library/sys.html#sys.executable" title="sys.executable"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.executable</span></code></a> to the
program full path (<a class="reference internal" href="../c-api/init.html#c.Py_GetProgramFullPath" title="Py_GetProgramFullPath"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetProgramFullPath()</span></code></a>) rather than to the
program name (<a class="reference internal" href="../c-api/init.html#c.Py_GetProgramName" title="Py_GetProgramName"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_GetProgramName()</span></code></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38234">bpo-38234</a>: Python ignored arguments passed to <code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetPath()</span></code>,
<code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetPythonHome()</span></code> and <code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetProgramName()</span></code>: fix Python
initialization to use specified arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38205">bpo-38205</a>: The <a class="reference internal" href="../c-api/intro.html#c.Py_UNREACHABLE" title="Py_UNREACHABLE"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_UNREACHABLE()</span></code></a> macro now calls
<a class="reference internal" href="../c-api/sys.html#c.Py_FatalError" title="Py_FatalError"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FatalError()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=38140">bpo-38140</a>: Make dict and weakref offsets opaque for C heap types by
passing the offsets through PyMemberDef</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15088">bpo-15088</a>: The C function <code class="docutils literal notranslate"><span class="pre">PyGen_NeedsFinalizing</span></code> has been removed. It
was not documented, tested or used anywhere within CPython after the
implementation of <span class="target" id="index-344"></span><a class="pep reference external" href="https://peps.python.org/pep-0442/"><strong>PEP 442</strong></a>. Patch by Joannah Nanjekye. (Patch by Joannah
Nanjekye)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36763">bpo-36763</a>: Options added by <code class="docutils literal notranslate"><span class="pre">PySys_AddXOption()</span></code> are now handled the
same way than <code class="docutils literal notranslate"><span class="pre">PyConfig.xoptions</span></code> and command line <code class="docutils literal notranslate"><span class="pre">-X</span></code> options.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37926">bpo-37926</a>: Fix a crash in <code class="docutils literal notranslate"><span class="pre">PySys_SetArgvEx(0,</span> <span class="pre">NULL,</span> <span class="pre">0)</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37879">bpo-37879</a>: Fix subtype_dealloc to suppress the type decref when the base
type is a C heap type</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37645">bpo-37645</a>: Add <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyObject_FunctionStr()</span></code> to get a user-friendly
string representation of a function-like object. Patch by Jeroen Demeyer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29548">bpo-29548</a>: The functions <code class="docutils literal notranslate"><span class="pre">PyEval_CallObject</span></code>, <code class="docutils literal notranslate"><span class="pre">PyEval_CallFunction</span></code>,
<code class="docutils literal notranslate"><span class="pre">PyEval_CallMethod</span></code> and <code class="docutils literal notranslate"><span class="pre">PyEval_CallObjectWithKeywords</span></code> are
deprecated. Use <a class="reference internal" href="../c-api/call.html#c.PyObject_Call" title="PyObject_Call"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_Call()</span></code></a> and its variants instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37151">bpo-37151</a>: <code class="docutils literal notranslate"><span class="pre">PyCFunction_Call</span></code> is now a deprecated alias of
<a class="reference internal" href="../c-api/call.html#c.PyObject_Call" title="PyObject_Call"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_Call()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37540">bpo-37540</a>: The vectorcall protocol now requires that the caller passes
only strings as keyword names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37207">bpo-37207</a>: The vectorcall protocol is now enabled for <code class="docutils literal notranslate"><span class="pre">type</span></code> objects:
set <code class="docutils literal notranslate"><span class="pre">tp_vectorcall</span></code> to a vectorcall function to be used instead of
<code class="docutils literal notranslate"><span class="pre">tp_new</span></code> and <code class="docutils literal notranslate"><span class="pre">tp_init</span></code> when calling the class itself.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21120">bpo-21120</a>: Exclude Python-ast.h, ast.h and asdl.h from the limited API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37483">bpo-37483</a>: Add new function <code class="docutils literal notranslate"><span class="pre">_PyObject_CallOneArg</span></code> for calling an object
with one positional argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36763">bpo-36763</a>: Add <a class="reference internal" href="../c-api/init_config.html#c.PyConfig_SetWideStringList" title="PyConfig_SetWideStringList"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyConfig_SetWideStringList()</span></code></a> function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37337">bpo-37337</a>: Add fast functions for calling methods:
<code class="xref c c-func docutils literal notranslate"><span class="pre">_PyObject_VectorcallMethod()</span></code>,
<code class="xref c c-func docutils literal notranslate"><span class="pre">_PyObject_CallMethodNoArgs()</span></code> and
<code class="xref c c-func docutils literal notranslate"><span class="pre">_PyObject_CallMethodOneArg()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28805">bpo-28805</a>: The <a class="reference internal" href="../c-api/structures.html#c.METH_FASTCALL" title="METH_FASTCALL"><code class="xref c c-macro docutils literal notranslate"><span class="pre">METH_FASTCALL</span></code></a> calling convention has been
documented.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37221">bpo-37221</a>: The new function <code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_NewWithPosOnlyArgs()</span></code> allows to
create code objects like <code class="xref c c-func docutils literal notranslate"><span class="pre">PyCode_New()</span></code>, but with an extra
<em>posonlyargcount</em> parameter for indicating the number of positonal-only
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37215">bpo-37215</a>: Fix dtrace issue introduce by <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36842">bpo-36842</a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37194">bpo-37194</a>: Add a new public <a class="reference internal" href="../c-api/call.html#c.PyObject_CallNoArgs" title="PyObject_CallNoArgs"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_CallNoArgs()</span></code></a> function to the
C API: call a callable Python object without any arguments. It is the most
efficient way to call a callback without any argument. On x86-64, for
example, <code class="docutils literal notranslate"><span class="pre">PyObject_CallFunctionObjArgs(func,</span> <span class="pre">NULL)</span></code> allocates 960 bytes
on the stack per call, whereas <code class="docutils literal notranslate"><span class="pre">PyObject_CallNoArgs(func)</span></code> only
allocates 624 bytes per call.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37170">bpo-37170</a>: Fix the cast on error in
<a class="reference internal" href="../c-api/long.html#c.PyLong_AsUnsignedLongLongMask" title="PyLong_AsUnsignedLongLongMask"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyLong_AsUnsignedLongLongMask()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35381">bpo-35381</a>: Convert posixmodule.c statically allocated types
<code class="docutils literal notranslate"><span class="pre">DirEntryType</span></code> and <code class="docutils literal notranslate"><span class="pre">ScandirIteratorType</span></code> to heap-allocated types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34331">bpo-34331</a>: Use singular/plural noun in error message when instantiating an
abstract class with non-overridden abstract method(s).</p></li>
</ul>
</section>
</section>
<section id="python-3-8-0-beta-1">
<h2>Python 3.8.0 beta 1<a class="headerlink" href="#python-3-8-0-beta-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2019-06-04</em></p>
<section id="id476">
<h3>Security<a class="headerlink" href="#id476" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35907">bpo-35907</a>: <span class="target" id="index-345"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2019-9948"><strong>CVE 2019-9948</strong></a>: Avoid file reading by disallowing
<code class="docutils literal notranslate"><span class="pre">local-file://</span></code> and <code class="docutils literal notranslate"><span class="pre">local_file://</span></code> URL schemes in
<code class="docutils literal notranslate"><span class="pre">URLopener().open()</span></code> and <code class="docutils literal notranslate"><span class="pre">URLopener().retrieve()</span></code> of
<a class="reference internal" href="../library/urllib.request.html#module-urllib.request" title="urllib.request: Extensible library for opening URLs."><code class="xref py py-mod docutils literal notranslate"><span class="pre">urllib.request</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33529">bpo-33529</a>: Prevent fold function used in email header encoding from
entering infinite loop when there are too many non-ASCII characters in a
header.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33164">bpo-33164</a>: Updated blake2 implementation which uses secure memset
implementation provided by platform.</p></li>
</ul>
</section>
<section id="id477">
<h3>Core and Builtins<a class="headerlink" href="#id477" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35814">bpo-35814</a>: Allow unpacking in the right hand side of annotated
assignments. In particular, <code class="docutils literal notranslate"><span class="pre">t:</span> <span class="pre">Tuple[int,</span> <span class="pre">...]</span> <span class="pre">=</span> <span class="pre">x,</span> <span class="pre">y,</span> <span class="pre">*z</span></code> is now
allowed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37126">bpo-37126</a>: All structseq objects are now tracked by the garbage collector.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37122">bpo-37122</a>: Make the <em>co_argcount</em> attribute of code objects represent the
total number of positional arguments (including positional-only
arguments). The value of <em>co_posonlyargcount</em> can be used to distinguish
which arguments are positional only, and the difference (<em>co_argcount</em> -
<em>co_posonlyargcount</em>) is the number of positional-or-keyword arguments.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20092">bpo-20092</a>: Constructors of <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>, <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> and
<a class="reference internal" href="../library/functions.html#complex" title="complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">complex</span></code></a> will now use the <a class="reference internal" href="../reference/datamodel.html#object.__index__" title="object.__index__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__index__()</span></code></a> special
method, if available and the corresponding method <a class="reference internal" href="../reference/datamodel.html#object.__int__" title="object.__int__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__int__()</span></code></a>,
<a class="reference internal" href="../reference/datamodel.html#object.__float__" title="object.__float__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__float__()</span></code></a> or <a class="reference internal" href="../reference/datamodel.html#object.__complex__" title="object.__complex__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__complex__()</span></code></a> is not available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37087">bpo-37087</a>: Add native thread ID (TID) support to OpenBSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26219">bpo-26219</a>: Implemented per opcode cache mechanism and <code class="docutils literal notranslate"><span class="pre">LOAD_GLOBAL</span></code>
instruction use it. <code class="docutils literal notranslate"><span class="pre">LOAD_GLOBAL</span></code> is now about 40% faster. Contributed
by Yury Selivanov, and Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37072">bpo-37072</a>: Fix crash in PyAST_FromNodeObject() when flags is NULL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37029">bpo-37029</a>: Freeing a great many small objects could take time quadratic in
the number of arenas, due to using linear search to keep <code class="docutils literal notranslate"><span class="pre">obmalloc.c</span></code>’s
list of usable arenas sorted by order of number of free memory pools.
This is accomplished without search now, leaving the worst-case time
linear in the number of arenas. For programs where this quite visibly
matters (typically with more than 100 thousand small objects alive
simultaneously), this can greatly reduce the time needed to release their
memory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26423">bpo-26423</a>: Fix possible overflow in <code class="docutils literal notranslate"><span class="pre">wrap_lenfunc()</span></code> when <code class="docutils literal notranslate"><span class="pre">sizeof(long)</span>
<span class="pre"><</span> <span class="pre">sizeof(Py_ssize_t)</span></code> (e.g., 64-bit Windows).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37050">bpo-37050</a>: Improve the AST for “debug” f-strings, which use ‘=’ to print
out the source of the expression being evaluated. Delete expr_text from
the FormattedValue node, and instead use a Constant string node (possibly
merged with adjacent constant expressions inside the f-string).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22385">bpo-22385</a>: The <code class="docutils literal notranslate"><span class="pre">bytes.hex</span></code>, <code class="docutils literal notranslate"><span class="pre">bytearray.hex</span></code>, and <code class="docutils literal notranslate"><span class="pre">memoryview.hex</span></code>
methods as well as the <code class="docutils literal notranslate"><span class="pre">binascii.hexlify</span></code> and <code class="docutils literal notranslate"><span class="pre">b2a_hex</span></code> functions now
have the ability to include an optional separator between hex bytes. This
functionality was inspired by MicroPython’s hexlify implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26836">bpo-26836</a>: Add <a class="reference internal" href="../library/os.html#os.memfd_create" title="os.memfd_create"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.memfd_create()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37032">bpo-37032</a>: Added new <code class="docutils literal notranslate"><span class="pre">replace()</span></code> method to the code type
(<a class="reference internal" href="../library/types.html#types.CodeType" title="types.CodeType"><code class="xref py py-class docutils literal notranslate"><span class="pre">types.CodeType</span></code></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37007">bpo-37007</a>: Implement <a class="reference internal" href="../library/socket.html#socket.if_nameindex" title="socket.if_nameindex"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.if_nameindex()</span></code></a>,
<a class="reference internal" href="../library/socket.html#socket.if_nametoindex" title="socket.if_nametoindex"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.if_nametoindex()</span></code></a>, and <a class="reference internal" href="../library/socket.html#socket.if_indextoname" title="socket.if_indextoname"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.if_indextoname()</span></code></a> on
Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36829">bpo-36829</a>: <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_WriteUnraisable" title="PyErr_WriteUnraisable"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_WriteUnraisable()</span></code></a> now creates a traceback object
if there is no current traceback. Moreover, call
<a class="reference internal" href="../c-api/exceptions.html#c.PyErr_NormalizeException" title="PyErr_NormalizeException"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_NormalizeException()</span></code></a> and <a class="reference internal" href="../c-api/exceptions.html#c.PyException_SetTraceback" title="PyException_SetTraceback"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyException_SetTraceback()</span></code></a>
to normalize the exception value. Ignore any error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36878">bpo-36878</a>: Only accept text after <code class="docutils literal notranslate"><span class="pre">#</span> <span class="pre">type:</span> <span class="pre">ignore</span></code> if the first
character is ASCII. This is to disallow things like <code class="docutils literal notranslate"><span class="pre">#</span> <span class="pre">type:</span> <span class="pre">ignoreé</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36878">bpo-36878</a>: Store text appearing after a <code class="docutils literal notranslate"><span class="pre">#</span> <span class="pre">type:</span> <span class="pre">ignore</span></code> comment in the
AST. For example a type ignore like <code class="docutils literal notranslate"><span class="pre">#</span> <span class="pre">type:</span> <span class="pre">ignore[E1000]</span></code> will have
the string <code class="docutils literal notranslate"><span class="pre">"[E1000]"</span></code> stored in its AST node.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2180">bpo-2180</a>: Treat line continuation at EOF as a <code class="docutils literal notranslate"><span class="pre">SyntaxError</span></code> by Anthony
Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36907">bpo-36907</a>: Fix a crash when calling a C function with a keyword dict
(<code class="docutils literal notranslate"><span class="pre">f(**kwargs)</span></code>) and changing the dict <code class="docutils literal notranslate"><span class="pre">kwargs</span></code> while that function is
running.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36946">bpo-36946</a>: Fix possible signed integer overflow when handling slices.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36826">bpo-36826</a>: Add NamedExpression kind support to ast_unparse.c</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1875">bpo-1875</a>: A <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> is now raised if a code blocks that will be
optimized away (e.g. if conditions that are always false) contains syntax
errors. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36027">bpo-36027</a>: Allow computation of modular inverses via three-argument
<code class="docutils literal notranslate"><span class="pre">pow</span></code>: the second argument is now permitted to be negative in the case
where the first and third arguments are relatively prime.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36861">bpo-36861</a>: Update the Unicode database to version 12.1.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28866">bpo-28866</a>: Avoid caching attributes of classes which type defines mro() to
avoid a hard cache invalidation problem.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36851">bpo-36851</a>: The <code class="docutils literal notranslate"><span class="pre">FrameType</span></code> stack is now correctly cleaned up if the
execution ends with a return and the stack is not empty.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34616">bpo-34616</a>: The <code class="docutils literal notranslate"><span class="pre">compile()</span></code> builtin functions now support the
<code class="docutils literal notranslate"><span class="pre">ast.PyCF_ALLOW_TOP_LEVEL_AWAIT</span></code> flag, which allow to compile sources
that contains top-level <code class="docutils literal notranslate"><span class="pre">await</span></code>, <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">with</span></code> or <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">for</span></code>. This
is useful to evaluate async-code from with an already async functions; for
example in a custom REPL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36842">bpo-36842</a>: Implement PEP 578, adding sys.audit, io.open_code and related
APIs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27639">bpo-27639</a>: Correct return type for UserList slicing operations. Patch by
Michael Blahay, Erick Cervantes, and vaultah</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36737">bpo-36737</a>: Move PyRuntimeState.warnings into per-interpreter state (via
“module state”).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36793">bpo-36793</a>: Removed <code class="docutils literal notranslate"><span class="pre">__str__</span></code> implementations from builtin types
<a class="reference internal" href="../library/functions.html#bool" title="bool"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>, <a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>, <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>, <a class="reference internal" href="../library/functions.html#complex" title="complex"><code class="xref py py-class docutils literal notranslate"><span class="pre">complex</span></code></a> and few
classes from the standard library. They now inherit <code class="docutils literal notranslate"><span class="pre">__str__()</span></code> from
<a class="reference internal" href="../library/functions.html#object" title="object"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36817">bpo-36817</a>: Add a <code class="docutils literal notranslate"><span class="pre">=</span></code> feature f-strings for debugging. This can precede
<code class="docutils literal notranslate"><span class="pre">!s</span></code>, <code class="docutils literal notranslate"><span class="pre">!r</span></code>, or <code class="docutils literal notranslate"><span class="pre">!a</span></code>. It produces the text of the expression,
followed by an equal sign, followed by the repr of the value of the
expression. So <code class="docutils literal notranslate"><span class="pre">f'{3*9+15=}'</span></code> would be equal to the string
<code class="docutils literal notranslate"><span class="pre">'3*9+15=42'</span></code>. If <code class="docutils literal notranslate"><span class="pre">=</span></code> is specified, the default conversion is set to
<code class="docutils literal notranslate"><span class="pre">!r</span></code>, unless a format spec is given, in which case the formatting
behavior is unchanged, and __format__ will be used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24048">bpo-24048</a>: Save the live exception during import.c’s <code class="docutils literal notranslate"><span class="pre">remove_module()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27987">bpo-27987</a>: pymalloc returns memory blocks aligned by 16 bytes, instead of
8 bytes, on 64-bit platforms to conform x86-64 ABI. Recent compilers
assume this alignment more often. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36601">bpo-36601</a>: A long-since-meaningless check for <code class="docutils literal notranslate"><span class="pre">getpid()</span> <span class="pre">==</span> <span class="pre">main_pid</span></code> was
removed from Python’s internal C signal handler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36594">bpo-36594</a>: Fix incorrect use of <code class="docutils literal notranslate"><span class="pre">%p</span></code> in format strings. Patch by Zackery
Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36045">bpo-36045</a>: <code class="docutils literal notranslate"><span class="pre">builtins.help()</span></code> now prefixes <code class="docutils literal notranslate"><span class="pre">async</span></code> for async functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36084">bpo-36084</a>: Add native thread ID (TID) to threading.Thread objects
(supported platforms: Windows, FreeBSD, Linux, macOS)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36035">bpo-36035</a>: Added fix for broken symlinks in combination with pathlib</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35983">bpo-35983</a>: Added new trashcan macros to deal with a double deallocation
that could occur when the <code class="docutils literal notranslate"><span class="pre">tp_dealloc</span></code> of a subclass calls the
<code class="docutils literal notranslate"><span class="pre">tp_dealloc</span></code> of a base class and that base class uses the trashcan
mechanism. Patch by Jeroen Demeyer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20602">bpo-20602</a>: Do not clear <a class="reference internal" href="../library/sys.html#sys.flags" title="sys.flags"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.flags</span></code></a> and <a class="reference internal" href="../library/sys.html#sys.float_info" title="sys.float_info"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.float_info</span></code></a>
during shutdown. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26826">bpo-26826</a>: Expose <code class="xref py py-func docutils literal notranslate"><span class="pre">copy_file_range()</span></code> as a low level API in the
<a class="reference internal" href="../library/os.html#module-os" title="os: Miscellaneous operating system interfaces."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32388">bpo-32388</a>: Remove cross-version binary compatibility requirement in
tp_flags.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31862">bpo-31862</a>: Port binascii to PEP 489 multiphase initialization. Patch by
Marcel Plch.</p></li>
</ul>
</section>
<section id="id478">
<h3>Library<a class="headerlink" href="#id478" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37128">bpo-37128</a>: Added <a class="reference internal" href="../library/math.html#math.perm" title="math.perm"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.perm()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37120">bpo-37120</a>: Add SSLContext.num_tickets to control the number of TLSv1.3
session tickets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12202">bpo-12202</a>: Fix the error handling in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">msilib.SummaryInformation.GetProperty()</span></code>. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26835">bpo-26835</a>: The fcntl module now contains file sealing constants for
sealing of memfds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29262">bpo-29262</a>: Add <code class="docutils literal notranslate"><span class="pre">get_origin()</span></code> and <code class="docutils literal notranslate"><span class="pre">get_args()</span></code> introspection helpers
to <code class="docutils literal notranslate"><span class="pre">typing</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12639">bpo-12639</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">msilib.Directory.start_component()</span></code> no longer fails if
<em>keyfile</em> is not <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36999">bpo-36999</a>: Add the <code class="docutils literal notranslate"><span class="pre">asyncio.Task.get_coro()</span></code> method to publicly expose
the tasks’s coroutine object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35246">bpo-35246</a>: Make <a class="reference internal" href="../library/asyncio-subprocess.html#asyncio.create_subprocess_exec" title="asyncio.create_subprocess_exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.create_subprocess_exec()</span></code></a> accept path-like
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35279">bpo-35279</a>: Change default <em>max_workers</em> of <code class="docutils literal notranslate"><span class="pre">ThreadPoolExecutor</span></code> from
<code class="docutils literal notranslate"><span class="pre">cpu_count()</span> <span class="pre">*</span> <span class="pre">5</span></code> to <code class="docutils literal notranslate"><span class="pre">min(32,</span> <span class="pre">cpu_count()</span> <span class="pre">+</span> <span class="pre">4)</span></code>. Previous value was
unreasonably large on many cores machines.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37076">bpo-37076</a>: <a class="reference internal" href="../library/_thread.html#thread.start_new_thread" title="_thread.start_new_thread"><code class="xref py py-func docutils literal notranslate"><span class="pre">_thread.start_new_thread()</span></code></a> now logs uncaught exception
raised by the function using <a class="reference internal" href="../library/sys.html#sys.unraisablehook" title="sys.unraisablehook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.unraisablehook()</span></code></a>, rather than
<a class="reference internal" href="../library/sys.html#sys.excepthook" title="sys.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.excepthook()</span></code></a>, so the hook gets access to the function which
raised the exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33725">bpo-33725</a>: On macOS, the <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> module now uses <em>spawn</em>
start method by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37054">bpo-37054</a>: Fix destructor <code class="xref py py-class docutils literal notranslate"><span class="pre">_pyio.BytesIO</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">_pyio.TextIOWrapper</span></code>: initialize their <code class="docutils literal notranslate"><span class="pre">_buffer</span></code> attribute as
soon as possible (in the class body), because it’s used by <code class="docutils literal notranslate"><span class="pre">__del__()</span></code>
which calls <code class="docutils literal notranslate"><span class="pre">close()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37058">bpo-37058</a>: PEP 544: Add <code class="docutils literal notranslate"><span class="pre">Protocol</span></code> and <code class="docutils literal notranslate"><span class="pre">@runtime_checkable</span></code> to the
<code class="docutils literal notranslate"><span class="pre">typing</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36933">bpo-36933</a>: The functions <code class="docutils literal notranslate"><span class="pre">sys.set_coroutine_wrapper</span></code> and
<code class="docutils literal notranslate"><span class="pre">sys.get_coroutine_wrapper</span></code> that were deprecated and marked for removal
in 3.8 have been removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37047">bpo-37047</a>: Handle late binding and attribute access in
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.AsyncMock" title="unittest.mock.AsyncMock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.AsyncMock</span></code></a> setup for autospeccing. Document newly
implemented async methods in <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.MagicMock" title="unittest.mock.MagicMock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.MagicMock</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37049">bpo-37049</a>: PEP 589: Add <code class="docutils literal notranslate"><span class="pre">TypedDict</span></code> to the <code class="docutils literal notranslate"><span class="pre">typing</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37046">bpo-37046</a>: PEP 586: Add <code class="docutils literal notranslate"><span class="pre">Literal</span></code> to the <code class="docutils literal notranslate"><span class="pre">typing</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37045">bpo-37045</a>: PEP 591: Add <code class="docutils literal notranslate"><span class="pre">Final</span></code> qualifier and <code class="docutils literal notranslate"><span class="pre">@final</span></code> decorator to
the <code class="docutils literal notranslate"><span class="pre">typing</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37035">bpo-37035</a>: Don’t log OSError based exceptions if a fatal error has
occurred in asyncio transport. Peer can generate almost any OSError, user
cannot avoid these exceptions by fixing own code. Errors are still
propagated to user code, it’s just logging them is pointless and pollute
asyncio logs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37001">bpo-37001</a>: <a class="reference internal" href="../library/symtable.html#symtable.symtable" title="symtable.symtable"><code class="xref py py-func docutils literal notranslate"><span class="pre">symtable.symtable()</span></code></a> now accepts the same input types for
source code as the built-in <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a> function. Patch by Dino
Viehland.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37028">bpo-37028</a>: Implement asyncio REPL</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37027">bpo-37027</a>: Return safe to use proxy socket object from
transport.get_extra_info(‘socket’)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32528">bpo-32528</a>: Make asyncio.CancelledError a BaseException.</p>
<p>This will address the common mistake many asyncio users make: an “except
Exception” clause breaking Tasks cancellation.</p>
<p>In addition to this change, we stop inheriting asyncio.TimeoutError and
asyncio.InvalidStateError from their concurrent.futures.* counterparts.
There’s no point for these exceptions to share the inheritance chain.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1230540">bpo-1230540</a>: Add a new <a class="reference internal" href="../library/threading.html#threading.excepthook" title="threading.excepthook"><code class="xref py py-func docutils literal notranslate"><span class="pre">threading.excepthook()</span></code></a> function which handles
uncaught <a class="reference internal" href="../library/threading.html#threading.Thread.run" title="threading.Thread.run"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.Thread.run()</span></code></a> exception. It can be overridden to
control how uncaught <a class="reference internal" href="../library/threading.html#threading.Thread.run" title="threading.Thread.run"><code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.Thread.run()</span></code></a> exceptions are handled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36996">bpo-36996</a>: Handle <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.patch" title="unittest.mock.patch"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.patch()</span></code></a> used as a decorator on async
functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37008">bpo-37008</a>: Add support for calling <a class="reference internal" href="../library/functions.html#next" title="next"><code class="xref py py-func docutils literal notranslate"><span class="pre">next()</span></code></a> with the mock resulting
from <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.mock_open" title="unittest.mock.mock_open"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.mock_open()</span></code></a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27737">bpo-27737</a>: Allow whitespace only header encoding in <code class="docutils literal notranslate"><span class="pre">email.header</span></code> - by
Batuhan Taskaya</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36969">bpo-36969</a>: PDB command <code class="docutils literal notranslate"><span class="pre">args</span></code> now display positional only arguments.
Patch contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36969">bpo-36969</a>: PDB command <code class="docutils literal notranslate"><span class="pre">args</span></code> now display keyword only arguments. Patch
contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36983">bpo-36983</a>: Add missing names to <code class="docutils literal notranslate"><span class="pre">typing.__all__</span></code>: <code class="docutils literal notranslate"><span class="pre">ChainMap</span></code>,
<code class="docutils literal notranslate"><span class="pre">ForwardRef</span></code>, <code class="docutils literal notranslate"><span class="pre">OrderedDict</span></code> - by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36972">bpo-36972</a>: Add SupportsIndex protocol to the typing module to allow type
checking to detect classes that can be passed to <code class="docutils literal notranslate"><span class="pre">hex()</span></code>, <code class="docutils literal notranslate"><span class="pre">oct()</span></code> and
<code class="docutils literal notranslate"><span class="pre">bin()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32972">bpo-32972</a>: Implement <code class="docutils literal notranslate"><span class="pre">unittest.IsolatedAsyncioTestCase</span></code> to help testing
asyncio-based code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36952">bpo-36952</a>: <a class="reference internal" href="../library/fileinput.html#fileinput.input" title="fileinput.input"><code class="xref py py-func docutils literal notranslate"><span class="pre">fileinput.input()</span></code></a> and <a class="reference internal" href="../library/fileinput.html#fileinput.FileInput" title="fileinput.FileInput"><code class="xref py py-class docutils literal notranslate"><span class="pre">fileinput.FileInput</span></code></a>
<strong>bufsize</strong> argument has been removed (was deprecated and ignored since
Python 3.6), and as a result the <strong>mode</strong> and <strong>openhook</strong> arguments have
been made keyword-only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36952">bpo-36952</a>: Starting with Python 3.3, importing ABCs from
<a class="reference internal" href="../library/collections.html#module-collections" title="collections: Container datatypes"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections</span></code></a> is deprecated, and import should be done from
<a class="reference internal" href="../library/collections.abc.html#module-collections.abc" title="collections.abc: Abstract base classes for containers"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a>. Still being able to import from <a class="reference internal" href="../library/collections.html#module-collections" title="collections: Container datatypes"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections</span></code></a>
was marked for removal in 3.8, but has been delayed to 3.9; documentation
and <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> clarified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36949">bpo-36949</a>: Implement __repr__ for WeakSet objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36948">bpo-36948</a>: Fix <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a> in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">urllib.request.URLopener.retrieve()</span></code>. Patch by Karthikeyan
Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33524">bpo-33524</a>: Fix the folding of email header when the max_line_length is 0
or None and the header contains non-ascii characters. Contributed by
Licht Takeuchi (@Licht-T).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24564">bpo-24564</a>: <a class="reference internal" href="../library/shutil.html#shutil.copystat" title="shutil.copystat"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copystat()</span></code></a> now ignores <a class="reference internal" href="../library/errno.html#errno.EINVAL" title="errno.EINVAL"><code class="xref py py-const docutils literal notranslate"><span class="pre">errno.EINVAL</span></code></a> on
<a class="reference internal" href="../library/os.html#os.setxattr" title="os.setxattr"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.setxattr()</span></code></a> which may occur when copying files on filesystems
without extended attributes support.</p>
<p>Original patch by Giampaolo Rodola, updated by Ying Wang.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36888">bpo-36888</a>: Python child processes can now access the status of their
parent process using multiprocessing.process.parent_process</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36921">bpo-36921</a>: Deprecate <code class="docutils literal notranslate"><span class="pre">@coroutine</span></code> for sake of <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">def</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25652">bpo-25652</a>: Fix bug in <code class="docutils literal notranslate"><span class="pre">__rmod__</span></code> of <code class="docutils literal notranslate"><span class="pre">UserString</span></code> - by Batuhan Taskaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36916">bpo-36916</a>: Remove a message about an unhandled exception in a task when
writer.write() is used without await and writer.drain() fails with an
exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36889">bpo-36889</a>: Introduce <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Stream</span></code> class that merges
<a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamReader" title="asyncio.StreamReader"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.StreamReader</span></code></a> and <a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamWriter" title="asyncio.StreamWriter"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.StreamWriter</span></code></a>
functionality. <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Stream</span></code> can work in readonly, writeonly and
readwrite modes. Provide <code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.connect()</span></code>,
<code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.connect_unix()</span></code>, <code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.connect_read_pipe()</span></code> and
<code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.connect_write_pipe()</span></code> factories to open
<code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Stream</span></code> connections. Provide <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.StreamServer</span></code>
and <code class="xref py py-class docutils literal notranslate"><span class="pre">UnixStreamServer</span></code> to serve servers with asyncio.Stream API.
Modify <a class="reference internal" href="../library/asyncio-subprocess.html#asyncio.create_subprocess_shell" title="asyncio.create_subprocess_shell"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.create_subprocess_shell()</span></code></a> and
<a class="reference internal" href="../library/asyncio-subprocess.html#asyncio.create_subprocess_exec" title="asyncio.create_subprocess_exec"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.create_subprocess_exec()</span></code></a> to use <code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Stream</span></code>
instead of deprecated <code class="xref py py-class docutils literal notranslate"><span class="pre">StreamReader</span></code> and <code class="xref py py-class docutils literal notranslate"><span class="pre">StreamWriter</span></code>.
Deprecate <a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamReader" title="asyncio.StreamReader"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.StreamReader</span></code></a> and <a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamWriter" title="asyncio.StreamWriter"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.StreamWriter</span></code></a>.
Deprecate usage of private classes, e.g.
<code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.FlowControlMixing</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.StreamReaderProtocol</span></code> outside of asyncio package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36845">bpo-36845</a>: Added validation of integer prefixes to the construction of IP
networks and interfaces in the ipaddress module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23378">bpo-23378</a>: Add an extend action to argparser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36867">bpo-36867</a>: Fix a bug making a SharedMemoryManager instance and its parent
process use two separate resource_tracker processes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23896">bpo-23896</a>: Adds a grammar to lib2to3.pygram that contains exec as a
function not as statement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36895">bpo-36895</a>: The function <code class="docutils literal notranslate"><span class="pre">time.clock()</span></code> was deprecated in 3.3 in favor of
<code class="docutils literal notranslate"><span class="pre">time.perf_counter()</span></code> and marked for removal in 3.8, it has removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35545">bpo-35545</a>: Fix asyncio discarding IPv6 scopes when ensuring hostname
resolutions internally</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36887">bpo-36887</a>: Add new function <a class="reference internal" href="../library/math.html#math.isqrt" title="math.isqrt"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.isqrt()</span></code></a> to compute integer square
roots.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34632">bpo-34632</a>: Introduce the <code class="docutils literal notranslate"><span class="pre">importlib.metadata</span></code> module with (provisional)
support for reading metadata from third-party packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36878">bpo-36878</a>: When using <code class="docutils literal notranslate"><span class="pre">type_comments=True</span></code> in <code class="docutils literal notranslate"><span class="pre">ast.parse</span></code>, treat <code class="docutils literal notranslate"><span class="pre">#</span>
<span class="pre">type:</span> <span class="pre">ignore</span></code> followed by a non-alphanumeric character and then arbitrary
text as a type ignore, instead of requiring nothing but whitespace or
another comment. This is to permit formations such as <code class="docutils literal notranslate"><span class="pre">#</span> <span class="pre">type:</span>
<span class="pre">ignore[E1000]</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36778">bpo-36778</a>: <code class="docutils literal notranslate"><span class="pre">cp65001</span></code> encoding (Windows code page 65001) becomes an alias
to <code class="docutils literal notranslate"><span class="pre">utf_8</span></code> encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36867">bpo-36867</a>: The multiprocessing.resource_tracker replaces the
multiprocessing.semaphore_tracker module. Other than semaphores,
resource_tracker also tracks shared_memory segments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30262">bpo-30262</a>: The <code class="docutils literal notranslate"><span class="pre">Cache</span></code> and <code class="docutils literal notranslate"><span class="pre">Statement</span></code> objects of the <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a>
module are not exposed to the user. Patch by Aviv Palivoda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24538">bpo-24538</a>: In <code class="docutils literal notranslate"><span class="pre">shutil.copystat()</span></code>, first copy extended file attributes
and then file permissions, since extended attributes can only be set on
the destination while it is still writeable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36829">bpo-36829</a>: Add new <a class="reference internal" href="../library/sys.html#sys.unraisablehook" title="sys.unraisablehook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.unraisablehook()</span></code></a> function which can be
overridden to control how “unraisable exceptions” are handled. It is
called when an exception has occurred but there is no way for Python to
handle it. For example, when a destructor raises an exception or during
garbage collection (<a class="reference internal" href="../library/gc.html#gc.collect" title="gc.collect"><code class="xref py py-func docutils literal notranslate"><span class="pre">gc.collect()</span></code></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36832">bpo-36832</a>: Introducing <code class="docutils literal notranslate"><span class="pre">zipfile.Path</span></code>, a pathlib-compatible wrapper for
traversing zip files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36814">bpo-36814</a>: Fix an issue where os.posix_spawnp() would incorrectly raise a
TypeError when file_actions is None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33110">bpo-33110</a>: Handle exceptions raised by functions added by
concurrent.futures add_done_callback correctly when the Future has already
completed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26903">bpo-26903</a>: Limit <code class="docutils literal notranslate"><span class="pre">max_workers</span></code> in <code class="docutils literal notranslate"><span class="pre">ProcessPoolExecutor</span></code> to 61 to work
around a WaitForMultipleObjects limitation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36813">bpo-36813</a>: Fix <a class="reference internal" href="../library/logging.handlers.html#logging.handlers.QueueListener" title="logging.handlers.QueueListener"><code class="xref py py-class docutils literal notranslate"><span class="pre">QueueListener</span></code></a> to call
<code class="docutils literal notranslate"><span class="pre">queue.task_done()</span></code> upon stopping. Patch by Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36806">bpo-36806</a>: Forbid creation of asyncio stream objects like StreamReader,
StreamWriter, Process, and their protocols outside of asyncio package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36802">bpo-36802</a>: Provide both sync and async calls for StreamWriter.write() and
StreamWriter.close()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36801">bpo-36801</a>: Properly handle SSL connection closing in asyncio
StreamWriter.drain() call.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36785">bpo-36785</a>: Implement PEP 574 (pickle protocol 5 with out-of-band buffers).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36772">bpo-36772</a>: functools.lru_cache() can now be used as a straight decorator
in addition to its existing usage as a function that returns a decorator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6584">bpo-6584</a>: Add a <a class="reference internal" href="../library/gzip.html#gzip.BadGzipFile" title="gzip.BadGzipFile"><code class="xref py py-exc docutils literal notranslate"><span class="pre">BadGzipFile</span></code></a> exception to the <a class="reference internal" href="../library/gzip.html#module-gzip" title="gzip: Interfaces for gzip compression and decompression using file objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gzip</span></code></a>
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36748">bpo-36748</a>: Optimized write buffering in C implementation of
<code class="docutils literal notranslate"><span class="pre">TextIOWrapper</span></code>. Writing ASCII string to <code class="docutils literal notranslate"><span class="pre">TextIOWrapper</span></code> with ascii,
latin1, or utf-8 encoding is about 20% faster. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8138">bpo-8138</a>: Don’t mark <code class="docutils literal notranslate"><span class="pre">wsgiref.simple_server.SimpleServer</span></code> as
multi-threaded since <code class="docutils literal notranslate"><span class="pre">wsgiref.simple_server.WSGIServer</span></code> is
single-threaded.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22640">bpo-22640</a>: <a class="reference internal" href="../library/py_compile.html#py_compile.compile" title="py_compile.compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">py_compile.compile()</span></code></a> now supports silent mode. Patch by
Joannah Nanjekye</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29183">bpo-29183</a>: Fix double exceptions in <a class="reference internal" href="../library/wsgiref.html#wsgiref.handlers.BaseHandler" title="wsgiref.handlers.BaseHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">wsgiref.handlers.BaseHandler</span></code></a>
by calling its <code class="xref py py-meth docutils literal notranslate"><span class="pre">close()</span></code> method only
when no exception is raised.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36548">bpo-36548</a>: Improved the repr of regular expression flags.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36542">bpo-36542</a>: The signature of Python functions can now be overridden by
specifying the <code class="docutils literal notranslate"><span class="pre">__text_signature__</span></code> attribute.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36533">bpo-36533</a>: Reinitialize logging.Handler locks in forked child processes
instead of attempting to acquire them all in the parent before forking
only to be released in the child process. The acquire/release pattern was
leading to deadlocks in code that has implemented any form of chained
logging handlers that depend upon one another as the lock acquisition
order cannot be guaranteed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35252">bpo-35252</a>: Throw a TypeError instead of an AssertionError when using an
invalid type annotation with singledispatch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35900">bpo-35900</a>: Allow reduction methods to return a 6-item tuple where the 6th
item specifies a custom state-setting method that’s called instead of the
regular <code class="docutils literal notranslate"><span class="pre">__setstate__</span></code> method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35900">bpo-35900</a>: enable custom reduction callback registration for functions and
classes in _pickle.c, using the new Pickler’s attribute
<code class="docutils literal notranslate"><span class="pre">reducer_override</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36368">bpo-36368</a>: Fix a bug crashing SharedMemoryManager instances in interactive
sessions after a ctrl-c (KeyboardInterrupt) was sent</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Fix mmap fail for VxWorks</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27497">bpo-27497</a>: <a class="reference internal" href="../library/csv.html#csv.DictWriter.writeheader" title="csv.DictWriter.writeheader"><code class="xref py py-meth docutils literal notranslate"><span class="pre">csv.DictWriter.writeheader()</span></code></a> now returns the return value
of the underlying <code class="xref py py-meth docutils literal notranslate"><span class="pre">csv.Writer.writerow()</span></code> method. Patch contributed by
Ashish Nitin Patil.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36239">bpo-36239</a>: Parsing .mo files now ignores comments starting and ending with
#-#-#-#-#.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26707">bpo-26707</a>: Enable plistlib to read and write binary plist files that were
created as a KeyedArchive file. Specifically, this allows the plistlib to
process 0x80 tokens as UID objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Add posix module support for VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35125">bpo-35125</a>: Asyncio: Remove inner callback on outer cancellation in shield</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35721">bpo-35721</a>: Fix <code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.SelectorEventLoop.subprocess_exec()</span></code> leaks
file descriptors if <code class="docutils literal notranslate"><span class="pre">Popen</span></code> fails and called with
<code class="docutils literal notranslate"><span class="pre">stdin=subprocess.PIPE</span></code>. Patch by Niklas Fiekas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31855">bpo-31855</a>: <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.mock_open" title="unittest.mock.mock_open"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.mock_open()</span></code></a> results now respects the
argument of read([size]). Patch contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35431">bpo-35431</a>: Implement <a class="reference internal" href="../library/math.html#math.comb" title="math.comb"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.comb()</span></code></a> that returns binomial coefficient,
that computes the number of ways to choose k items from n items without
repetition and without order. Patch by Yash Aggarwal and Keller Fuchs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26660">bpo-26660</a>: Fixed permission errors in
<a class="reference internal" href="../library/tempfile.html#tempfile.TemporaryDirectory" title="tempfile.TemporaryDirectory"><code class="xref py py-class docutils literal notranslate"><span class="pre">TemporaryDirectory</span></code></a> clean up. Previously
<code class="docutils literal notranslate"><span class="pre">TemporaryDirectory.cleanup()</span></code> failed when non-writeable or
non-searchable files or directories were created inside a temporary
directory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34271">bpo-34271</a>: Add debugging helpers to ssl module. It’s now possible to dump
key material and to trace TLS protocol. The default and stdlib contexts
also support SSLKEYLOGFILE env var.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26467">bpo-26467</a>: Added AsyncMock to support using unittest to mock asyncio
coroutines. Patch by Lisa Roach.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33569">bpo-33569</a>: dataclasses.InitVar: Exposes the type used to create the init
var.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34424">bpo-34424</a>: Fix serialization of messages containing encoded strings when
the policy.linesep is set to a multi-character string. Patch by Jens
Troeger.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34303">bpo-34303</a>: Performance of <a class="reference internal" href="../library/functools.html#functools.reduce" title="functools.reduce"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.reduce()</span></code></a> is slightly improved.
Patch by Sergey Fedoseev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33361">bpo-33361</a>: Fix a bug in <a class="reference internal" href="../library/codecs.html#codecs.StreamRecoder" title="codecs.StreamRecoder"><code class="xref py py-class docutils literal notranslate"><span class="pre">codecs.StreamRecoder</span></code></a> where seeking might
leave old data in a buffer and break subsequent read calls. Patch by Ammar
Askar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22454">bpo-22454</a>: The <a class="reference internal" href="../library/shlex.html#module-shlex" title="shlex: Simple lexical analysis for Unix shell-like languages."><code class="xref py py-mod docutils literal notranslate"><span class="pre">shlex</span></code></a> module now exposes <a class="reference internal" href="../library/shlex.html#shlex.join" title="shlex.join"><code class="xref py py-func docutils literal notranslate"><span class="pre">shlex.join()</span></code></a>, the
inverse of <a class="reference internal" href="../library/shlex.html#shlex.split" title="shlex.split"><code class="xref py py-func docutils literal notranslate"><span class="pre">shlex.split()</span></code></a>. Patch by Bo Bayles.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31922">bpo-31922</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.AbstractEventLoop.create_datagram_endpoint()</span></code>: Do
not connect UDP socket when broadcast is allowed. This allows to receive
replies after a UDP broadcast.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24882">bpo-24882</a>: Change ThreadPoolExecutor to use existing idle threads before
spinning up new ones.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31961">bpo-31961</a>: Added support for bytes and path-like objects in
<a class="reference internal" href="../library/subprocess.html#subprocess.Popen" title="subprocess.Popen"><code class="xref py py-func docutils literal notranslate"><span class="pre">subprocess.Popen()</span></code></a> on Windows. The <em>args</em> parameter now accepts a
<a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like object</span></a> if <em>shell</em> is <code class="docutils literal notranslate"><span class="pre">False</span></code> and a sequence containing
bytes and path-like objects. The <em>executable</em> parameter now accepts a
bytes and <a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like object</span></a>. The <em>cwd</em> parameter now accepts a
bytes object. Based on patch by Anders Lorentsen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33123">bpo-33123</a>: <a class="reference internal" href="../library/pathlib.html#pathlib.Path.unlink" title="pathlib.Path.unlink"><code class="xref py py-class docutils literal notranslate"><span class="pre">pathlib.Path.unlink</span></code></a> now accepts a <em>missing_ok</em>
parameter to avoid a <a class="reference internal" href="../library/exceptions.html#FileNotFoundError" title="FileNotFoundError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">FileNotFoundError</span></code></a> from being raised. Patch by
Robert Buchholz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32941">bpo-32941</a>: Allow <a class="reference internal" href="../library/mmap.html#mmap.mmap" title="mmap.mmap"><code class="xref py py-class docutils literal notranslate"><span class="pre">mmap.mmap</span></code></a> objects to access the madvise() system
call (through <a class="reference internal" href="../library/mmap.html#mmap.mmap.madvise" title="mmap.mmap.madvise"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mmap.mmap.madvise()</span></code></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22102">bpo-22102</a>: Added support for ZIP files with disks set to 0. Such files are
commonly created by builtin tools on Windows when use ZIP64 extension.
Patch by Francisco Facioni.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32515">bpo-32515</a>: trace.py can now run modules via python3 -m trace -t –module
module_name</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32299">bpo-32299</a>: Changed <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.patch.dict" title="unittest.mock.patch.dict"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.patch.dict()</span></code></a> to return the patched
dictionary when used as context manager. Patch by Vadim Tsander.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27141">bpo-27141</a>: Added a <code class="docutils literal notranslate"><span class="pre">__copy__()</span></code> to <code class="docutils literal notranslate"><span class="pre">collections.UserList</span></code> and
<code class="docutils literal notranslate"><span class="pre">collections.UserDict</span></code> in order to correctly implement shallow copying
of the objects. Patch by Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31829">bpo-31829</a>: <code class="docutils literal notranslate"><span class="pre">\r</span></code>, <code class="docutils literal notranslate"><span class="pre">\0</span></code> and <code class="docutils literal notranslate"><span class="pre">\x1a</span></code> (end-of-file on Windows) are now
escaped in protocol 0 pickles of Unicode strings. This allows to load them
without loss from files open in text mode in Python 2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23395">bpo-23395</a>: <code class="docutils literal notranslate"><span class="pre">_thread.interrupt_main()</span></code> now avoids setting the Python
error status if the <code class="docutils literal notranslate"><span class="pre">SIGINT</span></code> signal is ignored or not handled by Python.</p></li>
</ul>
</section>
<section id="id479">
<h3>Documentation<a class="headerlink" href="#id479" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36896">bpo-36896</a>: Clarify that some types have unstable constructor signature
between Python versions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36686">bpo-36686</a>: Improve documentation of the stdin, stdout, and stderr
arguments of the <code class="docutils literal notranslate"><span class="pre">asyncio.subprocess_exec</span></code> function to specify which
values are supported. Also mention that decoding as text is not supported.</p>
<p>Add a few tests to verify that the various values passed to the std*
arguments actually work.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36984">bpo-36984</a>: Improve version added references in <code class="docutils literal notranslate"><span class="pre">typing</span></code> module - by
Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36868">bpo-36868</a>: What’s new now mentions SSLContext.hostname_checks_common_name
instead of SSLContext.host_flags.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35924">bpo-35924</a>: Add a note to the <code class="docutils literal notranslate"><span class="pre">curses.addstr()</span></code> documentation to warn
that multiline strings can cause segfaults because of an ncurses bug.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36783">bpo-36783</a>: Added C API Documentation for Time_FromTimeAndFold and
PyDateTime_FromDateAndTimeAndFold as per PEP 495. Patch by Edison
Abahurire.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36797">bpo-36797</a>: More of the legacy distutils documentation has been either
pruned, or else more clearly marked as being retained solely until the
setuptools documentation covers it independently.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22865">bpo-22865</a>: Add detail to the documentation on the <code class="docutils literal notranslate"><span class="pre">pty.spawn</span></code> function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35397">bpo-35397</a>: Remove deprecation and document urllib.parse.unwrap(). Patch
contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32995">bpo-32995</a>: Added the context variable in glossary.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33519">bpo-33519</a>: Clarify that <code class="docutils literal notranslate"><span class="pre">copy()</span></code> is not part of the <code class="docutils literal notranslate"><span class="pre">MutableSequence</span></code>
ABC.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33482">bpo-33482</a>: Make <code class="docutils literal notranslate"><span class="pre">codecs.StreamRecoder.writelines</span></code> take a list of bytes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25735">bpo-25735</a>: Added documentation for func factorial to indicate that returns
integer values</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20285">bpo-20285</a>: Expand object.__doc__ (docstring) to make it clearer. Modify
pydoc.py so that help(object) lists object methods (for other classes,
help omits methods of the object base class.)</p></li>
</ul>
</section>
<section id="id480">
<h3>Tests<a class="headerlink" href="#id480" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37069">bpo-37069</a>: Modify test_coroutines, test_cprofile, test_generators,
test_raise, test_ssl and test_yield_from to use
<a class="reference internal" href="../library/test.html#test.support.catch_unraisable_exception" title="test.support.catch_unraisable_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.catch_unraisable_exception()</span></code></a> rather than
<a class="reference internal" href="../library/test.html#test.support.captured_stderr" title="test.support.captured_stderr"><code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.captured_stderr()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37098">bpo-37098</a>: Fix test_memfd_create on older Linux Kernels.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37081">bpo-37081</a>: Test with OpenSSL 1.1.1c</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36829">bpo-36829</a>: Add <a class="reference internal" href="../library/test.html#test.support.catch_unraisable_exception" title="test.support.catch_unraisable_exception"><code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.catch_unraisable_exception()</span></code></a>: context
manager catching unraisable exception using <a class="reference internal" href="../library/sys.html#sys.unraisablehook" title="sys.unraisablehook"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.unraisablehook()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36915">bpo-36915</a>: The main regrtest process now always removes all temporary
directories of worker processes even if they crash or if they are killed
on KeyboardInterrupt (CTRL+c).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36719">bpo-36719</a>: “python3 -m test -jN …” now continues the execution of next
tests when a worker process crash (CHILD_ERROR state). Previously, the
test suite stopped immediately. Use –failfast to stop at the first error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36816">bpo-36816</a>: Update Lib/test/selfsigned_pythontestdotnet.pem to match
self-signed.pythontest.net’s new TLS certificate.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35925">bpo-35925</a>: Skip httplib and nntplib networking tests when they would
otherwise fail due to a modern OS or distro with a default OpenSSL policy
of rejecting connections to servers with weak certificates.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36782">bpo-36782</a>: Add tests for several C API functions in the <a class="reference internal" href="../library/datetime.html#module-datetime" title="datetime: Basic date and time types."><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code></a>
module. Patch by Edison Abahurire.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36342">bpo-36342</a>: Fix test_multiprocessing in test_venv if platform lacks
functioning sem_open.</p></li>
</ul>
</section>
<section id="id481">
<h3>Build<a class="headerlink" href="#id481" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36721">bpo-36721</a>: To embed Python into an application, a new <code class="docutils literal notranslate"><span class="pre">--embed</span></code> option
must be passed to <code class="docutils literal notranslate"><span class="pre">python3-config</span> <span class="pre">--libs</span> <span class="pre">--embed</span></code> to get <code class="docutils literal notranslate"><span class="pre">-lpython3.8</span></code>
(link the application to libpython). To support both 3.8 and older, try
<code class="docutils literal notranslate"><span class="pre">python3-config</span> <span class="pre">--libs</span> <span class="pre">--embed</span></code> first and fallback to <code class="docutils literal notranslate"><span class="pre">python3-config</span>
<span class="pre">--libs</span></code> (without <code class="docutils literal notranslate"><span class="pre">--embed</span></code>) if the previous command fails.</p>
<p>Add a pkg-config <code class="docutils literal notranslate"><span class="pre">python-3.8-embed</span></code> module to embed Python into an
application: <code class="docutils literal notranslate"><span class="pre">pkg-config</span> <span class="pre">python-3.8-embed</span> <span class="pre">--libs</span></code> includes
<code class="docutils literal notranslate"><span class="pre">-lpython3.8</span></code>. To support both 3.8 and older, try <code class="docutils literal notranslate"><span class="pre">pkg-config</span>
<span class="pre">python-X.Y-embed</span> <span class="pre">--libs</span></code> first and fallback to <code class="docutils literal notranslate"><span class="pre">pkg-config</span> <span class="pre">python-X.Y</span>
<span class="pre">--libs</span></code> (without <code class="docutils literal notranslate"><span class="pre">--embed</span></code>) if the previous command fails (replace
<code class="docutils literal notranslate"><span class="pre">X.Y</span></code> with the Python version).</p>
<p>On the other hand, <code class="docutils literal notranslate"><span class="pre">pkg-config</span> <span class="pre">python3.8</span> <span class="pre">--libs</span></code> no longer contains
<code class="docutils literal notranslate"><span class="pre">-lpython3.8</span></code>. C extensions must not be linked to libpython (except on
Android, case handled by the script); this change is backward incompatible
on purpose.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36786">bpo-36786</a>: “make install” now runs compileall in parallel.</p></li>
</ul>
</section>
<section id="id482">
<h3>Windows<a class="headerlink" href="#id482" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36965">bpo-36965</a>: include of STATUS_CONTROL_C_EXIT without depending on MSC
compiler</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35926">bpo-35926</a>: Update to OpenSSL 1.1.1b for Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29883">bpo-29883</a>: Add Windows support for UDP transports for the Proactor Event
Loop. Patch by Adam Meily.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33407">bpo-33407</a>: The <a class="reference internal" href="../c-api/intro.html#c.Py_DEPRECATED" title="Py_DEPRECATED"><code class="xref c c-macro docutils literal notranslate"><span class="pre">Py_DEPRECATED()</span></code></a> macro has been implemented for
MSVC.</p></li>
</ul>
</section>
<section id="id483">
<h3>macOS<a class="headerlink" href="#id483" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36231">bpo-36231</a>: Support building Python on macOS without /usr/include
installed. As of macOS 10.14, system header files are only available
within an SDK provided by either the Command Line Tools or the Xcode app.</p></li>
</ul>
</section>
<section id="id484">
<h3>IDLE<a class="headerlink" href="#id484" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35610">bpo-35610</a>: Replace now redundant .context_use_ps1 with .prompt_last_line.
This finishes change started in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31858">bpo-31858</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37038">bpo-37038</a>: Make idlelib.run runnable; add test clause.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36958">bpo-36958</a>: Print any argument other than None or int passed to SystemExit
or sys.exit().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36807">bpo-36807</a>: When saving a file, call os.fsync() so bits are flushed to e.g.
USB drive.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32411">bpo-32411</a>: In browser.py, remove extraneous sorting by line number since
dictionary was created in line number order.</p></li>
</ul>
</section>
<section id="id485">
<h3>Tools/Demos<a class="headerlink" href="#id485" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37053">bpo-37053</a>: Handle strings like u”bar” correctly in
Tools/parser/unparse.py. Patch by Chih-Hsuan Yen.</p></li>
</ul>
</section>
<section id="id486">
<h3>C API<a class="headerlink" href="#id486" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36763">bpo-36763</a>: Implement the <span class="target" id="index-346"></span><a class="pep reference external" href="https://peps.python.org/pep-0587/"><strong>PEP 587</strong></a> “Python Initialization Configuration”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36379">bpo-36379</a>: Fix crashes when attempting to use the <em>modulo</em> parameter when
<code class="docutils literal notranslate"><span class="pre">__ipow__</span></code> is implemented in C.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=37107">bpo-37107</a>: Update <a class="reference internal" href="../c-api/call.html#c.PyObject_CallMethodObjArgs" title="PyObject_CallMethodObjArgs"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_CallMethodObjArgs()</span></code></a> and
<code class="docutils literal notranslate"><span class="pre">_PyObject_CallMethodIdObjArgs</span></code> to use <code class="docutils literal notranslate"><span class="pre">_PyObject_GetMethod</span></code> to avoid
creating a bound method object in many cases. Patch by Michael J.
Sullivan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36974">bpo-36974</a>: Implement <span class="target" id="index-347"></span><a class="pep reference external" href="https://peps.python.org/pep-0590/"><strong>PEP 590</strong></a>: Vectorcall: a fast calling protocol for
CPython. This is a new protocol to optimize calls of custom callable
objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36763">bpo-36763</a>: <code class="docutils literal notranslate"><span class="pre">Py_Main()</span></code> now returns the exitcode rather than calling
<code class="docutils literal notranslate"><span class="pre">Py_Exit(exitcode)</span></code> when calling <code class="docutils literal notranslate"><span class="pre">PyErr_Print()</span></code> if the current
exception type is <code class="docutils literal notranslate"><span class="pre">SystemExit</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36922">bpo-36922</a>: Add new type flag <code class="docutils literal notranslate"><span class="pre">Py_TPFLAGS_METHOD_DESCRIPTOR</span></code> for objects
behaving like unbound methods. These are objects supporting the
optimization given by the <code class="docutils literal notranslate"><span class="pre">LOAD_METHOD</span></code>/<code class="docutils literal notranslate"><span class="pre">CALL_METHOD</span></code> opcodes. See PEP
590.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36728">bpo-36728</a>: The <code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_ReInitThreads()</span></code> function has been removed
from the C API. It should not be called explicitly: use
<a class="reference internal" href="../c-api/sys.html#c.PyOS_AfterFork_Child" title="PyOS_AfterFork_Child"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyOS_AfterFork_Child()</span></code></a> instead.</p></li>
</ul>
</section>
</section>
<section id="python-3-8-0-alpha-4">
<h2>Python 3.8.0 alpha 4<a class="headerlink" href="#python-3-8-0-alpha-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2019-05-06</em></p>
<section id="id487">
<h3>Security<a class="headerlink" href="#id487" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36742">bpo-36742</a>: Fixes mishandling of pre-normalization characters in
urlsplit().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30458">bpo-30458</a>: Address <span class="target" id="index-348"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2019-9740"><strong>CVE 2019-9740</strong></a> by disallowing URL paths with embedded
whitespace or control characters through into the underlying http client
request. Such potentially malicious header injection URLs now cause an
http.client.InvalidURL exception to be raised.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35755">bpo-35755</a>: <a class="reference internal" href="../library/shutil.html#shutil.which" title="shutil.which"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.which()</span></code></a> now uses <code class="docutils literal notranslate"><span class="pre">os.confstr("CS_PATH")</span></code> if
available and if the <span class="target" id="index-349"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PATH</span></code> environment variable is not set.
Remove also the current directory from <code class="xref py py-data docutils literal notranslate"><span class="pre">posixpath.defpath</span></code>. On Unix,
<a class="reference internal" href="../library/shutil.html#shutil.which" title="shutil.which"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.which()</span></code></a> and the <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module no longer search the
executable in the current directory if the <span class="target" id="index-350"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PATH</span></code> environment
variable is not set.</p></li>
</ul>
</section>
<section id="id488">
<h3>Core and Builtins<a class="headerlink" href="#id488" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36722">bpo-36722</a>: In debug build, import now also looks for C extensions compiled
in release mode and for C extensions compiled in the stable ABI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32849">bpo-32849</a>: Fix Python Initialization code on FreeBSD to detect properly
when stdin file descriptor (fd 0) is invalid.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36623">bpo-36623</a>: Remove parser headers and related function declarations that
lack implementations after the removal of pgen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20180">bpo-20180</a>: <code class="docutils literal notranslate"><span class="pre">dict.pop()</span></code> is now up to 33% faster thanks to Argument
Clinic. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36611">bpo-36611</a>: Debug memory allocators: disable serialno field by default from
debug hooks on Python memory allocators to reduce the memory footprint by
5%. Enable <a class="reference internal" href="../library/tracemalloc.html#module-tracemalloc" title="tracemalloc: Trace memory allocations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tracemalloc</span></code></a> to get the traceback where a memory block
has been allocated when a fatal memory error is logged to decide where to
put a breakpoint. Compile Python with <code class="docutils literal notranslate"><span class="pre">PYMEM_DEBUG_SERIALNO</span></code> defined to
get back the field.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36588">bpo-36588</a>: On AIX, <a class="reference internal" href="../library/sys.html#sys.platform" title="sys.platform"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.platform</span></code></a> doesn’t contain the major version
anymore. Always return <code class="docutils literal notranslate"><span class="pre">'aix'</span></code>, instead of <code class="docutils literal notranslate"><span class="pre">'aix3'</span></code> .. <code class="docutils literal notranslate"><span class="pre">'aix7'</span></code>.
Since older Python versions include the version number, it is recommended
to always use <code class="docutils literal notranslate"><span class="pre">sys.platform.startswith('aix')</span></code>. Contributed by M. Felt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36549">bpo-36549</a>: Change str.capitalize to use titlecase for the first character
instead of uppercase.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36540">bpo-36540</a>: Implement <span class="target" id="index-351"></span><a class="pep reference external" href="https://peps.python.org/pep-0570/"><strong>PEP 570</strong></a> (Python positional-only parameters). Patch
by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36475">bpo-36475</a>: <code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_AcquireLock()</span></code> and
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_AcquireThread()</span></code> now terminate the current thread if called
while the interpreter is finalizing, making them consistent with
<a class="reference internal" href="../c-api/init.html#c.PyEval_RestoreThread" title="PyEval_RestoreThread"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyEval_RestoreThread()</span></code></a>, <a class="reference internal" href="../c-api/init.html#c.Py_END_ALLOW_THREADS" title="Py_END_ALLOW_THREADS"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_END_ALLOW_THREADS()</span></code></a>, and
<a class="reference internal" href="../c-api/init.html#c.PyGILState_Ensure" title="PyGILState_Ensure"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGILState_Ensure()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36504">bpo-36504</a>: Fix signed integer overflow in _ctypes.c’s
<code class="docutils literal notranslate"><span class="pre">PyCArrayType_new()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20844">bpo-20844</a>: Fix running script with encoding cookie and LF line ending may
fail on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24214">bpo-24214</a>: Fixed support of the surrogatepass error handler in the UTF-8
incremental decoder.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36452">bpo-36452</a>: Changing <code class="docutils literal notranslate"><span class="pre">dict</span></code> keys during iteration of the dict itself,
<code class="docutils literal notranslate"><span class="pre">keys()</span></code>, <code class="docutils literal notranslate"><span class="pre">values()</span></code>, or <code class="docutils literal notranslate"><span class="pre">items()</span></code> will now be detected in certain
corner cases where keys are deleted/added so that the number of keys isn’t
changed. A <code class="docutils literal notranslate"><span class="pre">RuntimeError</span></code> will be raised after <code class="docutils literal notranslate"><span class="pre">len(dict)</span></code> iterations.
Contributed by Thomas Perl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36459">bpo-36459</a>: Fix a possible double <code class="docutils literal notranslate"><span class="pre">PyMem_FREE()</span></code> due to tokenizer.c’s
<code class="docutils literal notranslate"><span class="pre">tok_nextc()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36433">bpo-36433</a>: Fixed TypeError message in classmethoddescr_call.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36430">bpo-36430</a>: Fix a possible reference leak in <a class="reference internal" href="../library/itertools.html#itertools.count" title="itertools.count"><code class="xref py py-func docutils literal notranslate"><span class="pre">itertools.count()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36440">bpo-36440</a>: Include node names in <code class="docutils literal notranslate"><span class="pre">ParserError</span></code> messages, instead of
numeric IDs. Patch by A. Skrobov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36143">bpo-36143</a>: Regenerate <a class="reference internal" href="../library/keyword.html#module-keyword" title="keyword: Test whether a string is a keyword in Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">keyword</span></code></a> from the Grammar and Tokens file
using pgen. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18372">bpo-18372</a>: Add missing <a class="reference internal" href="../c-api/gcsupport.html#c.PyObject_GC_Track" title="PyObject_GC_Track"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_GC_Track()</span></code></a> calls in the
<a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a> module. Patch by Zackery Spytz.</p></li>
</ul>
</section>
<section id="id489">
<h3>Library<a class="headerlink" href="#id489" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35952">bpo-35952</a>: Fix pythoninfo when the compiler is missing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28238">bpo-28238</a>: The <code class="docutils literal notranslate"><span class="pre">.find*()</span></code> methods of xml.etree.ElementTree can now
search for wildcards like <code class="docutils literal notranslate"><span class="pre">{*}tag</span></code> and <code class="docutils literal notranslate"><span class="pre">{ns}*</span></code> that match a tag in any
namespace or all tags in a namespace. Patch by Stefan Behnel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26978">bpo-26978</a>: <code class="docutils literal notranslate"><span class="pre">pathlib.path.link_to()</span></code> is now implemented. It creates a
hard link pointing to a path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1613500">bpo-1613500</a>: <a class="reference internal" href="../library/fileinput.html#fileinput.FileInput" title="fileinput.FileInput"><code class="xref py py-class docutils literal notranslate"><span class="pre">fileinput.FileInput</span></code></a> now uses the input file mode to
correctly set the output file mode (previously it was hardcoded to
<code class="docutils literal notranslate"><span class="pre">'w'</span></code>) when <code class="docutils literal notranslate"><span class="pre">inplace=True</span></code> is passed to its constructor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36734">bpo-36734</a>: Fix compilation of <code class="docutils literal notranslate"><span class="pre">faulthandler.c</span></code> on HP-UX. Initialize
<code class="docutils literal notranslate"><span class="pre">stack_t</span> <span class="pre">current_stack</span></code> to zero using <code class="docutils literal notranslate"><span class="pre">memset()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13611">bpo-13611</a>: The xml.etree.ElementTree packages gained support for C14N 2.0
serialisation. Patch by Stefan Behnel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36669">bpo-36669</a>: Add missing matrix multiplication operator support to
weakref.proxy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36676">bpo-36676</a>: The XMLParser() in xml.etree.ElementTree provides namespace
prefix context to the parser target if it defines the callback methods
“start_ns()” and/or “end_ns()”. Patch by Stefan Behnel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36673">bpo-36673</a>: The TreeBuilder and XMLPullParser in xml.etree.ElementTree
gained support for parsing comments and processing instructions. Patch by
Stefan Behnel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36650">bpo-36650</a>: The C version of functools.lru_cache() was treating calls with
an empty <code class="docutils literal notranslate"><span class="pre">**kwargs</span></code> dictionary as being distinct from calls with no
keywords at all. This did not result in an incorrect answer, but it did
trigger an unexpected cache miss.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28552">bpo-28552</a>: Fix <code class="docutils literal notranslate"><span class="pre">distutils.sysconfig</span></code> if <a class="reference internal" href="../library/sys.html#sys.executable" title="sys.executable"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.executable</span></code></a> is
<code class="docutils literal notranslate"><span class="pre">None</span></code> or an empty string: use <a class="reference internal" href="../library/os.html#os.getcwd" title="os.getcwd"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.getcwd()</span></code></a> to initialize
<code class="docutils literal notranslate"><span class="pre">project_base</span></code>. Fix also the distutils build command: don’t use
<a class="reference internal" href="../library/sys.html#sys.executable" title="sys.executable"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.executable</span></code></a> if it is <code class="docutils literal notranslate"><span class="pre">None</span></code> or an empty string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35755">bpo-35755</a>: <a class="reference internal" href="../library/shutil.html#shutil.which" title="shutil.which"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.which()</span></code></a> and <code class="docutils literal notranslate"><span class="pre">distutils.spawn.find_executable</span></code>
now use <code class="docutils literal notranslate"><span class="pre">os.confstr("CS_PATH")</span></code> if available instead of
<a class="reference internal" href="../library/os.html#os.defpath" title="os.defpath"><code class="xref py py-data docutils literal notranslate"><span class="pre">os.defpath</span></code></a>, if the <code class="docutils literal notranslate"><span class="pre">PATH</span></code> environment variable is not set.
Moreover, don’t use <code class="docutils literal notranslate"><span class="pre">os.confstr("CS_PATH")</span></code> nor <a class="reference internal" href="../library/os.html#os.defpath" title="os.defpath"><code class="xref py py-data docutils literal notranslate"><span class="pre">os.defpath</span></code></a> if
the <code class="docutils literal notranslate"><span class="pre">PATH</span></code> environment variable is set to an empty string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25430">bpo-25430</a>: improve performance of <code class="docutils literal notranslate"><span class="pre">IPNetwork.__contains__()</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30485">bpo-30485</a>: Path expressions in xml.etree.ElementTree can now avoid
explicit namespace prefixes for tags (or the “{namespace}tag” notation) by
passing a default namespace with an empty string prefix.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36613">bpo-36613</a>: Fix <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> wait() not removing callback if exception</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36598">bpo-36598</a>: Fix <code class="docutils literal notranslate"><span class="pre">isinstance</span></code> check for Mock objects with spec when the
code is executed under tracing. Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18748">bpo-18748</a>: In development mode (<a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span></code></a> <code class="docutils literal notranslate"><span class="pre">dev</span></code>) and in debug build,
the <a class="reference internal" href="../library/io.html#io.IOBase" title="io.IOBase"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.IOBase</span></code></a> destructor now logs <code class="docutils literal notranslate"><span class="pre">close()</span></code> exceptions. These
exceptions are silent by default in release mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36575">bpo-36575</a>: The <code class="docutils literal notranslate"><span class="pre">_lsprof</span></code> module now uses internal timer same to
<code class="docutils literal notranslate"><span class="pre">time.perf_counter()</span></code> by default. <code class="docutils literal notranslate"><span class="pre">gettimeofday(2)</span></code> was used on Unix.
New timer has better resolution on most Unix platforms and timings are no
longer impacted by system clock updates since <code class="docutils literal notranslate"><span class="pre">perf_counter()</span></code> is
monotonic. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33461">bpo-33461</a>: <code class="docutils literal notranslate"><span class="pre">json.loads</span></code> now emits <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> when
<code class="docutils literal notranslate"><span class="pre">encoding</span></code> option is specified. Patch by Matthias Bussonnier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36559">bpo-36559</a>: The random module now prefers the lean internal _sha512 module
over hashlib for seed(version=2) to optimize import time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17561">bpo-17561</a>: Set backlog=None as the default for socket.create_server.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34373">bpo-34373</a>: Fix <a class="reference internal" href="../library/time.html#time.mktime" title="time.mktime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.mktime()</span></code></a> error handling on AIX for year before
1970.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36232">bpo-36232</a>: Improve error message when trying to open existing DBM database
that actually doesn’t exist. Patch by Marco Rougeth.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36546">bpo-36546</a>: Add statistics.quantiles()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36050">bpo-36050</a>: Optimized <code class="docutils literal notranslate"><span class="pre">http.client.HTTPResponse.read()</span></code> for large
response. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36522">bpo-36522</a>: If <em>debuglevel</em> is set to >0 in <a class="reference internal" href="../library/http.client.html#module-http.client" title="http.client: HTTP and HTTPS protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.client</span></code></a>, print all
values for headers with multiple values for the same header name. Patch by
Matt Houglum.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36492">bpo-36492</a>: Deprecated passing required arguments like <em>func</em> as keyword
arguments in functions which should accept arbitrary keyword arguments and
pass them to other function. Arbitrary keyword arguments (even with names
“self” and “func”) can now be passed to these functions if the required
arguments are passed as positional arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27181">bpo-27181</a>: Add statistics.geometric_mean().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30427">bpo-30427</a>: <code class="docutils literal notranslate"><span class="pre">os.path.normcase()</span></code> relies on <code class="docutils literal notranslate"><span class="pre">os.fspath()</span></code> to check the
type of its argument. Redundant checks have been removed from its
<code class="docutils literal notranslate"><span class="pre">posixpath.normcase()</span></code> and <code class="docutils literal notranslate"><span class="pre">ntpath.normcase()</span></code> implementations. Patch
by Wolfgang Maier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36385">bpo-36385</a>: Stop rejecting IPv4 octets for being ambiguously octal. Leading
zeros are ignored, and no longer are assumed to specify octal octets.
Octets are always decimal numbers. Octets must still be no more than three
digits, including leading zeroes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36434">bpo-36434</a>: Errors during writing to a ZIP file no longer prevent to
properly close it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36407">bpo-36407</a>: Fixed wrong indentation writing for CDATA section in
xml.dom.minidom. Patch by Vladimir Surjaninov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36326">bpo-36326</a>: inspect.getdoc() can now find docstrings for member objects
when __slots__ is a dictionary.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36366">bpo-36366</a>: Calling <code class="docutils literal notranslate"><span class="pre">stop()</span></code> on an unstarted or stopped
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.patch" title="unittest.mock.patch"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.patch()</span></code></a> object will now return <code class="docutils literal notranslate"><span class="pre">None</span></code> instead of
raising <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a>, making the method idempotent. Patch by
Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36348">bpo-36348</a>: The <code class="xref py py-meth docutils literal notranslate"><span class="pre">imap.IMAP4.logout()</span></code> method no longer ignores silently
arbitrary exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Add time module support and fix test_time failures for VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36227">bpo-36227</a>: Added support for keyword arguments <code class="docutils literal notranslate"><span class="pre">default_namespace</span></code> and
<code class="docutils literal notranslate"><span class="pre">xml_declaration</span></code> in functions <code class="docutils literal notranslate"><span class="pre">ElementTree.tostring()</span></code> and
<code class="docutils literal notranslate"><span class="pre">ElementTree.tostringlist()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36004">bpo-36004</a>: Added new alternate constructors
<a class="reference internal" href="../library/datetime.html#datetime.date.fromisocalendar" title="datetime.date.fromisocalendar"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.date.fromisocalendar()</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.datetime.fromisocalendar" title="datetime.datetime.fromisocalendar"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.fromisocalendar()</span></code></a>, which construct date objects
from ISO year, week number and weekday; these are the inverse of each
class’s <code class="docutils literal notranslate"><span class="pre">isocalendar</span></code> method. Patch by Paul Ganssle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35936">bpo-35936</a>: <a class="reference internal" href="../library/modulefinder.html#module-modulefinder" title="modulefinder: Find modules used by a script."><code class="xref py py-mod docutils literal notranslate"><span class="pre">modulefinder</span></code></a> no longer depends on the deprecated
<a class="reference internal" href="../library/imp.html#module-imp" title="imp: Removed in 3.12. (deprecated)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">imp</span></code></a> module, and the initializer for
<a class="reference internal" href="../library/modulefinder.html#modulefinder.ModuleFinder" title="modulefinder.ModuleFinder"><code class="xref py py-class docutils literal notranslate"><span class="pre">modulefinder.ModuleFinder</span></code></a> now has immutable default arguments.
Patch by Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35376">bpo-35376</a>: <a class="reference internal" href="../library/modulefinder.html#module-modulefinder" title="modulefinder: Find modules used by a script."><code class="xref py py-mod docutils literal notranslate"><span class="pre">modulefinder</span></code></a> correctly handles modules that have the
same name as a bad package. Patch by Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17396">bpo-17396</a>: <a class="reference internal" href="../library/modulefinder.html#module-modulefinder" title="modulefinder: Find modules used by a script."><code class="xref py py-mod docutils literal notranslate"><span class="pre">modulefinder</span></code></a> no longer crashes when encountering syntax
errors in followed imports. Patch by Brandt Bucher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35934">bpo-35934</a>: Added <a class="reference internal" href="../library/socket.html#socket.create_server" title="socket.create_server"><code class="xref py py-meth docutils literal notranslate"><span class="pre">create_server()</span></code></a> and
<a class="reference internal" href="../library/socket.html#socket.has_dualstack_ipv6" title="socket.has_dualstack_ipv6"><code class="xref py py-meth docutils literal notranslate"><span class="pre">has_dualstack_ipv6()</span></code></a> convenience functions to automate the
necessary tasks usually involved when creating a server socket, including
accepting both IPv4 and IPv6 connections on the same socket. (Contributed
by Giampaolo Rodola in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17561">bpo-17561</a>.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23078">bpo-23078</a>: Add support for <a class="reference internal" href="../library/functions.html#classmethod" title="classmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">classmethod()</span></code></a> and <a class="reference internal" href="../library/functions.html#staticmethod" title="staticmethod"><code class="xref py py-func docutils literal notranslate"><span class="pre">staticmethod()</span></code></a> to
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.create_autospec" title="unittest.mock.create_autospec"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.create_autospec()</span></code></a>. Initial patch by Felipe Ochoa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35416">bpo-35416</a>: Fix potential resource warnings in distutils. Patch by Mickaël
Schoentgen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25451">bpo-25451</a>: Add transparency methods to <code class="xref py py-class docutils literal notranslate"><span class="pre">tkinter.PhotoImage</span></code>. Patch
by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35082">bpo-35082</a>: Don’t return deleted attributes when calling dir on a
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.Mock" title="unittest.mock.Mock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.Mock</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34547">bpo-34547</a>: <a class="reference internal" href="../library/wsgiref.html#wsgiref.handlers.BaseHandler" title="wsgiref.handlers.BaseHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">wsgiref.handlers.BaseHandler</span></code></a> now handles abrupt client
connection terminations gracefully. Patch by Petter Strandmark.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31658">bpo-31658</a>: <a class="reference internal" href="../library/xml.sax.html#xml.sax.parse" title="xml.sax.parse"><code class="xref py py-func docutils literal notranslate"><span class="pre">xml.sax.parse()</span></code></a> now supports <a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like</span></a>. Patch by Mickaël Schoentgen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34139">bpo-34139</a>: Remove stale unix datagram socket before binding</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33530">bpo-33530</a>: Implemented Happy Eyeballs in <code class="docutils literal notranslate"><span class="pre">asyncio.create_connection()</span></code>.
Added two new arguments, <em>happy_eyeballs_delay</em> and <em>interleave</em>, to
specify Happy Eyeballs behavior.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33291">bpo-33291</a>: Do not raise AttributeError when calling the inspect functions
isgeneratorfunction, iscoroutinefunction, isasyncgenfunction on a method
created from an arbitrary callable. Instead, return False.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31310">bpo-31310</a>: Fix the multiprocessing.semaphore_tracker so it is reused by
child processes</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31292">bpo-31292</a>: Fix <code class="docutils literal notranslate"><span class="pre">setup.py</span> <span class="pre">check</span> <span class="pre">--restructuredtext</span></code> for files containing
<code class="docutils literal notranslate"><span class="pre">include</span></code> directives.</p></li>
</ul>
</section>
<section id="id490">
<h3>Documentation<a class="headerlink" href="#id490" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36625">bpo-36625</a>: Remove obsolete comments from docstrings in fractions.Fraction</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30840">bpo-30840</a>: Document relative imports</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36523">bpo-36523</a>: Add docstring for io.IOBase.writelines().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36425">bpo-36425</a>: New documentation translation: <a class="reference external" href="https://docs.python.org/zh-cn/">Simplified Chinese</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36345">bpo-36345</a>: Avoid the duplication of code from <code class="docutils literal notranslate"><span class="pre">Tools/scripts/serve.py</span></code>
in using the <code class="xref rst rst-dir docutils literal notranslate"><span class="pre">literalinclude</span></code> directive for the basic
wsgiref-based web server in the documentation of <a class="reference internal" href="../library/wsgiref.html#module-wsgiref" title="wsgiref: WSGI Utilities and Reference Implementation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">wsgiref</span></code></a>.
Contributed by Stéphane Wirtel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36345">bpo-36345</a>: Using the code of the <code class="docutils literal notranslate"><span class="pre">Tools/scripts/serve.py</span></code> script as an
example in the <a class="reference internal" href="../library/wsgiref.html#module-wsgiref" title="wsgiref: WSGI Utilities and Reference Implementation."><code class="xref py py-mod docutils literal notranslate"><span class="pre">wsgiref</span></code></a> documentation. Contributed by Stéphane
Wirtel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36157">bpo-36157</a>: Added documentation for PyInterpreterState_Main().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33043">bpo-33043</a>: Updates the docs.python.org page with the addition of a
‘Contributing to Docs’ link at the end of the page (between ‘Reporting
Bugs’ and ‘About Documentation’). Updates the ‘Found a Bug’ page with
additional links and information in the Documentation Bugs section.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35581">bpo-35581</a>: @typing.type_check_only now allows type stubs to mark functions
and classes not available during runtime.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33832">bpo-33832</a>: Add glossary entry for ‘magic method’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32913">bpo-32913</a>: Added re.Match.groupdict example to regex HOWTO.</p></li>
</ul>
</section>
<section id="id491">
<h3>Tests<a class="headerlink" href="#id491" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36719">bpo-36719</a>: regrtest now always detects uncollectable objects. Previously,
the check was only enabled by <code class="docutils literal notranslate"><span class="pre">--findleaks</span></code>. The check now also works
with <code class="docutils literal notranslate"><span class="pre">-jN/--multiprocess</span> <span class="pre">N</span></code>. <code class="docutils literal notranslate"><span class="pre">--findleaks</span></code> becomes a deprecated alias
to <code class="docutils literal notranslate"><span class="pre">--fail-env-changed</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36725">bpo-36725</a>: When using multiprocessing mode (-jN), regrtest now better
reports errors if a worker process fails, and it exits immediately on a
worker thread failure or when interrupted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36454">bpo-36454</a>: Change test_time.test_monotonic() to test only the lower bound
of elapsed time after a sleep command rather than the upper bound. This
prevents unnecessary test failures on slow buildbots. Patch by Victor
Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32424">bpo-32424</a>: Improve test coverage for xml.etree.ElementTree. Patch by
Gordon P. Hemsley.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32424">bpo-32424</a>: Fix typo in test_cyclic_gc() test for xml.etree.ElementTree.
Patch by Gordon P. Hemsley.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36635">bpo-36635</a>: Add a new <code class="xref py py-mod docutils literal notranslate"><span class="pre">_testinternalcapi</span></code> module to test the internal
C API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36629">bpo-36629</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_imap4_host_default_value()</span></code> of <code class="docutils literal notranslate"><span class="pre">test_imaplib</span></code>:
catch also <a class="reference internal" href="../library/errno.html#errno.ENETUNREACH" title="errno.ENETUNREACH"><code class="xref py py-const docutils literal notranslate"><span class="pre">errno.ENETUNREACH</span></code></a> error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36611">bpo-36611</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_sys.test_getallocatedblocks()</span></code> when
<a class="reference internal" href="../library/tracemalloc.html#module-tracemalloc" title="tracemalloc: Trace memory allocations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tracemalloc</span></code></a> is enabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36560">bpo-36560</a>: Fix reference leak hunting in regrtest: compute also deltas (of
reference count, allocated memory blocks, file descriptor count) during
warmup, to ensure that everything is initialized before starting to hunt
reference leaks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36565">bpo-36565</a>: Fix reference hunting (<code class="docutils literal notranslate"><span class="pre">python3</span> <span class="pre">-m</span> <span class="pre">test</span> <span class="pre">-R</span> <span class="pre">3:3</span></code>) when Python
has no built-in abc module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Port test_resource to VxWorks: skip tests cases setting
RLIMIT_FSIZE and RLIMIT_CPU.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Fix test_tabnanny on VxWorks: adjust ENOENT error message.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36436">bpo-36436</a>: Fix <code class="docutils literal notranslate"><span class="pre">_testcapi.pymem_buffer_overflow()</span></code>: handle memory
allocation failure.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Fix test_utf8_mode on VxWorks: Python always use UTF-8 on
VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36341">bpo-36341</a>: Fix tests that may fail with PermissionError upon calling
bind() on AF_UNIX sockets.</p></li>
</ul>
</section>
<section id="id492">
<h3>Build<a class="headerlink" href="#id492" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36747">bpo-36747</a>: Remove the stale scriptsinstall Makefile target.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21536">bpo-21536</a>: On Unix, C extensions are no longer linked to libpython except
on Android and Cygwin.</p>
<p>It is now possible for a statically linked Python to load a C extension
built using a shared library Python.</p>
<p>When Python is embedded, <code class="docutils literal notranslate"><span class="pre">libpython</span></code> must not be loaded with
<code class="docutils literal notranslate"><span class="pre">RTLD_LOCAL</span></code>, but <code class="docutils literal notranslate"><span class="pre">RTLD_GLOBAL</span></code> instead. Previously, using
<code class="docutils literal notranslate"><span class="pre">RTLD_LOCAL</span></code>, it was already not possible to load C extensions which
were not linked to <code class="docutils literal notranslate"><span class="pre">libpython</span></code>, such as C extensions of the standard
library built by the <code class="docutils literal notranslate"><span class="pre">*shared*</span></code> section of <code class="docutils literal notranslate"><span class="pre">Modules/Setup</span></code>.</p>
<p>distutils, python-config and python-config.py have been modified.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36707">bpo-36707</a>: <code class="docutils literal notranslate"><span class="pre">./configure</span> <span class="pre">--with-pymalloc</span></code> no longer adds the <code class="docutils literal notranslate"><span class="pre">m</span></code> flag
to SOABI (sys.implementation.cache_tag). Enabling or disabling pymalloc
has no impact on the ABI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36635">bpo-36635</a>: Change <code class="docutils literal notranslate"><span class="pre">PyAPI_FUNC(type)</span></code>, <code class="docutils literal notranslate"><span class="pre">PyAPI_DATA(type)</span></code> and
<code class="docutils literal notranslate"><span class="pre">PyMODINIT_FUNC</span></code> macros of <code class="docutils literal notranslate"><span class="pre">pyport.h</span></code> when <code class="docutils literal notranslate"><span class="pre">Py_BUILD_CORE_MODULE</span></code> is
defined. The <code class="docutils literal notranslate"><span class="pre">Py_BUILD_CORE_MODULE</span></code> define must be now be used to build
a C extension as a dynamic library accessing Python internals: export the
<code class="samp docutils literal notranslate"><span class="pre">PyInit_</span><em><span class="pre">xxx</span></em><span class="pre">()</span></code> function in DLL exports on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Don’t build the <code class="docutils literal notranslate"><span class="pre">_crypt</span></code> extension on VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36618">bpo-36618</a>: Add <code class="docutils literal notranslate"><span class="pre">-fmax-type-align=8</span></code> to CFLAGS when clang compiler is
detected. The pymalloc memory allocator aligns memory on 8 bytes. On
x86-64, clang expects alignment on 16 bytes by default and so uses MOVAPS
instruction which can lead to segmentation fault. Instruct clang that
Python is limited to alignment on 8 bytes to use MOVUPS instruction
instead: slower but don’t trigger a SIGSEGV if the memory is not aligned
on 16 bytes. Sadly, the flag must be added to <code class="docutils literal notranslate"><span class="pre">CFLAGS</span></code> and not just
<code class="docutils literal notranslate"><span class="pre">CFLAGS_NODIST</span></code>, since third party C extensions can have the same issue.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36605">bpo-36605</a>: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">tags</span></code> and <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">TAGS</span></code> now also parse
<code class="docutils literal notranslate"><span class="pre">Modules/_io/*.c</span></code> and <code class="docutils literal notranslate"><span class="pre">Modules/_io/*.h</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36465">bpo-36465</a>: Release builds and debug builds are now ABI compatible:
defining the <code class="docutils literal notranslate"><span class="pre">Py_DEBUG</span></code> macro no longer implies the <code class="docutils literal notranslate"><span class="pre">Py_TRACE_REFS</span></code>
macro, which introduces the only ABI incompatibility. The
<code class="docutils literal notranslate"><span class="pre">Py_TRACE_REFS</span></code> macro, which adds the <a class="reference internal" href="../library/sys.html#sys.getobjects" title="sys.getobjects"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.getobjects()</span></code></a> function
and the <span class="target" id="index-352"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONDUMPREFS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONDUMPREFS</span></code></a> environment variable, can be set using
the new <code class="docutils literal notranslate"><span class="pre">./configure</span> <span class="pre">--with-trace-refs</span></code> build option.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36577">bpo-36577</a>: setup.py now correctly reports missing OpenSSL headers and
libraries again.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36544">bpo-36544</a>: Fix regression introduced in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36146">bpo-36146</a> refactoring setup.py</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36508">bpo-36508</a>: <code class="docutils literal notranslate"><span class="pre">python-config</span> <span class="pre">--ldflags</span></code> no longer includes flags of the
<code class="docutils literal notranslate"><span class="pre">LINKFORSHARED</span></code> variable. The <code class="docutils literal notranslate"><span class="pre">LINKFORSHARED</span></code> variable must only be
used to build executables.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36503">bpo-36503</a>: Remove references to “aix3” and “aix4”. Patch by M. Felt.</p></li>
</ul>
</section>
<section id="id493">
<h3>Windows<a class="headerlink" href="#id493" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35920">bpo-35920</a>: Added platform.win32_edition() and platform.win32_is_iot().
Added support for cross-compiling packages for Windows ARM32. Skip tests
that are not expected to work on Windows IoT Core ARM32.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36649">bpo-36649</a>: Remove trailing spaces for registry keys when installed via the
Store.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34144">bpo-34144</a>: Fixed activate.bat to correctly update codepage when chcp.com
returns dots in output. Patch by Lorenz Mende.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36509">bpo-36509</a>: Added preset-iot layout for Windows IoT ARM containers. This
layout doesn’t contain UI components like tkinter or IDLE. It also doesn’t
contain files to support on-target builds since Windows ARM32 builds must
be cross-compiled when using MSVC.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35941">bpo-35941</a>: enum_certificates function of the ssl module now returns
certificates from all available certificate stores inside windows in a
query instead of returning only certificates from the system wide
certificate store. This includes certificates from these certificate
stores: local machine, local machine enterprise, local machine group
policy, current user, current user group policy, services, users.
ssl.enum_crls() function is changed in the same way to return all
certificate revocation lists inside the windows certificate revocation
list stores.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36441">bpo-36441</a>: Fixes creating a venv when debug binaries are installed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36085">bpo-36085</a>: Enable better DLL resolution on Windows by using safe DLL
search paths and adding <a class="reference internal" href="../library/os.html#os.add_dll_directory" title="os.add_dll_directory"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.add_dll_directory()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36010">bpo-36010</a>: Add the venv standard library module to the nuget distribution
for Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29515">bpo-29515</a>: Add the following socket module constants on Windows:
IPPROTO_AH IPPROTO_CBT IPPROTO_DSTOPTS IPPROTO_EGP IPPROTO_ESP
IPPROTO_FRAGMENT IPPROTO_GGP IPPROTO_HOPOPTS IPPROTO_ICLFXBM
IPPROTO_ICMPV6 IPPROTO_IDP IPPROTO_IGMP IPPROTO_IGP IPPROTO_IPV4
IPPROTO_IPV6 IPPROTO_L2TP IPPROTO_MAX IPPROTO_ND IPPROTO_NONE IPPROTO_PGM
IPPROTO_PIM IPPROTO_PUP IPPROTO_RDP IPPROTO_ROUTING IPPROTO_SCTP
IPPROTO_ST</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35947">bpo-35947</a>: Added current version of libffi to cpython-source-deps. Change
_ctypes to use current version of libffi on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34060">bpo-34060</a>: Report system load when running test suite on Windows. Patch by
Ammar Askar. Based on prior work by Jeremy Kloth.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31512">bpo-31512</a>: With the Windows 10 Creators Update, non-elevated users can now
create symlinks as long as the computer has Developer Mode enabled.</p></li>
</ul>
</section>
<section id="id494">
<h3>macOS<a class="headerlink" href="#id494" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34602">bpo-34602</a>: Avoid failures setting macOS stack resource limit with
resource.setrlimit. This reverts an earlier fix for <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18075">bpo-18075</a> which forced
a non-default stack size when building the interpreter executable on
macOS.</p></li>
</ul>
</section>
<section id="id495">
<h3>IDLE<a class="headerlink" href="#id495" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36429">bpo-36429</a>: Fix starting IDLE with pyshell. Add idlelib.pyshell alias at
top; remove pyshell alias at bottom. Remove obsolete __name__==’__main__’
command.</p></li>
</ul>
</section>
<section id="id496">
<h3>Tools/Demos<a class="headerlink" href="#id496" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14546">bpo-14546</a>: Fix the argument handling in Tools/scripts/lll.py.</p></li>
</ul>
</section>
<section id="id497">
<h3>C API<a class="headerlink" href="#id497" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36763">bpo-36763</a>: Fix memory leak in <code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetStandardStreamEncoding()</span></code>:
release memory if the function is called twice.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36641">bpo-36641</a>: <span class="c-expr sig sig-inline c"><span class="n">PyDoc_VAR</span><span class="p">(</span><span class="n">name</span><span class="p">)</span></span> and <span class="c-expr sig sig-inline c"><a class="reference internal" href="../c-api/intro.html#c.PyDoc_STRVAR" title="PyDoc_STRVAR"><span class="n">PyDoc_STRVAR</span></a><span class="p">(</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">str</span><span class="p">)</span></span>
now create <code class="docutils literal notranslate"><span class="pre">static</span> <span class="pre">const</span> <span class="pre">char</span> <span class="pre">name[]</span></code> instead of <code class="docutils literal notranslate"><span class="pre">static</span> <span class="pre">char</span> <span class="pre">name[]</span></code>.
Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36389">bpo-36389</a>: Change the value of <code class="docutils literal notranslate"><span class="pre">CLEANBYTE</span></code>, <code class="docutils literal notranslate"><span class="pre">DEADDYTE</span></code> and
<code class="docutils literal notranslate"><span class="pre">FORBIDDENBYTE</span></code> internal constants used by debug hooks on Python memory
allocators (<a class="reference internal" href="../c-api/memory.html#c.PyMem_SetupDebugHooks" title="PyMem_SetupDebugHooks"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMem_SetupDebugHooks()</span></code></a> function). Byte patterns
<code class="docutils literal notranslate"><span class="pre">0xCB</span></code>, <code class="docutils literal notranslate"><span class="pre">0xDB</span></code> and <code class="docutils literal notranslate"><span class="pre">0xFB</span></code> have been replaced with <code class="docutils literal notranslate"><span class="pre">0xCD</span></code>, <code class="docutils literal notranslate"><span class="pre">0xDD</span></code>
and <code class="docutils literal notranslate"><span class="pre">0xFD</span></code> to use the same values than Windows CRT debug <code class="docutils literal notranslate"><span class="pre">malloc()</span></code>
and <code class="docutils literal notranslate"><span class="pre">free()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36443">bpo-36443</a>: Since Python 3.7.0, calling <a class="reference internal" href="../c-api/sys.html#c.Py_DecodeLocale" title="Py_DecodeLocale"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_DecodeLocale()</span></code></a> before
<a class="reference internal" href="../c-api/init.html#c.Py_Initialize" title="Py_Initialize"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_Initialize()</span></code></a> produces mojibake if the <code class="docutils literal notranslate"><span class="pre">LC_CTYPE</span></code> locale is
coerced and/or if the UTF-8 Mode is enabled by the user configuration. The
LC_CTYPE coercion and UTF-8 Mode are now disabled by default to fix the
mojibake issue. They must now be enabled explicitly (opt-in) using the new
<code class="xref c c-func docutils literal notranslate"><span class="pre">_Py_PreInitialize()</span></code> API with <code class="docutils literal notranslate"><span class="pre">_PyPreConfig</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36025">bpo-36025</a>: Fixed an accidental change to the datetime C API where the
arguments to the <a class="reference internal" href="../c-api/datetime.html#c.PyDate_FromTimestamp" title="PyDate_FromTimestamp"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyDate_FromTimestamp()</span></code></a> function were incorrectly
interpreted as a single timestamp rather than an arguments tuple, which
causes existing code to start raising <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>. The
backwards-incompatible change was only present in alpha releases of Python
3.8. Patch by Paul Ganssle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35810">bpo-35810</a>: Modify <code class="docutils literal notranslate"><span class="pre">PyObject_Init</span></code> to correctly increase the refcount of
heap-allocated Type objects. Also fix the refcounts of the heap-allocated
types that were either doing this manually or not decreasing the type’s
refcount in tp_dealloc</p></li>
</ul>
</section>
</section>
<section id="python-3-8-0-alpha-3">
<h2>Python 3.8.0 alpha 3<a class="headerlink" href="#python-3-8-0-alpha-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2019-03-25</em></p>
<section id="id498">
<h3>Security<a class="headerlink" href="#id498" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36216">bpo-36216</a>: Changes urlsplit() to raise ValueError when the URL contains
characters that decompose under IDNA encoding (NFKC-normalization) into
characters that affect how the URL is parsed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35121">bpo-35121</a>: Don’t send cookies of domain A without Domain attribute to
domain B when domain A is a suffix match of domain B while using a
cookiejar with <a class="reference internal" href="../library/http.cookiejar.html#http.cookiejar.DefaultCookiePolicy" title="http.cookiejar.DefaultCookiePolicy"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.cookiejar.DefaultCookiePolicy</span></code></a> policy. Patch
by Karthikeyan Singaravelan.</p></li>
</ul>
</section>
<section id="id499">
<h3>Core and Builtins<a class="headerlink" href="#id499" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36421">bpo-36421</a>: Fix a possible double decref in _ctypes.c’s
<code class="docutils literal notranslate"><span class="pre">PyCArrayType_new()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36412">bpo-36412</a>: Fix a possible crash when creating a new dictionary.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36398">bpo-36398</a>: Fix a possible crash in <code class="docutils literal notranslate"><span class="pre">structseq_repr()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36256">bpo-36256</a>: Fix bug in parsermodule when parsing a state in a DFA that has
two or more arcs with labels of the same type. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36365">bpo-36365</a>: repr(structseq) is no longer limited to 512 bytes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36374">bpo-36374</a>: Fix a possible null pointer dereference in
<code class="docutils literal notranslate"><span class="pre">merge_consts_recursive()</span></code>. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36236">bpo-36236</a>: At Python initialization, the current directory is no longer
prepended to <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a> if it has been removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36352">bpo-36352</a>: Python initialization now fails with an error, rather than
silently truncating paths, if a path is too long.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36301">bpo-36301</a>: Python initialization now fails if decoding <code class="docutils literal notranslate"><span class="pre">pybuilddir.txt</span></code>
configuration file fails at startup.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36333">bpo-36333</a>: Fix leak in _PyRuntimeState_Fini. Contributed by Stéphane
Wirtel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36332">bpo-36332</a>: The builtin <a class="reference internal" href="../library/functions.html#compile" title="compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">compile()</span></code></a> can now handle AST objects that
contain assignment expressions. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36282">bpo-36282</a>: Improved error message for too much positional arguments in
some builtin functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30040">bpo-30040</a>: New empty dict uses fewer memory for now. It used more memory
than empty dict created by <code class="docutils literal notranslate"><span class="pre">dict.clear()</span></code>. And empty dict creation and
deletion is about 2x faster. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36262">bpo-36262</a>: Fix an unlikely memory leak on conversion from string to float
in the function <code class="docutils literal notranslate"><span class="pre">_Py_dg_strtod()</span></code> used by <code class="docutils literal notranslate"><span class="pre">float(str)</span></code>,
<code class="docutils literal notranslate"><span class="pre">complex(str)</span></code>, <a class="reference internal" href="../library/pickle.html#pickle.load" title="pickle.load"><code class="xref py py-func docutils literal notranslate"><span class="pre">pickle.load()</span></code></a>, <a class="reference internal" href="../library/marshal.html#marshal.load" title="marshal.load"><code class="xref py py-func docutils literal notranslate"><span class="pre">marshal.load()</span></code></a>, etc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36252">bpo-36252</a>: Update Unicode databases to version 12.0.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36218">bpo-36218</a>: Fix a segfault occurring when sorting a list of heterogeneous
values. Patch contributed by Rémi Lapeyre and Elliot Gorokhovsky.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36188">bpo-36188</a>: Cleaned up left-over vestiges of Python 2 unbound method
handling in method objects and documentation. Patch by Martijn Pieters</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36124">bpo-36124</a>: Add a new interpreter-specific dict and expose it in the C-API
via PyInterpreterState_GetDict(). This parallels PyThreadState_GetDict().
However, extension modules should continue using PyModule_GetState() for
their own internal per-interpreter state.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35975">bpo-35975</a>: Add a <code class="docutils literal notranslate"><span class="pre">feature_version</span></code> flag to <code class="docutils literal notranslate"><span class="pre">ast.parse()</span></code> (documented)
and <code class="docutils literal notranslate"><span class="pre">compile()</span></code> (hidden) that allows tweaking the parser to support
older versions of the grammar. In particular, if <code class="docutils literal notranslate"><span class="pre">feature_version</span></code> is 5
or 6, the hacks for the <code class="docutils literal notranslate"><span class="pre">async</span></code> and <code class="docutils literal notranslate"><span class="pre">await</span></code> keyword from PEP 492 are
reinstated. (For 7 or higher, these are unconditionally treated as
keywords, but they are still special tokens rather than <code class="docutils literal notranslate"><span class="pre">NAME</span></code> tokens
that the parser driver recognizes.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Use UTF-8 as the system encoding on VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36048">bpo-36048</a>: The <a class="reference internal" href="../reference/datamodel.html#object.__index__" title="object.__index__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__index__()</span></code></a> special method will be used
instead of <a class="reference internal" href="../reference/datamodel.html#object.__int__" title="object.__int__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__int__()</span></code></a> for implicit conversion of Python
numbers to C integers. Using the <code class="docutils literal notranslate"><span class="pre">__int__()</span></code> method in implicit
conversions has been deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35808">bpo-35808</a>: Retire pgen and use a modified version of pgen2 to generate the
parser. Patch by Pablo Galindo.</p></li>
</ul>
</section>
<section id="id500">
<h3>Library<a class="headerlink" href="#id500" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36401">bpo-36401</a>: The class documentation created by pydoc now has a separate
section for readonly properties.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36320">bpo-36320</a>: The typing.NamedTuple() class has deprecated the _field_types
attribute in favor of the __annotations__ attribute which carried the same
information. Also, both attributes were converted from OrderedDict to a
regular dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34745">bpo-34745</a>: Fix <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a> ssl memory issues caused by circular
references</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36324">bpo-36324</a>: Add method to statistics.NormalDist for computing the inverse
cumulative normal distribution.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36321">bpo-36321</a>: collections.namedtuple() misspelled the name of an attribute.
To be consistent with typing.NamedTuple, the attribute name should have
been “_field_defaults” instead of “_fields_defaults”. For backwards
compatibility, both spellings are now created. The misspelled version may
be removed in the future.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36297">bpo-36297</a>: “unicode_internal” codec is removed. It was deprecated since
Python 3.3. Patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36298">bpo-36298</a>: Raise ModuleNotFoundError in pyclbr when a module can’t be
found. Thanks to ‘mental’ for the bug report.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36268">bpo-36268</a>: Switch the default format used for writing tars with
<a class="reference internal" href="../library/tarfile.html#module-tarfile" title="tarfile: Read and write tar-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tarfile</span></code></a> to the modern POSIX.1-2001 pax standard, from the
vendor-specific GNU. Contributed by C.A.M. Gerlach.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36285">bpo-36285</a>: Fix integer overflows in the array module. Patch by Stephan
Hohe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Add _signal module support for VxWorks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36272">bpo-36272</a>: <a class="reference internal" href="../library/logging.html#module-logging" title="logging: Flexible event logging system for applications."><code class="xref py py-mod docutils literal notranslate"><span class="pre">logging</span></code></a> does not silently ignore RecursionError anymore.
Patch contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36280">bpo-36280</a>: Add a kind field to ast.Constant. It is ‘u’ if the literal has
a ‘u’ prefix (i.e. a Python 2 style unicode literal), else None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35931">bpo-35931</a>: The <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> <code class="docutils literal notranslate"><span class="pre">debug</span></code> command now gracefully handles all
exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36251">bpo-36251</a>: Fix format strings used for stderrprinter and re.Match reprs.
Patch by Stephan Hohe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36235">bpo-36235</a>: Fix <code class="docutils literal notranslate"><span class="pre">CFLAGS</span></code> in <code class="docutils literal notranslate"><span class="pre">customize_compiler()</span></code> of
<code class="docutils literal notranslate"><span class="pre">distutils.sysconfig</span></code>: when the <code class="docutils literal notranslate"><span class="pre">CFLAGS</span></code> environment variable is
defined, don’t override <code class="docutils literal notranslate"><span class="pre">CFLAGS</span></code> variable with the <code class="docutils literal notranslate"><span class="pre">OPT</span></code> variable
anymore. Initial patch written by David Malcolm.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35807">bpo-35807</a>: Update ensurepip to install pip 19.0.3 and setuptools 40.8.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36139">bpo-36139</a>: Release GIL when closing <a class="reference internal" href="../library/mmap.html#mmap.mmap" title="mmap.mmap"><code class="xref py py-class docutils literal notranslate"><span class="pre">mmap</span></code></a> objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36179">bpo-36179</a>: Fix two unlikely reference leaks in _hashopenssl. The leaks
only occur in out-of-memory cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36169">bpo-36169</a>: Add overlap() method to statistics.NormalDist. Computes the
overlapping coefficient for two normal distributions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36103">bpo-36103</a>: Default buffer size used by <code class="docutils literal notranslate"><span class="pre">shutil.copyfileobj()</span></code> is changed
from 16 KiB to 64 KiB on non-Windows platform to reduce system call
overhead. Contributed by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36130">bpo-36130</a>: Fix <code class="docutils literal notranslate"><span class="pre">pdb</span></code> with <code class="docutils literal notranslate"><span class="pre">skip=...</span></code> when stepping into a frame
without a <code class="docutils literal notranslate"><span class="pre">__name__</span></code> global. Patch by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35652">bpo-35652</a>: shutil.copytree(copy_function=…) erroneously pass DirEntry
instead of a path string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35178">bpo-35178</a>: Ensure custom <a class="reference internal" href="../library/warnings.html#warnings.formatwarning" title="warnings.formatwarning"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.formatwarning()</span></code></a> function can
receive <code class="docutils literal notranslate"><span class="pre">line</span></code> as positional argument. Based on patch by Tashrif Billah.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36106">bpo-36106</a>: Resolve potential name clash with libm’s sinpi(). Patch by
Dmitrii Pasechnik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36091">bpo-36091</a>: Clean up reference to async generator in Lib/types. Patch by
Henry Chen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36043">bpo-36043</a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">FileCookieJar</span></code> supports <a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like object</span></a>.
Contributed by Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35899">bpo-35899</a>: Enum has been fixed to correctly handle empty strings and
strings with non-Latin characters (ie. ‘α’, ‘א’) without crashing.
Original patch contributed by Maxwell. Assisted by Stéphane Wirtel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21269">bpo-21269</a>: Add <code class="docutils literal notranslate"><span class="pre">args</span></code> and <code class="docutils literal notranslate"><span class="pre">kwargs</span></code> properties to mock call objects.
Contributed by Kumar Akshay.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30670">bpo-30670</a>: <code class="docutils literal notranslate"><span class="pre">pprint.pp</span></code> has been added to pretty-print objects with
dictionary keys being sorted with their insertion order by default.
Parameter <em>sort_dicts</em> has been added to <code class="docutils literal notranslate"><span class="pre">pprint.pprint</span></code>,
<code class="docutils literal notranslate"><span class="pre">pprint.pformat</span></code> and <code class="docutils literal notranslate"><span class="pre">pprint.PrettyPrinter</span></code>. Contributed by Rémi
Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35843">bpo-35843</a>: Implement <code class="docutils literal notranslate"><span class="pre">__getitem__</span></code> for <code class="docutils literal notranslate"><span class="pre">_NamespacePath</span></code>. Patch by
Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35802">bpo-35802</a>: Clean up code which checked presence of <code class="docutils literal notranslate"><span class="pre">os.stat</span></code> /
<code class="docutils literal notranslate"><span class="pre">os.lstat</span></code> / <code class="docutils literal notranslate"><span class="pre">os.chmod</span></code> which are always present. Patch by Anthony
Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35715">bpo-35715</a>: Librates the return value of a ProcessPoolExecutor
_process_worker after it’s no longer needed to free memory</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35493">bpo-35493</a>: Use <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.connection.wait" title="multiprocessing.connection.wait"><code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocessing.connection.wait()</span></code></a> instead of polling
each 0.2 seconds for worker updates in <code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Pool</span></code>.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35661">bpo-35661</a>: Store the venv prompt in pyvenv.cfg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35121">bpo-35121</a>: Don’t set cookie for a request when the request path is a
prefix match of the cookie’s path attribute but doesn’t end with “/”.
Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21478">bpo-21478</a>: Calls to a child function created with
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.create_autospec" title="unittest.mock.create_autospec"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.create_autospec()</span></code></a> should propagate to the parent.
Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35198">bpo-35198</a>: Fix C++ extension compilation on AIX</p></li>
</ul>
</section>
<section id="id501">
<h3>Documentation<a class="headerlink" href="#id501" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36329">bpo-36329</a>: Declare the path of the Python binary for the usage of
<code class="docutils literal notranslate"><span class="pre">Tools/scripts/serve.py</span></code> when executing <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">-C</span> <span class="pre">Doc/</span> <span class="pre">serve</span></code>.
Contributed by Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36138">bpo-36138</a>: Improve documentation about converting datetime.timedelta to
scalars.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21314">bpo-21314</a>: A new entry was added to the Core Language Section of the
Programming FAQ, which explaines the usage of slash(/) in the signature of
a function. Patch by Lysandros Nikolaou</p></li>
</ul>
</section>
<section id="id502">
<h3>Tests<a class="headerlink" href="#id502" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36234">bpo-36234</a>: test_posix.PosixUidGidTests: add tests for invalid uid/gid type
(str). Initial patch written by David Malcolm.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29571">bpo-29571</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_re.test_locale_flag()</span></code>: use
<code class="docutils literal notranslate"><span class="pre">locale.getpreferredencoding()</span></code> rather than <code class="docutils literal notranslate"><span class="pre">locale.getlocale()</span></code> to
get the locale encoding. With some locales, <code class="docutils literal notranslate"><span class="pre">locale.getlocale()</span></code> returns
the wrong encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36123">bpo-36123</a>: Fix race condition in test_socket.</p></li>
</ul>
</section>
<section id="id503">
<h3>Build<a class="headerlink" href="#id503" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36356">bpo-36356</a>: Fix leaks that led to build failure when configured with
address sanitizer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36146">bpo-36146</a>: Add <code class="docutils literal notranslate"><span class="pre">TEST_EXTENSIONS</span></code> constant to <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> to allow to
not build test extensions like <code class="docutils literal notranslate"><span class="pre">_testcapi</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36146">bpo-36146</a>: Fix setup.py on macOS: only add <code class="docutils literal notranslate"><span class="pre">/usr/include/ffi</span></code> to include
directories of _ctypes, not for all extensions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31904">bpo-31904</a>: Enable build system to cross-build for VxWorks RTOS.</p></li>
</ul>
</section>
<section id="id504">
<h3>Windows<a class="headerlink" href="#id504" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36312">bpo-36312</a>: Fixed decoders for the following code pages: 50220, 50221,
50222, 50225, 50227, 50229, 57002 through 57011, 65000 and 42.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36264">bpo-36264</a>: Don’t honor POSIX <code class="docutils literal notranslate"><span class="pre">HOME</span></code> in <code class="docutils literal notranslate"><span class="pre">os.path.expanduser</span></code> on
windows. Patch by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24643">bpo-24643</a>: Fix name collisions due to <code class="docutils literal notranslate"><span class="pre">#define</span> <span class="pre">timezone</span> <span class="pre">_timezone</span></code> in
PC/pyconfig.h.</p></li>
</ul>
</section>
<section id="id505">
<h3>IDLE<a class="headerlink" href="#id505" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36405">bpo-36405</a>: Use dict unpacking in idlelib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36396">bpo-36396</a>: Remove fgBg param of idlelib.config.GetHighlight(). This param
was only used twice and changed the return type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36176">bpo-36176</a>: Fix IDLE autocomplete & calltip popup colors. Prevent conflicts
with Linux dark themes (and slightly darken calltip background).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23205">bpo-23205</a>: For the grep module, add tests for findfiles, refactor
findfiles to be a module-level function, and refactor findfiles to use
os.walk.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23216">bpo-23216</a>: Add docstrings to IDLE search modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36152">bpo-36152</a>: Remove colorizer.ColorDelegator.close_when_done and the
corresponding argument of .close(). In IDLE, both have always been None
or False since 2007.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32129">bpo-32129</a>: Avoid blurry IDLE application icon on macOS with Tk 8.6. Patch
by Kevin Walzer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36096">bpo-36096</a>: Refactor class variables to instance variables in colorizer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30348">bpo-30348</a>: Increase test coverage of idlelib.autocomplete by 30%. Patch by
Louie Lu</p></li>
</ul>
</section>
<section id="id506">
<h3>Tools/Demos<a class="headerlink" href="#id506" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35132">bpo-35132</a>: Fix py-list and py-bt commands of python-gdb.py on gdb7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32217">bpo-32217</a>: Fix freeze script on Windows.</p></li>
</ul>
</section>
<section id="id507">
<h3>C API<a class="headerlink" href="#id507" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36381">bpo-36381</a>: Raise <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> when ‘#’ formats are used for
building or parsing values without <code class="docutils literal notranslate"><span class="pre">PY_SSIZE_T_CLEAN</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36142">bpo-36142</a>: The whole coreconfig.h header is now excluded from
Py_LIMITED_API. Move functions definitions into a new internal
pycore_coreconfig.h header.</p></li>
</ul>
</section>
</section>
<section id="python-3-8-0-alpha-2">
<h2>Python 3.8.0 alpha 2<a class="headerlink" href="#python-3-8-0-alpha-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2019-02-25</em></p>
<section id="id508">
<h3>Core and Builtins<a class="headerlink" href="#id508" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36052">bpo-36052</a>: Raise a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> when assigning a value to
<code class="docutils literal notranslate"><span class="pre">__debug__</span></code> with the Assignment Operator. Contributed by Stéphane Wirtel
and Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36012">bpo-36012</a>: Doubled the speed of class variable writes. When a non-dunder
attribute was updated, there was an unnecessary call to update slots.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35942">bpo-35942</a>: The error message emitted when returning invalid types from
<code class="docutils literal notranslate"><span class="pre">__fspath__</span></code> in interfaces that allow passing <a class="reference internal" href="../library/os.html#os.PathLike" title="os.PathLike"><code class="xref py py-class docutils literal notranslate"><span class="pre">PathLike</span></code></a>
objects has been improved and now it does explain the origin of the error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36016">bpo-36016</a>: <code class="docutils literal notranslate"><span class="pre">gc.get_objects</span></code> can now receive an optional parameter
indicating a generation to get objects from. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1054041">bpo-1054041</a>: When the main interpreter exits due to an uncaught
KeyboardInterrupt, the process now exits in the appropriate manner for its
parent process to detect that a SIGINT or ^C terminated the process. This
allows shells and batch scripts to understand that the user has asked them
to stop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35992">bpo-35992</a>: Fix <code class="docutils literal notranslate"><span class="pre">__class_getitem__()</span></code> not being called on a class with a
custom non-subscriptable metaclass.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35993">bpo-35993</a>: Fix a crash on fork when using subinterpreters. Contributed by
Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35991">bpo-35991</a>: Fix a potential double free in Modules/_randommodule.c.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35961">bpo-35961</a>: Fix a crash in slice_richcompare(): use strong references
rather than stolen references for the two temporary internal tuples.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35911">bpo-35911</a>: Enable the creation of cell objects by adding a
<code class="docutils literal notranslate"><span class="pre">cell.__new__</span></code> method, and expose the type <code class="docutils literal notranslate"><span class="pre">cell</span></code> in <code class="docutils literal notranslate"><span class="pre">Lib/types.py</span></code>
under the name CellType. Patch by Pierre Glaser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12822">bpo-12822</a>: Use monotonic clock for <code class="docutils literal notranslate"><span class="pre">pthread_cond_timedwait</span></code> when
<code class="docutils literal notranslate"><span class="pre">pthread_condattr_setclock</span></code> and <code class="docutils literal notranslate"><span class="pre">CLOCK_MONOTONIC</span></code> are available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15248">bpo-15248</a>: The compiler emits now syntax warnings in the case when a comma
is likely missed before tuple or list.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35886">bpo-35886</a>: The implementation of PyInterpreterState has been moved into
the internal header files (guarded by Py_BUILD_CORE).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31506">bpo-31506</a>: Clarify the errors reported when <code class="docutils literal notranslate"><span class="pre">object.__new__</span></code> and
<code class="docutils literal notranslate"><span class="pre">object.__init__</span></code> receive more than one argument. Contributed by Sanyam
Khurana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35724">bpo-35724</a>: Signal-handling is now guaranteed to happen relative to the
main interpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33608">bpo-33608</a>: We added a new internal _Py_AddPendingCall() that operates
relative to the provided interpreter. This allows us to use the existing
implementation to ask another interpreter to do work that cannot be done
in the current interpreter, like decref an object the other interpreter
owns. The existing Py_AddPendingCall() only operates relative to the main
interpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33989">bpo-33989</a>: Fix a possible crash in <a class="reference internal" href="../library/stdtypes.html#list.sort" title="list.sort"><code class="xref py py-meth docutils literal notranslate"><span class="pre">list.sort()</span></code></a> when sorting objects
with <code class="docutils literal notranslate"><span class="pre">ob_type->tp_richcompare</span> <span class="pre">==</span> <span class="pre">NULL</span></code>. Patch by Zackery Spytz.</p></li>
</ul>
</section>
<section id="id509">
<h3>Library<a class="headerlink" href="#id509" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35512">bpo-35512</a>: <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.patch.dict" title="unittest.mock.patch.dict"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.patch.dict()</span></code></a> used as a decorator with
string target resolves the target during function call instead of during
decorator construction. Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36018">bpo-36018</a>: Add statistics.NormalDist, a tool for creating and manipulating
normal distributions of random variable. Features a composite class that
treats the mean and standard deviation of measurement data as single
entity.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35904">bpo-35904</a>: Added statistics.fmean() as a faster, floating-point variant of
the existing mean() function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35918">bpo-35918</a>: Removed broken <code class="docutils literal notranslate"><span class="pre">has_key</span></code> method from
multiprocessing.managers.SyncManager.dict. Contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18283">bpo-18283</a>: Add support for bytes to <a class="reference internal" href="../library/shutil.html#shutil.which" title="shutil.which"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.which()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35960">bpo-35960</a>: Fix <a class="reference internal" href="../library/dataclasses.html#dataclasses.field" title="dataclasses.field"><code class="xref py py-func docutils literal notranslate"><span class="pre">dataclasses.field()</span></code></a> throwing away empty mapping
objects passed as metadata.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35500">bpo-35500</a>: Write expected and actual call parameters on separate lines in
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.Mock.assert_called_with" title="unittest.mock.Mock.assert_called_with"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.mock.Mock.assert_called_with()</span></code></a> assertion errors.
Contributed by Susan Su.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35931">bpo-35931</a>: The <a class="reference internal" href="../library/pdb.html#module-pdb" title="pdb: The Python debugger for interactive interpreters."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code></a> <code class="docutils literal notranslate"><span class="pre">debug</span></code> command now gracefully handles syntax
errors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24209">bpo-24209</a>: In http.server script, rely on getaddrinfo to bind to preferred
address based on the bind parameter. Now default bind or binding to a name
may bind to IPv6 or dual-stack, depending on the environment.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35321">bpo-35321</a>: Set <code class="docutils literal notranslate"><span class="pre">__spec__.origin</span></code> of <code class="docutils literal notranslate"><span class="pre">_frozen_importlib</span></code> to frozen so
that it matches the behavior of <code class="docutils literal notranslate"><span class="pre">_frozen_importlib_external</span></code>. Patch by
Nina Zakharenko.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35378">bpo-35378</a>: Fix a reference issue inside <code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Pool</span></code> that
caused the pool to remain alive if it was deleted without being closed or
terminated explicitly. A new strong reference is added to the pool
iterators to link the lifetime of the pool to the lifetime of its
iterators so the pool does not get destroyed if a pool iterator is still
alive.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34294">bpo-34294</a>: re module, fix wrong capturing groups in rare cases.
<a class="reference internal" href="../library/re.html#re.search" title="re.search"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.search()</span></code></a>, <a class="reference internal" href="../library/re.html#re.findall" title="re.findall"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.findall()</span></code></a>, <a class="reference internal" href="../library/re.html#re.sub" title="re.sub"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.sub()</span></code></a> and other functions
that scan through string looking for a match, should reset capturing
groups between two match attempts. Patch by Ma Lin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35615">bpo-35615</a>: <a class="reference internal" href="../library/weakref.html#module-weakref" title="weakref: Support for weak references and weak dictionaries."><code class="xref py py-mod docutils literal notranslate"><span class="pre">weakref</span></code></a>: Fix a RuntimeError when copying a
WeakKeyDictionary or a WeakValueDictionary, due to some keys or values
disappearing while iterating.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35606">bpo-35606</a>: Implement <a class="reference internal" href="../library/math.html#math.prod" title="math.prod"><code class="xref py py-func docutils literal notranslate"><span class="pre">math.prod()</span></code></a> as analogous function to
<a class="reference internal" href="../library/functions.html#sum" title="sum"><code class="xref py py-func docutils literal notranslate"><span class="pre">sum()</span></code></a> that returns the product of a ‘start’ value (default: 1) times
an iterable of numbers. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32417">bpo-32417</a>: Performing arithmetic between <a class="reference internal" href="../library/datetime.html#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a>
subclasses and <a class="reference internal" href="../library/datetime.html#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.timedelta</span></code></a> now returns an object of the
same type as the <a class="reference internal" href="../library/datetime.html#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a> subclass. As a result,
<a class="reference internal" href="../library/datetime.html#datetime.datetime.astimezone" title="datetime.datetime.astimezone"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.astimezone()</span></code></a> and alternate constructors like
<a class="reference internal" href="../library/datetime.html#datetime.datetime.now" title="datetime.datetime.now"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.now()</span></code></a> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.fromtimestamp()</span></code> called
with a <code class="docutils literal notranslate"><span class="pre">tz</span></code> argument now <em>also</em> retain their subclass.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35153">bpo-35153</a>: Add <em>headers</em> optional keyword-only parameter to
<a class="reference internal" href="../library/xmlrpc.client.html#xmlrpc.client.ServerProxy" title="xmlrpc.client.ServerProxy"><code class="xref py py-class docutils literal notranslate"><span class="pre">xmlrpc.client.ServerProxy</span></code></a>, <code class="xref py py-class docutils literal notranslate"><span class="pre">xmlrpc.client.Transport</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">xmlrpc.client.SafeTransport</span></code>. Patch by Cédric Krier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34572">bpo-34572</a>: Fix C implementation of pickle.loads to use importlib’s locking
mechanisms, and thereby avoid using partially loaded modules. Patch by Tim
Burgess.</p></li>
</ul>
</section>
<section id="id510">
<h3>Documentation<a class="headerlink" href="#id510" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36083">bpo-36083</a>: Fix formatting of –check-hash-based-pycs options in the
manpage Synopsis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36007">bpo-36007</a>: Bump minimum sphinx version to 1.8. Patch by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22062">bpo-22062</a>: Update documentation and docstrings for pathlib. Original patch
by Mike Short.</p></li>
</ul>
</section>
<section id="id511">
<h3>Tests<a class="headerlink" href="#id511" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27313">bpo-27313</a>: Avoid test_ttk_guionly ComboboxTest failure with macOS Cocoa
Tk.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36019">bpo-36019</a>: Add test.support.TEST_HTTP_URL and replace references of
<a class="reference external" href="http://www.example.com">http://www.example.com</a> by this new constant. Contributed by Stéphane
Wirtel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=36037">bpo-36037</a>: Fix test_ssl for strict OpenSSL configuration like RHEL8 strict
crypto policy. Use older TLS version for minimum TLS version of the server
SSL context if needed, to test TLS version older than default minimum TLS
version.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35798">bpo-35798</a>: Added <code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.check_syntax_warning()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35505">bpo-35505</a>: Make test_imap4_host_default_value independent on whether the
local IMAP server is running.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35917">bpo-35917</a>: multiprocessing: provide unit tests for SyncManager and
SharedMemoryManager classes + all the shareable types which are supposed
to be supported by them. (patch by Giampaolo Rodola)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35704">bpo-35704</a>: Skip <code class="docutils literal notranslate"><span class="pre">test_shutil.test_unpack_archive_xztar</span></code> to prevent a
MemoryError on 32-bit AIX when MAXDATA setting is less than 0x20000000.</p>
<p>Patch by Michael Felt (aixtools)</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34720">bpo-34720</a>: Assert m_state != NULL to mimic GC traversal functions that do
not correctly handle module creation when the module state has not been
created.</p></li>
</ul>
</section>
<section id="id512">
<h3>Windows<a class="headerlink" href="#id512" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35976">bpo-35976</a>: Added ARM build support to Windows build files in PCBuild.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35692">bpo-35692</a>: <code class="docutils literal notranslate"><span class="pre">pathlib</span></code> no longer raises when checking file and directory
existence on drives that are not ready</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35872">bpo-35872</a>: Uses the base Python executable when invoking venv in a virtual
environment</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35873">bpo-35873</a>: Prevents venv paths being inherited by child processes</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35299">bpo-35299</a>: Fix sysconfig detection of the source directory and distutils
handling of pyconfig.h during PGO profiling</p></li>
</ul>
</section>
<section id="id513">
<h3>IDLE<a class="headerlink" href="#id513" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24310">bpo-24310</a>: IDLE – Document settings dialog font tab sample.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35833">bpo-35833</a>: Revise IDLE doc for control codes sent to Shell. Add a code
example block.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35689">bpo-35689</a>: Add docstrings and unittests for colorizer.py.</p></li>
</ul>
</section>
</section>
<section id="python-3-8-0-alpha-1">
<h2>Python 3.8.0 alpha 1<a class="headerlink" href="#python-3-8-0-alpha-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2019-02-03</em></p>
<section id="id514">
<h3>Security<a class="headerlink" href="#id514" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35746">bpo-35746</a>: <span class="target" id="index-353"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2019-5010"><strong>CVE 2019-5010</strong></a>: Fix a NULL pointer deref in ssl module. The
cert parser did not handle CRL distribution points with empty DP or URI
correctly. A malicious or buggy certificate can result into segfault.
Vulnerability (TALOS-2018-0758) reported by Colin Read and Nicolas Edet of
Cisco.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34812">bpo-34812</a>: The <a class="reference internal" href="../using/cmdline.html#cmdoption-I"><code class="xref std std-option docutils literal notranslate"><span class="pre">-I</span></code></a> command line option (run Python in isolated
mode) is now also copied by the <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a> and <code class="docutils literal notranslate"><span class="pre">distutils</span></code>
modules when spawning child processes. Previously, only <a class="reference internal" href="../using/cmdline.html#cmdoption-E"><code class="xref std std-option docutils literal notranslate"><span class="pre">-E</span></code></a> and
<a class="reference internal" href="../using/cmdline.html#cmdoption-s"><code class="xref std std-option docutils literal notranslate"><span class="pre">-s</span></code></a> options (enabled by <a class="reference internal" href="../using/cmdline.html#cmdoption-I"><code class="xref std std-option docutils literal notranslate"><span class="pre">-I</span></code></a>) were copied.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34791">bpo-34791</a>: The xml.sax and xml.dom.domreg no longer use environment
variables to override parser implementations when
sys.flags.ignore_environment is set by -E or -I arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17239">bpo-17239</a>: The xml.sax and xml.dom.minidom parsers no longer processes
external entities by default. External DTD and ENTITY declarations no
longer load files or create network connections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34623">bpo-34623</a>: <span class="target" id="index-354"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2018-14647"><strong>CVE 2018-14647</strong></a>: The C accelerated _elementtree module now
initializes hash randomization salt from _Py_HashSecret instead of
libexpat’s default CSPRNG.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34405">bpo-34405</a>: Updated to OpenSSL 1.1.0i for Windows builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33871">bpo-33871</a>: Fixed sending the part of the file in <a class="reference internal" href="../library/os.html#os.sendfile" title="os.sendfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.sendfile()</span></code></a> on
macOS. Using the <em>trailers</em> argument could cause sending more bytes from
the input file than was specified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32533">bpo-32533</a>: Fixed thread-safety of error handling in _ssl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33136">bpo-33136</a>: Harden ssl module against LibreSSL <span class="target" id="index-355"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2018-8970"><strong>CVE 2018-8970</strong></a>.
X509_VERIFY_PARAM_set1_host() is called with an explicit namelen. A new
test ensures that NULL bytes are not allowed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33001">bpo-33001</a>: Minimal fix to prevent buffer overrun in os.symlink on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32981">bpo-32981</a>: Regexes in difflib and poplib were vulnerable to catastrophic
backtracking. These regexes formed potential DOS vectors (REDOS). They
have been refactored. This resolves <span class="target" id="index-356"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2018-1060"><strong>CVE 2018-1060</strong></a> and <span class="target" id="index-357"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2018-1061"><strong>CVE 2018-1061</strong></a>.
Patch by Jamie Davis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28414">bpo-28414</a>: The ssl module now allows users to perform their own IDN
en/decoding when using SNI.</p></li>
</ul>
</section>
<section id="id515">
<h3>Core and Builtins<a class="headerlink" href="#id515" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35877">bpo-35877</a>: Make parenthesis optional for named expressions in while
statement. Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35814">bpo-35814</a>: Allow same right hand side expressions in annotated assignments
as in normal ones. In particular, <code class="docutils literal notranslate"><span class="pre">x:</span> <span class="pre">Tuple[int,</span> <span class="pre">int]</span> <span class="pre">=</span> <span class="pre">1,</span> <span class="pre">2</span></code> (without
parentheses on the right) is now allowed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35766">bpo-35766</a>: Add the option to parse PEP 484 type comments in the ast
module. (Off by default.) This is merging the key functionality of the
third party fork thereof,
[typed_ast](<a class="reference external" href="https://github.com/python/typed_ast">https://github.com/python/typed_ast</a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35713">bpo-35713</a>: Reorganize Python initialization to get working exceptions and
sys.stderr earlier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33416">bpo-33416</a>: Add end line and end column position information to the Python
AST nodes. This is a C-level backwards incompatible change.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35720">bpo-35720</a>: Fixed a minor memory leak in pymain_parse_cmdline_impl function
in Modules/main.c</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35634">bpo-35634</a>: <code class="docutils literal notranslate"><span class="pre">func(**kwargs)</span></code> will now raise an error when <code class="docutils literal notranslate"><span class="pre">kwargs</span></code> is a
mapping containing multiple entries with the same key. An error was
already raised when other keyword arguments are passed before <code class="docutils literal notranslate"><span class="pre">**kwargs</span></code>
since Python 3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35623">bpo-35623</a>: Fix a crash when sorting very long lists. Patch by Stephan
Hohe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35214">bpo-35214</a>: clang Memory Sanitizer build instrumentation was added to work
around false positives from posix, socket, time, test_io, and
test_faulthandler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35560">bpo-35560</a>: Fix an assertion error in <a class="reference internal" href="../library/functions.html#format" title="format"><code class="xref py py-func docutils literal notranslate"><span class="pre">format()</span></code></a> in debug build for
floating-point formatting with “n” format, zero padding and small width.
Release build is not impacted. Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35552">bpo-35552</a>: Format characters <code class="docutils literal notranslate"><span class="pre">%s</span></code> and <code class="docutils literal notranslate"><span class="pre">%V</span></code> in
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_FromFormat" title="PyUnicode_FromFormat"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_FromFormat()</span></code></a> and <code class="docutils literal notranslate"><span class="pre">%s</span></code> in <a class="reference internal" href="../c-api/bytes.html#c.PyBytes_FromFormat" title="PyBytes_FromFormat"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyBytes_FromFormat()</span></code></a>
no longer read memory past the limit if <em>precision</em> is specified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35504">bpo-35504</a>: Fix segfaults and <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a>s when deleting certain
attributes. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35504">bpo-35504</a>: Fixed a SystemError when delete the characters_written
attribute of an OSError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35494">bpo-35494</a>: Improved syntax error messages for unbalanced parentheses in
f-string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35444">bpo-35444</a>: Fixed error handling in pickling methods when fail to look up
builtin “getattr”. Sped up pickling iterators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35436">bpo-35436</a>: Fix various issues with memory allocation error handling.
Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35423">bpo-35423</a>: Separate the signal handling trigger in the eval loop from the
“pending calls” machinery. There is no semantic change and the difference
in performance is insignificant.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35357">bpo-35357</a>: Internal attributes’ names of unittest.mock._Call and
unittest.mock.MagicProxy (name, parent & from_kall) are now prefixed with
_mock_ in order to prevent clashes with widely used object attributes.
Fixed minor typo in test function name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35372">bpo-35372</a>: Fixed the code page decoder for input longer than 2 GiB
containing undecodable bytes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35336">bpo-35336</a>: Fix PYTHONCOERCECLOCALE=1 environment variable: only coerce the
C locale if the LC_CTYPE locale is “C”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31241">bpo-31241</a>: The <em>lineno</em> and <em>col_offset</em> attributes of AST nodes for list
comprehensions, generator expressions and tuples are now point to the
opening parenthesis or square brace. For tuples without parenthesis they
point to the position of the first item.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33954">bpo-33954</a>: For <a class="reference internal" href="../library/stdtypes.html#str.format" title="str.format"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.format()</span></code></a>, <code class="xref py py-meth docutils literal notranslate"><span class="pre">float.__format__()</span></code> and
<code class="xref py py-meth docutils literal notranslate"><span class="pre">complex.__format__()</span></code> methods for non-ASCII decimal point when using
the “n” formatter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35269">bpo-35269</a>: Fix a possible segfault involving a newly created coroutine.
Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35224">bpo-35224</a>: Implement <span class="target" id="index-358"></span><a class="pep reference external" href="https://peps.python.org/pep-0572/"><strong>PEP 572</strong></a> (assignment expressions). Patch by Emily
Morehouse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32492">bpo-32492</a>: Speed up <code class="xref py py-func docutils literal notranslate"><span class="pre">namedtuple()</span></code> attribute access by 1.6x using a C
fast-path for the name descriptors. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35214">bpo-35214</a>: Fixed an out of bounds memory access when parsing a truncated
unicode escape sequence at the end of a string such as <code class="docutils literal notranslate"><span class="pre">'\N'</span></code>. It would
read one byte beyond the end of the memory allocation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35214">bpo-35214</a>: The interpreter and extension modules have had annotations
added so that they work properly under clang’s Memory Sanitizer. A new
configure flag –with-memory-sanitizer has been added to make test builds
of this nature easier to perform.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35193">bpo-35193</a>: Fix an off by one error in the bytecode peephole optimizer
where it could read bytes beyond the end of bounds of an array when
removing unreachable code. This bug was present in every release of Python
3.6 and 3.7 until now.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35169">bpo-35169</a>: Improved error messages for forbidden assignments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34022">bpo-34022</a>: Fix handling of hash-based bytecode files in <a class="reference internal" href="../library/zipimport.html#module-zipimport" title="zipimport: Support for importing Python modules from ZIP archives."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipimport</span></code></a>.
Patch by Elvis Pranskevichus.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28401">bpo-28401</a>: Debug builds will no longer to attempt to import extension
modules built for the ABI as they were never compatible to begin with.
Patch by Stefano Rivera.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29341">bpo-29341</a>: Clarify in the docstrings of <a class="reference internal" href="../library/os.html#module-os" title="os: Miscellaneous operating system interfaces."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os</span></code></a> methods that path-like
objects are also accepted as input parameters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35050">bpo-35050</a>: <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a>: Fix off-by-one bug in length check for
<code class="docutils literal notranslate"><span class="pre">AF_ALG</span></code> name and type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29743">bpo-29743</a>: Raise <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> in case
of a negative <code class="docutils literal notranslate"><span class="pre">_length_</span></code> in a <a class="reference internal" href="../library/ctypes.html#ctypes.Array" title="ctypes.Array"><code class="xref py py-class docutils literal notranslate"><span class="pre">ctypes.Array</span></code></a> subclass. Also
raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> for non-integer
<code class="docutils literal notranslate"><span class="pre">_length_</span></code>. Original patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16806">bpo-16806</a>: Fix <code class="docutils literal notranslate"><span class="pre">lineno</span></code> and <code class="docutils literal notranslate"><span class="pre">col_offset</span></code> for multi-line string tokens.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35029">bpo-35029</a>: <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a> raised as an exception at code generation
time will be now replaced with a <a class="reference internal" href="../library/exceptions.html#SyntaxError" title="SyntaxError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxError</span></code></a> for better error
reporting.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34983">bpo-34983</a>: Expose <a class="reference internal" href="../library/symtable.html#symtable.Symbol.is_nonlocal" title="symtable.Symbol.is_nonlocal"><code class="xref py py-meth docutils literal notranslate"><span class="pre">symtable.Symbol.is_nonlocal()</span></code></a> in the symtable
module. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34974">bpo-34974</a>: <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytearray</span></code></a> constructors no longer
convert unexpected exceptions (e.g. <a class="reference internal" href="../library/exceptions.html#MemoryError" title="MemoryError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">MemoryError</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#KeyboardInterrupt" title="KeyboardInterrupt"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyboardInterrupt</span></code></a>) to <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34939">bpo-34939</a>: Allow annotated names in module namespace that are declared
global before the annotation happens. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34973">bpo-34973</a>: Fixed crash in <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">bytes()</span></code></a> when the <a class="reference internal" href="../library/stdtypes.html#list" title="list"><code class="xref py py-class docutils literal notranslate"><span class="pre">list</span></code></a> argument is
mutated while it is iterated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34876">bpo-34876</a>: The <em>lineno</em> and <em>col_offset</em> attributes of the AST for
decorated function and class refer now to the position of the
corresponding <code class="docutils literal notranslate"><span class="pre">def</span></code>, <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">def</span></code> and <code class="docutils literal notranslate"><span class="pre">class</span></code> instead of the position
of the first decorator. This leads to more correct line reporting in
tracing. This is the only case when the position of child AST nodes can
precede the position of the parent AST node.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34879">bpo-34879</a>: Fix a possible null pointer dereference in bytesobject.c.
Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34784">bpo-34784</a>: Fix the implementation of PyStructSequence_NewType in order to
create heap allocated StructSequences.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32912">bpo-32912</a>: A <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a> is now emitted instead of a
<a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> for invalid escape sequences in string and bytes
literals.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34854">bpo-34854</a>: Fixed a crash in compiling string annotations containing a
lambda with a keyword-only argument that doesn’t have a default value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34850">bpo-34850</a>: The compiler now produces a <a class="reference internal" href="../library/exceptions.html#SyntaxWarning" title="SyntaxWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SyntaxWarning</span></code></a> when identity
checks (<code class="docutils literal notranslate"><span class="pre">is</span></code> and <code class="docutils literal notranslate"><span class="pre">is</span> <span class="pre">not</span></code>) are used with certain types of literals
(e.g. strings, ints). These can often work by accident in CPython, but
are not guaranteed by the language spec. The warning advises users to use
equality tests (<code class="docutils literal notranslate"><span class="pre">==</span></code> and <code class="docutils literal notranslate"><span class="pre">!=</span></code>) instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34824">bpo-34824</a>: Fix a possible null pointer dereference in Modules/_ssl.c.
Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30156">bpo-30156</a>: The C function <code class="docutils literal notranslate"><span class="pre">property_descr_get()</span></code> uses a “cached” tuple
to optimize function calls. But this tuple can be discovered in debug mode
with <a class="reference internal" href="../library/sys.html#sys.getobjects" title="sys.getobjects"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.getobjects()</span></code></a>. Remove the optimization, it’s not really
worth it and it causes 3 different crashes last years.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34762">bpo-34762</a>: Fix contextvars C API to use PyObject* pointer types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34751">bpo-34751</a>: The hash function for tuples is now based on xxHash which gives
better collision results on (formerly) pathological cases. Additionally,
on 64-bit systems it improves tuple hashes in general. Patch by Jeroen
Demeyer with substantial contributions by Tim Peters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34735">bpo-34735</a>: Fix a memory leak in Modules/timemodule.c. Patch by Zackery
Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34683">bpo-34683</a>: Fixed a bug where some SyntaxError error pointed to locations
that were off-by-one.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34651">bpo-34651</a>: Only allow the main interpreter to fork. The avoids the
possibility of affecting the main interpreter, which is critical to
operation of the runtime.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34653">bpo-34653</a>: Remove unused function PyParser_SimpleParseStringFilename.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32236">bpo-32236</a>: Warn that line buffering is not supported if <a class="reference internal" href="../library/functions.html#open" title="open"><code class="xref py py-func docutils literal notranslate"><span class="pre">open()</span></code></a> is
called with binary mode and <code class="docutils literal notranslate"><span class="pre">buffering=1</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34641">bpo-34641</a>: Further restrict the syntax of the left-hand side of keyword
arguments in function calls. In particular, <code class="docutils literal notranslate"><span class="pre">f((keyword)=arg)</span></code> is now
disallowed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34637">bpo-34637</a>: Make the <em>start</em> argument to <em>sum()</em> visible as a keyword
argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1621">bpo-1621</a>: Do not assume signed integer overflow behavior (C undefined
behavior) when performing set hash table resizing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34588">bpo-34588</a>: Fix an off-by-one in the recursive call pruning feature of
traceback formatting.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34485">bpo-34485</a>: On Windows, the LC_CTYPE is now set to the user preferred
locale at startup. Previously, the LC_CTYPE locale was “C” at startup, but
changed when calling setlocale(LC_CTYPE, “”) or setlocale(LC_ALL, “”).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34485">bpo-34485</a>: Standard streams like sys.stdout now use the “surrogateescape”
error handler, instead of “strict”, on the POSIX locale (when the C locale
is not coerced and the UTF-8 Mode is disabled).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34485">bpo-34485</a>: Fix the error handler of standard streams like sys.stdout:
PYTHONIOENCODING=”:” is now ignored instead of setting the error handler
to “strict”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34485">bpo-34485</a>: Python now gets the locale encoding with C code to initialize
the encoding of standard streams like sys.stdout. Moreover, the encoding
is now initialized to the Python codec name to get a normalized encoding
name and to ensure that the codec is loaded. The change avoids importing
_bootlocale and _locale modules at startup by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34527">bpo-34527</a>: On FreeBSD, Py_DecodeLocale() and Py_EncodeLocale() now also
forces the ASCII encoding if the LC_CTYPE locale is “POSIX”, not only if
the LC_CTYPE locale is “C”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34527">bpo-34527</a>: The UTF-8 Mode is now also enabled by the “POSIX” locale, not
only by the “C” locale.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34403">bpo-34403</a>: On HP-UX with C or POSIX locale, sys.getfilesystemencoding()
now returns “ascii” instead of “roman8” (when the UTF-8 Mode is disabled
and the C locale is not coerced).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34523">bpo-34523</a>: The Python filesystem encoding is now read earlier during the
Python initialization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12458">bpo-12458</a>: Tracebacks show now correct line number for subexpressions in
multiline expressions. Tracebacks show now the line number of the first
line for multiline expressions instead of the line number of the last
subexpression.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34408">bpo-34408</a>: Prevent a null pointer dereference and resource leakage in
<code class="docutils literal notranslate"><span class="pre">PyInterpreterState_New()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34400">bpo-34400</a>: Fix undefined behavior in parsetok.c. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33073">bpo-33073</a>: Added as_integer_ratio to ints to make them more interoperable
with floats.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34377">bpo-34377</a>: Update valgrind suppression list to use
<code class="docutils literal notranslate"><span class="pre">_PyObject_Free</span></code>/<code class="docutils literal notranslate"><span class="pre">_PyObject_Realloc</span></code> instead of
<code class="docutils literal notranslate"><span class="pre">PyObject_Free</span></code>/<code class="docutils literal notranslate"><span class="pre">PyObject_Realloc</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34353">bpo-34353</a>: Added the “socket” option in the <code class="docutils literal notranslate"><span class="pre">stat.filemode()</span></code> Python
implementation to match the C implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34320">bpo-34320</a>: Fix <code class="docutils literal notranslate"><span class="pre">dict(od)</span></code> didn’t copy iteration order of OrderedDict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34113">bpo-34113</a>: Fixed crash on debug builds when opcode stack was adjusted with
negative numbers. Patch by Constantin Petrisor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34100">bpo-34100</a>: Compiler now merges constants in tuples and frozensets
recursively. Code attributes like <code class="docutils literal notranslate"><span class="pre">co_names</span></code> are merged too.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34151">bpo-34151</a>: Performance of list concatenation, repetition and slicing
operations is slightly improved. Patch by Sergey Fedoseev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34170">bpo-34170</a>: -X dev: it is now possible to override the memory allocator
using PYTHONMALLOC even if the developer mode is enabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33237">bpo-33237</a>: Improved <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> message for partially
initialized module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34149">bpo-34149</a>: Fix min and max functions to get default behavior when key is
None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34125">bpo-34125</a>: Profiling of unbound built-in methods now works when
<code class="docutils literal notranslate"><span class="pre">**kwargs</span></code> is given.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34141">bpo-34141</a>: Optimized pickling atomic types (None, bool, int, float, bytes,
str).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34126">bpo-34126</a>: Fix crashes when profiling certain invalid calls of unbound
methods. Patch by Jeroen Demeyer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24618">bpo-24618</a>: Fixed reading invalid memory when create the code object with
too small varnames tuple or too large argument counts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34068">bpo-34068</a>: In <a class="reference internal" href="../library/io.html#io.IOBase.close" title="io.IOBase.close"><code class="xref py py-meth docutils literal notranslate"><span class="pre">io.IOBase.close()</span></code></a>, ensure that the
<a class="reference internal" href="../library/io.html#io.IOBase.closed" title="io.IOBase.closed"><code class="xref py py-attr docutils literal notranslate"><span class="pre">closed</span></code></a> attribute is not set with a live exception.
Patch by Zackery Spytz and Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34087">bpo-34087</a>: Fix buffer overflow while converting unicode to numeric values.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34080">bpo-34080</a>: Fixed a memory leak in the compiler when it raised some
uncommon errors during tokenizing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34066">bpo-34066</a>: Disabled interruption by Ctrl-C between calling <code class="docutils literal notranslate"><span class="pre">open()</span></code> and
entering a <strong>with</strong> block in <code class="docutils literal notranslate"><span class="pre">with</span> <span class="pre">open()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34042">bpo-34042</a>: Fix dict.copy() to maintain correct total refcount (as reported
by sys.gettotalrefcount()).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33418">bpo-33418</a>: Fix potential memory leak in function object when it creates
reference cycle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33985">bpo-33985</a>: Implement contextvars.ContextVar.name attribute.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33956">bpo-33956</a>: Update vendored Expat library copy to version 2.2.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24596">bpo-24596</a>: Decref the module object in <a class="reference internal" href="../c-api/veryhigh.html#c.PyRun_SimpleFileExFlags" title="PyRun_SimpleFileExFlags"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyRun_SimpleFileExFlags()</span></code></a>
before calling <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_Print" title="PyErr_Print"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_Print()</span></code></a>. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33451">bpo-33451</a>: Close directly executed pyc files before calling
<code class="docutils literal notranslate"><span class="pre">PyEval_EvalCode()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1617161">bpo-1617161</a>: The hash of <code class="xref py py-class docutils literal notranslate"><span class="pre">BuiltinMethodType</span></code> instances (methods of
built-in classes) now depends on the hash of the identity of <em>__self__</em>
instead of its value. The hash and equality of <code class="xref py py-class docutils literal notranslate"><span class="pre">ModuleType</span></code> and
<code class="xref py py-class docutils literal notranslate"><span class="pre">MethodWrapperType</span></code> instances (methods of user-defined classes and
some methods of built-in classes like <code class="docutils literal notranslate"><span class="pre">str.__add__</span></code>) now depend on the
hash and equality of the identity of <em>__self__</em> instead of its value.
<code class="xref py py-class docutils literal notranslate"><span class="pre">MethodWrapperType</span></code> instances no longer support ordering.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33824">bpo-33824</a>: Fix “LC_ALL=C python3.7 -V”: reset properly the command line
parser when the encoding changes after reading the Python configuration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33803">bpo-33803</a>: Fix a crash in hamt.c caused by enabling GC tracking for an
object that hadn’t all of its fields set to NULL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33738">bpo-33738</a>: Seven macro incompatibilities with the Limited API were fixed,
and the macros <a class="reference internal" href="../c-api/iter.html#c.PyIter_Check" title="PyIter_Check"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyIter_Check()</span></code></a>, <a class="reference internal" href="../c-api/number.html#c.PyIndex_Check" title="PyIndex_Check"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyIndex_Check()</span></code></a> and
<a class="reference internal" href="../c-api/exceptions.html#c.PyExceptionClass_Name" title="PyExceptionClass_Name"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyExceptionClass_Name()</span></code></a> were added as functions. A script for
automatic macro checks was added.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33786">bpo-33786</a>: Fix asynchronous generators to handle GeneratorExit in athrow()
correctly</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30167">bpo-30167</a>: <code class="docutils literal notranslate"><span class="pre">PyRun_SimpleFileExFlags</span></code> removes <code class="docutils literal notranslate"><span class="pre">__cached__</span></code> from module
in addition to <code class="docutils literal notranslate"><span class="pre">__file__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33706">bpo-33706</a>: Fix a crash in Python initialization when parsing the command
line options. Thanks Christoph Gohlke for the bug report and the fix!</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33597">bpo-33597</a>: Reduce <code class="docutils literal notranslate"><span class="pre">PyGC_Head</span></code> size from 3 words to 2 words.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30654">bpo-30654</a>: Fixed reset of the SIGINT handler to SIG_DFL on interpreter
shutdown even when there was a custom handler set previously. Patch by
Philipp Kerling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33622">bpo-33622</a>: Fixed a leak when the garbage collector fails to add an object
with the <code class="docutils literal notranslate"><span class="pre">__del__</span></code> method or referenced by it into the
<a class="reference internal" href="../library/gc.html#gc.garbage" title="gc.garbage"><code class="xref py py-data docutils literal notranslate"><span class="pre">gc.garbage</span></code></a> list. <a class="reference internal" href="../c-api/gcsupport.html#c.PyGC_Collect" title="PyGC_Collect"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGC_Collect()</span></code></a> can now be called when an
exception is set and preserves it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33462">bpo-33462</a>: Make dict and dict views reversible. Patch by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23722">bpo-23722</a>: A <a class="reference internal" href="../library/exceptions.html#RuntimeError" title="RuntimeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">RuntimeError</span></code></a> is now raised when the custom metaclass
doesn’t provide the <code class="docutils literal notranslate"><span class="pre">__classcell__</span></code> entry in the namespace passed to
<code class="docutils literal notranslate"><span class="pre">type.__new__</span></code>. A <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> was emitted in Python
3.6–3.7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33499">bpo-33499</a>: Add <span class="target" id="index-359"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONPYCACHEPREFIX"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONPYCACHEPREFIX</span></code></a> environment variable and
<a class="reference internal" href="../using/cmdline.html#cmdoption-X"><code class="xref std std-option docutils literal notranslate"><span class="pre">-X</span></code></a> <code class="docutils literal notranslate"><span class="pre">pycache_prefix</span></code> command-line option to set an alternate
root directory for writing module bytecode cache files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25711">bpo-25711</a>: The <a class="reference internal" href="../library/zipimport.html#module-zipimport" title="zipimport: Support for importing Python modules from ZIP archives."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipimport</span></code></a> module has been rewritten in pure Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33509">bpo-33509</a>: Fix module_globals parameter of warnings.warn_explicit(): don’t
crash if module_globals is not a dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31849">bpo-31849</a>: Fix signed/unsigned comparison warning in pyhash.c.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33475">bpo-33475</a>: Fixed miscellaneous bugs in converting annotations to strings
and optimized parentheses in the string representation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20104">bpo-20104</a>: Added support for the <code class="docutils literal notranslate"><span class="pre">setpgroup</span></code>, <code class="docutils literal notranslate"><span class="pre">resetids</span></code>,
<code class="docutils literal notranslate"><span class="pre">setsigmask</span></code>, <code class="docutils literal notranslate"><span class="pre">setsigdef</span></code> and <code class="docutils literal notranslate"><span class="pre">scheduler</span></code> parameters of
<code class="docutils literal notranslate"><span class="pre">posix_spawn</span></code>. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33391">bpo-33391</a>: Fix a leak in set_symmetric_difference().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33363">bpo-33363</a>: Raise a SyntaxError for <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">with</span></code> and <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">for</span></code>
statements outside of async functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28055">bpo-28055</a>: Fix unaligned accesses in siphash24(). Patch by Rolf Eike Beer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33128">bpo-33128</a>: Fix a bug that causes PathFinder to appear twice on
sys.meta_path. Patch by Pablo Galindo Salgado.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33331">bpo-33331</a>: Modules imported last are now cleared first at interpreter
shutdown.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33312">bpo-33312</a>: Fixed clang ubsan (undefined behavior sanitizer) warnings in
dictobject.c by adjusting how the internal struct _dictkeysobject shared
keys structure is declared.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33305">bpo-33305</a>: Improved syntax error messages for invalid numerical literals.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33306">bpo-33306</a>: Improved syntax error messages for unbalanced parentheses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33234">bpo-33234</a>: The list constructor will pre-size and not over-allocate when
the input length is known.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33270">bpo-33270</a>: Intern the names for all anonymous code objects. Patch by
Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30455">bpo-30455</a>: The C and Python code and the documentation related to tokens
are now generated from a single source file <code class="file docutils literal notranslate"><span class="pre">Grammar/Tokens</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33176">bpo-33176</a>: Add a <code class="docutils literal notranslate"><span class="pre">toreadonly()</span></code> method to memoryviews.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33231">bpo-33231</a>: Fix potential memory leak in <code class="docutils literal notranslate"><span class="pre">normalizestring()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33205">bpo-33205</a>: Change dict growth function from
<code class="docutils literal notranslate"><span class="pre">round_up_to_power_2(used*2+hashtable_size/2)</span></code> to
<code class="docutils literal notranslate"><span class="pre">round_up_to_power_2(used*3)</span></code>. Previously, dict is shrunk only when
<code class="docutils literal notranslate"><span class="pre">used</span> <span class="pre">==</span> <span class="pre">0</span></code>. Now dict has more chance to be shrunk.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29922">bpo-29922</a>: Improved error messages in ‘async with’ when <code class="docutils literal notranslate"><span class="pre">__aenter__()</span></code>
or <code class="docutils literal notranslate"><span class="pre">__aexit__()</span></code> return non-awaitable object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33199">bpo-33199</a>: Fix <code class="docutils literal notranslate"><span class="pre">ma_version_tag</span></code> in dict implementation is uninitialized
when copying from key-sharing dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33053">bpo-33053</a>: When using the -m switch, sys.path[0] is now explicitly
expanded as the <em>starting</em> working directory, rather than being left as
the empty path (which allows imports from the current working directory at
the time of the import)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33138">bpo-33138</a>: Changed standard error message for non-pickleable and
non-copyable types. It now says “cannot pickle” instead of “can’t pickle”
or “cannot serialize”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33018">bpo-33018</a>: Improve consistency of errors raised by <code class="docutils literal notranslate"><span class="pre">issubclass()</span></code> when
called with a non-class and an abstract base class as the first and second
arguments, respectively. Patch by Josh Bronson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33083">bpo-33083</a>: <code class="docutils literal notranslate"><span class="pre">math.factorial</span></code> no longer accepts arguments that are not
int-like. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33041">bpo-33041</a>: Added new opcode <a class="reference internal" href="../library/dis.html#opcode-END_ASYNC_FOR"><code class="xref std std-opcode docutils literal notranslate"><span class="pre">END_ASYNC_FOR</span></code></a> and fixes the
following issues:</p>
<ul class="simple">
<li><p>Setting global <a class="reference internal" href="../library/exceptions.html#StopAsyncIteration" title="StopAsyncIteration"><code class="xref py py-exc docutils literal notranslate"><span class="pre">StopAsyncIteration</span></code></a> no longer breaks <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">for</span></code>
loops.</p></li>
<li><p>Jumping into an <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">for</span></code> loop is now disabled.</p></li>
<li><p>Jumping out of an <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">for</span></code> loop no longer corrupts the stack.</p></li>
</ul>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25750">bpo-25750</a>: Fix rare Python crash due to bad refcounting in
<code class="docutils literal notranslate"><span class="pre">type_getattro()</span></code> if a descriptor deletes itself from the class. Patch
by Jeroen Demeyer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33041">bpo-33041</a>: Fixed bytecode generation for “async for” with a complex
target. A StopAsyncIteration raised on assigning or unpacking will be now
propagated instead of stopping the iteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33026">bpo-33026</a>: Fixed jumping out of “with” block by setting f_lineno.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33005">bpo-33005</a>: Fix a crash on fork when using a custom memory allocator (ex:
using PYTHONMALLOC env var). _PyGILState_Reinit() and
_PyInterpreterState_Enable() now use the default RAW memory allocator to
allocate a new interpreters mutex on fork.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32911">bpo-32911</a>: Due to unexpected compatibility issues discovered during
downstream beta testing, reverted <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29463">bpo-29463</a>. <code class="docutils literal notranslate"><span class="pre">docstring</span></code> field is
removed from Module, ClassDef, FunctionDef, and AsyncFunctionDef ast nodes
which was added in 3.7a1. Docstring expression is restored as a first
statement in their body. Based on patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17288">bpo-17288</a>: Prevent jumps from ‘return’ and ‘exception’ trace events.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32946">bpo-32946</a>: Importing names from already imported module with “from …
import …” is now 30% faster if the module is not a package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32932">bpo-32932</a>: Make error message more revealing when there are non-str
objects in <code class="docutils literal notranslate"><span class="pre">__all__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32925">bpo-32925</a>: Optimized iterating and containing test for literal lists
consisting of non-constants: <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">in</span> <span class="pre">[a,</span> <span class="pre">b]</span></code> and <code class="docutils literal notranslate"><span class="pre">for</span> <span class="pre">x</span> <span class="pre">in</span> <span class="pre">[a,</span> <span class="pre">b]</span></code>. The
case of all constant elements already was optimized.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32889">bpo-32889</a>: Update Valgrind suppression list to account for the rename of
<code class="docutils literal notranslate"><span class="pre">Py_ADDRESS_IN_RANG</span></code> to <code class="docutils literal notranslate"><span class="pre">address_in_range</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32836">bpo-32836</a>: Don’t use temporary variables in cases of list/dict/set
comprehensions</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31356">bpo-31356</a>: Remove the new API added in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31356">bpo-31356</a> (gc.ensure_disabled()
context manager).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32305">bpo-32305</a>: For namespace packages, ensure that both <code class="docutils literal notranslate"><span class="pre">__file__</span></code> and
<code class="docutils literal notranslate"><span class="pre">__spec__.origin</span></code> are set to None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32303">bpo-32303</a>: Make sure <code class="docutils literal notranslate"><span class="pre">__spec__.loader</span></code> matches <code class="docutils literal notranslate"><span class="pre">__loader__</span></code> for
namespace packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32711">bpo-32711</a>: Fix the warning messages for Python/ast_unparse.c. Patch by
Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32583">bpo-32583</a>: Fix possible crashing in builtin Unicode decoders caused by
write out-of-bound errors when using customized decode error handlers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32489">bpo-32489</a>: A <a class="reference internal" href="../reference/simple_stmts.html#continue"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">continue</span></code></a> statement is now allowed in the
<a class="reference internal" href="../reference/compound_stmts.html#finally"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">finally</span></code></a> clause.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17611">bpo-17611</a>: Simplified the interpreter loop by moving the logic of
unrolling the stack of blocks into the compiler. The compiler emits now
explicit instructions for adjusting the stack of values and calling the
cleaning up code for <a class="reference internal" href="../reference/simple_stmts.html#break"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">break</span></code></a>, <a class="reference internal" href="../reference/simple_stmts.html#continue"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">continue</span></code></a> and
<a class="reference internal" href="../reference/simple_stmts.html#return"><code class="xref std std-keyword docutils literal notranslate"><span class="pre">return</span></code></a>.</p>
<p>Removed opcodes <code class="xref std std-opcode docutils literal notranslate"><span class="pre">BREAK_LOOP</span></code>, <code class="xref std std-opcode docutils literal notranslate"><span class="pre">CONTINUE_LOOP</span></code>,
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">SETUP_LOOP</span></code> and <code class="xref std std-opcode docutils literal notranslate"><span class="pre">SETUP_EXCEPT</span></code>. Added new opcodes
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">ROT_FOUR</span></code>, <code class="xref std std-opcode docutils literal notranslate"><span class="pre">BEGIN_FINALLY</span></code> and <code class="xref std std-opcode docutils literal notranslate"><span class="pre">CALL_FINALLY</span></code> and
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">POP_FINALLY</span></code>. Changed the behavior of <code class="xref std std-opcode docutils literal notranslate"><span class="pre">END_FINALLY</span></code> and
<code class="xref std std-opcode docutils literal notranslate"><span class="pre">WITH_CLEANUP_START</span></code>.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32285">bpo-32285</a>: New function unicodedata.is_normalized, which can check whether
a string is in a specific normal form.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10544">bpo-10544</a>: Yield expressions are now disallowed in comprehensions and
generator expressions except the expression for the outermost iterable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32117">bpo-32117</a>: Iterable unpacking is now allowed without parentheses in yield
and return statements, e.g. <code class="docutils literal notranslate"><span class="pre">yield</span> <span class="pre">1,</span> <span class="pre">2,</span> <span class="pre">3,</span> <span class="pre">*rest</span></code>. Thanks to David
Cuthbert for the change and Jordan Chapman for added tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31902">bpo-31902</a>: Fix the <code class="docutils literal notranslate"><span class="pre">col_offset</span></code> attribute for ast nodes
<code class="docutils literal notranslate"><span class="pre">ast.AsyncFor</span></code>, <code class="docutils literal notranslate"><span class="pre">ast.AsyncFunctionDef</span></code>, and <code class="docutils literal notranslate"><span class="pre">ast.AsyncWith</span></code>.
Previously, <code class="docutils literal notranslate"><span class="pre">col_offset</span></code> pointed to the keyword after <code class="docutils literal notranslate"><span class="pre">async</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25862">bpo-25862</a>: Fix assertion failures in the <code class="docutils literal notranslate"><span class="pre">tell()</span></code> method of
<code class="docutils literal notranslate"><span class="pre">io.TextIOWrapper</span></code>. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21983">bpo-21983</a>: Fix a crash in <code class="docutils literal notranslate"><span class="pre">ctypes.cast()</span></code> in case the type argument is a
ctypes structured data type. Patch by Eryk Sun and Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31577">bpo-31577</a>: Fix a crash in <code class="docutils literal notranslate"><span class="pre">os.utime()</span></code> in case of a bad ns argument.
Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29832">bpo-29832</a>: Remove references to ‘getsockaddrarg’ from various socket error
messages. Patch by Oren Milman.</p></li>
</ul>
</section>
<section id="id516">
<h3>Library<a class="headerlink" href="#id516" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35845">bpo-35845</a>: Add ‘order’ parameter to memoryview.tobytes().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35864">bpo-35864</a>: The _asdict() method for collections.namedtuple now returns a
regular dict instead of an OrderedDict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35537">bpo-35537</a>: An ExitStack is now used internally within subprocess.Popen to
clean up pipe file handles. No behavior change in normal operation. But if
closing one handle were ever to cause an exception, the others will now be
closed instead of leaked. (patch by Giampaolo Rodola)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35847">bpo-35847</a>: RISC-V needed the CTYPES_PASS_BY_REF_HACK. Fixes ctypes
Structure test_pass_by_value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35813">bpo-35813</a>: Shared memory submodule added to multiprocessing to avoid need
for serialization between processes</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35780">bpo-35780</a>: Fix lru_cache() errors arising in recursive, reentrant, or
multi-threaded code. These errors could result in orphan links and in the
cache being trapped in a state with fewer than the specified maximum
number of links. Fix handling of negative maxsize which should have been
treated as zero. Fix errors in toggling the “full” status flag. Fix
misordering of links when errors are encountered. Sync-up the C code and
pure Python code for the space saving path in functions with a single
positional argument. In this common case, the space overhead of an lru
cache entry is reduced by almost half. Fix counting of cache misses. In
error cases, the miss count was out of sync with the actual number of
times the underlying user function was called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35537">bpo-35537</a>: <a class="reference internal" href="../library/os.html#os.posix_spawn" title="os.posix_spawn"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.posix_spawn()</span></code></a> and <a class="reference internal" href="../library/os.html#os.posix_spawnp" title="os.posix_spawnp"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.posix_spawnp()</span></code></a> now have a
<em>setsid</em> parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23846">bpo-23846</a>: <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.ProactorEventLoop" title="asyncio.ProactorEventLoop"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.ProactorEventLoop</span></code></a> now catches and logs send
errors when the self-pipe is full.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34323">bpo-34323</a>: <a class="reference internal" href="../library/asyncio.html#module-asyncio" title="asyncio: Asynchronous I/O."><code class="xref py py-mod docutils literal notranslate"><span class="pre">asyncio</span></code></a>: Enhance <code class="docutils literal notranslate"><span class="pre">IocpProactor.close()</span></code> log: wait 1
second before the first log, then log every second. Log also the number of
seconds since <code class="docutils literal notranslate"><span class="pre">close()</span></code> was called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35674">bpo-35674</a>: Add a new <a class="reference internal" href="../library/os.html#os.posix_spawnp" title="os.posix_spawnp"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.posix_spawnp()</span></code></a> function. Patch by Joannah
Nanjekye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35733">bpo-35733</a>: <code class="docutils literal notranslate"><span class="pre">ast.Constant(boolean)</span></code> no longer an instance of
<code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Num</span></code>. Patch by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35726">bpo-35726</a>: QueueHandler.prepare() now makes a copy of the record before
modifying and enqueueing it, to avoid affecting other handlers in the
chain.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35719">bpo-35719</a>: Sped up multi-argument <a class="reference internal" href="../library/math.html#module-math" title="math: Mathematical functions (sin() etc.)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">math</span></code></a> functions atan2(),
copysign(), remainder() and hypot() by 1.3–2.5 times.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35717">bpo-35717</a>: Fix KeyError exception raised when using enums and compile.
Patch contributed by Rémi Lapeyre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35699">bpo-35699</a>: Fixed detection of Visual Studio Build Tools 2017 in distutils</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32710">bpo-32710</a>: Fix memory leaks in asyncio ProactorEventLoop on overlapped
operation failure.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35702">bpo-35702</a>: The <a class="reference internal" href="../library/time.html#time.CLOCK_UPTIME_RAW" title="time.CLOCK_UPTIME_RAW"><code class="xref py py-const docutils literal notranslate"><span class="pre">time.CLOCK_UPTIME_RAW</span></code></a> constant is now available
for macOS 10.12.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32710">bpo-32710</a>: Fix a memory leak in asyncio in the ProactorEventLoop when
<code class="docutils literal notranslate"><span class="pre">ReadFile()</span></code> or <code class="docutils literal notranslate"><span class="pre">WSASend()</span></code> overlapped operation fail immediately:
release the internal buffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35682">bpo-35682</a>: Fix <code class="docutils literal notranslate"><span class="pre">asyncio.ProactorEventLoop.sendfile()</span></code>: don’t attempt to
set the result of an internal future if it’s already done.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35283">bpo-35283</a>: Add a deprecated warning for the
<code class="xref py py-meth docutils literal notranslate"><span class="pre">threading.Thread.isAlive()</span></code> method. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35664">bpo-35664</a>: Improve operator.itemgetter() performance by 33% with optimized
argument handling and with adding a fast path for the common case of a
single non-negative integer index into a tuple (which is the typical use
case in the standard library).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35643">bpo-35643</a>: Fixed a SyntaxWarning: invalid escape sequence in
Modules/_sha3/cleanup.py. Patch by Mickaël Schoentgen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35619">bpo-35619</a>: Improved support of custom data descriptors in <a class="reference internal" href="../library/functions.html#help" title="help"><code class="xref py py-func docutils literal notranslate"><span class="pre">help()</span></code></a> and
<a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28503">bpo-28503</a>: The <code class="docutils literal notranslate"><span class="pre">crypt</span></code> module now internally uses the <code class="docutils literal notranslate"><span class="pre">crypt_r()</span></code>
library function instead of <code class="docutils literal notranslate"><span class="pre">crypt()</span></code> when available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35614">bpo-35614</a>: Fixed help() on metaclasses. Patch by Sanyam Khurana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35568">bpo-35568</a>: Expose <code class="docutils literal notranslate"><span class="pre">raise(signum)</span></code> as <code class="docutils literal notranslate"><span class="pre">raise_signal</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35588">bpo-35588</a>: The floor division and modulo operations and the <a class="reference internal" href="../library/functions.html#divmod" title="divmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">divmod()</span></code></a>
function on <a class="reference internal" href="../library/fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal notranslate"><span class="pre">fractions.Fraction</span></code></a> types are 2–4x faster. Patch by
Stefan Behnel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35585">bpo-35585</a>: Speed-up building enums by value, e.g. http.HTTPStatus(200).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30561">bpo-30561</a>: random.gammavariate(1.0, beta) now computes the same result as
random.expovariate(1.0 / beta). This synchronizes the two algorithms and
eliminates some idiosyncrasies in the old implementation. It does however
produce a difference stream of random variables than it used to.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35537">bpo-35537</a>: The <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> module can now use the
<a class="reference internal" href="../library/os.html#os.posix_spawn" title="os.posix_spawn"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.posix_spawn()</span></code></a> function in some cases for better performance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35526">bpo-35526</a>: Delaying the ‘joke’ of barry_as_FLUFL.mandatory to Python
version 4.0</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35523">bpo-35523</a>: Remove <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a> callback workaround: no longer create a
callback at startup. Avoid SELinux alert on <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">ctypes</span></code> and <code class="docutils literal notranslate"><span class="pre">import</span>
<span class="pre">uuid</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31784">bpo-31784</a>: <a class="reference internal" href="../library/uuid.html#uuid.uuid1" title="uuid.uuid1"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid.uuid1()</span></code></a> now calls <a class="reference internal" href="../library/time.html#time.time_ns" title="time.time_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.time_ns()</span></code></a> rather than
<code class="docutils literal notranslate"><span class="pre">int(time.time()</span> <span class="pre">*</span> <span class="pre">1e9)</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35513">bpo-35513</a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">TextTestRunner</span></code> of
<code class="xref py py-mod docutils literal notranslate"><span class="pre">unittest.runner</span></code> now uses <a class="reference internal" href="../library/time.html#time.perf_counter" title="time.perf_counter"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.perf_counter()</span></code></a> rather than
<a class="reference internal" href="../library/time.html#time.time" title="time.time"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.time()</span></code></a> to measure the execution time of a test:
<a class="reference internal" href="../library/time.html#time.time" title="time.time"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.time()</span></code></a> can go backwards, whereas <a class="reference internal" href="../library/time.html#time.perf_counter" title="time.perf_counter"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.perf_counter()</span></code></a> is
monotonic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35502">bpo-35502</a>: Fixed reference leaks in
<a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.TreeBuilder" title="xml.etree.ElementTree.TreeBuilder"><code class="xref py py-class docutils literal notranslate"><span class="pre">xml.etree.ElementTree.TreeBuilder</span></code></a> in case of unfinished building
of the tree (in particular when an error was raised during parsing XML).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35348">bpo-35348</a>: Make <a class="reference internal" href="../library/platform.html#platform.architecture" title="platform.architecture"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.architecture()</span></code></a> parsing of <code class="docutils literal notranslate"><span class="pre">file</span></code> command
output more reliable: add the <code class="docutils literal notranslate"><span class="pre">-b</span></code> option to the <code class="docutils literal notranslate"><span class="pre">file</span></code> command to
omit the filename, force the usage of the C locale, and search also the
“shared object” pattern.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35491">bpo-35491</a>: <a class="reference internal" href="../library/multiprocessing.html#module-multiprocessing" title="multiprocessing: Process-based parallelism."><code class="xref py py-mod docutils literal notranslate"><span class="pre">multiprocessing</span></code></a>: Add <code class="docutils literal notranslate"><span class="pre">Pool.__repr__()</span></code> and enhance
<code class="docutils literal notranslate"><span class="pre">BaseProcess.__repr__()</span></code> (add pid and parent pid) to ease debugging.
Pool state constant values are now strings instead of integers, for
example <code class="docutils literal notranslate"><span class="pre">RUN</span></code> value becomes <code class="docutils literal notranslate"><span class="pre">'RUN'</span></code> instead of <code class="docutils literal notranslate"><span class="pre">0</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35477">bpo-35477</a>: <code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.Pool.__enter__()</span></code> now fails if the pool is
not running: <code class="docutils literal notranslate"><span class="pre">with</span> <span class="pre">pool:</span></code> fails if used more than once.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31446">bpo-31446</a>: Copy command line that was passed to CreateProcessW since this
function can change the content of the input buffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35471">bpo-35471</a>: Python 2.4 dropped MacOS 9 support. The macpath module was
deprecated in Python 3.7. The module is now removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23057">bpo-23057</a>: Unblock Proactor event loop when keyboard interrupt is received
on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35052">bpo-35052</a>: Fix xml.dom.minidom cloneNode() on a document with an entity:
pass the correct arguments to the user data handler of an entity.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20239">bpo-20239</a>: Allow repeated assignment deletion of
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.Mock" title="unittest.mock.Mock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.Mock</span></code></a> attributes. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17185">bpo-17185</a>: Set <code class="docutils literal notranslate"><span class="pre">__signature__</span></code> on mock for <a class="reference internal" href="../library/inspect.html#module-inspect" title="inspect: Extract information and source code from live objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">inspect</span></code></a> to get
signature. Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35445">bpo-35445</a>: Memory errors during creating posix.environ no longer ignored.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35415">bpo-35415</a>: Validate fileno= argument to socket.socket().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35424">bpo-35424</a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Pool</span></code> destructor now emits
<a class="reference internal" href="../library/exceptions.html#ResourceWarning" title="ResourceWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ResourceWarning</span></code></a> if the pool is still running.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35330">bpo-35330</a>: When a <code class="xref py py-class docutils literal notranslate"><span class="pre">Mock</span></code> instance was used to wrap an object, if
<code class="docutils literal notranslate"><span class="pre">side_effect</span></code> is used in one of the mocks of it methods, don’t call the
original implementation and return the result of using the side effect the
same way that it is done with return_value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35346">bpo-35346</a>: Drop Mac OS 9 and Rhapsody support from the <a class="reference internal" href="../library/platform.html#module-platform" title="platform: Retrieves as much platform identifying data as possible."><code class="xref py py-mod docutils literal notranslate"><span class="pre">platform</span></code></a>
module. Rhapsody last release was in 2000. Mac OS 9 last release was in
2001.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10496">bpo-10496</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">check_environ()</span></code> of <code class="docutils literal notranslate"><span class="pre">distutils.utils</span></code>
now catches <a class="reference internal" href="../library/exceptions.html#KeyError" title="KeyError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">KeyError</span></code></a> on calling <a class="reference internal" href="../library/pwd.html#pwd.getpwuid" title="pwd.getpwuid"><code class="xref py py-func docutils literal notranslate"><span class="pre">pwd.getpwuid()</span></code></a>: don’t create
the <code class="docutils literal notranslate"><span class="pre">HOME</span></code> environment variable in this case.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10496">bpo-10496</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">posixpath.expanduser()</span></code> now returns the input <em>path</em>
unchanged if the <code class="docutils literal notranslate"><span class="pre">HOME</span></code> environment variable is not set and the current
user has no home directory (if the current user identifier doesn’t exist
in the password database). This change fix the <a class="reference internal" href="../library/site.html#module-site" title="site: Module responsible for site-specific configuration."><code class="xref py py-mod docutils literal notranslate"><span class="pre">site</span></code></a> module if the
current user doesn’t exist in the password database (if the user has no
home directory).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35389">bpo-35389</a>: <a class="reference internal" href="../library/platform.html#platform.libc_ver" title="platform.libc_ver"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.libc_ver()</span></code></a> now uses
<code class="docutils literal notranslate"><span class="pre">os.confstr('CS_GNU_LIBC_VERSION')</span></code> if available and the <em>executable</em>
parameter is not set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35394">bpo-35394</a>: Add empty slots to asyncio abstract protocols.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35310">bpo-35310</a>: Fix a bug in <a class="reference internal" href="../library/select.html#select.select" title="select.select"><code class="xref py py-func docutils literal notranslate"><span class="pre">select.select()</span></code></a> where, in some cases, the
file descriptor sequences were returned unmodified after a signal
interruption, even though the file descriptors might not be ready yet.
<a class="reference internal" href="../library/select.html#select.select" title="select.select"><code class="xref py py-func docutils literal notranslate"><span class="pre">select.select()</span></code></a> will now always return empty lists if a timeout has
occurred. Patch by Oran Avraham.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35380">bpo-35380</a>: Enable TCP_NODELAY on Windows for proactor asyncio event loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35341">bpo-35341</a>: Add generic version of <code class="docutils literal notranslate"><span class="pre">collections.OrderedDict</span></code> to the
<code class="docutils literal notranslate"><span class="pre">typing</span></code> module. Patch by Ismo Toijala.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35371">bpo-35371</a>: Fixed possible crash in <code class="docutils literal notranslate"><span class="pre">os.utime()</span></code> on Windows when pass
incorrect arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35346">bpo-35346</a>: <a class="reference internal" href="../library/platform.html#platform.uname" title="platform.uname"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.uname()</span></code></a> now redirects <code class="docutils literal notranslate"><span class="pre">stderr</span></code> to
<a class="reference internal" href="../library/os.html#os.devnull" title="os.devnull"><code class="xref py py-data docutils literal notranslate"><span class="pre">os.devnull</span></code></a> when running external programs like <code class="docutils literal notranslate"><span class="pre">cmd</span> <span class="pre">/c</span> <span class="pre">ver</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35066">bpo-35066</a>: Previously, calling the strftime() method on a datetime object
with a trailing ‘%’ in the format string would result in an exception.
However, this only occurred when the datetime C module was being used; the
python implementation did not match this behavior. Datetime is now PEP-399
compliant, and will not throw an exception on a trailing ‘%’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35345">bpo-35345</a>: The function <code class="docutils literal notranslate"><span class="pre">platform.popen</span></code> has been removed, it was
deprecated since Python 3.3: use <a class="reference internal" href="../library/os.html#os.popen" title="os.popen"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.popen()</span></code></a> instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35344">bpo-35344</a>: On macOS, <a class="reference internal" href="../library/platform.html#platform.platform" title="platform.platform"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.platform()</span></code></a> now uses
<a class="reference internal" href="../library/platform.html#platform.mac_ver" title="platform.mac_ver"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.mac_ver()</span></code></a>, if it returns a non-empty release string, to get
the macOS version rather than the darwin version.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35312">bpo-35312</a>: Make <code class="docutils literal notranslate"><span class="pre">lib2to3.pgen2.parse.ParseError</span></code> round-trip pickle-able.
Patch by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35308">bpo-35308</a>: Fix regression in <code class="docutils literal notranslate"><span class="pre">webbrowser</span></code> where default browsers may be
preferred over browsers in the <code class="docutils literal notranslate"><span class="pre">BROWSER</span></code> environment variable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24746">bpo-24746</a>: Avoid stripping trailing whitespace in doctest fancy diff.
Original patch by R. David Murray & Jairo Trad. Enhanced by Sanyam
Khurana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28604">bpo-28604</a>: <a class="reference internal" href="../library/locale.html#locale.localeconv" title="locale.localeconv"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.localeconv()</span></code></a> now sets temporarily the <code class="docutils literal notranslate"><span class="pre">LC_CTYPE</span></code>
locale to the <code class="docutils literal notranslate"><span class="pre">LC_MONETARY</span></code> locale if the two locales are different and
monetary strings are non-ASCII. This temporary change affects other
threads.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35277">bpo-35277</a>: Update ensurepip to install pip 18.1 and setuptools 40.6.2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24209">bpo-24209</a>: Adds IPv6 support when invoking http.server directly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35226">bpo-35226</a>: Recursively check arguments when testing for equality of
<a class="reference internal" href="../library/unittest.mock.html#unittest.mock.call" title="unittest.mock.call"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.call</span></code></a> objects and add note that tracking of
parameters used to create ancestors of mocks in <code class="docutils literal notranslate"><span class="pre">mock_calls</span></code> is not
possible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29564">bpo-29564</a>: The warnings module now suggests to enable tracemalloc if the
source is specified, the tracemalloc module is available, but tracemalloc
is not tracing memory allocations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35189">bpo-35189</a>: Modify the following fnctl function to retry if interrupted by
a signal (EINTR): flock, lockf, fnctl</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30064">bpo-30064</a>: Use add_done_callback() in sock_* asyncio API to unsubscribe
reader/writer early on calcellation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35186">bpo-35186</a>: Removed the “built with” comment added when <code class="docutils literal notranslate"><span class="pre">setup.py</span> <span class="pre">upload</span></code>
is used with either <code class="docutils literal notranslate"><span class="pre">bdist_rpm</span></code> or <code class="docutils literal notranslate"><span class="pre">bdist_dumb</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35152">bpo-35152</a>: Allow sending more than 2 GB at once on a multiprocessing
connection on non-Windows systems.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35062">bpo-35062</a>: Fix incorrect parsing of
<a class="reference internal" href="../library/io.html#io.IncrementalNewlineDecoder" title="io.IncrementalNewlineDecoder"><code class="xref py py-class docutils literal notranslate"><span class="pre">io.IncrementalNewlineDecoder</span></code></a>’s <em>translate</em> argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35065">bpo-35065</a>: Remove <code class="docutils literal notranslate"><span class="pre">StreamReaderProtocol._untrack_reader</span></code>. The call to
<code class="docutils literal notranslate"><span class="pre">_untrack_reader</span></code> is currently performed too soon, causing the protocol
to forget about the reader before <code class="docutils literal notranslate"><span class="pre">connection_lost</span></code> can run and feed the
EOF to the reader.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34160">bpo-34160</a>: ElementTree and minidom now preserve the attribute order
specified by the user.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35079">bpo-35079</a>: Improve difflib.SequenceManager.get_matching_blocks doc by
adding ‘non-overlapping’ and changing ‘!=’ to ‘<’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33710">bpo-33710</a>: Deprecated <code class="docutils literal notranslate"><span class="pre">l*gettext()</span></code> functions and methods in the
<a class="reference internal" href="../library/gettext.html#module-gettext" title="gettext: Multilingual internationalization services."><code class="xref py py-mod docutils literal notranslate"><span class="pre">gettext</span></code></a> module. They return encoded bytes instead of Unicode
strings and are artifacts from Python 2 times. Also deprecated functions
and methods related to setting the charset for <code class="docutils literal notranslate"><span class="pre">l*gettext()</span></code> functions
and methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35017">bpo-35017</a>: <a class="reference internal" href="../library/socketserver.html#socketserver.BaseServer.serve_forever" title="socketserver.BaseServer.serve_forever"><code class="xref py py-meth docutils literal notranslate"><span class="pre">socketserver.BaseServer.serve_forever()</span></code></a> now exits
immediately if it’s <a class="reference internal" href="../library/socketserver.html#socketserver.BaseServer.shutdown" title="socketserver.BaseServer.shutdown"><code class="xref py py-meth docutils literal notranslate"><span class="pre">shutdown()</span></code></a> method is
called while it is polling for new events.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35024">bpo-35024</a>: <code class="docutils literal notranslate"><span class="pre">importlib</span></code> no longer logs <code class="docutils literal notranslate"><span class="pre">wrote</span> <span class="pre"><bytecode</span> <span class="pre">path></span></code>
redundantly after <code class="docutils literal notranslate"><span class="pre">(created|could</span> <span class="pre">not</span> <span class="pre">create)</span> <span class="pre"><bytecode</span> <span class="pre">path></span></code> is
already logged. Patch by Quentin Agren.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35047">bpo-35047</a>: <code class="docutils literal notranslate"><span class="pre">unittest.mock</span></code> now includes mock calls in exception messages
if <code class="docutils literal notranslate"><span class="pre">assert_not_called</span></code>, <code class="docutils literal notranslate"><span class="pre">assert_called_once</span></code>, or
<code class="docutils literal notranslate"><span class="pre">assert_called_once_with</span></code> fails. Patch by Petter Strandmark.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31047">bpo-31047</a>: Fix <code class="docutils literal notranslate"><span class="pre">ntpath.abspath</span></code> regression where it didn’t remove a
trailing separator on Windows. Patch by Tim Graham.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35053">bpo-35053</a>: tracemalloc now tries to update the traceback when an object is
reused from a “free list” (optimization for faster object creation, used
by the builtin list type for example).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31553">bpo-31553</a>: Add the –json-lines option to json.tool. Patch by hongweipeng.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34794">bpo-34794</a>: Fixed a leak in Tkinter when pass the Python wrapper around
Tcl_Obj back to Tcl/Tk.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34909">bpo-34909</a>: Enum: fix grandchildren subclassing when parent mixed with
concrete data types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35022">bpo-35022</a>: <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.MagicMock" title="unittest.mock.MagicMock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.MagicMock</span></code></a> now supports the
<code class="docutils literal notranslate"><span class="pre">__fspath__</span></code> method (from <a class="reference internal" href="../library/os.html#os.PathLike" title="os.PathLike"><code class="xref py py-class docutils literal notranslate"><span class="pre">os.PathLike</span></code></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35008">bpo-35008</a>: Fixed references leaks when call the <code class="docutils literal notranslate"><span class="pre">__setstate__()</span></code> method
of <a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.Element" title="xml.etree.ElementTree.Element"><code class="xref py py-class docutils literal notranslate"><span class="pre">xml.etree.ElementTree.Element</span></code></a> in the C implementation for
already initialized element.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23420">bpo-23420</a>: Verify the value for the parameter ‘-s’ of the cProfile CLI.
Patch by Robert Kuska</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33947">bpo-33947</a>: dataclasses now handle recursive reprs without raising
RecursionError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34890">bpo-34890</a>: Make <a class="reference internal" href="../library/inspect.html#inspect.iscoroutinefunction" title="inspect.iscoroutinefunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.iscoroutinefunction()</span></code></a>,
<a class="reference internal" href="../library/inspect.html#inspect.isgeneratorfunction" title="inspect.isgeneratorfunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.isgeneratorfunction()</span></code></a> and <a class="reference internal" href="../library/inspect.html#inspect.isasyncgenfunction" title="inspect.isasyncgenfunction"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.isasyncgenfunction()</span></code></a>
work with <a class="reference internal" href="../library/functools.html#functools.partial" title="functools.partial"><code class="xref py py-func docutils literal notranslate"><span class="pre">functools.partial()</span></code></a>. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34521">bpo-34521</a>: Use <a class="reference internal" href="../library/socket.html#socket.CMSG_SPACE" title="socket.CMSG_SPACE"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.CMSG_SPACE()</span></code></a> to calculate ancillary data size
instead of <a class="reference internal" href="../library/socket.html#socket.CMSG_LEN" title="socket.CMSG_LEN"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.CMSG_LEN()</span></code></a> in
<code class="xref py py-func docutils literal notranslate"><span class="pre">multiprocessing.reduction.recvfds()</span></code> as <span class="target" id="index-360"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc3542.html"><strong>RFC 3542</strong></a> requires the use
of the former for portable applications.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31522">bpo-31522</a>: The <code class="docutils literal notranslate"><span class="pre">mailbox.mbox.get_string</span></code> function <em>from_</em> parameter can
now successfully be set to a non-default value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34970">bpo-34970</a>: Protect tasks weak set manipulation in <code class="docutils literal notranslate"><span class="pre">asyncio.all_tasks()</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34969">bpo-34969</a>: gzip: Add –fast, –best on the gzip CLI, these parameters will
be used for the fast compression method (quick) or the best method
compress (slower, but smaller file). Also, change the default compression
level to 6 (tradeoff).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16965">bpo-16965</a>: The 2to3 <code class="docutils literal notranslate"><span class="pre">execfile</span></code> fixer now opens the file with mode
<code class="docutils literal notranslate"><span class="pre">'rb'</span></code>. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34966">bpo-34966</a>: <a class="reference internal" href="../library/pydoc.html#module-pydoc" title="pydoc: Documentation generator and online help system."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pydoc</span></code></a> now supports aliases not only to methods defined
in the end class, but also to inherited methods. The docstring is not
duplicated for aliases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34926">bpo-34926</a>: <a class="reference internal" href="../library/mimetypes.html#mimetypes.MimeTypes.guess_type" title="mimetypes.MimeTypes.guess_type"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mimetypes.MimeTypes.guess_type()</span></code></a> now accepts
<a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like object</span></a> in addition to url strings. Patch by Mayank
Asthana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23831">bpo-23831</a>: Add <code class="docutils literal notranslate"><span class="pre">moveto()</span></code> method to the <code class="docutils literal notranslate"><span class="pre">tkinter.Canvas</span></code> widget. Patch
by Juliette Monsel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34941">bpo-34941</a>: Methods <code class="docutils literal notranslate"><span class="pre">find()</span></code>, <code class="docutils literal notranslate"><span class="pre">findtext()</span></code> and <code class="docutils literal notranslate"><span class="pre">findall()</span></code> of the
<code class="docutils literal notranslate"><span class="pre">Element</span></code> class in the <a class="reference internal" href="../library/xml.etree.elementtree.html#module-xml.etree.ElementTree" title="xml.etree.ElementTree: Implementation of the ElementTree API."><code class="xref py py-mod docutils literal notranslate"><span class="pre">xml.etree.ElementTree</span></code></a> module are now able
to find children which are instances of <code class="docutils literal notranslate"><span class="pre">Element</span></code> subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32680">bpo-32680</a>: <a class="reference internal" href="../library/smtplib.html#smtplib.SMTP" title="smtplib.SMTP"><code class="xref py py-class docutils literal notranslate"><span class="pre">smtplib.SMTP</span></code></a> objects now always have a <code class="docutils literal notranslate"><span class="pre">sock</span></code>
attribute present</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34769">bpo-34769</a>: Fix for async generators not finalizing when event loop is in
debug mode and garbage collector runs in another thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34936">bpo-34936</a>: Fix <code class="docutils literal notranslate"><span class="pre">TclError</span></code> in <code class="docutils literal notranslate"><span class="pre">tkinter.Spinbox.selection_element()</span></code>.
Patch by Juliette Monsel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34829">bpo-34829</a>: Add methods <code class="docutils literal notranslate"><span class="pre">selection_from</span></code>, <code class="docutils literal notranslate"><span class="pre">selection_range</span></code>,
<code class="docutils literal notranslate"><span class="pre">selection_present</span></code> and <code class="docutils literal notranslate"><span class="pre">selection_to</span></code> to the <code class="docutils literal notranslate"><span class="pre">tkinter.Spinbox</span></code> for
consistency with the <code class="docutils literal notranslate"><span class="pre">tkinter.Entry</span></code> widget. Patch by Juliette Monsel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34911">bpo-34911</a>: Added <em>secure_protocols</em> argument to
<em>http.cookiejar.DefaultCookiePolicy</em> to allow for tweaking of protocols
and also to add support by default for <em>wss</em>, the secure websocket
protocol.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34922">bpo-34922</a>: Fixed integer overflow in the <a class="reference internal" href="../library/hashlib.html#hashlib.shake.digest" title="hashlib.shake.digest"><code class="xref py py-meth docutils literal notranslate"><span class="pre">digest()</span></code></a> and
<a class="reference internal" href="../library/hashlib.html#hashlib.shake.hexdigest" title="hashlib.shake.hexdigest"><code class="xref py py-meth docutils literal notranslate"><span class="pre">hexdigest()</span></code></a> methods for the SHAKE algorithm in the
<a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34925">bpo-34925</a>: 25% speedup in argument parsing for the functions in the bisect
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34900">bpo-34900</a>: Fixed <a class="reference internal" href="../library/unittest.html#unittest.TestCase.debug" title="unittest.TestCase.debug"><code class="xref py py-meth docutils literal notranslate"><span class="pre">unittest.TestCase.debug()</span></code></a> when used to call test
methods with subtests. Patch by Bruno Oliveira.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34844">bpo-34844</a>: logging.Formatter enhancement - Ensure styles and fmt matches
in logging.Formatter - Added validate method in each format style class:
StrFormatStyle, PercentStyle, StringTemplateStyle. - This method is called
in the constructor of logging.Formatter class - Also re-raise the KeyError
in the format method of each style class, so it would a bit clear that
it’s an error with the invalid format fields.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34897">bpo-34897</a>: Adjust test.support.missing_compiler_executable check so that a
nominal command name of “” is ignored. Patch by Michael Felt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34871">bpo-34871</a>: Fix inspect module polluted <code class="docutils literal notranslate"><span class="pre">sys.modules</span></code> when parsing
<code class="docutils literal notranslate"><span class="pre">__text_signature__</span></code> of callable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34898">bpo-34898</a>: Add <code class="docutils literal notranslate"><span class="pre">mtime</span></code> argument to <code class="docutils literal notranslate"><span class="pre">gzip.compress</span></code> for reproducible
output. Patch by Guo Ci Teo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28441">bpo-28441</a>: On Cygwin and MinGW, ensure that <code class="docutils literal notranslate"><span class="pre">sys.executable</span></code> always
includes the full filename in the path, including the <code class="docutils literal notranslate"><span class="pre">.exe</span></code> suffix
(unless it is a symbolic link).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34866">bpo-34866</a>: Adding <code class="docutils literal notranslate"><span class="pre">max_num_fields</span></code> to <code class="docutils literal notranslate"><span class="pre">cgi.FieldStorage</span></code> to make DOS
attacks harder by limiting the number of <code class="docutils literal notranslate"><span class="pre">MiniFieldStorage</span></code> objects
created by <code class="docutils literal notranslate"><span class="pre">FieldStorage</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34711">bpo-34711</a>: http.server ensures it reports HTTPStatus.NOT_FOUND when the
local path ends with “/” and is not a directory, even if the underlying OS
(e.g. AIX) accepts such paths as a valid file reference. Patch by Michael
Felt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34872">bpo-34872</a>: Fix self-cancellation in C implementation of asyncio.Task</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34849">bpo-34849</a>: Don’t log waiting for <code class="docutils literal notranslate"><span class="pre">selector.select</span></code> in asyncio loop
iteration. The waiting is pretty normal for any asyncio program, logging
its time just adds a noise to logs without any useful information
provided.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34022">bpo-34022</a>: The <span class="target" id="index-361"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">SOURCE_DATE_EPOCH</span></code> environment variable no longer
overrides the value of the <em>invalidation_mode</em> argument to
<a class="reference internal" href="../library/py_compile.html#py_compile.compile" title="py_compile.compile"><code class="xref py py-func docutils literal notranslate"><span class="pre">py_compile.compile()</span></code></a>, and determines its default value instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34819">bpo-34819</a>: Use a monotonic clock to compute timeouts in
<code class="xref py py-meth docutils literal notranslate"><span class="pre">Executor.map()</span></code> and <code class="xref py py-func docutils literal notranslate"><span class="pre">as_completed()</span></code>, in order to prevent
timeouts from deviating when the system clock is adjusted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34758">bpo-34758</a>: Add .wasm -> application/wasm to list of recognized file types
and content type headers</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34789">bpo-34789</a>: <a class="reference internal" href="../library/xml.sax.html#xml.sax.make_parser" title="xml.sax.make_parser"><code class="xref py py-func docutils literal notranslate"><span class="pre">xml.sax.make_parser()</span></code></a> now accepts any iterable as its
<em>parser_list</em> argument. Patch by Andrés Delfino.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34334">bpo-34334</a>: In <code class="xref py py-class docutils literal notranslate"><span class="pre">QueueHandler</span></code>, clear <code class="docutils literal notranslate"><span class="pre">exc_text</span></code> from
<code class="xref py py-class docutils literal notranslate"><span class="pre">LogRecord</span></code> to prevent traceback from being written twice.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34687">bpo-34687</a>: On Windows, asyncio now uses ProactorEventLoop, instead of
SelectorEventLoop, by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5950">bpo-5950</a>: Support reading zip files with archive comments in
<a class="reference internal" href="../library/zipimport.html#module-zipimport" title="zipimport: Support for importing Python modules from ZIP archives."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipimport</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32892">bpo-32892</a>: The parser now represents all constants as
<a class="reference internal" href="../library/ast.html#ast.Constant" title="ast.Constant"><code class="xref py py-class docutils literal notranslate"><span class="pre">ast.Constant</span></code></a> instead of using specific constant AST types
(<code class="docutils literal notranslate"><span class="pre">Num</span></code>, <code class="docutils literal notranslate"><span class="pre">Str</span></code>, <code class="docutils literal notranslate"><span class="pre">Bytes</span></code>, <code class="docutils literal notranslate"><span class="pre">NameConstant</span></code> and <code class="docutils literal notranslate"><span class="pre">Ellipsis</span></code>). These
classes are considered deprecated and will be removed in future Python
versions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34728">bpo-34728</a>: Add deprecation warning when <code class="docutils literal notranslate"><span class="pre">loop</span></code> is used in methods:
<code class="docutils literal notranslate"><span class="pre">asyncio.sleep</span></code>, <code class="docutils literal notranslate"><span class="pre">asyncio.wait</span></code> and <code class="docutils literal notranslate"><span class="pre">asyncio.wait_for</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34738">bpo-34738</a>: ZIP files created by <code class="docutils literal notranslate"><span class="pre">distutils</span></code> will now include entries for
directories.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34659">bpo-34659</a>: Add an optional <em>initial</em> argument to itertools.accumulate().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29577">bpo-29577</a>: Support multiple mixin classes when creating Enums.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34670">bpo-34670</a>: Add SSLContext.post_handshake_auth and
SSLSocket.verify_client_post_handshake for TLS 1.3’s post handshake
authentication feature.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32718">bpo-32718</a>: The Activate.ps1 script from venv works with PowerShell Core
6.1 and is now available under all operating systems.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31177">bpo-31177</a>: Fix bug that prevented using <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.Mock.reset_mock" title="unittest.mock.Mock.reset_mock"><code class="xref py py-meth docutils literal notranslate"><span class="pre">reset_mock</span></code></a> on mock instances with deleted attributes</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34672">bpo-34672</a>: Add a workaround, so the <code class="docutils literal notranslate"><span class="pre">'Z'</span></code> <a class="reference internal" href="../library/time.html#time.strftime" title="time.strftime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strftime()</span></code></a>
specifier on the musl C library can work in some cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34666">bpo-34666</a>: Implement <code class="docutils literal notranslate"><span class="pre">asyncio.StreamWriter.awrite</span></code> and
<code class="docutils literal notranslate"><span class="pre">asyncio.StreamWriter.aclose()</span></code> coroutines. Methods are needed for
providing a consistent stream API with control flow switched on by
default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6721">bpo-6721</a>: Acquire the logging module’s commonly used internal locks while
fork()ing to avoid deadlocks in the child process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34658">bpo-34658</a>: Fix a rare interpreter unhandled exception state SystemError
only seen when using subprocess with a preexec_fn while an after_parent
handler has been registered with os.register_at_fork and the fork system
call fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34652">bpo-34652</a>: Ensure <a class="reference internal" href="../library/os.html#os.lchmod" title="os.lchmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.lchmod()</span></code></a> is never defined on Linux.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34638">bpo-34638</a>: Store a weak reference to stream reader to break strong
references loop between reader and protocol. It allows to detect and
close the socket if the stream is deleted (garbage collected) without
<code class="docutils literal notranslate"><span class="pre">close()</span></code> call.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34536">bpo-34536</a>: <code class="docutils literal notranslate"><span class="pre">Enum._missing_</span></code>: raise <code class="docutils literal notranslate"><span class="pre">ValueError</span></code> if None returned and
<code class="docutils literal notranslate"><span class="pre">TypeError</span></code> if non-member is returned.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34636">bpo-34636</a>: Speed up re scanning of many non-matching characters for s w
and d within bytes objects. (microoptimization)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24412">bpo-24412</a>: Add <a class="reference internal" href="../library/unittest.html#unittest.addModuleCleanup" title="unittest.addModuleCleanup"><code class="xref py py-func docutils literal notranslate"><span class="pre">addModuleCleanup()</span></code></a> and
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.addClassCleanup" title="unittest.TestCase.addClassCleanup"><code class="xref py py-meth docutils literal notranslate"><span class="pre">addClassCleanup()</span></code></a> to unittest to support cleanups
for <a class="reference internal" href="../library/unittest.html#unittest.setUpModule" title="unittest.setUpModule"><code class="xref py py-func docutils literal notranslate"><span class="pre">setUpModule()</span></code></a> and
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.setUpClass" title="unittest.TestCase.setUpClass"><code class="xref py py-meth docutils literal notranslate"><span class="pre">setUpClass()</span></code></a>. Patch by Lisa Roach.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34630">bpo-34630</a>: Don’t log SSL certificate errors in asyncio code (connection
error logging is skipped already).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32490">bpo-32490</a>: Prevent filename duplication in <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> exception
messages. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34363">bpo-34363</a>: dataclasses.asdict() and .astuple() now handle namedtuples
correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34625">bpo-34625</a>: Update vendorized expat library version to 2.2.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32270">bpo-32270</a>: The subprocess module no longer mistakenly closes redirected
fds even when they were in pass_fds when outside of the default {0, 1, 2}
set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34622">bpo-34622</a>: Create a dedicated <code class="docutils literal notranslate"><span class="pre">asyncio.CancelledError</span></code>,
<code class="docutils literal notranslate"><span class="pre">asyncio.InvalidStateError</span></code> and <code class="docutils literal notranslate"><span class="pre">asyncio.TimeoutError</span></code> exception
classes. Inherit them from corresponding exceptions from
<code class="docutils literal notranslate"><span class="pre">concurrent.futures</span></code> package. Extract <code class="docutils literal notranslate"><span class="pre">asyncio</span></code> exceptions into a
separate file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34610">bpo-34610</a>: Fixed iterator of <code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.managers.DictProxy</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34421">bpo-34421</a>: Fix distutils logging for non-ASCII strings. This caused
installation issues on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34604">bpo-34604</a>: Fix possible mojibake in the error message of <code class="docutils literal notranslate"><span class="pre">pwd.getpwnam</span></code>
and <code class="docutils literal notranslate"><span class="pre">grp.getgrnam</span></code> using string representation because of invisible
characters or trailing whitespaces. Patch by William Grzybowski.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30977">bpo-30977</a>: Make uuid.UUID use <code class="docutils literal notranslate"><span class="pre">__slots__</span></code> to reduce its memory
footprint. Based on original patch by Wouter Bolsterlee.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34574">bpo-34574</a>: OrderedDict iterators are not exhausted during pickling
anymore. Patch by Sergey Fedoseev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8110">bpo-8110</a>: Refactored <a class="reference internal" href="../library/subprocess.html#module-subprocess" title="subprocess: Subprocess management."><code class="xref py py-mod docutils literal notranslate"><span class="pre">subprocess</span></code></a> to check for Windows-specific
modules rather than <code class="docutils literal notranslate"><span class="pre">sys.platform</span> <span class="pre">==</span> <span class="pre">'win32'</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34530">bpo-34530</a>: <code class="docutils literal notranslate"><span class="pre">distutils.spawn.find_executable()</span></code> now falls back on
<a class="reference internal" href="../library/os.html#os.defpath" title="os.defpath"><code class="xref py py-data docutils literal notranslate"><span class="pre">os.defpath</span></code></a> if the <code class="docutils literal notranslate"><span class="pre">PATH</span></code> environment variable is not set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34563">bpo-34563</a>: On Windows, fix multiprocessing.Connection for very large read:
fix _winapi.PeekNamedPipe() and _winapi.ReadFile() for read larger than
INT_MAX (usually <code class="docutils literal notranslate"><span class="pre">2**31-1</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34558">bpo-34558</a>: Correct typo in Lib/ctypes/_aix.py</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34282">bpo-34282</a>: Move <code class="docutils literal notranslate"><span class="pre">Enum._convert</span></code> to <code class="docutils literal notranslate"><span class="pre">EnumMeta._convert_</span></code> and fix enum
members getting shadowed by parent attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22872">bpo-22872</a>: When the queue is closed, <a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> is now raised by
<a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Queue.put" title="multiprocessing.Queue.put"><code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.Queue.put()</span></code></a> and <a class="reference internal" href="../library/multiprocessing.html#multiprocessing.Queue.get" title="multiprocessing.Queue.get"><code class="xref py py-meth docutils literal notranslate"><span class="pre">multiprocessing.Queue.get()</span></code></a>
instead of <a class="reference internal" href="../library/exceptions.html#AssertionError" title="AssertionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AssertionError</span></code></a> and <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a>, respectively. Patch
by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34515">bpo-34515</a>: Fix parsing non-ASCII identifiers in
<code class="xref py py-mod docutils literal notranslate"><span class="pre">lib2to3.pgen2.tokenize</span></code> (<span class="target" id="index-362"></span><a class="pep reference external" href="https://peps.python.org/pep-3131/"><strong>PEP 3131</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13312">bpo-13312</a>: Avoids a possible integer underflow (undefined behavior) in the
time module’s year handling code when passed a very low negative year
value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34472">bpo-34472</a>: Improved compatibility for streamed files in <a class="reference internal" href="../library/zipfile.html#module-zipfile" title="zipfile: Read and write ZIP-format archive files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipfile</span></code></a>.
Previously an optional signature was not being written and certain ZIP
applications were not supported. Patch by Silas Sewell.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34454">bpo-34454</a>: Fix the .fromisoformat() methods of datetime types crashing
when given unicode with non-UTF-8-encodable code points. Specifically,
datetime.fromisoformat() now accepts surrogate unicode code points used as
the separator. Report and tests by Alexey Izbyshev, patch by Paul Ganssle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6700">bpo-6700</a>: Fix inspect.getsourcelines for module level frames/tracebacks.
Patch by Vladimir Matveev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34171">bpo-34171</a>: Running the <a class="reference internal" href="../library/trace.html#module-trace" title="trace: Trace or track Python statement execution."><code class="xref py py-mod docutils literal notranslate"><span class="pre">trace</span></code></a> module no longer creates the
<code class="docutils literal notranslate"><span class="pre">trace.cover</span></code> file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34441">bpo-34441</a>: Fix crash when an <code class="docutils literal notranslate"><span class="pre">ABC</span></code>-derived class with invalid
<code class="docutils literal notranslate"><span class="pre">__subclasses__</span></code> is passed as the second argument to <a class="reference internal" href="../library/functions.html#issubclass" title="issubclass"><code class="xref py py-func docutils literal notranslate"><span class="pre">issubclass()</span></code></a>.
Patch by Alexey Izbyshev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34427">bpo-34427</a>: Fix infinite loop in <code class="docutils literal notranslate"><span class="pre">a.extend(a)</span></code> for <code class="docutils literal notranslate"><span class="pre">MutableSequence</span></code>
subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34412">bpo-34412</a>: Make <a class="reference internal" href="../library/signal.html#signal.strsignal" title="signal.strsignal"><code class="xref py py-func docutils literal notranslate"><span class="pre">signal.strsignal()</span></code></a> work on HP-UX. Patch by Michael
Osipov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20849">bpo-20849</a>: shutil.copytree now accepts a new <code class="docutils literal notranslate"><span class="pre">dirs_exist_ok</span></code> keyword
argument. Patch by Josh Bronson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31715">bpo-31715</a>: Associate <code class="docutils literal notranslate"><span class="pre">.mjs</span></code> file extension with
<code class="docutils literal notranslate"><span class="pre">application/javascript</span></code> MIME Type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34384">bpo-34384</a>: <a class="reference internal" href="../library/os.html#os.readlink" title="os.readlink"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.readlink()</span></code></a> now accepts <a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like</span></a> and <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> objects on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22602">bpo-22602</a>: The UTF-7 decoder now raises <a class="reference internal" href="../library/exceptions.html#UnicodeDecodeError" title="UnicodeDecodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeDecodeError</span></code></a> for
ill-formed sequences starting with “+” (as specified in RFC 2152). Patch
by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2122">bpo-2122</a>: The <a class="reference internal" href="../library/mmap.html#mmap.mmap.flush" title="mmap.mmap.flush"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mmap.flush()</span></code></a> method now returns
<code class="docutils literal notranslate"><span class="pre">None</span></code> on success, raises an exception on error under all platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34341">bpo-34341</a>: Appending to the ZIP archive with the ZIP64 extension no longer
grows the size of extra fields of existing entries.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34333">bpo-34333</a>: Fix %-formatting in <a class="reference internal" href="../library/pathlib.html#pathlib.PurePath.with_suffix" title="pathlib.PurePath.with_suffix"><code class="xref py py-meth docutils literal notranslate"><span class="pre">pathlib.PurePath.with_suffix()</span></code></a> when
formatting an error message.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18540">bpo-18540</a>: The <a class="reference internal" href="../library/imaplib.html#imaplib.IMAP4" title="imaplib.IMAP4"><code class="xref py py-class docutils literal notranslate"><span class="pre">imaplib.IMAP4</span></code></a> and <a class="reference internal" href="../library/imaplib.html#imaplib.IMAP4_SSL" title="imaplib.IMAP4_SSL"><code class="xref py py-class docutils literal notranslate"><span class="pre">imaplib.IMAP4_SSL</span></code></a>
classes now resolve to the local host IP correctly when the default value
of <em>host</em> parameter (<code class="docutils literal notranslate"><span class="pre">''</span></code>) is used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26502">bpo-26502</a>: Implement <code class="docutils literal notranslate"><span class="pre">traceback.FrameSummary.__len__()</span></code> method to
preserve compatibility with the old tuple API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34318">bpo-34318</a>: <a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertRaises" title="unittest.TestCase.assertRaises"><code class="xref py py-func docutils literal notranslate"><span class="pre">assertRaises()</span></code></a>,
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertRaisesRegex" title="unittest.TestCase.assertRaisesRegex"><code class="xref py py-func docutils literal notranslate"><span class="pre">assertRaisesRegex()</span></code></a>,
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertWarns" title="unittest.TestCase.assertWarns"><code class="xref py py-func docutils literal notranslate"><span class="pre">assertWarns()</span></code></a> and
<a class="reference internal" href="../library/unittest.html#unittest.TestCase.assertWarnsRegex" title="unittest.TestCase.assertWarnsRegex"><code class="xref py py-func docutils literal notranslate"><span class="pre">assertWarnsRegex()</span></code></a> no longer success if the
passed callable is None. They no longer ignore unknown keyword arguments
in the context manager mode. A DeprecationWarning was raised in these
cases since Python 3.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9372">bpo-9372</a>: Deprecate <a class="reference internal" href="../reference/datamodel.html#object.__getitem__" title="object.__getitem__"><code class="xref py py-meth docutils literal notranslate"><span class="pre">__getitem__()</span></code></a> methods of
<a class="reference internal" href="../library/xml.dom.pulldom.html#xml.dom.pulldom.DOMEventStream" title="xml.dom.pulldom.DOMEventStream"><code class="xref py py-class docutils literal notranslate"><span class="pre">xml.dom.pulldom.DOMEventStream</span></code></a>, <a class="reference internal" href="../library/wsgiref.html#wsgiref.util.FileWrapper" title="wsgiref.util.FileWrapper"><code class="xref py py-class docutils literal notranslate"><span class="pre">wsgiref.util.FileWrapper</span></code></a>
and <a class="reference internal" href="../library/fileinput.html#fileinput.FileInput" title="fileinput.FileInput"><code class="xref py py-class docutils literal notranslate"><span class="pre">fileinput.FileInput</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33613">bpo-33613</a>: Fix a race condition in <code class="docutils literal notranslate"><span class="pre">multiprocessing.semaphore_tracker</span></code>
when the tracker receives SIGINT before it can register signal handlers
for ignoring it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34248">bpo-34248</a>: Report filename in the exception raised when the database file
cannot be opened by <a class="reference internal" href="../library/dbm.html#dbm.gnu.open" title="dbm.gnu.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">dbm.gnu.open()</span></code></a> and <a class="reference internal" href="../library/dbm.html#dbm.ndbm.open" title="dbm.ndbm.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">dbm.ndbm.open()</span></code></a> due to
OS-related error. Patch by Zsolt Cserna.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33089">bpo-33089</a>: Add math.dist() to compute the Euclidean distance between two
points.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34246">bpo-34246</a>: <a class="reference internal" href="../library/smtplib.html#smtplib.SMTP.send_message" title="smtplib.SMTP.send_message"><code class="xref py py-meth docutils literal notranslate"><span class="pre">smtplib.SMTP.send_message()</span></code></a> no longer modifies the
content of the <em>mail_options</em> argument. Patch by Pablo S. Blum de Aguiar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31047">bpo-31047</a>: Fix <code class="docutils literal notranslate"><span class="pre">ntpath.abspath</span></code> for invalid paths on windows. Patch by
Franz Woellert.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32321">bpo-32321</a>: Add pure Python fallback for functools.reduce. Patch by Robert
Wright.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34270">bpo-34270</a>: The default asyncio task class now always has a name which can
be get or set using two new methods (<a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.get_name" title="asyncio.Task.get_name"><code class="xref py py-meth docutils literal notranslate"><span class="pre">get_name()</span></code></a> and
<a class="reference internal" href="../library/asyncio-task.html#asyncio.Task.set_name" title="asyncio.Task.set_name"><code class="xref py py-meth docutils literal notranslate"><span class="pre">set_name()</span></code></a>) and is visible in the <a class="reference internal" href="../library/functions.html#repr" title="repr"><code class="xref py py-func docutils literal notranslate"><span class="pre">repr()</span></code></a> output.
An initial name can also be set using the new <code class="docutils literal notranslate"><span class="pre">name</span></code> keyword argument to
<a class="reference internal" href="../library/asyncio-task.html#asyncio.create_task" title="asyncio.create_task"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.create_task()</span></code></a> or the
<code class="xref py py-meth docutils literal notranslate"><span class="pre">create_task()</span></code> method of the event loop.
If no initial name is set, the default Task implementation generates a
name like <code class="docutils literal notranslate"><span class="pre">Task-1</span></code> using a monotonic counter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34263">bpo-34263</a>: asyncio’s event loop will not pass timeouts longer than one day
to epoll/select etc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34035">bpo-34035</a>: Fix several AttributeError in zipfile seek() methods. Patch by
Mickaël Schoentgen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32215">bpo-32215</a>: Fix performance regression in <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> when a DML
statement appeared in a different line than the rest of the SQL query.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34075">bpo-34075</a>: Deprecate passing non-ThreadPoolExecutor instances to
<code class="xref py py-meth docutils literal notranslate"><span class="pre">AbstractEventLoop.set_default_executor()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34251">bpo-34251</a>: Restore <code class="docutils literal notranslate"><span class="pre">msilib.Win64</span></code> to preserve backwards compatibility
since it’s already used by <code class="docutils literal notranslate"><span class="pre">distutils</span></code>’ <code class="docutils literal notranslate"><span class="pre">bdist_msi</span></code> command.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19891">bpo-19891</a>: Ignore errors caused by missing / non-writable homedir while
writing history during exit of an interactive session. Patch by Anthony
Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33089">bpo-33089</a>: Enhanced math.hypot() to support more than two dimensions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34228">bpo-34228</a>: tracemalloc: PYTHONTRACEMALLOC=0 environment variable and -X
tracemalloc=0 command line option are now allowed to disable explicitly
tracemalloc at startup.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13041">bpo-13041</a>: Use <a class="reference internal" href="../library/shutil.html#shutil.get_terminal_size" title="shutil.get_terminal_size"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.get_terminal_size()</span></code></a> to calculate the terminal
width correctly in the <code class="docutils literal notranslate"><span class="pre">argparse.HelpFormatter</span></code> class. Initial patch by
Zbyszek Jędrzejewski-Szmek.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34213">bpo-34213</a>: Allow frozen dataclasses to have a field named “object”.
Previously this conflicted with an internal use of “object”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34052">bpo-34052</a>: <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.create_aggregate" title="sqlite3.Connection.create_aggregate"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.create_aggregate()</span></code></a>,
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.create_function" title="sqlite3.Connection.create_function"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.create_function()</span></code></a>,
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.set_authorizer" title="sqlite3.Connection.set_authorizer"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.set_authorizer()</span></code></a>,
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.set_progress_handler" title="sqlite3.Connection.set_progress_handler"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.set_progress_handler()</span></code></a> methods raises TypeError
when unhashable objects are passed as callable. These methods now don’t
pass such objects to SQLite API. Previous behavior could lead to
segfaults. Patch by Sergey Fedoseev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34197">bpo-34197</a>: Attributes <em>skipinitialspace</em>, <em>doublequote</em> and <em>strict</em> of
the <em>dialect</em> attribute of the <a class="reference internal" href="../library/csv.html#module-csv" title="csv: Write and read tabular data to and from delimited files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">csv</span></code></a> reader are now <a class="reference internal" href="../library/functions.html#bool" title="bool"><code class="xref py py-class docutils literal notranslate"><span class="pre">bool</span></code></a>
instances instead of integers 0 or 1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32788">bpo-32788</a>: Errors other than <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> raised in methods
<code class="docutils literal notranslate"><span class="pre">__adapt__()</span></code> and <code class="docutils literal notranslate"><span class="pre">__conform__()</span></code> in the <a class="reference internal" href="../library/sqlite3.html#module-sqlite3" title="sqlite3: A DB-API 2.0 implementation using SQLite 3.x."><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a> module are now
propagated to the user.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21446">bpo-21446</a>: The <code class="docutils literal notranslate"><span class="pre">reload</span></code> fixer now uses <a class="reference internal" href="../library/importlib.html#importlib.reload" title="importlib.reload"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.reload()</span></code></a> instead
of deprecated <code class="xref py py-func docutils literal notranslate"><span class="pre">imp.reload()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=940286">bpo-940286</a>: pydoc’s <code class="docutils literal notranslate"><span class="pre">Helper.showtopic()</span></code> method now prints the cross
references of a topic correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34164">bpo-34164</a>: <a class="reference internal" href="../library/base64.html#base64.b32decode" title="base64.b32decode"><code class="xref py py-func docutils literal notranslate"><span class="pre">base64.b32decode()</span></code></a> could raise UnboundLocalError or
OverflowError for incorrect padding. Now it always raises
<code class="xref py py-exc docutils literal notranslate"><span class="pre">base64.Error</span></code> in these cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33729">bpo-33729</a>: Fixed issues with arguments parsing in <a class="reference internal" href="../library/hashlib.html#module-hashlib" title="hashlib: Secure hash and message digest algorithms."><code class="xref py py-mod docutils literal notranslate"><span class="pre">hashlib</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34097">bpo-34097</a>: ZipFile can zip files older than 1980-01-01 and newer than
2107-12-31 using a new <code class="docutils literal notranslate"><span class="pre">strict_timestamps</span></code> parameter at the cost of
setting the timestamp to the limit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34108">bpo-34108</a>: Remove extraneous CR in 2to3 refactor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34070">bpo-34070</a>: Make sure to only check if the handle is a tty, when opening a
file with <code class="docutils literal notranslate"><span class="pre">buffering=-1</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27494">bpo-27494</a>: Reverted <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27494">bpo-27494</a>. 2to3 rejects now a trailing comma in
generator expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33967">bpo-33967</a>: functools.singledispatch now raises TypeError instead of
IndexError when no positional arguments are passed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34041">bpo-34041</a>: Add the parameter <em>deterministic</em> to the
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.create_function" title="sqlite3.Connection.create_function"><code class="xref py py-meth docutils literal notranslate"><span class="pre">sqlite3.Connection.create_function()</span></code></a> method. Patch by Sergey
Fedoseev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34056">bpo-34056</a>: Ensure the loader shim created by <code class="docutils literal notranslate"><span class="pre">imp.load_module</span></code> always
returns bytes from its <code class="docutils literal notranslate"><span class="pre">get_data()</span></code> function. This fixes using
<code class="docutils literal notranslate"><span class="pre">imp.load_module</span></code> with <span class="target" id="index-363"></span><a class="pep reference external" href="https://peps.python.org/pep-0552/"><strong>PEP 552</strong></a> hash-based pycs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34054">bpo-34054</a>: The multiprocessing module now uses the monotonic clock
<a class="reference internal" href="../library/time.html#time.monotonic" title="time.monotonic"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.monotonic()</span></code></a> instead of the system clock <a class="reference internal" href="../library/time.html#time.time" title="time.time"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.time()</span></code></a> to
implement timeout.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34043">bpo-34043</a>: Optimize tarfile uncompress performance about 15% when gzip is
used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34044">bpo-34044</a>: <code class="docutils literal notranslate"><span class="pre">subprocess.Popen</span></code> now copies the <em>startupinfo</em> argument to
leave it unchanged: it will modify the copy, so that the same
<code class="docutils literal notranslate"><span class="pre">STARTUPINFO</span></code> object can be used multiple times.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34010">bpo-34010</a>: Fixed a performance regression for reading streams with
tarfile. The buffered read should use a list, instead of appending to a
bytes object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34019">bpo-34019</a>: webbrowser: Correct the arguments passed to Opera Browser when
opening a new URL using the <code class="docutils literal notranslate"><span class="pre">webbrowser</span></code> module. Patch by Bumsik Kim.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34003">bpo-34003</a>: csv.DictReader now creates dicts instead of OrderedDicts. Patch
by Michael Selik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33978">bpo-33978</a>: Closed existing logging handlers before reconfiguration via
fileConfig and dictConfig. Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14117">bpo-14117</a>: Make minor tweaks to turtledemo. The ‘wikipedia’ example is now
‘rosette’, describing what it draws. The ‘penrose’ print output is
reduced. The’1024’ output of ‘tree’ is eliminated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33974">bpo-33974</a>: Fixed passing lists and tuples of strings containing special
characters <code class="docutils literal notranslate"><span class="pre">"</span></code>, <code class="docutils literal notranslate"><span class="pre">\</span></code>, <code class="docutils literal notranslate"><span class="pre">{</span></code>, <code class="docutils literal notranslate"><span class="pre">}</span></code> and <code class="docutils literal notranslate"><span class="pre">\n</span></code> as options to
<a class="reference internal" href="../library/tkinter.ttk.html#module-tkinter.ttk" title="tkinter.ttk: Tk themed widget set"><code class="xref py py-mod docutils literal notranslate"><span class="pre">ttk</span></code></a> widgets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27500">bpo-27500</a>: Fix getaddrinfo to resolve IPv6 addresses correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24567">bpo-24567</a>: Improve random.choices() to handle subnormal input weights that
could occasionally trigger an IndexError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33871">bpo-33871</a>: Fixed integer overflow in <a class="reference internal" href="../library/os.html#os.readv" title="os.readv"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.readv()</span></code></a>, <a class="reference internal" href="../library/os.html#os.writev" title="os.writev"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.writev()</span></code></a>,
<a class="reference internal" href="../library/os.html#os.preadv" title="os.preadv"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.preadv()</span></code></a> and <a class="reference internal" href="../library/os.html#os.pwritev" title="os.pwritev"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.pwritev()</span></code></a> and in <a class="reference internal" href="../library/os.html#os.sendfile" title="os.sendfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.sendfile()</span></code></a> with
<em>headers</em> or <em>trailers</em> arguments (on BSD-based OSes and macOS).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25007">bpo-25007</a>: Add <a class="reference internal" href="../library/copy.html#copy.copy" title="copy.copy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.copy()</span></code></a> and <a class="reference internal" href="../library/copy.html#copy.deepcopy" title="copy.deepcopy"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.deepcopy()</span></code></a> support to zlib
compressors and decompressors. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33929">bpo-33929</a>: multiprocessing: Fix a race condition in Popen of
multiprocessing.popen_spawn_win32. The child process now duplicates the
read end of pipe instead of “stealing” it. Previously, the read end of
pipe was “stolen” by the child process, but it leaked a handle if the
child process had been terminated before it could steal the handle from
the parent process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33899">bpo-33899</a>: Tokenize module now implicitly emits a NEWLINE when provided
with input that does not have a trailing new line. This behavior now
matches what the C tokenizer does internally. Contributed by Ammar Askar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33897">bpo-33897</a>: Added a ‘force’ keyword argument to logging.basicConfig().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33695">bpo-33695</a>: <a class="reference internal" href="../library/shutil.html#shutil.copytree" title="shutil.copytree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copytree()</span></code></a> uses <a class="reference internal" href="../library/os.html#os.scandir" title="os.scandir"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.scandir()</span></code></a> function and
all copy functions depending from it use cached <a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a> values.
The speedup for copying a directory with 8000 files is around +9% on
Linux, +20% on Windows and + 30% on a Windows SMB share. Also the number
of <a class="reference internal" href="../library/os.html#os.stat" title="os.stat"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.stat()</span></code></a> syscalls is reduced by 38% making
<a class="reference internal" href="../library/shutil.html#shutil.copytree" title="shutil.copytree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copytree()</span></code></a> especially faster on network filesystems.
(Contributed by Giampaolo Rodola’ in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33695">bpo-33695</a>.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33916">bpo-33916</a>: bz2 and lzma: When Decompressor.__init__() is called twice,
free the old lock to not leak memory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32568">bpo-32568</a>: Make select.epoll() and its documentation consistent regarding
<em>sizehint</em> and <em>flags</em>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33833">bpo-33833</a>: Fixed bug in asyncio where ProactorSocketTransport logs
AssertionError if force closed during write.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33663">bpo-33663</a>: Convert content length to string before putting to header.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33721">bpo-33721</a>: <a class="reference internal" href="../library/os.path.html#module-os.path" title="os.path: Operations on pathnames."><code class="xref py py-mod docutils literal notranslate"><span class="pre">os.path</span></code></a> functions that return a boolean result like
<a class="reference internal" href="../library/os.path.html#os.path.exists" title="os.path.exists"><code class="xref py py-func docutils literal notranslate"><span class="pre">exists()</span></code></a>, <a class="reference internal" href="../library/os.path.html#os.path.lexists" title="os.path.lexists"><code class="xref py py-func docutils literal notranslate"><span class="pre">lexists()</span></code></a>, <a class="reference internal" href="../library/os.path.html#os.path.isdir" title="os.path.isdir"><code class="xref py py-func docutils literal notranslate"><span class="pre">isdir()</span></code></a>,
<a class="reference internal" href="../library/os.path.html#os.path.isfile" title="os.path.isfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">isfile()</span></code></a>, <a class="reference internal" href="../library/os.path.html#os.path.islink" title="os.path.islink"><code class="xref py py-func docutils literal notranslate"><span class="pre">islink()</span></code></a>, and
<a class="reference internal" href="../library/os.path.html#os.path.ismount" title="os.path.ismount"><code class="xref py py-func docutils literal notranslate"><span class="pre">ismount()</span></code></a>, and <a class="reference internal" href="../library/pathlib.html#pathlib.Path" title="pathlib.Path"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pathlib.Path</span></code></a> methods that return a
boolean result like <a class="reference internal" href="../library/pathlib.html#pathlib.Path.exists" title="pathlib.Path.exists"><code class="xref py py-meth docutils literal notranslate"><span class="pre">exists()</span></code></a>,
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_dir" title="pathlib.Path.is_dir"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_dir()</span></code></a>, <a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_file" title="pathlib.Path.is_file"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_file()</span></code></a>,
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_mount" title="pathlib.Path.is_mount"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_mount()</span></code></a>, <a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_symlink" title="pathlib.Path.is_symlink"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_symlink()</span></code></a>,
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_block_device" title="pathlib.Path.is_block_device"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_block_device()</span></code></a>,
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_char_device" title="pathlib.Path.is_char_device"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_char_device()</span></code></a>, <a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_fifo" title="pathlib.Path.is_fifo"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_fifo()</span></code></a>,
<a class="reference internal" href="../library/pathlib.html#pathlib.Path.is_socket" title="pathlib.Path.is_socket"><code class="xref py py-meth docutils literal notranslate"><span class="pre">is_socket()</span></code></a> now return <code class="docutils literal notranslate"><span class="pre">False</span></code> instead of raising
<a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> or its subclasses <a class="reference internal" href="../library/exceptions.html#UnicodeEncodeError" title="UnicodeEncodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeEncodeError</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#UnicodeDecodeError" title="UnicodeDecodeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">UnicodeDecodeError</span></code></a> for paths that contain characters or bytes
unrepresentable at the OS level.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26544">bpo-26544</a>: Fixed implementation of <a class="reference internal" href="../library/platform.html#platform.libc_ver" title="platform.libc_ver"><code class="xref py py-func docutils literal notranslate"><span class="pre">platform.libc_ver()</span></code></a>. It almost
always returned version ‘2.9’ for glibc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33843">bpo-33843</a>: Remove deprecated <code class="docutils literal notranslate"><span class="pre">cgi.escape</span></code>, <code class="docutils literal notranslate"><span class="pre">cgi.parse_qs</span></code> and
<code class="docutils literal notranslate"><span class="pre">cgi.parse_qsl</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33842">bpo-33842</a>: Remove <code class="docutils literal notranslate"><span class="pre">tarfile.filemode</span></code> which is deprecated since Python
3.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30167">bpo-30167</a>: Prevent site.main() exception if PYTHONSTARTUP is set. Patch by
Steve Weber.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33805">bpo-33805</a>: Improve error message of dataclasses.replace() when an InitVar
is not specified</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33687">bpo-33687</a>: Fix the call to <code class="docutils literal notranslate"><span class="pre">os.chmod()</span></code> for <code class="docutils literal notranslate"><span class="pre">uu.decode()</span></code> if a mode is
given or decoded. Patch by Timo Furrer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33812">bpo-33812</a>: Datetime instance d with non-None tzinfo, but with
d.tzinfo.utcoffset(d) returning None is now treated as naive by the
astimezone() method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32108">bpo-32108</a>: In configparser, don’t clear section when it is assigned to
itself.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27397">bpo-27397</a>: Make email module properly handle invalid-length base64
strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33578">bpo-33578</a>: Implement multibyte encoder/decoder state methods</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30805">bpo-30805</a>: Avoid race condition with debug logging</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33476">bpo-33476</a>: Fix _header_value_parser.py when address group is missing final
‘;’. Contributed by Enrique Perez-Terron</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33694">bpo-33694</a>: asyncio: Fix a race condition causing data loss on
pause_reading()/resume_reading() when using the ProactorEventLoop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32493">bpo-32493</a>: Correct test for <code class="docutils literal notranslate"><span class="pre">uuid_enc_be</span></code> availability in
<code class="docutils literal notranslate"><span class="pre">configure.ac</span></code>. Patch by Michael Felt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33792">bpo-33792</a>: Add asyncio.WindowsSelectorEventLoopPolicy and
asyncio.WindowsProactorEventLoopPolicy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33274">bpo-33274</a>: W3C DOM Level 1 specifies return value of
Element.removeAttributeNode() as “The Attr node that was removed.”
xml.dom.minidom now complies with this requirement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33778">bpo-33778</a>: Update <code class="docutils literal notranslate"><span class="pre">unicodedata</span></code>’s database to Unicode version 11.0.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33165">bpo-33165</a>: Added a stacklevel parameter to logging calls to allow use of
wrapper/helper functions for logging APIs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33770">bpo-33770</a>: improve base64 exception message for encoded inputs of invalid
length</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33769">bpo-33769</a>: asyncio/start_tls: Fix error message; cancel callbacks in case
of an unhandled error; mark SSLTransport as closed if it is aborted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33767">bpo-33767</a>: The concatenation (<code class="docutils literal notranslate"><span class="pre">+</span></code>) and repetition (<code class="docutils literal notranslate"><span class="pre">*</span></code>) sequence
operations now raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> when
performed on <a class="reference internal" href="../library/mmap.html#mmap.mmap" title="mmap.mmap"><code class="xref py py-class docutils literal notranslate"><span class="pre">mmap.mmap</span></code></a> objects. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33734">bpo-33734</a>: asyncio/ssl: Fix AttributeError, increase default handshake
timeout</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31014">bpo-31014</a>: Fixed creating a controller for <a class="reference internal" href="../library/webbrowser.html#module-webbrowser" title="webbrowser: Easy-to-use controller for web browsers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">webbrowser</span></code></a> when a user
specifies a path to an entry in the BROWSER environment variable. Based
on patch by John Still.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2504">bpo-2504</a>: Add gettext.pgettext() and variants.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33197">bpo-33197</a>: Add description property for _ParameterKind</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32751">bpo-32751</a>: When cancelling the task due to a timeout,
<a class="reference internal" href="../library/asyncio-task.html#asyncio.wait_for" title="asyncio.wait_for"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.wait_for()</span></code></a> will now wait until the cancellation is complete.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32684">bpo-32684</a>: Fix gather to propagate cancellation of itself even with
return_exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33654">bpo-33654</a>: Support protocol type switching in SSLTransport.set_protocol().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33674">bpo-33674</a>: Pause the transport as early as possible to further reduce the
risk of data_received() being called before connection_made().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33671">bpo-33671</a>: <a class="reference internal" href="../library/shutil.html#shutil.copyfile" title="shutil.copyfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copyfile()</span></code></a>, <a class="reference internal" href="../library/shutil.html#shutil.copy" title="shutil.copy"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copy()</span></code></a>,
<a class="reference internal" href="../library/shutil.html#shutil.copy2" title="shutil.copy2"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copy2()</span></code></a>, <a class="reference internal" href="../library/shutil.html#shutil.copytree" title="shutil.copytree"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copytree()</span></code></a> and <a class="reference internal" href="../library/shutil.html#shutil.move" title="shutil.move"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.move()</span></code></a> use
platform-specific fast-copy syscalls on Linux and macOS in order to copy
the file more efficiently. On Windows <a class="reference internal" href="../library/shutil.html#shutil.copyfile" title="shutil.copyfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copyfile()</span></code></a> uses a
bigger default buffer size (1 MiB instead of 16 KiB) and a
<a class="reference internal" href="../library/stdtypes.html#memoryview" title="memoryview"><code class="xref py py-func docutils literal notranslate"><span class="pre">memoryview()</span></code></a>-based variant of <a class="reference internal" href="../library/shutil.html#shutil.copyfileobj" title="shutil.copyfileobj"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.copyfileobj()</span></code></a> is used.
The speedup for copying a 512MiB file is about +26% on Linux, +50% on
macOS and +40% on Windows. Also, much less CPU cycles are consumed.
(Contributed by Giampaolo Rodola’ in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25427">bpo-25427</a>.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33674">bpo-33674</a>: Fix a race condition in SSLProtocol.connection_made() of
asyncio.sslproto: start immediately the handshake instead of using
call_soon(). Previously, data_received() could be called before the
handshake started, causing the handshake to hang or fail.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31647">bpo-31647</a>: Fixed bug where calling write_eof() on a
_SelectorSocketTransport after it’s already closed raises AttributeError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32610">bpo-32610</a>: Make asyncio.all_tasks() return only pending tasks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32410">bpo-32410</a>: Avoid blocking on file IO in sendfile fallback code</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33469">bpo-33469</a>: Fix RuntimeError after closing loop that used run_in_executor</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33672">bpo-33672</a>: Fix Task.__repr__ crash with Cython’s bogus coroutines</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33654">bpo-33654</a>: Fix transport.set_protocol() to support switching between
asyncio.Protocol and asyncio.BufferedProtocol. Fix loop.start_tls() to
work with asyncio.BufferedProtocols.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33652">bpo-33652</a>: Pickles of type variables and subscripted generics are now
future-proof and compatible with older Python versions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32493">bpo-32493</a>: Fixed <a class="reference internal" href="../library/uuid.html#uuid.uuid1" title="uuid.uuid1"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid.uuid1()</span></code></a> on FreeBSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33238">bpo-33238</a>: Add <code class="docutils literal notranslate"><span class="pre">InvalidStateError</span></code> to <a class="reference internal" href="../library/concurrent.futures.html#module-concurrent.futures" title="concurrent.futures: Execute computations concurrently using threads or processes."><code class="xref py py-mod docutils literal notranslate"><span class="pre">concurrent.futures</span></code></a>.
<code class="docutils literal notranslate"><span class="pre">Future.set_result</span></code> and <code class="docutils literal notranslate"><span class="pre">Future.set_exception</span></code> now raise
<code class="docutils literal notranslate"><span class="pre">InvalidStateError</span></code> if the futures are not pending or running. Patch by
Jason Haydaman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33618">bpo-33618</a>: Finalize and document preliminary and experimental TLS 1.3
support with OpenSSL 1.1.1</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33625">bpo-33625</a>: Release GIL on <code class="docutils literal notranslate"><span class="pre">grp.getgrnam</span></code>, <code class="docutils literal notranslate"><span class="pre">grp.getgrgid</span></code>,
<code class="docutils literal notranslate"><span class="pre">pwd.getpwnam</span></code> and <code class="docutils literal notranslate"><span class="pre">pwd.getpwuid</span></code> if reentrant variants of these
functions are available. Patch by William Grzybowski.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33623">bpo-33623</a>: Fix possible SIGSGV when asyncio.Future is created in __del__</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11874">bpo-11874</a>: Use a better regex when breaking usage into wrappable parts.
Avoids bogus assertion errors from custom metavar strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30877">bpo-30877</a>: Fixed a bug in the Python implementation of the JSON decoder
that prevented the cache of parsed strings from clearing after finishing
the decoding. Based on patch by c-fos.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33604">bpo-33604</a>: Remove HMAC default to md5 marked for removal in 3.8 (removal
originally planned in 3.6, bump to 3.8 in PR 7062).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33582">bpo-33582</a>: Emit a deprecation warning for inspect.formatargspec</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21145">bpo-21145</a>: Add <code class="docutils literal notranslate"><span class="pre">functools.cached_property</span></code> decorator, for computed
properties cached for the life of the instance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33570">bpo-33570</a>: Change TLS 1.3 cipher suite settings for compatibility with
OpenSSL 1.1.1-pre6 and newer. OpenSSL 1.1.1 will have TLS 1.3 ciphers
enabled by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Do not simplify arguments to <code class="docutils literal notranslate"><span class="pre">typing.Union</span></code>. Now
<code class="docutils literal notranslate"><span class="pre">Union[Manager,</span> <span class="pre">Employee]</span></code> is not simplified to <code class="docutils literal notranslate"><span class="pre">Employee</span></code> at runtime.
Such simplification previously caused several bugs and limited
possibilities for introspection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12486">bpo-12486</a>: <a class="reference internal" href="../library/tokenize.html#tokenize.generate_tokens" title="tokenize.generate_tokens"><code class="xref py py-func docutils literal notranslate"><span class="pre">tokenize.generate_tokens()</span></code></a> is now documented as a public
API to tokenize unicode strings. It was previously present but
undocumented.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33540">bpo-33540</a>: Add a new <code class="docutils literal notranslate"><span class="pre">block_on_close</span></code> class attribute to
<code class="docutils literal notranslate"><span class="pre">ForkingMixIn</span></code> and <code class="docutils literal notranslate"><span class="pre">ThreadingMixIn</span></code> classes of <a class="reference internal" href="../library/socketserver.html#module-socketserver" title="socketserver: A framework for network servers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socketserver</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33548">bpo-33548</a>: tempfile._candidate_tempdir_list should consider common TEMP
locations</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33109">bpo-33109</a>: argparse subparsers are once again not required by default,
reverting the change in behavior introduced by <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26510">bpo-26510</a> in 3.7.0a2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33541">bpo-33541</a>: Remove unused private method <code class="docutils literal notranslate"><span class="pre">_strptime.LocaleTime.__pad</span></code>
(a.k.a. <code class="docutils literal notranslate"><span class="pre">_LocaleTime__pad</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33536">bpo-33536</a>: dataclasses.make_dataclass now checks for invalid field names
and duplicate fields. Also, added a check for invalid field
specifications.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33542">bpo-33542</a>: Prevent <code class="docutils literal notranslate"><span class="pre">uuid.get_node</span></code> from using a DUID instead of a MAC on
Windows. Patch by Zvi Effron</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26819">bpo-26819</a>: Fix race condition with <code class="docutils literal notranslate"><span class="pre">ReadTransport.resume_reading</span></code> in
Windows proactor event loop.</p></li>
<li><p>Fix failure in <code class="docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code> when ClassVar was provided as a
string forward reference.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33516">bpo-33516</a>: <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.MagicMock" title="unittest.mock.MagicMock"><code class="xref py py-class docutils literal notranslate"><span class="pre">unittest.mock.MagicMock</span></code></a> now supports the <code class="docutils literal notranslate"><span class="pre">__round__</span></code>
magic method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28612">bpo-28612</a>: Added support for Site Maps to urllib’s <code class="docutils literal notranslate"><span class="pre">RobotFileParser</span></code> as
<a class="reference internal" href="../library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.site_maps" title="urllib.robotparser.RobotFileParser.site_maps"><code class="xref py py-meth docutils literal notranslate"><span class="pre">RobotFileParser.site_maps()</span></code></a>. Patch by Lady Red, based
on patch by Peter Wirtz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28167">bpo-28167</a>: Remove platform.linux_distribution, which was deprecated since
3.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33504">bpo-33504</a>: Switch the default dictionary implementation for
<a class="reference internal" href="../library/configparser.html#module-configparser" title="configparser: Configuration file parser."><code class="xref py py-mod docutils literal notranslate"><span class="pre">configparser</span></code></a> from <a class="reference internal" href="../library/collections.html#collections.OrderedDict" title="collections.OrderedDict"><code class="xref py py-class docutils literal notranslate"><span class="pre">collections.OrderedDict</span></code></a> to the standard
<a class="reference internal" href="../library/stdtypes.html#dict" title="dict"><code class="xref py py-class docutils literal notranslate"><span class="pre">dict</span></code></a> type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33505">bpo-33505</a>: Optimize asyncio.ensure_future() by reordering if checks: 1.17x
faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33497">bpo-33497</a>: Add errors param to cgi.parse_multipart and make an encoding in
FieldStorage use the given errors (needed for Twisted). Patch by Amber
Brown.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29235">bpo-29235</a>: The <code class="xref py py-class docutils literal notranslate"><span class="pre">cProfile.Profile</span></code> class can now be used as a
context manager. Patch by Scott Sanderson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33495">bpo-33495</a>: Change dataclasses.Fields repr to use the repr of each of its
members, instead of str. This makes it more clear what each field
actually represents. This is especially true for the ‘type’ member.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26103">bpo-26103</a>: Correct <code class="docutils literal notranslate"><span class="pre">inspect.isdatadescriptor</span></code> to look for <code class="docutils literal notranslate"><span class="pre">__set__</span></code> or
<code class="docutils literal notranslate"><span class="pre">__delete__</span></code>. Patch by Aaron Hall.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29209">bpo-29209</a>: Removed the <code class="docutils literal notranslate"><span class="pre">doctype()</span></code> method and the <em>html</em> parameter of
the constructor of <a class="reference internal" href="../library/xml.etree.elementtree.html#xml.etree.ElementTree.XMLParser" title="xml.etree.ElementTree.XMLParser"><code class="xref py py-class docutils literal notranslate"><span class="pre">XMLParser</span></code></a>. The
<code class="docutils literal notranslate"><span class="pre">doctype()</span></code> method defined in a subclass will no longer be called.
Deprecated methods <code class="docutils literal notranslate"><span class="pre">getchildren()</span></code> and <code class="docutils literal notranslate"><span class="pre">getiterator()</span></code> in the
<a class="reference internal" href="../library/xml.etree.elementtree.html#module-xml.etree.ElementTree" title="xml.etree.ElementTree: Implementation of the ElementTree API."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ElementTree</span></code></a> module emit now a <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a>
instead of <a class="reference internal" href="../library/exceptions.html#PendingDeprecationWarning" title="PendingDeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PendingDeprecationWarning</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33453">bpo-33453</a>: Fix dataclasses to work if using literal string type
annotations or if using PEP 563 “Postponed Evaluation of Annotations”.
Only specific string prefixes are detected for both ClassVar (“ClassVar”
and “typing.ClassVar”) and InitVar (“InitVar” and “dataclasses.InitVar”).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Minor fixes in typing module: add annotations to
<code class="docutils literal notranslate"><span class="pre">NamedTuple.__new__</span></code>, pass <code class="docutils literal notranslate"><span class="pre">*args</span></code> and <code class="docutils literal notranslate"><span class="pre">**kwds</span></code> in
<code class="docutils literal notranslate"><span class="pre">Generic.__new__</span></code>. Original PRs by Paulius Šarka and Chad Dombrova.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33365">bpo-33365</a>: Print the header values besides the header keys instead just
the header keys if <em>debuglevel</em> is set to >0 in <a class="reference internal" href="../library/http.client.html#module-http.client" title="http.client: HTTP and HTTPS protocol client (requires sockets)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">http.client</span></code></a>. Patch
by Marco Strigl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20087">bpo-20087</a>: Updated alias mapping with glibc 2.27 supported locales.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33422">bpo-33422</a>: Fix trailing quotation marks getting deleted when looking up
byte/string literals on pydoc. Patch by Andrés Delfino.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28167">bpo-28167</a>: The function <code class="docutils literal notranslate"><span class="pre">platform.linux_distribution</span></code> and
<code class="docutils literal notranslate"><span class="pre">platform.dist</span></code> now trigger a <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> and have been
marked for removal in Python 3.8</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33281">bpo-33281</a>: Fix ctypes.util.find_library regression on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33311">bpo-33311</a>: Text and html output generated by cgitb does not display
parentheses if the current call is done directly in the module. Patch by
Stéphane Blondon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27300">bpo-27300</a>: The file classes in <em>tempfile</em> now accept an <em>errors</em> parameter
that complements the already existing <em>encoding</em>. Patch by Stephan Hohe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32933">bpo-32933</a>: <a class="reference internal" href="../library/unittest.mock.html#unittest.mock.mock_open" title="unittest.mock.mock_open"><code class="xref py py-func docutils literal notranslate"><span class="pre">unittest.mock.mock_open()</span></code></a> now supports iteration over the
file contents. Patch by Tony Flury.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33217">bpo-33217</a>: Raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> when looking up non-Enum objects in Enum
classes and Enum members.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33197">bpo-33197</a>: Update error message when constructing invalid
inspect.Parameters Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33383">bpo-33383</a>: Fixed crash in the get() method of the <a class="reference internal" href="../library/dbm.html#module-dbm.ndbm" title="dbm.ndbm: The New Database Manager (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.ndbm</span></code></a> database
object when it is called with a single argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33375">bpo-33375</a>: The warnings module now finds the Python file associated with a
warning from the code object, rather than the frame’s global namespace.
This is consistent with how tracebacks and pdb find filenames, and should
work better for dynamically executed code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33336">bpo-33336</a>: <code class="docutils literal notranslate"><span class="pre">imaplib</span></code> now allows <code class="docutils literal notranslate"><span class="pre">MOVE</span></code> command in <code class="docutils literal notranslate"><span class="pre">IMAP4.uid()</span></code> (RFC
6851: IMAP MOVE Extension) and potentially as a name of supported method
of <code class="docutils literal notranslate"><span class="pre">IMAP4</span></code> object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32455">bpo-32455</a>: Added <em>jump</em> parameter to <a class="reference internal" href="../library/dis.html#dis.stack_effect" title="dis.stack_effect"><code class="xref py py-func docutils literal notranslate"><span class="pre">dis.stack_effect()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27485">bpo-27485</a>: Rename and deprecate undocumented functions in
<a class="reference internal" href="../library/urllib.parse.html#module-urllib.parse" title="urllib.parse: Parse URLs into or assemble them from components."><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33332">bpo-33332</a>: Add <code class="docutils literal notranslate"><span class="pre">signal.valid_signals()</span></code> to expose the POSIX sigfillset()
functionality.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33251">bpo-33251</a>: <code class="docutils literal notranslate"><span class="pre">ConfigParser.items()</span></code> was fixed so that key-value pairs
passed in via <a class="reference internal" href="../library/functions.html#vars" title="vars"><code class="xref py py-func docutils literal notranslate"><span class="pre">vars()</span></code></a> are not included in the resulting output.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33329">bpo-33329</a>: Fix multiprocessing regression on newer glibcs</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33334">bpo-33334</a>: <a class="reference internal" href="../library/dis.html#dis.stack_effect" title="dis.stack_effect"><code class="xref py py-func docutils literal notranslate"><span class="pre">dis.stack_effect()</span></code></a> now supports all defined opcodes
including NOP and EXTENDED_ARG.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=991266">bpo-991266</a>: Fix quoting of the <code class="docutils literal notranslate"><span class="pre">Comment</span></code> attribute of
<a class="reference internal" href="../library/http.cookies.html#http.cookies.SimpleCookie" title="http.cookies.SimpleCookie"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.cookies.SimpleCookie</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33131">bpo-33131</a>: Upgrade bundled version of pip to 10.0.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33308">bpo-33308</a>: Fixed a crash in the <code class="xref py py-mod docutils literal notranslate"><span class="pre">parser</span></code> module when converting an ST
object to a tree of tuples or lists with <code class="docutils literal notranslate"><span class="pre">line_info=False</span></code> and
<code class="docutils literal notranslate"><span class="pre">col_info=True</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23403">bpo-23403</a>: lib2to3 now uses pickle protocol 4 for pre-computed grammars.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33266">bpo-33266</a>: lib2to3 now recognizes <code class="docutils literal notranslate"><span class="pre">rf'...'</span></code> strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11594">bpo-11594</a>: Ensure line-endings are respected when using lib2to3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33254">bpo-33254</a>: Have <a class="reference internal" href="../library/importlib.resources.html#importlib.resources.contents" title="importlib.resources.contents"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.resources.contents()</span></code></a> and
<a class="reference internal" href="../library/importlib.html#importlib.abc.ResourceReader.contents" title="importlib.abc.ResourceReader.contents"><code class="xref py py-meth docutils literal notranslate"><span class="pre">importlib.abc.ResourceReader.contents()</span></code></a> return an <a class="reference internal" href="../glossary.html#term-iterable"><span class="xref std std-term">iterable</span></a>
instead of an <a class="reference internal" href="../glossary.html#term-iterator"><span class="xref std std-term">iterator</span></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33265">bpo-33265</a>: <code class="docutils literal notranslate"><span class="pre">contextlib.ExitStack</span></code> and <code class="docutils literal notranslate"><span class="pre">contextlib.AsyncExitStack</span></code> now
use a method instead of a wrapper function for exit callbacks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33263">bpo-33263</a>: Fix FD leak in <code class="docutils literal notranslate"><span class="pre">_SelectorSocketTransport</span></code> Patch by Vlad
Starostin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33256">bpo-33256</a>: Fix display of <code class="docutils literal notranslate"><span class="pre"><module></span></code> call in the html produced by
<code class="docutils literal notranslate"><span class="pre">cgitb.html()</span></code>. Patch by Stéphane Blondon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33144">bpo-33144</a>: <code class="docutils literal notranslate"><span class="pre">random.Random()</span></code> and its subclassing mechanism got optimized
to check only once at class/subclass instantiation time whether its
<code class="docutils literal notranslate"><span class="pre">getrandbits()</span></code> method can be relied on by other methods, including
<code class="docutils literal notranslate"><span class="pre">randrange()</span></code>, for the generation of arbitrarily large random integers.
Patch by Wolfgang Maier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33185">bpo-33185</a>: Fixed regression when running pydoc with the <a class="reference internal" href="../using/cmdline.html#cmdoption-m"><code class="xref std std-option docutils literal notranslate"><span class="pre">-m</span></code></a>
switch. (The regression was introduced in 3.7.0b3 by the resolution of
<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33053">bpo-33053</a>)</p>
<p>This fix also changed pydoc to add <code class="docutils literal notranslate"><span class="pre">os.getcwd()</span></code> to <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a>
when necessary, rather than adding <code class="docutils literal notranslate"><span class="pre">"."</span></code>.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29613">bpo-29613</a>: Added support for the <code class="docutils literal notranslate"><span class="pre">SameSite</span></code> cookie flag to the
<code class="docutils literal notranslate"><span class="pre">http.cookies</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33169">bpo-33169</a>: Delete entries of <code class="docutils literal notranslate"><span class="pre">None</span></code> in <a class="reference internal" href="../library/sys.html#sys.path_importer_cache" title="sys.path_importer_cache"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path_importer_cache</span></code></a>
when <code class="xref py py-meth docutils literal notranslate"><span class="pre">importlib.machinery.invalidate_caches()</span></code> is called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33203">bpo-33203</a>: <code class="docutils literal notranslate"><span class="pre">random.Random.choice()</span></code> now raises <code class="docutils literal notranslate"><span class="pre">IndexError</span></code> for empty
sequences consistently even when called from subclasses without a
<code class="docutils literal notranslate"><span class="pre">getrandbits()</span></code> implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33224">bpo-33224</a>: Update difflib.mdiff() for <span class="target" id="index-364"></span><a class="pep reference external" href="https://peps.python.org/pep-0479/"><strong>PEP 479</strong></a>. Convert an uncaught
StopIteration in a generator into a return-statement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33209">bpo-33209</a>: End framing at the end of C implementation of
<a class="reference internal" href="../library/pickle.html#pickle.Pickler.dump" title="pickle.Pickler.dump"><code class="xref py py-func docutils literal notranslate"><span class="pre">pickle.Pickler.dump()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32861">bpo-32861</a>: The urllib.robotparser’s <code class="docutils literal notranslate"><span class="pre">__str__</span></code> representation now
includes wildcard entries and the “Crawl-delay” and “Request-rate” fields.
Also removes extra newlines that were being appended to the end of the
string. Patch by Michael Lazar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23403">bpo-23403</a>: <code class="docutils literal notranslate"><span class="pre">DEFAULT_PROTOCOL</span></code> in <a class="reference internal" href="../library/pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a> was bumped to 4. Protocol
4 is described in <span class="target" id="index-365"></span><a class="pep reference external" href="https://peps.python.org/pep-3154/"><strong>PEP 3154</strong></a> and available since Python 3.4. It offers
better performance and smaller size compared to protocol 3 introduced in
Python 3.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20104">bpo-20104</a>: Improved error handling and fixed a reference leak in
<a class="reference internal" href="../library/os.html#os.posix_spawn" title="os.posix_spawn"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.posix_spawn()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33106">bpo-33106</a>: Deleting a key from a read-only dbm database raises module
specific error instead of KeyError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33175">bpo-33175</a>: In dataclasses, Field.__set_name__ now looks up the
__set_name__ special method on the class, not the instance, of the default
value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32380">bpo-32380</a>: Create functools.singledispatchmethod to support generic single
dispatch on descriptors and methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33141">bpo-33141</a>: Have Field objects pass through __set_name__ to their default
values, if they have their own __set_name__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33096">bpo-33096</a>: Allow ttk.Treeview.insert to insert iid that has a false
boolean value. Note iid=0 and iid=False would be same. Patch by Garvit
Khatri.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32873">bpo-32873</a>: Treat type variables and special typing forms as immutable by
copy and pickle. This fixes several minor issues and inconsistencies, and
improves backwards compatibility with Python 3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33134">bpo-33134</a>: When computing dataclass’s __hash__, use the lookup table to
contain the function which returns the __hash__ value. This is an
improvement over looking up a string, and then testing that string to see
what to do.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33127">bpo-33127</a>: The ssl module now compiles with LibreSSL 2.7.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32505">bpo-32505</a>: Raise TypeError if a member variable of a dataclass is of type
Field, but doesn’t have a type annotation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33078">bpo-33078</a>: Fix the failure on OSX caused by the tests relying on
sem_getvalue</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33116">bpo-33116</a>: Add ‘Field’ to dataclasses.__all__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32896">bpo-32896</a>: Fix an error where subclassing a dataclass with a field that
uses a default_factory would generate an incorrect class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33100">bpo-33100</a>: Dataclasses: If a field has a default value that’s a
MemberDescriptorType, then it’s from that field being in __slots__, not an
actual default value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32953">bpo-32953</a>: If a non-dataclass inherits from a frozen dataclass, allow
attributes to be added to the derived class. Only attributes from the
frozen dataclass cannot be assigned to. Require all dataclasses in a
hierarchy to be either all frozen or all non-frozen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33097">bpo-33097</a>: Raise RuntimeError when <code class="docutils literal notranslate"><span class="pre">executor.submit</span></code> is called during
interpreter shutdown.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32968">bpo-32968</a>: Modulo and floor division involving Fraction and float should
return float.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33061">bpo-33061</a>: Add missing <code class="docutils literal notranslate"><span class="pre">NoReturn</span></code> to <code class="docutils literal notranslate"><span class="pre">__all__</span></code> in typing.py</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33078">bpo-33078</a>: Fix the size handling in multiprocessing.Queue when a pickling
error occurs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33064">bpo-33064</a>: lib2to3 now properly supports trailing commas after <code class="docutils literal notranslate"><span class="pre">*args</span></code>
and <code class="docutils literal notranslate"><span class="pre">**kwargs</span></code> in function signatures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33056">bpo-33056</a>: FIX properly close leaking fds in
concurrent.futures.ProcessPoolExecutor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33021">bpo-33021</a>: Release the GIL during fstat() calls, avoiding hang of all
threads when calling mmap.mmap(), os.urandom(), and random.seed(). Patch
by Nir Soffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31804">bpo-31804</a>: Avoid failing in multiprocessing.Process if the standard
streams are closed or None at exit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33034">bpo-33034</a>: Providing an explicit error message when casting the port
property to anything that is not an integer value using <code class="docutils literal notranslate"><span class="pre">urlparse()</span></code> and
<code class="docutils literal notranslate"><span class="pre">urlsplit()</span></code>. Patch by Matt Eaton.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30249">bpo-30249</a>: Improve struct.unpack_from() exception messages for problems
with the buffer size and offset.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33037">bpo-33037</a>: Skip sending/receiving data after SSL transport closing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27683">bpo-27683</a>: Fix a regression in <a class="reference internal" href="../library/ipaddress.html#module-ipaddress" title="ipaddress: IPv4/IPv6 manipulation library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress</span></code></a> that result of
<code class="xref py py-meth docutils literal notranslate"><span class="pre">hosts()</span></code> is empty when the network is constructed by a tuple
containing an integer mask and only 1 bit left for addresses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22674">bpo-22674</a>: Add the strsignal() function in the signal module that returns
the system description of the given signal, as returned by strsignal(3).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32999">bpo-32999</a>: Fix C implementation of <code class="docutils literal notranslate"><span class="pre">ABC.__subclasscheck__(cls,</span>
<span class="pre">subclass)</span></code> crashed when <code class="docutils literal notranslate"><span class="pre">subclass</span></code> is not a type object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33009">bpo-33009</a>: Fix inspect.signature() for single-parameter partialmethods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32969">bpo-32969</a>: Expose several missing constants in zlib and fix corresponding
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32056">bpo-32056</a>: Improved exceptions raised for invalid number of channels and
sample width when read an audio file in modules <code class="xref py py-mod docutils literal notranslate"><span class="pre">aifc</span></code>, <a class="reference internal" href="../library/wave.html#module-wave" title="wave: Provide an interface to the WAV sound format."><code class="xref py py-mod docutils literal notranslate"><span class="pre">wave</span></code></a>
and <code class="xref py py-mod docutils literal notranslate"><span class="pre">sunau</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32970">bpo-32970</a>: Improved disassembly of the MAKE_FUNCTION instruction.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32844">bpo-32844</a>: Fix wrong redirection of a low descriptor (0 or 1) to stderr in
subprocess if another low descriptor is closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32960">bpo-32960</a>: For dataclasses, disallow inheriting frozen from non-frozen
classes, and also disallow inheriting non-frozen from frozen classes. This
restriction will be relaxed at a future date.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32713">bpo-32713</a>: Fixed tarfile.itn handling of out-of-bounds float values. Patch
by Joffrey Fuhrer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32257">bpo-32257</a>: The ssl module now contains OP_NO_RENEGOTIATION constant,
available with OpenSSL 1.1.0h or 1.1.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32951">bpo-32951</a>: Direct instantiation of SSLSocket and SSLObject objects is now
prohibited. The constructors were never documented, tested, or designed as
public constructors. Users were suppose to use ssl.wrap_socket() or
SSLContext.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32929">bpo-32929</a>: Remove the tri-state parameter “hash”, and add the boolean
“unsafe_hash”. If unsafe_hash is True, add a __hash__ function, but if a
__hash__ exists, raise TypeError. If unsafe_hash is False, add a __hash__
based on the values of eq= and frozen=. The unsafe_hash=False behavior is
the same as the old hash=None behavior. unsafe_hash=False is the default,
just as hash=None used to be.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32947">bpo-32947</a>: Add OP_ENABLE_MIDDLEBOX_COMPAT and test workaround for TLSv1.3
for future compatibility with OpenSSL 1.1.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32146">bpo-32146</a>: Document the interaction between frozen executables and the
spawn and forkserver start methods in multiprocessing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30622">bpo-30622</a>: The ssl module now detects missing NPN support in LibreSSL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32922">bpo-32922</a>: dbm.open() now encodes filename with the filesystem encoding
rather than default encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32759">bpo-32759</a>: Free unused arenas in multiprocessing.heap.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32859">bpo-32859</a>: In <code class="docutils literal notranslate"><span class="pre">os.dup2</span></code>, don’t check every call whether the <code class="docutils literal notranslate"><span class="pre">dup3</span></code>
syscall exists or not.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32556">bpo-32556</a>: nt._getfinalpathname, nt._getvolumepathname and
nt._getdiskusage now correctly convert from bytes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21060">bpo-21060</a>: Rewrite confusing message from setup.py upload from “No dist
file created in earlier command” to the more helpful “Must create and
upload files in one command”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32857">bpo-32857</a>: In <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a>, <code class="docutils literal notranslate"><span class="pre">after_cancel(None)</span></code> now raises a
<a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> instead of canceling the first scheduled function.
Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32852">bpo-32852</a>: Make sure sys.argv remains as a list when running trace.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31333">bpo-31333</a>: <code class="docutils literal notranslate"><span class="pre">_abc</span></code> module is added. It is a speedup module with C
implementations for various functions and methods in <code class="docutils literal notranslate"><span class="pre">abc</span></code>. Creating an
ABC subclass and calling <code class="docutils literal notranslate"><span class="pre">isinstance</span></code> or <code class="docutils literal notranslate"><span class="pre">issubclass</span></code> with an ABC
subclass are up to 1.5x faster. In addition, this makes Python start-up up
to 10% faster.</p>
<p>Note that the new implementation hides internal registry and caches,
previously accessible via private attributes <code class="docutils literal notranslate"><span class="pre">_abc_registry</span></code>,
<code class="docutils literal notranslate"><span class="pre">_abc_cache</span></code>, and <code class="docutils literal notranslate"><span class="pre">_abc_negative_cache</span></code>. There are three debugging
helper methods that can be used instead <code class="docutils literal notranslate"><span class="pre">_dump_registry</span></code>,
<code class="docutils literal notranslate"><span class="pre">_abc_registry_clear</span></code>, and <code class="docutils literal notranslate"><span class="pre">_abc_caches_clear</span></code>.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32841">bpo-32841</a>: Fixed <code class="docutils literal notranslate"><span class="pre">asyncio.Condition</span></code> issue which silently ignored
cancellation after notifying and cancelling a conditional lock. Patch by
Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32819">bpo-32819</a>: ssl.match_hostname() has been simplified and no longer depends
on re and ipaddress module for wildcard and IP addresses. Error reporting
for invalid wildcards has been improved.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19675">bpo-19675</a>: <code class="docutils literal notranslate"><span class="pre">multiprocessing.Pool</span></code> no longer leaks processes if its
initialization fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32394">bpo-32394</a>: socket: Remove
TCP_FASTOPEN,TCP_KEEPCNT,TCP_KEEPIDLE,TCP_KEEPINTVL flags on older version
Windows during run-time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31787">bpo-31787</a>: Fixed refleaks of <code class="docutils literal notranslate"><span class="pre">__init__()</span></code> methods in various modules.
(Contributed by Oren Milman)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30157">bpo-30157</a>: Fixed guessing quote and delimiter in csv.Sniffer.sniff() when
only the last field is quoted. Patch by Jake Davis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30688">bpo-30688</a>: Added support of <code class="docutils literal notranslate"><span class="pre">\N{name}</span></code> escapes in regular expressions.
Based on patch by Jonathan Eunice.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32792">bpo-32792</a>: collections.ChainMap() preserves the order of the underlying
mappings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32775">bpo-32775</a>: <a class="reference internal" href="../library/fnmatch.html#fnmatch.translate" title="fnmatch.translate"><code class="xref py py-func docutils literal notranslate"><span class="pre">fnmatch.translate()</span></code></a> no longer produces patterns which
contain set operations. Sets starting with ‘[’ or containing ‘–’, ‘&&’,
‘~~’ or ‘||’ will be interpreted differently in regular expressions in
future versions. Currently they emit warnings. fnmatch.translate() now
avoids producing patterns containing such sets by accident.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32622">bpo-32622</a>: Implement native fast sendfile for Windows proactor event loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32777">bpo-32777</a>: Fix a rare but potential pre-exec child process deadlock in
subprocess on POSIX systems when marking file descriptors inheritable on
exec in the child process. This bug appears to have been introduced in
3.4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32647">bpo-32647</a>: The ctypes module used to depend on indirect linking for
dlopen. The shared extension is now explicitly linked against libdl on
platforms with dl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32749">bpo-32749</a>: A <a class="reference internal" href="../library/dbm.html#module-dbm.dumb" title="dbm.dumb: Portable implementation of the simple DBM interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.dumb</span></code></a> database opened with flags ‘r’ is now
read-only. <a class="reference internal" href="../library/dbm.html#dbm.dumb.open" title="dbm.dumb.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">dbm.dumb.open()</span></code></a> with flags ‘r’ and ‘w’ no longer creates
a database if it does not exist.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32741">bpo-32741</a>: Implement <code class="docutils literal notranslate"><span class="pre">asyncio.TimerHandle.when()</span></code> method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32691">bpo-32691</a>: Use mod_spec.parent when running modules with pdb</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32734">bpo-32734</a>: Fixed <code class="docutils literal notranslate"><span class="pre">asyncio.Lock()</span></code> safety issue which allowed acquiring
and locking the same lock multiple times, without it being free. Patch by
Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32727">bpo-32727</a>: Do not include name field in SMTP envelope from address. Patch
by Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31453">bpo-31453</a>: Add TLSVersion constants and SSLContext.maximum_version /
minimum_version attributes. The new API wraps OpenSSL 1.1
<a class="reference external" href="https://web.archive.org/web/20180309043602/https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.html">https://web.archive.org/web/20180309043602/https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.html</a>
feature.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24334">bpo-24334</a>: Internal implementation details of ssl module were cleaned up.
The SSLSocket has one less layer of indirection. Owner and session
information are now handled by the SSLSocket and SSLObject constructor.
Channel binding implementation has been simplified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31848">bpo-31848</a>: Fix the error handling in Aifc_read.initfp() when the SSND
chunk is not found. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32585">bpo-32585</a>: Add Ttk spinbox widget to <a class="reference internal" href="../library/tkinter.ttk.html#module-tkinter.ttk" title="tkinter.ttk: Tk themed widget set"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.ttk</span></code></a>. Patch by Alan D
Moore.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32512">bpo-32512</a>: <a class="reference internal" href="../library/profile.html#module-profile" title="profile: Python source profiler."><code class="xref py py-mod docutils literal notranslate"><span class="pre">profile</span></code></a> CLI accepts <code class="docutils literal notranslate"><span class="pre">-m</span> <span class="pre">module_name</span></code> as an alternative
to script path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8525">bpo-8525</a>: help() on a type now displays builtin subclasses. This is
intended primarily to help with notification of more specific exception
subclasses.</p>
<p>Patch by Sanyam Khurana.</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31639">bpo-31639</a>: http.server now exposes a ThreadingHTTPServer class and uses it
when the module is run with <code class="docutils literal notranslate"><span class="pre">-m</span></code> to cope with web browsers pre-opening
sockets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29877">bpo-29877</a>: compileall: import ProcessPoolExecutor only when needed,
preventing hangs on low resource platforms</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32221">bpo-32221</a>: Various functions returning tuple containing IPv6 addresses now
omit <code class="docutils literal notranslate"><span class="pre">%scope</span></code> part since the same information is already encoded in
<em>scopeid</em> tuple item. Especially this speeds up <code class="xref py py-func docutils literal notranslate"><span class="pre">socket.recvfrom()</span></code>
when it receives multicast packet since useless resolving of network
interface name is omitted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32147">bpo-32147</a>: <a class="reference internal" href="../library/binascii.html#binascii.unhexlify" title="binascii.unhexlify"><code class="xref py py-func docutils literal notranslate"><span class="pre">binascii.unhexlify()</span></code></a> is now up to 2 times faster. Patch
by Sergey Fedoseev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30693">bpo-30693</a>: The TarFile class now recurses directories in a reproducible
way.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30693">bpo-30693</a>: The ZipFile class now recurses directories in a reproducible
way.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31680">bpo-31680</a>: Added <a class="reference internal" href="../library/curses.html#curses.ncurses_version" title="curses.ncurses_version"><code class="xref py py-data docutils literal notranslate"><span class="pre">curses.ncurses_version</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31908">bpo-31908</a>: Fix output of cover files for <code class="docutils literal notranslate"><span class="pre">trace</span></code> module command-line
tool. Previously emitted cover files only when <code class="docutils literal notranslate"><span class="pre">--missing</span></code> option was
used. Patch by Michael Selik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31608">bpo-31608</a>: Raise a <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> instead of crashing if a
<code class="docutils literal notranslate"><span class="pre">collections.deque</span></code> subclass returns a non-deque from <code class="docutils literal notranslate"><span class="pre">__new__</span></code>. Patch
by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31425">bpo-31425</a>: Add support for sockets of the AF_QIPCRTR address family,
supported by the Linux kernel. This is used to communicate with services,
such as GPS or radio, running on Qualcomm devices. Patch by Bjorn
Andersson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22005">bpo-22005</a>: Implemented unpickling instances of
<a class="reference internal" href="../library/datetime.html#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a>, <a class="reference internal" href="../library/datetime.html#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code></a> pickled by Python 2. <code class="docutils literal notranslate"><span class="pre">encoding='latin1'</span></code> should
be used for successful decoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27645">bpo-27645</a>: <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> now exposes a
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.backup" title="sqlite3.Connection.backup"><code class="xref py py-class docutils literal notranslate"><span class="pre">backup</span></code></a> method, if the underlying SQLite
library is at version 3.6.11 or higher. Patch by Lele Gaifax.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16865">bpo-16865</a>: Support arrays >=2GiB in <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a>. Patch by Segev Finer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31508">bpo-31508</a>: Removed support of arguments in
<code class="docutils literal notranslate"><span class="pre">tkinter.ttk.Treeview.selection</span></code>. It was deprecated in 3.6. Use
specialized methods like <code class="docutils literal notranslate"><span class="pre">selection_set</span></code> for changing the selection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29456">bpo-29456</a>: Fix bugs in hangul normalization: u1176, u11a7 and u11c3</p></li>
</ul>
</section>
<section id="id517">
<h3>Documentation<a class="headerlink" href="#id517" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21257">bpo-21257</a>: Document <a class="reference internal" href="../library/http.client.html#http.client.parse_headers" title="http.client.parse_headers"><code class="xref py py-func docutils literal notranslate"><span class="pre">http.client.parse_headers()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34764">bpo-34764</a>: Improve example of iter() with 2nd sentinel argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35564">bpo-35564</a>: Explicitly set master_doc variable in conf.py for compliance
with Sphinx 2.0</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35511">bpo-35511</a>: Specified that profile.Profile class doesn’t not support enable
or disable methods. Also, elaborated that Profile object as a context
manager is only supported in cProfile module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10536">bpo-10536</a>: Enhance the gettext docs. Patch by Éric Araujo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35089">bpo-35089</a>: Remove mention of <code class="docutils literal notranslate"><span class="pre">typing.io</span></code> and <code class="docutils literal notranslate"><span class="pre">typing.re</span></code>. Their types
should be imported from <code class="docutils literal notranslate"><span class="pre">typing</span></code> directly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35038">bpo-35038</a>: Fix the documentation about an unexisting <code class="docutils literal notranslate"><span class="pre">f_restricted</span></code>
attribute in the frame object. Patch by Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35042">bpo-35042</a>: Replace PEP XYZ by the pep role and allow to use the direct
links to the PEPs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35044">bpo-35044</a>: Fix the documentation with the role <code class="docutils literal notranslate"><span class="pre">exc</span></code> for the
appropriated exception. Patch by Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35035">bpo-35035</a>: Rename documentation for <a class="reference internal" href="../library/email.utils.html#module-email.utils" title="email.utils: Miscellaneous email package utilities."><code class="xref py py-mod docutils literal notranslate"><span class="pre">email.utils</span></code></a> to
<code class="docutils literal notranslate"><span class="pre">email.utils.rst</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34967">bpo-34967</a>: Use app.add_object_type() instead of the deprecated Sphinx
function app.description_unit()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34913">bpo-34913</a>: Add documentation about the new command line interface of the
gzip module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32174">bpo-32174</a>: chm document displays non-ASCII characters properly on some
MBCS Windows systems.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11233">bpo-11233</a>: Create availability directive for documentation. Original
patch by Georg Brandl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34790">bpo-34790</a>: Document how passing coroutines to asyncio.wait() can be
confusing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34552">bpo-34552</a>: Make clear that <code class="docutils literal notranslate"><span class="pre">==</span></code> operator sometimes is equivalent to
<code class="docutils literal notranslate"><span class="pre">is</span></code>. The <code class="docutils literal notranslate"><span class="pre"><</span></code>, <code class="docutils literal notranslate"><span class="pre"><=</span></code>, <code class="docutils literal notranslate"><span class="pre">></span></code> and <code class="docutils literal notranslate"><span class="pre">>=</span></code> operators are only defined
where they make sense.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28617">bpo-28617</a>: Fixed info in the stdtypes docs concerning the types that
support membership tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20177">bpo-20177</a>: Migrate datetime.date.fromtimestamp to Argument Clinic. Patch
by Tim Hoffmann.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34065">bpo-34065</a>: Fix wrongly written basicConfig documentation markup syntax</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33460">bpo-33460</a>: replaced ellipsis with correct error codes in tutorial chapter
3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33847">bpo-33847</a>: Add ‘@’ operator entry to index.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33409">bpo-33409</a>: Clarified the relationship between <span class="target" id="index-366"></span><a class="pep reference external" href="https://peps.python.org/pep-0538/"><strong>PEP 538</strong></a>’s
PYTHONCOERCECLOCALE and PEP 540’s PYTHONUTF8 mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33197">bpo-33197</a>: Add versionadded tag to the documentation of
ParameterKind.description</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17045">bpo-17045</a>: Improve the C-API doc for PyTypeObject. This includes adding
several quick-reference tables and a lot of missing slot/typedef entries.
The existing entries were also cleaned up with a slightly more consistent
format.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33736">bpo-33736</a>: Improve the documentation of <a class="reference internal" href="../library/asyncio-stream.html#asyncio.open_connection" title="asyncio.open_connection"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.open_connection()</span></code></a>,
<a class="reference internal" href="../library/asyncio-stream.html#asyncio.start_server" title="asyncio.start_server"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.start_server()</span></code></a> and their UNIX socket counterparts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23859">bpo-23859</a>: Document that <code class="docutils literal notranslate"><span class="pre">asyncio.wait()</span></code> does not cancel its futures on
timeout.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32436">bpo-32436</a>: Document <span class="target" id="index-367"></span><a class="pep reference external" href="https://peps.python.org/pep-0567/"><strong>PEP 567</strong></a> changes to asyncio.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33604">bpo-33604</a>: Update HMAC md5 default to a DeprecationWarning, bump removal
to 3.8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33594">bpo-33594</a>: Document <code class="docutils literal notranslate"><span class="pre">getargspec</span></code>, <code class="docutils literal notranslate"><span class="pre">from_function</span></code> and <code class="docutils literal notranslate"><span class="pre">from_builtin</span></code>
as deprecated in their respective docstring, and include version since
deprecation in DeprecationWarning message.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33503">bpo-33503</a>: Fix broken pypi link</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33421">bpo-33421</a>: Add missing documentation for <code class="docutils literal notranslate"><span class="pre">typing.AsyncContextManager</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33487">bpo-33487</a>: BZ2file now emit a DeprecationWarning when buffering=None is
passed, the deprecation message and documentation also now explicitly
state it is deprecated since 3.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33378">bpo-33378</a>: Add Korean language switcher for <a class="reference external" href="https://docs.python.org/3/">https://docs.python.org/3/</a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33276">bpo-33276</a>: Clarify that the <code class="docutils literal notranslate"><span class="pre">__path__</span></code> attribute on modules cannot be
just any value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33201">bpo-33201</a>: Modernize documentation for writing C extension types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33195">bpo-33195</a>: Deprecate <code class="docutils literal notranslate"><span class="pre">Py_UNICODE</span></code> usage in <code class="docutils literal notranslate"><span class="pre">c-api/arg</span></code> document.
<code class="docutils literal notranslate"><span class="pre">Py_UNICODE</span></code> related APIs are deprecated since Python 3.3, but it is
missed in the document.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33126">bpo-33126</a>: Document PyBuffer_ToContiguous().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27212">bpo-27212</a>: Modify documentation for the <code class="xref py py-func docutils literal notranslate"><span class="pre">islice()</span></code> recipe to consume
initial values up to the start index.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28247">bpo-28247</a>: Update <a class="reference internal" href="../library/zipapp.html#module-zipapp" title="zipapp: Manage executable Python zip archives"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipapp</span></code></a> documentation to describe how to make
standalone applications.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18802">bpo-18802</a>: Documentation changes for ipaddress. Patch by Jon Foster and
Berker Peksag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27428">bpo-27428</a>: Update documentation to clarify that <code class="docutils literal notranslate"><span class="pre">WindowsRegistryFinder</span></code>
implements <code class="docutils literal notranslate"><span class="pre">MetaPathFinder</span></code>. (Patch by Himanshu Lakhara)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28124">bpo-28124</a>: The ssl module function ssl.wrap_socket() has been
de-emphasized and deprecated in favor of the more secure and efficient
SSLContext.wrap_socket() method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17232">bpo-17232</a>: Clarify docs for -O and -OO. Patch by Terry Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32436">bpo-32436</a>: Add documentation for the contextvars module (PEP 567).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32800">bpo-32800</a>: Update link to w3c doc for xml default namespaces.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11015">bpo-11015</a>: Update <a class="reference internal" href="../library/test.html#module-test.support" title="test.support: Support for Python's regression test suite."><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support</span></code></a> documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32613">bpo-32613</a>: Update the faq/windows.html to use the py command from PEP 397
instead of python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8722">bpo-8722</a>: Document <code class="xref py py-meth docutils literal notranslate"><span class="pre">__getattr__()</span></code> behavior when property <code class="xref py py-meth docutils literal notranslate"><span class="pre">get()</span></code>
method raises <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32614">bpo-32614</a>: Modify RE examples in documentation to use raw strings to
prevent <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> and add text to REGEX HOWTO to highlight
the deprecation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20709">bpo-20709</a>: Remove the paragraph where we explain that os.utime() does not
support a directory as path under Windows. Patch by Jan-Philip Gehrcke</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32722">bpo-32722</a>: Remove the bad example in the tutorial of the Generator
Expression. Patch by Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31972">bpo-31972</a>: Improve docstrings for <code class="docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code> subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30607">bpo-30607</a>: Use the externalized <code class="docutils literal notranslate"><span class="pre">python-docs-theme</span></code> package when
building the documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8243">bpo-8243</a>: Add a note about curses.addch and curses.addstr exception
behavior when writing outside a window, or pad.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32337">bpo-32337</a>: Update documentation related with <code class="docutils literal notranslate"><span class="pre">dict</span></code> order.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25041">bpo-25041</a>: Document <code class="docutils literal notranslate"><span class="pre">AF_PACKET</span></code> in the <a class="reference internal" href="../library/socket.html#module-socket" title="socket: Low-level networking interface."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socket</span></code></a> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31432">bpo-31432</a>: Clarify meaning of CERT_NONE, CERT_OPTIONAL, and CERT_REQUIRED
flags for ssl.SSLContext.verify_mode.</p></li>
</ul>
</section>
<section id="id518">
<h3>Tests<a class="headerlink" href="#id518" title="Link to this heading">¶</a></h3>
<ul>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35772">bpo-35772</a>: Fix sparse file tests of test_tarfile on ppc64 with the tmpfs
filesystem. Fix the function testing if the filesystem supports sparse
files: create a file which contains data and “holes”, instead of creating
a file which contains no data. tmpfs effective block size is a page size
(tmpfs lives in the page cache). RHEL uses 64 KiB pages on aarch64, ppc64,
ppc64le, only s390x and x86_64 use 4 KiB pages, whereas the test punch
holes of 4 KiB.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35045">bpo-35045</a>: Make ssl tests less strict and also accept TLSv1 as system
default. The changes unbreaks test_min_max_version on Fedora 29.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32710">bpo-32710</a>: <code class="docutils literal notranslate"><span class="pre">test_asyncio/test_sendfile.py</span></code> now resets the event loop
policy using <code class="xref py py-func docutils literal notranslate"><span class="pre">tearDownModule()</span></code> as done in other tests, to prevent a
warning when running tests on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33717">bpo-33717</a>: test.pythoninfo now logs information of all clocks, not only
time.time() and time.perf_counter().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35488">bpo-35488</a>: Add a test to pathlib’s Path.match() to verify it does not
support glob-style ** recursive pattern matching.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31731">bpo-31731</a>: Fix a race condition in <code class="docutils literal notranslate"><span class="pre">check_interrupted_write()</span></code> of
test_io: create directly the thread with SIGALRM signal blocked, rather
than blocking the signal later from the thread. Previously, it was
possible that the thread gets the signal before the signal is blocked.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35424">bpo-35424</a>: Fix test_multiprocessing_main_handling: use
<code class="xref py py-class docutils literal notranslate"><span class="pre">multiprocessing.Pool</span></code> with a context manager and then explicitly
join the pool.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35519">bpo-35519</a>: Rename <code class="xref py py-mod docutils literal notranslate"><span class="pre">test.bisect</span></code> module to <code class="xref py py-mod docutils literal notranslate"><span class="pre">test.bisect_cmd</span></code> to
avoid conflict with <a class="reference internal" href="../library/bisect.html#module-bisect" title="bisect: Array bisection algorithms for binary searching."><code class="xref py py-mod docutils literal notranslate"><span class="pre">bisect</span></code></a> module when running directly a test like
<code class="docutils literal notranslate"><span class="pre">./python</span> <span class="pre">Lib/test/test_xmlrpc.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35513">bpo-35513</a>: Replace <a class="reference internal" href="../library/time.html#time.time" title="time.time"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.time()</span></code></a> with <a class="reference internal" href="../library/time.html#time.monotonic" title="time.monotonic"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.monotonic()</span></code></a> in tests
to measure time delta.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34279">bpo-34279</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">test.support.run_unittest()</span></code> no longer raise
<code class="xref py py-exc docutils literal notranslate"><span class="pre">TestDidNotRun</span></code> if the test result contains skipped tests. The
exception is now only raised if no test have been run and no test have
been skipped.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35412">bpo-35412</a>: Add testcase to <code class="docutils literal notranslate"><span class="pre">test_future4</span></code>: check unicode literal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26704">bpo-26704</a>: Added test demonstrating double-patching of an instance method.
Patch by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33725">bpo-33725</a>: test_multiprocessing_fork may crash on recent versions of
macOS. Until the issue is resolved, skip the test on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35352">bpo-35352</a>: Modify test_asyncio to use the certificate set from the test
directory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35317">bpo-35317</a>: Fix <code class="docutils literal notranslate"><span class="pre">mktime()</span></code> overflow error in <code class="docutils literal notranslate"><span class="pre">test_email</span></code>: run
<code class="docutils literal notranslate"><span class="pre">test_localtime_daylight_true_dst_true()</span></code> and
<code class="docutils literal notranslate"><span class="pre">test_localtime_daylight_false_dst_true()</span></code> with a specific timezone.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21263">bpo-21263</a>: After several reports that test_gdb does not work properly on
macOS and since gdb is not shipped by default anymore, test_gdb is now
skipped on macOS when LLVM Clang has been used to compile Python. Patch by
Lysandros Nikolaou</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34279">bpo-34279</a>: regrtest issue a warning when no tests have been executed in a
particular test file. Also, a new final result state is issued if no test
have been executed across all test files. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34962">bpo-34962</a>: make docstest in Doc now passes., and is enforced in CI</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23596">bpo-23596</a>: Use argparse for the command line of the gzip module. Patch by
Antony Lee</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34537">bpo-34537</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_gdb.test_strings()</span></code> when <code class="docutils literal notranslate"><span class="pre">LC_ALL=C</span></code> and GDB was
compiled with Python 3.6 or earlier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34587">bpo-34587</a>: test_socket: Remove RDSTest.testCongestion(). The test tries to
fill the receiver’s socket buffer and expects an error. But the RDS
protocol doesn’t require that. Moreover, the Linux implementation of RDS
expects that the producer of the messages reduces its rate, it’s not the
role of the receiver to trigger an error. The test fails on Fedora 28 by
design, so just remove it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34661">bpo-34661</a>: Fix test_shutil if unzip doesn’t support -t.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34200">bpo-34200</a>: Fixed non-deterministic flakiness of test_pkg by not using the
scary test.support.module_cleanup() logic to save and restore sys.modules
contents between test cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34569">bpo-34569</a>: The experimental PEP 554 data channels now correctly pass
negative PyLong objects between subinterpreters on 32-bit systems. Patch
by Michael Felt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34594">bpo-34594</a>: Fix usage of hardcoded <code class="docutils literal notranslate"><span class="pre">errno</span></code> values in the tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34579">bpo-34579</a>: Fix test_embed for AIX Patch by Michael Felt</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34542">bpo-34542</a>: Use 3072 RSA keys and SHA-256 signature for test certs and
keys.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11193">bpo-11193</a>: Remove special condition for AIX in
<code class="docutils literal notranslate"><span class="pre">test_subprocess.test_undecodable_env</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34347">bpo-34347</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_utf8_mode.test_cmd_line</span></code> for AIX</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34490">bpo-34490</a>: On AIX with AF_UNIX family sockets getsockname() does not
provide ‘sockname’, so skip calls to transport.get_extra_info(‘sockname’)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34391">bpo-34391</a>: Fix ftplib test for TLS 1.3 by reading from data socket.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11192">bpo-11192</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_socket</span></code> on AIX 6.1 and later IPv6 zone id supports
only supported by <code class="docutils literal notranslate"><span class="pre">inet_pton6_zone()</span></code>. Switch to runtime-based
<code class="docutils literal notranslate"><span class="pre">platform.system()</span></code> to establish current platform rather than build-time
based <code class="docutils literal notranslate"><span class="pre">sys.platform()</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34399">bpo-34399</a>: Update all RSA keys and DH params to use at least 2048 bits.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34373">bpo-34373</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_mktime</span></code> and <code class="docutils literal notranslate"><span class="pre">test_pthread_getcpuclickid</span></code> tests
for AIX Add range checking for <code class="docutils literal notranslate"><span class="pre">_PyTime_localtime</span></code> for AIX Patch by
Michael Felt</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11191">bpo-11191</a>: Skip the distutils test ‘test_search_cpp’ when using XLC as
compiler patch by aixtools (Michael Felt)</p></li>
<li><p>Improved an error message when mock assert_has_calls fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33746">bpo-33746</a>: Fix test_unittest when run in verbose mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33901">bpo-33901</a>: Fix test_dbm_gnu on macOS with gdbm 1.15: add a larger value to
make sure that the file size changes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33873">bpo-33873</a>: Fix a bug in <code class="docutils literal notranslate"><span class="pre">regrtest</span></code> that caused an extra test to run if
–huntrleaks/-R was used. Exit with error in case that invalid parameters
are specified to –huntrleaks/-R (at least one warmup run and one
repetition must be used).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33562">bpo-33562</a>: Check that a global asyncio event loop policy is not left
behind by any tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33655">bpo-33655</a>: Ignore test_posix_fallocate failures on BSD platforms that
might be due to running on ZFS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32962">bpo-32962</a>: Fixed test_gdb when Python is compiled with flags -mcet
-fcf-protection -O0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33358">bpo-33358</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_embed.test_pre_initialization_sys_options()</span></code> when
the interpreter is built with <code class="docutils literal notranslate"><span class="pre">--enable-shared</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32872">bpo-32872</a>: Avoid regrtest compatibility issue with namespace packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32517">bpo-32517</a>: Fix failing <code class="docutils literal notranslate"><span class="pre">test_asyncio</span></code> on macOS 10.12.2+ due to transport
of <code class="docutils literal notranslate"><span class="pre">KqueueSelector</span></code> loop was not being closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32663">bpo-32663</a>: Making sure the <code class="docutils literal notranslate"><span class="pre">SMTPUTF8SimTests</span></code> class of tests gets run in
<code class="docutils literal notranslate"><span class="pre">test_smtplib.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27643">bpo-27643</a>: Test_C test case needs “signed short” bitfields, but the IBM
XLC compiler (on AIX) does not support this Skip the code and test when
AIX and XLC are used</p>
<p>Applicable to Python2-2.7 and later</p>
</li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19417">bpo-19417</a>: Add test_bdb.py.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31809">bpo-31809</a>: Add tests to verify connection with secp ECDH curves.</p></li>
</ul>
</section>
<section id="id519">
<h3>Build<a class="headerlink" href="#id519" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34691">bpo-34691</a>: The _contextvars module is now built into the core Python
library on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35683">bpo-35683</a>: Improved Azure Pipelines build steps and now verifying layouts
correctly</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35642">bpo-35642</a>: Remove asynciomodule.c from pythoncore.vcxproj</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35550">bpo-35550</a>: Fix incorrect Solaris #ifdef checks to look for __sun && __SVR4
instead of sun when compiling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35499">bpo-35499</a>: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">profile-opt</span></code> no longer replaces <code class="docutils literal notranslate"><span class="pre">CFLAGS_NODIST</span></code> with
<code class="docutils literal notranslate"><span class="pre">CFLAGS</span></code>. It now adds profile-guided optimization (PGO) flags to
<code class="docutils literal notranslate"><span class="pre">CFLAGS_NODIST</span></code>: existing <code class="docutils literal notranslate"><span class="pre">CFLAGS_NODIST</span></code> flags are kept.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35257">bpo-35257</a>: Avoid leaking the linker flags from Link Time Optimizations
(LTO) into distutils when compiling C extensions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35351">bpo-35351</a>: When building Python with clang and LTO, LTO flags are no
longer passed into CFLAGS to build third-party C extensions through
distutils.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35139">bpo-35139</a>: Fix a compiler error when statically linking <code class="docutils literal notranslate"><span class="pre">pyexpat</span></code> in
<code class="docutils literal notranslate"><span class="pre">Modules/Setup</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35059">bpo-35059</a>: PCbuild: Set InlineFunctionExpansion to OnlyExplicitInline
(“/Ob1” option) in pyproject.props in Debug mode to expand functions
marked as inline. This change should make Python compiled in Debug mode a
little bit faster on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35011">bpo-35011</a>: Restores the use of pyexpatns.h to isolate our embedded copy of
the expat C library so that its symbols do not conflict at link or dynamic
loading time with an embedding application or other extension modules with
their own version of libexpat.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28015">bpo-28015</a>: Have –with-lto works correctly with clang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34765">bpo-34765</a>: Update the outdated install-sh file to the latest revision from
automake v1.16.1</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34585">bpo-34585</a>: Check for floating-point byte order in configure.ac using
compilation tests instead of executing code, so that these checks work in
cross-compiled builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34710">bpo-34710</a>: Fixed SSL module build with OpenSSL & pedantic CFLAGS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34582">bpo-34582</a>: Add JUnit XML output for regression tests and update Azure
DevOps builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34081">bpo-34081</a>: Make Sphinx warnings as errors in the Docs Makefile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34555">bpo-34555</a>: Fix for case where it was not possible to have both
<code class="docutils literal notranslate"><span class="pre">HAVE_LINUX_VM_SOCKETS_H</span></code> and <code class="docutils literal notranslate"><span class="pre">HAVE_SOCKADDR_ALG</span></code> be undefined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33015">bpo-33015</a>: Fix an undefined behaviour in the pthread implementation of
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyThread_start_new_thread()</span></code>: add a function wrapper to always
return <code class="docutils literal notranslate"><span class="pre">NULL</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34245">bpo-34245</a>: The Python shared library is now installed with write
permission (mode 0755), which is the standard way of installing such
libraries.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34121">bpo-34121</a>: Fix detection of C11 atomic support on clang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32430">bpo-32430</a>: Rename Modules/Setup.dist to Modules/Setup, and remove the
necessity to copy the former manually to the latter when updating the
local source tree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30345">bpo-30345</a>: Add -g to LDFLAGS when compiling with LTO to get debug symbols.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5755">bpo-5755</a>: Move <code class="docutils literal notranslate"><span class="pre">-Wstrict-prototypes</span></code> option to <code class="docutils literal notranslate"><span class="pre">CFLAGS_NODIST</span></code> from
<code class="docutils literal notranslate"><span class="pre">OPT</span></code>. This option emitted annoying warnings when building extension
modules written in C++.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33614">bpo-33614</a>: Ensures module definition files for the stable ABI on Windows
are correctly regenerated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33648">bpo-33648</a>: The –with-c-locale-warning configuration flag has been
removed. It has had no effect for about a year.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33522">bpo-33522</a>: Enable CI builds on Visual Studio Team Services at
<a class="reference external" href="https://python.visualstudio.com/cpython">https://python.visualstudio.com/cpython</a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33512">bpo-33512</a>: configure’s check for “long double” has been simplified</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33483">bpo-33483</a>: C compiler is now correctly detected from the standard
environment variables. –without-gcc and –with-icc options have been
removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33394">bpo-33394</a>: Enable the verbose build for extension modules, when GNU make
is passed macros on the command line.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33393">bpo-33393</a>: Update config.guess and config.sub files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33377">bpo-33377</a>: Add new triplets for mips r6 and riscv variants (used in
extension suffixes).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32232">bpo-32232</a>: By default, modules configured in <code class="docutils literal notranslate"><span class="pre">Modules/Setup</span></code> are no
longer built with <code class="docutils literal notranslate"><span class="pre">-DPy_BUILD_CORE</span></code>. Instead, modules that specifically
need that preprocessor definition include it in their individual entries.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33182">bpo-33182</a>: The embedding tests can once again be built with clang 6.0</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33163">bpo-33163</a>: Upgrade pip to 9.0.3 and setuptools to v39.0.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33012">bpo-33012</a>: gcc 8 has added a new warning heuristic to detect invalid
function casts and a stock python build seems to hit that warning quite
often. The most common is the cast of a METH_NOARGS function (that uses
just one argument) to a PyCFunction. Fix this by adding a dummy argument
to all functions that implement METH_NOARGS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32898">bpo-32898</a>: Fix the python debug build when using COUNT_ALLOCS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29442">bpo-29442</a>: Replace optparse with argparse in setup.py</p></li>
</ul>
</section>
<section id="id520">
<h3>Windows<a class="headerlink" href="#id520" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35890">bpo-35890</a>: Fix API calling consistency of GetVersionEx and wcstok.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32560">bpo-32560</a>: The <code class="docutils literal notranslate"><span class="pre">py</span></code> launcher now forwards its <code class="docutils literal notranslate"><span class="pre">STARTUPINFO</span></code> structure
to child processes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35854">bpo-35854</a>: Fix EnvBuilder and –symlinks in venv on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35811">bpo-35811</a>: Avoid propagating venv settings when launching via py.exe</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35797">bpo-35797</a>: Fix default executable used by the multiprocessing module</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35758">bpo-35758</a>: Allow building on ARM with MSVC.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29734">bpo-29734</a>: Fix handle leaks in os.stat on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35596">bpo-35596</a>: Use unchecked PYCs for the embeddable distro to avoid zipimport
restrictions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35596">bpo-35596</a>: Fix vcruntime140.dll being added to embeddable distro multiple
times.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35402">bpo-35402</a>: Update Windows build to use Tcl and Tk 8.6.9</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35401">bpo-35401</a>: Updates Windows build to OpenSSL 1.1.0j</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34977">bpo-34977</a>: venv on Windows will now use a python.exe redirector rather
than copying the actual binaries from the base environment.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34977">bpo-34977</a>: Adds support for building a Windows App Store package</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35067">bpo-35067</a>: Remove _distutils_findvs module and use vswhere.exe instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32557">bpo-32557</a>: Allow shutil.disk_usage to take a file path on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34770">bpo-34770</a>: Fix a possible null pointer dereference in pyshellext.cpp.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34603">bpo-34603</a>: Fix returning structs from functions produced by MSVC</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34581">bpo-34581</a>: Guard MSVC-specific code in socketmodule.c with <code class="docutils literal notranslate"><span class="pre">#ifdef</span>
<span class="pre">_MSC_VER</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34532">bpo-34532</a>: Fixes exit code of list version arguments for py.exe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34062">bpo-34062</a>: Fixed the ‘–list’ and ‘–list-paths’ arguments for the py.exe
launcher</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34225">bpo-34225</a>: Ensure INCLUDE and LIB directories do not end with a backslash.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34011">bpo-34011</a>: A suite of code has been changed which copied across DLLs and
init.tcl from the running Python location into a venv being created. These
copies are needed only when running from a Python source build, and the
copying code is now only run when that is the case, rather than whenever a
venv is created.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34006">bpo-34006</a>: Revert line length limit for Windows help docs. The line-length
limit is not needed because the pages appear in a separate app rather than
on a browser tab. It can also interact badly with the DPI setting.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31546">bpo-31546</a>: Restore running PyOS_InputHook while waiting for user input at
the prompt. The restores integration of interactive GUI windows (such as
Matplotlib figures) with the prompt on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30237">bpo-30237</a>: Output error when ReadConsole is canceled by
CancelSynchronousIo instead of crashing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33895">bpo-33895</a>: GIL is released while calling functions that acquire Windows
loader lock.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33720">bpo-33720</a>: Reduces maximum marshal recursion depth on release builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29097">bpo-29097</a>: Fix bug where <code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.fromtimestamp()</span></code> erroneously throws
an <a class="reference internal" href="../library/exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> on Windows for values between 0 and 86400. Patch by
Ammar Askar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33316">bpo-33316</a>: PyThread_release_lock always fails</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33184">bpo-33184</a>: Update Windows installer to use OpenSSL 1.1.0h.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32890">bpo-32890</a>: Fix usage of GetLastError() instead of errno in os.execve() and
os.truncate().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33016">bpo-33016</a>: Fix potential use of uninitialized memory in
nt._getfinalpathname</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32903">bpo-32903</a>: Fix a memory leak in os.chdir() on Windows if the current
directory is set to a UNC path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32901">bpo-32901</a>: Update Tcl and Tk versions to 8.6.8</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31966">bpo-31966</a>: Fixed WindowsConsoleIO.write() for writing empty data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32409">bpo-32409</a>: Ensures activate.bat can handle Unicode contents.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32457">bpo-32457</a>: Improves handling of denormalized executable path when
launching Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32370">bpo-32370</a>: Use the correct encoding for ipconfig output in the uuid
module. Patch by Segev Finer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29248">bpo-29248</a>: Fix <a class="reference internal" href="../library/os.html#os.readlink" title="os.readlink"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.readlink()</span></code></a> on Windows, which was mistakenly
treating the <code class="docutils literal notranslate"><span class="pre">PrintNameOffset</span></code> field of the reparse data buffer as a
number of characters instead of bytes. Patch by Craig Holmquist and SSE4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1104">bpo-1104</a>: Correctly handle string length in
<code class="docutils literal notranslate"><span class="pre">msilib.SummaryInfo.GetProperty()</span></code> to prevent it from truncating the
last character.</p></li>
</ul>
</section>
<section id="id521">
<h3>macOS<a class="headerlink" href="#id521" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35401">bpo-35401</a>: Update macOS installer to use OpenSSL 1.1.0j.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35025">bpo-35025</a>: Properly guard the use of the <code class="docutils literal notranslate"><span class="pre">CLOCK_GETTIME</span></code> et al. macros
in <code class="docutils literal notranslate"><span class="pre">timemodule</span></code> on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24658">bpo-24658</a>: On macOS, fix reading from and writing into a file with a size
larger than 2 GiB.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34405">bpo-34405</a>: Update to OpenSSL 1.1.0i for macOS installer builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33635">bpo-33635</a>: In macOS stat on some file descriptors (/dev/fd/3 f.e) will
result in bad file descriptor OSError. Guard against this exception was
added in is_dir, is_file and similar methods. DirEntry.is_dir can also
throw this exception so _RecursiveWildcardSelector._iterate_directories
was also extended with the same error ignoring pattern.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13631">bpo-13631</a>: The .editrc file in user’s home directory is now processed
correctly during the readline initialization through editline emulation on
macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33184">bpo-33184</a>: Update macOS installer build to use OpenSSL 1.1.0h.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32726">bpo-32726</a>: Build and link with private copy of Tcl/Tk 8.6 for the macOS
10.6+ installer. The 10.9+ installer variant already does this. This
means that the Python 3.7 provided by the python.org macOS installers no
longer need or use any external versions of Tcl/Tk, either system-provided
or user-installed, such as ActiveTcl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32901">bpo-32901</a>: Update macOS 10.9+ installer to Tcl/Tk 8.6.8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31903">bpo-31903</a>: In <code class="xref py py-mod docutils literal notranslate"><span class="pre">_scproxy</span></code>, drop the GIL when calling into
<code class="docutils literal notranslate"><span class="pre">SystemConfiguration</span></code> to avoid deadlocks.</p></li>
</ul>
</section>
<section id="id522">
<h3>IDLE<a class="headerlink" href="#id522" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35770">bpo-35770</a>: IDLE macosx deletes Options => Configure IDLE. It previously
deleted Window => Zoom Height by mistake. (Zoom Height is now on the
Options menu). On Mac, the settings dialog is accessed via Preferences on
the IDLE menu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35769">bpo-35769</a>: Change IDLE’s new file name from ‘Untitled’ to ‘untitled’</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35660">bpo-35660</a>: Fix imports in idlelib.window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35641">bpo-35641</a>: Proper format <code class="docutils literal notranslate"><span class="pre">calltip</span></code> when the function has no docstring.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33987">bpo-33987</a>: Use ttk Frame for ttk widgets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34055">bpo-34055</a>: Fix erroneous ‘smart’ indents and newlines in IDLE Shell.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35591">bpo-35591</a>: Find Selection now works when selection not found.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35196">bpo-35196</a>: Speed up squeezer line counting.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35598">bpo-35598</a>: Update config_key: use PEP 8 names and ttk widgets, make some
objects global, and add tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28097">bpo-28097</a>: Add Previous/Next History entries to Shell menu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35208">bpo-35208</a>: Squeezer now properly counts wrapped lines before newlines.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35555">bpo-35555</a>: Gray out Code Context menu entry when it’s not applicable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35521">bpo-35521</a>: Document the IDLE editor code context feature. Add some
internal references within the IDLE doc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22703">bpo-22703</a>: The Code Context menu label now toggles between Show/Hide Code
Context. The Zoom Height menu now toggles between Zoom/Restore Height.
Zoom Height has moved from the Window menu to the Options menu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35213">bpo-35213</a>: Where appropriate, use ‘macOS’ in idlelib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34864">bpo-34864</a>: On macOS, warn if the system preference “Prefer tabs when
opening documents” is set to “Always”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34864">bpo-34864</a>: Document two IDLE on MacOS issues. The System Preferences Dock
“prefer tabs always” setting disables some IDLE features. Menus are a bit
different than as described for Windows and Linux.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35202">bpo-35202</a>: Remove unused imports from lib/idlelib</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33000">bpo-33000</a>: Document that IDLE’s shell has no line limit. A program that
runs indefinitely can overfill memory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23220">bpo-23220</a>: Explain how IDLE’s Shell displays output.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35099">bpo-35099</a>: Improve the doc about IDLE running user code. The section is
renamed from “IDLE – console differences” is renamed “Running user code”.
It mostly covers the implications of using custom <code class="samp docutils literal notranslate"><span class="pre">sys.std</span><em><span class="pre">xxx</span></em></code>
objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35097">bpo-35097</a>: Add IDLE doc subsection explaining editor windows. Topics
include opening, title and status bar, .py* extension, and running.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35093">bpo-35093</a>: Document the IDLE document viewer in the IDLE doc. Add a
paragraph in “Help and preferences”, “Help sources” subsection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35088">bpo-35088</a>: Update idlelib.help.copy_string docstring. We now use git and
backporting instead of hg and forward merging.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35087">bpo-35087</a>: Update idlelib help files for the current doc build. The main
change is the elimination of chapter-section numbers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34548">bpo-34548</a>: Use configured color theme for read-only text views.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1529353">bpo-1529353</a>: Enable “squeezing” of long outputs in the shell, to avoid
performance degradation and to clean up the history without losing it.
Squeezed outputs may be copied, viewed in a separate window, and
“unsqueezed”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34047">bpo-34047</a>: Fixed mousewheel scrolling direction on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34275">bpo-34275</a>: Make IDLE calltips always visible on Mac. Some MacOS-tk
combinations need .update_idletasks(). Patch by Kevin Walzer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34120">bpo-34120</a>: Fix unresponsiveness after closing certain windows and dialogs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33975">bpo-33975</a>: Avoid small type when running htests. Since part of the purpose
of human-viewed tests is to determine that widgets look right, it is
important that they look the same for testing as when running IDLE.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33905">bpo-33905</a>: Add test for idlelib.stackview.StackBrowser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33924">bpo-33924</a>: Change mainmenu.menudefs key ‘windows’ to ‘window’. Every other
menudef key is lowercase version of main menu entry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33906">bpo-33906</a>: Rename idlelib.windows as window Match Window on the main menu
and remove last plural module name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33917">bpo-33917</a>: Fix and document idlelib/idle_test/template.py. The revised
file compiles, runs, and tests OK. idle_test/README.txt explains how to
use it to create new IDLE test files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33904">bpo-33904</a>: IDLE: In rstrip, rename class RstripExtension as Rstrip</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33907">bpo-33907</a>: For consistency and clarity, rename an IDLE module and classes.
Module calltips and its class CallTips are now calltip and Calltip. In
module calltip_w, class CallTip is now CalltipWindow.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33856">bpo-33856</a>: Add “help” in the welcome message of IDLE</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33839">bpo-33839</a>: IDLE: refactor ToolTip and CallTip and add documentation and
tests</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33855">bpo-33855</a>: Minimally test all IDLE modules. Add missing files, import
module, instantiate classes, and check coverage. Check existing files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33656">bpo-33656</a>: On Windows, add API call saying that tk scales for DPI. On
Windows 8.1+ or 10, with DPI compatibility properties of the Python binary
unchanged, and a monitor resolution greater than 96 DPI, this should make
text and lines sharper. It should otherwise have no effect.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33768">bpo-33768</a>: Clicking on a context line moves that line to the top of the
editor window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33763">bpo-33763</a>: IDLE: Use read-only text widget for code context instead of
label widget.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33664">bpo-33664</a>: Scroll IDLE editor text by lines. Previously, the mouse wheel
and scrollbar slider moved text by a fixed number of pixels, resulting in
partial lines at the top of the editor box. The change also applies to
the shell and grep output windows, but not to read-only text views.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33679">bpo-33679</a>: Enable theme-specific color configuration for Code Context. Use
the Highlights tab to see the setting for built-in themes or add settings
to custom themes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33642">bpo-33642</a>: Display up to maxlines non-blank lines for Code Context. If
there is no current context, show a single blank line.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33628">bpo-33628</a>: IDLE: Cleanup codecontext.py and its test.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33564">bpo-33564</a>: IDLE’s code context now recognizes async as a block opener.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21474">bpo-21474</a>: Update word/identifier definition from ascii to unicode. In
text and entry boxes, this affects selection by double-click, movement
left/right by control-left/right, and deletion left/right by
control-BACKSPACE/DEL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33204">bpo-33204</a>: IDLE: consistently color invalid string prefixes. A ‘u’ string
prefix cannot be paired with either ‘r’ or ‘f’. Consistently color as much
of the prefix, starting at the right, as is valid. Revise and extend
colorizer test.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32984">bpo-32984</a>: Set <code class="docutils literal notranslate"><span class="pre">__file__</span></code> while running a startup file. Like Python,
IDLE optionally runs one startup file in the Shell window before
presenting the first interactive input prompt. For IDLE, <code class="docutils literal notranslate"><span class="pre">-s</span></code> runs a
file named in environmental variable <span class="target" id="index-368"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> or
<span class="target" id="index-369"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code></a>; <code class="docutils literal notranslate"><span class="pre">-r</span> <span class="pre">file</span></code> runs <code class="docutils literal notranslate"><span class="pre">file</span></code>. Python sets
<code class="docutils literal notranslate"><span class="pre">__file__</span></code> to the startup file name before running the file and unsets
it before the first prompt. IDLE now does the same when run normally,
without the <code class="docutils literal notranslate"><span class="pre">-n</span></code> option.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32940">bpo-32940</a>: Simplify and rename StringTranslatePseudoMapping in pyparse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32916">bpo-32916</a>: Change <code class="docutils literal notranslate"><span class="pre">str</span></code> to <code class="docutils literal notranslate"><span class="pre">code</span></code> in pyparse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32905">bpo-32905</a>: Remove unused code in pyparse module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32874">bpo-32874</a>: Add tests for pyparse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32837">bpo-32837</a>: Using the system and place-dependent default encoding for
open() is a bad idea for IDLE’s system and location-independent files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32826">bpo-32826</a>: Add “encoding=utf-8” to open() in IDLE’s test_help_about. GUI
test test_file_buttons() only looks at initial ascii-only lines, but
failed on systems where open() defaults to ‘ascii’ because readline()
internally reads and decodes far enough ahead to encounter a non-ascii
character in CREDITS.txt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32831">bpo-32831</a>: Add docstrings and tests for codecontext.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32765">bpo-32765</a>: Update configdialog General tab docstring to add new widgets to
the widget list.</p></li>
</ul>
</section>
<section id="id523">
<h3>Tools/Demos<a class="headerlink" href="#id523" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35884">bpo-35884</a>: Add a benchmark script for timing various ways to access
variables: <code class="docutils literal notranslate"><span class="pre">Tools/scripts/var_access_benchmark.py</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34989">bpo-34989</a>: python-gdb.py now handles errors on computing the line number
of a Python frame.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20260">bpo-20260</a>: Argument Clinic now has non-bitwise unsigned int converters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32962">bpo-32962</a>: python-gdb now catches <code class="docutils literal notranslate"><span class="pre">UnicodeDecodeError</span></code> exceptions when
calling <code class="docutils literal notranslate"><span class="pre">string()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32962">bpo-32962</a>: python-gdb now catches ValueError on read_var(): when Python
has no debug symbols for example.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33189">bpo-33189</a>: <strong class="program">pygettext.py</strong> now recognizes only literal strings as
docstrings and translatable strings, and rejects bytes literals and
f-string expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31920">bpo-31920</a>: Fixed handling directories as arguments in the <code class="docutils literal notranslate"><span class="pre">pygettext</span></code>
script. Based on patch by Oleg Krasnikov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29673">bpo-29673</a>: Fix pystackv and pystack gdbinit macros.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25427">bpo-25427</a>: Remove the pyvenv script in favor of <code class="docutils literal notranslate"><span class="pre">python3</span> <span class="pre">-m</span> <span class="pre">venv</span></code> in
order to lower confusion as to what Python interpreter a virtual
environment will be created for.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32885">bpo-32885</a>: Add an <code class="docutils literal notranslate"><span class="pre">-n</span></code> flag for <code class="docutils literal notranslate"><span class="pre">Tools/scripts/pathfix.py</span></code> to disable
automatic backup creation (files with <code class="docutils literal notranslate"><span class="pre">~</span></code> suffix).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32222">bpo-32222</a>: Fix pygettext not extracting docstrings for functions with type
annotated arguments. Patch by Toby Harradine.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31583">bpo-31583</a>: Fix 2to3 for using with –add-suffix option but without
–output-dir option for relative path to files in current directory.</p></li>
</ul>
</section>
<section id="id524">
<h3>C API<a class="headerlink" href="#id524" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35713">bpo-35713</a>: The <code class="xref c c-func docutils literal notranslate"><span class="pre">PyByteArray_Init()</span></code> and <code class="xref c c-func docutils literal notranslate"><span class="pre">PyByteArray_Fini()</span></code>
functions have been removed. They did nothing since Python 2.7.4 and
Python 3.2.0, were excluded from the limited API (stable ABI), and were
not documented.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33817">bpo-33817</a>: Fixed <a class="reference internal" href="../c-api/bytes.html#c._PyBytes_Resize" title="_PyBytes_Resize"><code class="xref c c-func docutils literal notranslate"><span class="pre">_PyBytes_Resize()</span></code></a> for empty bytes objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35322">bpo-35322</a>: Fix memory leak in <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_EncodeLocale" title="PyUnicode_EncodeLocale"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_EncodeLocale()</span></code></a> and
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_EncodeFSDefault" title="PyUnicode_EncodeFSDefault"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_EncodeFSDefault()</span></code></a> on error handling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35059">bpo-35059</a>: The following C macros have been converted to static inline
functions: <a class="reference internal" href="../c-api/refcounting.html#c.Py_INCREF" title="Py_INCREF"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_INCREF()</span></code></a>, <a class="reference internal" href="../c-api/refcounting.html#c.Py_DECREF" title="Py_DECREF"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_DECREF()</span></code></a>, <a class="reference internal" href="../c-api/refcounting.html#c.Py_XINCREF" title="Py_XINCREF"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_XINCREF()</span></code></a>,
<a class="reference internal" href="../c-api/refcounting.html#c.Py_XDECREF" title="Py_XDECREF"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_XDECREF()</span></code></a>, <code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_INIT()</span></code>,
<code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_INIT_VAR()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35296">bpo-35296</a>: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> now also installs the internal API:
<code class="docutils literal notranslate"><span class="pre">Include/internal/*.h</span></code> header files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35081">bpo-35081</a>: Internal APIs surrounded by <code class="docutils literal notranslate"><span class="pre">#ifdef</span> <span class="pre">Py_BUILD_CORE</span></code> have been
moved from <code class="docutils literal notranslate"><span class="pre">Include/*.h</span></code> headers to new header files
<code class="docutils literal notranslate"><span class="pre">Include/internal/pycore_*.h</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35259">bpo-35259</a>: Conditionally declare <a class="reference internal" href="../c-api/init.html#c.Py_FinalizeEx" title="Py_FinalizeEx"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_FinalizeEx()</span></code></a> (new in 3.6)
based on Py_LIMITED_API. Patch by Arthur Neufeld.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35081">bpo-35081</a>: The <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyObject_GC_TRACK()</span></code> and
<code class="xref c c-func docutils literal notranslate"><span class="pre">_PyObject_GC_UNTRACK()</span></code> macros have been removed from the public C
API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=35134">bpo-35134</a>: Creation of a new <code class="docutils literal notranslate"><span class="pre">Include/cpython/</span></code> subdirectory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34725">bpo-34725</a>: Adds _Py_SetProgramFullPath so embedders may override
sys.executable</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34910">bpo-34910</a>: Ensure that <a class="reference internal" href="../c-api/object.html#c.PyObject_Print" title="PyObject_Print"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_Print()</span></code></a> always returns <code class="docutils literal notranslate"><span class="pre">-1</span></code> on
error. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34523">bpo-34523</a>: Py_DecodeLocale() and Py_EncodeLocale() now use the UTF-8
encoding on Windows if Py_LegacyWindowsFSEncodingFlag is zero.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34193">bpo-34193</a>: Fix pluralization in TypeError messages in getargs.c and
typeobject.c: ‘1 argument’ instead of ‘1 arguments’ and ‘1 element’
instead of ‘1 elements’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34127">bpo-34127</a>: Return grammatically correct error message based on argument
count. Patch by Karthikeyan Singaravelan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23927">bpo-23927</a>: Fixed <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> in
<a class="reference internal" href="../c-api/arg.html#c.PyArg_ParseTupleAndKeywords" title="PyArg_ParseTupleAndKeywords"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyArg_ParseTupleAndKeywords()</span></code></a> when the <code class="docutils literal notranslate"><span class="pre">w*</span></code> format unit is used
for optional parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32455">bpo-32455</a>: Added <code class="xref c c-func docutils literal notranslate"><span class="pre">PyCompile_OpcodeStackEffectWithJump()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=34008">bpo-34008</a>: Py_Main() can again be called after Py_Initialize(), as in
Python 3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32500">bpo-32500</a>: Fixed error messages for <a class="reference internal" href="../c-api/sequence.html#c.PySequence_Size" title="PySequence_Size"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySequence_Size()</span></code></a>,
<a class="reference internal" href="../c-api/sequence.html#c.PySequence_GetItem" title="PySequence_GetItem"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySequence_GetItem()</span></code></a>, <a class="reference internal" href="../c-api/sequence.html#c.PySequence_SetItem" title="PySequence_SetItem"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySequence_SetItem()</span></code></a> and
<a class="reference internal" href="../c-api/sequence.html#c.PySequence_DelItem" title="PySequence_DelItem"><code class="xref c c-func docutils literal notranslate"><span class="pre">PySequence_DelItem()</span></code></a> called with a mapping and
<a class="reference internal" href="../c-api/mapping.html#c.PyMapping_Size" title="PyMapping_Size"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMapping_Size()</span></code></a> called with a sequence.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33818">bpo-33818</a>: <a class="reference internal" href="../c-api/exceptions.html#c.PyExceptionClass_Name" title="PyExceptionClass_Name"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyExceptionClass_Name()</span></code></a> will now return <code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">char</span>
<span class="pre">*</span></code> instead of <code class="docutils literal notranslate"><span class="pre">char</span> <span class="pre">*</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33042">bpo-33042</a>: Embedding applications may once again call
PySys_ResetWarnOptions, PySys_AddWarnOption, and PySys_AddXOption prior to
calling Py_Initialize.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32374">bpo-32374</a>: Document that m_traverse for multi-phase initialized modules
can be called with m_state=NULL, and add a sanity check</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30863">bpo-30863</a>: <a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_AsWideChar" title="PyUnicode_AsWideChar"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsWideChar()</span></code></a> and
<a class="reference internal" href="../c-api/unicode.html#c.PyUnicode_AsWideCharString" title="PyUnicode_AsWideCharString"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyUnicode_AsWideCharString()</span></code></a> no longer cache the <code class="docutils literal notranslate"><span class="pre">wchar_t*</span></code>
representation of string objects.</p></li>
</ul>
</section>
</section>
<section id="python-3-7-0-final">
<h2>Python 3.7.0 final<a class="headerlink" href="#python-3-7-0-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-06-27</em></p>
<section id="id525">
<h3>Library<a class="headerlink" href="#id525" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33851">bpo-33851</a>: Fix <a class="reference internal" href="../library/ast.html#ast.get_docstring" title="ast.get_docstring"><code class="xref py py-func docutils literal notranslate"><span class="pre">ast.get_docstring()</span></code></a> for a node that lacks a
docstring.</p></li>
</ul>
</section>
<section id="id526">
<h3>C API<a class="headerlink" href="#id526" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33932">bpo-33932</a>: Calling Py_Initialize() twice does nothing, instead of failing
with a fatal error: restore the Python 3.6 behaviour.</p></li>
</ul>
</section>
</section>
<section id="python-3-7-0-release-candidate-1">
<h2>Python 3.7.0 release candidate 1<a class="headerlink" href="#python-3-7-0-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-06-12</em></p>
<section id="id527">
<h3>Core and Builtins<a class="headerlink" href="#id527" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33803">bpo-33803</a>: Fix a crash in hamt.c caused by enabling GC tracking for an
object that hadn’t all of its fields set to NULL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33706">bpo-33706</a>: Fix a crash in Python initialization when parsing the command
line options. Thanks Christoph Gohlke for the bug report and the fix!</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30654">bpo-30654</a>: Fixed reset of the SIGINT handler to SIG_DFL on interpreter
shutdown even when there was a custom handler set previously. Patch by
Philipp Kerling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31849">bpo-31849</a>: Fix signed/unsigned comparison warning in pyhash.c.</p></li>
</ul>
</section>
<section id="id528">
<h3>Library<a class="headerlink" href="#id528" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30167">bpo-30167</a>: Prevent site.main() exception if PYTHONSTARTUP is set. Patch by
Steve Weber.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33812">bpo-33812</a>: Datetime instance d with non-None tzinfo, but with
d.tzinfo.utcoffset(d) returning None is now treated as naive by the
astimezone() method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30805">bpo-30805</a>: Avoid race condition with debug logging</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33694">bpo-33694</a>: asyncio: Fix a race condition causing data loss on
pause_reading()/resume_reading() when using the ProactorEventLoop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32493">bpo-32493</a>: Correct test for <code class="docutils literal notranslate"><span class="pre">uuid_enc_be</span></code> availability in
<code class="docutils literal notranslate"><span class="pre">configure.ac</span></code>. Patch by Michael Felt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33792">bpo-33792</a>: Add asyncio.WindowsSelectorEventLoopPolicy and
asyncio.WindowsProactorEventLoopPolicy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33778">bpo-33778</a>: Update <code class="docutils literal notranslate"><span class="pre">unicodedata</span></code>’s database to Unicode version 11.0.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33770">bpo-33770</a>: improve base64 exception message for encoded inputs of invalid
length</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33769">bpo-33769</a>: asyncio/start_tls: Fix error message; cancel callbacks in case
of an unhandled error; mark SSLTransport as closed if it is aborted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33767">bpo-33767</a>: The concatenation (<code class="docutils literal notranslate"><span class="pre">+</span></code>) and repetition (<code class="docutils literal notranslate"><span class="pre">*</span></code>) sequence
operations now raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> when
performed on <a class="reference internal" href="../library/mmap.html#mmap.mmap" title="mmap.mmap"><code class="xref py py-class docutils literal notranslate"><span class="pre">mmap.mmap</span></code></a> objects. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33734">bpo-33734</a>: asyncio/ssl: Fix AttributeError, increase default handshake
timeout</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11874">bpo-11874</a>: Use a better regex when breaking usage into wrappable parts.
Avoids bogus assertion errors from custom metavar strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33582">bpo-33582</a>: Emit a deprecation warning for inspect.formatargspec</p></li>
</ul>
</section>
<section id="id529">
<h3>Documentation<a class="headerlink" href="#id529" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33409">bpo-33409</a>: Clarified the relationship between <span class="target" id="index-370"></span><a class="pep reference external" href="https://peps.python.org/pep-0538/"><strong>PEP 538</strong></a>’s
PYTHONCOERCECLOCALE and PEP 540’s PYTHONUTF8 mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33736">bpo-33736</a>: Improve the documentation of <a class="reference internal" href="../library/asyncio-stream.html#asyncio.open_connection" title="asyncio.open_connection"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.open_connection()</span></code></a>,
<a class="reference internal" href="../library/asyncio-stream.html#asyncio.start_server" title="asyncio.start_server"><code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio.start_server()</span></code></a> and their UNIX socket counterparts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31432">bpo-31432</a>: Clarify meaning of CERT_NONE, CERT_OPTIONAL, and CERT_REQUIRED
flags for ssl.SSLContext.verify_mode.</p></li>
</ul>
</section>
<section id="id530">
<h3>Build<a class="headerlink" href="#id530" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5755">bpo-5755</a>: Move <code class="docutils literal notranslate"><span class="pre">-Wstrict-prototypes</span></code> option to <code class="docutils literal notranslate"><span class="pre">CFLAGS_NODIST</span></code> from
<code class="docutils literal notranslate"><span class="pre">OPT</span></code>. This option emitted annoying warnings when building extension
modules written in C++.</p></li>
</ul>
</section>
<section id="id531">
<h3>Windows<a class="headerlink" href="#id531" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33720">bpo-33720</a>: Reduces maximum marshal recursion depth on release builds.</p></li>
</ul>
</section>
<section id="id532">
<h3>IDLE<a class="headerlink" href="#id532" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33656">bpo-33656</a>: On Windows, add API call saying that tk scales for DPI. On
Windows 8.1+ or 10, with DPI compatibility properties of the Python binary
unchanged, and a monitor resolution greater than 96 DPI, this should make
text and lines sharper. It should otherwise have no effect.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33768">bpo-33768</a>: Clicking on a context line moves that line to the top of the
editor window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33763">bpo-33763</a>: IDLE: Use read-only text widget for code context instead of
label widget.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33664">bpo-33664</a>: Scroll IDLE editor text by lines. Previously, the mouse wheel
and scrollbar slider moved text by a fixed number of pixels, resulting in
partial lines at the top of the editor box. The change also applies to
the shell and grep output windows, but not to read-only text views.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33679">bpo-33679</a>: Enable theme-specific color configuration for Code Context. Use
the Highlights tab to see the setting for built-in themes or add settings
to custom themes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33642">bpo-33642</a>: Display up to maxlines non-blank lines for Code Context. If
there is no current context, show a single blank line.</p></li>
</ul>
</section>
</section>
<section id="python-3-7-0-beta-5">
<h2>Python 3.7.0 beta 5<a class="headerlink" href="#python-3-7-0-beta-5" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-05-30</em></p>
<section id="id533">
<h3>Core and Builtins<a class="headerlink" href="#id533" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33622">bpo-33622</a>: Fixed a leak when the garbage collector fails to add an object
with the <code class="docutils literal notranslate"><span class="pre">__del__</span></code> method or referenced by it into the
<a class="reference internal" href="../library/gc.html#gc.garbage" title="gc.garbage"><code class="xref py py-data docutils literal notranslate"><span class="pre">gc.garbage</span></code></a> list. <a class="reference internal" href="../c-api/gcsupport.html#c.PyGC_Collect" title="PyGC_Collect"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGC_Collect()</span></code></a> can now be called when an
exception is set and preserves it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33509">bpo-33509</a>: Fix module_globals parameter of warnings.warn_explicit(): don’t
crash if module_globals is not a dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20104">bpo-20104</a>: The new <code class="docutils literal notranslate"><span class="pre">os.posix_spawn</span></code> added in 3.7.0b1 was removed as we
are still working on what the API should look like. Expect this in 3.8
instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33475">bpo-33475</a>: Fixed miscellaneous bugs in converting annotations to strings
and optimized parentheses in the string representation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33391">bpo-33391</a>: Fix a leak in set_symmetric_difference().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28055">bpo-28055</a>: Fix unaligned accesses in siphash24(). Patch by Rolf Eike Beer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32911">bpo-32911</a>: Due to unexpected compatibility issues discovered during
downstream beta testing, reverted <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29463">bpo-29463</a>. <code class="docutils literal notranslate"><span class="pre">docstring</span></code> field is
removed from Module, ClassDef, FunctionDef, and AsyncFunctionDef ast nodes
which was added in 3.7a1. Docstring expression is restored as a first
statement in their body. Based on patch by Inada Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21983">bpo-21983</a>: Fix a crash in <code class="docutils literal notranslate"><span class="pre">ctypes.cast()</span></code> in case the type argument is a
ctypes structured data type. Patch by Eryk Sun and Oren Milman.</p></li>
</ul>
</section>
<section id="id534">
<h3>Library<a class="headerlink" href="#id534" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32751">bpo-32751</a>: When cancelling the task due to a timeout,
<a class="reference internal" href="../library/asyncio-task.html#asyncio.wait_for" title="asyncio.wait_for"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.wait_for()</span></code></a> will now wait until the cancellation is complete.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32684">bpo-32684</a>: Fix gather to propagate cancellation of itself even with
return_exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33654">bpo-33654</a>: Support protocol type switching in SSLTransport.set_protocol().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33674">bpo-33674</a>: Pause the transport as early as possible to further reduce the
risk of data_received() being called before connection_made().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33674">bpo-33674</a>: Fix a race condition in SSLProtocol.connection_made() of
asyncio.sslproto: start immediately the handshake instead of using
call_soon(). Previously, data_received() could be called before the
handshake started, causing the handshake to hang or fail.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31647">bpo-31647</a>: Fixed bug where calling write_eof() on a
_SelectorSocketTransport after it’s already closed raises AttributeError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32610">bpo-32610</a>: Make asyncio.all_tasks() return only pending tasks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32410">bpo-32410</a>: Avoid blocking on file IO in sendfile fallback code</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33469">bpo-33469</a>: Fix RuntimeError after closing loop that used run_in_executor</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33672">bpo-33672</a>: Fix Task.__repr__ crash with Cython’s bogus coroutines</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33654">bpo-33654</a>: Fix transport.set_protocol() to support switching between
asyncio.Protocol and asyncio.BufferedProtocol. Fix loop.start_tls() to
work with asyncio.BufferedProtocols.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33652">bpo-33652</a>: Pickles of type variables and subscripted generics are now
future-proof and compatible with older Python versions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32493">bpo-32493</a>: Fixed <a class="reference internal" href="../library/uuid.html#uuid.uuid1" title="uuid.uuid1"><code class="xref py py-func docutils literal notranslate"><span class="pre">uuid.uuid1()</span></code></a> on FreeBSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33618">bpo-33618</a>: Finalize and document preliminary and experimental TLS 1.3
support with OpenSSL 1.1.1</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33623">bpo-33623</a>: Fix possible SIGSGV when asyncio.Future is created in __del__</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30877">bpo-30877</a>: Fixed a bug in the Python implementation of the JSON decoder
that prevented the cache of parsed strings from clearing after finishing
the decoding. Based on patch by c-fos.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33570">bpo-33570</a>: Change TLS 1.3 cipher suite settings for compatibility with
OpenSSL 1.1.1-pre6 and newer. OpenSSL 1.1.1 will have TLS 1.3 ciphers
enabled by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Do not simplify arguments to <code class="docutils literal notranslate"><span class="pre">typing.Union</span></code>. Now
<code class="docutils literal notranslate"><span class="pre">Union[Manager,</span> <span class="pre">Employee]</span></code> is not simplified to <code class="docutils literal notranslate"><span class="pre">Employee</span></code> at runtime.
Such simplification previously caused several bugs and limited
possibilities for introspection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33540">bpo-33540</a>: Add a new <code class="docutils literal notranslate"><span class="pre">block_on_close</span></code> class attribute to
<code class="docutils literal notranslate"><span class="pre">ForkingMixIn</span></code> and <code class="docutils literal notranslate"><span class="pre">ThreadingMixIn</span></code> classes of <a class="reference internal" href="../library/socketserver.html#module-socketserver" title="socketserver: A framework for network servers."><code class="xref py py-mod docutils literal notranslate"><span class="pre">socketserver</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33548">bpo-33548</a>: tempfile._candidate_tempdir_list should consider common TEMP
locations</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33109">bpo-33109</a>: argparse subparsers are once again not required by default,
reverting the change in behavior introduced by <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26510">bpo-26510</a> in 3.7.0a2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33536">bpo-33536</a>: dataclasses.make_dataclass now checks for invalid field names
and duplicate fields. Also, added a check for invalid field
specifications.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33542">bpo-33542</a>: Prevent <code class="docutils literal notranslate"><span class="pre">uuid.get_node</span></code> from using a DUID instead of a MAC on
Windows. Patch by Zvi Effron</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26819">bpo-26819</a>: Fix race condition with <code class="docutils literal notranslate"><span class="pre">ReadTransport.resume_reading</span></code> in
Windows proactor event loop.</p></li>
<li><p>Fix failure in <code class="docutils literal notranslate"><span class="pre">typing.get_type_hints()</span></code> when ClassVar was provided as a
string forward reference.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33505">bpo-33505</a>: Optimize asyncio.ensure_future() by reordering if checks: 1.17x
faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33497">bpo-33497</a>: Add errors param to cgi.parse_multipart and make an encoding in
FieldStorage use the given errors (needed for Twisted). Patch by Amber
Brown.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33495">bpo-33495</a>: Change dataclasses.Fields repr to use the repr of each of its
members, instead of str. This makes it more clear what each field
actually represents. This is especially true for the ‘type’ member.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33453">bpo-33453</a>: Fix dataclasses to work if using literal string type
annotations or if using PEP 563 “Postponed Evaluation of Annotations”.
Only specific string prefixes are detected for both ClassVar (“ClassVar”
and “typing.ClassVar”) and InitVar (“InitVar” and “dataclasses.InitVar”).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Minor fixes in typing module: add annotations to
<code class="docutils literal notranslate"><span class="pre">NamedTuple.__new__</span></code>, pass <code class="docutils literal notranslate"><span class="pre">*args</span></code> and <code class="docutils literal notranslate"><span class="pre">**kwds</span></code> in
<code class="docutils literal notranslate"><span class="pre">Generic.__new__</span></code>. Original PRs by Paulius Šarka and Chad Dombrova.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20087">bpo-20087</a>: Updated alias mapping with glibc 2.27 supported locales.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33422">bpo-33422</a>: Fix trailing quotation marks getting deleted when looking up
byte/string literals on pydoc. Patch by Andrés Delfino.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28167">bpo-28167</a>: The function <code class="docutils literal notranslate"><span class="pre">platform.linux_distribution</span></code> and
<code class="docutils literal notranslate"><span class="pre">platform.dist</span></code> now trigger a <code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> and have been
marked for removal in Python 3.8</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33197">bpo-33197</a>: Update error message when constructing invalid
inspect.Parameters Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33263">bpo-33263</a>: Fix FD leak in <code class="docutils literal notranslate"><span class="pre">_SelectorSocketTransport</span></code> Patch by Vlad
Starostin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32861">bpo-32861</a>: The urllib.robotparser’s <code class="docutils literal notranslate"><span class="pre">__str__</span></code> representation now
includes wildcard entries and the “Crawl-delay” and “Request-rate” fields.
Patch by Michael Lazar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32257">bpo-32257</a>: The ssl module now contains OP_NO_RENEGOTIATION constant,
available with OpenSSL 1.1.0h or 1.1.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16865">bpo-16865</a>: Support arrays >=2GiB in <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a>. Patch by Segev Finer.</p></li>
</ul>
</section>
<section id="id535">
<h3>Documentation<a class="headerlink" href="#id535" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23859">bpo-23859</a>: Document that <code class="docutils literal notranslate"><span class="pre">asyncio.wait()</span></code> does not cancel its futures on
timeout.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32436">bpo-32436</a>: Document <span class="target" id="index-371"></span><a class="pep reference external" href="https://peps.python.org/pep-0567/"><strong>PEP 567</strong></a> changes to asyncio.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33604">bpo-33604</a>: Update HMAC md5 default to a DeprecationWarning, bump removal
to 3.8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33503">bpo-33503</a>: Fix broken pypi link</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33421">bpo-33421</a>: Add missing documentation for <code class="docutils literal notranslate"><span class="pre">typing.AsyncContextManager</span></code>.</p></li>
</ul>
</section>
<section id="id536">
<h3>Tests<a class="headerlink" href="#id536" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33655">bpo-33655</a>: Ignore test_posix_fallocate failures on BSD platforms that
might be due to running on ZFS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32604">bpo-32604</a>: Remove the _xxsubinterpreters module (meant for testing) and
associated helpers. This module was originally added recently in 3.7b1.</p></li>
</ul>
</section>
<section id="id537">
<h3>Build<a class="headerlink" href="#id537" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33614">bpo-33614</a>: Ensures module definition files for the stable ABI on Windows
are correctly regenerated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33522">bpo-33522</a>: Enable CI builds on Visual Studio Team Services at
<a class="reference external" href="https://python.visualstudio.com/cpython">https://python.visualstudio.com/cpython</a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33012">bpo-33012</a>: Add <code class="docutils literal notranslate"><span class="pre">-Wno-cast-function-type</span></code> for gcc 8 for silencing
warnings about function casts like casting to PyCFunction in method
definition lists.</p></li>
</ul>
</section>
<section id="id538">
<h3>macOS<a class="headerlink" href="#id538" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13631">bpo-13631</a>: The .editrc file in user’s home directory is now processed
correctly during the readline initialization through editline emulation on
macOS.</p></li>
</ul>
</section>
<section id="id539">
<h3>IDLE<a class="headerlink" href="#id539" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33628">bpo-33628</a>: IDLE: Cleanup codecontext.py and its test.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33564">bpo-33564</a>: IDLE’s code context now recognizes async as a block opener.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32831">bpo-32831</a>: Add docstrings and tests for codecontext.</p></li>
</ul>
</section>
</section>
<section id="python-3-7-0-beta-4">
<h2>Python 3.7.0 beta 4<a class="headerlink" href="#python-3-7-0-beta-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-05-02</em></p>
<section id="id540">
<h3>Core and Builtins<a class="headerlink" href="#id540" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33363">bpo-33363</a>: Raise a SyntaxError for <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">with</span></code> and <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">for</span></code>
statements outside of async functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33128">bpo-33128</a>: Fix a bug that causes PathFinder to appear twice on
sys.meta_path. Patch by Pablo Galindo Salgado.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33312">bpo-33312</a>: Fixed clang ubsan (undefined behavior sanitizer) warnings in
dictobject.c by adjusting how the internal struct _dictkeysobject shared
keys structure is declared.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33231">bpo-33231</a>: Fix potential memory leak in <code class="docutils literal notranslate"><span class="pre">normalizestring()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33205">bpo-33205</a>: Change dict growth function from
<code class="docutils literal notranslate"><span class="pre">round_up_to_power_2(used*2+hashtable_size/2)</span></code> to
<code class="docutils literal notranslate"><span class="pre">round_up_to_power_2(used*3)</span></code>. Previously, dict is shrunk only when
<code class="docutils literal notranslate"><span class="pre">used</span> <span class="pre">==</span> <span class="pre">0</span></code>. Now dict has more chance to be shrunk.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29922">bpo-29922</a>: Improved error messages in ‘async with’ when <code class="docutils literal notranslate"><span class="pre">__aenter__()</span></code>
or <code class="docutils literal notranslate"><span class="pre">__aexit__()</span></code> return non-awaitable object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33199">bpo-33199</a>: Fix <code class="docutils literal notranslate"><span class="pre">ma_version_tag</span></code> in dict implementation is uninitialized
when copying from key-sharing dict.</p></li>
</ul>
</section>
<section id="id541">
<h3>Library<a class="headerlink" href="#id541" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33281">bpo-33281</a>: Fix ctypes.util.find_library regression on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33383">bpo-33383</a>: Fixed crash in the get() method of the <a class="reference internal" href="../library/dbm.html#module-dbm.ndbm" title="dbm.ndbm: The New Database Manager (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.ndbm</span></code></a> database
object when it is called with a single argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33329">bpo-33329</a>: Fix multiprocessing regression on newer glibcs</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=991266">bpo-991266</a>: Fix quoting of the <code class="docutils literal notranslate"><span class="pre">Comment</span></code> attribute of
<a class="reference internal" href="../library/http.cookies.html#http.cookies.SimpleCookie" title="http.cookies.SimpleCookie"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.cookies.SimpleCookie</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33131">bpo-33131</a>: Upgrade bundled version of pip to 10.0.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33308">bpo-33308</a>: Fixed a crash in the <code class="xref py py-mod docutils literal notranslate"><span class="pre">parser</span></code> module when converting an ST
object to a tree of tuples or lists with <code class="docutils literal notranslate"><span class="pre">line_info=False</span></code> and
<code class="docutils literal notranslate"><span class="pre">col_info=True</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33266">bpo-33266</a>: lib2to3 now recognizes <code class="docutils literal notranslate"><span class="pre">rf'...'</span></code> strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11594">bpo-11594</a>: Ensure line-endings are respected when using lib2to3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33254">bpo-33254</a>: Have <a class="reference internal" href="../library/importlib.resources.html#importlib.resources.contents" title="importlib.resources.contents"><code class="xref py py-func docutils literal notranslate"><span class="pre">importlib.resources.contents()</span></code></a> and
<a class="reference internal" href="../library/importlib.html#importlib.abc.ResourceReader.contents" title="importlib.abc.ResourceReader.contents"><code class="xref py py-meth docutils literal notranslate"><span class="pre">importlib.abc.ResourceReader.contents()</span></code></a> return an <a class="reference internal" href="../glossary.html#term-iterable"><span class="xref std std-term">iterable</span></a>
instead of an <a class="reference internal" href="../glossary.html#term-iterator"><span class="xref std std-term">iterator</span></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33256">bpo-33256</a>: Fix display of <code class="docutils literal notranslate"><span class="pre"><module></span></code> call in the html produced by
<code class="docutils literal notranslate"><span class="pre">cgitb.html()</span></code>. Patch by Stéphane Blondon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33185">bpo-33185</a>: Fixed regression when running pydoc with the <a class="reference internal" href="../using/cmdline.html#cmdoption-m"><code class="xref std std-option docutils literal notranslate"><span class="pre">-m</span></code></a>
switch. (The regression was introduced in 3.7.0b3 by the resolution of
<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33053">bpo-33053</a>) This fix also changed pydoc to add <code class="docutils literal notranslate"><span class="pre">os.getcwd()</span></code> to
<a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a> when necessary, rather than adding <code class="docutils literal notranslate"><span class="pre">"."</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33169">bpo-33169</a>: Delete entries of <code class="docutils literal notranslate"><span class="pre">None</span></code> in <a class="reference internal" href="../library/sys.html#sys.path_importer_cache" title="sys.path_importer_cache"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path_importer_cache</span></code></a>
when <code class="xref py py-meth docutils literal notranslate"><span class="pre">importlib.machinery.invalidate_caches()</span></code> is called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33217">bpo-33217</a>: Deprecate looking up non-Enum objects in Enum classes and Enum
members (will raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> in 3.8+).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33203">bpo-33203</a>: <code class="docutils literal notranslate"><span class="pre">random.Random.choice()</span></code> now raises <code class="docutils literal notranslate"><span class="pre">IndexError</span></code> for empty
sequences consistently even when called from subclasses without a
<code class="docutils literal notranslate"><span class="pre">getrandbits()</span></code> implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33224">bpo-33224</a>: Update difflib.mdiff() for <span class="target" id="index-372"></span><a class="pep reference external" href="https://peps.python.org/pep-0479/"><strong>PEP 479</strong></a>. Convert an uncaught
StopIteration in a generator into a return-statement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33209">bpo-33209</a>: End framing at the end of C implementation of
<a class="reference internal" href="../library/pickle.html#pickle.Pickler.dump" title="pickle.Pickler.dump"><code class="xref py py-func docutils literal notranslate"><span class="pre">pickle.Pickler.dump()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20104">bpo-20104</a>: Improved error handling and fixed a reference leak in
<a class="reference internal" href="../library/os.html#os.posix_spawn" title="os.posix_spawn"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.posix_spawn()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33175">bpo-33175</a>: In dataclasses, Field.__set_name__ now looks up the
__set_name__ special method on the class, not the instance, of the default
value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33097">bpo-33097</a>: Raise RuntimeError when <code class="docutils literal notranslate"><span class="pre">executor.submit</span></code> is called during
interpreter shutdown.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31908">bpo-31908</a>: Fix output of cover files for <code class="docutils literal notranslate"><span class="pre">trace</span></code> module command-line
tool. Previously emitted cover files only when <code class="docutils literal notranslate"><span class="pre">--missing</span></code> option was
used. Patch by Michael Selik.</p></li>
</ul>
</section>
<section id="id542">
<h3>Documentation<a class="headerlink" href="#id542" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33378">bpo-33378</a>: Add Korean language switcher for <a class="reference external" href="https://docs.python.org/3/">https://docs.python.org/3/</a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33276">bpo-33276</a>: Clarify that the <code class="docutils literal notranslate"><span class="pre">__path__</span></code> attribute on modules cannot be
just any value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33201">bpo-33201</a>: Modernize documentation for writing C extension types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33195">bpo-33195</a>: Deprecate <code class="docutils literal notranslate"><span class="pre">Py_UNICODE</span></code> usage in <code class="docutils literal notranslate"><span class="pre">c-api/arg</span></code> document.
<code class="docutils literal notranslate"><span class="pre">Py_UNICODE</span></code> related APIs are deprecated since Python 3.3, but it is
missed in the document.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8243">bpo-8243</a>: Add a note about curses.addch and curses.addstr exception
behavior when writing outside a window, or pad.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32337">bpo-32337</a>: Update documentation related with <code class="docutils literal notranslate"><span class="pre">dict</span></code> order.</p></li>
</ul>
</section>
<section id="id543">
<h3>Tests<a class="headerlink" href="#id543" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33358">bpo-33358</a>: Fix <code class="docutils literal notranslate"><span class="pre">test_embed.test_pre_initialization_sys_options()</span></code> when
the interpreter is built with <code class="docutils literal notranslate"><span class="pre">--enable-shared</span></code>.</p></li>
</ul>
</section>
<section id="id544">
<h3>Build<a class="headerlink" href="#id544" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33394">bpo-33394</a>: Enable the verbose build for extension modules, when GNU make
is passed macros on the command line.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33393">bpo-33393</a>: Update config.guess and config.sub files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33377">bpo-33377</a>: Add new triplets for mips r6 and riscv variants (used in
extension suffixes).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32232">bpo-32232</a>: By default, modules configured in <code class="docutils literal notranslate"><span class="pre">Modules/Setup</span></code> are no
longer built with <code class="docutils literal notranslate"><span class="pre">-DPy_BUILD_CORE</span></code>. Instead, modules that specifically
need that preprocessor definition include it in their individual entries.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33182">bpo-33182</a>: The embedding tests can once again be built with clang 6.0</p></li>
</ul>
</section>
<section id="id545">
<h3>Windows<a class="headerlink" href="#id545" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33184">bpo-33184</a>: Update Windows installer to use OpenSSL 1.1.0h.</p></li>
</ul>
</section>
<section id="id546">
<h3>macOS<a class="headerlink" href="#id546" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33184">bpo-33184</a>: Update macOS installer build to use OpenSSL 1.1.0h.</p></li>
</ul>
</section>
<section id="id547">
<h3>IDLE<a class="headerlink" href="#id547" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21474">bpo-21474</a>: Update word/identifier definition from ascii to unicode. In
text and entry boxes, this affects selection by double-click, movement
left/right by control-left/right, and deletion left/right by
control-BACKSPACE/DEL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33204">bpo-33204</a>: IDLE: consistently color invalid string prefixes. A ‘u’ string
prefix cannot be paired with either ‘r’ or ‘f’. Consistently color as much
of the prefix, starting at the right, as is valid. Revise and extend
colorizer test.</p></li>
</ul>
</section>
<section id="id548">
<h3>Tools/Demos<a class="headerlink" href="#id548" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33189">bpo-33189</a>: <strong class="program">pygettext.py</strong> now recognizes only literal strings as
docstrings and translatable strings, and rejects bytes literals and
f-string expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31920">bpo-31920</a>: Fixed handling directories as arguments in the <code class="docutils literal notranslate"><span class="pre">pygettext</span></code>
script. Based on patch by Oleg Krasnikov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29673">bpo-29673</a>: Fix pystackv and pystack gdbinit macros.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31583">bpo-31583</a>: Fix 2to3 for using with –add-suffix option but without
–output-dir option for relative path to files in current directory.</p></li>
</ul>
</section>
</section>
<section id="python-3-7-0-beta-3">
<h2>Python 3.7.0 beta 3<a class="headerlink" href="#python-3-7-0-beta-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-03-29</em></p>
<section id="id549">
<h3>Security<a class="headerlink" href="#id549" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33136">bpo-33136</a>: Harden ssl module against LibreSSL <span class="target" id="index-373"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2018-8970"><strong>CVE 2018-8970</strong></a>.
X509_VERIFY_PARAM_set1_host() is called with an explicit namelen. A new
test ensures that NULL bytes are not allowed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33001">bpo-33001</a>: Minimal fix to prevent buffer overrun in os.symlink on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32981">bpo-32981</a>: Regexes in difflib and poplib were vulnerable to catastrophic
backtracking. These regexes formed potential DOS vectors (REDOS). They
have been refactored. This resolves <span class="target" id="index-374"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2018-1060"><strong>CVE 2018-1060</strong></a> and <span class="target" id="index-375"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2018-1061"><strong>CVE 2018-1061</strong></a>.
Patch by Jamie Davis.</p></li>
</ul>
</section>
<section id="id550">
<h3>Core and Builtins<a class="headerlink" href="#id550" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33053">bpo-33053</a>: When using the -m switch, sys.path[0] is now explicitly
expanded as the <em>starting</em> working directory, rather than being left as
the empty path (which allows imports from the current working directory at
the time of the import)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33018">bpo-33018</a>: Improve consistency of errors raised by <code class="docutils literal notranslate"><span class="pre">issubclass()</span></code> when
called with a non-class and an abstract base class as the first and second
arguments, respectively. Patch by Josh Bronson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33041">bpo-33041</a>: Fixed jumping when the function contains an <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">for</span></code> loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33026">bpo-33026</a>: Fixed jumping out of “with” block by setting f_lineno.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33005">bpo-33005</a>: Fix a crash on fork when using a custom memory allocator (ex:
using PYTHONMALLOC env var). _PyGILState_Reinit() and
_PyInterpreterState_Enable() now use the default RAW memory allocator to
allocate a new interpreters mutex on fork.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17288">bpo-17288</a>: Prevent jumps from ‘return’ and ‘exception’ trace events.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32836">bpo-32836</a>: Don’t use temporary variables in cases of list/dict/set
comprehensions</p></li>
</ul>
</section>
<section id="id551">
<h3>Library<a class="headerlink" href="#id551" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33141">bpo-33141</a>: Have Field objects pass through __set_name__ to their default
values, if they have their own __set_name__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33096">bpo-33096</a>: Allow ttk.Treeview.insert to insert iid that has a false
boolean value. Note iid=0 and iid=False would be same. Patch by Garvit
Khatri.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32873">bpo-32873</a>: Treat type variables and special typing forms as immutable by
copy and pickle. This fixes several minor issues and inconsistencies, and
improves backwards compatibility with Python 3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33134">bpo-33134</a>: When computing dataclass’s __hash__, use the lookup table to
contain the function which returns the __hash__ value. This is an
improvement over looking up a string, and then testing that string to see
what to do.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33127">bpo-33127</a>: The ssl module now compiles with LibreSSL 2.7.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32505">bpo-32505</a>: Raise TypeError if a member variable of a dataclass is of type
Field, but doesn’t have a type annotation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33078">bpo-33078</a>: Fix the failure on OSX caused by the tests relying on
sem_getvalue</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33116">bpo-33116</a>: Add ‘Field’ to dataclasses.__all__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32896">bpo-32896</a>: Fix an error where subclassing a dataclass with a field that
uses a default_factory would generate an incorrect class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33100">bpo-33100</a>: Dataclasses: If a field has a default value that’s a
MemberDescriptorType, then it’s from that field being in __slots__, not an
actual default value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32953">bpo-32953</a>: If a non-dataclass inherits from a frozen dataclass, allow
attributes to be added to the derived class. Only attributes from the
frozen dataclass cannot be assigned to. Require all dataclasses in a
hierarchy to be either all frozen or all non-frozen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33061">bpo-33061</a>: Add missing <code class="docutils literal notranslate"><span class="pre">NoReturn</span></code> to <code class="docutils literal notranslate"><span class="pre">__all__</span></code> in typing.py</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33078">bpo-33078</a>: Fix the size handling in multiprocessing.Queue when a pickling
error occurs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33064">bpo-33064</a>: lib2to3 now properly supports trailing commas after <code class="docutils literal notranslate"><span class="pre">*args</span></code>
and <code class="docutils literal notranslate"><span class="pre">**kwargs</span></code> in function signatures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33056">bpo-33056</a>: FIX properly close leaking fds in
concurrent.futures.ProcessPoolExecutor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33021">bpo-33021</a>: Release the GIL during fstat() calls, avoiding hang of all
threads when calling mmap.mmap(), os.urandom(), and random.seed(). Patch
by Nir Soffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31804">bpo-31804</a>: Avoid failing in multiprocessing.Process if the standard
streams are closed or None at exit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33037">bpo-33037</a>: Skip sending/receiving data after SSL transport closing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27683">bpo-27683</a>: Fix a regression in <a class="reference internal" href="../library/ipaddress.html#module-ipaddress" title="ipaddress: IPv4/IPv6 manipulation library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress</span></code></a> that result of
<code class="xref py py-meth docutils literal notranslate"><span class="pre">hosts()</span></code> is empty when the network is constructed by a tuple
containing an integer mask and only 1 bit left for addresses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32999">bpo-32999</a>: Fix C implementation of <code class="docutils literal notranslate"><span class="pre">ABC.__subclasscheck__(cls,</span>
<span class="pre">subclass)</span></code> crashed when <code class="docutils literal notranslate"><span class="pre">subclass</span></code> is not a type object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33009">bpo-33009</a>: Fix inspect.signature() for single-parameter partialmethods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32969">bpo-32969</a>: Expose several missing constants in zlib and fix corresponding
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32056">bpo-32056</a>: Improved exceptions raised for invalid number of channels and
sample width when read an audio file in modules <code class="xref py py-mod docutils literal notranslate"><span class="pre">aifc</span></code>, <a class="reference internal" href="../library/wave.html#module-wave" title="wave: Provide an interface to the WAV sound format."><code class="xref py py-mod docutils literal notranslate"><span class="pre">wave</span></code></a>
and <code class="xref py py-mod docutils literal notranslate"><span class="pre">sunau</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32844">bpo-32844</a>: Fix wrong redirection of a low descriptor (0 or 1) to stderr in
subprocess if another low descriptor is closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32857">bpo-32857</a>: In <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a>, <code class="docutils literal notranslate"><span class="pre">after_cancel(None)</span></code> now raises a
<a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> instead of canceling the first scheduled function.
Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31639">bpo-31639</a>: http.server now exposes a ThreadedHTTPServer class and uses it
when the module is run with <code class="docutils literal notranslate"><span class="pre">-m</span></code> to cope with web browsers pre-opening
sockets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27645">bpo-27645</a>: <a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection" title="sqlite3.Connection"><code class="xref py py-class docutils literal notranslate"><span class="pre">sqlite3.Connection</span></code></a> now exposes a
<a class="reference internal" href="../library/sqlite3.html#sqlite3.Connection.backup" title="sqlite3.Connection.backup"><code class="xref py py-class docutils literal notranslate"><span class="pre">backup</span></code></a> method, if the underlying SQLite
library is at version 3.6.11 or higher. Patch by Lele Gaifax.</p></li>
</ul>
</section>
<section id="id552">
<h3>Documentation<a class="headerlink" href="#id552" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33126">bpo-33126</a>: Document PyBuffer_ToContiguous().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27212">bpo-27212</a>: Modify documentation for the <code class="xref py py-func docutils literal notranslate"><span class="pre">islice()</span></code> recipe to consume
initial values up to the start index.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28247">bpo-28247</a>: Update <a class="reference internal" href="../library/zipapp.html#module-zipapp" title="zipapp: Manage executable Python zip archives"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipapp</span></code></a> documentation to describe how to make
standalone applications.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18802">bpo-18802</a>: Documentation changes for ipaddress. Patch by Jon Foster and
Berker Peksag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27428">bpo-27428</a>: Update documentation to clarify that <code class="docutils literal notranslate"><span class="pre">WindowsRegistryFinder</span></code>
implements <code class="docutils literal notranslate"><span class="pre">MetaPathFinder</span></code>. (Patch by Himanshu Lakhara)</p></li>
</ul>
</section>
<section id="id553">
<h3>Tests<a class="headerlink" href="#id553" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32872">bpo-32872</a>: Avoid regrtest compatibility issue with namespace packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32517">bpo-32517</a>: Fix failing <code class="docutils literal notranslate"><span class="pre">test_asyncio</span></code> on macOS 10.12.2+ due to transport
of <code class="docutils literal notranslate"><span class="pre">KqueueSelector</span></code> loop was not being closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19417">bpo-19417</a>: Add test_bdb.py.</p></li>
</ul>
</section>
<section id="id554">
<h3>Build<a class="headerlink" href="#id554" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33163">bpo-33163</a>: Upgrade pip to 9.0.3 and setuptools to v39.0.1.</p></li>
</ul>
</section>
<section id="id555">
<h3>Windows<a class="headerlink" href="#id555" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33016">bpo-33016</a>: Fix potential use of uninitialized memory in
nt._getfinalpathname</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32903">bpo-32903</a>: Fix a memory leak in os.chdir() on Windows if the current
directory is set to a UNC path.</p></li>
</ul>
</section>
<section id="id556">
<h3>macOS<a class="headerlink" href="#id556" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32726">bpo-32726</a>: Build and link with private copy of Tcl/Tk 8.6 for the macOS
10.6+ installer. The 10.9+ installer variant already does this. This
means that the Python 3.7 provided by the python.org macOS installers no
longer need or use any external versions of Tcl/Tk, either system-provided
or user-installed, such as ActiveTcl.</p></li>
</ul>
</section>
<section id="id557">
<h3>IDLE<a class="headerlink" href="#id557" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32984">bpo-32984</a>: Set <code class="docutils literal notranslate"><span class="pre">__file__</span></code> while running a startup file. Like Python,
IDLE optionally runs one startup file in the Shell window before
presenting the first interactive input prompt. For IDLE, <code class="docutils literal notranslate"><span class="pre">-s</span></code> runs a
file named in environmental variable <span class="target" id="index-376"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> or
<span class="target" id="index-377"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code></a>; <code class="docutils literal notranslate"><span class="pre">-r</span> <span class="pre">file</span></code> runs <code class="docutils literal notranslate"><span class="pre">file</span></code>. Python sets
<code class="docutils literal notranslate"><span class="pre">__file__</span></code> to the startup file name before running the file and unsets
it before the first prompt. IDLE now does the same when run normally,
without the <code class="docutils literal notranslate"><span class="pre">-n</span></code> option.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32940">bpo-32940</a>: Simplify and rename StringTranslatePseudoMapping in pyparse.</p></li>
</ul>
</section>
<section id="id558">
<h3>Tools/Demos<a class="headerlink" href="#id558" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32885">bpo-32885</a>: Add an <code class="docutils literal notranslate"><span class="pre">-n</span></code> flag for <code class="docutils literal notranslate"><span class="pre">Tools/scripts/pathfix.py</span></code> to disable
automatic backup creation (files with <code class="docutils literal notranslate"><span class="pre">~</span></code> suffix).</p></li>
</ul>
</section>
<section id="id559">
<h3>C API<a class="headerlink" href="#id559" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33042">bpo-33042</a>: Embedding applications may once again call
PySys_ResetWarnOptions, PySys_AddWarnOption, and PySys_AddXOption prior to
calling Py_Initialize.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32374">bpo-32374</a>: Document that m_traverse for multi-phase initialized modules
can be called with m_state=NULL, and add a sanity check</p></li>
</ul>
</section>
</section>
<section id="python-3-7-0-beta-2">
<h2>Python 3.7.0 beta 2<a class="headerlink" href="#python-3-7-0-beta-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-02-27</em></p>
<section id="id560">
<h3>Security<a class="headerlink" href="#id560" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28414">bpo-28414</a>: The ssl module now allows users to perform their own IDN
en/decoding when using SNI.</p></li>
</ul>
</section>
<section id="id561">
<h3>Core and Builtins<a class="headerlink" href="#id561" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32889">bpo-32889</a>: Update Valgrind suppression list to account for the rename of
<code class="docutils literal notranslate"><span class="pre">Py_ADDRESS_IN_RANG</span></code> to <code class="docutils literal notranslate"><span class="pre">address_in_range</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31356">bpo-31356</a>: Remove the new API added in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31356">bpo-31356</a> (gc.ensure_disabled()
context manager).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32305">bpo-32305</a>: For namespace packages, ensure that both <code class="docutils literal notranslate"><span class="pre">__file__</span></code> and
<code class="docutils literal notranslate"><span class="pre">__spec__.origin</span></code> are set to None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32303">bpo-32303</a>: Make sure <code class="docutils literal notranslate"><span class="pre">__spec__.loader</span></code> matches <code class="docutils literal notranslate"><span class="pre">__loader__</span></code> for
namespace packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32711">bpo-32711</a>: Fix the warning messages for Python/ast_unparse.c. Patch by
Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32583">bpo-32583</a>: Fix possible crashing in builtin Unicode decoders caused by
write out-of-bound errors when using customized decode error handlers.</p></li>
</ul>
</section>
<section id="id562">
<h3>Library<a class="headerlink" href="#id562" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32960">bpo-32960</a>: For dataclasses, disallow inheriting frozen from non-frozen
classes, and also disallow inheriting non-frozen from frozen classes. This
restriction will be relaxed at a future date.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32713">bpo-32713</a>: Fixed tarfile.itn handling of out-of-bounds float values. Patch
by Joffrey Fuhrer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32951">bpo-32951</a>: Direct instantiation of SSLSocket and SSLObject objects is now
prohibited. The constructors were never documented, tested, or designed as
public constructors. Users were suppose to use ssl.wrap_socket() or
SSLContext.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32929">bpo-32929</a>: Remove the tri-state parameter “hash”, and add the boolean
“unsafe_hash”. If unsafe_hash is True, add a __hash__ function, but if a
__hash__ exists, raise TypeError. If unsafe_hash is False, add a __hash__
based on the values of eq= and frozen=. The unsafe_hash=False behavior is
the same as the old hash=None behavior. unsafe_hash=False is the default,
just as hash=None used to be.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32947">bpo-32947</a>: Add OP_ENABLE_MIDDLEBOX_COMPAT and test workaround for TLSv1.3
for future compatibility with OpenSSL 1.1.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30622">bpo-30622</a>: The ssl module now detects missing NPN support in LibreSSL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32922">bpo-32922</a>: dbm.open() now encodes filename with the filesystem encoding
rather than default encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32859">bpo-32859</a>: In <code class="docutils literal notranslate"><span class="pre">os.dup2</span></code>, don’t check every call whether the <code class="docutils literal notranslate"><span class="pre">dup3</span></code>
syscall exists or not.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32556">bpo-32556</a>: nt._getfinalpathname, nt._getvolumepathname and
nt._getdiskusage now correctly convert from bytes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25988">bpo-25988</a>: Emit a <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> when using or importing an ABC
directly from <a class="reference internal" href="../library/collections.html#module-collections" title="collections: Container datatypes"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections</span></code></a> rather than from <a class="reference internal" href="../library/collections.abc.html#module-collections.abc" title="collections.abc: Abstract base classes for containers"><code class="xref py py-mod docutils literal notranslate"><span class="pre">collections.abc</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21060">bpo-21060</a>: Rewrite confusing message from setup.py upload from “No dist
file created in earlier command” to the more helpful “Must create and
upload files in one command”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32852">bpo-32852</a>: Make sure sys.argv remains as a list when running trace.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31333">bpo-31333</a>: <code class="docutils literal notranslate"><span class="pre">_abc</span></code> module is added. It is a speedup module with C
implementations for various functions and methods in <code class="docutils literal notranslate"><span class="pre">abc</span></code>. Creating an
ABC subclass and calling <code class="docutils literal notranslate"><span class="pre">isinstance</span></code> or <code class="docutils literal notranslate"><span class="pre">issubclass</span></code> with an ABC
subclass are up to 1.5x faster. In addition, this makes Python start-up up
to 10% faster. Note that the new implementation hides internal registry
and caches, previously accessible via private attributes
<code class="docutils literal notranslate"><span class="pre">_abc_registry</span></code>, <code class="docutils literal notranslate"><span class="pre">_abc_cache</span></code>, and <code class="docutils literal notranslate"><span class="pre">_abc_negative_cache</span></code>. There are
three debugging helper methods that can be used instead
<code class="docutils literal notranslate"><span class="pre">_dump_registry</span></code>, <code class="docutils literal notranslate"><span class="pre">_abc_registry_clear</span></code>, and <code class="docutils literal notranslate"><span class="pre">_abc_caches_clear</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32841">bpo-32841</a>: Fixed <code class="docutils literal notranslate"><span class="pre">asyncio.Condition</span></code> issue which silently ignored
cancellation after notifying and cancelling a conditional lock. Patch by
Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32819">bpo-32819</a>: ssl.match_hostname() has been simplified and no longer depends
on re and ipaddress module for wildcard and IP addresses. Error reporting
for invalid wildcards has been improved.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32394">bpo-32394</a>: socket: Remove
TCP_FASTOPEN,TCP_KEEPCNT,TCP_KEEPIDLE,TCP_KEEPINTVL flags on older version
Windows during run-time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31787">bpo-31787</a>: Fixed refleaks of <code class="docutils literal notranslate"><span class="pre">__init__()</span></code> methods in various modules.
(Contributed by Oren Milman)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30157">bpo-30157</a>: Fixed guessing quote and delimiter in csv.Sniffer.sniff() when
only the last field is quoted. Patch by Jake Davis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32792">bpo-32792</a>: collections.ChainMap() preserves the order of the underlying
mappings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32775">bpo-32775</a>: <a class="reference internal" href="../library/fnmatch.html#fnmatch.translate" title="fnmatch.translate"><code class="xref py py-func docutils literal notranslate"><span class="pre">fnmatch.translate()</span></code></a> no longer produces patterns which
contain set operations. Sets starting with ‘[’ or containing ‘–’, ‘&&’,
‘~~’ or ‘||’ will be interpreted differently in regular expressions in
future versions. Currently they emit warnings. fnmatch.translate() now
avoids producing patterns containing such sets by accident.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32622">bpo-32622</a>: Implement native fast sendfile for Windows proactor event loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32777">bpo-32777</a>: Fix a rare but potential pre-exec child process deadlock in
subprocess on POSIX systems when marking file descriptors inheritable on
exec in the child process. This bug appears to have been introduced in
3.4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32647">bpo-32647</a>: The ctypes module used to depend on indirect linking for
dlopen. The shared extension is now explicitly linked against libdl on
platforms with dl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32741">bpo-32741</a>: Implement <code class="docutils literal notranslate"><span class="pre">asyncio.TimerHandle.when()</span></code> method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32691">bpo-32691</a>: Use mod_spec.parent when running modules with pdb</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32734">bpo-32734</a>: Fixed <code class="docutils literal notranslate"><span class="pre">asyncio.Lock()</span></code> safety issue which allowed acquiring
and locking the same lock multiple times, without it being free. Patch by
Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32727">bpo-32727</a>: Do not include name field in SMTP envelope from address. Patch
by Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31453">bpo-31453</a>: Add TLSVersion constants and SSLContext.maximum_version /
minimum_version attributes. The new API wraps OpenSSL 1.1
<a class="reference external" href="https://web.archive.org/web/20180309043602/https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.html">https://web.archive.org/web/20180309043602/https://www.openssl.org/docs/man1.1.0/ssl/SSL_CTX_set_min_proto_version.html</a>
feature.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24334">bpo-24334</a>: Internal implementation details of ssl module were cleaned up.
The SSLSocket has one less layer of indirection. Owner and session
information are now handled by the SSLSocket and SSLObject constructor.
Channel binding implementation has been simplified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31848">bpo-31848</a>: Fix the error handling in Aifc_read.initfp() when the SSND
chunk is not found. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32585">bpo-32585</a>: Add Ttk spinbox widget to <a class="reference internal" href="../library/tkinter.ttk.html#module-tkinter.ttk" title="tkinter.ttk: Tk themed widget set"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter.ttk</span></code></a>. Patch by Alan D
Moore.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32221">bpo-32221</a>: Various functions returning tuple containing IPv6 addresses now
omit <code class="docutils literal notranslate"><span class="pre">%scope</span></code> part since the same information is already encoded in
<em>scopeid</em> tuple item. Especially this speeds up <code class="xref py py-func docutils literal notranslate"><span class="pre">socket.recvfrom()</span></code>
when it receives multicast packet since useless resolving of network
interface name is omitted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30693">bpo-30693</a>: The TarFile class now recurses directories in a reproducible
way.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30693">bpo-30693</a>: The ZipFile class now recurses directories in a reproducible
way.</p></li>
</ul>
</section>
<section id="id563">
<h3>Documentation<a class="headerlink" href="#id563" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28124">bpo-28124</a>: The ssl module function ssl.wrap_socket() has been
de-emphasized and deprecated in favor of the more secure and efficient
SSLContext.wrap_socket() method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17232">bpo-17232</a>: Clarify docs for -O and -OO. Patch by Terry Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32436">bpo-32436</a>: Add documentation for the contextvars module (PEP 567).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32800">bpo-32800</a>: Update link to w3c doc for xml default namespaces.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11015">bpo-11015</a>: Update <a class="reference internal" href="../library/test.html#module-test.support" title="test.support: Support for Python's regression test suite."><code class="xref py py-mod docutils literal notranslate"><span class="pre">test.support</span></code></a> documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8722">bpo-8722</a>: Document <code class="xref py py-meth docutils literal notranslate"><span class="pre">__getattr__()</span></code> behavior when property <code class="xref py py-meth docutils literal notranslate"><span class="pre">get()</span></code>
method raises <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32614">bpo-32614</a>: Modify RE examples in documentation to use raw strings to
prevent <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> and add text to REGEX HOWTO to highlight
the deprecation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31972">bpo-31972</a>: Improve docstrings for <code class="docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code> subclasses.</p></li>
</ul>
</section>
<section id="id564">
<h3>Tests<a class="headerlink" href="#id564" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31809">bpo-31809</a>: Add tests to verify connection with secp ECDH curves.</p></li>
</ul>
</section>
<section id="id565">
<h3>Build<a class="headerlink" href="#id565" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32898">bpo-32898</a>: Fix the python debug build when using COUNT_ALLOCS.</p></li>
</ul>
</section>
<section id="id566">
<h3>Windows<a class="headerlink" href="#id566" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32901">bpo-32901</a>: Update Tcl and Tk versions to 8.6.8</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31966">bpo-31966</a>: Fixed WindowsConsoleIO.write() for writing empty data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32409">bpo-32409</a>: Ensures activate.bat can handle Unicode contents.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32457">bpo-32457</a>: Improves handling of denormalized executable path when
launching Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32370">bpo-32370</a>: Use the correct encoding for ipconfig output in the uuid
module. Patch by Segev Finer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29248">bpo-29248</a>: Fix <a class="reference internal" href="../library/os.html#os.readlink" title="os.readlink"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.readlink()</span></code></a> on Windows, which was mistakenly
treating the <code class="docutils literal notranslate"><span class="pre">PrintNameOffset</span></code> field of the reparse data buffer as a
number of characters instead of bytes. Patch by Craig Holmquist and SSE4.</p></li>
</ul>
</section>
<section id="id567">
<h3>macOS<a class="headerlink" href="#id567" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32901">bpo-32901</a>: Update macOS 10.9+ installer to Tcl/Tk 8.6.8.</p></li>
</ul>
</section>
<section id="id568">
<h3>IDLE<a class="headerlink" href="#id568" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32916">bpo-32916</a>: Change <code class="docutils literal notranslate"><span class="pre">str</span></code> to <code class="docutils literal notranslate"><span class="pre">code</span></code> in pyparse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32905">bpo-32905</a>: Remove unused code in pyparse module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32874">bpo-32874</a>: Add tests for pyparse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32837">bpo-32837</a>: Using the system and place-dependent default encoding for
open() is a bad idea for IDLE’s system and location-independent files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32826">bpo-32826</a>: Add “encoding=utf-8” to open() in IDLE’s test_help_about. GUI
test test_file_buttons() only looks at initial ascii-only lines, but
failed on systems where open() defaults to ‘ascii’ because readline()
internally reads and decodes far enough ahead to encounter a non-ascii
character in CREDITS.txt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32765">bpo-32765</a>: Update configdialog General tab docstring to add new widgets to
the widget list.</p></li>
</ul>
</section>
<section id="id569">
<h3>Tools/Demos<a class="headerlink" href="#id569" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32222">bpo-32222</a>: Fix pygettext not extracting docstrings for functions with type
annotated arguments. Patch by Toby Harradine.</p></li>
</ul>
</section>
</section>
<section id="python-3-7-0-beta-1">
<h2>Python 3.7.0 beta 1<a class="headerlink" href="#python-3-7-0-beta-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-01-30</em></p>
<section id="id570">
<h3>Core and Builtins<a class="headerlink" href="#id570" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32703">bpo-32703</a>: Fix coroutine’s ResourceWarning when there’s an active error
set when it’s being finalized.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32650">bpo-32650</a>: Pdb and other debuggers dependent on bdb.py will correctly step
over (next command) native coroutines. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28685">bpo-28685</a>: Optimize list.sort() and sorted() by using type specialized
comparisons when possible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32685">bpo-32685</a>: Improve suggestion when the Python 2 form of print statement is
either present on the same line as the header of a compound statement or
else terminated by a semi-colon instead of a newline. Patch by Nitish
Chandra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32697">bpo-32697</a>: Python now explicitly preserves the definition order of
keyword-only parameters. It’s always preserved their order, but this
behavior was never guaranteed before; this behavior is now guaranteed and
tested.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32690">bpo-32690</a>: The locals() dictionary now displays in the lexical order that
variables were defined. Previously, the order was reversed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32677">bpo-32677</a>: Add <code class="docutils literal notranslate"><span class="pre">.isascii()</span></code> method to <code class="docutils literal notranslate"><span class="pre">str</span></code>, <code class="docutils literal notranslate"><span class="pre">bytes</span></code> and
<code class="docutils literal notranslate"><span class="pre">bytearray</span></code>. It can be used to test that string contains only ASCII
characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32670">bpo-32670</a>: Enforce <span class="target" id="index-378"></span><a class="pep reference external" href="https://peps.python.org/pep-0479/"><strong>PEP 479</strong></a> for all code. This means that manually
raising a StopIteration exception from a generator is prohibited for all
code, regardless of whether ‘from __future__ import generator_stop’ was
used or not.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32591">bpo-32591</a>: Added built-in support for tracking the origin of coroutine
objects; see sys.set_coroutine_origin_tracking_depth and
CoroutineType.cr_origin. This replaces the asyncio debug mode’s use of
coroutine wrapping for native coroutine objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31368">bpo-31368</a>: Expose preadv and pwritev system calls in the os module. Patch
by Pablo Galindo</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32544">bpo-32544</a>: <code class="docutils literal notranslate"><span class="pre">hasattr(obj,</span> <span class="pre">name)</span></code> and <code class="docutils literal notranslate"><span class="pre">getattr(obj,</span> <span class="pre">name,</span> <span class="pre">default)</span></code> are
about 4 times faster than before when <code class="docutils literal notranslate"><span class="pre">name</span></code> is not found and <code class="docutils literal notranslate"><span class="pre">obj</span></code>
doesn’t override <code class="docutils literal notranslate"><span class="pre">__getattr__</span></code> or <code class="docutils literal notranslate"><span class="pre">__getattribute__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26163">bpo-26163</a>: Improved frozenset() hash to create more distinct hash values
when faced with datasets containing many similar values.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32550">bpo-32550</a>: Remove the STORE_ANNOTATION bytecode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20104">bpo-20104</a>: Expose posix_spawn as a low level API in the os module.
(removed before 3.7.0rc1)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24340">bpo-24340</a>: Fixed estimation of the code stack size.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32436">bpo-32436</a>: Implement <span class="target" id="index-379"></span><a class="pep reference external" href="https://peps.python.org/pep-0567/"><strong>PEP 567</strong></a> Context Variables.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18533">bpo-18533</a>: <code class="docutils literal notranslate"><span class="pre">repr()</span></code> on a dict containing its own <code class="docutils literal notranslate"><span class="pre">values()</span></code> or
<code class="docutils literal notranslate"><span class="pre">items()</span></code> no longer raises <code class="docutils literal notranslate"><span class="pre">RecursionError</span></code>; OrderedDict similarly.
Instead, use <code class="docutils literal notranslate"><span class="pre">...</span></code>, as for other recursive structures. Patch by Ben
North.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20891">bpo-20891</a>: Py_Initialize() now creates the GIL. The GIL is no longer
created “on demand” to fix a race condition when PyGILState_Ensure() is
called in a non-Python thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32028">bpo-32028</a>: Leading whitespace is now correctly ignored when generating
suggestions for converting Py2 print statements to Py3 builtin print
function calls. Patch by Sanyam Khurana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31179">bpo-31179</a>: Make dict.copy() up to 5.5 times faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31113">bpo-31113</a>: Get rid of recursion in the compiler for normal control flow.</p></li>
</ul>
</section>
<section id="id571">
<h3>Library<a class="headerlink" href="#id571" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25988">bpo-25988</a>: Deprecate exposing the contents of collections.abc in the
regular collections module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31429">bpo-31429</a>: The default cipher suite selection of the ssl module now uses a
blacklist approach rather than a hard-coded whitelist. Python no longer
re-enables ciphers that have been blocked by OpenSSL security update.
Default cipher suite selection can be configured on compile time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30306">bpo-30306</a>: contextlib.contextmanager now releases the arguments passed to
the underlying generator as soon as the context manager is entered.
Previously it would keep them alive for as long as the context manager was
alive, even when not being used as a function decorator. Patch by Martin
Teichmann.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21417">bpo-21417</a>: Added support for setting the compression level for
zipfile.ZipFile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32251">bpo-32251</a>: Implement asyncio.BufferedProtocol (provisional API).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32513">bpo-32513</a>: In dataclasses, allow easier overriding of dunder methods
without specifying decorator parameters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32660">bpo-32660</a>: <a class="reference internal" href="../library/termios.html#module-termios" title="termios: POSIX style tty control. (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">termios</span></code></a> makes available <code class="docutils literal notranslate"><span class="pre">FIONREAD</span></code>, <code class="docutils literal notranslate"><span class="pre">FIONCLEX</span></code>,
<code class="docutils literal notranslate"><span class="pre">FIOCLEX</span></code>, <code class="docutils literal notranslate"><span class="pre">FIOASYNC</span></code> and <code class="docutils literal notranslate"><span class="pre">FIONBIO</span></code> also under Solaris/derivatives.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27931">bpo-27931</a>: Fix email address header parsing error when the username is an
empty quoted string. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32659">bpo-32659</a>: Under Solaris and derivatives, <a class="reference internal" href="../library/os.html#os.stat_result" title="os.stat_result"><code class="xref py py-class docutils literal notranslate"><span class="pre">os.stat_result</span></code></a> provides
a st_fstype attribute.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32662">bpo-32662</a>: Implement Server.start_serving(), Server.serve_forever(), and
Server.is_serving() methods. Add ‘start_serving’ keyword parameter to
loop.create_server() and loop.create_unix_server().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32391">bpo-32391</a>: Implement <a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamWriter.wait_closed" title="asyncio.StreamWriter.wait_closed"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.StreamWriter.wait_closed()</span></code></a> and
<a class="reference internal" href="../library/asyncio-stream.html#asyncio.StreamWriter.is_closing" title="asyncio.StreamWriter.is_closing"><code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.StreamWriter.is_closing()</span></code></a> methods</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32643">bpo-32643</a>: Make Task._step, Task._wakeup and Future._schedule_callbacks
methods private.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32630">bpo-32630</a>: Refactor decimal module to use contextvars to store decimal
context.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32622">bpo-32622</a>: Add <code class="xref py py-meth docutils literal notranslate"><span class="pre">asyncio.AbstractEventLoop.sendfile()</span></code> method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32304">bpo-32304</a>: distutils’ upload command no longer corrupts tar files ending
with a CR byte, and no longer tries to convert CR to CRLF in any of the
upload text fields.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32502">bpo-32502</a>: uuid.uuid1 no longer raises an exception if a 64-bit hardware
address is encountered.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32596">bpo-32596</a>: <code class="docutils literal notranslate"><span class="pre">concurrent.futures</span></code> imports <code class="docutils literal notranslate"><span class="pre">ThreadPoolExecutor</span></code> and
<code class="docutils literal notranslate"><span class="pre">ProcessPoolExecutor</span></code> lazily (using <span class="target" id="index-380"></span><a class="pep reference external" href="https://peps.python.org/pep-0562/"><strong>PEP 562</strong></a>). It makes <code class="docutils literal notranslate"><span class="pre">import</span>
<span class="pre">asyncio</span></code> about 15% faster because asyncio uses only
<code class="docutils literal notranslate"><span class="pre">ThreadPoolExecutor</span></code> by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31801">bpo-31801</a>: Add <code class="docutils literal notranslate"><span class="pre">_ignore_</span></code> to <code class="docutils literal notranslate"><span class="pre">Enum</span></code> so temporary variables can be used
during class construction without being turned into members.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32576">bpo-32576</a>: Use queue.SimpleQueue() in places where it can be invoked from
a weakref callback.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32574">bpo-32574</a>: Fix memory leak in asyncio.Queue, when the queue has limited
size and it is full, the cancellation of queue.put() can cause a memory
leak. Patch by: José Melero.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32521">bpo-32521</a>: The nis module is now compatible with new libnsl and headers
location.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32467">bpo-32467</a>: collections.abc.ValuesView now inherits from
collections.abc.Collection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32473">bpo-32473</a>: Improve ABCMeta._dump_registry() output readability</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32102">bpo-32102</a>: New argument <code class="docutils literal notranslate"><span class="pre">capture_output</span></code> for subprocess.run</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32521">bpo-32521</a>: glibc has removed Sun RPC. Use replacement libtirpc headers and
library in nis module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32493">bpo-32493</a>: UUID module fixes build for FreeBSD/OpenBSD</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32503">bpo-32503</a>: Pickling with protocol 4 no longer creates too small frames.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29237">bpo-29237</a>: Create enum for pstats sorting options</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32454">bpo-32454</a>: Add close(fd) function to the socket module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25942">bpo-25942</a>: The subprocess module is now more graceful when handling a
Ctrl-C KeyboardInterrupt during subprocess.call, subprocess.run, or a
Popen context manager. It now waits a short amount of time for the child
(presumed to have also gotten the SIGINT) to exit, before continuing the
KeyboardInterrupt exception handling. This still includes a SIGKILL in
the call() and run() APIs, but at least the child had a chance first.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32433">bpo-32433</a>: The hmac module now has hmac.digest(), which provides an
optimized HMAC digest.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28134">bpo-28134</a>: Sockets now auto-detect family, type and protocol from file
descriptor by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32404">bpo-32404</a>: Fix bug where <a class="reference internal" href="../library/datetime.html#datetime.datetime.fromtimestamp" title="datetime.datetime.fromtimestamp"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.fromtimestamp()</span></code></a> did not
call __new__ in <a class="reference internal" href="../library/datetime.html#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a> subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32403">bpo-32403</a>: Improved speed of <a class="reference internal" href="../library/datetime.html#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.date</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.datetime</span></code></a> alternate constructors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32228">bpo-32228</a>: Ensure that <code class="docutils literal notranslate"><span class="pre">truncate()</span></code> preserves the file position (as
reported by <code class="docutils literal notranslate"><span class="pre">tell()</span></code>) after writes longer than the buffer size.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32410">bpo-32410</a>: Implement <code class="docutils literal notranslate"><span class="pre">loop.sock_sendfile</span></code> for asyncio event loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22908">bpo-22908</a>: Added seek and tell to the ZipExtFile class. This only works if
the file object used to open the zipfile is seekable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32373">bpo-32373</a>: Add socket.getblocking() method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32248">bpo-32248</a>: Add <a class="reference internal" href="../library/importlib.resources.html#module-importlib.resources" title="importlib.resources: Package resource reading, opening, and access"><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib.resources</span></code></a> and
<a class="reference internal" href="../library/importlib.html#importlib.abc.ResourceReader" title="importlib.abc.ResourceReader"><code class="xref py py-class docutils literal notranslate"><span class="pre">importlib.abc.ResourceReader</span></code></a> as the unified API for reading
resources contained within packages. Loaders wishing to support resource
reading must implement the <code class="xref py py-meth docutils literal notranslate"><span class="pre">get_resource_reader()</span></code> method. File-based
and zipimport-based loaders both implement these APIs.
<a class="reference internal" href="../library/importlib.html#importlib.abc.ResourceLoader" title="importlib.abc.ResourceLoader"><code class="xref py py-class docutils literal notranslate"><span class="pre">importlib.abc.ResourceLoader</span></code></a> is deprecated in favor of these new
APIs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32320">bpo-32320</a>: collections.namedtuple() now supports default values.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29302">bpo-29302</a>: Add contextlib.AsyncExitStack. Patch by Alexander Mohr and Ilya
Kulakov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31961">bpo-31961</a>: <em>Removed in Python 3.7.0b2.</em> The <em>args</em> argument of
subprocess.Popen can now be a <a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like object</span></a>. If <em>args</em> is given
as a sequence, it’s first element can now be a <a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like object</span></a> as
well.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31900">bpo-31900</a>: The <a class="reference internal" href="../library/locale.html#locale.localeconv" title="locale.localeconv"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.localeconv()</span></code></a> function now sets temporarily the
<code class="docutils literal notranslate"><span class="pre">LC_CTYPE</span></code> locale to the <code class="docutils literal notranslate"><span class="pre">LC_NUMERIC</span></code> locale to decode
<code class="docutils literal notranslate"><span class="pre">decimal_point</span></code> and <code class="docutils literal notranslate"><span class="pre">thousands_sep</span></code> byte strings if they are non-ASCII
or longer than 1 byte, and the <code class="docutils literal notranslate"><span class="pre">LC_NUMERIC</span></code> locale is different than the
<code class="docutils literal notranslate"><span class="pre">LC_CTYPE</span></code> locale. This temporary change affects other threads. Same
change for the <a class="reference internal" href="../library/stdtypes.html#str.format" title="str.format"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.format()</span></code></a> method when formatting a number
(<a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>, <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>, <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> and subclasses) with the
<code class="docutils literal notranslate"><span class="pre">n</span></code> type (ex: <code class="docutils literal notranslate"><span class="pre">'{:n}'.format(1234)</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31853">bpo-31853</a>: Use super().method instead of socket.method in SSLSocket. They
were there most likely for legacy reasons.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31399">bpo-31399</a>: The ssl module now uses OpenSSL’s X509_VERIFY_PARAM_set1_host()
and X509_VERIFY_PARAM_set1_ip() API to verify hostname and IP addresses.
Subject common name fallback can be disabled with
SSLContext.hostname_checks_common_name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14976">bpo-14976</a>: Add a queue.SimpleQueue class, an unbounded FIFO queue with a
reentrant C implementation of put().</p></li>
</ul>
</section>
<section id="id572">
<h3>Documentation<a class="headerlink" href="#id572" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32724">bpo-32724</a>: Add references to some commands in the documentation of Pdb.
Patch by Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32649">bpo-32649</a>: Complete the C API documentation, profiling and tracing part
with the newly added per-opcode events.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17799">bpo-17799</a>: Explain real behaviour of sys.settrace and sys.setprofile and
their C-API counterparts regarding which type of events are received in
each function. Patch by Pablo Galindo Salgado.</p></li>
</ul>
</section>
<section id="id573">
<h3>Tests<a class="headerlink" href="#id573" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32721">bpo-32721</a>: Fix test_hashlib to not fail if the _md5 module is not built.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28414">bpo-28414</a>: Add test cases for IDNA 2003 and 2008 host names. IDNA 2003
internationalized host names are working since <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31399">bpo-31399</a> has landed. IDNA
2008 are still broken.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32604">bpo-32604</a>: Add a new “_xxsubinterpreters” extension module that exposes
the existing subinterpreter C-API and a new cross-interpreter data sharing
mechanism. The module is primarily intended for more thorough testing of
the existing subinterpreter support. Note that the _xxsubinterpreters
module has been removed in 3.7.0rc1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32602">bpo-32602</a>: Add test certs and test for ECDSA cert and EC/RSA dual mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32549">bpo-32549</a>: On Travis CI, Python now Compiles and uses a local copy of
OpenSSL 1.1.0g for testing.</p></li>
</ul>
</section>
<section id="id574">
<h3>Build<a class="headerlink" href="#id574" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32635">bpo-32635</a>: Fix segfault of the crypt module when libxcrypt is provided
instead of libcrypt at the system.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32598">bpo-32598</a>: Use autoconf to detect OpenSSL libs, headers and supported
features. The ax_check_openssl M4 macro uses pkg-config to locate OpenSSL
and falls back to manual search.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32593">bpo-32593</a>: Drop support of FreeBSD 9 and older.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29708">bpo-29708</a>: If the <span class="target" id="index-381"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">SOURCE_DATE_EPOCH</span></code> environment variable is set,
<a class="reference internal" href="../library/py_compile.html#module-py_compile" title="py_compile: Generate byte-code files from Python source files."><code class="xref py py-mod docutils literal notranslate"><span class="pre">py_compile</span></code></a> will always create hash-based <code class="docutils literal notranslate"><span class="pre">.pyc</span></code> files.</p></li>
</ul>
</section>
<section id="id575">
<h3>Windows<a class="headerlink" href="#id575" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32588">bpo-32588</a>: Create standalone _distutils_findvs module and add missing
_queue module to installer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29911">bpo-29911</a>: Ensure separate Modify and Uninstall buttons are displayed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32507">bpo-32507</a>: Use app-local UCRT install rather than the proper update for
old versions of Windows.</p></li>
</ul>
</section>
<section id="id576">
<h3>macOS<a class="headerlink" href="#id576" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32726">bpo-32726</a>: Provide an additional, more modern macOS installer variant that
supports macOS 10.9+ systems in 64-bit mode only. Upgrade the supplied
third-party libraries to OpenSSL 1.1.0g and to SQLite 3.22.0. The 10.9+
installer now links with and supplies its own copy of Tcl/Tk 8.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28440">bpo-28440</a>: No longer add /Library/Python/3.x/site-packages to sys.path for
macOS framework builds to avoid future conflicts.</p></li>
</ul>
</section>
<section id="id577">
<h3>C API<a class="headerlink" href="#id577" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32681">bpo-32681</a>: Fix uninitialized variable ‘res’ in the C implementation of
os.dup2. Patch by Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10381">bpo-10381</a>: Add C API access to the <code class="docutils literal notranslate"><span class="pre">datetime.timezone</span></code> constructor and
<code class="docutils literal notranslate"><span class="pre">datetime.timezone.UTC</span></code> singleton.</p></li>
</ul>
</section>
</section>
<section id="python-3-7-0-alpha-4">
<h2>Python 3.7.0 alpha 4<a class="headerlink" href="#python-3-7-0-alpha-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-01-08</em></p>
<section id="id578">
<h3>Core and Builtins<a class="headerlink" href="#id578" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31975">bpo-31975</a>: The default warning filter list now starts with a
“default::DeprecationWarning:__main__” entry, so deprecation warnings are
once again shown by default in single-file scripts and at the interactive
prompt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32226">bpo-32226</a>: <code class="docutils literal notranslate"><span class="pre">__class_getitem__</span></code> is now an automatic class method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32399">bpo-32399</a>: Add AIX uuid library support for RFC4122 using uuid_create() in
libc.a</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32390">bpo-32390</a>: Fix the compilation failure on AIX after the f_fsid field has
been added to the object returned by os.statvfs() (<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32143">bpo-32143</a>). Original
patch by Michael Felt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32379">bpo-32379</a>: Make MRO computation faster when a class inherits from a single
base.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32259">bpo-32259</a>: The error message of a TypeError raised when unpack
non-iterable is now more specific.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27169">bpo-27169</a>: The <code class="docutils literal notranslate"><span class="pre">__debug__</span></code> constant is now optimized out at compile
time. This fixes also <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22091">bpo-22091</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32329">bpo-32329</a>: The <a class="reference internal" href="../using/cmdline.html#cmdoption-R"><code class="xref std std-option docutils literal notranslate"><span class="pre">-R</span></code></a> option now turns on hash randomization when
the <span class="target" id="index-382"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONHASHSEED"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONHASHSEED</span></code></a> environment variable is set to <code class="docutils literal notranslate"><span class="pre">0</span></code>.
Previously, the option was ignored. Moreover,
<code class="docutils literal notranslate"><span class="pre">sys.flags.hash_randomization</span></code> is now properly set to 0 when hash
randomization is turned off by <code class="docutils literal notranslate"><span class="pre">PYTHONHASHSEED=0</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30416">bpo-30416</a>: The optimizer is now protected from spending much time doing
complex calculations and consuming much memory for creating large
constants in constant folding. Increased limits for constants that can be
produced in constant folding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32282">bpo-32282</a>: Fix an unnecessary ifdef in the include of VersionHelpers.h in
socketmodule on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30579">bpo-30579</a>: Implement TracebackType.__new__ to allow Python-level creation
of traceback objects, and make TracebackType.tb_next mutable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32260">bpo-32260</a>: Don’t byte swap the input keys to the SipHash algorithm on
big-endian platforms. This should ensure siphash gives consistent results
across platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31506">bpo-31506</a>: Improve the error message logic for object.__new__ and
object.__init__. Patch by Sanyam Khurana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20361">bpo-20361</a>: <code class="docutils literal notranslate"><span class="pre">-b</span></code> and <code class="docutils literal notranslate"><span class="pre">-bb</span></code> now inject <code class="docutils literal notranslate"><span class="pre">'default::BytesWarning'</span></code> and
<code class="docutils literal notranslate"><span class="pre">error::BytesWarning</span></code> entries into <code class="docutils literal notranslate"><span class="pre">sys.warnoptions</span></code>, ensuring that
they take precedence over any other warning filters configured via the
<code class="docutils literal notranslate"><span class="pre">-W</span></code> option or the <code class="docutils literal notranslate"><span class="pre">PYTHONWARNINGS</span></code> environment variable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32230">bpo-32230</a>: <code class="docutils literal notranslate"><span class="pre">-X</span> <span class="pre">dev</span></code> now injects a <code class="docutils literal notranslate"><span class="pre">'default'</span></code> entry into
sys.warnoptions, ensuring that it behaves identically to actually passing
<code class="docutils literal notranslate"><span class="pre">-Wdefault</span></code> at the command line.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29240">bpo-29240</a>: Add a new UTF-8 mode: implementation of the <span class="target" id="index-383"></span><a class="pep reference external" href="https://peps.python.org/pep-0540/"><strong>PEP 540</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32226">bpo-32226</a>: <span class="target" id="index-384"></span><a class="pep reference external" href="https://peps.python.org/pep-0560/"><strong>PEP 560</strong></a>: Add support for <code class="docutils literal notranslate"><span class="pre">__mro_entries__</span></code> and
<code class="docutils literal notranslate"><span class="pre">__class_getitem__</span></code>. Implemented by Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32225">bpo-32225</a>: <span class="target" id="index-385"></span><a class="pep reference external" href="https://peps.python.org/pep-0562/"><strong>PEP 562</strong></a>: Add support for module <code class="docutils literal notranslate"><span class="pre">__getattr__</span></code> and
<code class="docutils literal notranslate"><span class="pre">__dir__</span></code>. Implemented by Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31901">bpo-31901</a>: The <code class="docutils literal notranslate"><span class="pre">atexit</span></code> module now has its callback stored per
interpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31650">bpo-31650</a>: Implement <span class="target" id="index-386"></span><a class="pep reference external" href="https://peps.python.org/pep-0552/"><strong>PEP 552</strong></a> (Deterministic pycs). Python now supports
invalidating bytecode cache files bashed on a source content hash rather
than source last-modified time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29469">bpo-29469</a>: Move constant folding from bytecode layer to AST layer.
Original patch by Eugene Toder.</p></li>
</ul>
</section>
<section id="id579">
<h3>Library<a class="headerlink" href="#id579" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32506">bpo-32506</a>: Now that dict is defined as keeping insertion order, drop
OrderedDict and just use plain dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32279">bpo-32279</a>: Add params to dataclasses.make_dataclasses(): init, repr, eq,
order, hash, and frozen. Pass them through to dataclass().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32278">bpo-32278</a>: Make type information optional on dataclasses.make_dataclass().
If omitted, the string ‘typing.Any’ is used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32499">bpo-32499</a>: Add dataclasses.is_dataclass(obj), which returns True if obj is
a dataclass or an instance of one.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32468">bpo-32468</a>: Improve frame repr() to mention filename, code name and current
line number.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23749">bpo-23749</a>: asyncio: Implement loop.start_tls()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32441">bpo-32441</a>: Return the new file descriptor (i.e., the second argument) from
<code class="docutils literal notranslate"><span class="pre">os.dup2</span></code>. Previously, <code class="docutils literal notranslate"><span class="pre">None</span></code> was always returned.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32422">bpo-32422</a>: <code class="docutils literal notranslate"><span class="pre">functools.lru_cache</span></code> uses less memory (3 words for each
cached key) and takes about 1/3 time for cyclic GC.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31721">bpo-31721</a>: Prevent Python crash from happening when Future._log_traceback
is set to True manually. Now it can only be set to False, or a ValueError
is raised.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32415">bpo-32415</a>: asyncio: Add Task.get_loop() and Future.get_loop()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26133">bpo-26133</a>: Don’t unsubscribe signals in asyncio UNIX event loop on
interpreter shutdown.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32363">bpo-32363</a>: Make asyncio.Task.set_exception() and set_result() raise
NotImplementedError. Task._step() and Future.__await__() raise proper
exceptions when they are in an invalid state, instead of raising an
AssertionError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32357">bpo-32357</a>: Optimize asyncio.iscoroutine() and loop.create_task() for
non-native coroutines (e.g. async/await compiled with Cython).
‘loop.create_task(python_coroutine)’ used to be 20% faster than
‘loop.create_task(cython_coroutine)’. Now, the latter is as fast.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32356">bpo-32356</a>: asyncio.transport.resume_reading() and pause_reading() are now
idempotent. New transport.is_reading() method is added.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32355">bpo-32355</a>: Optimize asyncio.gather(); now up to 15% faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32351">bpo-32351</a>: Use fastpath in asyncio.sleep if delay<0 (2x boost)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32348">bpo-32348</a>: Optimize asyncio.Future schedule/add/remove callback. The
optimization shows 3-6% performance improvements of async/await code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32331">bpo-32331</a>: Fix socket.settimeout() and socket.setblocking() to keep
socket.type as is. Fix socket.socket() constructor to reset any bit flags
applied to socket’s type. This change only affects OSes that have
SOCK_NONBLOCK and/or SOCK_CLOEXEC.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32248">bpo-32248</a>: Add <a class="reference internal" href="../library/importlib.html#importlib.abc.ResourceReader" title="importlib.abc.ResourceReader"><code class="xref py py-class docutils literal notranslate"><span class="pre">importlib.abc.ResourceReader</span></code></a> as an ABC for loaders
to provide a unified API for reading resources contained within packages.
Also add <a class="reference internal" href="../library/importlib.resources.html#module-importlib.resources" title="importlib.resources: Package resource reading, opening, and access"><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib.resources</span></code></a> as the port of
<code class="docutils literal notranslate"><span class="pre">importlib_resources</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32311">bpo-32311</a>: Implement asyncio.create_task(coro) shortcut</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32327">bpo-32327</a>: Convert asyncio functions that were documented as coroutines to
coroutines. Affected functions: loop.sock_sendall, loop.sock_recv,
loop.sock_accept, loop.getaddrinfo, loop.getnameinfo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32323">bpo-32323</a>: <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlsplit" title="urllib.parse.urlsplit"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlsplit()</span></code></a> does not convert zone-id (scope)
to lower case for scoped IPv6 addresses in hostnames now.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32302">bpo-32302</a>: Fix bdist_wininst of distutils for CRT v142: it binary
compatible with CRT v140.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29711">bpo-29711</a>: Fix <code class="docutils literal notranslate"><span class="pre">stop_serving</span></code> in asyncio proactor loop kill all
listening servers</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32308">bpo-32308</a>: <a class="reference internal" href="../library/re.html#re.sub" title="re.sub"><code class="xref py py-func docutils literal notranslate"><span class="pre">re.sub()</span></code></a> now replaces empty matches adjacent to a
previous non-empty match.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29970">bpo-29970</a>: Abort asyncio SSLProtocol connection if handshake not complete
within 10 seconds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32314">bpo-32314</a>: Implement asyncio.run().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17852">bpo-17852</a>: Revert incorrect fix based on misunderstanding of
_Py_PyAtExit() semantics.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32296">bpo-32296</a>: Implement asyncio._get_running_loop() and get_event_loop() in
C. This makes them 4x faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32250">bpo-32250</a>: Implement <code class="docutils literal notranslate"><span class="pre">asyncio.current_task()</span></code> and
<code class="docutils literal notranslate"><span class="pre">asyncio.all_tasks()</span></code>. Add helpers intended to be used by alternative
task implementations: <code class="docutils literal notranslate"><span class="pre">asyncio._register_task</span></code>, <code class="docutils literal notranslate"><span class="pre">asyncio._enter_task</span></code>,
<code class="docutils literal notranslate"><span class="pre">asyncio._leave_task</span></code> and <code class="docutils literal notranslate"><span class="pre">asyncio._unregister_task</span></code>. Deprecate
<code class="docutils literal notranslate"><span class="pre">asyncio.Task.current_task()</span></code> and <code class="docutils literal notranslate"><span class="pre">asyncio.Task.all_tasks()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32255">bpo-32255</a>: A single empty field is now always quoted when written into a
CSV file. This allows to distinguish an empty row from a row consisting of
a single empty field. Patch by Licht Takeuchi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32277">bpo-32277</a>: Raise <code class="docutils literal notranslate"><span class="pre">NotImplementedError</span></code> instead of <code class="docutils literal notranslate"><span class="pre">SystemError</span></code> on
platforms where <code class="docutils literal notranslate"><span class="pre">chmod(...,</span> <span class="pre">follow_symlinks=False)</span></code> is not supported.
Patch by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30050">bpo-30050</a>: New argument warn_on_full_buffer to signal.set_wakeup_fd lets
you control whether Python prints a warning on stderr when the wakeup fd
buffer overflows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29137">bpo-29137</a>: The <code class="docutils literal notranslate"><span class="pre">fpectl</span></code> library has been removed. It was never enabled
by default, never worked correctly on x86-64, and it changed the Python
ABI in ways that caused unexpected breakage of C extensions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32273">bpo-32273</a>: Move asyncio.test_utils to test.test_asyncio.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32272">bpo-32272</a>: Remove asyncio.async() function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32269">bpo-32269</a>: Add asyncio.get_running_loop() function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32265">bpo-32265</a>: All class and static methods of builtin types now are correctly
classified by inspect.classify_class_attrs() and grouped in pydoc output.
Added types.ClassMethodDescriptorType for unbound class methods of builtin
types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32253">bpo-32253</a>: Deprecate <code class="docutils literal notranslate"><span class="pre">yield</span> <span class="pre">from</span> <span class="pre">lock</span></code>, <code class="docutils literal notranslate"><span class="pre">await</span> <span class="pre">lock</span></code>, <code class="docutils literal notranslate"><span class="pre">with</span> <span class="pre">(yield</span>
<span class="pre">from</span> <span class="pre">lock)</span></code> and <code class="docutils literal notranslate"><span class="pre">with</span> <span class="pre">await</span> <span class="pre">lock</span></code> for asyncio synchronization
primitives.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22589">bpo-22589</a>: Changed MIME type of .bmp from ‘image/x-ms-bmp’ to ‘image/bmp’</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32193">bpo-32193</a>: Convert asyncio to use <em>async/await</em> syntax. Old styled <code class="docutils literal notranslate"><span class="pre">yield</span>
<span class="pre">from</span></code> is still supported too.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32206">bpo-32206</a>: Add support to run modules with pdb</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32227">bpo-32227</a>: <code class="docutils literal notranslate"><span class="pre">functools.singledispatch</span></code> now supports registering
implementations using type annotations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15873">bpo-15873</a>: Added new alternate constructors
<a class="reference internal" href="../library/datetime.html#datetime.datetime.fromisoformat" title="datetime.datetime.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.datetime.fromisoformat()</span></code></a>,
<a class="reference internal" href="../library/datetime.html#datetime.time.fromisoformat" title="datetime.time.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.time.fromisoformat()</span></code></a> and
<a class="reference internal" href="../library/datetime.html#datetime.date.fromisoformat" title="datetime.date.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">datetime.date.fromisoformat()</span></code></a> as the inverse operation of each
classes’s respective <code class="docutils literal notranslate"><span class="pre">isoformat</span></code> methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32199">bpo-32199</a>: The getnode() ip getter now uses ‘ip link’ instead of ‘ip link
list’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32143">bpo-32143</a>: os.statvfs() includes the f_fsid field from statvfs(2)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26439">bpo-26439</a>: Fix ctypes.util.find_library() for AIX by implementing
ctypes._aix.find_library() Patch by: Michael Felt</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31993">bpo-31993</a>: The pickler now uses less memory when serializing large bytes
and str objects into a file. Pickles created with protocol 4 will require
less memory for unpickling large bytes and str objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27456">bpo-27456</a>: Ensure TCP_NODELAY is set on Linux. Tests by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31778">bpo-31778</a>: ast.literal_eval() is now more strict. Addition and subtraction
of arbitrary numbers no longer allowed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31802">bpo-31802</a>: Importing native path module (<code class="docutils literal notranslate"><span class="pre">posixpath</span></code>, <code class="docutils literal notranslate"><span class="pre">ntpath</span></code>) now
works even if the <code class="docutils literal notranslate"><span class="pre">os</span></code> module still is not imported.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30241">bpo-30241</a>: Add contextlib.AbstractAsyncContextManager. Patch by Jelle
Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31699">bpo-31699</a>: Fix deadlocks in
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor</span></code></a> when task arguments or
results cause pickling or unpickling errors. This should make sure that
calls to the <code class="xref py py-class docutils literal notranslate"><span class="pre">ProcessPoolExecutor</span></code> API always eventually return.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15216">bpo-15216</a>: <code class="docutils literal notranslate"><span class="pre">TextIOWrapper.reconfigure()</span></code> supports changing <em>encoding</em>,
<em>errors</em>, and <em>newline</em>.</p></li>
</ul>
</section>
<section id="id580">
<h3>Documentation<a class="headerlink" href="#id580" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32418">bpo-32418</a>: Add get_loop() method to Server and AbstractServer classes.</p></li>
</ul>
</section>
<section id="id581">
<h3>Tests<a class="headerlink" href="#id581" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32252">bpo-32252</a>: Fix faulthandler_suppress_crash_report() used to prevent core
dump files when testing crashes. getrlimit() returns zero on success.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32002">bpo-32002</a>: Adjust C locale coercion testing for the empty locale and POSIX
locale cases to more readily adjust to platform dependent behaviour.</p></li>
</ul>
</section>
<section id="id582">
<h3>Windows<a class="headerlink" href="#id582" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19764">bpo-19764</a>: Implement support for <code class="docutils literal notranslate"><span class="pre">subprocess.Popen(close_fds=True)</span></code> on
Windows. Patch by Segev Finer.</p></li>
</ul>
</section>
<section id="id583">
<h3>Tools/Demos<a class="headerlink" href="#id583" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24960">bpo-24960</a>: 2to3 and lib2to3 can now read pickled grammar files using
pkgutil.get_data() rather than probing the filesystem. This lets 2to3 and
lib2to3 work when run from a zipfile.</p></li>
</ul>
</section>
<section id="id584">
<h3>C API<a class="headerlink" href="#id584" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32030">bpo-32030</a>: Py_Initialize() doesn’t reset the memory allocators to default
if the <code class="docutils literal notranslate"><span class="pre">PYTHONMALLOC</span></code> environment variable is not set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29084">bpo-29084</a>: Undocumented C API for OrderedDict has been excluded from the
limited C API. It was added by mistake and actually never worked in the
limited C API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32264">bpo-32264</a>: Moved the pygetopt.h header into internal/, since it has no
public APIs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32241">bpo-32241</a>: <code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetProgramName()</span></code> and <code class="xref c c-func docutils literal notranslate"><span class="pre">Py_SetPythonHome()</span></code>
now take the <code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">wchar</span> <span class="pre">*</span></code> arguments instead of <code class="docutils literal notranslate"><span class="pre">wchar</span> <span class="pre">*</span></code>.</p></li>
</ul>
</section>
</section>
<section id="python-3-7-0-alpha-3">
<h2>Python 3.7.0 alpha 3<a class="headerlink" href="#python-3-7-0-alpha-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-12-05</em></p>
<section id="id585">
<h3>Core and Builtins<a class="headerlink" href="#id585" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32176">bpo-32176</a>: co_flags.CO_NOFREE is now always set correctly by the code
object constructor based on freevars and cellvars, rather than needing to
be set correctly by the caller. This ensures it will be cleared
automatically when additional cell references are injected into a modified
code object and function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10544">bpo-10544</a>: Yield expressions are now deprecated in comprehensions and
generator expressions. They are still permitted in the definition of the
outermost iterable, as that is evaluated directly in the enclosing scope.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32137">bpo-32137</a>: The repr of deeply nested dict now raises a RecursionError
instead of crashing due to a stack overflow.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32096">bpo-32096</a>: Revert memory allocator changes in the C API: move structures
back from _PyRuntime to Objects/obmalloc.c. The memory allocators are once
again initialized statically, and so PyMem_RawMalloc() and
Py_DecodeLocale() can be called before _PyRuntime_Initialize().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32043">bpo-32043</a>: Add a new “developer mode”: new “-X dev” command line option to
enable debug checks at runtime.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32023">bpo-32023</a>: SyntaxError is now correctly raised when a generator expression
without parenthesis is used instead of an inheritance list in a class
definition. The duplication of the parentheses can be omitted only on
calls.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32012">bpo-32012</a>: SyntaxError is now correctly raised when a generator expression
without parenthesis is passed as an argument, but followed by a trailing
comma. A generator expression always needs to be directly inside a set of
parentheses and cannot have a comma on either side.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28180">bpo-28180</a>: A new internal <code class="docutils literal notranslate"><span class="pre">_Py_SetLocaleFromEnv(category)</span></code> helper
function has been added in order to improve the consistency of behaviour
across different <code class="docutils literal notranslate"><span class="pre">libc</span></code> implementations (e.g. Android doesn’t support
setting the locale from the environment by default).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31949">bpo-31949</a>: Fixed several issues in printing tracebacks
(PyTraceBack_Print()). Setting sys.tracebacklimit to 0 or less now
suppresses printing tracebacks. Setting sys.tracebacklimit to None now
causes using the default limit. Setting sys.tracebacklimit to an integer
larger than LONG_MAX now means using the limit LONG_MAX rather than the
default limit. Fixed integer overflows in the case of more than <code class="docutils literal notranslate"><span class="pre">2**31</span></code>
traceback items on Windows. Fixed output errors handling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30696">bpo-30696</a>: Fix the interactive interpreter looping endlessly when no
memory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20047">bpo-20047</a>: Bytearray methods partition() and rpartition() now accept only
bytes-like objects as separator, as documented. In particular they now
raise TypeError rather of returning a bogus result when an integer is
passed as a separator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21720">bpo-21720</a>: BytesWarning no longer emitted when the <em>fromlist</em> argument of
<code class="docutils literal notranslate"><span class="pre">__import__()</span></code> or the <code class="docutils literal notranslate"><span class="pre">__all__</span></code> attribute of the module contain bytes
instances.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31845">bpo-31845</a>: Environment variables are once more read correctly at
interpreter startup.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28936">bpo-28936</a>: Ensure that lexically first syntax error involving a parameter
and <code class="docutils literal notranslate"><span class="pre">global</span></code> or <code class="docutils literal notranslate"><span class="pre">nonlocal</span></code> is detected first at a given scope. Patch
by Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31825">bpo-31825</a>: Fixed OverflowError in the ‘unicode-escape’ codec and in
codecs.escape_decode() when decode an escaped non-ascii byte.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31618">bpo-31618</a>: The per-frame tracing logic added in 3.7a1 has been altered so
that <code class="docutils literal notranslate"><span class="pre">frame->f_lineno</span></code> is updated before either <code class="docutils literal notranslate"><span class="pre">"line"</span></code> or
<code class="docutils literal notranslate"><span class="pre">"opcode"</span></code> events are emitted. Previously, opcode events were emitted
first, and therefore would occasionally see stale line numbers on the
frame. The behavior of this feature has changed slightly as a result: when
both <code class="docutils literal notranslate"><span class="pre">f_trace_lines</span></code> and <code class="docutils literal notranslate"><span class="pre">f_trace_opcodes</span></code> are enabled, line events
now occur first.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28603">bpo-28603</a>: Print the full context/cause chain of exceptions on interpreter
exit, even if an exception in the chain is unhashable or compares equal to
later ones. Patch by Zane Bitter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31786">bpo-31786</a>: Fix timeout rounding in the select module to round correctly
negative timeouts between -1.0 and 0.0. The functions now block waiting
for events as expected. Previously, the call was incorrectly non-blocking.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31781">bpo-31781</a>: Prevent crashes when calling methods of an uninitialized
<code class="docutils literal notranslate"><span class="pre">zipimport.zipimporter</span></code> object. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30399">bpo-30399</a>: Standard repr() of BaseException with a single argument no
longer contains redundant trailing comma.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31626">bpo-31626</a>: Fixed a bug in debug memory allocator. There was a write to
freed memory after shrinking a memory block.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30817">bpo-30817</a>: <code class="docutils literal notranslate"><span class="pre">PyErr_PrintEx()</span></code> clears now the ignored exception that may
be raised by <code class="docutils literal notranslate"><span class="pre">_PySys_SetObjectId()</span></code>, for example when no memory.</p></li>
</ul>
</section>
<section id="id586">
<h3>Library<a class="headerlink" href="#id586" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Two minor fixes for <code class="docutils literal notranslate"><span class="pre">typing</span></code> module: allow shallow copying
instances of generic classes, improve interaction of <code class="docutils literal notranslate"><span class="pre">__init_subclass__</span></code>
with generics. Original PRs by Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32214">bpo-32214</a>: PEP 557, Data Classes. Provides a decorator which adds
boilerplate methods to classes which use type annotations so specify
fields.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27240">bpo-27240</a>: The header folding algorithm for the new email policies has
been rewritten, which also fixes <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30788">bpo-30788</a>, <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31831">bpo-31831</a>, and <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32182">bpo-32182</a>. In
particular, RFC2231 folding is now done correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32186">bpo-32186</a>: io.FileIO.readall() and io.FileIO.read() now release the GIL
when getting the file size. Fixed hang of all threads with inaccessible
NFS server. Patch by Nir Soffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32101">bpo-32101</a>: Add <a class="reference internal" href="../library/sys.html#sys.flags.dev_mode" title="sys.flags.dev_mode"><code class="xref py py-attr docutils literal notranslate"><span class="pre">sys.flags.dev_mode</span></code></a> flag</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32154">bpo-32154</a>: The <code class="docutils literal notranslate"><span class="pre">asyncio.windows_utils.socketpair()</span></code> function has been
removed: use directly <a class="reference internal" href="../library/socket.html#socket.socketpair" title="socket.socketpair"><code class="xref py py-func docutils literal notranslate"><span class="pre">socket.socketpair()</span></code></a> which is available on all
platforms since Python 3.5 (before, it wasn’t available on Windows).
<code class="docutils literal notranslate"><span class="pre">asyncio.windows_utils.socketpair()</span></code> was just an alias to
<code class="docutils literal notranslate"><span class="pre">socket.socketpair</span></code> on Python 3.5 and newer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32089">bpo-32089</a>: warnings: In development (-X dev) and debug mode (pydebug
build), use the “default” action for ResourceWarning, rather than the
“always” action, in the default warnings filters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32107">bpo-32107</a>: <code class="docutils literal notranslate"><span class="pre">uuid.getnode()</span></code> now preferentially returns universally
administered MAC addresses if available, over locally administered MAC
addresses. This makes a better guarantee for global uniqueness of UUIDs
returned from <code class="docutils literal notranslate"><span class="pre">uuid.uuid1()</span></code>. If only locally administered MAC
addresses are available, the first such one found is returned.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23033">bpo-23033</a>: Wildcard is now supported in hostname when it is one and only
character in the left most segment of hostname in second argument of
<code class="xref py py-meth docutils literal notranslate"><span class="pre">ssl.match_hostname()</span></code>. Patch by Mandeep Singh.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12239">bpo-12239</a>: Make <code class="xref py py-meth docutils literal notranslate"><span class="pre">msilib.SummaryInformation.GetProperty()</span></code> return
<code class="docutils literal notranslate"><span class="pre">None</span></code> when the value of property is <code class="docutils literal notranslate"><span class="pre">VT_EMPTY</span></code>. Initial patch by
Mark Mc Mahon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28334">bpo-28334</a>: Use <a class="reference internal" href="../library/os.path.html#os.path.expanduser" title="os.path.expanduser"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.path.expanduser()</span></code></a> to find the <code class="docutils literal notranslate"><span class="pre">~/.netrc</span></code> file in
<a class="reference internal" href="../library/netrc.html#netrc.netrc" title="netrc.netrc"><code class="xref py py-class docutils literal notranslate"><span class="pre">netrc.netrc</span></code></a>. If it does not exist, <a class="reference internal" href="../library/exceptions.html#FileNotFoundError" title="FileNotFoundError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">FileNotFoundError</span></code></a> is
raised. Patch by Dimitri Merejkowsky.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32121">bpo-32121</a>: Made <code class="docutils literal notranslate"><span class="pre">tracemalloc.Traceback</span></code> behave more like the traceback
module, sorting the frames from oldest to most recent.
<code class="docutils literal notranslate"><span class="pre">Traceback.format()</span></code> now accepts negative <em>limit</em>, truncating the result
to the <code class="docutils literal notranslate"><span class="pre">abs(limit)</span></code> oldest frames. To get the old behaviour, one can use
the new <em>most_recent_first</em> argument to <code class="docutils literal notranslate"><span class="pre">Traceback.format()</span></code>. (Patch by
Jesse Bakker.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31325">bpo-31325</a>: Fix wrong usage of <a class="reference internal" href="../library/collections.html#collections.namedtuple" title="collections.namedtuple"><code class="xref py py-func docutils literal notranslate"><span class="pre">collections.namedtuple()</span></code></a> in the
<a class="reference internal" href="../library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.parse" title="urllib.robotparser.RobotFileParser.parse"><code class="xref py py-meth docutils literal notranslate"><span class="pre">RobotFileParser.parse()</span></code></a>
method. Initial patch by Robin Wellner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12382">bpo-12382</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">msilib.OpenDatabase()</span></code> now raises a better exception
message when it couldn’t open or create an MSI file. Initial patch by
William Tisäter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19610">bpo-19610</a>: <code class="docutils literal notranslate"><span class="pre">setup()</span></code> now warns about invalid types for some fields. The
<code class="docutils literal notranslate"><span class="pre">distutils.dist.Distribution</span></code> class now warns when <code class="docutils literal notranslate"><span class="pre">classifiers</span></code>,
<code class="docutils literal notranslate"><span class="pre">keywords</span></code> and <code class="docutils literal notranslate"><span class="pre">platforms</span></code> fields are not specified as a list or a
string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32071">bpo-32071</a>: Added the <code class="docutils literal notranslate"><span class="pre">-k</span></code> command-line option to <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">unittest</span></code>
to run only tests that match the given pattern(s).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10049">bpo-10049</a>: Added <em>nullcontext</em> no-op context manager to contextlib. This
provides a simpler and faster alternative to ExitStack() when handling
optional context managers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28684">bpo-28684</a>: The new test.support.skip_unless_bind_unix_socket() decorator
is used here to skip asyncio tests that fail because the platform lacks a
functional bind() function for unix domain sockets (as it is the case for
non root users on the recent Android versions that run now SELinux in
enforcing mode).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32110">bpo-32110</a>: <code class="docutils literal notranslate"><span class="pre">codecs.StreamReader.read(n)</span></code> now returns not more than <em>n</em>
characters/bytes for non-negative <em>n</em>. This makes it compatible with
<code class="docutils literal notranslate"><span class="pre">read()</span></code> methods of other file-like objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27535">bpo-27535</a>: The warnings module doesn’t leak memory anymore in the hidden
warnings registry for the “ignore” action of warnings filters.
warn_explicit() function doesn’t add the warning key to the registry
anymore for the “ignore” action.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32088">bpo-32088</a>: warnings: When Python is build is debug mode (<code class="docutils literal notranslate"><span class="pre">Py_DEBUG</span></code>),
<a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a>, <a class="reference internal" href="../library/exceptions.html#PendingDeprecationWarning" title="PendingDeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">PendingDeprecationWarning</span></code></a> and
<a class="reference internal" href="../library/exceptions.html#ImportWarning" title="ImportWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportWarning</span></code></a> warnings are now displayed by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1647489">bpo-1647489</a>: Fixed searching regular expression patterns that could match
an empty string. Non-empty string can now be correctly found after
matching an empty string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25054">bpo-25054</a>: Added support of splitting on a pattern that could match an
empty string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32072">bpo-32072</a>: Fixed issues with binary plists: Fixed saving bytearrays.
Identical objects will be saved only once. Equal references will be load
as identical objects. Added support for saving and loading recursive data
structures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32069">bpo-32069</a>: Drop legacy SSL transport from asyncio, ssl.MemoryBIO is always
used anyway.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32066">bpo-32066</a>: asyncio: Support pathlib.Path in create_unix_connection; sock
arg should be optional</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32046">bpo-32046</a>: Updates 2to3 to convert from operator.isCallable(obj) to
callable(obj). Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32018">bpo-32018</a>: inspect.signature should follow <span class="target" id="index-387"></span><a class="pep reference external" href="https://peps.python.org/pep-0008/"><strong>PEP 8</strong></a>, if the parameter has
an annotation and a default value. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32025">bpo-32025</a>: Add time.thread_time() and time.thread_time_ns()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32037">bpo-32037</a>: Integers that fit in a signed 32-bit integer will be now
pickled with protocol 0 using the INT opcode. This will decrease the size
of a pickle, speed up pickling and unpickling, and make these integers be
unpickled as int instances in Python 2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32034">bpo-32034</a>: Make asyncio.IncompleteReadError and LimitOverrunError
pickleable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32015">bpo-32015</a>: Fixed the looping of asyncio in the case of reconnection the
socket during waiting async read/write from/to the socket.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32011">bpo-32011</a>: Restored support of loading marshal files with the TYPE_INT64
code. These files can be produced in Python 2.7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28369">bpo-28369</a>: Enhance add_reader/writer check that socket is not used by some
transport. Before, only cases when add_reader/writer were called with an
int FD were supported. Now the check is implemented correctly for all
file-like objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31976">bpo-31976</a>: Fix race condition when flushing a file is slow, which can
cause a segfault if closing the file from another thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31985">bpo-31985</a>: Formally deprecated aifc.openfp, sunau.openfp, and wave.openfp.
Since change 7bc817d5ba917528e8bd07ec461c635291e7b06a in 1993, openfp in
each of the three modules had been pointing to that module’s open function
as a matter of backwards compatibility, though it had been both untested
and undocumented.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21862">bpo-21862</a>: cProfile command line now accepts <code class="docutils literal notranslate"><span class="pre">-m</span> <span class="pre">module_name</span></code> as an
alternative to script path. Patch by Sanyam Khurana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31970">bpo-31970</a>: Reduce performance overhead of asyncio debug mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31843">bpo-31843</a>: <em>database</em> argument of sqlite3.connect() now accepts a
<a class="reference internal" href="../glossary.html#term-path-like-object"><span class="xref std std-term">path-like object</span></a>, instead of just a string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31945">bpo-31945</a>: Add Configurable <em>blocksize</em> to <code class="docutils literal notranslate"><span class="pre">HTTPConnection</span></code> and
<code class="docutils literal notranslate"><span class="pre">HTTPSConnection</span></code> for improved upload throughput. Patch by Nir Soffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31943">bpo-31943</a>: Add a <code class="docutils literal notranslate"><span class="pre">cancelled()</span></code> method to <a class="reference internal" href="../library/asyncio-eventloop.html#asyncio.Handle" title="asyncio.Handle"><code class="xref py py-class docutils literal notranslate"><span class="pre">asyncio.Handle</span></code></a>. Patch
by Marat Sharafutdinov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9678">bpo-9678</a>: Fixed determining the MAC address in the uuid module: Using
ifconfig on NetBSD and OpenBSD. Using arp on Linux, FreeBSD, NetBSD and
OpenBSD. Based on patch by Takayuki Shimizukawa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30057">bpo-30057</a>: Fix potential missed signal in signal.signal().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31933">bpo-31933</a>: Fix Blake2 params leaf_size and node_offset on big endian
platforms. Patch by Jack O’Connor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21423">bpo-21423</a>: Add an initializer argument to {Process,Thread}PoolExecutor</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31927">bpo-31927</a>: Fixed compilation of the socket module on NetBSD 8. Fixed
assertion failure or reading arbitrary data when parse a AF_BLUETOOTH
address on NetBSD and DragonFly BSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27666">bpo-27666</a>: Fixed stack corruption in curses.box() and curses.ungetmouse()
when the size of types chtype or mmask_t is less than the size of C long.
curses.box() now accepts characters as arguments. Based on patch by Steve
Fink.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31917">bpo-31917</a>: Add 3 new clock identifiers: <a class="reference internal" href="../library/time.html#time.CLOCK_BOOTTIME" title="time.CLOCK_BOOTTIME"><code class="xref py py-const docutils literal notranslate"><span class="pre">time.CLOCK_BOOTTIME</span></code></a>,
<a class="reference internal" href="../library/time.html#time.CLOCK_PROF" title="time.CLOCK_PROF"><code class="xref py py-const docutils literal notranslate"><span class="pre">time.CLOCK_PROF</span></code></a> and <a class="reference internal" href="../library/time.html#time.CLOCK_UPTIME" title="time.CLOCK_UPTIME"><code class="xref py py-const docutils literal notranslate"><span class="pre">time.CLOCK_UPTIME</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31897">bpo-31897</a>: plistlib now catches more errors when read binary plists and
raises InvalidFileException instead of unexpected exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25720">bpo-25720</a>: Fix the method for checking pad state of curses WINDOW. Patch
by Masayuki Yamamoto.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31893">bpo-31893</a>: Fixed the layout of the kqueue_event structure on OpenBSD and
NetBSD. Fixed the comparison of the kqueue_event objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31891">bpo-31891</a>: Fixed building the curses module on NetBSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31884">bpo-31884</a>: added required constants to subprocess module for setting
priority on windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28281">bpo-28281</a>: Remove year (1-9999) limits on the Calendar.weekday() function.
Patch by Mark Gollahon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31702">bpo-31702</a>: crypt.mksalt() now allows to specify the number of rounds for
SHA-256 and SHA-512 hashing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30639">bpo-30639</a>: <a class="reference internal" href="../library/inspect.html#inspect.getfile" title="inspect.getfile"><code class="xref py py-func docutils literal notranslate"><span class="pre">inspect.getfile()</span></code></a> no longer computes the repr of unknown
objects to display in an error message, to protect against badly behaved
custom reprs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30768">bpo-30768</a>: Fix the pthread+semaphore implementation of
PyThread_acquire_lock_timed() when called with timeout > 0 and
intr_flag=0: recompute the timeout if sem_timedwait() is interrupted by a
signal (EINTR). See also the <span class="target" id="index-388"></span><a class="pep reference external" href="https://peps.python.org/pep-0475/"><strong>PEP 475</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31854">bpo-31854</a>: Add <code class="docutils literal notranslate"><span class="pre">mmap.ACCESS_DEFAULT</span></code> constant.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31834">bpo-31834</a>: Use optimized code for BLAKE2 only with SSSE3+. The pure SSE2
implementation is slower than the pure C reference implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28292">bpo-28292</a>: Calendar.itermonthdates() will now consistently raise an
exception when a date falls outside of the 0001-01-01 through 9999-12-31
range. To support applications that cannot tolerate such exceptions, the
new methods itermonthdays3() and itermonthdays4() are added. The new
methods return tuples and are not restricted by the range supported by
datetime.date.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28564">bpo-28564</a>: The shutil.rmtree() function has been sped up to 20–40%. This
was done using the os.scandir() function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28416">bpo-28416</a>: Instances of pickle.Pickler subclass with the persistent_id()
method and pickle.Unpickler subclass with the persistent_load() method no
longer create reference cycles.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31653">bpo-31653</a>: Don’t release the GIL if we can acquire a multiprocessing
semaphore immediately.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28326">bpo-28326</a>: Fix multiprocessing.Process when stdout and/or stderr is closed
or None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20825">bpo-20825</a>: Add <code class="docutils literal notranslate"><span class="pre">subnet_of</span></code> and <code class="docutils literal notranslate"><span class="pre">superset_of</span></code> containment tests to
<a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv6Network" title="ipaddress.IPv6Network"><code class="xref py py-class docutils literal notranslate"><span class="pre">ipaddress.IPv6Network</span></code></a> and <a class="reference internal" href="../library/ipaddress.html#ipaddress.IPv4Network" title="ipaddress.IPv4Network"><code class="xref py py-class docutils literal notranslate"><span class="pre">ipaddress.IPv4Network</span></code></a>. Patch
by Michel Albert and Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31827">bpo-31827</a>: Remove the os.stat_float_times() function. It was introduced in
Python 2.3 for backward compatibility with Python 2.2, and was deprecated
since Python 3.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31756">bpo-31756</a>: Add a <code class="docutils literal notranslate"><span class="pre">subprocess.Popen(text=False)</span></code> keyword argument to
<code class="docutils literal notranslate"><span class="pre">subprocess</span></code> functions to be more explicit about when the library should
attempt to decode outputs into text. Patch by Andrew Clegg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31819">bpo-31819</a>: Add AbstractEventLoop.sock_recv_into().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31457">bpo-31457</a>: If nested log adapters are used, the inner <code class="docutils literal notranslate"><span class="pre">process()</span></code>
methods are no longer omitted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31457">bpo-31457</a>: The <code class="docutils literal notranslate"><span class="pre">manager</span></code> property on LoggerAdapter objects is now
properly settable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31806">bpo-31806</a>: Fix timeout rounding in time.sleep(), threading.Lock.acquire()
and socket.socket.settimeout() to round correctly negative timeouts
between -1.0 and 0.0. The functions now block waiting for events as
expected. Previously, the call was incorrectly non-blocking. Patch by
Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31803">bpo-31803</a>: time.clock() and time.get_clock_info(‘clock’) now emit a
DeprecationWarning warning.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31800">bpo-31800</a>: Extended support for parsing UTC offsets. strptime ‘%z’ can now
parse the output generated by datetime.isoformat, including seconds and
microseconds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28603">bpo-28603</a>: traceback: Fix a TypeError that occurred during printing of
exception tracebacks when either the current exception or an exception in
its context/cause chain is unhashable. Patch by Zane Bitter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30541">bpo-30541</a>: Add new function to seal a mock and prevent the automatically
creation of child mocks. Patch by Mario Corchero.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31784">bpo-31784</a>: Implement the <span class="target" id="index-389"></span><a class="pep reference external" href="https://peps.python.org/pep-0564/"><strong>PEP 564</strong></a>, add new 6 new functions with
nanosecond resolution to the <a class="reference internal" href="../library/time.html#module-time" title="time: Time access and conversions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">time</span></code></a> module:
<a class="reference internal" href="../library/time.html#time.clock_gettime_ns" title="time.clock_gettime_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">clock_gettime_ns()</span></code></a>, <a class="reference internal" href="../library/time.html#time.clock_settime_ns" title="time.clock_settime_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">clock_settime_ns()</span></code></a>,
<a class="reference internal" href="../library/time.html#time.monotonic_ns" title="time.monotonic_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">monotonic_ns()</span></code></a>, <a class="reference internal" href="../library/time.html#time.perf_counter_ns" title="time.perf_counter_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">perf_counter_ns()</span></code></a>,
<a class="reference internal" href="../library/time.html#time.process_time_ns" title="time.process_time_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">process_time_ns()</span></code></a>, <a class="reference internal" href="../library/time.html#time.time_ns" title="time.time_ns"><code class="xref py py-func docutils literal notranslate"><span class="pre">time_ns()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30143">bpo-30143</a>: 2to3 now generates a code that uses abstract collection classes
from collections.abc rather than collections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31770">bpo-31770</a>: Prevent a crash when calling the <code class="docutils literal notranslate"><span class="pre">__init__()</span></code> method of a
<code class="docutils literal notranslate"><span class="pre">sqlite3.Cursor</span></code> object more than once. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31764">bpo-31764</a>: Prevent a crash in <code class="docutils literal notranslate"><span class="pre">sqlite3.Cursor.close()</span></code> in case the
<code class="docutils literal notranslate"><span class="pre">Cursor</span></code> object is uninitialized. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31752">bpo-31752</a>: Fix possible crash in timedelta constructor called with custom
integers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31620">bpo-31620</a>: an empty asyncio.Queue now doesn’t leak memory when queue.get
pollers timeout</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31690">bpo-31690</a>: Allow the flags re.ASCII, re.LOCALE, and re.UNICODE to be used
as group flags for regular expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30349">bpo-30349</a>: FutureWarning is now emitted if a regular expression contains
character set constructs that will change semantically in the future
(nested sets and set operations).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31664">bpo-31664</a>: Added support for the Blowfish hashing in the crypt module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31632">bpo-31632</a>: Fix method set_protocol() of class _SSLProtocolTransport in
asyncio module. This method was previously modifying a wrong reference to
the protocol.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15037">bpo-15037</a>: Added a workaround for getkey() in curses for ncurses 5.7 and
earlier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31307">bpo-31307</a>: Allow use of bytes objects for arguments to
<a class="reference internal" href="../library/configparser.html#configparser.ConfigParser.read" title="configparser.ConfigParser.read"><code class="xref py py-meth docutils literal notranslate"><span class="pre">configparser.ConfigParser.read()</span></code></a>. Patch by Vincent Michel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31334">bpo-31334</a>: Fix <code class="docutils literal notranslate"><span class="pre">poll.poll([timeout])</span></code> in the <code class="docutils literal notranslate"><span class="pre">select</span></code> module for
arbitrary negative timeouts on all OSes where it can only be a
non-negative integer or -1. Patch by Riccardo Coccioli.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31310">bpo-31310</a>: multiprocessing’s semaphore tracker should be launched again if
crashed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31308">bpo-31308</a>: Make multiprocessing’s forkserver process immune to Ctrl-C and
other user interruptions. If it crashes, restart it when necessary.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31245">bpo-31245</a>: Added support for AF_UNIX socket in asyncio
<code class="docutils literal notranslate"><span class="pre">create_datagram_endpoint</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30553">bpo-30553</a>: Add HTTP/2 status code 421 (Misdirected Request) to
<a class="reference internal" href="../library/http.html#http.HTTPStatus" title="http.HTTPStatus"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.HTTPStatus</span></code></a>. Patch by Vitor Pereira.</p></li>
</ul>
</section>
<section id="id587">
<h3>Documentation<a class="headerlink" href="#id587" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32105">bpo-32105</a>: Added asyncio.BaseEventLoop.connect_accepted_socket
versionadded marker.</p></li>
</ul>
</section>
<section id="id588">
<h3>Tests<a class="headerlink" href="#id588" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31380">bpo-31380</a>: Skip test_httpservers test_undecodable_file on macOS: fails on
APFS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31705">bpo-31705</a>: Skip test_socket.test_sha256() on Linux kernel older than 4.5.
The test fails with ENOKEY on kernel 3.10 (on ppc64le). A fix was merged
into the kernel 4.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32138">bpo-32138</a>: Skip on Android test_faulthandler tests that raise SIGSEGV and
remove the test.support.requires_android_level decorator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32136">bpo-32136</a>: The runtime embedding tests have been split out from
<code class="docutils literal notranslate"><span class="pre">Lib/test/test_capi.py</span></code> into a new <code class="docutils literal notranslate"><span class="pre">Lib/test/test_embed.py</span></code> file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28668">bpo-28668</a>: test.support.requires_multiprocessing_queue is removed. Skip
tests with test.support.import_module(‘multiprocessing.synchronize’)
instead when the semaphore implementation is broken or missing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32126">bpo-32126</a>: Skip test_get_event_loop_new_process in
test.test_asyncio.test_events when sem_open() is not functional.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31174">bpo-31174</a>: Fix test_tools.test_unparse: DirectoryTestCase now stores the
names sample to always test the same files. It prevents false alarms when
hunting reference leaks.</p></li>
</ul>
</section>
<section id="id589">
<h3>Build<a class="headerlink" href="#id589" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28538">bpo-28538</a>: Revert the previous changes, the if_nameindex structure is
defined by Unified Headers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28762">bpo-28762</a>: Revert the last commit, the F_LOCK macro is defined by Android
Unified Headers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29040">bpo-29040</a>: Support building Android with Unified Headers. The first NDK
release to support Unified Headers is android-ndk-r14.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32059">bpo-32059</a>: <code class="docutils literal notranslate"><span class="pre">detect_modules()</span></code> in <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> now also searches the
sysroot paths when cross-compiling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31957">bpo-31957</a>: Fixes Windows SDK version detection when building for Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31609">bpo-31609</a>: Fixes quotes in PCbuild/clean.bat</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31934">bpo-31934</a>: Abort the build when building out of a not clean source tree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31926">bpo-31926</a>: Fixed Argument Clinic sometimes causing compilation errors when
there was more than one function and/or method in a .c file with the same
name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28791">bpo-28791</a>: Update Windows builds to use SQLite 3.21.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28791">bpo-28791</a>: Update OS X installer to use SQLite 3.21.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28643">bpo-28643</a>: Record profile-opt build progress with stamp files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31866">bpo-31866</a>: Finish removing support for AtheOS.</p></li>
</ul>
</section>
<section id="id590">
<h3>Windows<a class="headerlink" href="#id590" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1102">bpo-1102</a>: Return <code class="docutils literal notranslate"><span class="pre">None</span></code> when <code class="docutils literal notranslate"><span class="pre">View.Fetch()</span></code> returns
<code class="docutils literal notranslate"><span class="pre">ERROR_NO_MORE_ITEMS</span></code> instead of raising <code class="docutils literal notranslate"><span class="pre">MSIError</span></code>. Initial patch by
Anthony Tuininga.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31944">bpo-31944</a>: Fixes Modify button in Apps and Features dialog.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20486">bpo-20486</a>: Implement the <code class="docutils literal notranslate"><span class="pre">Database.Close()</span></code> method to help closing MSI
database objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31857">bpo-31857</a>: Make the behavior of USE_STACKCHECK deterministic in a
multi-threaded environment.</p></li>
</ul>
</section>
<section id="id591">
<h3>macOS<a class="headerlink" href="#id591" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31392">bpo-31392</a>: Update macOS installer to use OpenSSL 1.0.2m</p></li>
</ul>
</section>
<section id="id592">
<h3>IDLE<a class="headerlink" href="#id592" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32207">bpo-32207</a>: Improve tk event exception tracebacks in IDLE. When tk event
handling is driven by IDLE’s run loop, a confusing and distracting
queue.EMPTY traceback context is no longer added to tk event exception
tracebacks. The traceback is now the same as when event handling is
driven by user code. Patch based on a suggestion by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32164">bpo-32164</a>: Delete unused file idlelib/tabbedpages.py. Use of TabbedPageSet
in configdialog was replaced by ttk.Notebook.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32100">bpo-32100</a>: IDLE: Fix old and new bugs in pathbrowser; improve tests. Patch
mostly by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31858">bpo-31858</a>: IDLE – Restrict shell prompt manipulation to the shell. Editor
and output windows only see an empty last prompt line. This simplifies
the code and fixes a minor bug when newline is inserted. Sys.ps1, if
present, is read on Shell start-up, but is not set or changed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31860">bpo-31860</a>: The font sample in the IDLE configuration dialog is now
editable. Changes persist while IDLE remains open</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31836">bpo-31836</a>: Test_code_module now passes if run after test_idle, which sets
ps1. The code module uses sys.ps1 if present or sets it to ‘>>> ‘ if not.
Test_code_module now properly tests both behaviors. Ditto for ps2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28603">bpo-28603</a>: Fix a TypeError that caused a shell restart when printing a
traceback that includes an exception that is unhashable. Patch by Zane
Bitter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13802">bpo-13802</a>: Use non-Latin characters in the IDLE’s Font settings sample.
Even if one selects a font that defines a limited subset of the unicode
Basic Multilingual Plane, tcl/tk will use other fonts that define a
character. The expanded example give users of non-Latin characters a
better idea of what they might see in IDLE’s shell and editors. To make
room for the expanded sample, frames on the Font tab are re-arranged. The
Font/Tabs help explains a bit about the additions.</p></li>
</ul>
</section>
<section id="id593">
<h3>Tools/Demos<a class="headerlink" href="#id593" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32159">bpo-32159</a>: Remove CVS and Subversion tools: remove svneol.py and
treesync.py scripts. CPython migrated from CVS to Subversion, to
Mercurial, and then to Git. CVS and Subversion are no longer used to
develop CPython.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30722">bpo-30722</a>: Make redemo work with Python 3.6 and newer versions. Also,
remove the <code class="docutils literal notranslate"><span class="pre">LOCALE</span></code> option since it doesn’t work with string patterns in
Python 3. Patch by Christoph Sarnowski.</p></li>
</ul>
</section>
<section id="id594">
<h3>C API<a class="headerlink" href="#id594" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20891">bpo-20891</a>: Fix PyGILState_Ensure(). When PyGILState_Ensure() is called in
a non-Python thread before PyEval_InitThreads(), only call
PyEval_InitThreads() after calling PyThreadState_New() to fix a crash.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32125">bpo-32125</a>: The <code class="docutils literal notranslate"><span class="pre">Py_UseClassExceptionsFlag</span></code> flag has been removed. It was
deprecated and wasn’t used anymore since Python 2.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25612">bpo-25612</a>: Move the current exception state from the frame object to the
co-routine. This simplifies the interpreter and fixes a couple of obscure
bugs caused by having swap exception state when entering or exiting a
generator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23699">bpo-23699</a>: Add Py_RETURN_RICHCOMPARE macro to reduce boilerplate code in
rich comparison functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30697">bpo-30697</a>: The <code class="docutils literal notranslate"><span class="pre">PyExc_RecursionErrorInst</span></code> singleton is removed and
<code class="docutils literal notranslate"><span class="pre">PyErr_NormalizeException()</span></code> does not use it anymore. This singleton is
persistent and its members being never cleared may cause a segfault during
finalization of the interpreter. See also <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22898">bpo-22898</a>.</p></li>
</ul>
</section>
</section>
<section id="python-3-7-0-alpha-2">
<h2>Python 3.7.0 alpha 2<a class="headerlink" href="#python-3-7-0-alpha-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-10-16</em></p>
<section id="id595">
<h3>Core and Builtins<a class="headerlink" href="#id595" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31558">bpo-31558</a>: <code class="docutils literal notranslate"><span class="pre">gc.freeze()</span></code> is a new API that allows for moving all objects
currently tracked by the garbage collector to a permanent generation,
effectively removing them from future collection events. This can be used
to protect those objects from having their PyGC_Head mutated. In effect,
this enables great copy-on-write stability at fork().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31642">bpo-31642</a>: Restored blocking “from package import module” by setting
sys.modules[“package.module”] to None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31708">bpo-31708</a>: Allow use of asynchronous generator expressions in synchronous
functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31709">bpo-31709</a>: Drop support of asynchronous __aiter__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30404">bpo-30404</a>: The -u option now makes the stdout and stderr streams
unbuffered rather than line-buffered.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31619">bpo-31619</a>: Fixed a ValueError when convert a string with large number of
underscores to integer with binary base.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31602">bpo-31602</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">zipimporter.get_source()</span></code> in
case of a bad <code class="docutils literal notranslate"><span class="pre">zlib.decompress()</span></code>. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31592">bpo-31592</a>: Fixed an assertion failure in Python parser in case of a bad
<code class="docutils literal notranslate"><span class="pre">unicodedata.normalize()</span></code>. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31588">bpo-31588</a>: Raise a <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> with a helpful error message when class
creation fails due to a metaclass with a bad <code class="docutils literal notranslate"><span class="pre">__prepare__()</span></code> method.
Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31574">bpo-31574</a>: Importlib was instrumented with two dtrace probes to profile
import timing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31566">bpo-31566</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">_warnings.warn()</span></code> in case of a
bad <code class="docutils literal notranslate"><span class="pre">__name__</span></code> global. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31506">bpo-31506</a>: Improved the error message logic for <code class="docutils literal notranslate"><span class="pre">object.__new__</span></code> and
<code class="docutils literal notranslate"><span class="pre">object.__init__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31505">bpo-31505</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">json</span></code>, in case
<code class="docutils literal notranslate"><span class="pre">_json.make_encoder()</span></code> received a bad <code class="docutils literal notranslate"><span class="pre">encoder()</span></code> argument. Patch by
Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31492">bpo-31492</a>: Fix assertion failures in case of failing to import from a
module with a bad <code class="docutils literal notranslate"><span class="pre">__name__</span></code> attribute, and in case of failing to access
an attribute of such a module. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31478">bpo-31478</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">_random.Random.seed()</span></code> in case
the argument has a bad <code class="docutils literal notranslate"><span class="pre">__abs__()</span></code> method. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31336">bpo-31336</a>: Speed up class creation by 10-20% by reducing the overhead in
the necessary special method lookups. Patch by Stefan Behnel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31415">bpo-31415</a>: Add <code class="docutils literal notranslate"><span class="pre">-X</span> <span class="pre">importtime</span></code> option to show how long each import
takes. It can be used to optimize application’s startup time. Support the
<span class="target" id="index-390"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONPROFILEIMPORTTIME"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONPROFILEIMPORTTIME</span></code></a> as an equivalent way to enable this.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31410">bpo-31410</a>: Optimized calling wrapper and classmethod descriptors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31353">bpo-31353</a>: <span class="target" id="index-391"></span><a class="pep reference external" href="https://peps.python.org/pep-0553/"><strong>PEP 553</strong></a> - Add a new built-in called <code class="docutils literal notranslate"><span class="pre">breakpoint()</span></code> which
calls <code class="docutils literal notranslate"><span class="pre">sys.breakpointhook()</span></code>. By default this imports <code class="docutils literal notranslate"><span class="pre">pdb</span></code> and calls
<code class="docutils literal notranslate"><span class="pre">pdb.set_trace()</span></code>, but users may override <code class="docutils literal notranslate"><span class="pre">sys.breakpointhook()</span></code> to
call whatever debugger they want. The original value of the hook is saved
in <code class="docutils literal notranslate"><span class="pre">sys.__breakpointhook__</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17852">bpo-17852</a>: Maintain a list of open buffered files, flush them before
exiting the interpreter. Based on a patch from Armin Rigo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31315">bpo-31315</a>: Fix an assertion failure in imp.create_dynamic(), when
spec.name is not a string. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31311">bpo-31311</a>: Fix a crash in the <code class="docutils literal notranslate"><span class="pre">__setstate__()</span></code> method of
<code class="docutils literal notranslate"><span class="pre">ctypes._CData</span></code>, in case of a bad <code class="docutils literal notranslate"><span class="pre">__dict__</span></code>. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31293">bpo-31293</a>: Fix crashes in true division and multiplication of a timedelta
object by a float with a bad as_integer_ratio() method. Patch by Oren
Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31285">bpo-31285</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">warnings.warn_explicit</span></code>, when
the return value of the received loader’s <code class="docutils literal notranslate"><span class="pre">get_source()</span></code> has a bad
<code class="docutils literal notranslate"><span class="pre">splitlines()</span></code> method. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30406">bpo-30406</a>: Make <code class="docutils literal notranslate"><span class="pre">async</span></code> and <code class="docutils literal notranslate"><span class="pre">await</span></code> proper keywords, as specified in
<span class="target" id="index-392"></span><a class="pep reference external" href="https://peps.python.org/pep-0492/"><strong>PEP 492</strong></a>.</p></li>
</ul>
</section>
<section id="id596">
<h3>Library<a class="headerlink" href="#id596" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30058">bpo-30058</a>: Fixed buffer overflow in select.kqueue.control().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31672">bpo-31672</a>: <code class="docutils literal notranslate"><span class="pre">idpattern</span></code> in <code class="docutils literal notranslate"><span class="pre">string.Template</span></code> matched some non-ASCII
characters. Now it uses <code class="docutils literal notranslate"><span class="pre">-i</span></code> regular expression local flag to avoid
non-ASCII characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31701">bpo-31701</a>: On Windows, faulthandler.enable() now ignores MSC and COM
exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31728">bpo-31728</a>: Prevent crashes in <code class="docutils literal notranslate"><span class="pre">_elementtree</span></code> due to unsafe cleanup of
<code class="docutils literal notranslate"><span class="pre">Element.text</span></code> and <code class="docutils literal notranslate"><span class="pre">Element.tail</span></code>. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31671">bpo-31671</a>: Now <code class="docutils literal notranslate"><span class="pre">re.compile()</span></code> converts passed RegexFlag to normal int
object before compiling. bm_regex_compile benchmark shows 14% performance
improvements.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30397">bpo-30397</a>: The types of compiled regular objects and match objects are now
exposed as <code class="docutils literal notranslate"><span class="pre">re.Pattern</span></code> and <code class="docutils literal notranslate"><span class="pre">re.Match</span></code>. This adds information in
pydoc output for the <code class="docutils literal notranslate"><span class="pre">re</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31675">bpo-31675</a>: Fixed memory leaks in Tkinter’s methods splitlist() and split()
when pass a string larger than 2 GiB.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31673">bpo-31673</a>: Fixed typo in the name of Tkinter’s method adderrorinfo().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31648">bpo-31648</a>: Improvements to path predicates in ElementTree: Allow
whitespace around predicate parts, i.e. “[a = ‘text’]” instead of
requiring the less readable “[a=’text’]”. Add support for text comparison
of the current node, like “[.=’text’]”. Patch by Stefan Behnel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30806">bpo-30806</a>: Fix the string representation of a netrc object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31638">bpo-31638</a>: Add optional argument <code class="docutils literal notranslate"><span class="pre">compressed</span></code> to
<code class="docutils literal notranslate"><span class="pre">zipapp.create_archive</span></code>, and add option <code class="docutils literal notranslate"><span class="pre">--compress</span></code> to the command
line interface of <code class="docutils literal notranslate"><span class="pre">zipapp</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25351">bpo-25351</a>: Avoid venv activate failures with undefined variables</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20519">bpo-20519</a>: Avoid ctypes use (if possible) and improve import time for
uuid.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28293">bpo-28293</a>: The regular expression cache is no longer completely dumped
when it is full.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31596">bpo-31596</a>: Added pthread_getcpuclockid() to the time module</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27494">bpo-27494</a>: Make 2to3 accept a trailing comma in generator expressions. For
example, <code class="docutils literal notranslate"><span class="pre">set(x</span> <span class="pre">for</span> <span class="pre">x</span> <span class="pre">in</span> <span class="pre">[],)</span></code> is now allowed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30347">bpo-30347</a>: Stop crashes when concurrently iterate over itertools.groupby()
iterators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30346">bpo-30346</a>: An iterator produced by itertools.groupby() iterator now
becomes exhausted after advancing the groupby iterator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31556">bpo-31556</a>: Cancel asyncio.wait_for future faster if timeout <= 0</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31540">bpo-31540</a>: Allow passing a context object in
<a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor</span></code></a> constructor. Also, free
job resources in <a class="reference internal" href="../library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor" title="concurrent.futures.ProcessPoolExecutor"><code class="xref py py-class docutils literal notranslate"><span class="pre">concurrent.futures.ProcessPoolExecutor</span></code></a> earlier
to improve memory usage when a worker waits for new jobs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31516">bpo-31516</a>: <code class="docutils literal notranslate"><span class="pre">threading.current_thread()</span></code> should not return a dummy thread
at shutdown.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31525">bpo-31525</a>: In the sqlite module, require the sqlite3_prepare_v2 API. Thus,
the sqlite module now requires sqlite version at least 3.3.9.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26510">bpo-26510</a>: argparse subparsers are now required by default. This matches
behaviour in Python 2. For optional subparsers, use the new parameter
<code class="docutils literal notranslate"><span class="pre">add_subparsers(required=False)</span></code>. Patch by Anthony Sottile. (As of
3.7.0rc1, the default was changed to not required as had been the case
since Python 3.3.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27541">bpo-27541</a>: Reprs of subclasses of some collection and iterator classes
(<code class="docutils literal notranslate"><span class="pre">bytearray</span></code>, <code class="docutils literal notranslate"><span class="pre">array.array</span></code>, <code class="docutils literal notranslate"><span class="pre">collections.deque</span></code>,
<code class="docutils literal notranslate"><span class="pre">collections.defaultdict</span></code>, <code class="docutils literal notranslate"><span class="pre">itertools.count</span></code>, <code class="docutils literal notranslate"><span class="pre">itertools.repeat</span></code>)
now contain actual type name instead of hardcoded names of the base class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31351">bpo-31351</a>: python -m ensurepip now exits with non-zero exit code if pip
bootstrapping has failed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31389">bpo-31389</a>: <code class="docutils literal notranslate"><span class="pre">pdb.set_trace()</span></code> now takes an optional keyword-only argument
<code class="docutils literal notranslate"><span class="pre">header</span></code>. If given, this is printed to the console just before debugging
begins.</p></li>
</ul>
</section>
<section id="id597">
<h3>Documentation<a class="headerlink" href="#id597" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31537">bpo-31537</a>: Fix incorrect usage of <code class="docutils literal notranslate"><span class="pre">get_history_length</span></code> in readline
documentation example code. Patch by Brad Smith.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30085">bpo-30085</a>: The operator functions without double underscores are preferred
for clarity. The one with underscores are only kept for
back-compatibility.</p></li>
</ul>
</section>
<section id="id598">
<h3>Build<a class="headerlink" href="#id598" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31696">bpo-31696</a>: Improve compiler version information in <a class="reference internal" href="../library/sys.html#sys.version" title="sys.version"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.version</span></code></a>
when Python is built with Clang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31625">bpo-31625</a>: Stop using ranlib on static libraries. Instead, we assume ar
supports the ‘s’ flag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31624">bpo-31624</a>: Remove support for BSD/OS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22140">bpo-22140</a>: Prevent double substitution of prefix in python-config.sh.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31569">bpo-31569</a>: Correct PCBuild/ case to PCbuild/ in build scripts and
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31536">bpo-31536</a>: Avoid wholesale rebuild after <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-all</span></code> if nothing
changed.</p></li>
</ul>
</section>
<section id="id599">
<h3>IDLE<a class="headerlink" href="#id599" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31460">bpo-31460</a>: Simplify the API of IDLE’s Module Browser. Passing a widget
instead of an flist with a root widget opens the option of creating a
browser frame that is only part of a window. Passing a full file name
instead of pieces assumed to come from a .py file opens the possibility of
browsing python files that do not end in .py.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31649">bpo-31649</a>: IDLE - Make _htest, _utest parameters keyword only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31559">bpo-31559</a>: Remove test order dependence in idle_test.test_browser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31459">bpo-31459</a>: Rename IDLE’s module browser from Class Browser to Module
Browser. The original module-level class and method browser became a
module browser, with the addition of module-level functions, years ago.
Nested classes and functions were added yesterday. For
back-compatibility, the virtual event <<open-class-browser>>, which
appears on the Keys tab of the Settings dialog, is not changed. Patch by
Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31500">bpo-31500</a>: Default fonts now are scaled on HiDPI displays.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1612262">bpo-1612262</a>: IDLE module browser now shows nested classes and functions.
Original patches for code and tests by Guilherme Polo and Cheryl Sabella,
respectively.</p></li>
</ul>
</section>
<section id="id600">
<h3>C API<a class="headerlink" href="#id600" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28280">bpo-28280</a>: Make <code class="docutils literal notranslate"><span class="pre">PyMapping_Keys()</span></code>, <code class="docutils literal notranslate"><span class="pre">PyMapping_Values()</span></code> and
<code class="docutils literal notranslate"><span class="pre">PyMapping_Items()</span></code> always return a <code class="docutils literal notranslate"><span class="pre">list</span></code> (rather than a <code class="docutils literal notranslate"><span class="pre">list</span></code> or
a <code class="docutils literal notranslate"><span class="pre">tuple</span></code>). Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31532">bpo-31532</a>: Fix memory corruption due to allocator mix in getpath.c between
Py_GetPath() and Py_SetPath()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25658">bpo-25658</a>: Implement <span class="target" id="index-393"></span><a class="pep reference external" href="https://peps.python.org/pep-0539/"><strong>PEP 539</strong></a> for Thread Specific Storage (TSS) API: it
is a new Thread Local Storage (TLS) API to CPython which would supersede
use of the existing TLS API within the CPython interpreter, while
deprecating the existing API. PEP written by Erik M. Bray, patch by
Masayuki Yamamoto.</p></li>
</ul>
</section>
</section>
<section id="python-3-7-0-alpha-1">
<h2>Python 3.7.0 alpha 1<a class="headerlink" href="#python-3-7-0-alpha-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-09-19</em></p>
<section id="id601">
<h3>Security<a class="headerlink" href="#id601" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29781">bpo-29781</a>: SSLObject.version() now correctly returns None when handshake
over BIO has not been performed yet.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29505">bpo-29505</a>: Add fuzz tests for float(str), int(str), unicode(str); for
oss-fuzz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30947">bpo-30947</a>: Upgrade libexpat embedded copy from version 2.2.1 to 2.2.3 to
get security fixes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30730">bpo-30730</a>: Prevent environment variables injection in subprocess on
Windows. Prevent passing other environment variables and command
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30694">bpo-30694</a>: Upgrade expat copy from 2.2.0 to 2.2.1 to get fixes of multiple
security vulnerabilities including: <span class="target" id="index-394"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2017-9233"><strong>CVE 2017-9233</strong></a> (External entity
infinite loop DoS), <span class="target" id="index-395"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-9063"><strong>CVE 2016-9063</strong></a> (Integer overflow, re-fix),
<span class="target" id="index-396"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-0718"><strong>CVE 2016-0718</strong></a> (Fix regression bugs from 2.2.0’s fix to
<span class="target" id="index-397"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-0718"><strong>CVE 2016-0718</strong></a>) and <span class="target" id="index-398"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2012-0876"><strong>CVE 2012-0876</strong></a> (Counter hash flooding with
SipHash). Note: the <span class="target" id="index-399"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-5300"><strong>CVE 2016-5300</strong></a> (Use os-specific entropy sources like
getrandom) doesn’t impact Python, since Python already gets entropy from
the OS to set the expat secret using <code class="docutils literal notranslate"><span class="pre">XML_SetHashSalt()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30500">bpo-30500</a>: Fix urllib.parse.splithost() to correctly parse fragments. For
example, <code class="docutils literal notranslate"><span class="pre">splithost('//127.0.0.1#@evil.com/')</span></code> now correctly returns the
<code class="docutils literal notranslate"><span class="pre">127.0.0.1</span></code> host, instead of treating <code class="docutils literal notranslate"><span class="pre">@evil.com</span></code> as the host in an
authentication (<code class="docutils literal notranslate"><span class="pre">login@host</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29591">bpo-29591</a>: Update expat copy from 2.1.1 to 2.2.0 to get fixes of
<span class="target" id="index-400"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-0718"><strong>CVE 2016-0718</strong></a> and <span class="target" id="index-401"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-4472"><strong>CVE 2016-4472</strong></a>. See
<a class="reference external" href="https://sourceforge.net/p/expat/bugs/537/">https://sourceforge.net/p/expat/bugs/537/</a> for more information.</p></li>
</ul>
</section>
<section id="id602">
<h3>Core and Builtins<a class="headerlink" href="#id602" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31490">bpo-31490</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">ctypes</span></code> class definition, in
case the class has an attribute whose name is specified in <code class="docutils literal notranslate"><span class="pre">_anonymous_</span></code>
but not in <code class="docutils literal notranslate"><span class="pre">_fields_</span></code>. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31471">bpo-31471</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">subprocess.Popen()</span></code> on Windows,
in case the env argument has a bad <code class="docutils literal notranslate"><span class="pre">keys()</span></code> method. Patch by Oren
Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31418">bpo-31418</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">PyErr_WriteUnraisable()</span></code> in case
of an exception with a bad <code class="docutils literal notranslate"><span class="pre">__module__</span></code> attribute. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31416">bpo-31416</a>: Fix assertion failures in case of a bad warnings.filters or
warnings.defaultaction. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28411">bpo-28411</a>: Change direct usage of PyInterpreterState.modules to
PyImport_GetModuleDict(). Also introduce more uniformity in other code
that deals with sys.modules. This helps reduce complications when working
on sys.modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28411">bpo-28411</a>: Switch to the abstract API when dealing with
<code class="docutils literal notranslate"><span class="pre">PyInterpreterState.modules</span></code>. This allows later support for all dict
subclasses and other Mapping implementations. Also add a
<code class="docutils literal notranslate"><span class="pre">PyImport_GetModule()</span></code> function to reduce a bunch of duplicated code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31411">bpo-31411</a>: Raise a TypeError instead of SystemError in case
warnings.onceregistry is not a dictionary. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31344">bpo-31344</a>: For finer control of tracing behaviour when testing the
interpreter, two new frame attributes have been added to control the
emission of particular trace events: <code class="docutils literal notranslate"><span class="pre">f_trace_lines</span></code> (<code class="docutils literal notranslate"><span class="pre">True</span></code> by
default) to turn off per-line trace events; and <code class="docutils literal notranslate"><span class="pre">f_trace_opcodes</span></code>
(<code class="docutils literal notranslate"><span class="pre">False</span></code> by default) to turn on per-opcode trace events.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31373">bpo-31373</a>: Fix several possible instances of undefined behavior due to
floating-point demotions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30465">bpo-30465</a>: Location information (<code class="docutils literal notranslate"><span class="pre">lineno</span></code> and <code class="docutils literal notranslate"><span class="pre">col_offset</span></code>) in
f-strings is now (mostly) correct. This fixes tools like flake8 from
showing warnings on the wrong line (typically the first line of the file).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30860">bpo-30860</a>: Consolidate CPython’s global runtime state under a single
struct. This improves discoverability of the runtime state.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31347">bpo-31347</a>: Fix possible undefined behavior in _PyObject_FastCall_Prepend.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31343">bpo-31343</a>: Include sys/sysmacros.h for major(), minor(), and makedev().
GNU C library plans to remove the functions from sys/types.h.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31291">bpo-31291</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">zipimport.zipimporter.get_data</span></code>
on Windows, when the return value of <code class="docutils literal notranslate"><span class="pre">pathname.replace('/','\\')</span></code> isn’t
a string. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31271">bpo-31271</a>: Fix an assertion failure in the <code class="docutils literal notranslate"><span class="pre">write()</span></code> method of
<code class="docutils literal notranslate"><span class="pre">io.TextIOWrapper</span></code>, when the encoder doesn’t return a bytes object.
Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31243">bpo-31243</a>: Fix a crash in some methods of <code class="docutils literal notranslate"><span class="pre">io.TextIOWrapper</span></code>, when the
decoder’s state is invalid. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30721">bpo-30721</a>: <code class="docutils literal notranslate"><span class="pre">print</span></code> now shows correct usage hint for using Python 2
redirection syntax. Patch by Sanyam Khurana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31070">bpo-31070</a>: Fix a race condition in importlib _get_module_lock().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30747">bpo-30747</a>: Add a non-dummy implementation of _Py_atomic_store and
_Py_atomic_load on MSVC.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31095">bpo-31095</a>: Fix potential crash during GC caused by <code class="docutils literal notranslate"><span class="pre">tp_dealloc</span></code> which
doesn’t call <code class="docutils literal notranslate"><span class="pre">PyObject_GC_UnTrack()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31071">bpo-31071</a>: Avoid masking original TypeError in call with * unpacking when
other arguments are passed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30978">bpo-30978</a>: str.format_map() now passes key lookup exceptions through.
Previously any exception was replaced with a KeyError exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30808">bpo-30808</a>: Use _Py_atomic API for concurrency-sensitive signal state.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30876">bpo-30876</a>: Relative import from unloaded package now reimports the package
instead of failing with SystemError. Relative import from non-package now
fails with ImportError rather than SystemError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30703">bpo-30703</a>: Improve signal delivery. Avoid using Py_AddPendingCall from
signal handler, to avoid calling signal-unsafe functions. The tests I’m
adding here fail without the rest of the patch, on Linux and OS X. This
means our signal delivery logic had defects (some signals could be lost).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30765">bpo-30765</a>: Avoid blocking in pthread_mutex_lock() when
PyThread_acquire_lock() is asked not to block.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31161">bpo-31161</a>: Make sure the ‘Missing parentheses’ syntax error message is
only applied to SyntaxError, not to subclasses. Patch by Martijn Pieters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30814">bpo-30814</a>: Fixed a race condition when import a submodule from a package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30736">bpo-30736</a>: The internal unicodedata database has been upgraded to Unicode
10.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30604">bpo-30604</a>: Move co_extra_freefuncs from per-thread to per-interpreter to
avoid crashes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30597">bpo-30597</a>: <code class="docutils literal notranslate"><span class="pre">print</span></code> now shows expected input in custom error message when
used as a Python 2 statement. Patch by Sanyam Khurana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30682">bpo-30682</a>: Removed a too-strict assertion that failed for certain
f-strings, such as eval(“f’\n’”) and eval(“f’\r’”).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30501">bpo-30501</a>: The compiler now produces more optimal code for complex
condition expressions in the “if”, “while” and “assert” statement, the
“if” expression, and generator expressions and comprehensions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28180">bpo-28180</a>: Implement <span class="target" id="index-402"></span><a class="pep reference external" href="https://peps.python.org/pep-0538/"><strong>PEP 538</strong></a> (legacy C locale coercion). This means
that when a suitable coercion target locale is available, both the core
interpreter and locale-aware C extensions will assume the use of UTF-8 as
the default text encoding, rather than ASCII.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30486">bpo-30486</a>: Allows setting cell values for __closure__. Patch by Lisa
Roach.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30537">bpo-30537</a>: itertools.islice now accepts integer-like objects (having an
__index__ method) as start, stop, and slice arguments</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25324">bpo-25324</a>: Tokens needed for parsing in Python moved to C. <code class="docutils literal notranslate"><span class="pre">COMMENT</span></code>,
<code class="docutils literal notranslate"><span class="pre">NL</span></code> and <code class="docutils literal notranslate"><span class="pre">ENCODING</span></code>. This way the tokens and tok_names in the token
module don’t get changed when you import the tokenize module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29104">bpo-29104</a>: Fixed parsing backslashes in f-strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27945">bpo-27945</a>: Fixed various segfaults with dict when input collections are
mutated during searching, inserting or comparing. Based on patches by
Duane Griffin and Tim Mitchell.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25794">bpo-25794</a>: Fixed type.__setattr__() and type.__delattr__() for
non-interned attribute names. Based on patch by Eryk Sun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30039">bpo-30039</a>: If a KeyboardInterrupt happens when the interpreter is in the
middle of resuming a chain of nested ‘yield from’ or ‘await’ calls, it’s
now correctly delivered to the innermost frame.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28974">bpo-28974</a>: <code class="docutils literal notranslate"><span class="pre">object.__format__(x,</span> <span class="pre">'')</span></code> is now equivalent to <code class="docutils literal notranslate"><span class="pre">str(x)</span></code>
rather than <code class="docutils literal notranslate"><span class="pre">format(str(self),</span> <span class="pre">'')</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30024">bpo-30024</a>: Circular imports involving absolute imports with binding a
submodule to a name are now supported.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12414">bpo-12414</a>: sys.getsizeof() on a code object now returns the sizes which
includes the code struct and sizes of objects which it references. Patch
by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29839">bpo-29839</a>: len() now raises ValueError rather than OverflowError if
__len__() returned a large negative integer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11913">bpo-11913</a>: README.rst is now included in the list of distutils standard
READMEs and therefore included in source distributions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29914">bpo-29914</a>: Fixed default implementations of __reduce__ and
__reduce_ex__(). object.__reduce__() no longer takes arguments,
object.__reduce_ex__() now requires one argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29949">bpo-29949</a>: Fix memory usage regression of set and frozenset object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29935">bpo-29935</a>: Fixed error messages in the index() method of tuple, list and
deque when pass indices of wrong type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29816">bpo-29816</a>: Shift operation now has less opportunity to raise
OverflowError. ValueError always is raised rather than OverflowError for
negative counts. Shifting zero with non-negative count always returns
zero.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24821">bpo-24821</a>: Fixed the slowing down to 25 times in the searching of some
unlucky Unicode characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29102">bpo-29102</a>: Add a unique ID to PyInterpreterState. This makes it easier to
identify each subinterpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29894">bpo-29894</a>: The deprecation warning is emitted if __complex__ returns an
instance of a strict subclass of complex. In a future versions of Python
this can be an error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29859">bpo-29859</a>: Show correct error messages when any of the pthread_* calls in
thread_pthread.h fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29849">bpo-29849</a>: Fix a memory leak when an ImportError is raised during from
import.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28856">bpo-28856</a>: Fix an oversight that %b format for bytes should support
objects follow the buffer protocol.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29723">bpo-29723</a>: The <code class="docutils literal notranslate"><span class="pre">sys.path[0]</span></code> initialization change for <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29139">bpo-29139</a> caused
a regression by revealing an inconsistency in how sys.path is initialized
when executing <code class="docutils literal notranslate"><span class="pre">__main__</span></code> from a zipfile, directory, or other import
location. The interpreter now consistently avoids ever adding the import
location’s parent directory to <code class="docutils literal notranslate"><span class="pre">sys.path</span></code>, and ensures no other
<code class="docutils literal notranslate"><span class="pre">sys.path</span></code> entries are inadvertently modified when inserting the import
location named on the command line.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29568">bpo-29568</a>: Escaped percent “%%” in the format string for classic string
formatting no longer allows any characters between two percents.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29714">bpo-29714</a>: Fix a regression that bytes format may fail when containing
zero bytes inside.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29695">bpo-29695</a>: bool(), float(), list() and tuple() no longer take keyword
arguments. The first argument of int() can now be passes only as
positional argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28893">bpo-28893</a>: Set correct __cause__ for errors about invalid awaitables
returned from __aiter__ and __anext__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28876">bpo-28876</a>: <code class="docutils literal notranslate"><span class="pre">bool(range)</span></code> works even if <code class="docutils literal notranslate"><span class="pre">len(range)</span></code> raises
<a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29683">bpo-29683</a>: Fixes to memory allocation in _PyCode_SetExtra. Patch by Brian
Coleman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29684">bpo-29684</a>: Fix minor regression of PyEval_CallObjectWithKeywords. It
should raise TypeError when kwargs is not a dict. But it might cause segv
when args=NULL and kwargs is not a dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28598">bpo-28598</a>: Support __rmod__ for subclasses of str being called before
str.__mod__. Patch by Martijn Pieters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29607">bpo-29607</a>: Fix stack_effect computation for CALL_FUNCTION_EX. Patch by
Matthieu Dartiailh.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29602">bpo-29602</a>: Fix incorrect handling of signed zeros in complex constructor
for complex subclasses and for inputs having a __complex__ method. Patch
by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29347">bpo-29347</a>: Fixed possibly dereferencing undefined pointers when creating
weakref objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29463">bpo-29463</a>: Add <code class="docutils literal notranslate"><span class="pre">docstring</span></code> field to Module, ClassDef, FunctionDef, and
AsyncFunctionDef ast nodes. docstring is not first stmt in their body
anymore. It affects <code class="docutils literal notranslate"><span class="pre">co_firstlineno</span></code> and <code class="docutils literal notranslate"><span class="pre">co_lnotab</span></code> of code object
for module and class. (Reverted in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32911">bpo-32911</a>.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29438">bpo-29438</a>: Fixed use-after-free problem in key sharing dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29546">bpo-29546</a>: Set the ‘path’ and ‘name’ attribute on ImportError for <code class="docutils literal notranslate"><span class="pre">from</span>
<span class="pre">...</span> <span class="pre">import</span> <span class="pre">...</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29546">bpo-29546</a>: Improve from-import error message with location</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29478">bpo-29478</a>: If max_line_length=None is specified while using the Compat32
policy, it is no longer ignored. Patch by Mircea Cosbuc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29319">bpo-29319</a>: Prevent RunMainFromImporter overwriting sys.path[0].</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29337">bpo-29337</a>: Fixed possible BytesWarning when compare the code objects.
Warnings could be emitted at compile time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29327">bpo-29327</a>: Fixed a crash when pass the iterable keyword argument to
sorted().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29034">bpo-29034</a>: Fix memory leak and use-after-free in os module
(path_converter).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29159">bpo-29159</a>: Fix regression in bytes(x) when x.__index__() raises Exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29049">bpo-29049</a>: Call _PyObject_GC_TRACK() lazily when calling Python function.
Calling function is up to 5% faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28927">bpo-28927</a>: bytes.fromhex() and bytearray.fromhex() now ignore all ASCII
whitespace, not only spaces. Patch by Robert Xiao.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28932">bpo-28932</a>: Do not include <sys/random.h> if it does not exist.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25677">bpo-25677</a>: Correct the positioning of the syntax error caret for indented
blocks. Based on patch by Michael Layzell.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29000">bpo-29000</a>: Fixed bytes formatting of octals with zero padding in alternate
form.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18896">bpo-18896</a>: Python function can now have more than 255 parameters.
collections.namedtuple() now supports tuples with more than 255 elements.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28596">bpo-28596</a>: The preferred encoding is UTF-8 on Android. Patch written by
Chi Hsuan Yen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22257">bpo-22257</a>: Clean up interpreter startup (see <span class="target" id="index-403"></span><a class="pep reference external" href="https://peps.python.org/pep-0432/"><strong>PEP 432</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26919">bpo-26919</a>: On Android, operating system data is now always encoded/decoded
to/from UTF-8, instead of the locale encoding to avoid inconsistencies
with os.fsencode() and os.fsdecode() which are already using UTF-8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28991">bpo-28991</a>: functools.lru_cache() was susceptible to an obscure reentrancy
bug triggerable by a monkey-patched len() function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28147">bpo-28147</a>: Fix a memory leak in split-table dictionaries: setattr() must
not convert combined table into split table. Patch written by INADA Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28739">bpo-28739</a>: f-string expressions are no longer accepted as docstrings and
by ast.literal_eval() even if they do not include expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28512">bpo-28512</a>: Fixed setting the offset attribute of SyntaxError by
PyErr_SyntaxLocationEx() and PyErr_SyntaxLocationObject().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28918">bpo-28918</a>: Fix the cross compilation of xxlimited when Python has been
built with Py_DEBUG defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23722">bpo-23722</a>: Rather than silently producing a class that doesn’t support
zero-argument <code class="docutils literal notranslate"><span class="pre">super()</span></code> in methods, failing to pass the new
<code class="docutils literal notranslate"><span class="pre">__classcell__</span></code> namespace entry up to <code class="docutils literal notranslate"><span class="pre">type.__new__</span></code> now results in a
<code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> and a class that supports zero-argument
<code class="docutils literal notranslate"><span class="pre">super()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28797">bpo-28797</a>: Modifying the class __dict__ inside the __set_name__ method of
a descriptor that is used inside that class no longer prevents calling the
__set_name__ method of other descriptors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28799">bpo-28799</a>: Remove the <code class="docutils literal notranslate"><span class="pre">PyEval_GetCallStats()</span></code> function and deprecate the
untested and undocumented <code class="docutils literal notranslate"><span class="pre">sys.callstats()</span></code> function. Remove the
<code class="docutils literal notranslate"><span class="pre">CALL_PROFILE</span></code> special build: use the <a class="reference internal" href="../library/sys.html#sys.setprofile" title="sys.setprofile"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.setprofile()</span></code></a> function,
<a class="reference internal" href="../library/profile.html#module-cProfile" title="cProfile"><code class="xref py py-mod docutils literal notranslate"><span class="pre">cProfile</span></code></a> or <a class="reference internal" href="../library/profile.html#module-profile" title="profile: Python source profiler."><code class="xref py py-mod docutils literal notranslate"><span class="pre">profile</span></code></a> to profile function calls.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12844">bpo-12844</a>: More than 255 arguments can now be passed to a function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28782">bpo-28782</a>: Fix a bug in the implementation <code class="docutils literal notranslate"><span class="pre">yield</span> <span class="pre">from</span></code> when checking if
the next instruction is YIELD_FROM. Regression introduced by WORDCODE
(<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26647">bpo-26647</a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28774">bpo-28774</a>: Fix error position of the unicode error in ASCII and Latin1
encoders when a string returned by the error handler contains multiple
non-encodable characters (non-ASCII for the ASCII codec, characters out of
the U+0000-U+00FF range for Latin1).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28731">bpo-28731</a>: Optimize _PyDict_NewPresized() to create correct size dict.
Improve speed of dict literal with constant keys up to 30%.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28532">bpo-28532</a>: Show sys.version when -V option is supplied twice.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27100">bpo-27100</a>: The with-statement now checks for __enter__ before it checks
for __exit__. This gives less confusing error messages when both methods
are missing. Patch by Jonathan Ellington.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28746">bpo-28746</a>: Fix the set_inheritable() file descriptor method on platforms
that do not have the ioctl FIOCLEX and FIONCLEX commands.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26920">bpo-26920</a>: Fix not getting the locale’s charset upon initializing the
interpreter, on platforms that do not have langinfo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28648">bpo-28648</a>: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X
when decode astral characters. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28665">bpo-28665</a>: Improve speed of the STORE_DEREF opcode by 40%.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19398">bpo-19398</a>: Extra slash no longer added to sys.path components in case of
empty compile-time PYTHONPATH components.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28621">bpo-28621</a>: Sped up converting int to float by reusing faster bits counting
implementation. Patch by Adrian Wielgosik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28580">bpo-28580</a>: Optimize iterating split table values. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28583">bpo-28583</a>: PyDict_SetDefault didn’t combine split table when needed. Patch
by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28128">bpo-28128</a>: Deprecation warning for invalid str and byte escape sequences
now prints better information about where the error occurs. Patch by
Serhiy Storchaka and Eric Smith.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28509">bpo-28509</a>: dict.update() no longer allocate unnecessary large memory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28426">bpo-28426</a>: Fixed potential crash in PyUnicode_AsDecodedObject() in debug
build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28517">bpo-28517</a>: Fixed of-by-one error in the peephole optimizer that caused
keeping unreachable code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28214">bpo-28214</a>: Improved exception reporting for problematic __set_name__
attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23782">bpo-23782</a>: Fixed possible memory leak in _PyTraceback_Add() and exception
loss in PyTraceBack_Here().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28183">bpo-28183</a>: Optimize and cleanup dict iteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26081">bpo-26081</a>: Added C implementation of asyncio.Future. Original patch by
Yury Selivanov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28379">bpo-28379</a>: Added sanity checks and tests for PyUnicode_CopyCharacters().
Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28376">bpo-28376</a>: The type of long range iterator is now registered as Iterator.
Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28376">bpo-28376</a>: Creating instances of range_iterator by calling range_iterator
type now is disallowed. Calling iter() on range instance is the only way.
Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26906">bpo-26906</a>: Resolving special methods of uninitialized type now causes
implicit initialization of the type instead of a fail.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18287">bpo-18287</a>: PyType_Ready() now checks that tp_name is not NULL. Original
patch by Niklas Koep.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24098">bpo-24098</a>: Fixed possible crash when AST is changed in process of
compiling it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28201">bpo-28201</a>: Dict reduces possibility of 2nd conflict in hash table when
hashes have same lower bits.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28350">bpo-28350</a>: String constants with null character no longer interned.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26617">bpo-26617</a>: Fix crash when GC runs during weakref callbacks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27942">bpo-27942</a>: String constants now interned recursively in tuples and
frozensets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28289">bpo-28289</a>: ImportError.__init__ now resets not specified attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21578">bpo-21578</a>: Fixed misleading error message when ImportError called with
invalid keyword args.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28203">bpo-28203</a>: Fix incorrect type in complex(1.0, {2:3}) error message. Patch
by Soumya Sharma.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28086">bpo-28086</a>: Single var-positional argument of tuple subtype was passed
unscathed to the C-defined function. Now it is converted to exact tuple.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28214">bpo-28214</a>: Now __set_name__ is looked up on the class instead of the
instance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27955">bpo-27955</a>: Fallback on reading /dev/urandom device when the getrandom()
syscall fails with EPERM, for example when blocked by SECCOMP.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28192">bpo-28192</a>: Don’t import readline in isolated mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27441">bpo-27441</a>: Remove some redundant assignments to ob_size in longobject.c.
Thanks Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27222">bpo-27222</a>: Clean up redundant code in long_rshift function. Thanks Oren
Milman.</p></li>
<li><p>Upgrade internal unicode databases to Unicode version 9.0.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28131">bpo-28131</a>: Fix a regression in zipimport’s compile_source(). zipimport
should use the same optimization level as the interpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28126">bpo-28126</a>: Replace Py_MEMCPY with memcpy(). Visual Studio can properly
optimize memcpy().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28120">bpo-28120</a>: Fix dict.pop() for split dictionary when trying to remove a
“pending key” (Not yet inserted in split-table). Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26182">bpo-26182</a>: Raise DeprecationWarning when async and await keywords are used
as variable/attribute/class/function name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26182">bpo-26182</a>: Fix a refleak in code that raises DeprecationWarning.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28721">bpo-28721</a>: Fix asynchronous generators aclose() and athrow() to handle
StopAsyncIteration propagation properly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26110">bpo-26110</a>: Speed-up method calls: add LOAD_METHOD and CALL_METHOD opcodes.</p></li>
</ul>
</section>
<section id="id603">
<h3>Library<a class="headerlink" href="#id603" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31499">bpo-31499</a>: xml.etree: Fix a crash when a parser is part of a reference
cycle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31482">bpo-31482</a>: <code class="docutils literal notranslate"><span class="pre">random.seed()</span></code> now works with bytes in version=1</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: typing.get_type_hints now finds the right globalns for classes
and modules by default (when no <code class="docutils literal notranslate"><span class="pre">globalns</span></code> was specified by the caller).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Speed improvements to the <code class="docutils literal notranslate"><span class="pre">typing</span></code> module. Original PRs by
Ivan Levkivskyi and Mitar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31544">bpo-31544</a>: The C accelerator module of ElementTree ignored exceptions
raised when looking up TreeBuilder target methods in XMLParser().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31234">bpo-31234</a>: socket.create_connection() now fixes manually a reference
cycle: clear the variable storing the last exception on success.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31457">bpo-31457</a>: LoggerAdapter objects can now be nested.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31431">bpo-31431</a>: SSLContext.check_hostname now automatically sets
SSLContext.verify_mode to ssl.CERT_REQUIRED instead of failing with a
ValueError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31233">bpo-31233</a>: socketserver.ThreadingMixIn now keeps a list of non-daemonic
threads to wait until all these threads complete in server_close().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28638">bpo-28638</a>: Changed the implementation strategy for
collections.namedtuple() to substantially reduce the use of exec() in
favor of precomputed methods. As a result, the <em>verbose</em> parameter and
<em>_source</em> attribute are no longer supported. The benefits include 1)
having a smaller memory footprint for applications using multiple named
tuples, 2) faster creation of the named tuple class (approx 4x to 6x
depending on how it is measured), and 3) minor speed-ups for instance
creation using __new__, _make, and _replace. (The primary patch
contributor is Jelle Zijlstra with further improvements by INADA Naoki,
Serhiy Storchaka, and Raymond Hettinger.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31400">bpo-31400</a>: Improves SSL error handling to avoid losing error numbers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27629">bpo-27629</a>: Make return types of SSLContext.wrap_bio() and
SSLContext.wrap_socket() customizable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28958">bpo-28958</a>: ssl.SSLContext() now uses OpenSSL error information when a
context cannot be instantiated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28182">bpo-28182</a>: The SSL module now raises SSLCertVerificationError when OpenSSL
fails to verify the peer’s certificate. The exception contains more
information about the error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27340">bpo-27340</a>: SSLSocket.sendall() now uses memoryview to create slices of
data. This fixes support for all bytes-like object. It is also more
efficient and avoids costly copies.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14191">bpo-14191</a>: A new function
<code class="docutils literal notranslate"><span class="pre">argparse.ArgumentParser.parse_intermixed_args</span></code> provides the ability to
parse command lines where there user intermixes options and positional
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31178">bpo-31178</a>: Fix string concatenation bug in rare error path in the
subprocess module</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31350">bpo-31350</a>: Micro-optimize <code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio._get_running_loop()</span></code> to become up
to 10% faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31170">bpo-31170</a>: expat: Update libexpat from 2.2.3 to 2.2.4. Fix copying of
partial characters for UTF-8 input (libexpat bug 115):
<a class="reference external" href="https://github.com/libexpat/libexpat/issues/115">https://github.com/libexpat/libexpat/issues/115</a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29136">bpo-29136</a>: Add TLS 1.3 cipher suites and OP_NO_TLSv1_3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1198569">bpo-1198569</a>: <code class="docutils literal notranslate"><span class="pre">string.Template</span></code> subclasses can optionally define
<code class="docutils literal notranslate"><span class="pre">braceidpattern</span></code> if they want to specify different placeholder patterns
inside and outside the braces. If None (the default) it falls back to
<code class="docutils literal notranslate"><span class="pre">idpattern</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31326">bpo-31326</a>: concurrent.futures.ProcessPoolExecutor.shutdown() now
explicitly closes the call queue. Moreover, shutdown(wait=True) now also
join the call queue thread, to prevent leaking a dangling thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27144">bpo-27144</a>: The <code class="docutils literal notranslate"><span class="pre">map()</span></code> and <code class="docutils literal notranslate"><span class="pre">as_completed()</span></code> iterators in
<code class="docutils literal notranslate"><span class="pre">concurrent.futures</span></code> now avoid keeping a reference to yielded objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31281">bpo-31281</a>: Fix <code class="docutils literal notranslate"><span class="pre">fileinput.FileInput(files,</span> <span class="pre">inplace=True)</span></code> when <code class="docutils literal notranslate"><span class="pre">files</span></code>
contain <code class="docutils literal notranslate"><span class="pre">pathlib.Path</span></code> objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10746">bpo-10746</a>: Fix ctypes producing wrong <span class="target" id="index-404"></span><a class="pep reference external" href="https://peps.python.org/pep-3118/"><strong>PEP 3118</strong></a> type codes for integer
types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27584">bpo-27584</a>: <code class="docutils literal notranslate"><span class="pre">AF_VSOCK</span></code> has been added to the socket interface which
allows communication between virtual machines and their host.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22536">bpo-22536</a>: The subprocess module now sets the filename when
FileNotFoundError is raised on POSIX systems due to the executable or cwd
not being found.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29741">bpo-29741</a>: Update some methods in the _pyio module to also accept integer
types. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31249">bpo-31249</a>: concurrent.futures: WorkItem.run() used by ThreadPoolExecutor
now breaks a reference cycle between an exception object and the WorkItem
object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31247">bpo-31247</a>: xmlrpc.server now explicitly breaks reference cycles when using
sys.exc_info() in code handling exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23835">bpo-23835</a>: configparser: reading defaults in the <code class="docutils literal notranslate"><span class="pre">ConfigParser()</span></code>
constructor is now using <code class="docutils literal notranslate"><span class="pre">read_dict()</span></code>, making its behavior consistent
with the rest of the parser. Non-string keys and values in the defaults
dictionary are now being implicitly converted to strings. Patch by James
Tocknell.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31238">bpo-31238</a>: pydoc: the stop() method of the private ServerThread class now
waits until DocServer.serve_until_quit() completes and then explicitly
sets its docserver attribute to None to break a reference cycle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5001">bpo-5001</a>: Many asserts in <code class="docutils literal notranslate"><span class="pre">multiprocessing</span></code> are now more informative,
and some error types have been changed to more specific ones.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31109">bpo-31109</a>: Convert zipimport to use Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30102">bpo-30102</a>: The ssl and hashlib modules now call
OPENSSL_add_all_algorithms_noconf() on OpenSSL < 1.1.0. The function
detects CPU features and enables optimizations on some CPU architectures
such as POWER8. Patch is based on research from Gustavo Serra Scalet.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18966">bpo-18966</a>: Non-daemonic threads created by a multiprocessing.Process are
now joined on child exit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31183">bpo-31183</a>: <code class="docutils literal notranslate"><span class="pre">dis</span></code> now works with asynchronous generator and coroutine
objects. Patch by George Collins based on diagnosis by Luciano Ramalho.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5001">bpo-5001</a>: There are a number of uninformative asserts in the
<code class="docutils literal notranslate"><span class="pre">multiprocessing</span></code> module, as noted in issue 5001. This change fixes two
of the most potentially problematic ones, since they are in
error-reporting code, in the <code class="docutils literal notranslate"><span class="pre">multiprocessing.managers.convert_to_error</span></code>
function. (It also makes more informative a ValueError message.) The only
potentially problematic change is that the AssertionError is now a
TypeError; however, this should also help distinguish it from an
AssertionError being <em>reported</em> by the function/its caller (such as in
issue 31169). - Patch by Allen W. Smith (drallensmith on github).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31185">bpo-31185</a>: Fixed miscellaneous errors in asyncio speedup module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31151">bpo-31151</a>: socketserver.ForkingMixIn.server_close() now waits until all
child processes completed to prevent leaking zombie processes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31072">bpo-31072</a>: Add an <code class="docutils literal notranslate"><span class="pre">include_file</span></code> parameter to
<code class="docutils literal notranslate"><span class="pre">zipapp.create_archive()</span></code></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24700">bpo-24700</a>: Optimize array.array comparison. It is now from 10x up to 70x
faster when comparing arrays holding values of the same integer type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31135">bpo-31135</a>: ttk: fix the destroy() method of LabeledScale and OptionMenu
classes. Call the parent destroy() method even if the used attribute
doesn’t exist. The LabeledScale.destroy() method now also explicitly
clears label and scale attributes to help the garbage collector to destroy
all widgets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31107">bpo-31107</a>: Fix <code class="docutils literal notranslate"><span class="pre">copyreg._slotnames()</span></code> mangled attribute calculation for
classes whose name begins with an underscore. Patch by Shane Harvey.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31080">bpo-31080</a>: Allow <code class="docutils literal notranslate"><span class="pre">logging.config.fileConfig</span></code> to accept kwargs and/or
args.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30897">bpo-30897</a>: <code class="docutils literal notranslate"><span class="pre">pathlib.Path</span></code> objects now include an <code class="docutils literal notranslate"><span class="pre">is_mount()</span></code> method
(only implemented on POSIX). This is similar to <code class="docutils literal notranslate"><span class="pre">os.path.ismount(p)</span></code>.
Patch by Cooper Ry Lees.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31061">bpo-31061</a>: Fixed a crash when using asyncio and threads.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30987">bpo-30987</a>: Added support for CAN ISO-TP protocol in the socket module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30522">bpo-30522</a>: Added a <code class="docutils literal notranslate"><span class="pre">setStream</span></code> method to <code class="docutils literal notranslate"><span class="pre">logging.StreamHandler</span></code> to
allow the stream to be set after creation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30502">bpo-30502</a>: Fix handling of long oids in ssl. Based on patch by Christian
Heimes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5288">bpo-5288</a>: Support tzinfo objects with sub-minute offsets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30919">bpo-30919</a>: Fix shared memory performance regression in multiprocessing in
3.x. Shared memory used anonymous memory mappings in 2.x, while 3.x mmaps
actual files. Try to be careful to do as little disk I/O as possible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26732">bpo-26732</a>: Fix too many fds in processes started with the “forkserver”
method. A child process would inherit as many fds as the number of
still-running children.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29403">bpo-29403</a>: Fix <code class="docutils literal notranslate"><span class="pre">unittest.mock</span></code>’s autospec to not fail on method-bound
builtin functions. Patch by Aaron Gallagher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30961">bpo-30961</a>: Fix decrementing a borrowed reference in tracemalloc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19896">bpo-19896</a>: Fix multiprocessing.sharedctypes to recognize typecodes <code class="docutils literal notranslate"><span class="pre">'q'</span></code>
and <code class="docutils literal notranslate"><span class="pre">'Q'</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30946">bpo-30946</a>: Remove obsolete code in readline module for platforms where GNU
readline is older than 2.1 or where select() is not available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25684">bpo-25684</a>: Change <code class="docutils literal notranslate"><span class="pre">ttk.OptionMenu</span></code> radiobuttons to be unique across
instances of <code class="docutils literal notranslate"><span class="pre">OptionMenu</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30886">bpo-30886</a>: Fix multiprocessing.Queue.join_thread(): it now waits until the
thread completes, even if the thread was started by the same process which
created the queue.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29854">bpo-29854</a>: Fix segfault in readline when using readline’s history-size
option. Patch by Nir Soffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30794">bpo-30794</a>: Added multiprocessing.Process.kill method to terminate using
the SIGKILL signal on Unix.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30319">bpo-30319</a>: socket.close() now ignores ECONNRESET error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30828">bpo-30828</a>: Fix out of bounds write in
<code class="docutils literal notranslate"><span class="pre">asyncio.CFuture.remove_done_callback()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30302">bpo-30302</a>: Use keywords in the <code class="docutils literal notranslate"><span class="pre">repr</span></code> of <code class="docutils literal notranslate"><span class="pre">datetime.timedelta</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30807">bpo-30807</a>: signal.setitimer() may disable the timer when passed a tiny
value. Tiny values (such as 1e-6) are valid non-zero values for
setitimer(), which is specified as taking microsecond-resolution
intervals. However, on some platform, our conversion routine could convert
1e-6 into a zero interval, therefore disabling the timer instead of
(re-)scheduling it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30441">bpo-30441</a>: Fix bug when modifying os.environ while iterating over it</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29585">bpo-29585</a>: Avoid importing <code class="docutils literal notranslate"><span class="pre">sysconfig</span></code> from <code class="docutils literal notranslate"><span class="pre">site</span></code> to improve startup
speed. Python startup is about 5% faster on Linux and 30% faster on macOS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29293">bpo-29293</a>: Add missing parameter “n” on
multiprocessing.Condition.notify(). The doc claims
multiprocessing.Condition behaves like threading.Condition, but its
notify() method lacked the optional “n” argument (to specify the number of
sleepers to wake up) that threading.Condition.notify() accepts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30532">bpo-30532</a>: Fix email header value parser dropping folding white space in
certain cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30596">bpo-30596</a>: Add a <code class="docutils literal notranslate"><span class="pre">close()</span></code> method to <code class="docutils literal notranslate"><span class="pre">multiprocessing.Process</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9146">bpo-9146</a>: Fix a segmentation fault in _hashopenssl when standard hash
functions such as md5 are not available in the linked OpenSSL library. As
in some special FIPS-140 build environments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29169">bpo-29169</a>: Update zlib to 1.2.11.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30119">bpo-30119</a>: ftplib.FTP.putline() now throws ValueError on commands that
contains CR or LF. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30879">bpo-30879</a>: os.listdir() and os.scandir() now emit bytes names when called
with bytes-like argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30746">bpo-30746</a>: Prohibited the ‘=’ character in environment variable names in
<code class="docutils literal notranslate"><span class="pre">os.putenv()</span></code> and <code class="docutils literal notranslate"><span class="pre">os.spawn*()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30664">bpo-30664</a>: The description of a unittest subtest now preserves the order
of keyword arguments of TestCase.subTest().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21071">bpo-21071</a>: struct.Struct.format type is now <a class="reference internal" href="../library/stdtypes.html#str" title="str"><code class="xref py py-class docutils literal notranslate"><span class="pre">str</span></code></a> instead of
<a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29212">bpo-29212</a>: Fix concurrent.futures.thread.ThreadPoolExecutor threads to
have a non repr() based thread name by default when no thread_name_prefix
is supplied. They will now identify themselves as
“ThreadPoolExecutor-y_n”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29755">bpo-29755</a>: Fixed the lgettext() family of functions in the gettext module.
They now always return bytes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30616">bpo-30616</a>: Functional API of enum allows to create empty enums. Patched by
Donghee Na</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30038">bpo-30038</a>: Fix race condition between signal delivery and wakeup file
descriptor. Patch by Nathaniel Smith.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23894">bpo-23894</a>: lib2to3 now recognizes <code class="docutils literal notranslate"><span class="pre">rb'...'</span></code> and <code class="docutils literal notranslate"><span class="pre">f'...'</span></code> strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24744">bpo-24744</a>: pkgutil.walk_packages function now raises ValueError if <em>path</em>
is a string. Patch by Sanyam Khurana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24484">bpo-24484</a>: Avoid race condition in multiprocessing cleanup.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30589">bpo-30589</a>: Fix multiprocessing.Process.exitcode to return the opposite of
the signal number when the process is killed by a signal (instead of 255)
when using the “forkserver” method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28994">bpo-28994</a>: The traceback no longer displayed for SystemExit raised in a
callback registered by atexit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30508">bpo-30508</a>: Don’t log exceptions if Task/Future “cancel()” method was
called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30645">bpo-30645</a>: Fix path calculation in <code class="docutils literal notranslate"><span class="pre">imp.load_package()</span></code>, fixing it for
cases when a package is only shipped with bytecodes. Patch by Alexandru
Ardelean.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11822">bpo-11822</a>: The dis.dis() function now is able to disassemble nested code
objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30624">bpo-30624</a>: selectors does not take KeyboardInterrupt and SystemExit into
account, leaving a fd in a bad state in case of error. Patch by Giampaolo
Rodola’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30595">bpo-30595</a>: multiprocessing.Queue.get() with a timeout now polls its reader
in non-blocking mode if it succeeded to acquire the lock but the acquire
took longer than the timeout.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Updates to typing module: Add generic AsyncContextManager, add
support for ContextManager on all versions. Original PRs by Jelle Zijlstra
and Ivan Levkivskyi</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30605">bpo-30605</a>: re.compile() no longer raises a BytesWarning when compiling a
bytes instance with misplaced inline modifier. Patch by Roy Williams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29870">bpo-29870</a>: Fix ssl sockets leaks when connection is aborted in asyncio/ssl
implementation. Patch by Michaël Sghaïer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29743">bpo-29743</a>: Closing transport during handshake process leaks open socket.
Patch by Nikolay Kim</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27585">bpo-27585</a>: Fix waiter cancellation in asyncio.Lock. Patch by Mathieu
Sornay.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30014">bpo-30014</a>: modify() method of poll(), epoll() and devpoll() based classes
of selectors module is around 10% faster. Patch by Giampaolo Rodola’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30418">bpo-30418</a>: On Windows, subprocess.Popen.communicate() now also ignore
EINVAL on stdin.write() if the child process is still running but closed
the pipe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30463">bpo-30463</a>: Added empty __slots__ to abc.ABC. This allows subclassers to
deny __dict__ and __weakref__ creation. Patch by Aaron Hall.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30520">bpo-30520</a>: Loggers are now pickleable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30557">bpo-30557</a>: faulthandler now correctly filters and displays exception codes
on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30526">bpo-30526</a>: Add TextIOWrapper.reconfigure() and a
TextIOWrapper.write_through attribute.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30245">bpo-30245</a>: Fix possible overflow when organize struct.pack_into error
message. Patch by Yuan Liu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30378">bpo-30378</a>: Fix the problem that logging.handlers.SysLogHandler cannot
handle IPv6 addresses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16500">bpo-16500</a>: Allow registering at-fork handlers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30470">bpo-30470</a>: Deprecate invalid ctypes call protection on Windows. Patch by
Mariatta Wijaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30414">bpo-30414</a>: multiprocessing.Queue._feed background running thread do not
break from main loop on exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30003">bpo-30003</a>: Fix handling escape characters in HZ codec. Based on patch by
Ma Lin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30149">bpo-30149</a>: inspect.signature() now supports callables with
variable-argument parameters wrapped with partialmethod. Patch by Donghee
Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30436">bpo-30436</a>: importlib.find_spec() raises ModuleNotFoundError instead of
AttributeError if the specified parent module is not a package (i.e. lacks
a __path__ attribute).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30301">bpo-30301</a>: Fix AttributeError when using SimpleQueue.empty() under <em>spawn</em>
and <em>forkserver</em> start methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30375">bpo-30375</a>: Warnings emitted when compile a regular expression now always
point to the line in the user code. Previously they could point into
inners of the re module if emitted from inside of groups or conditionals.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30329">bpo-30329</a>: imaplib and poplib now catch the Windows socket WSAEINVAL error
(code 10022) on shutdown(SHUT_RDWR): An invalid operation was attempted.
This error occurs sometimes on SSL connections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29196">bpo-29196</a>: Removed previously deprecated in Python 2.4 classes Plist, Dict
and _InternalDict in the plistlib module. Dict values in the result of
functions readPlist() and readPlistFromBytes() are now normal dicts. You
no longer can use attribute access to access items of these dictionaries.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9850">bpo-9850</a>: The <code class="xref py py-mod docutils literal notranslate"><span class="pre">macpath</span></code> is now deprecated and will be removed in
Python 3.8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30299">bpo-30299</a>: Compiling regular expression in debug mode on CPython now
displays the compiled bytecode in human readable form.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30048">bpo-30048</a>: Fixed <code class="docutils literal notranslate"><span class="pre">Task.cancel()</span></code> can be ignored when the task is running
coroutine and the coroutine returned without any more <code class="docutils literal notranslate"><span class="pre">await</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30266">bpo-30266</a>: contextlib.AbstractContextManager now supports
anti-registration by setting __enter__ = None or __exit__ = None,
following the pattern introduced in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25958">bpo-25958</a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30340">bpo-30340</a>: Enhanced regular expressions optimization. This increased the
performance of matching some patterns up to 25 times.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30298">bpo-30298</a>: Weaken the condition of deprecation warnings for inline
modifiers. Now allowed several subsequential inline modifiers at the start
of the pattern (e.g. <code class="docutils literal notranslate"><span class="pre">'(?i)(?s)...'</span></code>). In verbose mode whitespaces and
comments now are allowed before and between inline modifiers (e.g. <code class="docutils literal notranslate"><span class="pre">'(?x)</span>
<span class="pre">(?i)</span> <span class="pre">(?s)...'</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30285">bpo-30285</a>: Optimized case-insensitive matching and searching of regular
expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29990">bpo-29990</a>: Fix range checking in GB18030 decoder. Original patch by Ma
Lin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29979">bpo-29979</a>: rewrite cgi.parse_multipart, reusing the FieldStorage class and
making its results consistent with those of FieldStorage for
multipart/form-data requests. Patch by Pierre Quentel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30243">bpo-30243</a>: Removed the __init__ methods of _json’s scanner and encoder.
Misusing them could cause memory leaks or crashes. Now scanner and
encoder objects are completely initialized in the __new__ methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30215">bpo-30215</a>: Compiled regular expression objects with the re.LOCALE flag no
longer depend on the locale at compile time. Only the locale at matching
time affects the result of matching.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30185">bpo-30185</a>: Avoid KeyboardInterrupt tracebacks in forkserver helper process
when Ctrl-C is received.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30103">bpo-30103</a>: binascii.b2a_uu() and uu.encode() now support using <code class="docutils literal notranslate"><span class="pre">'`'</span></code> as
zero instead of space.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Various updates to typing module: add typing.NoReturn type, use
WrapperDescriptorType, minor bug-fixes. Original PRs by Jim
Fasarakis-Hilliard and Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30205">bpo-30205</a>: Fix getsockname() for unbound AF_UNIX sockets on Linux.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30228">bpo-30228</a>: The seek() and tell() methods of io.FileIO now set the internal
seekable attribute to avoid one syscall on open() (in buffered or text
mode).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30190">bpo-30190</a>: unittest’s assertAlmostEqual and assertNotAlmostEqual provide a
better message in case of failure which includes the difference between
left and right arguments. (patch by Giampaolo Rodola’)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30101">bpo-30101</a>: Add support for curses.A_ITALIC.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29822">bpo-29822</a>: inspect.isabstract() now works during __init_subclass__. Patch
by Nate Soares.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29960">bpo-29960</a>: Preserve generator state when _random.Random.setstate() raises
an exception. Patch by Bryan Olson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30070">bpo-30070</a>: Fixed leaks and crashes in errors handling in the parser
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22352">bpo-22352</a>: Column widths in the output of dis.dis() are now adjusted for
large line numbers and instruction offsets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30061">bpo-30061</a>: Fixed crashes in IOBase methods __next__() and readlines() when
readline() or __next__() respectively return non-sizeable object. Fixed
possible other errors caused by not checking results of PyObject_Size(),
PySequence_Size(), or PyMapping_Size().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30218">bpo-30218</a>: Fix PathLike support for shutil.unpack_archive. Patch by Jelle
Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10076">bpo-10076</a>: Compiled regular expression and match objects in the re module
now support copy.copy() and copy.deepcopy() (they are considered atomic).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30068">bpo-30068</a>: _io._IOBase.readlines will check if it’s closed first when hint
is present.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29694">bpo-29694</a>: Fixed race condition in pathlib mkdir with flags parents=True.
Patch by Armin Rigo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29692">bpo-29692</a>: Fixed arbitrary unchaining of RuntimeError exceptions in
contextlib.contextmanager. Patch by Siddharth Velankar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26187">bpo-26187</a>: Test that sqlite3 trace callback is not called multiple times
when schema is changing. Indirectly fixed by switching to use
sqlite3_prepare_v2() in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9303">bpo-9303</a>. Patch by Aviv Palivoda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30017">bpo-30017</a>: Allowed calling the close() method of the zip entry writer
object multiple times. Writing to a closed writer now always produces a
ValueError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29998">bpo-29998</a>: Pickling and copying ImportError now preserves name and path
attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29995">bpo-29995</a>: re.escape() now escapes only regex special characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29962">bpo-29962</a>: Add math.remainder operation, implementing remainder as
specified in IEEE 754.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29649">bpo-29649</a>: Improve struct.pack_into() exception messages for problems with
the buffer size and offset. Patch by Andrew Nester.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29654">bpo-29654</a>: Support If-Modified-Since HTTP header (browser cache). Patch
by Pierre Quentel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29931">bpo-29931</a>: Fixed comparison check for ipaddress.ip_interface objects.
Patch by Sanjay Sundaresan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29953">bpo-29953</a>: Fixed memory leaks in the replace() method of datetime and time
objects when pass out of bound fold argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29942">bpo-29942</a>: Fix a crash in itertools.chain.from_iterable when encountering
long runs of empty iterables.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10030">bpo-10030</a>: Sped up reading encrypted ZIP files by 2 times.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29204">bpo-29204</a>: Element.getiterator() and the html parameter of XMLParser()
were deprecated only in the documentation (since Python 3.2 and 3.4
correspondingly). Now using them emits a deprecation warning.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27863">bpo-27863</a>: Fixed multiple crashes in ElementTree caused by race conditions
and wrong types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25996">bpo-25996</a>: Added support of file descriptors in os.scandir() on Unix.
os.fwalk() is sped up by 2 times by using os.scandir().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28699">bpo-28699</a>: Fixed a bug in pools in multiprocessing.pool that raising an
exception at the very first of an iterable may swallow the exception or
make the program hang. Patch by Davin Potts and Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23890">bpo-23890</a>: unittest.TestCase.assertRaises() now manually breaks a
reference cycle to not keep objects alive longer than expected.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29901">bpo-29901</a>: The zipapp module now supports general path-like objects, not
just pathlib.Path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25803">bpo-25803</a>: Avoid incorrect errors raised by Path.mkdir(exist_ok=True) when
the OS gives priority to errors such as EACCES over EEXIST.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29861">bpo-29861</a>: Release references to tasks, their arguments and their results
as soon as they are finished in multiprocessing.Pool.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19930">bpo-19930</a>: The mode argument of os.makedirs() no longer affects the file
permission bits of newly created intermediate-level directories.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29884">bpo-29884</a>: faulthandler: Restore the old sigaltstack during teardown.
Patch by Christophe Zeitouny.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25455">bpo-25455</a>: Fixed crashes in repr of recursive buffered file-like objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29800">bpo-29800</a>: Fix crashes in partial.__repr__ if the keys of partial.keywords
are not strings. Patch by Michael Seifert.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8256">bpo-8256</a>: Fixed possible failing or crashing input() if attributes
“encoding” or “errors” of sys.stdin or sys.stdout are not set or are not
strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28692">bpo-28692</a>: Using non-integer value for selecting a plural form in gettext
is now deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26121">bpo-26121</a>: Use C library implementation for math functions erf() and
erfc().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29619">bpo-29619</a>: os.stat() and os.DirEntry.inode() now convert inode (st_ino)
using unsigned integers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28298">bpo-28298</a>: Fix a bug that prevented array ‘Q’, ‘L’ and ‘I’ from accepting
big intables (objects that have __int__) as elements.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29645">bpo-29645</a>: Speed up importing the webbrowser module.
webbrowser.register() is now thread-safe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28231">bpo-28231</a>: The zipfile module now accepts path-like objects for external
paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26915">bpo-26915</a>: index() and count() methods of collections.abc.Sequence now
check identity before checking equality when do comparisons.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28682">bpo-28682</a>: Added support for bytes paths in os.fwalk().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29728">bpo-29728</a>: Add new <code class="xref py py-const docutils literal notranslate"><span class="pre">socket.TCP_NOTSENT_LOWAT</span></code> (Linux 3.12)
constant. Patch by Nathaniel J. Smith.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29623">bpo-29623</a>: Allow use of path-like object as a single argument in
ConfigParser.read(). Patch by David Ellis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9303">bpo-9303</a>: Migrate sqlite3 module to _v2 API. Patch by Aviv Palivoda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28963">bpo-28963</a>: Fix out of bound iteration in
asyncio.Future.remove_done_callback implemented in C.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29704">bpo-29704</a>: asyncio.subprocess.SubprocessStreamProtocol no longer closes
before all pipes are closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29271">bpo-29271</a>: Fix Task.current_task and Task.all_tasks implemented in C to
accept None argument as their pure Python implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29703">bpo-29703</a>: Fix asyncio to support instantiation of new event loops in
child processes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29615">bpo-29615</a>: SimpleXMLRPCDispatcher no longer chains KeyError (or any other
exception) to exception(s) raised in the dispatched methods. Patch by Petr
Motejlek.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=7769">bpo-7769</a>: Method register_function() of
xmlrpc.server.SimpleXMLRPCDispatcher and its subclasses can now be used as
a decorator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29376">bpo-29376</a>: Fix assertion error in threading._DummyThread.is_alive().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28624">bpo-28624</a>: Add a test that checks that cwd parameter of Popen() accepts
PathLike objects. Patch by Sayan Chowdhury.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28518">bpo-28518</a>: Start a transaction implicitly before a DML statement. Patch by
Aviv Palivoda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29742">bpo-29742</a>: get_extra_info() raises exception if get called on closed ssl
transport. Patch by Nikolay Kim.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16285">bpo-16285</a>: urllib.parse.quote is now based on RFC 3986 and hence includes
‘~’ in the set of characters that is not quoted by default. Patch by
Christian Theune and Ratnadeep Debnath.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29532">bpo-29532</a>: Altering a kwarg dictionary passed to functools.partial() no
longer affects a partial object after creation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29110">bpo-29110</a>: Fix file object leak in aifc.open() when file is given as a
filesystem path and is not in valid AIFF format. Patch by Anthony Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22807">bpo-22807</a>: Add uuid.SafeUUID and uuid.UUID.is_safe to relay information
from the platform about whether generated UUIDs are generated with a
multiprocessing safe method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29576">bpo-29576</a>: Improve some deprecations in importlib. Some deprecated methods
now emit DeprecationWarnings and have better descriptive messages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29534">bpo-29534</a>: Fixed different behaviour of Decimal.from_float() for _decimal
and _pydecimal. Thanks Andrew Nester.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10379">bpo-10379</a>: locale.format_string now supports the ‘monetary’ keyword
argument, and locale.format is deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29851">bpo-29851</a>: importlib.reload() now raises ModuleNotFoundError if the module
lacks a spec.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Various updates to typing module: typing.Counter,
typing.ChainMap, improved ABC caching, etc. Original PRs by Jelle
Zijlstra, Ivan Levkivskyi, Manuel Krebber, and Łukasz Langa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29100">bpo-29100</a>: Fix datetime.fromtimestamp() regression introduced in Python
3.6.0: check minimum and maximum years.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29416">bpo-29416</a>: Prevent infinite loop in pathlib.Path.mkdir</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29444">bpo-29444</a>: Fixed out-of-bounds buffer access in the group() method of the
match object. Based on patch by WGH.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29377">bpo-29377</a>: Add WrapperDescriptorType, MethodWrapperType, and
MethodDescriptorType built-in types to types module. Original patch by
Manuel Krebber.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29218">bpo-29218</a>: Unused install_misc command is now removed. It has been
documented as unused since 2000. Patch by Eric N. Vander Weele.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29368">bpo-29368</a>: The extend() method is now called instead of the append()
method when unpickle collections.deque and other list-like objects. This
can speed up unpickling to 2 times.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29338">bpo-29338</a>: The help of a builtin or extension class now includes the
constructor signature if __text_signature__ is provided for the class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29335">bpo-29335</a>: Fix subprocess.Popen.wait() when the child process has exited
to a stopped instead of terminated state (ex: when under ptrace).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29290">bpo-29290</a>: Fix a regression in argparse that help messages would wrap at
non-breaking spaces.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28735">bpo-28735</a>: Fixed the comparison of mock.MagickMock with mock.ANY.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29197">bpo-29197</a>: Removed deprecated function ntpath.splitunc().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29210">bpo-29210</a>: Removed support of deprecated argument “exclude” in
tarfile.TarFile.add().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29219">bpo-29219</a>: Fixed infinite recursion in the repr of uninitialized
ctypes.CDLL instances.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29192">bpo-29192</a>: Removed deprecated features in the http.cookies module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29193">bpo-29193</a>: A format string argument for string.Formatter.format() is now
positional-only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29195">bpo-29195</a>: Removed support of deprecated undocumented keyword arguments in
methods of regular expression objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28969">bpo-28969</a>: Fixed race condition in C implementation of
functools.lru_cache. KeyError could be raised when cached function with
full cache was simultaneously called from different threads with the same
uncached arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20804">bpo-20804</a>: The unittest.mock.sentinel attributes now preserve their
identity when they are copied or pickled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29142">bpo-29142</a>: In urllib.request, suffixes in no_proxy environment variable
with leading dots could match related hostnames again (e.g. .b.c matches
a.b.c). Patch by Milan Oberkirch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28961">bpo-28961</a>: Fix unittest.mock._Call helper: don’t ignore the name parameter
anymore. Patch written by Jiajun Huang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15812">bpo-15812</a>: inspect.getframeinfo() now correctly shows the first line of a
context. Patch by Sam Breese.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28985">bpo-28985</a>: Update authorizer constants in sqlite3 module. Patch by
Dingyuan Wang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29079">bpo-29079</a>: Prevent infinite loop in pathlib.resolve() on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13051">bpo-13051</a>: Fixed recursion errors in large or resized
curses.textpad.Textbox. Based on patch by Tycho Andersen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9770">bpo-9770</a>: curses.ascii predicates now work correctly with negative
integers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28427">bpo-28427</a>: old keys should not remove new values from WeakValueDictionary
when collecting from another thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28923">bpo-28923</a>: Remove editor artifacts from Tix.py.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28871">bpo-28871</a>: Fixed a crash when deallocate deep ElementTree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19542">bpo-19542</a>: Fix bugs in WeakValueDictionary.setdefault() and
WeakValueDictionary.pop() when a GC collection happens in another thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20191">bpo-20191</a>: Fixed a crash in resource.prlimit() when passing a sequence
that doesn’t own its elements as limits.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16255">bpo-16255</a>: subprocess.Popen uses /system/bin/sh on Android as the shell,
instead of /bin/sh.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28779">bpo-28779</a>: multiprocessing.set_forkserver_preload() would crash the
forkserver process if a preloaded module instantiated some multiprocessing
objects such as locks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26937">bpo-26937</a>: The chown() method of the tarfile.TarFile class does not fail
now when the grp module cannot be imported, as for example on Android
platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28847">bpo-28847</a>: dbm.dumb now supports reading read-only files and no longer
writes the index file when it is not changed. A deprecation warning is
now emitted if the index file is missed and recreated in the ‘r’ and ‘w’
modes (will be an error in future Python releases).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27030">bpo-27030</a>: Unknown escapes consisting of <code class="docutils literal notranslate"><span class="pre">'\'</span></code> and an ASCII letter in
re.sub() replacement templates regular expressions now are errors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28835">bpo-28835</a>: Fix a regression introduced in warnings.catch_warnings(): call
warnings.showwarning() if it was overridden inside the context manager.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27172">bpo-27172</a>: To assist with upgrades from 2.7, the previously documented
deprecation of <code class="docutils literal notranslate"><span class="pre">inspect.getfullargspec()</span></code> has been reversed. This
decision may be revisited again after the Python 2.7 branch is no longer
officially supported.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28740">bpo-28740</a>: Add sys.getandroidapilevel(): return the build time API version
of Android as an integer. Function only available on Android.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26273">bpo-26273</a>: Add new <code class="xref py py-const docutils literal notranslate"><span class="pre">socket.TCP_CONGESTION</span></code> (Linux 2.6.13) and
<code class="xref py py-const docutils literal notranslate"><span class="pre">socket.TCP_USER_TIMEOUT</span></code> (Linux 2.6.37) constants. Patch written
by Omar Sandoval.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28752">bpo-28752</a>: Restored the __reduce__() methods of datetime objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28727">bpo-28727</a>: Regular expression patterns, _sre.SRE_Pattern objects created
by re.compile(), become comparable (only x==y and x!=y operators). This
change should fix the <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18383">bpo-18383</a>: don’t duplicate warning filters when
the warnings module is reloaded (thing usually only done in unit tests).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20572">bpo-20572</a>: Remove the subprocess.Popen.wait endtime parameter. It was
deprecated in 3.4 and undocumented prior to that.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25659">bpo-25659</a>: In ctypes, prevent a crash calling the from_buffer() and
from_buffer_copy() methods on abstract classes like Array.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28548">bpo-28548</a>: In the “http.server” module, parse the protocol version if
possible, to avoid using HTTP 0.9 in some error responses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19717">bpo-19717</a>: Makes Path.resolve() succeed on paths that do not exist. Patch
by Vajrasky Kok</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28563">bpo-28563</a>: Fixed possible DoS and arbitrary code execution when handle
plural form selections in the gettext module. The expression parser now
supports exact syntax supported by GNU gettext.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28387">bpo-28387</a>: Fixed possible crash in _io.TextIOWrapper deallocator when the
garbage collector is invoked in other thread. Based on patch by Sebastian
Cufre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27517">bpo-27517</a>: LZMA compressor and decompressor no longer raise exceptions if
given empty data twice. Patch by Benjamin Fogle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28549">bpo-28549</a>: Fixed segfault in curses’s addch() with ncurses6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28449">bpo-28449</a>: tarfile.open() with mode “r” or “r:” now tries to open a tar
file with compression before trying to open it without compression.
Otherwise it had 50% chance failed with ignore_zeros=True.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23262">bpo-23262</a>: The webbrowser module now supports Firefox 36+ and derived
browsers. Based on patch by Oleg Broytman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24241">bpo-24241</a>: The webbrowser in an X environment now prefers using the
default browser directly. Also, the webbrowser register() function now has
a documented ‘preferred’ argument, to specify browsers to be returned by
get() with no arguments. Patch by David Steele</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27939">bpo-27939</a>: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused
by representing the scale as float value internally in Tk. tkinter.IntVar
now works if float value is set to underlying Tk variable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28255">bpo-28255</a>: calendar.TextCalendar.prweek() no longer prints a space after a
weeks’s calendar. calendar.TextCalendar.pryear() no longer prints
redundant newline after a year’s calendar. Based on patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28255">bpo-28255</a>: calendar.TextCalendar.prmonth() no longer prints a space at the
start of new line after printing a month’s calendar. Patch by Xiang
Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20491">bpo-20491</a>: The textwrap.TextWrapper class now honors non-breaking spaces.
Based on patch by Kaarle Ritvanen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28353">bpo-28353</a>: os.fwalk() no longer fails on broken links.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28430">bpo-28430</a>: Fix iterator of C implemented asyncio.Future doesn’t accept
non-None value is passed to it.send(val).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27025">bpo-27025</a>: Generated names for Tkinter widgets now start by the “!” prefix
for readability.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25464">bpo-25464</a>: Fixed HList.header_exists() in tkinter.tix module by addin a
workaround to Tix library bug.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28488">bpo-28488</a>: shutil.make_archive() no longer adds entry “./” to ZIP archive.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25953">bpo-25953</a>: re.sub() now raises an error for invalid numerical group
reference in replacement template even if the pattern is not found in the
string. Error message for invalid group reference now includes the group
index and the position of the reference. Based on patch by SilentGhost.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28469">bpo-28469</a>: timeit now uses the sequence 1, 2, 5, 10, 20, 50,… instead of
1, 10, 100,… for autoranging.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28115">bpo-28115</a>: Command-line interface of the zipfile module now uses argparse.
Added support of long options.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18219">bpo-18219</a>: Optimize csv.DictWriter for large number of columns. Patch by
Mariatta Wijaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28448">bpo-28448</a>: Fix C implemented asyncio.Future didn’t work on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23214">bpo-23214</a>: In the “io” module, the argument to BufferedReader and
BytesIO’s read1() methods is now optional and can be -1, matching the
BufferedIOBase specification.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28480">bpo-28480</a>: Fix error building socket module when multithreading is
disabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28240">bpo-28240</a>: timeit: remove <code class="docutils literal notranslate"><span class="pre">-c/--clock</span></code> and <code class="docutils literal notranslate"><span class="pre">-t/--time</span></code> command line
options which were deprecated since Python 3.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28240">bpo-28240</a>: timeit now repeats the benchmarks 5 times instead of only 3 to
make benchmarks more reliable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28240">bpo-28240</a>: timeit autorange now uses a single loop iteration if the
benchmark takes less than 10 seconds, instead of 10 iterations. “python3
-m timeit -s ‘import time’ ‘time.sleep(1)’” now takes 4 seconds instead of
40 seconds.</p></li>
<li><p>Distutils.sdist now looks for README and setup.py files with case
sensitivity. This behavior matches that found in Setuptools 6.0 and later.
See <a class="reference external" href="https://github.com/pypa/setuptools/issues/100">setuptools 100</a> for
rationale.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24452">bpo-24452</a>: Make webbrowser support Chrome on Mac OS X. Patch by Ned
Batchelder.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20766">bpo-20766</a>: Fix references leaked by pdb in the handling of SIGINT
handlers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27998">bpo-27998</a>: Fixed bytes path support in os.scandir() on Windows. Patch by
Eryk Sun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28317">bpo-28317</a>: The disassembler now decodes FORMAT_VALUE argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28380">bpo-28380</a>: unittest.mock Mock autospec functions now properly support
assert_called, assert_not_called, and assert_called_once.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28229">bpo-28229</a>: lzma module now supports pathlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28321">bpo-28321</a>: Fixed writing non-BMP characters with binary format in
plistlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28225">bpo-28225</a>: bz2 module now supports pathlib. Initial patch by Ethan
Furman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28227">bpo-28227</a>: gzip now supports pathlib. Patch by Ethan Furman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28332">bpo-28332</a>: Deprecated silent truncations in socket.htons and socket.ntohs.
Original patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27358">bpo-27358</a>: Optimized merging var-keyword arguments and improved error
message when passing a non-mapping as a var-keyword argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28257">bpo-28257</a>: Improved error message when passing a non-iterable as a
var-positional argument. Added opcode BUILD_TUPLE_UNPACK_WITH_CALL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28322">bpo-28322</a>: Fixed possible crashes when unpickle itertools objects from
incorrect pickle data. Based on patch by John Leitch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28228">bpo-28228</a>: imghdr now supports pathlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28226">bpo-28226</a>: compileall now supports pathlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28314">bpo-28314</a>: Fix function declaration (C flags) for the getiterator() method
of xml.etree.ElementTree.Element.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28148">bpo-28148</a>: Stop using localtime() and gmtime() in the time module.
Introduced platform independent _PyTime_localtime API that is similar to
POSIX localtime_r, but available on all platforms. Patch by Ed Schouten.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28253">bpo-28253</a>: Fixed calendar functions for extreme months: 0001-01 and
9999-12. Methods itermonthdays() and itermonthdays2() are reimplemented so
that they don’t call itermonthdates() which can cause datetime.date
under/overflow.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28275">bpo-28275</a>: Fixed possible use after free in the decompress() methods of
the LZMADecompressor and BZ2Decompressor classes. Original patch by John
Leitch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27897">bpo-27897</a>: Fixed possible crash in sqlite3.Connection.create_collation()
if pass invalid string-like object as a name. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18844">bpo-18844</a>: random.choices() now has k as a keyword-only argument to
improve the readability of common cases and come into line with the
signature used in other languages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18893">bpo-18893</a>: Fix invalid exception handling in Lib/ctypes/macholib/dyld.py.
Patch by Madison May.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27611">bpo-27611</a>: Fixed support of default root window in the tkinter.tix module.
Added the master parameter in the DisplayStyle constructor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27348">bpo-27348</a>: In the traceback module, restore the formatting of exception
messages like “Exception: None”. This fixes a regression introduced in
3.5a2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25651">bpo-25651</a>: Allow false values to be used for msg parameter of subTest().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27778">bpo-27778</a>: Fix a memory leak in os.getrandom() when the getrandom() is
interrupted by a signal and a signal handler raises a Python exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28200">bpo-28200</a>: Fix memory leak on Windows in the os module (fix
path_converter() function).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25400">bpo-25400</a>: RobotFileParser now correctly returns default values for
crawl_delay and request_rate. Initial patch by Peter Wirtz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27932">bpo-27932</a>: Prevent memory leak in win32_ver().</p></li>
<li><p>Fix UnboundLocalError in socket._sendfile_use_sendfile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28075">bpo-28075</a>: Check for ERROR_ACCESS_DENIED in Windows implementation of
os.stat(). Patch by Eryk Sun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22493">bpo-22493</a>: Warning message emitted by using inline flags in the middle of
regular expression now contains a (truncated) regex pattern. Patch by Tim
Graham.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25270">bpo-25270</a>: Prevent codecs.escape_encode() from raising SystemError when an
empty bytestring is passed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28181">bpo-28181</a>: Get antigravity over HTTPS. Patch by Kaartic Sivaraam.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25895">bpo-25895</a>: Enable WebSocket URL schemes in urllib.parse.urljoin. Patch by
Gergely Imreh and Markus Holtermann.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28114">bpo-28114</a>: Fix a crash in parse_envlist() when env contains byte strings.
Patch by Eryk Sun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27599">bpo-27599</a>: Fixed buffer overrun in binascii.b2a_qp() and
binascii.a2b_qp().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27906">bpo-27906</a>: Fix socket accept exhaustion during high TCP traffic. Patch by
Kevin Conway.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28174">bpo-28174</a>: Handle when SO_REUSEPORT isn’t properly supported. Patch by
Seth Michael Larson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26654">bpo-26654</a>: Inspect functools.partial in asyncio.Handle.__repr__. Patch by
iceboy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26909">bpo-26909</a>: Fix slow pipes IO in asyncio. Patch by INADA Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28176">bpo-28176</a>: Fix callbacks race in asyncio.SelectorLoop.sock_connect.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27759">bpo-27759</a>: Fix selectors incorrectly retain invalid file descriptors.
Patch by Mark Williams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28325">bpo-28325</a>: Remove vestigial MacOS 9 macurl2path module and its tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28368">bpo-28368</a>: Refuse monitoring processes if the child watcher has no loop
attached. Patch by Vincent Michel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28369">bpo-28369</a>: Raise RuntimeError when transport’s FD is used with add_reader,
add_writer, etc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28370">bpo-28370</a>: Speedup asyncio.StreamReader.readexactly. Patch by Коренберг
Марк.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28371">bpo-28371</a>: Deprecate passing asyncio.Handles to run_in_executor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28372">bpo-28372</a>: Fix asyncio to support formatting of non-python coroutines.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28399">bpo-28399</a>: Remove UNIX socket from FS before binding. Patch by Коренберг
Марк.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27972">bpo-27972</a>: Prohibit Tasks to await on themselves.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24142">bpo-24142</a>: Reading a corrupt config file left configparser in an invalid
state. Original patch by Florian Höch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29581">bpo-29581</a>: ABCMeta.__new__ now accepts <code class="docutils literal notranslate"><span class="pre">**kwargs</span></code>, allowing abstract
base classes to use keyword parameters in __init_subclass__. Patch by Nate
Soares.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25532">bpo-25532</a>: inspect.unwrap() will now only try to unwrap an object
sys.getrecursionlimit() times, to protect against objects which create a
new object on every attribute access.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30177">bpo-30177</a>: path.resolve(strict=False) no longer cuts the path after the
first element not present in the filesystem. Patch by Antoine Pietri.</p></li>
</ul>
</section>
<section id="id604">
<h3>Documentation<a class="headerlink" href="#id604" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31294">bpo-31294</a>: Fix incomplete code snippet in the ZeroMQSocketListener and
ZeroMQSocketHandler examples and adapt them to Python 3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21649">bpo-21649</a>: Add RFC 7525 and Mozilla server side TLS links to SSL
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31128">bpo-31128</a>: Allow the pydoc server to bind to arbitrary hostnames.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30803">bpo-30803</a>: Clarify doc on truth value testing. Original patch by Peter
Thomassen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30176">bpo-30176</a>: Add missing attribute related constants in curses
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30052">bpo-30052</a>: the link targets for <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">bytes()</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-func docutils literal notranslate"><span class="pre">bytearray()</span></code></a> are
now their respective type definitions, rather than the corresponding
builtin function entries. Use <a class="reference internal" href="../library/functions.html#func-bytes"><span class="std std-ref">bytes</span></a> and
<a class="reference internal" href="../library/functions.html#func-bytearray"><span class="std std-ref">bytearray</span></a> to reference the latter. In order to
ensure this and future cross-reference updates are applied automatically,
the daily documentation builds now disable the default output caching
features in Sphinx.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26985">bpo-26985</a>: Add missing info of code object in inspect documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19824">bpo-19824</a>: Improve the documentation for, and links to, template strings
by emphasizing their utility for internationalization, and by clarifying
some usage constraints. (See also: <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20314">bpo-20314</a>, <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12518">bpo-12518</a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28929">bpo-28929</a>: Link the documentation to its source file on GitHub.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25008">bpo-25008</a>: Document smtpd.py as effectively deprecated and add a pointer
to aiosmtpd, a third-party asyncio-based replacement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26355">bpo-26355</a>: Add canonical header link on each page to corresponding major
version of the documentation. Patch by Matthias Bussonnier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29349">bpo-29349</a>: Fix Python 2 syntax in code for building the documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23722">bpo-23722</a>: The data model reference and the porting section in the 3.6
What’s New guide now cover the additional <code class="docutils literal notranslate"><span class="pre">__classcell__</span></code> handling
needed for custom metaclasses to fully support <span class="target" id="index-405"></span><a class="pep reference external" href="https://peps.python.org/pep-0487/"><strong>PEP 487</strong></a> and
zero-argument <code class="docutils literal notranslate"><span class="pre">super()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28513">bpo-28513</a>: Documented command-line interface of zipfile.</p></li>
</ul>
</section>
<section id="id605">
<h3>Tests<a class="headerlink" href="#id605" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29639">bpo-29639</a>: test.support.HOST is now “localhost”, a new HOSTv4 constant has
been added for your <code class="docutils literal notranslate"><span class="pre">127.0.0.1</span></code> needs, similar to the existing HOSTv6
constant.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31320">bpo-31320</a>: Silence traceback in test_ssl</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31346">bpo-31346</a>: Prefer PROTOCOL_TLS_CLIENT and PROTOCOL_TLS_SERVER protocols
for SSLContext.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25674">bpo-25674</a>: Remove sha256.tbs-internet.com ssl test</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30715">bpo-30715</a>: Address ALPN callback changes for OpenSSL 1.1.0f. The latest
version behaves like OpenSSL 1.0.2 and no longer aborts handshake.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30822">bpo-30822</a>: regrtest: Exclude tzdata from regrtest –all. When running the
test suite using –use=all / -u all, exclude tzdata since it makes
test_datetime too slow (15-20 min on some buildbots) which then times out
on some buildbots. Fix also regrtest command line parser to allow passing
-u extralargefile to run test_zipfile64.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30695">bpo-30695</a>: Add the <code class="docutils literal notranslate"><span class="pre">set_nomemory(start,</span> <span class="pre">stop)</span></code> and
<code class="docutils literal notranslate"><span class="pre">remove_mem_hooks()</span></code> functions to the <code class="docutils literal notranslate"><span class="pre">_testcapi</span></code> module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30357">bpo-30357</a>: test_thread: setUp() now uses support.threading_setup() and
support.threading_cleanup() to wait until threads complete to avoid random
side effects on following tests. Initial patch written by Grzegorz
Grzywacz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30197">bpo-30197</a>: Enhanced functions swap_attr() and swap_item() in the
test.support module. They now work when delete replaced attribute or item
inside the with statement. The old value of the attribute or item (or
None if it doesn’t exist) now will be assigned to the target of the “as”
clause, if there is one.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24932">bpo-24932</a>: Use proper command line parsing in _testembed</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28950">bpo-28950</a>: Disallow -j0 to be combined with -T/-l in regrtest command line
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28683">bpo-28683</a>: Fix the tests that bind() a unix socket and raise
PermissionError on Android for a non-root user.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26936">bpo-26936</a>: Fix the test_socket failures on Android - getservbyname(),
getservbyport() and getaddrinfo() are broken on some Android API levels.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28666">bpo-28666</a>: Now test.support.rmtree is able to remove unwritable or
unreadable directories.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23839">bpo-23839</a>: Various caches now are cleared before running every test file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26944">bpo-26944</a>: Fix test_posix for Android where ‘id -G’ is entirely wrong or
missing the effective gid.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28409">bpo-28409</a>: regrtest: fix the parser of command line arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28217">bpo-28217</a>: Adds _testconsole module to test console input.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26939">bpo-26939</a>: Add the support.setswitchinterval() function to fix
test_functools hanging on the Android armv7 qemu emulator.</p></li>
</ul>
</section>
<section id="id606">
<h3>Build<a class="headerlink" href="#id606" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31354">bpo-31354</a>: Allow <code class="docutils literal notranslate"><span class="pre">--with-lto</span></code> to be used on all builds, not just <code class="docutils literal notranslate"><span class="pre">make</span>
<span class="pre">profile-opt</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31370">bpo-31370</a>: Remove support for building –without-threads. This option is
not really useful anymore in the 21st century. Removing lots of
conditional paths allows us to simplify the code base, including in
difficult to maintain low-level internal code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31341">bpo-31341</a>: Per <span class="target" id="index-406"></span><a class="pep reference external" href="https://peps.python.org/pep-0011/"><strong>PEP 11</strong></a>, support for the IRIX operating system was
removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30854">bpo-30854</a>: Fix compile error when compiling –without-threads. Patch by
Masayuki Yamamoto.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30687">bpo-30687</a>: Locate msbuild.exe on Windows when building rather than
vcvarsall.bat</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20210">bpo-20210</a>: Support the <em>disabled</em> marker in Setup files. Extension modules
listed after this marker are not built at all, neither by the Makefile nor
by setup.py.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29941">bpo-29941</a>: Add <code class="docutils literal notranslate"><span class="pre">--with-assertions</span></code> configure flag to explicitly enable C
<code class="docutils literal notranslate"><span class="pre">assert()</span></code> checks. Defaults to off. <code class="docutils literal notranslate"><span class="pre">--with-pydebug</span></code> implies
<code class="docutils literal notranslate"><span class="pre">--with-assertions</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28787">bpo-28787</a>: Fix out-of-tree builds of Python when configured with
<code class="docutils literal notranslate"><span class="pre">--with--dtrace</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29243">bpo-29243</a>: Prevent unnecessary rebuilding of Python during <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span></code>,
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> and some other make targets when configured with
<code class="docutils literal notranslate"><span class="pre">--enable-optimizations</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23404">bpo-23404</a>: Don’t regenerate generated files based on file modification
time anymore: the action is now explicit. Replace <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">touch</span></code> with
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-all</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29643">bpo-29643</a>: Fix <code class="docutils literal notranslate"><span class="pre">--enable-optimization</span></code> didn’t work.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27593">bpo-27593</a>: sys.version and the platform module python_build(),
python_branch(), and python_revision() functions now use git information
rather than hg when building from a repo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29572">bpo-29572</a>: Update Windows build and OS X installers to use OpenSSL 1.0.2k.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27659">bpo-27659</a>: Prohibit implicit C function declarations: use
<code class="docutils literal notranslate"><span class="pre">-Werror=implicit-function-declaration</span></code> when possible (GCC and Clang,
but it depends on the compiler version). Patch written by Chi Hsuan Yen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29384">bpo-29384</a>: Remove old Be OS helper scripts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26851">bpo-26851</a>: Set Android compilation and link flags.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28768">bpo-28768</a>: Fix implicit declaration of function _setmode. Patch by
Masayuki Yamamoto</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29080">bpo-29080</a>: Removes hard dependency on hg.exe from PCBuild/build.bat</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23903">bpo-23903</a>: Added missed names to PC/python3.def.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28762">bpo-28762</a>: lockf() is available on Android API level 24, but the F_LOCK
macro is not defined in android-ndk-r13.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28538">bpo-28538</a>: Fix the compilation error that occurs because if_nameindex() is
available on Android API level 24, but the if_nameindex structure is not
defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20211">bpo-20211</a>: Do not add the directory for installing C header files and the
directory for installing object code libraries to the cross compilation
search paths. Original patch by Thomas Petazzoni.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28849">bpo-28849</a>: Do not define sys.implementation._multiarch on Android.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10656">bpo-10656</a>: Fix out-of-tree building on AIX. Patch by Tristan Carel and
Michael Haubenwallner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26359">bpo-26359</a>: Rename –with-optimiations to –enable-optimizations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28444">bpo-28444</a>: Fix missing extensions modules when cross compiling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28208">bpo-28208</a>: Update Windows build and OS X installers to use SQLite 3.14.2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28248">bpo-28248</a>: Update Windows build and OS X installers to use OpenSSL 1.0.2j.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21124">bpo-21124</a>: Fix building the _struct module on Cygwin by passing <code class="docutils literal notranslate"><span class="pre">NULL</span></code>
instead of <code class="docutils literal notranslate"><span class="pre">&PyType_Type</span></code> to PyVarObject_HEAD_INIT. Patch by Masayuki
Yamamoto.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13756">bpo-13756</a>: Fix building extensions modules on Cygwin. Patch by Roumen
Petrov, based on original patch by Jason Tishler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21085">bpo-21085</a>: Add configure check for siginfo_t.si_band, which Cygwin does
not provide. Patch by Masayuki Yamamoto with review and rebase by Erik
Bray.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28258">bpo-28258</a>: Fixed build with Estonian locale (python-config and distclean
targets in Makefile). Patch by Arfrever Frehtes Taifersar Arahesis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26661">bpo-26661</a>: setup.py now detects system libffi with multiarch wrapper.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27979">bpo-27979</a>: A full copy of libffi is no longer bundled for use when
building _ctypes on non-OSX UNIX platforms. An installed copy of libffi
is now required when building _ctypes on such platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15819">bpo-15819</a>: Remove redundant include search directory option for building
outside the source tree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28676">bpo-28676</a>: Prevent missing ‘getentropy’ declaration warning on macOS.
Patch by Gareth Rees.</p></li>
</ul>
</section>
<section id="id607">
<h3>Windows<a class="headerlink" href="#id607" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31392">bpo-31392</a>: Update Windows build to use OpenSSL 1.1.0f</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30389">bpo-30389</a>: Adds detection of Visual Studio 2017 to distutils on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31358">bpo-31358</a>: zlib is no longer bundled in the CPython source, instead it is
downloaded on demand just like bz2, lzma, OpenSSL, Tcl/Tk, and SQLite.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31340">bpo-31340</a>: Change to building with MSVC v141 (included with Visual Studio
2017)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30581">bpo-30581</a>: os.cpu_count() now returns the correct number of processors on
Windows when the number of logical processors is greater than 64.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30916">bpo-30916</a>: Pre-build OpenSSL, Tcl and Tk and include the binaries in the
build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30731">bpo-30731</a>: Add a missing xmlns to python.manifest so that it matches the
schema.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30291">bpo-30291</a>: Allow requiring 64-bit interpreters from py.exe using -64
suffix. Contributed by Steve (Gadget) Barnes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30362">bpo-30362</a>: Adds list options (-0, -0p) to py.exe launcher. Contributed by
Steve Barnes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23451">bpo-23451</a>: Fix socket deprecation warnings in socketmodule.c. Patch by
Segev Finer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30450">bpo-30450</a>: The build process on Windows no longer depends on Subversion,
instead pulling external code from GitHub via a Python script. If Python
3.6 is not found on the system (via <code class="docutils literal notranslate"><span class="pre">py</span> <span class="pre">-3.6</span></code>), NuGet is used to
download a copy of 32-bit Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29579">bpo-29579</a>: Removes readme.txt from the installer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25778">bpo-25778</a>: winreg does not truncate string correctly (Patch by Eryk Sun)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28896">bpo-28896</a>: Deprecate WindowsRegistryFinder and disable it by default</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28522">bpo-28522</a>: Fixes mishandled buffer reallocation in getpathp.c</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28402">bpo-28402</a>: Adds signed catalog files for stdlib on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28333">bpo-28333</a>: Enables Unicode for ps1/ps2 and input() prompts. (Patch by Eryk
Sun)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28251">bpo-28251</a>: Improvements to help manuals on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28110">bpo-28110</a>: launcher.msi has different product codes between 32-bit and
64-bit</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28161">bpo-28161</a>: Opening CON for write access fails</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28162">bpo-28162</a>: WindowsConsoleIO readall() fails if first line starts with
Ctrl+Z</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28163">bpo-28163</a>: WindowsConsoleIO fileno() passes wrong flags to _open_osfhandle</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28164">bpo-28164</a>: _PyIO_get_console_type fails for various paths</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28137">bpo-28137</a>: Renames Windows path file to ._pth</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28138">bpo-28138</a>: Windows ._pth file should allow import site</p></li>
</ul>
</section>
<section id="id608">
<h3>IDLE<a class="headerlink" href="#id608" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31493">bpo-31493</a>: IDLE code context – fix code update and font update timers.
Canceling timers prevents a warning message when test_idle completes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31488">bpo-31488</a>: IDLE - Update non-key options in former extension classes. When
applying configdialog changes, call .reload for each feature class. Change
ParenMatch so updated options affect existing instances attached to
existing editor windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31477">bpo-31477</a>: IDLE - Improve rstrip entry in doc. Strip trailing whitespace
strips more than blank spaces. Multiline string literals are not skipped.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31480">bpo-31480</a>: IDLE - make tests pass with zzdummy extension disabled by
default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31421">bpo-31421</a>: Document how IDLE runs tkinter programs. IDLE calls tcl/tk
update in the background in order to make live interaction and
experimentation with tkinter applications much easier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31414">bpo-31414</a>: IDLE – fix tk entry box tests by deleting first. Adding to an
int entry is not the same as deleting and inserting because int(‘’) will
fail.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31051">bpo-31051</a>: Rearrange IDLE configdialog GenPage into Window, Editor, and
Help sections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30617">bpo-30617</a>: IDLE - Add docstrings and tests for outwin subclass of editor.
Move some data and functions from the class to module level. Patch by
Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31287">bpo-31287</a>: IDLE - Do not modify tkinter.message in test_configdialog.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27099">bpo-27099</a>: Convert IDLE’s built-in ‘extensions’ to regular features. About
10 IDLE features were implemented as supposedly optional extensions. Their
different behavior could be confusing or worse for users and not good for
maintenance. Hence the conversion. The main difference for users is that
user configurable key bindings for builtin features are now handled
uniformly. Now, editing a binding in a keyset only affects its value in
the keyset. All bindings are defined together in the system-specific
default keysets in config-extensions.def. All custom keysets are saved as
a whole in config-extension.cfg. All take effect as soon as one clicks
Apply or Ok. The affected events are ‘<<force-open-completions>>’,
‘<<expand-word>>’, ‘<<force-open-calltip>>’, ‘<<flash-paren>>’,
‘<<format-paragraph>>’, ‘<<run-module>>’, ‘<<check-module>>’, and
‘<<zoom-height>>’. Any (global) customizations made before 3.6.3 will not
affect their keyset-specific customization after 3.6.3. and vice versa.
Initial patch by Charles Wohlganger.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31206">bpo-31206</a>: IDLE: Factor HighPage(Frame) class from ConfigDialog. Patch by
Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31001">bpo-31001</a>: Add tests for configdialog highlight tab. Patch by Cheryl
Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31205">bpo-31205</a>: IDLE: Factor KeysPage(Frame) class from ConfigDialog. The
slightly modified tests continue to pass. Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31130">bpo-31130</a>: IDLE – stop leaks in test_configdialog. Initial patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31002">bpo-31002</a>: Add tests for configdialog keys tab. Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19903">bpo-19903</a>: IDLE: Calltips use <code class="docutils literal notranslate"><span class="pre">inspect.signature</span></code> instead of
<code class="docutils literal notranslate"><span class="pre">inspect.getfullargspec</span></code>. This improves calltips for builtins converted
to use Argument Clinic. Patch by Louie Lu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31083">bpo-31083</a>: IDLE - Add an outline of a TabPage class in configdialog.
Update existing classes to match outline. Initial patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31050">bpo-31050</a>: Factor GenPage(Frame) class from ConfigDialog. The slightly
modified tests continue to pass. Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31004">bpo-31004</a>: IDLE - Factor FontPage(Frame) class from ConfigDialog. Slightly
modified tests continue to pass. Fix General tests. Patch mostly by Cheryl
Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30781">bpo-30781</a>: IDLE - Use ttk widgets in ConfigDialog. Patches by Terry Jan
Reedy and Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31060">bpo-31060</a>: IDLE - Finish rearranging methods of ConfigDialog Grouping
methods pertaining to each tab and the buttons will aid writing tests and
improving the tabs and will enable splitting the groups into classes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30853">bpo-30853</a>: IDLE – Factor a VarTrace class out of ConfigDialog. Instance
tracers manages pairs consisting of a tk variable and a callback function.
When tracing is turned on, setting the variable calls the function. Test
coverage for the new class is 100%.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31003">bpo-31003</a>: IDLE: Add more tests for General tab.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30993">bpo-30993</a>: IDLE - Improve configdialog font page and tests. In
configdialog: Document causal pathways in create_font_tab docstring.
Simplify some attribute names. Move set_samples calls to var_changed_font
(idea from Cheryl Sabella). Move related functions to positions after the
create widgets function. In test_configdialog: Fix test_font_set so not
order dependent. Fix renamed test_indent_scale so it tests the widget.
Adjust tests for movement of set_samples call. Add tests for load
functions. Put all font tests in one class and tab indent tests in
another. Except for two lines, these tests completely cover the related
functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30981">bpo-30981</a>: IDLE – Add more configdialog font page tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28523">bpo-28523</a>: IDLE: replace ‘colour’ with ‘color’ in configdialog.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30917">bpo-30917</a>: Add tests for idlelib.config.IdleConf. Increase coverage from
46% to 96%. Patch by Louie Lu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30934">bpo-30934</a>: Document coverage details for idlelib tests. Add section to
idlelib/idle-test/README.txt. Include check that branches are taken both
ways. Exclude IDLE-specific code that does not run during unit tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30913">bpo-30913</a>: IDLE: Document ConfigDialog tk Vars, methods, and widgets in
docstrings This will facilitate improving the dialog and splitting up the
class. Original patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30899">bpo-30899</a>: IDLE: Add tests for ConfigParser subclasses in config. Patch by
Louie Lu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30881">bpo-30881</a>: IDLE: Add docstrings to browser.py. Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30851">bpo-30851</a>: IDLE: Remove unused variables in configdialog. One is a
duplicate, one is set but cannot be altered by users. Patch by Cheryl
Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30870">bpo-30870</a>: IDLE: In Settings dialog, select font with Up, Down keys as
well as mouse. Initial patch by Louie Lu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8231">bpo-8231</a>: IDLE: call config.IdleConf.GetUserCfgDir only once.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30779">bpo-30779</a>: IDLE: Factor ConfigChanges class from configdialog, put in
config; test. * In config, put dump test code in a function; run it and
unittest in ‘if __name__ == ‘__main__’. * Add class config.ConfigChanges
based on changes_class_v4.py on bpo issue. * Add class
test_config.ChangesTest, partly using configdialog_tests_v1.py. * Revise
configdialog to use ConfigChanges; see tracker msg297804. * Revise
test_configdialog to match configdialog changes. * Remove configdialog
functions unused or moved to ConfigChanges. Cheryl Sabella contributed
parts of the patch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30777">bpo-30777</a>: IDLE: configdialog - Add docstrings and fix comments. Patch by
Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30495">bpo-30495</a>: IDLE: Improve textview with docstrings, PEP8 names, and more
tests. Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30723">bpo-30723</a>: IDLE: Make several improvements to parenmatch. Add ‘parens’
style to highlight both opener and closer. Make ‘default’ style, which is
not default, a synonym for ‘opener’. Make time-delay work the same with
all styles. Add help for config dialog extensions tab, including help for
parenmatch. Add new tests. Original patch by Charles Wohlganger.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30674">bpo-30674</a>: IDLE: add docstrings to grep module. Patch by Cheryl Sabella</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21519">bpo-21519</a>: IDLE’s basic custom key entry dialog now detects duplicates
properly. Original patch by Saimadhav Heblikar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29910">bpo-29910</a>: IDLE no longer deletes a character after commenting out a
region by a key shortcut. Add <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">'break'</span></code> for this and other
potential conflicts between IDLE and default key bindings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30728">bpo-30728</a>: Review and change idlelib.configdialog names. Lowercase method
and attribute names. Replace ‘colour’ with ‘color’, expand overly cryptic
names, delete unneeded underscores. Replace <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">*</span></code> with specific
imports. Patches by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6739">bpo-6739</a>: IDLE: Verify user-entered key sequences by trying to bind them
with tk. Add tests for all 3 validation functions. Original patch by G
Polo. Tests added by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15786">bpo-15786</a>: Fix several problems with IDLE’s autocompletion box. The
following should now work: clicking on selection box items; using the
scrollbar; selecting an item by hitting Return. Hangs on MacOSX should no
longer happen. Patch by Louie Lu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25514">bpo-25514</a>: Add doc subsubsection about IDLE failure to start. Popup
no-connection message directs users to this section.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30642">bpo-30642</a>: Fix reference leaks in IDLE tests. Patches by Louie Lu and
Terry Jan Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30495">bpo-30495</a>: Add docstrings for textview.py and use PEP8 names. Patches by
Cheryl Sabella and Terry Jan Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30290">bpo-30290</a>: Help-about: use pep8 names and add tests. Increase coverage to
100%. Patches by Louie Lu, Cheryl Sabella, and Terry Jan Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30303">bpo-30303</a>: Add _utest option to textview; add new tests. Increase coverage
to 100%. Patches by Louie Lu and Terry Jan Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29071">bpo-29071</a>: IDLE colors f-string prefixes (but not invalid ur prefixes).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28572">bpo-28572</a>: Add 10% to coverage of IDLE’s test_configdialog. Update and
augment description of the configuration system.</p></li>
</ul>
</section>
<section id="id609">
<h3>Tools/Demos<a class="headerlink" href="#id609" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30983">bpo-30983</a>: gdb integration commands (py-bt, etc.) work on optimized shared
builds now, too. <span class="target" id="index-407"></span><a class="pep reference external" href="https://peps.python.org/pep-0523/"><strong>PEP 523</strong></a> introduced _PyEval_EvalFrameDefault which
inlines PyEval_EvalFrameEx on non-debug shared builds. This broke the
ability to use py-bt, py-up, and a few other Python-specific gdb
integrations. The problem is fixed by only looking for
_PyEval_EvalFrameDefault frames in python-gdb.py. Original patch by Bruno
“Polaco” Penteado.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29748">bpo-29748</a>: Added the slice index converter in Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24037">bpo-24037</a>: Argument Clinic now uses the converter <code class="docutils literal notranslate"><span class="pre">bool(accept={int})</span></code>
rather than <code class="docutils literal notranslate"><span class="pre">int</span></code> for semantical booleans. This avoids repeating the
default value for Python and C and will help in converting to <code class="docutils literal notranslate"><span class="pre">bool</span></code> in
future.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29367">bpo-29367</a>: python-gdb.py now supports also <code class="docutils literal notranslate"><span class="pre">method-wrapper</span></code>
(<code class="docutils literal notranslate"><span class="pre">wrapperobject</span></code>) objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28023">bpo-28023</a>: Fix python-gdb.py didn’t support new dict implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15369">bpo-15369</a>: The pybench and pystone microbenchmark have been removed from
Tools. Please use the new Python benchmark suite
<a class="reference external" href="https://github.com/python/pyperformance">https://github.com/python/pyperformance</a> which is more reliable and
includes a portable version of pybench working on Python 2 and Python 3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28102">bpo-28102</a>: The zipfile module CLI now prints usage to stderr. Patch by
Stephen J. Turnbull.</p></li>
</ul>
</section>
<section id="id610">
<h3>C API<a class="headerlink" href="#id610" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31338">bpo-31338</a>: Added the <code class="docutils literal notranslate"><span class="pre">Py_UNREACHABLE()</span></code> macro for code paths which are
never expected to be reached. This and a few other useful macros are now
documented in the C API manual.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30832">bpo-30832</a>: Remove own implementation for thread-local storage. CPython has
provided the own implementation for thread-local storage (TLS) on
Python/thread.c, it’s used in the case which a platform has not supplied
native TLS. However, currently all supported platforms (Windows and
pthreads) have provided native TLS and defined the Py_HAVE_NATIVE_TLS
macro with unconditional in any case.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30708">bpo-30708</a>: PyUnicode_AsWideCharString() now raises a ValueError if the
second argument is NULL and the wchar_t* string contains null characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16500">bpo-16500</a>: Deprecate PyOS_AfterFork() and add PyOS_BeforeFork(),
PyOS_AfterFork_Parent() and PyOS_AfterFork_Child().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6532">bpo-6532</a>: The type of results of PyThread_start_new_thread() and
PyThread_get_thread_ident(), and the id parameter of
PyThreadState_SetAsyncExc() changed from “long” to “unsigned long”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27867">bpo-27867</a>: Function PySlice_GetIndicesEx() is deprecated and replaced with
a macro if Py_LIMITED_API is not set or set to the value between
0x03050400 and 0x03060000 (not including) or 0x03060100 or higher. Added
functions PySlice_Unpack() and PySlice_AdjustIndices().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29083">bpo-29083</a>: Fixed the declaration of some public API functions.
PyArg_VaParse() and PyArg_VaParseTupleAndKeywords() were not available in
limited API. PyArg_ValidateKeywordArguments(), PyArg_UnpackTuple() and
Py_BuildValue() were not available in limited API of version < 3.3 when
PY_SSIZE_T_CLEAN is defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28769">bpo-28769</a>: The result of PyUnicode_AsUTF8AndSize() and PyUnicode_AsUTF8()
is now of type <code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">char</span> <span class="pre">*</span></code> rather of <code class="docutils literal notranslate"><span class="pre">char</span> <span class="pre">*</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29058">bpo-29058</a>: All stable API extensions added after Python 3.2 are now
available only when Py_LIMITED_API is set to the PY_VERSION_HEX value of
the minimum Python version supporting this API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28822">bpo-28822</a>: The index parameters <em>start</em> and <em>end</em> of PyUnicode_FindChar()
are now adjusted to behave like <code class="docutils literal notranslate"><span class="pre">str[start:end]</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28808">bpo-28808</a>: PyUnicode_CompareWithASCIIString() now never raises exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28761">bpo-28761</a>: The fields name and doc of structures PyMemberDef, PyGetSetDef,
PyStructSequence_Field, PyStructSequence_Desc, and wrapperbase are now of
type <code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">char</span> <span class="pre">*</span></code> rather of <code class="docutils literal notranslate"><span class="pre">char</span> <span class="pre">*</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28748">bpo-28748</a>: Private variable _Py_PackageContext is now of type <code class="docutils literal notranslate"><span class="pre">const</span> <span class="pre">char</span>
<span class="pre">*</span></code> rather of <code class="docutils literal notranslate"><span class="pre">char</span> <span class="pre">*</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19569">bpo-19569</a>: Compiler warnings are now emitted if use most of deprecated
functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28426">bpo-28426</a>: Deprecated undocumented functions PyUnicode_AsEncodedObject(),
PyUnicode_AsDecodedObject(), PyUnicode_AsDecodedUnicode() and
PyUnicode_AsEncodedUnicode().</p></li>
</ul>
</section>
</section>
<section id="python-3-6-6-final">
<h2>Python 3.6.6 final<a class="headerlink" href="#python-3-6-6-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-06-27</em></p>
<p>There were no new changes in version 3.6.6.</p>
</section>
<section id="python-3-6-6-release-candidate-1">
<h2>Python 3.6.6 release candidate 1<a class="headerlink" href="#python-3-6-6-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-06-11</em></p>
<section id="id611">
<h3>Core and Builtins<a class="headerlink" href="#id611" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33786">bpo-33786</a>: Fix asynchronous generators to handle GeneratorExit in athrow()
correctly</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30654">bpo-30654</a>: Fixed reset of the SIGINT handler to SIG_DFL on interpreter
shutdown even when there was a custom handler set previously. Patch by
Philipp Kerling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33622">bpo-33622</a>: Fixed a leak when the garbage collector fails to add an object
with the <code class="docutils literal notranslate"><span class="pre">__del__</span></code> method or referenced by it into the
<a class="reference internal" href="../library/gc.html#gc.garbage" title="gc.garbage"><code class="xref py py-data docutils literal notranslate"><span class="pre">gc.garbage</span></code></a> list. <a class="reference internal" href="../c-api/gcsupport.html#c.PyGC_Collect" title="PyGC_Collect"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyGC_Collect()</span></code></a> can now be called when an
exception is set and preserves it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31849">bpo-31849</a>: Fix signed/unsigned comparison warning in pyhash.c.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33391">bpo-33391</a>: Fix a leak in set_symmetric_difference().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28055">bpo-28055</a>: Fix unaligned accesses in siphash24(). Patch by Rolf Eike Beer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33231">bpo-33231</a>: Fix potential memory leak in <code class="docutils literal notranslate"><span class="pre">normalizestring()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29922">bpo-29922</a>: Improved error messages in ‘async with’ when <code class="docutils literal notranslate"><span class="pre">__aenter__()</span></code>
or <code class="docutils literal notranslate"><span class="pre">__aexit__()</span></code> return non-awaitable object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33199">bpo-33199</a>: Fix <code class="docutils literal notranslate"><span class="pre">ma_version_tag</span></code> in dict implementation is uninitialized
when copying from key-sharing dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33041">bpo-33041</a>: Fixed jumping when the function contains an <code class="docutils literal notranslate"><span class="pre">async</span> <span class="pre">for</span></code> loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32282">bpo-32282</a>: Fix an unnecessary ifdef in the include of VersionHelpers.h in
socketmodule on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21983">bpo-21983</a>: Fix a crash in <code class="docutils literal notranslate"><span class="pre">ctypes.cast()</span></code> in case the type argument is a
ctypes structured data type. Patch by Eryk Sun and Oren Milman.</p></li>
</ul>
</section>
<section id="id612">
<h3>Library<a class="headerlink" href="#id612" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30167">bpo-30167</a>: Prevent site.main() exception if PYTHONSTARTUP is set. Patch by
Steve Weber.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33812">bpo-33812</a>: Datetime instance d with non-None tzinfo, but with
d.tzinfo.utcoffset(d) returning None is now treated as naive by the
astimezone() method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30805">bpo-30805</a>: Avoid race condition with debug logging</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33767">bpo-33767</a>: The concatenation (<code class="docutils literal notranslate"><span class="pre">+</span></code>) and repetition (<code class="docutils literal notranslate"><span class="pre">*</span></code>) sequence
operations now raise <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#SystemError" title="SystemError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">SystemError</span></code></a> when
performed on <a class="reference internal" href="../library/mmap.html#mmap.mmap" title="mmap.mmap"><code class="xref py py-class docutils literal notranslate"><span class="pre">mmap.mmap</span></code></a> objects. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32684">bpo-32684</a>: Fix gather to propagate cancellation of itself even with
return_exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33674">bpo-33674</a>: Fix a race condition in SSLProtocol.connection_made() of
asyncio.sslproto: start immediately the handshake instead of using
call_soon(). Previously, data_received() could be called before the
handshake started, causing the handshake to hang or fail.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31647">bpo-31647</a>: Fixed bug where calling write_eof() on a
_SelectorSocketTransport after it’s already closed raises AttributeError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33672">bpo-33672</a>: Fix Task.__repr__ crash with Cython’s bogus coroutines</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33469">bpo-33469</a>: Fix RuntimeError after closing loop that used run_in_executor</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11874">bpo-11874</a>: Use a better regex when breaking usage into wrappable parts.
Avoids bogus assertion errors from custom metavar strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30877">bpo-30877</a>: Fixed a bug in the Python implementation of the JSON decoder
that prevented the cache of parsed strings from clearing after finishing
the decoding. Based on patch by c-fos.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33548">bpo-33548</a>: tempfile._candidate_tempdir_list should consider common TEMP
locations</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33542">bpo-33542</a>: Prevent <code class="docutils literal notranslate"><span class="pre">uuid.get_node</span></code> from using a DUID instead of a MAC on
Windows. Patch by Zvi Effron</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26819">bpo-26819</a>: Fix race condition with <code class="docutils literal notranslate"><span class="pre">ReadTransport.resume_reading</span></code> in
Windows proactor event loop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Minor fixes in typing module: add annotations to
<code class="docutils literal notranslate"><span class="pre">NamedTuple.__new__</span></code>, pass <code class="docutils literal notranslate"><span class="pre">*args</span></code> and <code class="docutils literal notranslate"><span class="pre">**kwds</span></code> in
<code class="docutils literal notranslate"><span class="pre">Generic.__new__</span></code>. Original PRs by Paulius Šarka and Chad Dombrova.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20087">bpo-20087</a>: Updated alias mapping with glibc 2.27 supported locales.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33422">bpo-33422</a>: Fix trailing quotation marks getting deleted when looking up
byte/string literals on pydoc. Patch by Andrés Delfino.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33197">bpo-33197</a>: Update error message when constructing invalid
inspect.Parameters Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33383">bpo-33383</a>: Fixed crash in the get() method of the <a class="reference internal" href="../library/dbm.html#module-dbm.ndbm" title="dbm.ndbm: The New Database Manager (Unix)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.ndbm</span></code></a> database
object when it is called with a single argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33329">bpo-33329</a>: Fix multiprocessing regression on newer glibcs</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=991266">bpo-991266</a>: Fix quoting of the <code class="docutils literal notranslate"><span class="pre">Comment</span></code> attribute of
<a class="reference internal" href="../library/http.cookies.html#http.cookies.SimpleCookie" title="http.cookies.SimpleCookie"><code class="xref py py-class docutils literal notranslate"><span class="pre">http.cookies.SimpleCookie</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33131">bpo-33131</a>: Upgrade bundled version of pip to 10.0.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33308">bpo-33308</a>: Fixed a crash in the <code class="xref py py-mod docutils literal notranslate"><span class="pre">parser</span></code> module when converting an ST
object to a tree of tuples or lists with <code class="docutils literal notranslate"><span class="pre">line_info=False</span></code> and
<code class="docutils literal notranslate"><span class="pre">col_info=True</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33263">bpo-33263</a>: Fix FD leak in <code class="docutils literal notranslate"><span class="pre">_SelectorSocketTransport</span></code> Patch by Vlad
Starostin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33256">bpo-33256</a>: Fix display of <code class="docutils literal notranslate"><span class="pre"><module></span></code> call in the html produced by
<code class="docutils literal notranslate"><span class="pre">cgitb.html()</span></code>. Patch by Stéphane Blondon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33203">bpo-33203</a>: <code class="docutils literal notranslate"><span class="pre">random.Random.choice()</span></code> now raises <code class="docutils literal notranslate"><span class="pre">IndexError</span></code> for empty
sequences consistently even when called from subclasses without a
<code class="docutils literal notranslate"><span class="pre">getrandbits()</span></code> implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33224">bpo-33224</a>: Update difflib.mdiff() for <span class="target" id="index-408"></span><a class="pep reference external" href="https://peps.python.org/pep-0479/"><strong>PEP 479</strong></a>. Convert an uncaught
StopIteration in a generator into a return-statement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33209">bpo-33209</a>: End framing at the end of C implementation of
<a class="reference internal" href="../library/pickle.html#pickle.Pickler.dump" title="pickle.Pickler.dump"><code class="xref py py-func docutils literal notranslate"><span class="pre">pickle.Pickler.dump()</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32861">bpo-32861</a>: The urllib.robotparser’s <code class="docutils literal notranslate"><span class="pre">__str__</span></code> representation now
includes wildcard entries and the “Crawl-delay” and “Request-rate” fields.
Patch by Michael Lazar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33096">bpo-33096</a>: Allow ttk.Treeview.insert to insert iid that has a false
boolean value. Note iid=0 and iid=False would be same. Patch by Garvit
Khatri.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33127">bpo-33127</a>: The ssl module now compiles with LibreSSL 2.7.1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33021">bpo-33021</a>: Release the GIL during fstat() calls, avoiding hang of all
threads when calling mmap.mmap(), os.urandom(), and random.seed(). Patch
by Nir Soffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27683">bpo-27683</a>: Fix a regression in <a class="reference internal" href="../library/ipaddress.html#module-ipaddress" title="ipaddress: IPv4/IPv6 manipulation library."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ipaddress</span></code></a> that result of
<code class="xref py py-meth docutils literal notranslate"><span class="pre">hosts()</span></code> is empty when the network is constructed by a tuple
containing an integer mask and only 1 bit left for addresses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32844">bpo-32844</a>: Fix wrong redirection of a low descriptor (0 or 1) to stderr in
subprocess if another low descriptor is closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31908">bpo-31908</a>: Fix output of cover files for <code class="docutils literal notranslate"><span class="pre">trace</span></code> module command-line
tool. Previously emitted cover files only when <code class="docutils literal notranslate"><span class="pre">--missing</span></code> option was
used. Patch by Michael Selik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31457">bpo-31457</a>: If nested log adapters are used, the inner <code class="docutils literal notranslate"><span class="pre">process()</span></code>
methods are no longer omitted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16865">bpo-16865</a>: Support arrays >=2GiB in <a class="reference internal" href="../library/ctypes.html#module-ctypes" title="ctypes: A foreign function library for Python."><code class="xref py py-mod docutils literal notranslate"><span class="pre">ctypes</span></code></a>. Patch by Segev Finer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31238">bpo-31238</a>: pydoc: the stop() method of the private ServerThread class now
waits until DocServer.serve_until_quit() completes and then explicitly
sets its docserver attribute to None to break a reference cycle.</p></li>
</ul>
</section>
<section id="id613">
<h3>Documentation<a class="headerlink" href="#id613" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33503">bpo-33503</a>: Fix broken pypi link</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33421">bpo-33421</a>: Add missing documentation for <code class="docutils literal notranslate"><span class="pre">typing.AsyncContextManager</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33378">bpo-33378</a>: Add Korean language switcher for <a class="reference external" href="https://docs.python.org/3/">https://docs.python.org/3/</a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33276">bpo-33276</a>: Clarify that the <code class="docutils literal notranslate"><span class="pre">__path__</span></code> attribute on modules cannot be
just any value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33201">bpo-33201</a>: Modernize documentation for writing C extension types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33195">bpo-33195</a>: Deprecate <code class="docutils literal notranslate"><span class="pre">Py_UNICODE</span></code> usage in <code class="docutils literal notranslate"><span class="pre">c-api/arg</span></code> document.
<code class="docutils literal notranslate"><span class="pre">Py_UNICODE</span></code> related APIs are deprecated since Python 3.3, but it is
missed in the document.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33126">bpo-33126</a>: Document PyBuffer_ToContiguous().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27212">bpo-27212</a>: Modify documentation for the <code class="xref py py-func docutils literal notranslate"><span class="pre">islice()</span></code> recipe to consume
initial values up to the start index.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28247">bpo-28247</a>: Update <a class="reference internal" href="../library/zipapp.html#module-zipapp" title="zipapp: Manage executable Python zip archives"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zipapp</span></code></a> documentation to describe how to make
standalone applications.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18802">bpo-18802</a>: Documentation changes for ipaddress. Patch by Jon Foster and
Berker Peksag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27428">bpo-27428</a>: Update documentation to clarify that <code class="docutils literal notranslate"><span class="pre">WindowsRegistryFinder</span></code>
implements <code class="docutils literal notranslate"><span class="pre">MetaPathFinder</span></code>. (Patch by Himanshu Lakhara)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8243">bpo-8243</a>: Add a note about curses.addch and curses.addstr exception
behavior when writing outside a window, or pad.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31432">bpo-31432</a>: Clarify meaning of CERT_NONE, CERT_OPTIONAL, and CERT_REQUIRED
flags for ssl.SSLContext.verify_mode.</p></li>
</ul>
</section>
<section id="id614">
<h3>Tests<a class="headerlink" href="#id614" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33655">bpo-33655</a>: Ignore test_posix_fallocate failures on BSD platforms that
might be due to running on ZFS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19417">bpo-19417</a>: Add test_bdb.py.</p></li>
</ul>
</section>
<section id="id615">
<h3>Build<a class="headerlink" href="#id615" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5755">bpo-5755</a>: Move <code class="docutils literal notranslate"><span class="pre">-Wstrict-prototypes</span></code> option to <code class="docutils literal notranslate"><span class="pre">CFLAGS_NODIST</span></code> from
<code class="docutils literal notranslate"><span class="pre">OPT</span></code>. This option emitted annoying warnings when building extension
modules written in C++.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33614">bpo-33614</a>: Ensures module definition files for the stable ABI on Windows
are correctly regenerated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33522">bpo-33522</a>: Enable CI builds on Visual Studio Team Services at
<a class="reference external" href="https://python.visualstudio.com/cpython">https://python.visualstudio.com/cpython</a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33012">bpo-33012</a>: Add <code class="docutils literal notranslate"><span class="pre">-Wno-cast-function-type</span></code> for gcc 8 for silencing
warnings about function casts like casting to PyCFunction in method
definition lists.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33394">bpo-33394</a>: Enable the verbose build for extension modules, when GNU make
is passed macros on the command line.</p></li>
</ul>
</section>
<section id="id616">
<h3>Windows<a class="headerlink" href="#id616" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33184">bpo-33184</a>: Update Windows installer to OpenSSL 1.0.2o.</p></li>
</ul>
</section>
<section id="id617">
<h3>macOS<a class="headerlink" href="#id617" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33184">bpo-33184</a>: Update macOS installer build to use OpenSSL 1.0.2o.</p></li>
</ul>
</section>
<section id="id618">
<h3>IDLE<a class="headerlink" href="#id618" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33656">bpo-33656</a>: On Windows, add API call saying that tk scales for DPI. On
Windows 8.1+ or 10, with DPI compatibility properties of the Python binary
unchanged, and a monitor resolution greater than 96 DPI, this should make
text and lines sharper. It should otherwise have no effect.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33768">bpo-33768</a>: Clicking on a context line moves that line to the top of the
editor window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33763">bpo-33763</a>: IDLE: Use read-only text widget for code context instead of
label widget.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33664">bpo-33664</a>: Scroll IDLE editor text by lines. Previously, the mouse wheel
and scrollbar slider moved text by a fixed number of pixels, resulting in
partial lines at the top of the editor box. The change also applies to
the shell and grep output windows, but not to read-only text views.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33679">bpo-33679</a>: Enable theme-specific color configuration for Code Context. Use
the Highlights tab to see the setting for built-in themes or add settings
to custom themes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33642">bpo-33642</a>: Display up to maxlines non-blank lines for Code Context. If
there is no current context, show a single blank line.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33628">bpo-33628</a>: IDLE: Cleanup codecontext.py and its test.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33564">bpo-33564</a>: IDLE’s code context now recognizes async as a block opener.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29706">bpo-29706</a>: IDLE now colors async and await as keywords in 3.6. They become
full keywords in 3.7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21474">bpo-21474</a>: Update word/identifier definition from ascii to unicode. In
text and entry boxes, this affects selection by double-click, movement
left/right by control-left/right, and deletion left/right by
control-BACKSPACE/DEL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33204">bpo-33204</a>: IDLE: consistently color invalid string prefixes. A ‘u’ string
prefix cannot be paired with either ‘r’ or ‘f’. Consistently color as much
of the prefix, starting at the right, as is valid. Revise and extend
colorizer test.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32831">bpo-32831</a>: Add docstrings and tests for codecontext.</p></li>
</ul>
</section>
<section id="id619">
<h3>Tools/Demos<a class="headerlink" href="#id619" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33189">bpo-33189</a>: <strong class="program">pygettext.py</strong> now recognizes only literal strings as
docstrings and translatable strings, and rejects bytes literals and
f-string expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31920">bpo-31920</a>: Fixed handling directories as arguments in the <code class="docutils literal notranslate"><span class="pre">pygettext</span></code>
script. Based on patch by Oleg Krasnikov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29673">bpo-29673</a>: Fix pystackv and pystack gdbinit macros.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32885">bpo-32885</a>: Add an <code class="docutils literal notranslate"><span class="pre">-n</span></code> flag for <code class="docutils literal notranslate"><span class="pre">Tools/scripts/pathfix.py</span></code> to disable
automatic backup creation (files with <code class="docutils literal notranslate"><span class="pre">~</span></code> suffix).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31583">bpo-31583</a>: Fix 2to3 for using with –add-suffix option but without
–output-dir option for relative path to files in current directory.</p></li>
</ul>
</section>
<section id="id620">
<h3>C API<a class="headerlink" href="#id620" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32374">bpo-32374</a>: Document that m_traverse for multi-phase initialized modules
can be called with m_state=NULL, and add a sanity check</p></li>
</ul>
</section>
</section>
<section id="python-3-6-5-final">
<h2>Python 3.6.5 final<a class="headerlink" href="#python-3-6-5-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-03-28</em></p>
<section id="id621">
<h3>Tests<a class="headerlink" href="#id621" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32872">bpo-32872</a>: Avoid regrtest compatibility issue with namespace packages.</p></li>
</ul>
</section>
<section id="id622">
<h3>Build<a class="headerlink" href="#id622" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33163">bpo-33163</a>: Upgrade pip to 9.0.3 and setuptools to v39.0.1.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-5-release-candidate-1">
<h2>Python 3.6.5 release candidate 1<a class="headerlink" href="#python-3-6-5-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-03-13</em></p>
<section id="id623">
<h3>Security<a class="headerlink" href="#id623" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33001">bpo-33001</a>: Minimal fix to prevent buffer overrun in os.symlink on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32981">bpo-32981</a>: Regexes in difflib and poplib were vulnerable to catastrophic
backtracking. These regexes formed potential DOS vectors (REDOS). They
have been refactored. This resolves <span class="target" id="index-409"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2018-1060"><strong>CVE 2018-1060</strong></a> and <span class="target" id="index-410"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2018-1061"><strong>CVE 2018-1061</strong></a>.
Patch by Jamie Davis.</p></li>
</ul>
</section>
<section id="id624">
<h3>Core and Builtins<a class="headerlink" href="#id624" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33026">bpo-33026</a>: Fixed jumping out of “with” block by setting f_lineno.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17288">bpo-17288</a>: Prevent jumps from ‘return’ and ‘exception’ trace events.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32889">bpo-32889</a>: Update Valgrind suppression list to account for the rename of
<code class="docutils literal notranslate"><span class="pre">Py_ADDRESS_IN_RANG</span></code> to <code class="docutils literal notranslate"><span class="pre">address_in_range</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32650">bpo-32650</a>: Pdb and other debuggers dependent on bdb.py will correctly step
over (next command) native coroutines. Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32685">bpo-32685</a>: Improve suggestion when the Python 2 form of print statement is
either present on the same line as the header of a compound statement or
else terminated by a semi-colon instead of a newline. Patch by Nitish
Chandra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32583">bpo-32583</a>: Fix possible crashing in builtin Unicode decoders caused by
write out-of-bound errors when using customized decode error handlers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26163">bpo-26163</a>: Improved frozenset() hash to create more distinct hash values
when faced with datasets containing many similar values.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27169">bpo-27169</a>: The <code class="docutils literal notranslate"><span class="pre">__debug__</span></code> constant is now optimized out at compile
time. This fixes also <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22091">bpo-22091</a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32329">bpo-32329</a>: <code class="docutils literal notranslate"><span class="pre">sys.flags.hash_randomization</span></code> is now properly set to 0 when
hash randomization is turned off by <code class="docutils literal notranslate"><span class="pre">PYTHONHASHSEED=0</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30416">bpo-30416</a>: The optimizer is now protected from spending much time doing
complex calculations and consuming much memory for creating large
constants in constant folding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18533">bpo-18533</a>: <code class="docutils literal notranslate"><span class="pre">repr()</span></code> on a dict containing its own <code class="docutils literal notranslate"><span class="pre">values()</span></code> or
<code class="docutils literal notranslate"><span class="pre">items()</span></code> no longer raises <code class="docutils literal notranslate"><span class="pre">RecursionError</span></code>; OrderedDict similarly.
Instead, use <code class="docutils literal notranslate"><span class="pre">...</span></code>, as for other recursive structures. Patch by Ben
North.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32028">bpo-32028</a>: Leading whitespace is now correctly ignored when generating
suggestions for converting Py2 print statements to Py3 builtin print
function calls. Patch by Sanyam Khurana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32137">bpo-32137</a>: The repr of deeply nested dict now raises a RecursionError
instead of crashing due to a stack overflow.</p></li>
</ul>
</section>
<section id="id625">
<h3>Library<a class="headerlink" href="#id625" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33064">bpo-33064</a>: lib2to3 now properly supports trailing commas after <code class="docutils literal notranslate"><span class="pre">*args</span></code>
and <code class="docutils literal notranslate"><span class="pre">**kwargs</span></code> in function signatures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31804">bpo-31804</a>: Avoid failing in multiprocessing.Process if the standard
streams are closed or None at exit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33037">bpo-33037</a>: Skip sending/receiving data after SSL transport closing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30353">bpo-30353</a>: Fix ctypes pass-by-value for structs on 64-bit Cygwin/MinGW.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33009">bpo-33009</a>: Fix inspect.signature() for single-parameter partialmethods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32969">bpo-32969</a>: Expose several missing constants in zlib and fix corresponding
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32713">bpo-32713</a>: Fixed tarfile.itn handling of out-of-bounds float values. Patch
by Joffrey Fuhrer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30622">bpo-30622</a>: The ssl module now detects missing NPN support in LibreSSL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32922">bpo-32922</a>: dbm.open() now encodes filename with the filesystem encoding
rather than default encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32859">bpo-32859</a>: In <code class="docutils literal notranslate"><span class="pre">os.dup2</span></code>, don’t check every call whether the <code class="docutils literal notranslate"><span class="pre">dup3</span></code>
syscall exists or not.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21060">bpo-21060</a>: Rewrite confusing message from setup.py upload from “No dist
file created in earlier command” to the more helpful “Must create and
upload files in one command”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32857">bpo-32857</a>: In <a class="reference internal" href="../library/tkinter.html#module-tkinter" title="tkinter: Interface to Tcl/Tk for graphical user interfaces"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tkinter</span></code></a>, <code class="docutils literal notranslate"><span class="pre">after_cancel(None)</span></code> now raises a
<a class="reference internal" href="../library/exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> instead of canceling the first scheduled function.
Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32852">bpo-32852</a>: Make sure sys.argv remains as a list when running trace.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32841">bpo-32841</a>: Fixed <code class="docutils literal notranslate"><span class="pre">asyncio.Condition</span></code> issue which silently ignored
cancellation after notifying and cancelling a conditional lock. Patch by
Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31787">bpo-31787</a>: Fixed refleaks of <code class="docutils literal notranslate"><span class="pre">__init__()</span></code> methods in various modules.
(Contributed by Oren Milman)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30157">bpo-30157</a>: Fixed guessing quote and delimiter in csv.Sniffer.sniff() when
only the last field is quoted. Patch by Jake Davis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32394">bpo-32394</a>: socket: Remove TCP_FASTOPEN, TCP_KEEPCNT flags on older version
Windows during run-time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32777">bpo-32777</a>: Fix a rare but potential pre-exec child process deadlock in
subprocess on POSIX systems when marking file descriptors inheritable on
exec in the child process. This bug appears to have been introduced in
3.4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32647">bpo-32647</a>: The ctypes module used to depend on indirect linking for
dlopen. The shared extension is now explicitly linked against libdl on
platforms with dl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32734">bpo-32734</a>: Fixed <code class="docutils literal notranslate"><span class="pre">asyncio.Lock()</span></code> safety issue which allowed acquiring
and locking the same lock multiple times, without it being free. Patch by
Bar Harel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32727">bpo-32727</a>: Do not include name field in SMTP envelope from address. Patch
by Stéphane Wirtel</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27931">bpo-27931</a>: Fix email address header parsing error when the username is an
empty quoted string. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32304">bpo-32304</a>: distutils’ upload command no longer corrupts tar files ending
with a CR byte, and no longer tries to convert CR to CRLF in any of the
upload text fields.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32502">bpo-32502</a>: uuid.uuid1 no longer raises an exception if a 64-bit hardware
address is encountered.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31848">bpo-31848</a>: Fix the error handling in Aifc_read.initfp() when the SSND
chunk is not found. Patch by Zackery Spytz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32555">bpo-32555</a>: On FreeBSD and Solaris, os.strerror() now always decode the
byte string from the current locale encoding, rather than using
ASCII/surrogateescape in some cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32521">bpo-32521</a>: The nis module is now compatible with new libnsl and headers
location.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32473">bpo-32473</a>: Improve ABCMeta._dump_registry() output readability</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32521">bpo-32521</a>: glibc has removed Sun RPC. Use replacement libtirpc headers and
library in nis module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32228">bpo-32228</a>: Ensure that <code class="docutils literal notranslate"><span class="pre">truncate()</span></code> preserves the file position (as
reported by <code class="docutils literal notranslate"><span class="pre">tell()</span></code>) after writes longer than the buffer size.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26133">bpo-26133</a>: Don’t unsubscribe signals in asyncio UNIX event loop on
interpreter shutdown.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32185">bpo-32185</a>: The SSL module no longer sends IP addresses in SNI TLS
extension on platforms with OpenSSL 1.0.2+ or inet_pton.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32323">bpo-32323</a>: <a class="reference internal" href="../library/urllib.parse.html#urllib.parse.urlsplit" title="urllib.parse.urlsplit"><code class="xref py py-func docutils literal notranslate"><span class="pre">urllib.parse.urlsplit()</span></code></a> does not convert zone-id (scope)
to lower case for scoped IPv6 addresses in hostnames now.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32302">bpo-32302</a>: Fix bdist_wininst of distutils for CRT v142: it binary
compatible with CRT v140.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32255">bpo-32255</a>: A single empty field is now always quoted when written into a
CSV file. This allows to distinguish an empty row from a row consisting of
a single empty field. Patch by Licht Takeuchi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32277">bpo-32277</a>: Raise <code class="docutils literal notranslate"><span class="pre">NotImplementedError</span></code> instead of <code class="docutils literal notranslate"><span class="pre">SystemError</span></code> on
platforms where <code class="docutils literal notranslate"><span class="pre">chmod(...,</span> <span class="pre">follow_symlinks=False)</span></code> is not supported.
Patch by Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32199">bpo-32199</a>: The getnode() ip getter now uses ‘ip link’ instead of ‘ip link
list’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27456">bpo-27456</a>: Ensure TCP_NODELAY is set on Linux. Tests by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31900">bpo-31900</a>: The <a class="reference internal" href="../library/locale.html#locale.localeconv" title="locale.localeconv"><code class="xref py py-func docutils literal notranslate"><span class="pre">locale.localeconv()</span></code></a> function now sets temporarily the
<code class="docutils literal notranslate"><span class="pre">LC_CTYPE</span></code> locale to the <code class="docutils literal notranslate"><span class="pre">LC_NUMERIC</span></code> locale to decode
<code class="docutils literal notranslate"><span class="pre">decimal_point</span></code> and <code class="docutils literal notranslate"><span class="pre">thousands_sep</span></code> byte strings if they are non-ASCII
or longer than 1 byte, and the <code class="docutils literal notranslate"><span class="pre">LC_NUMERIC</span></code> locale is different than the
<code class="docutils literal notranslate"><span class="pre">LC_CTYPE</span></code> locale. This temporary change affects other threads. Same
change for the <a class="reference internal" href="../library/stdtypes.html#str.format" title="str.format"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.format()</span></code></a> method when formatting a number
(<a class="reference internal" href="../library/functions.html#int" title="int"><code class="xref py py-class docutils literal notranslate"><span class="pre">int</span></code></a>, <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>, <a class="reference internal" href="../library/functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> and subclasses) with the
<code class="docutils literal notranslate"><span class="pre">n</span></code> type (ex: <code class="docutils literal notranslate"><span class="pre">'{:n}'.format(1234)</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31802">bpo-31802</a>: Importing native path module (<code class="docutils literal notranslate"><span class="pre">posixpath</span></code>, <code class="docutils literal notranslate"><span class="pre">ntpath</span></code>) now
works even if the <code class="docutils literal notranslate"><span class="pre">os</span></code> module still is not imported.</p></li>
</ul>
</section>
<section id="id626">
<h3>Documentation<a class="headerlink" href="#id626" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17232">bpo-17232</a>: Clarify docs for -O and -OO. Patch by Terry Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32800">bpo-32800</a>: Update link to w3c doc for xml default namespaces.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8722">bpo-8722</a>: Document <code class="xref py py-meth docutils literal notranslate"><span class="pre">__getattr__()</span></code> behavior when property <code class="xref py py-meth docutils literal notranslate"><span class="pre">get()</span></code>
method raises <a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32614">bpo-32614</a>: Modify RE examples in documentation to use raw strings to
prevent <a class="reference internal" href="../library/exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> and add text to REGEX HOWTO to highlight
the deprecation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31972">bpo-31972</a>: Improve docstrings for <code class="docutils literal notranslate"><span class="pre">pathlib.PurePath</span></code> subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17799">bpo-17799</a>: Explain real behaviour of sys.settrace and sys.setprofile and
their C-API counterparts regarding which type of events are received in
each function. Patch by Pablo Galindo Salgado.</p></li>
</ul>
</section>
<section id="id627">
<h3>Tests<a class="headerlink" href="#id627" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32517">bpo-32517</a>: Fix failing <code class="docutils literal notranslate"><span class="pre">test_asyncio</span></code> on macOS 10.12.2+ due to transport
of <code class="docutils literal notranslate"><span class="pre">KqueueSelector</span></code> loop was not being closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32721">bpo-32721</a>: Fix test_hashlib to not fail if the _md5 module is not built.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32252">bpo-32252</a>: Fix faulthandler_suppress_crash_report() used to prevent core
dump files when testing crashes. getrlimit() returns zero on success.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31518">bpo-31518</a>: Debian Unstable has disabled TLS 1.0 and 1.1 for
SSLv23_METHOD(). Change TLS/SSL protocol of some tests to PROTOCOL_TLS or
PROTOCOL_TLSv1_2 to make them pass on Debian.</p></li>
</ul>
</section>
<section id="id628">
<h3>Build<a class="headerlink" href="#id628" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32635">bpo-32635</a>: Fix segfault of the crypt module when libxcrypt is provided
instead of libcrypt at the system.</p></li>
</ul>
</section>
<section id="id629">
<h3>Windows<a class="headerlink" href="#id629" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=33016">bpo-33016</a>: Fix potential use of uninitialized memory in
nt._getfinalpathname</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32903">bpo-32903</a>: Fix a memory leak in os.chdir() on Windows if the current
directory is set to a UNC path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31966">bpo-31966</a>: Fixed WindowsConsoleIO.write() for writing empty data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32409">bpo-32409</a>: Ensures activate.bat can handle Unicode contents.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32457">bpo-32457</a>: Improves handling of denormalized executable path when
launching Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32370">bpo-32370</a>: Use the correct encoding for ipconfig output in the uuid
module. Patch by Segev Finer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29248">bpo-29248</a>: Fix <a class="reference internal" href="../library/os.html#os.readlink" title="os.readlink"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.readlink()</span></code></a> on Windows, which was mistakenly
treating the <code class="docutils literal notranslate"><span class="pre">PrintNameOffset</span></code> field of the reparse data buffer as a
number of characters instead of bytes. Patch by Craig Holmquist and SSE4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32588">bpo-32588</a>: Create standalone _distutils_findvs module.</p></li>
</ul>
</section>
<section id="id630">
<h3>macOS<a class="headerlink" href="#id630" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32726">bpo-32726</a>: Provide an additional, more modern macOS installer variant that
supports macOS 10.9+ systems in 64-bit mode only. Upgrade the supplied
third-party libraries to OpenSSL 1.0.2n, XZ 5.2.3, and SQLite 3.22.0. The
10.9+ installer now links with and supplies its own copy of Tcl/Tk 8.6.8.</p></li>
</ul>
</section>
<section id="id631">
<h3>IDLE<a class="headerlink" href="#id631" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32984">bpo-32984</a>: Set <code class="docutils literal notranslate"><span class="pre">__file__</span></code> while running a startup file. Like Python,
IDLE optionally runs one startup file in the Shell window before
presenting the first interactive input prompt. For IDLE, <code class="docutils literal notranslate"><span class="pre">-s</span></code> runs a
file named in environmental variable <span class="target" id="index-411"></span><code class="xref std std-envvar docutils literal notranslate"><span class="pre">IDLESTARTUP</span></code> or
<span class="target" id="index-412"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONSTARTUP"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONSTARTUP</span></code></a>; <code class="docutils literal notranslate"><span class="pre">-r</span> <span class="pre">file</span></code> runs <code class="docutils literal notranslate"><span class="pre">file</span></code>. Python sets
<code class="docutils literal notranslate"><span class="pre">__file__</span></code> to the startup file name before running the file and unsets
it before the first prompt. IDLE now does the same when run normally,
without the <code class="docutils literal notranslate"><span class="pre">-n</span></code> option.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32940">bpo-32940</a>: Simplify and rename StringTranslatePseudoMapping in pyparse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32916">bpo-32916</a>: Change <code class="docutils literal notranslate"><span class="pre">str</span></code> to <code class="docutils literal notranslate"><span class="pre">code</span></code> in pyparse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32905">bpo-32905</a>: Remove unused code in pyparse module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32874">bpo-32874</a>: Add tests for pyparse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32837">bpo-32837</a>: Using the system and place-dependent default encoding for
open() is a bad idea for IDLE’s system and location-independent files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32826">bpo-32826</a>: Add “encoding=utf-8” to open() in IDLE’s test_help_about. GUI
test test_file_buttons() only looks at initial ascii-only lines, but
failed on systems where open() defaults to ‘ascii’ because readline()
internally reads and decodes far enough ahead to encounter a non-ascii
character in CREDITS.txt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32765">bpo-32765</a>: Update configdialog General tab docstring to add new widgets to
the widget list.</p></li>
</ul>
</section>
<section id="id632">
<h3>Tools/Demos<a class="headerlink" href="#id632" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24960">bpo-24960</a>: 2to3 and lib2to3 can now read pickled grammar files using
pkgutil.get_data() rather than probing the filesystem. This lets 2to3 and
lib2to3 work when run from a zipfile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32222">bpo-32222</a>: Fix pygettext not extracting docstrings for functions with type
annotated arguments. Patch by Toby Harradine.</p></li>
</ul>
</section>
<section id="id633">
<h3>C API<a class="headerlink" href="#id633" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29084">bpo-29084</a>: Undocumented C API for OrderedDict has been excluded from the
limited C API. It was added by mistake and actually never worked in the
limited C API.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-4-final">
<h2>Python 3.6.4 final<a class="headerlink" href="#python-3-6-4-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-12-18</em></p>
<p>There were no new code changes in version 3.6.4 since v3.6.4rc1.</p>
</section>
<section id="python-3-6-4-release-candidate-1">
<h2>Python 3.6.4 release candidate 1<a class="headerlink" href="#python-3-6-4-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-12-05</em></p>
<section id="id634">
<h3>Core and Builtins<a class="headerlink" href="#id634" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32176">bpo-32176</a>: co_flags.CO_NOFREE is now always set correctly by the code
object constructor based on freevars and cellvars, rather than needing to
be set correctly by the caller. This ensures it will be cleared
automatically when additional cell references are injected into a modified
code object and function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31949">bpo-31949</a>: Fixed several issues in printing tracebacks
(PyTraceBack_Print()). Setting sys.tracebacklimit to 0 or less now
suppresses printing tracebacks. Setting sys.tracebacklimit to None now
causes using the default limit. Setting sys.tracebacklimit to an integer
larger than LONG_MAX now means using the limit LONG_MAX rather than the
default limit. Fixed integer overflows in the case of more than <code class="docutils literal notranslate"><span class="pre">2**31</span></code>
traceback items on Windows. Fixed output errors handling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30696">bpo-30696</a>: Fix the interactive interpreter looping endlessly when no
memory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20047">bpo-20047</a>: Bytearray methods partition() and rpartition() now accept only
bytes-like objects as separator, as documented. In particular they now
raise TypeError rather of returning a bogus result when an integer is
passed as a separator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31852">bpo-31852</a>: Fix a segmentation fault caused by a combination of the async
soft keyword and continuation lines.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21720">bpo-21720</a>: BytesWarning no longer emitted when the <em>fromlist</em> argument of
<code class="docutils literal notranslate"><span class="pre">__import__()</span></code> or the <code class="docutils literal notranslate"><span class="pre">__all__</span></code> attribute of the module contain bytes
instances.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31825">bpo-31825</a>: Fixed OverflowError in the ‘unicode-escape’ codec and in
codecs.escape_decode() when decode an escaped non-ascii byte.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28603">bpo-28603</a>: Print the full context/cause chain of exceptions on interpreter
exit, even if an exception in the chain is unhashable or compares equal to
later ones. Patch by Zane Bitter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31786">bpo-31786</a>: Fix timeout rounding in the select module to round correctly
negative timeouts between -1.0 and 0.0. The functions now block waiting
for events as expected. Previously, the call was incorrectly non-blocking.
Patch by Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31642">bpo-31642</a>: Restored blocking “from package import module” by setting
sys.modules[“package.module”] to None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31626">bpo-31626</a>: Fixed a bug in debug memory allocator. There was a write to
freed memory after shrinking a memory block.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31619">bpo-31619</a>: Fixed a ValueError when convert a string with large number of
underscores to integer with binary base.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31592">bpo-31592</a>: Fixed an assertion failure in Python parser in case of a bad
<code class="docutils literal notranslate"><span class="pre">unicodedata.normalize()</span></code>. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31588">bpo-31588</a>: Raise a <code class="docutils literal notranslate"><span class="pre">TypeError</span></code> with a helpful error message when class
creation fails due to a metaclass with a bad <code class="docutils literal notranslate"><span class="pre">__prepare__()</span></code> method.
Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31566">bpo-31566</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">_warnings.warn()</span></code> in case of a
bad <code class="docutils literal notranslate"><span class="pre">__name__</span></code> global. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31505">bpo-31505</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">json</span></code>, in case
<code class="docutils literal notranslate"><span class="pre">_json.make_encoder()</span></code> received a bad <code class="docutils literal notranslate"><span class="pre">encoder()</span></code> argument. Patch by
Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31492">bpo-31492</a>: Fix assertion failures in case of failing to import from a
module with a bad <code class="docutils literal notranslate"><span class="pre">__name__</span></code> attribute, and in case of failing to access
an attribute of such a module. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31490">bpo-31490</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">ctypes</span></code> class definition, in
case the class has an attribute whose name is specified in <code class="docutils literal notranslate"><span class="pre">_anonymous_</span></code>
but not in <code class="docutils literal notranslate"><span class="pre">_fields_</span></code>. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31478">bpo-31478</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">_random.Random.seed()</span></code> in case
the argument has a bad <code class="docutils literal notranslate"><span class="pre">__abs__()</span></code> method. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31315">bpo-31315</a>: Fix an assertion failure in imp.create_dynamic(), when
spec.name is not a string. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31311">bpo-31311</a>: Fix a crash in the <code class="docutils literal notranslate"><span class="pre">__setstate__()</span></code> method of
<code class="docutils literal notranslate"><span class="pre">ctypes._CData</span></code>, in case of a bad <code class="docutils literal notranslate"><span class="pre">__dict__</span></code>. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31293">bpo-31293</a>: Fix crashes in true division and multiplication of a timedelta
object by a float with a bad as_integer_ratio() method. Patch by Oren
Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31285">bpo-31285</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">warnings.warn_explicit</span></code>, when
the return value of the received loader’s <code class="docutils literal notranslate"><span class="pre">get_source()</span></code> has a bad
<code class="docutils literal notranslate"><span class="pre">splitlines()</span></code> method. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30817">bpo-30817</a>: <code class="docutils literal notranslate"><span class="pre">PyErr_PrintEx()</span></code> clears now the ignored exception that may
be raised by <code class="docutils literal notranslate"><span class="pre">_PySys_SetObjectId()</span></code>, for example when no memory.</p></li>
</ul>
</section>
<section id="id635">
<h3>Library<a class="headerlink" href="#id635" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Two minor fixes for <code class="docutils literal notranslate"><span class="pre">typing</span></code> module: allow shallow copying
instances of generic classes, improve interaction of <code class="docutils literal notranslate"><span class="pre">__init_subclass__</span></code>
with generics. Original PRs by Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27240">bpo-27240</a>: The header folding algorithm for the new email policies has
been rewritten, which also fixes <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30788">bpo-30788</a>, <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31831">bpo-31831</a>, and <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32182">bpo-32182</a>. In
particular, RFC2231 folding is now done correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32186">bpo-32186</a>: io.FileIO.readall() and io.FileIO.read() now release the GIL
when getting the file size. Fixed hang of all threads with inaccessible
NFS server. Patch by Nir Soffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12239">bpo-12239</a>: Make <code class="xref py py-meth docutils literal notranslate"><span class="pre">msilib.SummaryInformation.GetProperty()</span></code> return
<code class="docutils literal notranslate"><span class="pre">None</span></code> when the value of property is <code class="docutils literal notranslate"><span class="pre">VT_EMPTY</span></code>. Initial patch by
Mark Mc Mahon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31325">bpo-31325</a>: Fix wrong usage of <a class="reference internal" href="../library/collections.html#collections.namedtuple" title="collections.namedtuple"><code class="xref py py-func docutils literal notranslate"><span class="pre">collections.namedtuple()</span></code></a> in the
<a class="reference internal" href="../library/urllib.robotparser.html#urllib.robotparser.RobotFileParser.parse" title="urllib.robotparser.RobotFileParser.parse"><code class="xref py py-meth docutils literal notranslate"><span class="pre">RobotFileParser.parse()</span></code></a>
method. Initial patch by Robin Wellner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12382">bpo-12382</a>: <code class="xref py py-func docutils literal notranslate"><span class="pre">msilib.OpenDatabase()</span></code> now raises a better exception
message when it couldn’t open or create an MSI file. Initial patch by
William Tisäter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32110">bpo-32110</a>: <code class="docutils literal notranslate"><span class="pre">codecs.StreamReader.read(n)</span></code> now returns not more than <em>n</em>
characters/bytes for non-negative <em>n</em>. This makes it compatible with
<code class="docutils literal notranslate"><span class="pre">read()</span></code> methods of other file-like objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32072">bpo-32072</a>: Fixed issues with binary plists: Fixed saving bytearrays.
Identical objects will be saved only once. Equal references will be load
as identical objects. Added support for saving and loading recursive data
structures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32034">bpo-32034</a>: Make asyncio.IncompleteReadError and LimitOverrunError
pickleable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32015">bpo-32015</a>: Fixed the looping of asyncio in the case of reconnection the
socket during waiting async read/write from/to the socket.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32011">bpo-32011</a>: Restored support of loading marshal files with the TYPE_INT64
code. These files can be produced in Python 2.7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31970">bpo-31970</a>: Reduce performance overhead of asyncio debug mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9678">bpo-9678</a>: Fixed determining the MAC address in the uuid module: Using
ifconfig on NetBSD and OpenBSD. Using arp on Linux, FreeBSD, NetBSD and
OpenBSD. Based on patch by Takayuki Shimizukawa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30057">bpo-30057</a>: Fix potential missed signal in signal.signal().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31933">bpo-31933</a>: Fix Blake2 params leaf_size and node_offset on big endian
platforms. Patch by Jack O’Connor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31927">bpo-31927</a>: Fixed compilation of the socket module on NetBSD 8. Fixed
assertion failure or reading arbitrary data when parse a AF_BLUETOOTH
address on NetBSD and DragonFly BSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27666">bpo-27666</a>: Fixed stack corruption in curses.box() and curses.ungetmouse()
when the size of types chtype or mmask_t is less than the size of C long.
curses.box() now accepts characters as arguments. Based on patch by Steve
Fink.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31897">bpo-31897</a>: plistlib now catches more errors when read binary plists and
raises InvalidFileException instead of unexpected exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25720">bpo-25720</a>: Fix the method for checking pad state of curses WINDOW. Patch
by Masayuki Yamamoto.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31893">bpo-31893</a>: Fixed the layout of the kqueue_event structure on OpenBSD and
NetBSD. Fixed the comparison of the kqueue_event objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31891">bpo-31891</a>: Fixed building the curses module on NetBSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28416">bpo-28416</a>: Instances of pickle.Pickler subclass with the persistent_id()
method and pickle.Unpickler subclass with the persistent_load() method no
longer create reference cycles.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28326">bpo-28326</a>: Fix multiprocessing.Process when stdout and/or stderr is closed
or None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31457">bpo-31457</a>: If nested log adapters are used, the inner <code class="docutils literal notranslate"><span class="pre">process()</span></code>
methods are no longer omitted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31457">bpo-31457</a>: The <code class="docutils literal notranslate"><span class="pre">manager</span></code> property on LoggerAdapter objects is now
properly settable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31806">bpo-31806</a>: Fix timeout rounding in time.sleep(), threading.Lock.acquire()
and socket.socket.settimeout() to round correctly negative timeouts
between -1.0 and 0.0. The functions now block waiting for events as
expected. Previously, the call was incorrectly non-blocking. Patch by
Pablo Galindo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28603">bpo-28603</a>: traceback: Fix a TypeError that occurred during printing of
exception tracebacks when either the current exception or an exception in
its context/cause chain is unhashable. Patch by Zane Bitter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30058">bpo-30058</a>: Fixed buffer overflow in select.kqueue.control().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31770">bpo-31770</a>: Prevent a crash when calling the <code class="docutils literal notranslate"><span class="pre">__init__()</span></code> method of a
<code class="docutils literal notranslate"><span class="pre">sqlite3.Cursor</span></code> object more than once. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31672">bpo-31672</a>: <code class="docutils literal notranslate"><span class="pre">idpattern</span></code> in <code class="docutils literal notranslate"><span class="pre">string.Template</span></code> matched some non-ASCII
characters. Now it uses <code class="docutils literal notranslate"><span class="pre">-i</span></code> regular expression local flag to avoid
non-ASCII characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31764">bpo-31764</a>: Prevent a crash in <code class="docutils literal notranslate"><span class="pre">sqlite3.Cursor.close()</span></code> in case the
<code class="docutils literal notranslate"><span class="pre">Cursor</span></code> object is uninitialized. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31752">bpo-31752</a>: Fix possible crash in timedelta constructor called with custom
integers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31701">bpo-31701</a>: On Windows, faulthandler.enable() now ignores MSC and COM
exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31728">bpo-31728</a>: Prevent crashes in <code class="docutils literal notranslate"><span class="pre">_elementtree</span></code> due to unsafe cleanup of
<code class="docutils literal notranslate"><span class="pre">Element.text</span></code> and <code class="docutils literal notranslate"><span class="pre">Element.tail</span></code>. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31620">bpo-31620</a>: an empty asyncio.Queue now doesn’t leak memory when queue.get
pollers timeout</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31632">bpo-31632</a>: Fix method set_protocol() of class _SSLProtocolTransport in
asyncio module. This method was previously modifying a wrong reference to
the protocol.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31675">bpo-31675</a>: Fixed memory leaks in Tkinter’s methods splitlist() and split()
when pass a string larger than 2 GiB.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31673">bpo-31673</a>: Fixed typo in the name of Tkinter’s method adderrorinfo().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30806">bpo-30806</a>: Fix the string representation of a netrc object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15037">bpo-15037</a>: Added a workaround for getkey() in curses for ncurses 5.7 and
earlier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25351">bpo-25351</a>: Avoid venv activate failures with undefined variables</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25532">bpo-25532</a>: inspect.unwrap() will now only try to unwrap an object
sys.getrecursionlimit() times, to protect against objects which create a
new object on every attribute access.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30347">bpo-30347</a>: Stop crashes when concurrently iterate over itertools.groupby()
iterators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31516">bpo-31516</a>: <code class="docutils literal notranslate"><span class="pre">threading.current_thread()</span></code> should not return a dummy thread
at shutdown.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31351">bpo-31351</a>: python -m ensurepip now exits with non-zero exit code if pip
bootstrapping has failed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31482">bpo-31482</a>: <code class="docutils literal notranslate"><span class="pre">random.seed()</span></code> now works with bytes in version=1</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31334">bpo-31334</a>: Fix <code class="docutils literal notranslate"><span class="pre">poll.poll([timeout])</span></code> in the <code class="docutils literal notranslate"><span class="pre">select</span></code> module for
arbitrary negative timeouts on all OSes where it can only be a
non-negative integer or -1. Patch by Riccardo Coccioli.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31310">bpo-31310</a>: multiprocessing’s semaphore tracker should be launched again if
crashed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31308">bpo-31308</a>: Make multiprocessing’s forkserver process immune to Ctrl-C and
other user interruptions. If it crashes, restart it when necessary.</p></li>
</ul>
</section>
<section id="id636">
<h3>Documentation<a class="headerlink" href="#id636" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32105">bpo-32105</a>: Added asyncio.BaseEventLoop.connect_accepted_socket
versionadded marker.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31537">bpo-31537</a>: Fix incorrect usage of <code class="docutils literal notranslate"><span class="pre">get_history_length</span></code> in readline
documentation example code. Patch by Brad Smith.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30085">bpo-30085</a>: The operator functions without double underscores are preferred
for clarity. The one with underscores are only kept for
back-compatibility.</p></li>
</ul>
</section>
<section id="id637">
<h3>Tests<a class="headerlink" href="#id637" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31380">bpo-31380</a>: Skip test_httpservers test_undecodable_file on macOS: fails on
APFS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31705">bpo-31705</a>: Skip test_socket.test_sha256() on Linux kernel older than 4.5.
The test fails with ENOKEY on kernel 3.10 (on ppc64le). A fix was merged
into the kernel 4.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31174">bpo-31174</a>: Fix test_tools.test_unparse: DirectoryTestCase now stores the
names sample to always test the same files. It prevents false alarms when
hunting reference leaks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30695">bpo-30695</a>: Add the <code class="docutils literal notranslate"><span class="pre">set_nomemory(start,</span> <span class="pre">stop)</span></code> and
<code class="docutils literal notranslate"><span class="pre">remove_mem_hooks()</span></code> functions to the <code class="docutils literal notranslate"><span class="pre">_testcapi</span></code> module.</p></li>
</ul>
</section>
<section id="id638">
<h3>Build<a class="headerlink" href="#id638" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32059">bpo-32059</a>: <code class="docutils literal notranslate"><span class="pre">detect_modules()</span></code> in <code class="docutils literal notranslate"><span class="pre">setup.py</span></code> now also searches the
sysroot paths when cross-compiling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31957">bpo-31957</a>: Fixes Windows SDK version detection when building for Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31609">bpo-31609</a>: Fixes quotes in PCbuild/clean.bat</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31934">bpo-31934</a>: Abort the build when building out of a not clean source tree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31926">bpo-31926</a>: Fixed Argument Clinic sometimes causing compilation errors when
there was more than one function and/or method in a .c file with the same
name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28791">bpo-28791</a>: Update Windows builds to use SQLite 3.21.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28791">bpo-28791</a>: Update OS X installer to use SQLite 3.21.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22140">bpo-22140</a>: Prevent double substitution of prefix in python-config.sh.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31536">bpo-31536</a>: Avoid wholesale rebuild after <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-all</span></code> if nothing
changed.</p></li>
</ul>
</section>
<section id="id639">
<h3>Windows<a class="headerlink" href="#id639" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1102">bpo-1102</a>: Return <code class="docutils literal notranslate"><span class="pre">None</span></code> when <code class="docutils literal notranslate"><span class="pre">View.Fetch()</span></code> returns
<code class="docutils literal notranslate"><span class="pre">ERROR_NO_MORE_ITEMS</span></code> instead of raising <code class="docutils literal notranslate"><span class="pre">MSIError</span></code>. Initial patch by
Anthony Tuininga.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31944">bpo-31944</a>: Fixes Modify button in Apps and Features dialog.</p></li>
</ul>
</section>
<section id="id640">
<h3>macOS<a class="headerlink" href="#id640" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31392">bpo-31392</a>: Update macOS installer to use OpenSSL 1.0.2m</p></li>
</ul>
</section>
<section id="id641">
<h3>IDLE<a class="headerlink" href="#id641" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32207">bpo-32207</a>: Improve tk event exception tracebacks in IDLE. When tk event
handling is driven by IDLE’s run loop, a confusing and distracting
queue.EMPTY traceback context is no longer added to tk event exception
tracebacks. The traceback is now the same as when event handling is
driven by user code. Patch based on a suggestion by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32164">bpo-32164</a>: Delete unused file idlelib/tabbedpages.py. Use of TabbedPageSet
in configdialog was replaced by ttk.Notebook.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32100">bpo-32100</a>: IDLE: Fix old and new bugs in pathbrowser; improve tests. Patch
mostly by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31858">bpo-31858</a>: IDLE – Restrict shell prompt manipulation to the shell. Editor
and output windows only see an empty last prompt line. This simplifies
the code and fixes a minor bug when newline is inserted. Sys.ps1, if
present, is read on Shell start-up, but is not set or changed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31860">bpo-31860</a>: The font sample in the IDLE configuration dialog is now
editable. Changes persist while IDLE remains open</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31836">bpo-31836</a>: Test_code_module now passes if run after test_idle, which sets
ps1. The code module uses sys.ps1 if present or sets it to ‘>>> ‘ if not.
Test_code_module now properly tests both behaviors. Ditto for ps2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28603">bpo-28603</a>: Fix a TypeError that caused a shell restart when printing a
traceback that includes an exception that is unhashable. Patch by Zane
Bitter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13802">bpo-13802</a>: Use non-Latin characters in the IDLE’s Font settings sample.
Even if one selects a font that defines a limited subset of the unicode
Basic Multilingual Plane, tcl/tk will use other fonts that define a
character. The expanded example give users of non-Latin characters a
better idea of what they might see in IDLE’s shell and editors. To make
room for the expanded sample, frames on the Font tab are re-arranged. The
Font/Tabs help explains a bit about the additions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31460">bpo-31460</a>: Simplify the API of IDLE’s Module Browser. Passing a widget
instead of an flist with a root widget opens the option of creating a
browser frame that is only part of a window. Passing a full file name
instead of pieces assumed to come from a .py file opens the possibility of
browsing python files that do not end in .py.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31649">bpo-31649</a>: IDLE - Make _htest, _utest parameters keyword only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31559">bpo-31559</a>: Remove test order dependence in idle_test.test_browser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31459">bpo-31459</a>: Rename IDLE’s module browser from Class Browser to Module
Browser. The original module-level class and method browser became a
module browser, with the addition of module-level functions, years ago.
Nested classes and functions were added yesterday. For
back-compatibility, the virtual event <<open-class-browser>>, which
appears on the Keys tab of the Settings dialog, is not changed. Patch by
Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31500">bpo-31500</a>: Default fonts now are scaled on HiDPI displays.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1612262">bpo-1612262</a>: IDLE module browser now shows nested classes and functions.
Original patches for code and tests by Guilherme Polo and Cheryl Sabella,
respectively.</p></li>
</ul>
</section>
<section id="id642">
<h3>Tools/Demos<a class="headerlink" href="#id642" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30722">bpo-30722</a>: Make redemo work with Python 3.6 and newer versions. Also,
remove the <code class="docutils literal notranslate"><span class="pre">LOCALE</span></code> option since it doesn’t work with string patterns in
Python 3. Patch by Christoph Sarnowski.</p></li>
</ul>
</section>
<section id="id643">
<h3>C API<a class="headerlink" href="#id643" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20891">bpo-20891</a>: Fix PyGILState_Ensure(). When PyGILState_Ensure() is called in
a non-Python thread before PyEval_InitThreads(), only call
PyEval_InitThreads() after calling PyThreadState_New() to fix a crash.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31532">bpo-31532</a>: Fix memory corruption due to allocator mix in getpath.c between
Py_GetPath() and Py_SetPath()</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30697">bpo-30697</a>: The <code class="docutils literal notranslate"><span class="pre">PyExc_RecursionErrorInst</span></code> singleton is removed and
<code class="docutils literal notranslate"><span class="pre">PyErr_NormalizeException()</span></code> does not use it anymore. This singleton is
persistent and its members being never cleared may cause a segfault during
finalization of the interpreter. See also <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22898">bpo-22898</a>.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-3-final">
<h2>Python 3.6.3 final<a class="headerlink" href="#python-3-6-3-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-10-03</em></p>
<section id="id644">
<h3>Library<a class="headerlink" href="#id644" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31641">bpo-31641</a>: Re-allow arbitrary iterables in
<code class="docutils literal notranslate"><span class="pre">concurrent.futures.as_completed()</span></code>. Fixes regression in 3.6.3rc1.</p></li>
</ul>
</section>
<section id="id645">
<h3>Build<a class="headerlink" href="#id645" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31662">bpo-31662</a>: Fix typos in Windows <code class="docutils literal notranslate"><span class="pre">uploadrelease.bat</span></code> script. Fix Windows
Doc build issues in <code class="docutils literal notranslate"><span class="pre">Doc/make.bat</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31423">bpo-31423</a>: Fix building the PDF documentation with newer versions of
Sphinx.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-3-release-candidate-1">
<h2>Python 3.6.3 release candidate 1<a class="headerlink" href="#python-3-6-3-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-09-18</em></p>
<section id="id646">
<h3>Security<a class="headerlink" href="#id646" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29781">bpo-29781</a>: SSLObject.version() now correctly returns None when handshake
over BIO has not been performed yet.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30947">bpo-30947</a>: Upgrade libexpat embedded copy from version 2.2.1 to 2.2.3 to
get security fixes.</p></li>
</ul>
</section>
<section id="id647">
<h3>Core and Builtins<a class="headerlink" href="#id647" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31471">bpo-31471</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">subprocess.Popen()</span></code> on Windows,
in case the env argument has a bad <code class="docutils literal notranslate"><span class="pre">keys()</span></code> method. Patch by Oren
Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31418">bpo-31418</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">PyErr_WriteUnraisable()</span></code> in case
of an exception with a bad <code class="docutils literal notranslate"><span class="pre">__module__</span></code> attribute. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31416">bpo-31416</a>: Fix assertion failures in case of a bad warnings.filters or
warnings.defaultaction. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31411">bpo-31411</a>: Raise a TypeError instead of SystemError in case
warnings.onceregistry is not a dictionary. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31373">bpo-31373</a>: Fix several possible instances of undefined behavior due to
floating-point demotions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30465">bpo-30465</a>: Location information (<code class="docutils literal notranslate"><span class="pre">lineno</span></code> and <code class="docutils literal notranslate"><span class="pre">col_offset</span></code>) in
f-strings is now (mostly) correct. This fixes tools like flake8 from
showing warnings on the wrong line (typically the first line of the file).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31343">bpo-31343</a>: Include sys/sysmacros.h for major(), minor(), and makedev().
GNU C library plans to remove the functions from sys/types.h.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31291">bpo-31291</a>: Fix an assertion failure in <code class="docutils literal notranslate"><span class="pre">zipimport.zipimporter.get_data</span></code>
on Windows, when the return value of <code class="docutils literal notranslate"><span class="pre">pathname.replace('/','\\')</span></code> isn’t
a string. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31271">bpo-31271</a>: Fix an assertion failure in the <code class="docutils literal notranslate"><span class="pre">write()</span></code> method of
<code class="docutils literal notranslate"><span class="pre">io.TextIOWrapper</span></code>, when the encoder doesn’t return a bytes object.
Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31243">bpo-31243</a>: Fix a crash in some methods of <code class="docutils literal notranslate"><span class="pre">io.TextIOWrapper</span></code>, when the
decoder’s state is invalid. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30721">bpo-30721</a>: <code class="docutils literal notranslate"><span class="pre">print</span></code> now shows correct usage hint for using Python 2
redirection syntax. Patch by Sanyam Khurana.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31070">bpo-31070</a>: Fix a race condition in importlib _get_module_lock().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31095">bpo-31095</a>: Fix potential crash during GC caused by <code class="docutils literal notranslate"><span class="pre">tp_dealloc</span></code> which
doesn’t call <code class="docutils literal notranslate"><span class="pre">PyObject_GC_UnTrack()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31071">bpo-31071</a>: Avoid masking original TypeError in call with * unpacking when
other arguments are passed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30978">bpo-30978</a>: str.format_map() now passes key lookup exceptions through.
Previously any exception was replaced with a KeyError exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30808">bpo-30808</a>: Use _Py_atomic API for concurrency-sensitive signal state.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30876">bpo-30876</a>: Relative import from unloaded package now reimports the package
instead of failing with SystemError. Relative import from non-package now
fails with ImportError rather than SystemError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30703">bpo-30703</a>: Improve signal delivery. Avoid using Py_AddPendingCall from
signal handler, to avoid calling signal-unsafe functions. The tests I’m
adding here fail without the rest of the patch, on Linux and OS X. This
means our signal delivery logic had defects (some signals could be lost).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30765">bpo-30765</a>: Avoid blocking in pthread_mutex_lock() when
PyThread_acquire_lock() is asked not to block.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31161">bpo-31161</a>: Make sure the ‘Missing parentheses’ syntax error message is
only applied to SyntaxError, not to subclasses. Patch by Martijn Pieters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30814">bpo-30814</a>: Fixed a race condition when import a submodule from a package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30597">bpo-30597</a>: <code class="docutils literal notranslate"><span class="pre">print</span></code> now shows expected input in custom error message when
used as a Python 2 statement. Patch by Sanyam Khurana.</p></li>
</ul>
</section>
<section id="id648">
<h3>Library<a class="headerlink" href="#id648" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31499">bpo-31499</a>: xml.etree: Fix a crash when a parser is part of a reference
cycle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: typing.get_type_hints now finds the right globalns for classes
and modules by default (when no <code class="docutils literal notranslate"><span class="pre">globalns</span></code> was specified by the caller).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Speed improvements to the <code class="docutils literal notranslate"><span class="pre">typing</span></code> module. Original PRs by
Ivan Levkivskyi and Mitar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31544">bpo-31544</a>: The C accelerator module of ElementTree ignored exceptions
raised when looking up TreeBuilder target methods in XMLParser().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31234">bpo-31234</a>: socket.create_connection() now fixes manually a reference
cycle: clear the variable storing the last exception on success.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31457">bpo-31457</a>: LoggerAdapter objects can now be nested.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31400">bpo-31400</a>: Improves SSL error handling to avoid losing error numbers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28958">bpo-28958</a>: ssl.SSLContext() now uses OpenSSL error information when a
context cannot be instantiated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27340">bpo-27340</a>: SSLSocket.sendall() now uses memoryview to create slices of
data. This fixes support for all bytes-like object. It is also more
efficient and avoids costly copies.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31178">bpo-31178</a>: Fix string concatenation bug in rare error path in the
subprocess module</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31350">bpo-31350</a>: Micro-optimize <code class="xref py py-func docutils literal notranslate"><span class="pre">asyncio._get_running_loop()</span></code> to become up
to 10% faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31170">bpo-31170</a>: expat: Update libexpat from 2.2.3 to 2.2.4. Fix copying of
partial characters for UTF-8 input (libexpat bug 115):
<a class="reference external" href="https://github.com/libexpat/libexpat/issues/115">https://github.com/libexpat/libexpat/issues/115</a></p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29136">bpo-29136</a>: Add TLS 1.3 cipher suites and OP_NO_TLSv1_3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29212">bpo-29212</a>: Fix concurrent.futures.thread.ThreadPoolExecutor threads to
have a non repr() based thread name by default when no thread_name_prefix
is supplied. They will now identify themselves as
“ThreadPoolExecutor-y_n”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9146">bpo-9146</a>: Fix a segmentation fault in _hashopenssl when standard hash
functions such as md5 are not available in the linked OpenSSL library. As
in some special FIPS-140 build environments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27144">bpo-27144</a>: The <code class="docutils literal notranslate"><span class="pre">map()</span></code> and <code class="docutils literal notranslate"><span class="pre">as_completed()</span></code> iterators in
<code class="docutils literal notranslate"><span class="pre">concurrent.futures</span></code> now avoid keeping a reference to yielded objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10746">bpo-10746</a>: Fix ctypes producing wrong <span class="target" id="index-413"></span><a class="pep reference external" href="https://peps.python.org/pep-3118/"><strong>PEP 3118</strong></a> type codes for integer
types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22536">bpo-22536</a>: The subprocess module now sets the filename when
FileNotFoundError is raised on POSIX systems due to the executable or cwd
not being found.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31249">bpo-31249</a>: concurrent.futures: WorkItem.run() used by ThreadPoolExecutor
now breaks a reference cycle between an exception object and the WorkItem
object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31247">bpo-31247</a>: xmlrpc.server now explicitly breaks reference cycles when using
sys.exc_info() in code handling exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30102">bpo-30102</a>: The ssl and hashlib modules now call
OPENSSL_add_all_algorithms_noconf() on OpenSSL < 1.1.0. The function
detects CPU features and enables optimizations on some CPU architectures
such as POWER8. Patch is based on research from Gustavo Serra Scalet.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31185">bpo-31185</a>: Fixed miscellaneous errors in asyncio speedup module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31135">bpo-31135</a>: ttk: fix the destroy() method of LabeledScale and OptionMenu
classes. Call the parent destroy() method even if the used attribute
doesn’t exist. The LabeledScale.destroy() method now also explicitly
clears label and scale attributes to help the garbage collector to destroy
all widgets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31107">bpo-31107</a>: Fix <code class="docutils literal notranslate"><span class="pre">copyreg._slotnames()</span></code> mangled attribute calculation for
classes whose name begins with an underscore. Patch by Shane Harvey.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31061">bpo-31061</a>: Fixed a crash when using asyncio and threads.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30502">bpo-30502</a>: Fix handling of long oids in ssl. Based on patch by Christian
Heimes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30119">bpo-30119</a>: ftplib.FTP.putline() now throws ValueError on commands that
contains CR or LF. Patch by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30595">bpo-30595</a>: multiprocessing.Queue.get() with a timeout now polls its reader
in non-blocking mode if it succeeded to acquire the lock but the acquire
took longer than the timeout.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29403">bpo-29403</a>: Fix <code class="docutils literal notranslate"><span class="pre">unittest.mock</span></code>’s autospec to not fail on method-bound
builtin functions. Patch by Aaron Gallagher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30961">bpo-30961</a>: Fix decrementing a borrowed reference in tracemalloc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25684">bpo-25684</a>: Change <code class="docutils literal notranslate"><span class="pre">ttk.OptionMenu</span></code> radiobuttons to be unique across
instances of <code class="docutils literal notranslate"><span class="pre">OptionMenu</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30886">bpo-30886</a>: Fix multiprocessing.Queue.join_thread(): it now waits until the
thread completes, even if the thread was started by the same process which
created the queue.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29854">bpo-29854</a>: Fix segfault in readline when using readline’s history-size
option. Patch by Nir Soffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30319">bpo-30319</a>: socket.close() now ignores ECONNRESET error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30828">bpo-30828</a>: Fix out of bounds write in
<code class="docutils literal notranslate"><span class="pre">asyncio.CFuture.remove_done_callback()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30807">bpo-30807</a>: signal.setitimer() may disable the timer when passed a tiny
value. Tiny values (such as 1e-6) are valid non-zero values for
setitimer(), which is specified as taking microsecond-resolution
intervals. However, on some platform, our conversion routine could convert
1e-6 into a zero interval, therefore disabling the timer instead of
(re-)scheduling it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30441">bpo-30441</a>: Fix bug when modifying os.environ while iterating over it</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30532">bpo-30532</a>: Fix email header value parser dropping folding white space in
certain cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30879">bpo-30879</a>: os.listdir() and os.scandir() now emit bytes names when called
with bytes-like argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30746">bpo-30746</a>: Prohibited the ‘=’ character in environment variable names in
<code class="docutils literal notranslate"><span class="pre">os.putenv()</span></code> and <code class="docutils literal notranslate"><span class="pre">os.spawn*()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29755">bpo-29755</a>: Fixed the lgettext() family of functions in the gettext module.
They now always return bytes.</p></li>
</ul>
</section>
<section id="id649">
<h3>Documentation<a class="headerlink" href="#id649" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31294">bpo-31294</a>: Fix incomplete code snippet in the ZeroMQSocketListener and
ZeroMQSocketHandler examples and adapt them to Python 3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21649">bpo-21649</a>: Add RFC 7525 and Mozilla server side TLS links to SSL
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30803">bpo-30803</a>: Clarify doc on truth value testing. Original patch by Peter
Thomassen.</p></li>
</ul>
</section>
<section id="id650">
<h3>Tests<a class="headerlink" href="#id650" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31320">bpo-31320</a>: Silence traceback in test_ssl</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25674">bpo-25674</a>: Remove sha256.tbs-internet.com ssl test</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30715">bpo-30715</a>: Address ALPN callback changes for OpenSSL 1.1.0f. The latest
version behaves like OpenSSL 1.0.2 and no longer aborts handshake.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30822">bpo-30822</a>: regrtest: Exclude tzdata from regrtest –all. When running the
test suite using –use=all / -u all, exclude tzdata since it makes
test_datetime too slow (15-20 min on some buildbots) which then times out
on some buildbots. Fix also regrtest command line parser to allow passing
-u extralargefile to run test_zipfile64.</p></li>
</ul>
</section>
<section id="id651">
<h3>Build<a class="headerlink" href="#id651" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30854">bpo-30854</a>: Fix compile error when compiling –without-threads. Patch by
Masayuki Yamamoto.</p></li>
</ul>
</section>
<section id="id652">
<h3>Windows<a class="headerlink" href="#id652" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30389">bpo-30389</a>: Adds detection of Visual Studio 2017 to distutils on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31340">bpo-31340</a>: Change to building with MSVC v141 (included with Visual Studio
2017)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30581">bpo-30581</a>: os.cpu_count() now returns the correct number of processors on
Windows when the number of logical processors is greater than 64.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30731">bpo-30731</a>: Add a missing xmlns to python.manifest so that it matches the
schema.</p></li>
</ul>
</section>
<section id="id653">
<h3>IDLE<a class="headerlink" href="#id653" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31493">bpo-31493</a>: IDLE code context – fix code update and font update timers.
Canceling timers prevents a warning message when test_idle completes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31488">bpo-31488</a>: IDLE - Update non-key options in former extension classes. When
applying configdialog changes, call .reload for each feature class. Change
ParenMatch so updated options affect existing instances attached to
existing editor windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31477">bpo-31477</a>: IDLE - Improve rstrip entry in doc. Strip trailing whitespace
strips more than blank spaces. Multiline string literals are not skipped.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31480">bpo-31480</a>: IDLE - make tests pass with zzdummy extension disabled by
default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31421">bpo-31421</a>: Document how IDLE runs tkinter programs. IDLE calls tcl/tk
update in the background in order to make live interaction and
experimentation with tkinter applications much easier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31414">bpo-31414</a>: IDLE – fix tk entry box tests by deleting first. Adding to an
int entry is not the same as deleting and inserting because int(‘’) will
fail.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31051">bpo-31051</a>: Rearrange IDLE configdialog GenPage into Window, Editor, and
Help sections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30617">bpo-30617</a>: IDLE - Add docstrings and tests for outwin subclass of editor.
Move some data and functions from the class to module level. Patch by
Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31287">bpo-31287</a>: IDLE - Do not modify tkinter.message in test_configdialog.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27099">bpo-27099</a>: Convert IDLE’s built-in ‘extensions’ to regular features. About
10 IDLE features were implemented as supposedly optional extensions. Their
different behavior could be confusing or worse for users and not good for
maintenance. Hence the conversion. The main difference for users is that
user configurable key bindings for builtin features are now handled
uniformly. Now, editing a binding in a keyset only affects its value in
the keyset. All bindings are defined together in the system-specific
default keysets in config-extensions.def. All custom keysets are saved as
a whole in config-extension.cfg. All take effect as soon as one clicks
Apply or Ok. The affected events are ‘<<force-open-completions>>’,
‘<<expand-word>>’, ‘<<force-open-calltip>>’, ‘<<flash-paren>>’,
‘<<format-paragraph>>’, ‘<<run-module>>’, ‘<<check-module>>’, and
‘<<zoom-height>>’. Any (global) customizations made before 3.6.3 will not
affect their keyset-specific customization after 3.6.3. and vice versa.
Initial patch by Charles Wohlganger.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31206">bpo-31206</a>: IDLE: Factor HighPage(Frame) class from ConfigDialog. Patch by
Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31001">bpo-31001</a>: Add tests for configdialog highlight tab. Patch by Cheryl
Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31205">bpo-31205</a>: IDLE: Factor KeysPage(Frame) class from ConfigDialog. The
slightly modified tests continue to pass. Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31130">bpo-31130</a>: IDLE – stop leaks in test_configdialog. Initial patch by
Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31002">bpo-31002</a>: Add tests for configdialog keys tab. Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19903">bpo-19903</a>: IDLE: Calltips use <code class="docutils literal notranslate"><span class="pre">inspect.signature</span></code> instead of
<code class="docutils literal notranslate"><span class="pre">inspect.getfullargspec</span></code>. This improves calltips for builtins converted
to use Argument Clinic. Patch by Louie Lu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31083">bpo-31083</a>: IDLE - Add an outline of a TabPage class in configdialog.
Update existing classes to match outline. Initial patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31050">bpo-31050</a>: Factor GenPage(Frame) class from ConfigDialog. The slightly
modified tests continue to pass. Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31004">bpo-31004</a>: IDLE - Factor FontPage(Frame) class from ConfigDialog. Slightly
modified tests continue to pass. Fix General tests. Patch mostly by Cheryl
Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30781">bpo-30781</a>: IDLE - Use ttk widgets in ConfigDialog. Patches by Terry Jan
Reedy and Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31060">bpo-31060</a>: IDLE - Finish rearranging methods of ConfigDialog Grouping
methods pertaining to each tab and the buttons will aid writing tests and
improving the tabs and will enable splitting the groups into classes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30853">bpo-30853</a>: IDLE – Factor a VarTrace class out of ConfigDialog. Instance
tracers manages pairs consisting of a tk variable and a callback function.
When tracing is turned on, setting the variable calls the function. Test
coverage for the new class is 100%.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31003">bpo-31003</a>: IDLE: Add more tests for General tab.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30993">bpo-30993</a>: IDLE - Improve configdialog font page and tests. In
configdialog: Document causal pathways in create_font_tab docstring.
Simplify some attribute names. Move set_samples calls to var_changed_font
(idea from Cheryl Sabella). Move related functions to positions after the
create widgets function. In test_configdialog: Fix test_font_set so not
order dependent. Fix renamed test_indent_scale so it tests the widget.
Adjust tests for movement of set_samples call. Add tests for load
functions. Put all font tests in one class and tab indent tests in
another. Except for two lines, these tests completely cover the related
functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30981">bpo-30981</a>: IDLE – Add more configdialog font page tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28523">bpo-28523</a>: IDLE: replace ‘colour’ with ‘color’ in configdialog.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30917">bpo-30917</a>: Add tests for idlelib.config.IdleConf. Increase coverage from
46% to 96%. Patch by Louie Lu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30934">bpo-30934</a>: Document coverage details for idlelib tests. Add section to
idlelib/idle-test/README.txt. Include check that branches are taken both
ways. Exclude IDLE-specific code that does not run during unit tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30913">bpo-30913</a>: IDLE: Document ConfigDialog tk Vars, methods, and widgets in
docstrings This will facilitate improving the dialog and splitting up the
class. Original patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30899">bpo-30899</a>: IDLE: Add tests for ConfigParser subclasses in config. Patch by
Louie Lu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30881">bpo-30881</a>: IDLE: Add docstrings to browser.py. Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30851">bpo-30851</a>: IDLE: Remove unused variables in configdialog. One is a
duplicate, one is set but cannot be altered by users. Patch by Cheryl
Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30870">bpo-30870</a>: IDLE: In Settings dialog, select font with Up, Down keys as
well as mouse. Initial patch by Louie Lu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8231">bpo-8231</a>: IDLE: call config.IdleConf.GetUserCfgDir only once.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30779">bpo-30779</a>: IDLE: Factor ConfigChanges class from configdialog, put in
config; test. * In config, put dump test code in a function; run it and
unittest in ‘if __name__ == ‘__main__’. * Add class config.ConfigChanges
based on changes_class_v4.py on bpo issue. * Add class
test_config.ChangesTest, partly using configdialog_tests_v1.py. * Revise
configdialog to use ConfigChanges; see tracker msg297804. * Revise
test_configdialog to match configdialog changes. * Remove configdialog
functions unused or moved to ConfigChanges. Cheryl Sabella contributed
parts of the patch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30777">bpo-30777</a>: IDLE: configdialog - Add docstrings and fix comments. Patch by
Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30495">bpo-30495</a>: IDLE: Improve textview with docstrings, PEP8 names, and more
tests. Patch by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30723">bpo-30723</a>: IDLE: Make several improvements to parenmatch. Add ‘parens’
style to highlight both opener and closer. Make ‘default’ style, which is
not default, a synonym for ‘opener’. Make time-delay work the same with
all styles. Add help for config dialog extensions tab, including help for
parenmatch. Add new tests. Original patch by Charles Wohlganger.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30674">bpo-30674</a>: IDLE: add docstrings to grep module. Patch by Cheryl Sabella</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21519">bpo-21519</a>: IDLE’s basic custom key entry dialog now detects duplicates
properly. Original patch by Saimadhav Heblikar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29910">bpo-29910</a>: IDLE no longer deletes a character after commenting out a
region by a key shortcut. Add <code class="docutils literal notranslate"><span class="pre">return</span> <span class="pre">'break'</span></code> for this and other
potential conflicts between IDLE and default key bindings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30728">bpo-30728</a>: Review and change idlelib.configdialog names. Lowercase method
and attribute names. Replace ‘colour’ with ‘color’, expand overly cryptic
names, delete unneeded underscores. Replace <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">*</span></code> with specific
imports. Patches by Cheryl Sabella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6739">bpo-6739</a>: IDLE: Verify user-entered key sequences by trying to bind them
with tk. Add tests for all 3 validation functions. Original patch by G
Polo. Tests added by Cheryl Sabella.</p></li>
</ul>
</section>
<section id="id654">
<h3>Tools/Demos<a class="headerlink" href="#id654" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30983">bpo-30983</a>: gdb integration commands (py-bt, etc.) work on optimized shared
builds now, too. <span class="target" id="index-414"></span><a class="pep reference external" href="https://peps.python.org/pep-0523/"><strong>PEP 523</strong></a> introduced _PyEval_EvalFrameDefault which
inlines PyEval_EvalFrameEx on non-debug shared builds. This broke the
ability to use py-bt, py-up, and a few other Python-specific gdb
integrations. The problem is fixed by only looking for
_PyEval_EvalFrameDefault frames in python-gdb.py. Original patch by Bruno
“Polaco” Penteado.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-2-final">
<h2>Python 3.6.2 final<a class="headerlink" href="#python-3-6-2-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-07-17</em></p>
<p>No changes since release candidate 2</p>
</section>
<section id="python-3-6-2-release-candidate-2">
<h2>Python 3.6.2 release candidate 2<a class="headerlink" href="#python-3-6-2-release-candidate-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-07-07</em></p>
<section id="id655">
<h3>Security<a class="headerlink" href="#id655" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30730">bpo-30730</a>: Prevent environment variables injection in subprocess on
Windows. Prevent passing other environment variables and command
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30694">bpo-30694</a>: Upgrade expat copy from 2.2.0 to 2.2.1 to get fixes of multiple
security vulnerabilities including: <span class="target" id="index-415"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2017-9233"><strong>CVE 2017-9233</strong></a> (External entity
infinite loop DoS), <span class="target" id="index-416"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-9063"><strong>CVE 2016-9063</strong></a> (Integer overflow, re-fix),
<span class="target" id="index-417"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-0718"><strong>CVE 2016-0718</strong></a> (Fix regression bugs from 2.2.0’s fix to
<span class="target" id="index-418"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-0718"><strong>CVE 2016-0718</strong></a>) and <span class="target" id="index-419"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2012-0876"><strong>CVE 2012-0876</strong></a> (Counter hash flooding with
SipHash). Note: the <span class="target" id="index-420"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-5300"><strong>CVE 2016-5300</strong></a> (Use os-specific entropy sources like
getrandom) doesn’t impact Python, since Python already gets entropy from
the OS to set the expat secret using <code class="docutils literal notranslate"><span class="pre">XML_SetHashSalt()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30500">bpo-30500</a>: Fix urllib.parse.splithost() to correctly parse fragments. For
example, <code class="docutils literal notranslate"><span class="pre">splithost('//127.0.0.1#@evil.com/')</span></code> now correctly returns the
<code class="docutils literal notranslate"><span class="pre">127.0.0.1</span></code> host, instead of treating <code class="docutils literal notranslate"><span class="pre">@evil.com</span></code> as the host in an
authentication (<code class="docutils literal notranslate"><span class="pre">login@host</span></code>).</p></li>
</ul>
</section>
</section>
<section id="python-3-6-2-release-candidate-1">
<h2>Python 3.6.2 release candidate 1<a class="headerlink" href="#python-3-6-2-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-06-17</em></p>
<section id="id656">
<h3>Security<a class="headerlink" href="#id656" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29591">bpo-29591</a>: Update expat copy from 2.1.1 to 2.2.0 to get fixes of
<span class="target" id="index-421"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-0718"><strong>CVE 2016-0718</strong></a> and <span class="target" id="index-422"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-4472"><strong>CVE 2016-4472</strong></a>. See
<a class="reference external" href="https://sourceforge.net/p/expat/bugs/537/">https://sourceforge.net/p/expat/bugs/537/</a> for more information.</p></li>
</ul>
</section>
<section id="id657">
<h3>Core and Builtins<a class="headerlink" href="#id657" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30682">bpo-30682</a>: Removed a too-strict assertion that failed for certain
f-strings, such as eval(“f’\n’”) and eval(“f’\r’”).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30604">bpo-30604</a>: Move co_extra_freefuncs to not be per-thread to avoid crashes</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29104">bpo-29104</a>: Fixed parsing backslashes in f-strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27945">bpo-27945</a>: Fixed various segfaults with dict when input collections are
mutated during searching, inserting or comparing. Based on patches by
Duane Griffin and Tim Mitchell.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25794">bpo-25794</a>: Fixed type.__setattr__() and type.__delattr__() for
non-interned attribute names. Based on patch by Eryk Sun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30039">bpo-30039</a>: If a KeyboardInterrupt happens when the interpreter is in the
middle of resuming a chain of nested ‘yield from’ or ‘await’ calls, it’s
now correctly delivered to the innermost frame.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12414">bpo-12414</a>: sys.getsizeof() on a code object now returns the sizes which
includes the code struct and sizes of objects which it references. Patch
by Donghee Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29949">bpo-29949</a>: Fix memory usage regression of set and frozenset object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29935">bpo-29935</a>: Fixed error messages in the index() method of tuple, list and
deque when pass indices of wrong type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29859">bpo-29859</a>: Show correct error messages when any of the pthread_* calls in
thread_pthread.h fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28876">bpo-28876</a>: <code class="docutils literal notranslate"><span class="pre">bool(range)</span></code> works even if <code class="docutils literal notranslate"><span class="pre">len(range)</span></code> raises
<a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29600">bpo-29600</a>: Fix wrapping coroutine return values in StopIteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28856">bpo-28856</a>: Fix an oversight that %b format for bytes should support
objects follow the buffer protocol.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29714">bpo-29714</a>: Fix a regression that bytes format may fail when containing
zero bytes inside.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29478">bpo-29478</a>: If max_line_length=None is specified while using the Compat32
policy, it is no longer ignored. Patch by Mircea Cosbuc.</p></li>
</ul>
</section>
<section id="id658">
<h3>Library<a class="headerlink" href="#id658" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30616">bpo-30616</a>: Functional API of enum allows to create empty enums. Patched by
Donghee Na</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30038">bpo-30038</a>: Fix race condition between signal delivery and wakeup file
descriptor. Patch by Nathaniel Smith.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23894">bpo-23894</a>: lib2to3 now recognizes <code class="docutils literal notranslate"><span class="pre">rb'...'</span></code> and <code class="docutils literal notranslate"><span class="pre">f'...'</span></code> strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23890">bpo-23890</a>: unittest.TestCase.assertRaises() now manually breaks a
reference cycle to not keep objects alive longer than expected.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30149">bpo-30149</a>: inspect.signature() now supports callables with
variable-argument parameters wrapped with partialmethod. Patch by Donghee
Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30645">bpo-30645</a>: Fix path calculation in imp.load_package(), fixing it for cases
when a package is only shipped with bytecodes. Patch by Alexandru
Ardelean.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29931">bpo-29931</a>: Fixed comparison check for ipaddress.ip_interface objects.
Patch by Sanjay Sundaresan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30605">bpo-30605</a>: re.compile() no longer raises a BytesWarning when compiling a
bytes instance with misplaced inline modifier. Patch by Roy Williams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24484">bpo-24484</a>: Avoid race condition in multiprocessing cleanup (#2159)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28994">bpo-28994</a>: The traceback no longer displayed for SystemExit raised in a
callback registered by atexit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30508">bpo-30508</a>: Don’t log exceptions if Task/Future “cancel()” method was
called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Updates to typing module: Add generic AsyncContextManager, add
support for ContextManager on all versions. Original PRs by Jelle Zijlstra
and Ivan Levkivskyi</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29870">bpo-29870</a>: Fix ssl sockets leaks when connection is aborted in asyncio/ssl
implementation. Patch by Michaël Sghaïer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29743">bpo-29743</a>: Closing transport during handshake process leaks open socket.
Patch by Nikolay Kim</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27585">bpo-27585</a>: Fix waiter cancellation in asyncio.Lock. Patch by Mathieu
Sornay.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30418">bpo-30418</a>: On Windows, subprocess.Popen.communicate() now also ignore
EINVAL on stdin.write() if the child process is still running but closed
the pipe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29822">bpo-29822</a>: inspect.isabstract() now works during __init_subclass__. Patch
by Nate Soares.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29581">bpo-29581</a>: ABCMeta.__new__ now accepts <code class="docutils literal notranslate"><span class="pre">**kwargs</span></code>, allowing abstract
base classes to use keyword parameters in __init_subclass__. Patch by Nate
Soares.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30557">bpo-30557</a>: faulthandler now correctly filters and displays exception codes
on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30378">bpo-30378</a>: Fix the problem that logging.handlers.SysLogHandler cannot
handle IPv6 addresses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29960">bpo-29960</a>: Preserve generator state when _random.Random.setstate() raises
an exception. Patch by Bryan Olson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30414">bpo-30414</a>: multiprocessing.Queue._feed background running thread do not
break from main loop on exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30003">bpo-30003</a>: Fix handling escape characters in HZ codec. Based on patch by
Ma Lin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30301">bpo-30301</a>: Fix AttributeError when using SimpleQueue.empty() under <em>spawn</em>
and <em>forkserver</em> start methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30329">bpo-30329</a>: imaplib and poplib now catch the Windows socket WSAEINVAL error
(code 10022) on shutdown(SHUT_RDWR): An invalid operation was attempted.
This error occurs sometimes on SSL connections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30375">bpo-30375</a>: Warnings emitted when compile a regular expression now always
point to the line in the user code. Previously they could point into
inners of the re module if emitted from inside of groups or conditionals.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30048">bpo-30048</a>: Fixed <code class="docutils literal notranslate"><span class="pre">Task.cancel()</span></code> can be ignored when the task is running
coroutine and the coroutine returned without any more <code class="docutils literal notranslate"><span class="pre">await</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30266">bpo-30266</a>: contextlib.AbstractContextManager now supports
anti-registration by setting __enter__ = None or __exit__ = None,
following the pattern introduced in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25958">bpo-25958</a>. Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30298">bpo-30298</a>: Weaken the condition of deprecation warnings for inline
modifiers. Now allowed several subsequential inline modifiers at the start
of the pattern (e.g. <code class="docutils literal notranslate"><span class="pre">'(?i)(?s)...'</span></code>). In verbose mode whitespaces and
comments now are allowed before and between inline modifiers (e.g. <code class="docutils literal notranslate"><span class="pre">'(?x)</span>
<span class="pre">(?i)</span> <span class="pre">(?s)...'</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29990">bpo-29990</a>: Fix range checking in GB18030 decoder. Original patch by Ma
Lin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26293">bpo-26293</a>: Change resulted because of zipfile breakage. (See also:
<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29094">bpo-29094</a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30243">bpo-30243</a>: Removed the __init__ methods of _json’s scanner and encoder.
Misusing them could cause memory leaks or crashes. Now scanner and
encoder objects are completely initialized in the __new__ methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30185">bpo-30185</a>: Avoid KeyboardInterrupt tracebacks in forkserver helper process
when Ctrl-C is received.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Various updates to typing module: add typing.NoReturn type, use
WrapperDescriptorType, minor bug-fixes. Original PRs by Jim
Fasarakis-Hilliard and Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30205">bpo-30205</a>: Fix getsockname() for unbound AF_UNIX sockets on Linux.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30070">bpo-30070</a>: Fixed leaks and crashes in errors handling in the parser
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30061">bpo-30061</a>: Fixed crashes in IOBase methods __next__() and readlines() when
readline() or __next__() respectively return non-sizeable object. Fixed
possible other errors caused by not checking results of PyObject_Size(),
PySequence_Size(), or PyMapping_Size().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30017">bpo-30017</a>: Allowed calling the close() method of the zip entry writer
object multiple times. Writing to a closed writer now always produces a
ValueError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30068">bpo-30068</a>: _io._IOBase.readlines will check if it’s closed first when hint
is present.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29694">bpo-29694</a>: Fixed race condition in pathlib mkdir with flags parents=True.
Patch by Armin Rigo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29692">bpo-29692</a>: Fixed arbitrary unchaining of RuntimeError exceptions in
contextlib.contextmanager. Patch by Siddharth Velankar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29998">bpo-29998</a>: Pickling and copying ImportError now preserves name and path
attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29953">bpo-29953</a>: Fixed memory leaks in the replace() method of datetime and time
objects when pass out of bound fold argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29942">bpo-29942</a>: Fix a crash in itertools.chain.from_iterable when encountering
long runs of empty iterables.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27863">bpo-27863</a>: Fixed multiple crashes in ElementTree caused by race conditions
and wrong types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28699">bpo-28699</a>: Fixed a bug in pools in multiprocessing.pool that raising an
exception at the very first of an iterable may swallow the exception or
make the program hang. Patch by Davin Potts and Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25803">bpo-25803</a>: Avoid incorrect errors raised by Path.mkdir(exist_ok=True) when
the OS gives priority to errors such as EACCES over EEXIST.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29861">bpo-29861</a>: Release references to tasks, their arguments and their results
as soon as they are finished in multiprocessing.Pool.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29884">bpo-29884</a>: faulthandler: Restore the old sigaltstack during teardown.
Patch by Christophe Zeitouny.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25455">bpo-25455</a>: Fixed crashes in repr of recursive buffered file-like objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29800">bpo-29800</a>: Fix crashes in partial.__repr__ if the keys of partial.keywords
are not strings. Patch by Michael Seifert.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29742">bpo-29742</a>: get_extra_info() raises exception if get called on closed ssl
transport. Patch by Nikolay Kim.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8256">bpo-8256</a>: Fixed possible failing or crashing input() if attributes
“encoding” or “errors” of sys.stdin or sys.stdout are not set or are not
strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28298">bpo-28298</a>: Fix a bug that prevented array ‘Q’, ‘L’ and ‘I’ from accepting
big intables (objects that have __int__) as elements. Patch by Oren
Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28231">bpo-28231</a>: The zipfile module now accepts path-like objects for external
paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26915">bpo-26915</a>: index() and count() methods of collections.abc.Sequence now
check identity before checking equality when do comparisons.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29615">bpo-29615</a>: SimpleXMLRPCDispatcher no longer chains KeyError (or any other
exception) to exception(s) raised in the dispatched methods. Patch by Petr
Motejlek.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30177">bpo-30177</a>: path.resolve(strict=False) no longer cuts the path after the
first element not present in the filesystem. Patch by Antoine Pietri.</p></li>
</ul>
</section>
<section id="id659">
<h3>IDLE<a class="headerlink" href="#id659" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15786">bpo-15786</a>: Fix several problems with IDLE’s autocompletion box. The
following should now work: clicking on selection box items; using the
scrollbar; selecting an item by hitting Return. Hangs on MacOSX should no
longer happen. Patch by Louie Lu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25514">bpo-25514</a>: Add doc subsubsection about IDLE failure to start. Popup
no-connection message directs users to this section.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30642">bpo-30642</a>: Fix reference leaks in IDLE tests. Patches by Louie Lu and
Terry Jan Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30495">bpo-30495</a>: Add docstrings for textview.py and use PEP8 names. Patches by
Cheryl Sabella and Terry Jan Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30290">bpo-30290</a>: Help-about: use pep8 names and add tests. Increase coverage to
100%. Patches by Louie Lu, Cheryl Sabella, and Terry Jan Reedy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30303">bpo-30303</a>: Add _utest option to textview; add new tests. Increase coverage
to 100%. Patches by Louie Lu and Terry Jan Reedy.</p></li>
</ul>
</section>
<section id="id660">
<h3>C API<a class="headerlink" href="#id660" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27867">bpo-27867</a>: Function PySlice_GetIndicesEx() no longer replaced with a macro
if Py_LIMITED_API is not set.</p></li>
</ul>
</section>
<section id="id661">
<h3>Build<a class="headerlink" href="#id661" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29941">bpo-29941</a>: Add <code class="docutils literal notranslate"><span class="pre">--with-assertions</span></code> configure flag to explicitly enable C
<code class="docutils literal notranslate"><span class="pre">assert()</span></code> checks. Defaults to off. <code class="docutils literal notranslate"><span class="pre">--with-pydebug</span></code> implies
<code class="docutils literal notranslate"><span class="pre">--with-assertions</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28787">bpo-28787</a>: Fix out-of-tree builds of Python when configured with
<code class="docutils literal notranslate"><span class="pre">--with--dtrace</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29243">bpo-29243</a>: Prevent unnecessary rebuilding of Python during <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span></code>,
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> and some other make targets when configured with
<code class="docutils literal notranslate"><span class="pre">--enable-optimizations</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23404">bpo-23404</a>: Don’t regenerate generated files based on file modification
time anymore: the action is now explicit. Replace <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">touch</span></code> with
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-all</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29643">bpo-29643</a>: Fix <code class="docutils literal notranslate"><span class="pre">--enable-optimization</span></code> didn’t work.</p></li>
</ul>
</section>
<section id="id662">
<h3>Documentation<a class="headerlink" href="#id662" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30176">bpo-30176</a>: Add missing attribute related constants in curses
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30052">bpo-30052</a>: the link targets for <a class="reference internal" href="../library/stdtypes.html#bytes" title="bytes"><code class="xref py py-func docutils literal notranslate"><span class="pre">bytes()</span></code></a> and <a class="reference internal" href="../library/stdtypes.html#bytearray" title="bytearray"><code class="xref py py-func docutils literal notranslate"><span class="pre">bytearray()</span></code></a> are
now their respective type definitions, rather than the corresponding
builtin function entries. Use <a class="reference internal" href="../library/functions.html#func-bytes"><span class="std std-ref">bytes</span></a> and
<a class="reference internal" href="../library/functions.html#func-bytearray"><span class="std std-ref">bytearray</span></a> to reference the latter. In order to
ensure this and future cross-reference updates are applied automatically,
the daily documentation builds now disable the default output caching
features in Sphinx.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26985">bpo-26985</a>: Add missing info of code object in inspect documentation.</p></li>
</ul>
</section>
<section id="id663">
<h3>Tools/Demos<a class="headerlink" href="#id663" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29367">bpo-29367</a>: python-gdb.py now supports also <code class="docutils literal notranslate"><span class="pre">method-wrapper</span></code>
(<code class="docutils literal notranslate"><span class="pre">wrapperobject</span></code>) objects.</p></li>
</ul>
</section>
<section id="id664">
<h3>Tests<a class="headerlink" href="#id664" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30357">bpo-30357</a>: test_thread: setUp() now uses support.threading_setup() and
support.threading_cleanup() to wait until threads complete to avoid random
side effects on following tests. Initial patch written by Grzegorz
Grzywacz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30197">bpo-30197</a>: Enhanced functions swap_attr() and swap_item() in the
test.support module. They now work when delete replaced attribute or item
inside the with statement. The old value of the attribute or item (or
None if it doesn’t exist) now will be assigned to the target of the “as”
clause, if there is one.</p></li>
</ul>
</section>
<section id="id665">
<h3>Windows<a class="headerlink" href="#id665" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30687">bpo-30687</a>: Locate msbuild.exe on Windows when building rather than
vcvarsall.bat</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30450">bpo-30450</a>: The build process on Windows no longer depends on Subversion,
instead pulling external code from GitHub via a Python script. If Python
3.6 is not found on the system (via <code class="docutils literal notranslate"><span class="pre">py</span> <span class="pre">-3.6</span></code>), NuGet is used to
download a copy of 32-bit Python.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-1-final">
<h2>Python 3.6.1 final<a class="headerlink" href="#python-3-6-1-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-03-21</em></p>
<section id="id666">
<h3>Core and Builtins<a class="headerlink" href="#id666" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29723">bpo-29723</a>: The <code class="docutils literal notranslate"><span class="pre">sys.path[0]</span></code> initialization change for <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29139">bpo-29139</a> caused
a regression by revealing an inconsistency in how sys.path is initialized
when executing <code class="docutils literal notranslate"><span class="pre">__main__</span></code> from a zipfile, directory, or other import
location. The interpreter now consistently avoids ever adding the import
location’s parent directory to <code class="docutils literal notranslate"><span class="pre">sys.path</span></code>, and ensures no other
<code class="docutils literal notranslate"><span class="pre">sys.path</span></code> entries are inadvertently modified when inserting the import
location named on the command line.</p></li>
</ul>
</section>
<section id="id667">
<h3>Build<a class="headerlink" href="#id667" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27593">bpo-27593</a>: fix format of git information used in sys.version</p></li>
<li><p>Fix incompatible comment in python.h</p></li>
</ul>
</section>
</section>
<section id="python-3-6-1-release-candidate-1">
<h2>Python 3.6.1 release candidate 1<a class="headerlink" href="#python-3-6-1-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-03-04</em></p>
<section id="id668">
<h3>Core and Builtins<a class="headerlink" href="#id668" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28893">bpo-28893</a>: Set correct __cause__ for errors about invalid awaitables
returned from __aiter__ and __anext__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29683">bpo-29683</a>: Fixes to memory allocation in _PyCode_SetExtra. Patch by Brian
Coleman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29684">bpo-29684</a>: Fix minor regression of PyEval_CallObjectWithKeywords. It
should raise TypeError when kwargs is not a dict. But it might cause segv
when args=NULL and kwargs is not a dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28598">bpo-28598</a>: Support __rmod__ for subclasses of str being called before
str.__mod__. Patch by Martijn Pieters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29607">bpo-29607</a>: Fix stack_effect computation for CALL_FUNCTION_EX. Patch by
Matthieu Dartiailh.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29602">bpo-29602</a>: Fix incorrect handling of signed zeros in complex constructor
for complex subclasses and for inputs having a __complex__ method. Patch
by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29347">bpo-29347</a>: Fixed possibly dereferencing undefined pointers when creating
weakref objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29438">bpo-29438</a>: Fixed use-after-free problem in key sharing dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29319">bpo-29319</a>: Prevent RunMainFromImporter overwriting sys.path[0].</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29337">bpo-29337</a>: Fixed possible BytesWarning when compare the code objects.
Warnings could be emitted at compile time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29327">bpo-29327</a>: Fixed a crash when pass the iterable keyword argument to
sorted().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29034">bpo-29034</a>: Fix memory leak and use-after-free in os module
(path_converter).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29159">bpo-29159</a>: Fix regression in bytes(x) when x.__index__() raises Exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28932">bpo-28932</a>: Do not include <sys/random.h> if it does not exist.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25677">bpo-25677</a>: Correct the positioning of the syntax error caret for indented
blocks. Based on patch by Michael Layzell.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29000">bpo-29000</a>: Fixed bytes formatting of octals with zero padding in alternate
form.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26919">bpo-26919</a>: On Android, operating system data is now always encoded/decoded
to/from UTF-8, instead of the locale encoding to avoid inconsistencies
with os.fsencode() and os.fsdecode() which are already using UTF-8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28991">bpo-28991</a>: functools.lru_cache() was susceptible to an obscure reentrancy
bug triggerable by a monkey-patched len() function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28739">bpo-28739</a>: f-string expressions are no longer accepted as docstrings and
by ast.literal_eval() even if they do not include expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28512">bpo-28512</a>: Fixed setting the offset attribute of SyntaxError by
PyErr_SyntaxLocationEx() and PyErr_SyntaxLocationObject().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28918">bpo-28918</a>: Fix the cross compilation of xxlimited when Python has been
built with Py_DEBUG defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28731">bpo-28731</a>: Optimize _PyDict_NewPresized() to create correct size dict.
Improve speed of dict literal with constant keys up to 30%.</p></li>
</ul>
</section>
<section id="id669">
<h3>Library<a class="headerlink" href="#id669" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29169">bpo-29169</a>: Update zlib to 1.2.11.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29623">bpo-29623</a>: Allow use of path-like object as a single argument in
ConfigParser.read(). Patch by David Ellis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28963">bpo-28963</a>: Fix out of bound iteration in
asyncio.Future.remove_done_callback implemented in C.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29704">bpo-29704</a>: asyncio.subprocess.SubprocessStreamProtocol no longer closes
before all pipes are closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29271">bpo-29271</a>: Fix Task.current_task and Task.all_tasks implemented in C to
accept None argument as their pure Python implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29703">bpo-29703</a>: Fix asyncio to support instantiation of new event loops in
child processes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29376">bpo-29376</a>: Fix assertion error in threading._DummyThread.is_alive().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28624">bpo-28624</a>: Add a test that checks that cwd parameter of Popen() accepts
PathLike objects. Patch by Sayan Chowdhury.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28518">bpo-28518</a>: Start a transaction implicitly before a DML statement. Patch by
Aviv Palivoda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29532">bpo-29532</a>: Altering a kwarg dictionary passed to functools.partial() no
longer affects a partial object after creation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29110">bpo-29110</a>: Fix file object leak in aifc.open() when file is given as a
filesystem path and is not in valid AIFF format. Patch by Anthony Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Various updates to typing module: typing.Counter,
typing.ChainMap, improved ABC caching, etc. Original PRs by Jelle
Zijlstra, Ivan Levkivskyi, Manuel Krebber, and Łukasz Langa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29100">bpo-29100</a>: Fix datetime.fromtimestamp() regression introduced in Python
3.6.0: check minimum and maximum years.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29519">bpo-29519</a>: Fix weakref spewing exceptions during interpreter shutdown when
used with a rare combination of multiprocessing and custom codecs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29416">bpo-29416</a>: Prevent infinite loop in pathlib.Path.mkdir</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29444">bpo-29444</a>: Fixed out-of-bounds buffer access in the group() method of the
match object. Based on patch by WGH.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29335">bpo-29335</a>: Fix subprocess.Popen.wait() when the child process has exited
to a stopped instead of terminated state (ex: when under ptrace).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29290">bpo-29290</a>: Fix a regression in argparse that help messages would wrap at
non-breaking spaces.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28735">bpo-28735</a>: Fixed the comparison of mock.MagickMock with mock.ANY.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29316">bpo-29316</a>: Restore the provisional status of typing module, add
corresponding note to documentation. Patch by Ivan L.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29219">bpo-29219</a>: Fixed infinite recursion in the repr of uninitialized
ctypes.CDLL instances.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29011">bpo-29011</a>: Fix an important omission by adding Deque to the typing module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28969">bpo-28969</a>: Fixed race condition in C implementation of
functools.lru_cache. KeyError could be raised when cached function with
full cache was simultaneously called from different threads with the same
uncached arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29142">bpo-29142</a>: In urllib.request, suffixes in no_proxy environment variable
with leading dots could match related hostnames again (e.g. .b.c matches
a.b.c). Patch by Milan Oberkirch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28961">bpo-28961</a>: Fix unittest.mock._Call helper: don’t ignore the name parameter
anymore. Patch written by Jiajun Huang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29203">bpo-29203</a>: functools.lru_cache() now respects <span class="target" id="index-423"></span><a class="pep reference external" href="https://peps.python.org/pep-0468/"><strong>PEP 468</strong></a> and preserves the
order of keyword arguments. f(a=1, b=2) is now cached separately from
f(b=2, a=1) since both calls could potentially give different results.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15812">bpo-15812</a>: inspect.getframeinfo() now correctly shows the first line of a
context. Patch by Sam Breese.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29094">bpo-29094</a>: Offsets in a ZIP file created with extern file object and modes
“w” and “x” now are relative to the start of the file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29085">bpo-29085</a>: Allow random.Random.seed() to use high quality OS randomness
rather than the pid and time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29061">bpo-29061</a>: Fixed bug in secrets.randbelow() which would hang when given a
negative input. Patch by Brendan Donegan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29079">bpo-29079</a>: Prevent infinite loop in pathlib.resolve() on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13051">bpo-13051</a>: Fixed recursion errors in large or resized
curses.textpad.Textbox. Based on patch by Tycho Andersen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29119">bpo-29119</a>: Fix weakrefs in the pure python version of
collections.OrderedDict move_to_end() method. Contributed by Andra
Bogildea.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9770">bpo-9770</a>: curses.ascii predicates now work correctly with negative
integers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28427">bpo-28427</a>: old keys should not remove new values from WeakValueDictionary
when collecting from another thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28923">bpo-28923</a>: Remove editor artifacts from Tix.py.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29055">bpo-29055</a>: Neaten-up empty population error on random.choice() by
suppressing the upstream exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28871">bpo-28871</a>: Fixed a crash when deallocate deep ElementTree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19542">bpo-19542</a>: Fix bugs in WeakValueDictionary.setdefault() and
WeakValueDictionary.pop() when a GC collection happens in another thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20191">bpo-20191</a>: Fixed a crash in resource.prlimit() when passing a sequence
that doesn’t own its elements as limits.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28779">bpo-28779</a>: multiprocessing.set_forkserver_preload() would crash the
forkserver process if a preloaded module instantiated some multiprocessing
objects such as locks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28847">bpo-28847</a>: dbm.dumb now supports reading read-only files and no longer
writes the index file when it is not changed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26937">bpo-26937</a>: The chown() method of the tarfile.TarFile class does not fail
now when the grp module cannot be imported, as for example on Android
platforms.</p></li>
</ul>
</section>
<section id="id670">
<h3>IDLE<a class="headerlink" href="#id670" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29071">bpo-29071</a>: IDLE colors f-string prefixes (but not invalid ur prefixes).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28572">bpo-28572</a>: Add 10% to coverage of IDLE’s test_configdialog. Update and
augment description of the configuration system.</p></li>
</ul>
</section>
<section id="id671">
<h3>Windows<a class="headerlink" href="#id671" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29579">bpo-29579</a>: Removes readme.txt from the installer</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29326">bpo-29326</a>: Ignores blank lines in ._pth files (Patch by Alexey Izbyshev)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28164">bpo-28164</a>: Correctly handle special console filenames (patch by Eryk Sun)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29409">bpo-29409</a>: Implement <span class="target" id="index-424"></span><a class="pep reference external" href="https://peps.python.org/pep-0529/"><strong>PEP 529</strong></a> for io.FileIO (Patch by Eryk Sun)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29392">bpo-29392</a>: Prevent crash when passing invalid arguments into msvcrt
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25778">bpo-25778</a>: winreg does not truncate string correctly (Patch by Eryk Sun)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28896">bpo-28896</a>: Deprecate WindowsRegistryFinder and disable it by default.</p></li>
</ul>
</section>
<section id="id672">
<h3>C API<a class="headerlink" href="#id672" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27867">bpo-27867</a>: Function PySlice_GetIndicesEx() is replaced with a macro if
Py_LIMITED_API is not set or set to the value between 0x03050400 and
0x03060000 (not including) or 0x03060100 or higher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29083">bpo-29083</a>: Fixed the declaration of some public API functions.
PyArg_VaParse() and PyArg_VaParseTupleAndKeywords() were not available in
limited API. PyArg_ValidateKeywordArguments(), PyArg_UnpackTuple() and
Py_BuildValue() were not available in limited API of version < 3.3 when
PY_SSIZE_T_CLEAN is defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29058">bpo-29058</a>: All stable API extensions added after Python 3.2 are now
available only when Py_LIMITED_API is set to the PY_VERSION_HEX value of
the minimum Python version supporting this API.</p></li>
</ul>
</section>
<section id="id673">
<h3>Documentation<a class="headerlink" href="#id673" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28929">bpo-28929</a>: Link the documentation to its source file on GitHub.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25008">bpo-25008</a>: Document smtpd.py as effectively deprecated and add a pointer
to aiosmtpd, a third-party asyncio-based replacement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26355">bpo-26355</a>: Add canonical header link on each page to corresponding major
version of the documentation. Patch by Matthias Bussonnier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29349">bpo-29349</a>: Fix Python 2 syntax in code for building the documentation.</p></li>
</ul>
</section>
<section id="id674">
<h3>Tests<a class="headerlink" href="#id674" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28087">bpo-28087</a>: Skip test_asyncore and test_eintr poll failures on macOS. Skip
some tests of select.poll when running on macOS due to unresolved issues
with the underlying system poll function on some macOS versions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29571">bpo-29571</a>: to match the behaviour of the <code class="docutils literal notranslate"><span class="pre">re.LOCALE</span></code> flag,
test_re.test_locale_flag now uses <code class="docutils literal notranslate"><span class="pre">locale.getpreferredencoding(False)</span></code>
to determine the candidate encoding for the test regex (allowing it to
correctly skip the test when the default locale encoding is a multi-byte
encoding)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28950">bpo-28950</a>: Disallow -j0 to be combined with -T/-l in regrtest command line
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28683">bpo-28683</a>: Fix the tests that bind() a unix socket and raise
PermissionError on Android for a non-root user.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26939">bpo-26939</a>: Add the support.setswitchinterval() function to fix
test_functools hanging on the Android armv7 qemu emulator.</p></li>
</ul>
</section>
<section id="id675">
<h3>Build<a class="headerlink" href="#id675" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27593">bpo-27593</a>: sys.version and the platform module python_build(),
python_branch(), and python_revision() functions now use git information
rather than hg when building from a repo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29572">bpo-29572</a>: Update Windows build and OS X installers to use OpenSSL 1.0.2k.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26851">bpo-26851</a>: Set Android compilation and link flags.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28768">bpo-28768</a>: Fix implicit declaration of function _setmode. Patch by
Masayuki Yamamoto</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29080">bpo-29080</a>: Removes hard dependency on hg.exe from PCBuild/build.bat</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23903">bpo-23903</a>: Added missed names to PC/python3.def.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28762">bpo-28762</a>: lockf() is available on Android API level 24, but the F_LOCK
macro is not defined in android-ndk-r13.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28538">bpo-28538</a>: Fix the compilation error that occurs because if_nameindex() is
available on Android API level 24, but the if_nameindex structure is not
defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20211">bpo-20211</a>: Do not add the directory for installing C header files and the
directory for installing object code libraries to the cross compilation
search paths. Original patch by Thomas Petazzoni.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28849">bpo-28849</a>: Do not define sys.implementation._multiarch on Android.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-0-final">
<h2>Python 3.6.0 final<a class="headerlink" href="#python-3-6-0-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-12-23</em></p>
<p>No changes since release candidate 2</p>
</section>
<section id="python-3-6-0-release-candidate-2">
<h2>Python 3.6.0 release candidate 2<a class="headerlink" href="#python-3-6-0-release-candidate-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-12-16</em></p>
<section id="id676">
<h3>Core and Builtins<a class="headerlink" href="#id676" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28147">bpo-28147</a>: Fix a memory leak in split-table dictionaries: setattr() must
not convert combined table into split table. Patch written by INADA Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28990">bpo-28990</a>: Fix asyncio SSL hanging if connection is closed before
handshake is completed. (Patch by HoHo-Ho)</p></li>
</ul>
</section>
<section id="id677">
<h3>Tools/Demos<a class="headerlink" href="#id677" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28770">bpo-28770</a>: Fix python-gdb.py for fastcalls.</p></li>
</ul>
</section>
<section id="id678">
<h3>Windows<a class="headerlink" href="#id678" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28896">bpo-28896</a>: Deprecate WindowsRegistryFinder.</p></li>
</ul>
</section>
<section id="id679">
<h3>Build<a class="headerlink" href="#id679" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28898">bpo-28898</a>: Prevent gdb build errors due to HAVE_LONG_LONG redefinition.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-0-release-candidate-1">
<h2>Python 3.6.0 release candidate 1<a class="headerlink" href="#python-3-6-0-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-12-06</em></p>
<section id="id680">
<h3>Core and Builtins<a class="headerlink" href="#id680" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23722">bpo-23722</a>: Rather than silently producing a class that doesn’t support
zero-argument <code class="docutils literal notranslate"><span class="pre">super()</span></code> in methods, failing to pass the new
<code class="docutils literal notranslate"><span class="pre">__classcell__</span></code> namespace entry up to <code class="docutils literal notranslate"><span class="pre">type.__new__</span></code> now results in a
<code class="docutils literal notranslate"><span class="pre">DeprecationWarning</span></code> and a class that supports zero-argument
<code class="docutils literal notranslate"><span class="pre">super()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28797">bpo-28797</a>: Modifying the class __dict__ inside the __set_name__ method of
a descriptor that is used inside that class no longer prevents calling the
__set_name__ method of other descriptors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28782">bpo-28782</a>: Fix a bug in the implementation <code class="docutils literal notranslate"><span class="pre">yield</span> <span class="pre">from</span></code> when checking if
the next instruction is YIELD_FROM. Regression introduced by WORDCODE
(<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26647">bpo-26647</a>).</p></li>
</ul>
</section>
<section id="id681">
<h3>Library<a class="headerlink" href="#id681" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27030">bpo-27030</a>: Unknown escapes in re.sub() replacement template are allowed
again. But they still are deprecated and will be disabled in 3.7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28835">bpo-28835</a>: Fix a regression introduced in warnings.catch_warnings(): call
warnings.showwarning() if it was overridden inside the context manager.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27172">bpo-27172</a>: To assist with upgrades from 2.7, the previously documented
deprecation of <code class="docutils literal notranslate"><span class="pre">inspect.getfullargspec()</span></code> has been reversed. This
decision may be revisited again after the Python 2.7 branch is no longer
officially supported.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26273">bpo-26273</a>: Add new <code class="xref py py-const docutils literal notranslate"><span class="pre">socket.TCP_CONGESTION</span></code> (Linux 2.6.13) and
<code class="xref py py-const docutils literal notranslate"><span class="pre">socket.TCP_USER_TIMEOUT</span></code> (Linux 2.6.37) constants. Patch written
by Omar Sandoval.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24142">bpo-24142</a>: Reading a corrupt config file left configparser in an invalid
state. Original patch by Florian Höch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28843">bpo-28843</a>: Fix asyncio C Task to handle exceptions __traceback__.</p></li>
</ul>
</section>
<section id="id682">
<h3>C API<a class="headerlink" href="#id682" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28808">bpo-28808</a>: PyUnicode_CompareWithASCIIString() now never raises exceptions.</p></li>
</ul>
</section>
<section id="id683">
<h3>Documentation<a class="headerlink" href="#id683" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23722">bpo-23722</a>: The data model reference and the porting section in the What’s
New guide now cover the additional <code class="docutils literal notranslate"><span class="pre">__classcell__</span></code> handling needed for
custom metaclasses to fully support <span class="target" id="index-425"></span><a class="pep reference external" href="https://peps.python.org/pep-0487/"><strong>PEP 487</strong></a> and zero-argument
<code class="docutils literal notranslate"><span class="pre">super()</span></code>.</p></li>
</ul>
</section>
<section id="id684">
<h3>Tools/Demos<a class="headerlink" href="#id684" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28023">bpo-28023</a>: Fix python-gdb.py didn’t support new dict implementation.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-0-beta-4">
<h2>Python 3.6.0 beta 4<a class="headerlink" href="#python-3-6-0-beta-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-11-21</em></p>
<section id="id685">
<h3>Core and Builtins<a class="headerlink" href="#id685" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28532">bpo-28532</a>: Show sys.version when -V option is supplied twice.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27100">bpo-27100</a>: The with-statement now checks for __enter__ before it checks
for __exit__. This gives less confusing error messages when both methods
are missing. Patch by Jonathan Ellington.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28746">bpo-28746</a>: Fix the set_inheritable() file descriptor method on platforms
that do not have the ioctl FIOCLEX and FIONCLEX commands.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26920">bpo-26920</a>: Fix not getting the locale’s charset upon initializing the
interpreter, on platforms that do not have langinfo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28648">bpo-28648</a>: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X
when decode astral characters. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19398">bpo-19398</a>: Extra slash no longer added to sys.path components in case of
empty compile-time PYTHONPATH components.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28665">bpo-28665</a>: Improve speed of the STORE_DEREF opcode by 40%.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28583">bpo-28583</a>: PyDict_SetDefault didn’t combine split table when needed. Patch
by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27243">bpo-27243</a>: Change PendingDeprecationWarning -> DeprecationWarning. As it
was agreed in the issue, __aiter__ returning an awaitable should result in
PendingDeprecationWarning in 3.5 and in DeprecationWarning in 3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26182">bpo-26182</a>: Fix a refleak in code that raises DeprecationWarning.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28721">bpo-28721</a>: Fix asynchronous generators aclose() and athrow() to handle
StopAsyncIteration propagation properly.</p></li>
</ul>
</section>
<section id="id686">
<h3>Library<a class="headerlink" href="#id686" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28752">bpo-28752</a>: Restored the __reduce__() methods of datetime objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28727">bpo-28727</a>: Regular expression patterns, _sre.SRE_Pattern objects created
by re.compile(), become comparable (only x==y and x!=y operators). This
change should fix the <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18383">bpo-18383</a>: don’t duplicate warning filters when
the warnings module is reloaded (thing usually only done in unit tests).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20572">bpo-20572</a>: The subprocess.Popen.wait method’s undocumented endtime
parameter now raises a DeprecationWarning.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25659">bpo-25659</a>: In ctypes, prevent a crash calling the from_buffer() and
from_buffer_copy() methods on abstract classes like Array.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19717">bpo-19717</a>: Makes Path.resolve() succeed on paths that do not exist. Patch
by Vajrasky Kok</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28563">bpo-28563</a>: Fixed possible DoS and arbitrary code execution when handle
plural form selections in the gettext module. The expression parser now
supports exact syntax supported by GNU gettext.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28387">bpo-28387</a>: Fixed possible crash in _io.TextIOWrapper deallocator when the
garbage collector is invoked in other thread. Based on patch by Sebastian
Cufre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28600">bpo-28600</a>: Optimize loop.call_soon.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28613">bpo-28613</a>: Fix get_event_loop() return the current loop if called from
coroutines/callbacks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28634">bpo-28634</a>: Fix asyncio.isfuture() to support unittest.Mock.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26081">bpo-26081</a>: Fix refleak in _asyncio.Future.__iter__().throw.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28639">bpo-28639</a>: Fix inspect.isawaitable to always return bool Patch by Justin
Mayfield.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28652">bpo-28652</a>: Make loop methods reject socket kinds they do not support.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28653">bpo-28653</a>: Fix a refleak in functools.lru_cache.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28703">bpo-28703</a>: Fix asyncio.iscoroutinefunction to handle Mock objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28704">bpo-28704</a>: Fix create_unix_server to support Path-like objects (PEP 519).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28720">bpo-28720</a>: Add collections.abc.AsyncGenerator.</p></li>
</ul>
</section>
<section id="id687">
<h3>Documentation<a class="headerlink" href="#id687" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28513">bpo-28513</a>: Documented command-line interface of zipfile.</p></li>
</ul>
</section>
<section id="id688">
<h3>Tests<a class="headerlink" href="#id688" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28666">bpo-28666</a>: Now test.support.rmtree is able to remove unwritable or
unreadable directories.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23839">bpo-23839</a>: Various caches now are cleared before running every test file.</p></li>
</ul>
</section>
<section id="id689">
<h3>Build<a class="headerlink" href="#id689" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10656">bpo-10656</a>: Fix out-of-tree building on AIX. Patch by Tristan Carel and
Michael Haubenwallner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26359">bpo-26359</a>: Rename –with-optimiations to –enable-optimizations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28676">bpo-28676</a>: Prevent missing ‘getentropy’ declaration warning on macOS.
Patch by Gareth Rees.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-0-beta-3">
<h2>Python 3.6.0 beta 3<a class="headerlink" href="#python-3-6-0-beta-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-10-31</em></p>
<section id="id690">
<h3>Core and Builtins<a class="headerlink" href="#id690" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28128">bpo-28128</a>: Deprecation warning for invalid str and byte escape sequences
now prints better information about where the error occurs. Patch by
Serhiy Storchaka and Eric Smith.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28509">bpo-28509</a>: dict.update() no longer allocate unnecessary large memory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28426">bpo-28426</a>: Fixed potential crash in PyUnicode_AsDecodedObject() in debug
build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28517">bpo-28517</a>: Fixed of-by-one error in the peephole optimizer that caused
keeping unreachable code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28214">bpo-28214</a>: Improved exception reporting for problematic __set_name__
attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23782">bpo-23782</a>: Fixed possible memory leak in _PyTraceback_Add() and exception
loss in PyTraceBack_Here().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28471">bpo-28471</a>: Fix “Python memory allocator called without holding the GIL”
crash in socket.setblocking.</p></li>
</ul>
</section>
<section id="id691">
<h3>Library<a class="headerlink" href="#id691" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27517">bpo-27517</a>: LZMA compressor and decompressor no longer raise exceptions if
given empty data twice. Patch by Benjamin Fogle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28549">bpo-28549</a>: Fixed segfault in curses’s addch() with ncurses6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28449">bpo-28449</a>: tarfile.open() with mode “r” or “r:” now tries to open a tar
file with compression before trying to open it without compression.
Otherwise it had 50% chance failed with ignore_zeros=True.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23262">bpo-23262</a>: The webbrowser module now supports Firefox 36+ and derived
browsers. Based on patch by Oleg Broytman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27939">bpo-27939</a>: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused
by representing the scale as float value internally in Tk. tkinter.IntVar
now works if float value is set to underlying Tk variable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18844">bpo-18844</a>: The various ways of specifying weights for random.choices() now
produce the same result sequences.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28255">bpo-28255</a>: calendar.TextCalendar().prmonth() no longer prints a space at
the start of new line after printing a month’s calendar. Patch by Xiang
Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20491">bpo-20491</a>: The textwrap.TextWrapper class now honors non-breaking spaces.
Based on patch by Kaarle Ritvanen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28353">bpo-28353</a>: os.fwalk() no longer fails on broken links.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28430">bpo-28430</a>: Fix iterator of C implemented asyncio.Future doesn’t accept
non-None value is passed to it.send(val).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27025">bpo-27025</a>: Generated names for Tkinter widgets now start by the “!” prefix
for readability.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25464">bpo-25464</a>: Fixed HList.header_exists() in tkinter.tix module by addin a
workaround to Tix library bug.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28488">bpo-28488</a>: shutil.make_archive() no longer adds entry “./” to ZIP archive.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25953">bpo-25953</a>: re.sub() now raises an error for invalid numerical group
reference in replacement template even if the pattern is not found in the
string. Error message for invalid group reference now includes the group
index and the position of the reference. Based on patch by SilentGhost.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18219">bpo-18219</a>: Optimize csv.DictWriter for large number of columns. Patch by
Mariatta Wijaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28448">bpo-28448</a>: Fix C implemented asyncio.Future didn’t work on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28480">bpo-28480</a>: Fix error building socket module when multithreading is
disabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24452">bpo-24452</a>: Make webbrowser support Chrome on Mac OS X.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20766">bpo-20766</a>: Fix references leaked by pdb in the handling of SIGINT
handlers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28492">bpo-28492</a>: Fix how StopIteration exception is raised in _asyncio.Future.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28500">bpo-28500</a>: Fix asyncio to handle async gens GC from another thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26923">bpo-26923</a>: Fix asyncio.Gather to refuse being cancelled once all children
are done. Patch by Johannes Ebke.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26796">bpo-26796</a>: Don’t configure the number of workers for default threadpool
executor. Initial patch by Hans Lawrenz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28544">bpo-28544</a>: Implement asyncio.Task in C.</p></li>
</ul>
</section>
<section id="id692">
<h3>Windows<a class="headerlink" href="#id692" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28522">bpo-28522</a>: Fixes mishandled buffer reallocation in getpathp.c</p></li>
</ul>
</section>
<section id="id693">
<h3>Build<a class="headerlink" href="#id693" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28444">bpo-28444</a>: Fix missing extensions modules when cross compiling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28208">bpo-28208</a>: Update Windows build and OS X installers to use SQLite 3.14.2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28248">bpo-28248</a>: Update Windows build and OS X installers to use OpenSSL 1.0.2j.</p></li>
</ul>
</section>
<section id="id694">
<h3>Tests<a class="headerlink" href="#id694" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26944">bpo-26944</a>: Fix test_posix for Android where ‘id -G’ is entirely wrong or
missing the effective gid.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28409">bpo-28409</a>: regrtest: fix the parser of command line arguments.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-0-beta-2">
<h2>Python 3.6.0 beta 2<a class="headerlink" href="#python-3-6-0-beta-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-10-10</em></p>
<section id="id695">
<h3>Core and Builtins<a class="headerlink" href="#id695" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28183">bpo-28183</a>: Optimize and cleanup dict iteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26081">bpo-26081</a>: Added C implementation of asyncio.Future. Original patch by
Yury Selivanov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28379">bpo-28379</a>: Added sanity checks and tests for PyUnicode_CopyCharacters().
Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28376">bpo-28376</a>: The type of long range iterator is now registered as Iterator.
Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28376">bpo-28376</a>: Creating instances of range_iterator by calling range_iterator
type now is deprecated. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28376">bpo-28376</a>: The constructor of range_iterator now checks that step is not
0. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26906">bpo-26906</a>: Resolving special methods of uninitialized type now causes
implicit initialization of the type instead of a fail.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18287">bpo-18287</a>: PyType_Ready() now checks that tp_name is not NULL. Original
patch by Niklas Koep.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24098">bpo-24098</a>: Fixed possible crash when AST is changed in process of
compiling it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28201">bpo-28201</a>: Dict reduces possibility of 2nd conflict in hash table when
hashes have same lower bits.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28350">bpo-28350</a>: String constants with null character no longer interned.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26617">bpo-26617</a>: Fix crash when GC runs during weakref callbacks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27942">bpo-27942</a>: String constants now interned recursively in tuples and
frozensets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21578">bpo-21578</a>: Fixed misleading error message when ImportError called with
invalid keyword args.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28203">bpo-28203</a>: Fix incorrect type in complex(1.0, {2:3}) error message. Patch
by Soumya Sharma.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28086">bpo-28086</a>: Single var-positional argument of tuple subtype was passed
unscathed to the C-defined function. Now it is converted to exact tuple.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28214">bpo-28214</a>: Now __set_name__ is looked up on the class instead of the
instance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27955">bpo-27955</a>: Fallback on reading /dev/urandom device when the getrandom()
syscall fails with EPERM, for example when blocked by SECCOMP.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28192">bpo-28192</a>: Don’t import readline in isolated mode.</p></li>
<li><p>Upgrade internal unicode databases to Unicode version 9.0.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28131">bpo-28131</a>: Fix a regression in zipimport’s compile_source(). zipimport
should use the same optimization level as the interpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28126">bpo-28126</a>: Replace Py_MEMCPY with memcpy(). Visual Studio can properly
optimize memcpy().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28120">bpo-28120</a>: Fix dict.pop() for split dictionary when trying to remove a
“pending key” (Not yet inserted in split-table). Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26182">bpo-26182</a>: Raise DeprecationWarning when async and await keywords are used
as variable/attribute/class/function name.</p></li>
</ul>
</section>
<section id="id696">
<h3>Library<a class="headerlink" href="#id696" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27998">bpo-27998</a>: Fixed bytes path support in os.scandir() on Windows. Patch by
Eryk Sun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28317">bpo-28317</a>: The disassembler now decodes FORMAT_VALUE argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26293">bpo-26293</a>: Fixed writing ZIP files that starts not from the start of the
file. Offsets in ZIP file now are relative to the start of the archive in
conforming to the specification.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28380">bpo-28380</a>: unittest.mock Mock autospec functions now properly support
assert_called, assert_not_called, and assert_called_once.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27181">bpo-27181</a>: remove statistics.geometric_mean and defer until 3.7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28229">bpo-28229</a>: lzma module now supports pathlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28321">bpo-28321</a>: Fixed writing non-BMP characters with binary format in
plistlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28225">bpo-28225</a>: bz2 module now supports pathlib. Initial patch by Ethan
Furman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28227">bpo-28227</a>: gzip now supports pathlib. Patch by Ethan Furman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27358">bpo-27358</a>: Optimized merging var-keyword arguments and improved error
message when passing a non-mapping as a var-keyword argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28257">bpo-28257</a>: Improved error message when passing a non-iterable as a
var-positional argument. Added opcode BUILD_TUPLE_UNPACK_WITH_CALL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28322">bpo-28322</a>: Fixed possible crashes when unpickle itertools objects from
incorrect pickle data. Based on patch by John Leitch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28228">bpo-28228</a>: imghdr now supports pathlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28226">bpo-28226</a>: compileall now supports pathlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28314">bpo-28314</a>: Fix function declaration (C flags) for the getiterator() method
of xml.etree.ElementTree.Element.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28148">bpo-28148</a>: Stop using localtime() and gmtime() in the time module.
Introduced platform independent _PyTime_localtime API that is similar to
POSIX localtime_r, but available on all platforms. Patch by Ed Schouten.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28253">bpo-28253</a>: Fixed calendar functions for extreme months: 0001-01 and
9999-12. Methods itermonthdays() and itermonthdays2() are reimplemented so
that they don’t call itermonthdates() which can cause datetime.date
under/overflow.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28275">bpo-28275</a>: Fixed possible use after free in the decompress() methods of
the LZMADecompressor and BZ2Decompressor classes. Original patch by John
Leitch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27897">bpo-27897</a>: Fixed possible crash in sqlite3.Connection.create_collation()
if pass invalid string-like object as a name. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18844">bpo-18844</a>: random.choices() now has k as a keyword-only argument to
improve the readability of common cases and come into line with the
signature used in other languages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18893">bpo-18893</a>: Fix invalid exception handling in Lib/ctypes/macholib/dyld.py.
Patch by Madison May.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27611">bpo-27611</a>: Fixed support of default root window in the tkinter.tix module.
Added the master parameter in the DisplayStyle constructor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27348">bpo-27348</a>: In the traceback module, restore the formatting of exception
messages like “Exception: None”. This fixes a regression introduced in
3.5a2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25651">bpo-25651</a>: Allow false values to be used for msg parameter of subTest().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27778">bpo-27778</a>: Fix a memory leak in os.getrandom() when the getrandom() is
interrupted by a signal and a signal handler raises a Python exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28200">bpo-28200</a>: Fix memory leak on Windows in the os module (fix
path_converter() function).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25400">bpo-25400</a>: RobotFileParser now correctly returns default values for
crawl_delay and request_rate. Initial patch by Peter Wirtz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27932">bpo-27932</a>: Prevent memory leak in win32_ver().</p></li>
<li><p>Fix UnboundLocalError in socket._sendfile_use_sendfile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28075">bpo-28075</a>: Check for ERROR_ACCESS_DENIED in Windows implementation of
os.stat(). Patch by Eryk Sun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22493">bpo-22493</a>: Warning message emitted by using inline flags in the middle of
regular expression now contains a (truncated) regex pattern. Patch by Tim
Graham.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25270">bpo-25270</a>: Prevent codecs.escape_encode() from raising SystemError when an
empty bytestring is passed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28181">bpo-28181</a>: Get antigravity over HTTPS. Patch by Kaartic Sivaraam.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25895">bpo-25895</a>: Enable WebSocket URL schemes in urllib.parse.urljoin. Patch by
Gergely Imreh and Markus Holtermann.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28114">bpo-28114</a>: Fix a crash in parse_envlist() when env contains byte strings.
Patch by Eryk Sun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27599">bpo-27599</a>: Fixed buffer overrun in binascii.b2a_qp() and
binascii.a2b_qp().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27906">bpo-27906</a>: Fix socket accept exhaustion during high TCP traffic. Patch by
Kevin Conway.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28174">bpo-28174</a>: Handle when SO_REUSEPORT isn’t properly supported. Patch by
Seth Michael Larson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26654">bpo-26654</a>: Inspect functools.partial in asyncio.Handle.__repr__. Patch by
iceboy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26909">bpo-26909</a>: Fix slow pipes IO in asyncio. Patch by INADA Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28176">bpo-28176</a>: Fix callbacks race in asyncio.SelectorLoop.sock_connect.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27759">bpo-27759</a>: Fix selectors incorrectly retain invalid file descriptors.
Patch by Mark Williams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28368">bpo-28368</a>: Refuse monitoring processes if the child watcher has no loop
attached. Patch by Vincent Michel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28369">bpo-28369</a>: Raise RuntimeError when transport’s FD is used with add_reader,
add_writer, etc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28370">bpo-28370</a>: Speedup asyncio.StreamReader.readexactly. Patch by Коренберг
Марк.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28371">bpo-28371</a>: Deprecate passing asyncio.Handles to run_in_executor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28372">bpo-28372</a>: Fix asyncio to support formatting of non-python coroutines.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28399">bpo-28399</a>: Remove UNIX socket from FS before binding. Patch by Коренберг
Марк.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27972">bpo-27972</a>: Prohibit Tasks to await on themselves.</p></li>
</ul>
</section>
<section id="id697">
<h3>Windows<a class="headerlink" href="#id697" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28402">bpo-28402</a>: Adds signed catalog files for stdlib on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28333">bpo-28333</a>: Enables Unicode for ps1/ps2 and input() prompts. (Patch by Eryk
Sun)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28251">bpo-28251</a>: Improvements to help manuals on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28110">bpo-28110</a>: launcher.msi has different product codes between 32-bit and
64-bit</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28161">bpo-28161</a>: Opening CON for write access fails</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28162">bpo-28162</a>: WindowsConsoleIO readall() fails if first line starts with
Ctrl+Z</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28163">bpo-28163</a>: WindowsConsoleIO fileno() passes wrong flags to _open_osfhandle</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28164">bpo-28164</a>: _PyIO_get_console_type fails for various paths</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28137">bpo-28137</a>: Renames Windows path file to ._pth</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28138">bpo-28138</a>: Windows ._pth file should allow import site</p></li>
</ul>
</section>
<section id="id698">
<h3>C API<a class="headerlink" href="#id698" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28426">bpo-28426</a>: Deprecated undocumented functions PyUnicode_AsEncodedObject(),
PyUnicode_AsDecodedObject(), PyUnicode_AsDecodedUnicode() and
PyUnicode_AsEncodedUnicode().</p></li>
</ul>
</section>
<section id="id699">
<h3>Build<a class="headerlink" href="#id699" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28258">bpo-28258</a>: Fixed build with Estonian locale (python-config and distclean
targets in Makefile). Patch by Arfrever Frehtes Taifersar Arahesis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26661">bpo-26661</a>: setup.py now detects system libffi with multiarch wrapper.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15819">bpo-15819</a>: Remove redundant include search directory option for building
outside the source tree.</p></li>
</ul>
</section>
<section id="id700">
<h3>Tests<a class="headerlink" href="#id700" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28217">bpo-28217</a>: Adds _testconsole module to test console input.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-0-beta-1">
<h2>Python 3.6.0 beta 1<a class="headerlink" href="#python-3-6-0-beta-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-09-12</em></p>
<section id="id701">
<h3>Core and Builtins<a class="headerlink" href="#id701" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23722">bpo-23722</a>: The __class__ cell used by zero-argument super() is now
initialized from type.__new__ rather than __build_class__, so class
methods relying on that will now work correctly when called from metaclass
methods during class creation. Patch by Martin Teichmann.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25221">bpo-25221</a>: Fix corrupted result from PyLong_FromLong(0) when Python is
compiled with NSMALLPOSINTS = 0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27080">bpo-27080</a>: Implement formatting support for <span class="target" id="index-426"></span><a class="pep reference external" href="https://peps.python.org/pep-0515/"><strong>PEP 515</strong></a>. Initial patch by
Chris Angelico.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27199">bpo-27199</a>: In tarfile, expose copyfileobj bufsize to improve throughput.
Patch by Jason Fried.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27948">bpo-27948</a>: In f-strings, only allow backslashes inside the braces (where
the expressions are). This is a breaking change from the 3.6 alpha
releases, where backslashes are allowed anywhere in an f-string. Also,
require that expressions inside f-strings be enclosed within literal
braces, and not escapes like <code class="docutils literal notranslate"><span class="pre">f'\x7b"hi"\x7d'</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28046">bpo-28046</a>: Remove platform-specific directories from sys.path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28071">bpo-28071</a>: Add early-out for differencing from an empty set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25758">bpo-25758</a>: Prevents zipimport from unnecessarily encoding a filename
(patch by Eryk Sun)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25856">bpo-25856</a>: The __module__ attribute of extension classes and functions now
is interned. This leads to more compact pickle data with protocol 4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27213">bpo-27213</a>: Rework CALL_FUNCTION* opcodes to produce shorter and more
efficient bytecode. Patch by Demur Rumed, design by Serhiy Storchaka,
reviewed by Serhiy Storchaka and Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26331">bpo-26331</a>: Implement tokenizing support for <span class="target" id="index-427"></span><a class="pep reference external" href="https://peps.python.org/pep-0515/"><strong>PEP 515</strong></a>. Patch by Georg
Brandl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27999">bpo-27999</a>: Make “global after use” a SyntaxError, and ditto for nonlocal.
Patch by Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28003">bpo-28003</a>: Implement <span class="target" id="index-428"></span><a class="pep reference external" href="https://peps.python.org/pep-0525/"><strong>PEP 525</strong></a> – Asynchronous Generators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27985">bpo-27985</a>: Implement <span class="target" id="index-429"></span><a class="pep reference external" href="https://peps.python.org/pep-0526/"><strong>PEP 526</strong></a> – Syntax for Variable Annotations. Patch
by Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26058">bpo-26058</a>: Add a new private version to the builtin dict type, incremented
at each dictionary creation and at each dictionary change. Implementation
of the PEP 509.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27364">bpo-27364</a>: A backslash-character pair that is not a valid escape sequence
now generates a DeprecationWarning. Patch by Emanuel Barry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27350">bpo-27350</a>: <code class="docutils literal notranslate"><span class="pre">dict</span></code> implementation is changed like PyPy. It is more
compact and preserves insertion order. (Concept developed by Raymond
Hettinger and patch by Inada Naoki.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27911">bpo-27911</a>: Remove unnecessary error checks in
<code class="docutils literal notranslate"><span class="pre">exec_builtin_or_dynamic()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27078">bpo-27078</a>: Added BUILD_STRING opcode. Optimized f-strings evaluation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17884">bpo-17884</a>: Python now requires systems with inttypes.h and stdint.h</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27961">bpo-27961</a>: Require platforms to support <code class="docutils literal notranslate"><span class="pre">long</span> <span class="pre">long</span></code>. Python hasn’t
compiled without <code class="docutils literal notranslate"><span class="pre">long</span> <span class="pre">long</span></code> for years, so this is basically a
formality.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27355">bpo-27355</a>: Removed support for Windows CE. It was never finished, and
Windows CE is no longer a relevant platform for Python.</p></li>
<li><p>Implement <span class="target" id="index-430"></span><a class="pep reference external" href="https://peps.python.org/pep-0523/"><strong>PEP 523</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27870">bpo-27870</a>: A left shift of zero by a large integer no longer attempts to
allocate large amounts of memory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25402">bpo-25402</a>: In int-to-decimal-string conversion, improve the estimate of
the intermediate memory required, and remove an unnecessarily strict
overflow check. Patch by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27214">bpo-27214</a>: In long_invert, be more careful about modifying object returned
by long_add, and remove an unnecessary check for small longs. Thanks Oren
Milman for analysis and patch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27506">bpo-27506</a>: Support passing the bytes/bytearray.translate() “delete”
argument by keyword.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27812">bpo-27812</a>: Properly clear out a generator’s frame’s backreference to the
generator to prevent crashes in frame.clear().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27811">bpo-27811</a>: Fix a crash when a coroutine that has not been awaited is
finalized with warnings-as-errors enabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27587">bpo-27587</a>: Fix another issue found by PVS-Studio: Null pointer check after
use of ‘def’ in _PyState_AddModule(). Initial patch by Christian Heimes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27792">bpo-27792</a>: The modulo operation applied to <code class="docutils literal notranslate"><span class="pre">bool</span></code> and other <code class="docutils literal notranslate"><span class="pre">int</span></code>
subclasses now always returns an <code class="docutils literal notranslate"><span class="pre">int</span></code>. Previously the return type
depended on the input values. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26984">bpo-26984</a>: int() now always returns an instance of exact int.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25604">bpo-25604</a>: Fix a minor bug in integer true division; this bug could
potentially have caused off-by-one-ulp results on platforms with
unreliable ldexp implementations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24254">bpo-24254</a>: Make class definition namespace ordered by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27662">bpo-27662</a>: Fix an overflow check in <code class="docutils literal notranslate"><span class="pre">List_New</span></code>: the original code was
checking against <code class="docutils literal notranslate"><span class="pre">Py_SIZE_MAX</span></code> instead of the correct upper bound of
<code class="docutils literal notranslate"><span class="pre">Py_SSIZE_T_MAX</span></code>. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27782">bpo-27782</a>: Multi-phase extension module import now correctly allows the
<code class="docutils literal notranslate"><span class="pre">m_methods</span></code> field to be used to add module level functions to instances
of non-module types returned from <code class="docutils literal notranslate"><span class="pre">Py_create_mod</span></code>. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27936">bpo-27936</a>: The round() function accepted a second None argument for some
types but not for others. Fixed the inconsistency by accepting None for
all numeric types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27487">bpo-27487</a>: Warn if a submodule argument to “python -m” or
runpy.run_module() is found in sys.modules after parent packages are
imported, but before the submodule is executed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27157">bpo-27157</a>: Make only type() itself accept the one-argument form. Patch by
Eryk Sun and Emanuel Barry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27558">bpo-27558</a>: Fix a SystemError in the implementation of “raise” statement.
In a brand new thread, raise a RuntimeError since there is no active
exception to reraise. Patch written by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28008">bpo-28008</a>: Implement <span class="target" id="index-431"></span><a class="pep reference external" href="https://peps.python.org/pep-0530/"><strong>PEP 530</strong></a> – asynchronous comprehensions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27942">bpo-27942</a>: Fix memory leak in codeobject.c</p></li>
</ul>
</section>
<section id="id702">
<h3>Library<a class="headerlink" href="#id702" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28732">bpo-28732</a>: Fix crash in os.spawnv() with no elements in args</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28485">bpo-28485</a>: Always raise ValueError for negative
compileall.compile_dir(workers=…) parameter, even when multithreading is
unavailable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28037">bpo-28037</a>: Use sqlite3_get_autocommit() instead of setting
Connection->inTransaction manually.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25283">bpo-25283</a>: Attributes tm_gmtoff and tm_zone are now available on all
platforms in the return values of time.localtime() and time.gmtime().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24454">bpo-24454</a>: Regular expression match object groups are now accessible using
__getitem__. “mo[x]” is equivalent to “mo.group(x)”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10740">bpo-10740</a>: sqlite3 no longer implicitly commit an open transaction before
DDL statements.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17941">bpo-17941</a>: Add a <em>module</em> parameter to collections.namedtuple().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22493">bpo-22493</a>: Inline flags now should be used only at the start of the
regular expression. Deprecation warning is emitted if uses them in the
middle of the regular expression.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26885">bpo-26885</a>: xmlrpc now supports unmarshalling additional data types used by
Apache XML-RPC implementation for numerics and None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28070">bpo-28070</a>: Fixed parsing inline verbose flag in regular expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19500">bpo-19500</a>: Add client-side SSL session resumption to the ssl module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28022">bpo-28022</a>: Deprecate ssl-related arguments in favor of SSLContext. The
deprecation include manual creation of SSLSocket and certfile/keyfile (or
similar) in ftplib, httplib, imaplib, smtplib, poplib and urllib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28043">bpo-28043</a>: SSLContext has improved default settings: OP_NO_SSLv2,
OP_NO_SSLv3, OP_NO_COMPRESSION, OP_CIPHER_SERVER_PREFERENCE,
OP_SINGLE_DH_USE, OP_SINGLE_ECDH_USE and HIGH ciphers without MD5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24693">bpo-24693</a>: Changed some RuntimeError’s in the zipfile module to more
appropriate types. Improved some error messages and debugging output.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17909">bpo-17909</a>: <code class="docutils literal notranslate"><span class="pre">json.load</span></code> and <code class="docutils literal notranslate"><span class="pre">json.loads</span></code> now support binary input
encoded as UTF-8, UTF-16 or UTF-32. Patch by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27137">bpo-27137</a>: the pure Python fallback implementation of
<code class="docutils literal notranslate"><span class="pre">functools.partial</span></code> now matches the behaviour of its accelerated C
counterpart for subclassing, pickling and text representation purposes.
Patch by Emanuel Barry and Serhiy Storchaka.</p></li>
<li><p>Fix possible integer overflows and crashes in the mmap module with unusual
usage patterns.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1703178">bpo-1703178</a>: Fix the ability to pass the –link-objects option to the
distutils build_ext command.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28019">bpo-28019</a>: itertools.count() no longer rounds non-integer step in range
between 1.0 and 2.0 to 1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18401">bpo-18401</a>: Pdb now supports the ‘readrc’ keyword argument to control
whether .pdbrc files should be read. Patch by Martin Matusiak and Sam
Kimbrel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25969">bpo-25969</a>: Update the lib2to3 grammar to handle the unpacking
generalizations added in 3.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14977">bpo-14977</a>: mailcap now respects the order of the lines in the mailcap
files (“first match”), as required by RFC 1542. Patch by Michael Lazar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28082">bpo-28082</a>: Convert re flag constants to IntFlag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28025">bpo-28025</a>: Convert all ssl module constants to IntEnum and IntFlags.
SSLContext properties now return flags and enums.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23591">bpo-23591</a>: Add Flag, IntFlag, and auto() to enum module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=433028">bpo-433028</a>: Added support of modifier spans in regular expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24594">bpo-24594</a>: Validates persist parameter when opening MSI database</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17582">bpo-17582</a>: xml.etree.ElementTree nows preserves whitespaces in attributes
(Patch by Duane Griffin. Reviewed and approved by Stefan Behnel.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28047">bpo-28047</a>: Fixed calculation of line length used for the base64 CTE in the
new email policies.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27576">bpo-27576</a>: Fix call order in OrderedDict.__init__().</p></li>
<li><p>email.generator.DecodedGenerator now supports the policy keyword.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28027">bpo-28027</a>: Remove undocumented modules from <code class="docutils literal notranslate"><span class="pre">Lib/plat-*</span></code>: IN, CDROM,
DLFCN, TYPES, CDIO, and STROPTS.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27445">bpo-27445</a>: Don’t pass str(_charset) to MIMEText.set_payload(). Patch by
Claude Paroz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24277">bpo-24277</a>: The new email API is no longer provisional, and the docs have
been reorganized and rewritten to emphasize the new API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22450">bpo-22450</a>: urllib now includes an <code class="docutils literal notranslate"><span class="pre">Accept:</span> <span class="pre">*/*</span></code> header among the default
headers. This makes the results of REST API requests more consistent and
predictable especially when proxy servers are involved.</p></li>
<li><p>lib2to3.pgen3.driver.load_grammar() now creates a stable cache file
between runs given the same Grammar.txt input regardless of the hash
randomization setting.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28005">bpo-28005</a>: Allow ImportErrors in encoding implementation to propagate.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26667">bpo-26667</a>: Support path-like objects in importlib.util.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27570">bpo-27570</a>: Avoid zero-length memcpy() etc calls with null source pointers
in the “ctypes” and “array” modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22233">bpo-22233</a>: Break email header lines <em>only</em> on the RFC specified CR and LF
characters, not on arbitrary unicode line breaks. This also fixes a bug
in HTTP header parsing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27331">bpo-27331</a>: The email.mime classes now all accept an optional policy
keyword.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27988">bpo-27988</a>: Fix email iter_attachments incorrect mutation of payload list.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16113">bpo-16113</a>: Add SHA-3 and SHAKE support to hashlib module.</p></li>
<li><p>Eliminate a tautological-pointer-compare warning in _scproxy.c.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27776">bpo-27776</a>: The <a class="reference internal" href="../library/os.html#os.urandom" title="os.urandom"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.urandom()</span></code></a> function does now block on Linux 3.17
and newer until the system urandom entropy pool is initialized to increase
the security. This change is part of the <span class="target" id="index-432"></span><a class="pep reference external" href="https://peps.python.org/pep-0524/"><strong>PEP 524</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27778">bpo-27778</a>: Expose the Linux <code class="docutils literal notranslate"><span class="pre">getrandom()</span></code> syscall as a new
<a class="reference internal" href="../library/os.html#os.getrandom" title="os.getrandom"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.getrandom()</span></code></a> function. This change is part of the <span class="target" id="index-433"></span><a class="pep reference external" href="https://peps.python.org/pep-0524/"><strong>PEP 524</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27691">bpo-27691</a>: Fix ssl module’s parsing of GEN_RID subject alternative name
fields in X.509 certs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18844">bpo-18844</a>: Add random.choices().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25761">bpo-25761</a>: Improved error reporting about truncated pickle data in C
implementation of unpickler. UnpicklingError is now raised instead of
AttributeError and ValueError in some cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26798">bpo-26798</a>: Add BLAKE2 (blake2b and blake2s) to hashlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26032">bpo-26032</a>: Optimized globbing in pathlib by using os.scandir(); it is now
about 1.5–4 times faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25596">bpo-25596</a>: Optimized glob() and iglob() functions in the glob module; they
are now about 3–6 times faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27928">bpo-27928</a>: Add scrypt (password-based key derivation function) to hashlib
module (requires OpenSSL 1.1.0).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27850">bpo-27850</a>: Remove 3DES from ssl module’s default cipher list to counter
measure sweet32 attack (<span class="target" id="index-434"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-2183"><strong>CVE 2016-2183</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27766">bpo-27766</a>: Add ChaCha20 Poly1305 to ssl module’s default cipher list.
(Required OpenSSL 1.1.0 or LibreSSL).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25387">bpo-25387</a>: Check return value of winsound.MessageBeep.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27866">bpo-27866</a>: Add SSLContext.get_ciphers() method to get a list of all
enabled ciphers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27744">bpo-27744</a>: Add AF_ALG (Linux Kernel crypto) to socket module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26470">bpo-26470</a>: Port ssl and hashlib module to OpenSSL 1.1.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11620">bpo-11620</a>: Fix support for SND_MEMORY in winsound.PlaySound. Based on a
patch by Tim Lesher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11734">bpo-11734</a>: Add support for IEEE 754 half-precision floats to the struct
module. Based on a patch by Eli Stevens.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27919">bpo-27919</a>: Deprecated <code class="docutils literal notranslate"><span class="pre">extra_path</span></code> distribution option in distutils
packaging.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23229">bpo-23229</a>: Add new <code class="docutils literal notranslate"><span class="pre">cmath</span></code> constants: <code class="docutils literal notranslate"><span class="pre">cmath.inf</span></code> and <code class="docutils literal notranslate"><span class="pre">cmath.nan</span></code> to
match <code class="docutils literal notranslate"><span class="pre">math.inf</span></code> and <code class="docutils literal notranslate"><span class="pre">math.nan</span></code>, and also <code class="docutils literal notranslate"><span class="pre">cmath.infj</span></code> and
<code class="docutils literal notranslate"><span class="pre">cmath.nanj</span></code> to match the format used by complex repr.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27842">bpo-27842</a>: The csv.DictReader now returns rows of type OrderedDict.
(Contributed by Steve Holden.)</p></li>
<li><p>Remove support for passing a file descriptor to os.access. It never worked
but previously didn’t raise.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12885">bpo-12885</a>: Fix error when distutils encounters symlink.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27881">bpo-27881</a>: Fixed possible bugs when setting
sqlite3.Connection.isolation_level. Based on patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27861">bpo-27861</a>: Fixed a crash in sqlite3.Connection.cursor() when a factory
creates not a cursor. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19884">bpo-19884</a>: Avoid spurious output on OS X with Gnu Readline.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27706">bpo-27706</a>: Restore deterministic behavior of random.Random().seed() for
string seeds using seeding version 1. Allows sequences of calls to
random() to exactly match those obtained in Python 2. Patch by Nofar
Schnider.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10513">bpo-10513</a>: Fix a regression in Connection.commit(). Statements should not
be reset after a commit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12319">bpo-12319</a>: Chunked transfer encoding support added to
http.client.HTTPConnection requests. The
urllib.request.AbstractHTTPHandler class does not enforce a Content-Length
header any more. If a HTTP request has a file or iterable body, but no
Content-Length header, the library now falls back to use chunked
transfer-encoding.</p></li>
<li><p>A new version of typing.py from <a class="reference external" href="https://github.com/python/typing">https://github.com/python/typing</a>: -
Collection (only for 3.6) (<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27598">bpo-27598</a>) - Add FrozenSet to __all__
(upstream #261) - fix crash in _get_type_vars() (upstream #259) - Remove
the dict constraint in ForwardRef._eval_type (upstream #252)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27832">bpo-27832</a>: Make <code class="docutils literal notranslate"><span class="pre">_normalize</span></code> parameter to <code class="docutils literal notranslate"><span class="pre">Fraction</span></code> constructor
keyword-only, so that <code class="docutils literal notranslate"><span class="pre">Fraction(2,</span> <span class="pre">3,</span> <span class="pre">4)</span></code> now raises <code class="docutils literal notranslate"><span class="pre">TypeError</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27539">bpo-27539</a>: Fix unnormalised <code class="docutils literal notranslate"><span class="pre">Fraction.__pow__</span></code> result in the case of
negative exponent and negative base.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21718">bpo-21718</a>: cursor.description is now available for queries using CTEs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27819">bpo-27819</a>: In distutils sdists, simply produce the “gztar” (gzipped tar
format) distributions on all platforms unless “formats” is supplied.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2466">bpo-2466</a>: posixpath.ismount now correctly recognizes mount points which
the user does not have permission to access.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9998">bpo-9998</a>: On Linux, ctypes.util.find_library now looks in LD_LIBRARY_PATH
for shared libraries.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27573">bpo-27573</a>: exit message for code.interact is now configurable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27930">bpo-27930</a>: Improved behaviour of logging.handlers.QueueListener. Thanks to
Paulo Andrade and Petr Viktorin for the analysis and patch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6766">bpo-6766</a>: Distributed reference counting added to multiprocessing to
support nesting of shared values / proxy objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21201">bpo-21201</a>: Improves readability of multiprocessing error message. Thanks
to Wojciech Walczak for patch.</p></li>
<li><p>asyncio: Add set_protocol / get_protocol to Transports.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27456">bpo-27456</a>: asyncio: Set TCP_NODELAY by default.</p></li>
</ul>
</section>
<section id="id703">
<h3>IDLE<a class="headerlink" href="#id703" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15308">bpo-15308</a>: Add ‘interrupt execution’ (^C) to Shell menu. Patch by Roger
Serwy, updated by Bayard Randel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27922">bpo-27922</a>: Stop IDLE tests from ‘flashing’ gui widgets on the screen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27891">bpo-27891</a>: Consistently group and sort imports within idlelib modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17642">bpo-17642</a>: add larger font sizes for classroom projection.</p></li>
<li><p>Add version to title of IDLE help window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25564">bpo-25564</a>: In section on IDLE – console differences, mention that using
exec means that __builtins__ is defined for each statement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27821">bpo-27821</a>: Fix 3.6.0a3 regression that prevented custom key sets from
being selected when no custom theme was defined.</p></li>
</ul>
</section>
<section id="id704">
<h3>C API<a class="headerlink" href="#id704" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26900">bpo-26900</a>: Excluded underscored names and other private API from limited
API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26027">bpo-26027</a>: Add support for path-like objects in PyUnicode_FSConverter() &
PyUnicode_FSDecoder().</p></li>
</ul>
</section>
<section id="id705">
<h3>Tests<a class="headerlink" href="#id705" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27427">bpo-27427</a>: Additional tests for the math module. Patch by Francisco Couzo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27953">bpo-27953</a>: Skip math and cmath tests that fail on OS X 10.4 due to a poor
libm implementation of tan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26040">bpo-26040</a>: Improve test_math and test_cmath coverage and rigour. Patch by
Jeff Allen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27787">bpo-27787</a>: Call gc.collect() before checking each test for “dangling
threads”, since the dangling threads are weak references.</p></li>
</ul>
</section>
<section id="id706">
<h3>Build<a class="headerlink" href="#id706" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27566">bpo-27566</a>: Fix clean target in freeze makefile (patch by Lisa Roach)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27705">bpo-27705</a>: Update message in validate_ucrtbase.py</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27976">bpo-27976</a>: Deprecate building _ctypes with the bundled copy of libffi on
non-OSX UNIX platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27983">bpo-27983</a>: Cause lack of llvm-profdata tool when using clang as required
for PGO linking to be a configure time error rather than make time when
<code class="docutils literal notranslate"><span class="pre">--with-optimizations</span></code> is enabled. Also improve our ability to find the
llvm-profdata tool on MacOS and some Linuxes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21590">bpo-21590</a>: Support for DTrace and SystemTap probes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26307">bpo-26307</a>: The profile-opt build now applies PGO to the built-in modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26359">bpo-26359</a>: Add the –with-optimizations flag to turn on LTO and PGO build
support when available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27917">bpo-27917</a>: Set platform triplets for Android builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25825">bpo-25825</a>: Update references to the $(LIBPL) installation path on AIX.
This path was changed in 3.2a4.</p></li>
<li><p>Update OS X installer to use SQLite 3.14.1 and XZ 5.2.2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21122">bpo-21122</a>: Fix LTO builds on OS X.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17128">bpo-17128</a>: Build OS X installer with a private copy of OpenSSL. Also
provide a sample Install Certificates command script to install a set of
root certificates from the third-party certifi module.</p></li>
</ul>
</section>
<section id="id707">
<h3>Tools/Demos<a class="headerlink" href="#id707" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27952">bpo-27952</a>: Get Tools/scripts/fixcid.py working with Python 3 and the
current “re” module, avoid invalid Python backslash escapes, and fix a bug
parsing escaped C quote signs.</p></li>
</ul>
</section>
<section id="id708">
<h3>Windows<a class="headerlink" href="#id708" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28065">bpo-28065</a>: Update xz dependency to 5.2.2 and build it from source.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25144">bpo-25144</a>: Ensures TargetDir is set before continuing with custom install.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1602">bpo-1602</a>: Windows console doesn’t input or print Unicode (PEP 528)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27781">bpo-27781</a>: Change file system encoding on Windows to UTF-8 (PEP 529)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27731">bpo-27731</a>: Opt-out of MAX_PATH on Windows 10</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6135">bpo-6135</a>: Adds encoding and errors parameters to subprocess.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27959">bpo-27959</a>: Adds oem encoding, alias ansi to mbcs, move aliasmbcs to codec
lookup.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27982">bpo-27982</a>: The functions of the winsound module now accept keyword
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20366">bpo-20366</a>: Build full text search support into SQLite on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27756">bpo-27756</a>: Adds new icons for Python files and processes on Windows.
Designs by Cherry Wang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27883">bpo-27883</a>: Update sqlite to 3.14.1.0 on Windows.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-0-alpha-4">
<h2>Python 3.6.0 alpha 4<a class="headerlink" href="#python-3-6-0-alpha-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-08-15</em></p>
<section id="id709">
<h3>Core and Builtins<a class="headerlink" href="#id709" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27704">bpo-27704</a>: Optimized creating bytes and bytearray from byte-like objects
and iterables. Speed up to 3 times for short objects. Original patch by
Naoki Inada.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26823">bpo-26823</a>: Large sections of repeated lines in tracebacks are now
abbreviated as “[Previous line repeated {count} more times]” by the
builtin traceback rendering. Patch by Emanuel Barry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27574">bpo-27574</a>: Decreased an overhead of parsing keyword arguments in functions
implemented with using Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22557">bpo-22557</a>: Now importing already imported modules is up to 2.5 times
faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17596">bpo-17596</a>: Include <wincrypt.h> to help with Min GW building.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17599">bpo-17599</a>: On Windows, rename the privately defined REPARSE_DATA_BUFFER
structure to avoid conflicting with the definition from Min GW.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27507">bpo-27507</a>: Add integer overflow check in bytearray.extend(). Patch by
Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27581">bpo-27581</a>: Don’t rely on wrapping for overflow check in
PySequence_Tuple(). Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1621">bpo-1621</a>: Avoid signed integer overflow in list and tuple operations.
Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27419">bpo-27419</a>: Standard __import__() no longer look up “__import__” in globals
or builtins for importing submodules or “from import”. Fixed a crash if
raise a warning about unabling to resolve package from __spec__ or
__package__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27083">bpo-27083</a>: Respect the PYTHONCASEOK environment variable under Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27514">bpo-27514</a>: Make having too many statically nested blocks a SyntaxError
instead of SystemError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27366">bpo-27366</a>: Implemented <span class="target" id="index-435"></span><a class="pep reference external" href="https://peps.python.org/pep-0487/"><strong>PEP 487</strong></a> (Simpler customization of class
creation). Upon subclassing, the __init_subclass__ classmethod is called
on the base class. Descriptors are initialized with __set_name__ after
class creation.</p></li>
</ul>
</section>
<section id="id710">
<h3>Library<a class="headerlink" href="#id710" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26027">bpo-26027</a>: Add <span class="target" id="index-436"></span><a class="pep reference external" href="https://peps.python.org/pep-0519/"><strong>PEP 519</strong></a>/__fspath__() support to the os and os.path
modules. Includes code from Jelle Zijlstra. (See also: <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27524">bpo-27524</a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27598">bpo-27598</a>: Add Collections to collections.abc. Patch by Ivan Levkivskyi,
docs by Neil Girdhar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25958">bpo-25958</a>: Support “anti-registration” of special methods from various
ABCs, like __hash__, __iter__ or __len__. All these (and several more)
can be set to None in an implementation class and the behavior will be as
if the method is not defined at all. (Previously, this mechanism existed
only for __hash__, to make mutable classes unhashable.) Code contributed
by Andrew Barnert and Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16764">bpo-16764</a>: Support keyword arguments to zlib.decompress(). Patch by Xiang
Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27736">bpo-27736</a>: Prevent segfault after interpreter re-initialization due to ref
count problem introduced in code for <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27038">bpo-27038</a> in 3.6.0a3. Patch by
Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25628">bpo-25628</a>: The <em>verbose</em> and <em>rename</em> parameters for
collections.namedtuple are now keyword-only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12345">bpo-12345</a>: Add mathematical constant tau to math and cmath. See also
<span class="target" id="index-437"></span><a class="pep reference external" href="https://peps.python.org/pep-0628/"><strong>PEP 628</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26823">bpo-26823</a>: traceback.StackSummary.format now abbreviates large sections of
repeated lines as “[Previous line repeated {count} more times]” (this
change then further affects other traceback display operations in the
module). Patch by Emanuel Barry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27664">bpo-27664</a>: Add to concurrent.futures.thread.ThreadPoolExecutor() the
ability to specify a thread name prefix.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27181">bpo-27181</a>: Add geometric_mean and harmonic_mean to statistics module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27573">bpo-27573</a>: code.interact now prints an message when exiting.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6422">bpo-6422</a>: Add autorange method to timeit.Timer objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27773">bpo-27773</a>: Correct some memory management errors server_hostname in
_ssl.wrap_socket().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26750">bpo-26750</a>: unittest.mock.create_autospec() now works properly for
subclasses of property() and other data descriptors. Removes the never
publicly used, never documented unittest.mock.DescriptorTypes tuple.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26754">bpo-26754</a>: Undocumented support of general bytes-like objects as path in
compile() and similar functions is now deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26800">bpo-26800</a>: Undocumented support of general bytes-like objects as paths in
os functions is now deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26981">bpo-26981</a>: Add _order_ compatibility shim to enum.Enum for Python 2/3 code
bases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27661">bpo-27661</a>: Added tzinfo keyword argument to datetime.combine.</p></li>
<li><p>In the curses module, raise an error if window.getstr() or window.instr()
is passed a negative value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27783">bpo-27783</a>: Fix possible usage of uninitialized memory in
operator.methodcaller.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27774">bpo-27774</a>: Fix possible Py_DECREF on unowned object in _sre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27760">bpo-27760</a>: Fix possible integer overflow in binascii.b2a_qp.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27758">bpo-27758</a>: Fix possible integer overflow in the _csv module for large
record lengths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27568">bpo-27568</a>: Prevent HTTPoxy attack (<span class="target" id="index-438"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-1000110"><strong>CVE 2016-1000110</strong></a>). Ignore the
HTTP_PROXY variable when REQUEST_METHOD environment is set, which
indicates that the script is in CGI mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=7063">bpo-7063</a>: Remove dead code from the “array” module’s slice handling. Patch
by Chuck.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27656">bpo-27656</a>: Do not assume sched.h defines any SCHED_* constants.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27130">bpo-27130</a>: In the “zlib” module, fix handling of large buffers (typically
4 GiB) when compressing and decompressing. Previously, inputs were
limited to 4 GiB, and compression and decompression operations did not
properly handle results of 4 GiB.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24773">bpo-24773</a>: Implemented <span class="target" id="index-439"></span><a class="pep reference external" href="https://peps.python.org/pep-0495/"><strong>PEP 495</strong></a> (Local Time Disambiguation).</p></li>
<li><p>Expose the EPOLLEXCLUSIVE constant (when it is defined) in the select
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27567">bpo-27567</a>: Expose the EPOLLRDHUP and POLLRDHUP constants in the select
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1621">bpo-1621</a>: Avoid signed int negation overflow in the “audioop” module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27533">bpo-27533</a>: Release GIL in nt._isdir</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17711">bpo-17711</a>: Fixed unpickling by the persistent ID with protocol 0. Original
patch by Alexandre Vassalotti.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27522">bpo-27522</a>: Avoid an unintentional reference cycle in email.feedparser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27512">bpo-27512</a>: Fix a segfault when os.fspath() called an __fspath__() method
that raised an exception. Patch by Xiang Zhang.</p></li>
</ul>
</section>
<section id="id711">
<h3>IDLE<a class="headerlink" href="#id711" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27714">bpo-27714</a>: text_textview and test_autocomplete now pass when re-run in the
same process. This occurs when test_idle fails when run with the -w
option but without -jn. Fix warning from test_config.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27621">bpo-27621</a>: Put query response validation error messages in the query box
itself instead of in a separate messagebox. Redo tests to match. Add Mac
OSX refinements. Original patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27620">bpo-27620</a>: Escape key now closes Query box as cancelled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27609">bpo-27609</a>: IDLE: tab after initial whitespace should tab, not
autocomplete. This fixes problem with writing docstrings at least twice
indented.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27609">bpo-27609</a>: Explicitly return None when there are also non-None returns. In
a few cases, reverse a condition and eliminate a return.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25507">bpo-25507</a>: IDLE no longer runs buggy code because of its tkinter imports.
Users must include the same imports required to run directly in Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27173">bpo-27173</a>: Add ‘IDLE Modern Unix’ to the built-in key sets. Make the
default key set depend on the platform. Add tests for the changes to the
config module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27452">bpo-27452</a>: add line counter and crc to IDLE configHandler test dump.</p></li>
</ul>
</section>
<section id="id712">
<h3>Tests<a class="headerlink" href="#id712" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25805">bpo-25805</a>: Skip a test in test_pkgutil as needed that doesn’t work when
<code class="docutils literal notranslate"><span class="pre">__name__</span> <span class="pre">==</span> <span class="pre">__main__</span></code>. Patch by SilentGhost.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27472">bpo-27472</a>: Add test.support.unix_shell as the path to the default shell.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27369">bpo-27369</a>: In test_pyexpat, avoid testing an error message detail that
changed in Expat 2.2.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27594">bpo-27594</a>: Prevent assertion error when running test_ast with coverage
enabled: ensure code object has a valid first line number. Patch suggested
by Ivan Levkivskyi.</p></li>
</ul>
</section>
<section id="id713">
<h3>Windows<a class="headerlink" href="#id713" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27647">bpo-27647</a>: Update bundled Tcl/Tk to 8.6.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27610">bpo-27610</a>: Adds <span class="target" id="index-440"></span><a class="pep reference external" href="https://peps.python.org/pep-0514/"><strong>PEP 514</strong></a> metadata to Windows installer</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27469">bpo-27469</a>: Adds a shell extension to the launcher so that drag and drop
works correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27309">bpo-27309</a>: Enables proper Windows styles in python[w].exe manifest.</p></li>
</ul>
</section>
<section id="id714">
<h3>Build<a class="headerlink" href="#id714" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27713">bpo-27713</a>: Suppress spurious build warnings when updating importlib’s
bootstrap files. Patch by Xiang Zhang</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25825">bpo-25825</a>: Correct the references to Modules/python.exp, which is required
on AIX. The references were accidentally changed in 3.5.0a1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27453">bpo-27453</a>: CPP invocation in configure must use CPPFLAGS. Patch by Chi
Hsuan Yen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27641">bpo-27641</a>: The configure script now inserts comments into the makefile to
prevent the pgen and _freeze_importlib executables from being
cross-compiled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26662">bpo-26662</a>: Set PYTHON_FOR_GEN in configure as the Python program to be
used for file generation during the build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10910">bpo-10910</a>: Avoid C++ compilation errors on FreeBSD and OS X. Also update
FreedBSD version checks for the original ctype UTF-8 workaround.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-0-alpha-3">
<h2>Python 3.6.0 alpha 3<a class="headerlink" href="#python-3-6-0-alpha-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-07-11</em></p>
<section id="id715">
<h3>Security<a class="headerlink" href="#id715" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27278">bpo-27278</a>: Fix os.urandom() implementation using getrandom() on Linux.
Truncate size to INT_MAX and loop until we collected enough random bytes,
instead of casting a directly Py_ssize_t to int.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22636">bpo-22636</a>: Avoid shell injection problems with ctypes.util.find_library().</p></li>
</ul>
</section>
<section id="id716">
<h3>Core and Builtins<a class="headerlink" href="#id716" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27473">bpo-27473</a>: Fixed possible integer overflow in bytes and bytearray
concatenations. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23034">bpo-23034</a>: The output of a special Python build with defined COUNT_ALLOCS,
SHOW_ALLOC_COUNT or SHOW_TRACK_COUNT macros is now off by default. It
can be re-enabled using the “-X showalloccount” option. It now outputs to
stderr instead of stdout.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27443">bpo-27443</a>: __length_hint__() of bytearray iterators no longer return a
negative integer for a resized bytearray.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27007">bpo-27007</a>: The fromhex() class methods of bytes and bytearray subclasses
now return an instance of corresponding subclass.</p></li>
</ul>
</section>
<section id="id717">
<h3>Library<a class="headerlink" href="#id717" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26844">bpo-26844</a>: Fix error message for imp.find_module() to refer to ‘path’
instead of ‘name’. Patch by Lev Maximov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23804">bpo-23804</a>: Fix SSL zero-length recv() calls to not block and not raise an
error about unclean EOF.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27466">bpo-27466</a>: Change time format returned by http.cookie.time2netscape,
confirming the netscape cookie format and making it consistent with
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21708">bpo-21708</a>: Deprecated dbm.dumb behavior that differs from common dbm
behavior: creating a database in ‘r’ and ‘w’ modes and modifying a
database in ‘r’ mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26721">bpo-26721</a>: Change the socketserver.StreamRequestHandler.wfile attribute to
implement BufferedIOBase. In particular, the write() method no longer does
partial writes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22115">bpo-22115</a>: Added methods trace_add, trace_remove and trace_info in the
tkinter.Variable class. They replace old methods trace_variable, trace,
trace_vdelete and trace_vinfo that use obsolete Tcl commands and might not
work in future versions of Tcl. Fixed old tracing methods:
trace_vdelete() with wrong mode no longer break tracing, trace_vinfo() now
always returns a list of pairs of strings, tracing in the “u” mode now
works.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26243">bpo-26243</a>: Only the level argument to zlib.compress() is keyword argument
now. The first argument is positional-only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27038">bpo-27038</a>: Expose the DirEntry type as os.DirEntry. Code patch by Jelle
Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27186">bpo-27186</a>: Update os.fspath()/PyOS_FSPath() to check the return value of
__fspath__() to be either str or bytes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18726">bpo-18726</a>: All optional parameters of the dump(), dumps(), load() and
loads() functions and JSONEncoder and JSONDecoder class constructors in
the json module are now keyword-only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27319">bpo-27319</a>: Methods selection_set(), selection_add(), selection_remove()
and selection_toggle() of ttk.TreeView now allow passing multiple items as
multiple arguments instead of passing them as a tuple. Deprecated
undocumented ability of calling the selection() method with arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27079">bpo-27079</a>: Fixed curses.ascii functions isblank(), iscntrl() and
ispunct().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27294">bpo-27294</a>: Numerical state in the repr for Tkinter event objects is now
represented as a combination of known flags.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27177">bpo-27177</a>: Match objects in the re module now support index-like objects
as group indices. Based on patches by Jeroen Demeyer and Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26754">bpo-26754</a>: Some functions (compile() etc) accepted a filename argument
encoded as an iterable of integers. Now only strings and byte-like objects
are accepted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26536">bpo-26536</a>: socket.ioctl now supports SIO_LOOPBACK_FAST_PATH. Patch by
Daniel Stokes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27048">bpo-27048</a>: Prevents distutils failing on Windows when environment
variables contain non-ASCII characters</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27330">bpo-27330</a>: Fixed possible leaks in the ctypes module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27238">bpo-27238</a>: Got rid of bare excepts in the turtle module. Original patch
by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27122">bpo-27122</a>: When an exception is raised within the context being managed by
a contextlib.ExitStack() and one of the exit stack generators catches and
raises it in a chain, do not re-raise the original exception when exiting,
let the new chained one through. This avoids the <span class="target" id="index-441"></span><a class="pep reference external" href="https://peps.python.org/pep-0479/"><strong>PEP 479</strong></a> bug described
in issue25782.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16864">bpo-16864</a>: sqlite3.Cursor.lastrowid now supports REPLACE statement.
Initial patch by Alex LordThorsen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26386">bpo-26386</a>: Fixed ttk.TreeView selection operations with item id’s
containing spaces.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8637">bpo-8637</a>: Honor a pager set by the env var MANPAGER (in preference to one
set by the env var PAGER).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16182">bpo-16182</a>: Fix various functions in the “readline” module to use the
locale encoding, and fix get_begidx() and get_endidx() to return code
point indexes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27392">bpo-27392</a>: Add loop.connect_accepted_socket(). Patch by Jim Fulton.</p></li>
</ul>
</section>
<section id="id718">
<h3>IDLE<a class="headerlink" href="#id718" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27477">bpo-27477</a>: IDLE search dialogs now use ttk widgets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27173">bpo-27173</a>: Add ‘IDLE Modern Unix’ to the built-in key sets. Make the
default key set depend on the platform. Add tests for the changes to the
config module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27452">bpo-27452</a>: make command line “idle-test> python test_help.py” work.
__file__ is relative when python is started in the file’s directory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27452">bpo-27452</a>: add line counter and crc to IDLE configHandler test dump.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27380">bpo-27380</a>: IDLE: add query.py with base Query dialog and ttk widgets.
Module had subclasses SectionName, ModuleName, and HelpSource, which are
used to get information from users by configdialog and file =>Load Module.
Each subclass has itw own validity checks. Using ModuleName allows users
to edit bad module names instead of starting over. Add tests and delete
the two files combined into the new one.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27372">bpo-27372</a>: Test_idle no longer changes the locale.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27365">bpo-27365</a>: Allow non-ascii chars in IDLE NEWS.txt, for contributor names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27245">bpo-27245</a>: IDLE: Cleanly delete custom themes and key bindings.
Previously, when IDLE was started from a console or by import, a cascade
of warnings was emitted. Patch by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24137">bpo-24137</a>: Run IDLE, test_idle, and htest with tkinter default root
disabled. Fix code and tests that fail with this restriction. Fix htests
to not create a second and redundant root and mainloop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27310">bpo-27310</a>: Fix IDLE.app failure to launch on OS X due to vestigial import.</p></li>
</ul>
</section>
<section id="id719">
<h3>C API<a class="headerlink" href="#id719" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26754">bpo-26754</a>: PyUnicode_FSDecoder() accepted a filename argument encoded as
an iterable of integers. Now only strings and byte-like objects are
accepted.</p></li>
</ul>
</section>
<section id="id720">
<h3>Build<a class="headerlink" href="#id720" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28066">bpo-28066</a>: Fix the logic that searches build directories for generated
include files when building outside the source tree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27442">bpo-27442</a>: Expose the Android API level that python was built against, in
sysconfig.get_config_vars() as ‘ANDROID_API_LEVEL’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27434">bpo-27434</a>: The interpreter that runs the cross-build, found in PATH, must
now be of the same feature version (e.g. 3.6) as the source being built.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26930">bpo-26930</a>: Update Windows builds to use OpenSSL 1.0.2h.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23968">bpo-23968</a>: Rename the platform directory from plat-$(MACHDEP) to
plat-$(PLATFORM_TRIPLET). Rename the config directory (LIBPL) from
config-$(LDVERSION) to config-$(LDVERSION)-$(PLATFORM_TRIPLET). Install
the platform specific _sysconfigdata module into the platform directory
and rename it to include the ABIFLAGS.</p></li>
<li><p>Don’t use largefile support for GNU/Hurd.</p></li>
</ul>
</section>
<section id="id721">
<h3>Tools/Demos<a class="headerlink" href="#id721" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27332">bpo-27332</a>: Fixed the type of the first argument of module-level functions
generated by Argument Clinic. Patch by Petr Viktorin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27418">bpo-27418</a>: Fixed Tools/importbench/importbench.py.</p></li>
</ul>
</section>
<section id="id722">
<h3>Documentation<a class="headerlink" href="#id722" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19489">bpo-19489</a>: Moved the search box from the sidebar to the header and footer
of each page. Patch by Ammar Askar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27285">bpo-27285</a>: Update documentation to reflect the deprecation of <code class="docutils literal notranslate"><span class="pre">pyvenv</span></code>
and normalize on the term “virtual environment”. Patch by Steve Piercy.</p></li>
</ul>
</section>
<section id="id723">
<h3>Tests<a class="headerlink" href="#id723" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27027">bpo-27027</a>: Added test.support.is_android that is True when this is an
Android build.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-0-alpha-2">
<h2>Python 3.6.0 alpha 2<a class="headerlink" href="#python-3-6-0-alpha-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-06-13</em></p>
<section id="id724">
<h3>Security<a class="headerlink" href="#id724" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26556">bpo-26556</a>: Update expat to 2.1.1, fixes <span class="target" id="index-442"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2015-1283"><strong>CVE 2015-1283</strong></a>.</p></li>
<li><p>Fix TLS stripping vulnerability in smtplib, <span class="target" id="index-443"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-0772"><strong>CVE 2016-0772</strong></a>. Reported by
Team Oststrom.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26839">bpo-26839</a>: On Linux, <a class="reference internal" href="../library/os.html#os.urandom" title="os.urandom"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.urandom()</span></code></a> now calls <code class="docutils literal notranslate"><span class="pre">getrandom()</span></code> with
<code class="docutils literal notranslate"><span class="pre">GRND_NONBLOCK</span></code> to fall back on reading <code class="docutils literal notranslate"><span class="pre">/dev/urandom</span></code> if the urandom
entropy pool is not initialized yet. Patch written by Colm Buckley.</p></li>
</ul>
</section>
<section id="id725">
<h3>Core and Builtins<a class="headerlink" href="#id725" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27095">bpo-27095</a>: Simplified MAKE_FUNCTION and removed MAKE_CLOSURE opcodes.
Patch by Demur Rumed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27190">bpo-27190</a>: Raise NotSupportedError if sqlite3 is older than 3.3.1. Patch
by Dave Sawyer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27286">bpo-27286</a>: Fixed compiling BUILD_MAP_UNPACK_WITH_CALL opcode. Calling
function with generalized unpacking (PEP 448) and conflicting keyword
names could cause undefined behavior.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27140">bpo-27140</a>: Added BUILD_CONST_KEY_MAP opcode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27186">bpo-27186</a>: Add support for os.PathLike objects to open() (part of
<span class="target" id="index-444"></span><a class="pep reference external" href="https://peps.python.org/pep-0519/"><strong>PEP 519</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27066">bpo-27066</a>: Fixed SystemError if a custom opener (for open()) returns a
negative number without setting an exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26983">bpo-26983</a>: float() now always return an instance of exact float. The
deprecation warning is emitted if __float__ returns an instance of a
strict subclass of float. In a future versions of Python this can be an
error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27097">bpo-27097</a>: Python interpreter is now about 7% faster due to optimized
instruction decoding. Based on patch by Demur Rumed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26647">bpo-26647</a>: Python interpreter now uses 16-bit wordcode instead of
bytecode. Patch by Demur Rumed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23275">bpo-23275</a>: Allow assigning to an empty target list in round brackets: () =
iterable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27243">bpo-27243</a>: Update the __aiter__ protocol: instead of returning an
awaitable that resolves to an asynchronous iterator, the asynchronous
iterator should be returned directly. Doing the former will trigger a
PendingDeprecationWarning.</p></li>
</ul>
</section>
<section id="id726">
<h3>Library<a class="headerlink" href="#id726" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p>Comment out socket (SO_REUSEPORT) and posix (O_SHLOCK, O_EXLOCK) constants
exposed on the API which are not implemented on GNU/Hurd. They would not
work at runtime anyway.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27025">bpo-27025</a>: Generated names for Tkinter widgets are now more meaningful and
recognizable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25455">bpo-25455</a>: Fixed crashes in repr of recursive ElementTree.Element and
functools.partial objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27294">bpo-27294</a>: Improved repr for Tkinter event objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20508">bpo-20508</a>: Improve exception message of IPv{4,6}Network.__getitem__. Patch
by Gareth Rees.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21386">bpo-21386</a>: Implement missing IPv4Address.is_global property. It was
documented since 07a5610bae9d. Initial patch by Roger Luethi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27029">bpo-27029</a>: Removed deprecated support of universal newlines mode from
ZipFile.open().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27030">bpo-27030</a>: Unknown escapes consisting of <code class="docutils literal notranslate"><span class="pre">'\'</span></code> and an ASCII letter in
regular expressions now are errors. The re.LOCALE flag now can be used
only with bytes patterns.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27186">bpo-27186</a>: Add os.PathLike support to DirEntry (part of <span class="target" id="index-445"></span><a class="pep reference external" href="https://peps.python.org/pep-0519/"><strong>PEP 519</strong></a>).
Initial patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20900">bpo-20900</a>: distutils register command now decodes HTTP responses
correctly. Initial patch by ingrid.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27186">bpo-27186</a>: Add os.PathLike support to pathlib, removing its provisional
status (part of PEP 519). Initial patch by Dusty Phillips.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27186">bpo-27186</a>: Add support for os.PathLike objects to os.fsencode() and
os.fsdecode() (part of <span class="target" id="index-446"></span><a class="pep reference external" href="https://peps.python.org/pep-0519/"><strong>PEP 519</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27186">bpo-27186</a>: Introduce os.PathLike and os.fspath() (part of <span class="target" id="index-447"></span><a class="pep reference external" href="https://peps.python.org/pep-0519/"><strong>PEP 519</strong></a>).</p></li>
<li><p>A new version of typing.py provides several new classes and features:
@overload outside stubs, Reversible, DefaultDict, Text, ContextManager,
Type[], NewType(), TYPE_CHECKING, and numerous bug fixes (note that some
of the new features are not yet implemented in mypy or other static
analyzers). Also classes for <span class="target" id="index-448"></span><a class="pep reference external" href="https://peps.python.org/pep-0492/"><strong>PEP 492</strong></a> (Awaitable, AsyncIterable,
AsyncIterator) have been added (in fact they made it into 3.5.1 but were
never mentioned).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25738">bpo-25738</a>: Stop http.server.BaseHTTPRequestHandler.send_error() from
sending a message body for 205 Reset Content. Also, don’t send Content
header fields in responses that don’t have a body. Patch by Susumu
Koshiba.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21313">bpo-21313</a>: Fix the “platform” module to tolerate when sys.version contains
truncated build information.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23883">bpo-23883</a>: Added missing APIs to __all__ to match the documented APIs for
the following modules: cgi, mailbox, mimetypes, plistlib and smtpd.
Patches by Jacek Kołodziej.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27164">bpo-27164</a>: In the zlib module, allow decompressing raw Deflate streams
with a predefined zdict. Based on patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24291">bpo-24291</a>: Fix wsgiref.simple_server.WSGIRequestHandler to completely
write data to the client. Previously it could do partial writes and
truncate data. Also, wsgiref.handler.ServerHandler can now handle stdout
doing partial writes, but this is deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21272">bpo-21272</a>: Use _sysconfigdata.py to initialize distutils.sysconfig.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19611">bpo-19611</a>: <a class="reference internal" href="../library/inspect.html#module-inspect" title="inspect: Extract information and source code from live objects."><code class="xref py py-mod docutils literal notranslate"><span class="pre">inspect</span></code></a> now reports the implicit <code class="docutils literal notranslate"><span class="pre">.0</span></code> parameters
generated by the compiler for comprehension and generator expression
scopes as if they were positional-only parameters called <code class="docutils literal notranslate"><span class="pre">implicit0</span></code>.
Patch by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26809">bpo-26809</a>: Add <code class="docutils literal notranslate"><span class="pre">__all__</span></code> to <a class="reference internal" href="../library/string.html#module-string" title="string: Common string operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">string</span></code></a>. Patch by Emanuel Barry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26373">bpo-26373</a>: subprocess.Popen.communicate now correctly ignores
BrokenPipeError when the child process dies before .communicate() is
called in more/all circumstances.</p></li>
<li><p>signal, socket, and ssl module IntEnum constant name lookups now return a
consistent name for values having multiple names. Ex: signal.Signals(6)
now refers to itself as signal.SIGALRM rather than flipping between that
and signal.SIGIOT based on the interpreter’s hash randomization seed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27167">bpo-27167</a>: Clarify the subprocess.CalledProcessError error message text
when the child process died due to a signal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25931">bpo-25931</a>: Don’t define socketserver.Forking* names on platforms such as
Windows that do not support os.fork().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21776">bpo-21776</a>: distutils.upload now correctly handles HTTPError. Initial patch
by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26526">bpo-26526</a>: Replace custom parse tree validation in the parser module with
a simple DFA validator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27114">bpo-27114</a>: Fix SSLContext._load_windows_store_certs fails with
PermissionError</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18383">bpo-18383</a>: Avoid creating duplicate filters when using filterwarnings and
simplefilter. Based on patch by Alex Shkop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23026">bpo-23026</a>: winreg.QueryValueEx() now return an integer for REG_QWORD type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26741">bpo-26741</a>: subprocess.Popen destructor now emits a ResourceWarning warning
if the child process is still running.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27056">bpo-27056</a>: Optimize pickle.load() and pickle.loads(), up to 10% faster to
deserialize a lot of small objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21271">bpo-21271</a>: New keyword only parameters in reset_mock call.</p></li>
</ul>
</section>
<section id="id727">
<h3>IDLE<a class="headerlink" href="#id727" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5124">bpo-5124</a>: Paste with text selected now replaces the selection on X11. This
matches how paste works on Windows, Mac, most modern Linux apps, and ttk
widgets. Original patch by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24750">bpo-24750</a>: Switch all scrollbars in IDLE to ttk versions. Where needed,
minimal tests are added to cover changes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24759">bpo-24759</a>: IDLE requires tk 8.5 and availability ttk widgets. Delete now
unneeded tk version tests and code for older versions. Add test for IDLE
syntax colorizer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27239">bpo-27239</a>: idlelib.macosx.isXyzTk functions initialize as needed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27262">bpo-27262</a>: move Aqua unbinding code, which enable context menus, to
macosx.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24759">bpo-24759</a>: Make clear in idlelib.idle_test.__init__ that the directory is
a private implementation of test.test_idle and tool for maintainers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27196">bpo-27196</a>: Stop ‘ThemeChanged’ warnings when running IDLE tests. These
persisted after other warnings were suppressed in #20567. Apply Serhiy
Storchaka’s update_idletasks solution to four test files. Record this
additional advice in idle_test/README.txt</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20567">bpo-20567</a>: Revise idle_test/README.txt with advice about avoiding tk
warning messages from tests. Apply advice to several IDLE tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24225">bpo-24225</a>: Update idlelib/README.txt with new file names and event
handlers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27156">bpo-27156</a>: Remove obsolete code not used by IDLE.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27117">bpo-27117</a>: Make colorizer htest and turtledemo work with dark themes. Move
code for configuring text widget colors to a new function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24225">bpo-24225</a>: Rename many <code class="docutils literal notranslate"><span class="pre">idlelib/*.py</span></code> and <code class="docutils literal notranslate"><span class="pre">idle_test/test_*.py</span></code> files.
Edit files to replace old names with new names when the old name referred
to the module rather than the class it contained. See the issue and IDLE
section in What’s New in 3.6 for more.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26673">bpo-26673</a>: When tk reports font size as 0, change to size 10. Such fonts
on Linux prevented the configuration dialog from opening.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21939">bpo-21939</a>: Add test for IDLE’s percolator. Original patch by Saimadhav
Heblikar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21676">bpo-21676</a>: Add test for IDLE’s replace dialog. Original patch by Saimadhav
Heblikar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18410">bpo-18410</a>: Add test for IDLE’s search dialog. Original patch by Westley
Martínez.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21703">bpo-21703</a>: Add test for undo delegator. Patch mostly by Saimadhav
Heblikar .</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27044">bpo-27044</a>: Add ConfigDialog.remove_var_callbacks to stop memory leaks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23977">bpo-23977</a>: Add more asserts to test_delegator.</p></li>
</ul>
</section>
<section id="id728">
<h3>Documentation<a class="headerlink" href="#id728" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16484">bpo-16484</a>: Change the default PYTHONDOCS URL to “https:”, and fix the
resulting links to use lowercase. Patch by Sean Rodman, test by Kaushik
Nadikuditi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24136">bpo-24136</a>: Document the new <span class="target" id="index-449"></span><a class="pep reference external" href="https://peps.python.org/pep-0448/"><strong>PEP 448</strong></a> unpacking syntax of 3.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22558">bpo-22558</a>: Add remaining doc links to source code for Python-coded
modules. Patch by Yoni Lavi.</p></li>
</ul>
</section>
<section id="id729">
<h3>Tests<a class="headerlink" href="#id729" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25285">bpo-25285</a>: regrtest now uses subprocesses when the -j1 command line option
is used: each test file runs in a fresh child process. Before, the -j1
option was ignored.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25285">bpo-25285</a>: Tools/buildbot/test.bat script now uses -j1 by default to run
each test file in fresh child process.</p></li>
</ul>
</section>
<section id="id730">
<h3>Windows<a class="headerlink" href="#id730" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27064">bpo-27064</a>: The py.exe launcher now defaults to Python 3. The Windows
launcher <code class="docutils literal notranslate"><span class="pre">py.exe</span></code> no longer prefers an installed Python 2 version over
Python 3 by default when used interactively.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17500">bpo-17500</a>: Remove unused and outdated icons. (See also:
<a class="reference external" href="https://github.com/python/pythondotorg/issues/945">https://github.com/python/pythondotorg/issues/945</a>)</p></li>
</ul>
</section>
<section id="id731">
<h3>Build<a class="headerlink" href="#id731" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27229">bpo-27229</a>: Fix the cross-compiling pgen rule for in-tree builds. Patch by
Xavier de Gaye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26930">bpo-26930</a>: Update OS X 10.5+ 32-bit-only installer to build and link with
OpenSSL 1.0.2h.</p></li>
</ul>
</section>
<section id="id732">
<h3>C API<a class="headerlink" href="#id732" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27186">bpo-27186</a>: Add the PyOS_FSPath() function (part of <span class="target" id="index-450"></span><a class="pep reference external" href="https://peps.python.org/pep-0519/"><strong>PEP 519</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26282">bpo-26282</a>: PyArg_ParseTupleAndKeywords() now supports positional-only
parameters.</p></li>
</ul>
</section>
<section id="id733">
<h3>Tools/Demos<a class="headerlink" href="#id733" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26282">bpo-26282</a>: Argument Clinic now supports positional-only and keyword
parameters in the same function.</p></li>
</ul>
</section>
</section>
<section id="python-3-6-0-alpha-1">
<h2>Python 3.6.0 alpha 1<a class="headerlink" href="#python-3-6-0-alpha-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-05-16</em></p>
<section id="id734">
<h3>Security<a class="headerlink" href="#id734" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26657">bpo-26657</a>: Fix directory traversal vulnerability with http.server on
Windows. This fixes a regression that was introduced in 3.3.4rc1 and
3.4.0rc1. Based on patch by Philipp Hagemeister.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26313">bpo-26313</a>: ssl.py _load_windows_store_certs fails if windows cert store is
empty. Patch by Baji.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25939">bpo-25939</a>: On Windows open the cert store readonly in
ssl.enum_certificates.</p></li>
</ul>
</section>
<section id="id735">
<h3>Core and Builtins<a class="headerlink" href="#id735" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20041">bpo-20041</a>: Fixed TypeError when frame.f_trace is set to None. Patch by
Xavier de Gaye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26168">bpo-26168</a>: Fixed possible refleaks in failing Py_BuildValue() with the “N”
format unit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26991">bpo-26991</a>: Fix possible refleak when creating a function with annotations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27039">bpo-27039</a>: Fixed bytearray.remove() for values greater than 127. Based on
patch by Joe Jevnik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23640">bpo-23640</a>: int.from_bytes() no longer bypasses constructors for
subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27005">bpo-27005</a>: Optimized the float.fromhex() class method for exact float. It
is now 2 times faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18531">bpo-18531</a>: Single var-keyword argument of dict subtype was passed
unscathed to the C-defined function. Now it is converted to exact dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26811">bpo-26811</a>: gc.get_objects() no longer contains a broken tuple with NULL
pointer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20120">bpo-20120</a>: Use RawConfigParser for .pypirc parsing, removing support for
interpolation unintentionally added with move to Python 3. Behavior no
longer does any interpolation in .pypirc files, matching behavior in
Python 2.7 and Setuptools 19.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26249">bpo-26249</a>: Memory functions of the <a class="reference internal" href="../c-api/memory.html#c.PyMem_Malloc" title="PyMem_Malloc"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMem_Malloc()</span></code></a> domain
(<a class="reference internal" href="../c-api/memory.html#c.PYMEM_DOMAIN_MEM" title="PYMEM_DOMAIN_MEM"><code class="xref c c-macro docutils literal notranslate"><span class="pre">PYMEM_DOMAIN_MEM</span></code></a>) now use the <a class="reference internal" href="../c-api/memory.html#pymalloc"><span class="std std-ref">pymalloc allocator</span></a> rather than system <code class="xref c c-func docutils literal notranslate"><span class="pre">malloc()</span></code>. Applications calling
<a class="reference internal" href="../c-api/memory.html#c.PyMem_Malloc" title="PyMem_Malloc"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMem_Malloc()</span></code></a> without holding the GIL can now crash: use
<code class="docutils literal notranslate"><span class="pre">PYTHONMALLOC=debug</span></code> environment variable to validate the usage of
memory allocators in your application.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26802">bpo-26802</a>: Optimize function calls only using unpacking like
<code class="docutils literal notranslate"><span class="pre">func(*tuple)</span></code> (no other positional argument, no keyword): avoid copying
the tuple. Patch written by Joe Jevnik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26659">bpo-26659</a>: Make the builtin slice type support cycle collection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26718">bpo-26718</a>: super.__init__ no longer leaks memory if called multiple times.
NOTE: A direct call of super.__init__ is not endorsed!</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27138">bpo-27138</a>: Fix the doc comment for FileFinder.find_spec().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27147">bpo-27147</a>: Mention <span class="target" id="index-451"></span><a class="pep reference external" href="https://peps.python.org/pep-0420/"><strong>PEP 420</strong></a> in the importlib docs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25339">bpo-25339</a>: PYTHONIOENCODING now has priority over locale in setting the
error handler for stdin and stdout.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26494">bpo-26494</a>: Fixed crash on iterating exhausting iterators. Affected classes
are generic sequence iterators, iterators of str, bytes, bytearray, list,
tuple, set, frozenset, dict, OrderedDict, corresponding views and
os.scandir() iterator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26574">bpo-26574</a>: Optimize <code class="docutils literal notranslate"><span class="pre">bytes.replace(b'',</span> <span class="pre">b'.')</span></code> and
<code class="docutils literal notranslate"><span class="pre">bytearray.replace(b'',</span> <span class="pre">b'.')</span></code>. Patch written by Josh Snider.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26581">bpo-26581</a>: If coding cookie is specified multiple times on a line in
Python source code file, only the first one is taken to account.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19711">bpo-19711</a>: Add tests for reloading namespace packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21099">bpo-21099</a>: Switch applicable importlib tests to use <span class="target" id="index-452"></span><a class="pep reference external" href="https://peps.python.org/pep-0451/"><strong>PEP 451</strong></a> API.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26563">bpo-26563</a>: Debug hooks on Python memory allocators now raise a fatal error
if functions of the <a class="reference internal" href="../c-api/memory.html#c.PyMem_Malloc" title="PyMem_Malloc"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMem_Malloc()</span></code></a> family are called without
holding the GIL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26564">bpo-26564</a>: On error, the debug hooks on Python memory allocators now use
the <a class="reference internal" href="../library/tracemalloc.html#module-tracemalloc" title="tracemalloc: Trace memory allocations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tracemalloc</span></code></a> module to get the traceback where a memory block
was allocated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26558">bpo-26558</a>: The debug hooks on Python memory allocator
<a class="reference internal" href="../c-api/memory.html#c.PyObject_Malloc" title="PyObject_Malloc"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyObject_Malloc()</span></code></a> now detect when functions are called without
holding the GIL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26516">bpo-26516</a>: Add <span class="target" id="index-453"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONMALLOC"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONMALLOC</span></code></a> environment variable to set the
Python memory allocators and/or install debug hooks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26516">bpo-26516</a>: The <a class="reference internal" href="../c-api/memory.html#c.PyMem_SetupDebugHooks" title="PyMem_SetupDebugHooks"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyMem_SetupDebugHooks()</span></code></a> function can now also be
used on Python compiled in release mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26516">bpo-26516</a>: The <span class="target" id="index-454"></span><a class="reference internal" href="../using/cmdline.html#envvar-PYTHONMALLOCSTATS"><code class="xref std std-envvar docutils literal notranslate"><span class="pre">PYTHONMALLOCSTATS</span></code></a> environment variable can now
also be used on Python compiled in release mode. It now has no effect if
set to an empty string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26516">bpo-26516</a>: In debug mode, debug hooks are now also installed on Python
memory allocators when Python is configured without pymalloc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26464">bpo-26464</a>: Fix str.translate() when string is ASCII and first replacements
removes character, but next replacement uses a non-ASCII character or a
string longer than 1 character. Regression introduced in Python 3.5.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22836">bpo-22836</a>: Ensure exception reports from PyErr_Display() and
PyErr_WriteUnraisable() are sensible even when formatting them produces
secondary errors. This affects the reports produced by
sys.__excepthook__() and when __del__() raises an exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26302">bpo-26302</a>: Correct behavior to reject comma as a legal character for
cookie names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26136">bpo-26136</a>: Upgrade the warning when a generator raises StopIteration from
PendingDeprecationWarning to DeprecationWarning. Patch by Anish Shah.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26204">bpo-26204</a>: The compiler now ignores all constant statements: bytes, str,
int, float, complex, name constants (None, False, True), Ellipsis and
ast.Constant; not only str and int. For example, <code class="docutils literal notranslate"><span class="pre">1.0</span></code> is now ignored in
<code class="docutils literal notranslate"><span class="pre">def</span> <span class="pre">f():</span> <span class="pre">1.0</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4806">bpo-4806</a>: Avoid masking the original TypeError exception when using star
(<code class="docutils literal notranslate"><span class="pre">*</span></code>) unpacking in function calls. Based on patch by Hagen Fürstenau
and Daniel Urban.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26146">bpo-26146</a>: Add a new kind of AST node: <code class="docutils literal notranslate"><span class="pre">ast.Constant</span></code>. It can be used by
external AST optimizers, but the compiler does not emit directly such
node.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23601">bpo-23601</a>: Sped-up allocation of dict key objects by using Python’s small
object allocator. (Contributed by Julian Taylor.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18018">bpo-18018</a>: Import raises ImportError instead of SystemError if a relative
import is attempted without a known parent package.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25843">bpo-25843</a>: When compiling code, don’t merge constants if they are equal
but have a different types. For example, <code class="docutils literal notranslate"><span class="pre">f1,</span> <span class="pre">f2</span> <span class="pre">=</span> <span class="pre">lambda:</span> <span class="pre">1,</span> <span class="pre">lambda:</span>
<span class="pre">1.0</span></code> is now correctly compiled to two different functions: <code class="docutils literal notranslate"><span class="pre">f1()</span></code>
returns <code class="docutils literal notranslate"><span class="pre">1</span></code> (<code class="docutils literal notranslate"><span class="pre">int</span></code>) and <code class="docutils literal notranslate"><span class="pre">f2()</span></code> returns <code class="docutils literal notranslate"><span class="pre">1.0</span></code> (<code class="docutils literal notranslate"><span class="pre">float</span></code>), even if
<code class="docutils literal notranslate"><span class="pre">1</span></code> and <code class="docutils literal notranslate"><span class="pre">1.0</span></code> are equal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26107">bpo-26107</a>: The format of the <code class="docutils literal notranslate"><span class="pre">co_lnotab</span></code> attribute of code objects
changes to support negative line number delta.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26154">bpo-26154</a>: Add a new private _PyThreadState_UncheckedGet() function to get
the current Python thread state, but don’t issue a fatal error if it is
NULL. This new function must be used instead of accessing directly the
_PyThreadState_Current variable. The variable is no more exposed since
Python 3.5.1 to hide the exact implementation of atomic C types, to avoid
compiler issues.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25791">bpo-25791</a>: If __package__ != __spec__.parent or if neither __package__ or
__spec__ are defined then ImportWarning is raised.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22995">bpo-22995</a>: [UPDATE] Comment out the one of the pickleability tests in
_PyObject_GetState() due to regressions observed in Cython-based projects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25961">bpo-25961</a>: Disallowed null characters in the type name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25973">bpo-25973</a>: Fix segfault when an invalid nonlocal statement binds a name
starting with two underscores.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22995">bpo-22995</a>: Instances of extension types with a state that aren’t
subclasses of list or dict and haven’t implemented any pickle-related
methods (__reduce__, __reduce_ex__, __getnewargs__, __getnewargs_ex__, or
__getstate__), can no longer be pickled. Including memoryview.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20440">bpo-20440</a>: Massive replacing unsafe attribute setting code with special
macro Py_SETREF.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25766">bpo-25766</a>: Special method __bytes__() now works in str subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25421">bpo-25421</a>: __sizeof__ methods of builtin types now use dynamic basic size.
This allows sys.getsize() to work correctly with their subclasses with
__slots__ defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25709">bpo-25709</a>: Fixed problem with in-place string concatenation and utf-8
cache.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5319">bpo-5319</a>: New Py_FinalizeEx() API allowing Python to set an exit status of
120 on failure to flush buffered streams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25485">bpo-25485</a>: telnetlib.Telnet is now a context manager.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24097">bpo-24097</a>: Fixed crash in object.__reduce__() if slot name is freed inside
__getattr__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24731">bpo-24731</a>: Fixed crash on converting objects with special methods
__bytes__, __trunc__, and __float__ returning instances of subclasses of
bytes, int, and float to subclasses of bytes, int, and float
correspondingly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25630">bpo-25630</a>: Fix a possible segfault during argument parsing in functions
that accept filesystem paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23564">bpo-23564</a>: Fixed a partially broken sanity check in the _posixsubprocess
internals regarding how fds_to_pass were passed to the child. The bug had
no actual impact as subprocess.py already avoided it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25388">bpo-25388</a>: Fixed tokenizer crash when processing undecodable source code
with a null byte.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25462">bpo-25462</a>: The hash of the key now is calculated only once in most
operations in C implementation of OrderedDict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22995">bpo-22995</a>: Default implementation of __reduce__ and __reduce_ex__ now
rejects builtin types with not defined __new__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24802">bpo-24802</a>: Avoid buffer overreads when int(), float(), compile(), exec()
and eval() are passed bytes-like objects. These objects are not
necessarily terminated by a null byte, but the functions assumed they
were.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25555">bpo-25555</a>: Fix parser and AST: fill lineno and col_offset of “arg” node
when compiling AST from Python objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24726">bpo-24726</a>: Fixed a crash and leaking NULL in repr() of OrderedDict that
was mutated by direct calls of dict methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25449">bpo-25449</a>: Iterating OrderedDict with keys with unstable hash now raises
KeyError in C implementations as well as in Python implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25395">bpo-25395</a>: Fixed crash when highly nested OrderedDict structures were
garbage collected.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25401">bpo-25401</a>: Optimize bytes.fromhex() and bytearray.fromhex(): they are now
between 2x and 3.5x faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25399">bpo-25399</a>: Optimize bytearray % args using the new private _PyBytesWriter
API. Formatting is now between 2.5 and 5 times faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25274">bpo-25274</a>: sys.setrecursionlimit() now raises a RecursionError if the new
recursion limit is too low depending at the current recursion depth.
Modify also the “lower-water mark” formula to make it monotonic. This mark
is used to decide when the overflowed flag of the thread state is reset.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24402">bpo-24402</a>: Fix input() to prompt to the redirected stdout when
sys.stdout.fileno() fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25349">bpo-25349</a>: Optimize bytes % args using the new private _PyBytesWriter API.
Formatting is now up to 2 times faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24806">bpo-24806</a>: Prevent builtin types that are not allowed to be subclassed
from being subclassed through multiple inheritance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25301">bpo-25301</a>: The UTF-8 decoder is now up to 15 times as fast for error
handlers: <code class="docutils literal notranslate"><span class="pre">ignore</span></code>, <code class="docutils literal notranslate"><span class="pre">replace</span></code> and <code class="docutils literal notranslate"><span class="pre">surrogateescape</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24848">bpo-24848</a>: Fixed a number of bugs in UTF-7 decoding of misformed data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25267">bpo-25267</a>: The UTF-8 encoder is now up to 75 times as fast for error
handlers: <code class="docutils literal notranslate"><span class="pre">ignore</span></code>, <code class="docutils literal notranslate"><span class="pre">replace</span></code>, <code class="docutils literal notranslate"><span class="pre">surrogateescape</span></code>, <code class="docutils literal notranslate"><span class="pre">surrogatepass</span></code>.
Patch co-written with Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25280">bpo-25280</a>: Import trace messages emitted in verbose (-v) mode are no
longer formatted twice.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25227">bpo-25227</a>: Optimize ASCII and latin1 encoders with the <code class="docutils literal notranslate"><span class="pre">surrogateescape</span></code>
error handler: the encoders are now up to 3 times as fast. Initial patch
written by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25003">bpo-25003</a>: On Solaris 11.3 or newer, os.urandom() now uses the getrandom()
function instead of the getentropy() function. The getentropy() function
is blocking to generate very good quality entropy, os.urandom() doesn’t
need such high-quality entropy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9232">bpo-9232</a>: Modify Python’s grammar to allow trailing commas in the argument
list of a function declaration. For example, “def f(*, a = 3,): pass” is
now legal. Patch from Mark Dickinson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24965">bpo-24965</a>: Implement <span class="target" id="index-455"></span><a class="pep reference external" href="https://peps.python.org/pep-0498/"><strong>PEP 498</strong></a> “Literal String Interpolation”. This
allows you to embed expressions inside f-strings, which are converted to
normal strings at run time. Given x=3, then f’value={x}’ == ‘value=3’.
Patch by Eric V. Smith.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26478">bpo-26478</a>: Fix semantic bugs when using binary operators with dictionary
views and tuples.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26171">bpo-26171</a>: Fix possible integer overflow and heap corruption in
zipimporter.get_data().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25660">bpo-25660</a>: Fix TAB key behaviour in REPL with readline.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26288">bpo-26288</a>: Optimize PyLong_AsDouble.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26289">bpo-26289</a>: Optimize floor and modulo division for single-digit longs.
Microbenchmarks show 2-2.5x improvement. Built-in ‘divmod’ function is
now also ~10% faster. (See also: <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26315">bpo-26315</a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25887">bpo-25887</a>: Raise a RuntimeError when a coroutine object is awaited more
than once.</p></li>
</ul>
</section>
<section id="id736">
<h3>Library<a class="headerlink" href="#id736" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27057">bpo-27057</a>: Fix os.set_inheritable() on Android, ioctl() is blocked by
SELinux and fails with EACCESS. The function now falls back to fcntl().
Patch written by Michał Bednarski.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27014">bpo-27014</a>: Fix infinite recursion using typing.py. Thanks to Kalle Tuure!</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27031">bpo-27031</a>: Removed dummy methods in Tkinter widget classes: tk_menuBar()
and tk_bindForTraversal().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14132">bpo-14132</a>: Fix urllib.request redirect handling when the target only has a
query string. Original fix by Ján Janech.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17214">bpo-17214</a>: The “urllib.request” module now percent-encodes non-ASCII bytes
found in redirect target URLs. Some servers send Location header fields
with non-ASCII bytes, but “http.client” requires the request target to be
ASCII-encodable, otherwise a UnicodeEncodeError is raised. Based on patch
by Christian Heimes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27033">bpo-27033</a>: The default value of the decode_data parameter for
smtpd.SMTPChannel and smtpd.SMTPServer constructors is changed to False.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27034">bpo-27034</a>: Removed deprecated class asynchat.fifo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26870">bpo-26870</a>: Added readline.set_auto_history(), which can stop entries being
automatically added to the history list. Based on patch by Tyler
Crompton.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26039">bpo-26039</a>: zipfile.ZipFile.open() can now be used to write data into a ZIP
file, as well as for extracting data. Patch by Thomas Kluyver.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26892">bpo-26892</a>: Honor debuglevel flag in urllib.request.HTTPHandler. Patch
contributed by Chi Hsuan Yen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22274">bpo-22274</a>: In the subprocess module, allow stderr to be redirected to
stdout even when stdout is not redirected. Patch by Akira Li.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26807">bpo-26807</a>: mock_open ‘files’ no longer error on readline at end of file.
Patch from Yolanda Robla.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25745">bpo-25745</a>: Fixed leaking a userptr in curses panel destructor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26977">bpo-26977</a>: Removed unnecessary, and ignored, call to sum of squares helper
in statistics.pvariance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26002">bpo-26002</a>: Use bisect in statistics.median instead of a linear search.
Patch by Upendra Kuma.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25974">bpo-25974</a>: Make use of new Decimal.as_integer_ratio() method in statistics
module. Patch by Stefan Krah.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26996">bpo-26996</a>: Add secrets module as described in <span class="target" id="index-456"></span><a class="pep reference external" href="https://peps.python.org/pep-0506/"><strong>PEP 506</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26881">bpo-26881</a>: The modulefinder module now supports extended opcode arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23815">bpo-23815</a>: Fixed crashes related to directly created instances of types in
_tkinter and curses.panel modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17765">bpo-17765</a>: weakref.ref() no longer silently ignores keyword arguments.
Patch by Georg Brandl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26873">bpo-26873</a>: xmlrpc now raises ResponseError on unsupported type tags
instead of silently return incorrect result.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26915">bpo-26915</a>: The __contains__ methods in the collections ABCs now check for
identity before checking equality. This better matches the behavior of
the concrete classes, allows sensible handling of NaNs, and makes it
easier to reason about container invariants.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26711">bpo-26711</a>: Fixed the comparison of plistlib.Data with other types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24114">bpo-24114</a>: Fix an uninitialized variable in <code class="docutils literal notranslate"><span class="pre">ctypes.util</span></code>. The bug only
occurs on SunOS when the ctypes implementation searches for the <code class="docutils literal notranslate"><span class="pre">crle</span></code>
program. Patch by Xiang Zhang. Tested on SunOS by Kees Bos.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26864">bpo-26864</a>: In urllib.request, change the proxy bypass host checking
against no_proxy to be case-insensitive, and to not match unrelated host
names that happen to have a bypassed hostname as a suffix. Patch by Xiang
Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24902">bpo-24902</a>: Print server URL on http.server startup. Initial patch by
Felix Kaiser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25788">bpo-25788</a>: fileinput.hook_encoded() now supports an “errors” argument for
passing to open. Original patch by Joseph Hackman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26634">bpo-26634</a>: recursive_repr() now sets __qualname__ of wrapper. Patch by
Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26804">bpo-26804</a>: urllib.request will prefer lower_case proxy environment
variables over UPPER_CASE or Mixed_Case ones. Patch contributed by
Hans-Peter Jansen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26837">bpo-26837</a>: assertSequenceEqual() now correctly outputs non-stringified
differing items (like bytes in the -b mode). This affects
assertListEqual() and assertTupleEqual().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26041">bpo-26041</a>: Remove “will be removed in Python 3.7” from deprecation
messages of platform.dist() and platform.linux_distribution(). Patch by
Kumaripaba Miyurusara Athukorala.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26822">bpo-26822</a>: itemgetter, attrgetter and methodcaller objects no longer
silently ignore keyword arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26733">bpo-26733</a>: Disassembling a class now disassembles class and static
methods. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26801">bpo-26801</a>: Fix error handling in <a class="reference internal" href="../library/shutil.html#shutil.get_terminal_size" title="shutil.get_terminal_size"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.get_terminal_size()</span></code></a>, catch
<a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a>. Patch written by
Emanuel Barry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24838">bpo-24838</a>: tarfile’s ustar and gnu formats now correctly calculate name
and link field limits for multibyte character encodings like utf-8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26717">bpo-26717</a>: Stop encoding Latin-1-ized WSGI paths with UTF-8. Patch by
Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26782">bpo-26782</a>: Add STARTUPINFO to subprocess.__all__ on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26404">bpo-26404</a>: Add context manager to socketserver. Patch by Aviv Palivoda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26735">bpo-26735</a>: Fix <a class="reference internal" href="../library/os.html#os.urandom" title="os.urandom"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.urandom()</span></code></a> on Solaris 11.3 and newer when reading
more than 1,024 bytes: call <code class="docutils literal notranslate"><span class="pre">getrandom()</span></code> multiple times with a limit of
1024 bytes per call.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26585">bpo-26585</a>: Eliminate http.server._quote_html() and use
html.escape(quote=False). Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26685">bpo-26685</a>: Raise OSError if closing a socket fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16329">bpo-16329</a>: Add .webm to mimetypes.types_map. Patch by Giampaolo Rodola’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13952">bpo-13952</a>: Add .csv to mimetypes.types_map. Patch by Geoff Wilson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26587">bpo-26587</a>: the site module now allows .pth files to specify files to be
added to sys.path (e.g. zip files).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25609">bpo-25609</a>: Introduce contextlib.AbstractContextManager and
typing.ContextManager.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26709">bpo-26709</a>: Fixed Y2038 problem in loading binary PLists.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23735">bpo-23735</a>: Handle terminal resizing with Readline 6.3+ by installing our
own SIGWINCH handler. Patch by Eric Price.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25951">bpo-25951</a>: Change SSLSocket.sendall() to return None, as explicitly
documented for plain socket objects. Patch by Aviv Palivoda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26586">bpo-26586</a>: In http.server, respond with “413 Request header fields too
large” if there are too many header fields to parse, rather than killing
the connection and raising an unhandled exception. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26676">bpo-26676</a>: Added missing XMLPullParser to ElementTree.__all__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22854">bpo-22854</a>: Change BufferedReader.writable() and BufferedWriter.readable()
to always return False.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26492">bpo-26492</a>: Exhausted iterator of array.array now conforms with the
behavior of iterators of other mutable sequences: it lefts exhausted even
if iterated array is extended.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26641">bpo-26641</a>: doctest.DocFileTest and doctest.testfile() now support packages
(module split into multiple directories) for the package parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25195">bpo-25195</a>: Fix a regression in mock.MagicMock. _Call is a subclass of
tuple (changeset 3603bae63c13 only works for classes) so we need to
implement __ne__ ourselves. Patch by Andrew Plummer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26644">bpo-26644</a>: Raise ValueError rather than SystemError when a negative length
is passed to SSLSocket.recv() or read().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23804">bpo-23804</a>: Fix SSL recv(0) and read(0) methods to return zero bytes
instead of up to 1024.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26616">bpo-26616</a>: Fixed a bug in datetime.astimezone() method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26637">bpo-26637</a>: The <a class="reference internal" href="../library/importlib.html#module-importlib" title="importlib: The implementation of the import machinery."><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib</span></code></a> module now emits an <a class="reference internal" href="../library/exceptions.html#ImportError" title="ImportError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ImportError</span></code></a>
rather than a <a class="reference internal" href="../library/exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a> if <a class="reference internal" href="../library/functions.html#import__" title="__import__"><code class="xref py py-func docutils literal notranslate"><span class="pre">__import__()</span></code></a> is tried during the
Python shutdown process but <a class="reference internal" href="../library/sys.html#sys.path" title="sys.path"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.path</span></code></a> is already cleared (set to
<code class="docutils literal notranslate"><span class="pre">None</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21925">bpo-21925</a>: <a class="reference internal" href="../library/warnings.html#warnings.formatwarning" title="warnings.formatwarning"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.formatwarning()</span></code></a> now catches exceptions when
calling <a class="reference internal" href="../library/linecache.html#linecache.getline" title="linecache.getline"><code class="xref py py-func docutils literal notranslate"><span class="pre">linecache.getline()</span></code></a> and
<a class="reference internal" href="../library/tracemalloc.html#tracemalloc.get_object_traceback" title="tracemalloc.get_object_traceback"><code class="xref py py-func docutils literal notranslate"><span class="pre">tracemalloc.get_object_traceback()</span></code></a> to be able to log
<a class="reference internal" href="../library/exceptions.html#ResourceWarning" title="ResourceWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ResourceWarning</span></code></a> emitted late during the Python shutdown process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23848">bpo-23848</a>: On Windows, faulthandler.enable() now also installs an
exception handler to dump the traceback of all Python threads on any
Windows exception, not only on UNIX signals (SIGSEGV, SIGFPE, SIGABRT).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26530">bpo-26530</a>: Add C functions <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyTraceMalloc_Track()</span></code> and
<code class="xref c c-func docutils literal notranslate"><span class="pre">_PyTraceMalloc_Untrack()</span></code> to track memory blocks using the
<a class="reference internal" href="../library/tracemalloc.html#module-tracemalloc" title="tracemalloc: Trace memory allocations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">tracemalloc</span></code></a> module. Add <code class="xref c c-func docutils literal notranslate"><span class="pre">_PyTraceMalloc_GetTraceback()</span></code> to
get the traceback of an object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26588">bpo-26588</a>: The _tracemalloc now supports tracing memory allocations of
multiple address spaces (domains).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24266">bpo-24266</a>: Ctrl+C during Readline history search now cancels the search
mode when compiled with Readline 7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26590">bpo-26590</a>: Implement a safe finalizer for the _socket.socket type. It now
releases the GIL to close the socket.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18787">bpo-18787</a>: spwd.getspnam() now raises a PermissionError if the user
doesn’t have privileges.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26560">bpo-26560</a>: Avoid potential ValueError in BaseHandler.start_response.
Initial patch by Peter Inglesby.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26567">bpo-26567</a>: Add a new function <a class="reference internal" href="../c-api/exceptions.html#c.PyErr_ResourceWarning" title="PyErr_ResourceWarning"><code class="xref c c-func docutils literal notranslate"><span class="pre">PyErr_ResourceWarning()</span></code></a> function to
pass the destroyed object. Add a <em>source</em> attribute to
<code class="xref py py-class docutils literal notranslate"><span class="pre">warnings.WarningMessage</span></code>. Add warnings._showwarnmsg() which uses
tracemalloc to get the traceback where source object was allocated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26569">bpo-26569</a>: Fix <a class="reference internal" href="../library/pyclbr.html#pyclbr.readmodule" title="pyclbr.readmodule"><code class="xref py py-func docutils literal notranslate"><span class="pre">pyclbr.readmodule()</span></code></a> and <a class="reference internal" href="../library/pyclbr.html#pyclbr.readmodule_ex" title="pyclbr.readmodule_ex"><code class="xref py py-func docutils literal notranslate"><span class="pre">pyclbr.readmodule_ex()</span></code></a>
to support importing packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26499">bpo-26499</a>: Account for remaining Content-Length in HTTPResponse.readline()
and read1(). Based on patch by Silent Ghost. Also document that
HTTPResponse now supports these methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25320">bpo-25320</a>: Handle sockets in directories unittest discovery is scanning.
Patch from Victor van den Elzen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16181">bpo-16181</a>: cookiejar.http2time() now returns None if year is higher than
datetime.MAXYEAR.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26513">bpo-26513</a>: Fixes platform module detection of Windows Server</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23718">bpo-23718</a>: Fixed parsing time in week 0 before Jan 1. Original patch by
Tamás Bence Gedai.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26323">bpo-26323</a>: Add Mock.assert_called() and Mock.assert_called_once() methods
to unittest.mock. Patch written by Amit Saha.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20589">bpo-20589</a>: Invoking Path.owner() and Path.group() on Windows now raise
NotImplementedError instead of ImportError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26177">bpo-26177</a>: Fixed the keys() method for Canvas and Scrollbar widgets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15068">bpo-15068</a>: Got rid of excessive buffering in fileinput. The bufsize
parameter is now deprecated and ignored.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19475">bpo-19475</a>: Added an optional argument timespec to the datetime isoformat()
method to choose the precision of the time component.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2202">bpo-2202</a>: Fix UnboundLocalError in
AbstractDigestAuthHandler.get_algorithm_impls. Initial patch by Mathieu
Dupuy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26167">bpo-26167</a>: Minimized overhead in copy.copy() and copy.deepcopy().
Optimized copying and deepcopying bytearrays, NotImplemented, slices,
short lists, tuples, dicts, sets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25718">bpo-25718</a>: Fixed pickling and copying the accumulate() iterator with total
is None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26475">bpo-26475</a>: Fixed debugging output for regular expressions with the (?x)
flag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26482">bpo-26482</a>: Allowed pickling recursive dequeues.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26335">bpo-26335</a>: Make mmap.write() return the number of bytes written like other
write methods. Patch by Jakub Stasiak.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26457">bpo-26457</a>: Fixed the subnets() methods in IP network classes for the case
when resulting prefix length is equal to maximal prefix length. Based on
patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26385">bpo-26385</a>: Remove the file if the internal open() call in
NamedTemporaryFile() fails. Patch by Silent Ghost.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26402">bpo-26402</a>: Fix XML-RPC client to retry when the server shuts down a
persistent connection. This was a regression related to the new
http.client.RemoteDisconnected exception in 3.5.0a4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25913">bpo-25913</a>: Leading <code class="docutils literal notranslate"><span class="pre"><~</span></code> is optional now in base64.a85decode() with
adobe=True. Patch by Swati Jaiswal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26186">bpo-26186</a>: Remove an invalid type check in importlib.util.LazyLoader.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26367">bpo-26367</a>: importlib.__import__() raises ImportError like
builtins.__import__() when <code class="docutils literal notranslate"><span class="pre">level</span></code> is specified but without an
accompanying package specified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26309">bpo-26309</a>: In the “socketserver” module, shut down the request (closing
the connected socket) when verify_request() returns false. Patch by Aviv
Palivoda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23430">bpo-23430</a>: Change the socketserver module to only catch exceptions raised
from a request handler that are derived from Exception (instead of
BaseException). Therefore SystemExit and KeyboardInterrupt no longer
trigger the handle_error() method, and will now to stop a single-threaded
server.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25995">bpo-25995</a>: os.walk() no longer uses FDs proportional to the tree depth.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25994">bpo-25994</a>: Added the close() method and the support of the context manager
protocol for the os.scandir() iterator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23992">bpo-23992</a>: multiprocessing: make MapResult not fail-fast upon exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26243">bpo-26243</a>: Support keyword arguments to zlib.compress(). Patch by Aviv
Palivoda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26117">bpo-26117</a>: The os.scandir() iterator now closes file descriptor not only
when the iteration is finished, but when it was failed with error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25949">bpo-25949</a>: __dict__ for an OrderedDict instance is now created only when
needed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25911">bpo-25911</a>: Restored support of bytes paths in os.walk() on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26045">bpo-26045</a>: Add UTF-8 suggestion to error message when posting a
non-Latin-1 string with http.client.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26039">bpo-26039</a>: Added zipfile.ZipInfo.from_file() and zipinfo.ZipInfo.is_dir().
Patch by Thomas Kluyver.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12923">bpo-12923</a>: Reset FancyURLopener’s redirect counter even if there is an
exception. Based on patches by Brian Brazil and Daniel Rocco.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25945">bpo-25945</a>: Fixed a crash when unpickle the functools.partial object with
wrong state. Fixed a leak in failed functools.partial constructor. “args”
and “keywords” attributes of functools.partial have now always types tuple
and dict correspondingly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26202">bpo-26202</a>: copy.deepcopy() now correctly copies range() objects with
non-atomic attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23076">bpo-23076</a>: Path.glob() now raises a ValueError if it’s called with an
invalid pattern. Patch by Thomas Nyberg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19883">bpo-19883</a>: Fixed possible integer overflows in zipimport.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26227">bpo-26227</a>: On Windows, getnameinfo(), gethostbyaddr() and
gethostbyname_ex() functions of the socket module now decode the hostname
from the ANSI code page rather than UTF-8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26099">bpo-26099</a>: The site module now writes an error into stderr if
sitecustomize module can be imported but executing the module raise an
ImportError. Same change for usercustomize.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26147">bpo-26147</a>: xmlrpc now works with strings not encodable with used non-UTF-8
encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25935">bpo-25935</a>: Garbage collector now breaks reference loops with OrderedDict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16620">bpo-16620</a>: Fixed AttributeError in msilib.Directory.glob().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26013">bpo-26013</a>: Added compatibility with broken protocol 2 pickles created in
old Python 3 versions (3.4.3 and lower).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26129">bpo-26129</a>: Deprecated accepting non-integers in grp.getgrgid().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25850">bpo-25850</a>: Use cross-compilation by default for 64-bit Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25822">bpo-25822</a>: Add docstrings to the fields of urllib.parse results. Patch
contributed by Swati Jaiswal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22642">bpo-22642</a>: Convert trace module option parsing mechanism to argparse.
Patch contributed by SilentGhost.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24705">bpo-24705</a>: Fix sysconfig._parse_makefile not expanding ${} vars appearing
before $() vars.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26069">bpo-26069</a>: Remove the deprecated apis in the trace module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22138">bpo-22138</a>: Fix mock.patch behavior when patching descriptors. Restore
original values after patching. Patch contributed by Sean McCully.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25672">bpo-25672</a>: In the ssl module, enable the SSL_MODE_RELEASE_BUFFERS mode
option if it is safe to do so.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26012">bpo-26012</a>: Don’t traverse into symlinks for <code class="docutils literal notranslate"><span class="pre">**</span></code> pattern in
pathlib.Path.[r]glob().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24120">bpo-24120</a>: Ignore PermissionError when traversing a tree with
pathlib.Path.[r]glob(). Patch by Ulrich Petri.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21815">bpo-21815</a>: Accept ] characters in the data portion of imap responses, in
order to handle the flags with square brackets accepted and produced by
servers such as gmail.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25447">bpo-25447</a>: fileinput now uses sys.stdin as-is if it does not have a buffer
attribute (restores backward compatibility).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25971">bpo-25971</a>: Optimized creating Fractions from floats by 2 times and from
Decimals by 3 times.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25802">bpo-25802</a>: Document as deprecated the remaining implementations of
importlib.abc.Loader.load_module().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25928">bpo-25928</a>: Add Decimal.as_integer_ratio().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25447">bpo-25447</a>: Copying the lru_cache() wrapper object now always works,
independently from the type of the wrapped object (by returning the
original object unchanged).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25768">bpo-25768</a>: Have the functions in compileall return booleans instead of
ints and add proper documentation and tests for the return values.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24103">bpo-24103</a>: Fixed possible use after free in ElementTree.XMLPullParser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25860">bpo-25860</a>: os.fwalk() no longer skips remaining directories when error
occurs. Original patch by Samson Lee.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25914">bpo-25914</a>: Fixed and simplified OrderedDict.__sizeof__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25869">bpo-25869</a>: Optimized deepcopying ElementTree; it is now 20 times faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25873">bpo-25873</a>: Optimized iterating ElementTree. Iterating elements
Element.iter() is now 40% faster, iterating text Element.itertext() is now
up to 2.5 times faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25902">bpo-25902</a>: Fixed various refcount issues in ElementTree iteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22227">bpo-22227</a>: The TarFile iterator is reimplemented using generator. This
implementation is simpler that using class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25638">bpo-25638</a>: Optimized ElementTree.iterparse(); it is now 2x faster.
Optimized ElementTree parsing; it is now 10% faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25761">bpo-25761</a>: Improved detecting errors in broken pickle data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25717">bpo-25717</a>: Restore the previous behaviour of tolerating most fstat()
errors when opening files. This was a regression in 3.5a1, and stopped
anonymous temporary files from working in special cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24903">bpo-24903</a>: Fix regression in number of arguments compileall accepts when
‘-d’ is specified. The check on the number of arguments has been dropped
completely as it never worked correctly anyway.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25764">bpo-25764</a>: In the subprocess module, preserve any exception caused by
fork() failure when preexec_fn is used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25771">bpo-25771</a>: Tweak the exception message for importlib.util.resolve_name()
when ‘package’ isn’t specified but necessary.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6478">bpo-6478</a>: _strptime’s regexp cache now is reset after changing timezone
with time.tzset().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14285">bpo-14285</a>: When executing a package with the “python -m package” option,
and package initialization fails, a proper traceback is now reported. The
“runpy” module now lets exceptions from package initialization pass back
to the caller, rather than raising ImportError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19771">bpo-19771</a>: Also in runpy and the “-m” option, omit the irrelevant message
“… is a package and cannot be directly executed” if the package could
not even be initialized (e.g. due to a bad <code class="docutils literal notranslate"><span class="pre">*.pyc</span></code> file).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25177">bpo-25177</a>: Fixed problem with the mean of very small and very large
numbers. As a side effect, statistics.mean and statistics.variance should
be significantly faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25718">bpo-25718</a>: Fixed copying object with state with boolean value is false.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10131">bpo-10131</a>: Fixed deep copying of minidom documents. Based on patch by
Marian Ganisin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=7990">bpo-7990</a>: dir() on ElementTree.Element now lists properties: “tag”,
“text”, “tail” and “attrib”. Original patch by Santoso Wijaya.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25725">bpo-25725</a>: Fixed a reference leak in pickle.loads() when unpickling
invalid data including tuple instructions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25663">bpo-25663</a>: In the Readline completer, avoid listing duplicate global
names, and search the global namespace before searching builtins.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25688">bpo-25688</a>: Fixed file leak in ElementTree.iterparse() raising an error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23914">bpo-23914</a>: Fixed SystemError raised by unpickler on broken pickle data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25691">bpo-25691</a>: Fixed crash on deleting ElementTree.Element attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25624">bpo-25624</a>: ZipFile now always writes a ZIP_STORED header for directory
entries. Patch by Dingyuan Wang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25626">bpo-25626</a>: Change three zlib functions to accept sizes that fit in
Py_ssize_t, but internally cap those sizes to UINT_MAX. This resolves a
regression in 3.5 where GzipFile.read() failed to read chunks larger than
2 or 4 GiB. The change affects the zlib.Decompress.decompress()
max_length parameter, the zlib.decompress() bufsize parameter, and the
zlib.Decompress.flush() length parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25583">bpo-25583</a>: Avoid incorrect errors raised by os.makedirs(exist_ok=True)
when the OS gives priority to errors such as EACCES over EEXIST.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25593">bpo-25593</a>: Change semantics of EventLoop.stop() in asyncio.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6973">bpo-6973</a>: When we know a subprocess.Popen process has died, do not allow
the send_signal(), terminate(), or kill() methods to do anything as they
could potentially signal a different process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23883">bpo-23883</a>: Added missing APIs to __all__ to match the documented APIs for
the following modules: calendar, csv, enum, fileinput, ftplib, logging,
optparse, tarfile, threading and wave. Also added a
test.support.check__all__() helper. Patches by Jacek Kołodziej, Mauro S.
M. Rodrigues and Joel Taddei.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25590">bpo-25590</a>: In the Readline completer, only call getattr() once per
attribute. Also complete names of attributes such as properties and slots
which are listed by dir() but not yet created on an instance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25498">bpo-25498</a>: Fix a crash when garbage-collecting ctypes objects created by
wrapping a memoryview. This was a regression made in 3.5a1. Based on
patch by Eryksun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25584">bpo-25584</a>: Added “escape” to the __all__ list in the glob module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25584">bpo-25584</a>: Fixed recursive glob() with patterns starting with <code class="docutils literal notranslate"><span class="pre">**</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25446">bpo-25446</a>: Fix regression in smtplib’s AUTH LOGIN support.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18010">bpo-18010</a>: Fix the pydoc web server’s module search function to handle
exceptions from importing packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25554">bpo-25554</a>: Got rid of circular references in regular expression parsing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18973">bpo-18973</a>: Command-line interface of the calendar module now uses argparse
instead of optparse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25510">bpo-25510</a>: fileinput.FileInput.readline() now returns b’’ instead of ‘’ at
the end if the FileInput was opened with binary mode. Patch by Ryosuke
Ito.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25503">bpo-25503</a>: Fixed inspect.getdoc() for inherited docstrings of properties.
Original patch by John Mark Vandenberg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25515">bpo-25515</a>: Always use os.urandom as a source of randomness in uuid.uuid4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21827">bpo-21827</a>: Fixed textwrap.dedent() for the case when largest common
whitespace is a substring of smallest leading whitespace. Based on patch
by Robert Li.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25447">bpo-25447</a>: The lru_cache() wrapper objects now can be copied and pickled
(by returning the original object unchanged).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25390">bpo-25390</a>: typing: Don’t crash on Union[str, Pattern].</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25441">bpo-25441</a>: asyncio: Raise error from drain() when socket is closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25410">bpo-25410</a>: Cleaned up and fixed minor bugs in C implementation of
OrderedDict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25411">bpo-25411</a>: Improved Unicode support in SMTPHandler through better use of
the email package. Thanks to user simon04 for the patch.</p></li>
<li><p>Move the imp module from a PendingDeprecationWarning to
DeprecationWarning.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25407">bpo-25407</a>: Remove mentions of the formatter module being removed in Python
3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25406">bpo-25406</a>: Fixed a bug in C implementation of OrderedDict.move_to_end()
that caused segmentation fault or hang in iterating after moving several
items to the start of ordered dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25382">bpo-25382</a>: pickletools.dis() now outputs implicit memo index for the
MEMOIZE opcode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25357">bpo-25357</a>: Add an optional newline parameter to binascii.b2a_base64().
base64.b64encode() uses it to avoid a memory copy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24164">bpo-24164</a>: Objects that need calling <code class="docutils literal notranslate"><span class="pre">__new__</span></code> with keyword arguments,
can now be pickled using pickle protocols older than protocol version 4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25364">bpo-25364</a>: zipfile now works in threads disabled builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25328">bpo-25328</a>: smtpd’s SMTPChannel now correctly raises a ValueError if both
decode_data and enable_SMTPUTF8 are set to true.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16099">bpo-16099</a>: RobotFileParser now supports Crawl-delay and Request-rate
extensions. Patch by Nikolay Bogoychev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25316">bpo-25316</a>: distutils raises OSError instead of DistutilsPlatformError when
MSVC is not installed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25380">bpo-25380</a>: Fixed protocol for the STACK_GLOBAL opcode in
pickletools.opcodes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23972">bpo-23972</a>: Updates asyncio datagram create method allowing reuseport and
reuseaddr socket options to be set prior to binding the socket. Mirroring
the existing asyncio create_server method the reuseaddr option for
datagram sockets defaults to True if the O/S is ‘posix’ (except if the
platform is Cygwin). Patch by Chris Laws.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25304">bpo-25304</a>: Add asyncio.run_coroutine_threadsafe(). This lets you submit a
coroutine to a loop from another thread, returning a
concurrent.futures.Future. By Vincent Michel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25232">bpo-25232</a>: Fix CGIRequestHandler to split the query from the URL at the
first question mark (?) rather than the last. Patch from Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24657">bpo-24657</a>: Prevent CGIRequestHandler from collapsing slashes in the query
part of the URL as if it were a path. Patch from Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25287">bpo-25287</a>: Don’t add crypt.METHOD_CRYPT to crypt.methods if it’s not
supported. Check if it is supported, it may not be supported on OpenBSD
for example.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23600">bpo-23600</a>: Default implementation of tzinfo.fromutc() was returning wrong
results in some cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25203">bpo-25203</a>: Failed readline.set_completer_delims() no longer left the
module in inconsistent state.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25011">bpo-25011</a>: rlcompleter now omits private and special attribute names
unless the prefix starts with underscores.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25209">bpo-25209</a>: rlcompleter now can add a space or a colon after completed
keyword.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22241">bpo-22241</a>: timezone.utc name is now plain ‘UTC’, not ‘UTC-00:00’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23517">bpo-23517</a>: fromtimestamp() and utcfromtimestamp() methods of
datetime.datetime now round microseconds to nearest with ties going to
nearest even integer (ROUND_HALF_EVEN), as round(float), instead of
rounding towards -Infinity (ROUND_FLOOR).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23552">bpo-23552</a>: Timeit now warns when there is substantial (4x) variance
between best and worst times. Patch from Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24633">bpo-24633</a>: site-packages/README -> README.txt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24879">bpo-24879</a>: help() and pydoc can now list named tuple fields in the order
they were defined rather than alphabetically. The ordering is determined
by the _fields attribute if present.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24874">bpo-24874</a>: Improve speed of itertools.cycle() and make its pickle more
compact.</p></li>
<li><p>Fix crash in itertools.cycle.__setstate__() when the first argument wasn’t
a list.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20059">bpo-20059</a>: urllib.parse raises ValueError on all invalid ports. Patch by
Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24360">bpo-24360</a>: Improve __repr__ of argparse.Namespace() for invalid
identifiers. Patch by Matthias Bussonnier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23426">bpo-23426</a>: run_setup was broken in distutils. Patch from Alexander
Belopolsky.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13938">bpo-13938</a>: 2to3 converts StringTypes to a tuple. Patch from Mark Hammond.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2091">bpo-2091</a>: open() accepted a ‘U’ mode string containing ‘+’, but ‘U’ can
only be used with ‘r’. Patch from Jeff Balogh and John O’Connor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8585">bpo-8585</a>: improved tests for zipimporter2. Patch from Mark Lawrence.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18622">bpo-18622</a>: unittest.mock.mock_open().reset_mock would recurse infinitely.
Patch from Nicola Palumbo and Laurent De Buyst.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24426">bpo-24426</a>: Fast searching optimization in regular expressions now works
for patterns that starts with capturing groups. Fast searching
optimization now can’t be disabled at compile time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23661">bpo-23661</a>: unittest.mock side_effects can now be exceptions again. This
was a regression vs Python 3.4. Patch from Ignacio Rossi</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13248">bpo-13248</a>: Remove deprecated inspect.getmoduleinfo function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25578">bpo-25578</a>: Fix (another) memory leak in SSLSocket.getpeercer().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25530">bpo-25530</a>: Disable the vulnerable SSLv3 protocol by default when creating
ssl.SSLContext.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25569">bpo-25569</a>: Fix memory leak in SSLSocket.getpeercert().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25471">bpo-25471</a>: Sockets returned from accept() shouldn’t appear to be
nonblocking.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25319">bpo-25319</a>: When threading.Event is reinitialized, the underlying condition
should use a regular lock rather than a recursive lock.</p></li>
<li><p>Skip getaddrinfo if host is already resolved. Patch by A. Jesse Jiryu
Davis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26050">bpo-26050</a>: Add asyncio.StreamReader.readuntil() method. Patch by Марк
Коренберг.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25924">bpo-25924</a>: Avoid unnecessary serialization of getaddrinfo(3) calls on OS X
versions 10.5 or higher. Original patch by A. Jesse Jiryu Davis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26406">bpo-26406</a>: Avoid unnecessary serialization of getaddrinfo(3) calls on
current versions of OpenBSD and NetBSD. Patch by A. Jesse Jiryu Davis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26848">bpo-26848</a>: Fix asyncio/subprocess.communicate() to handle empty input.
Patch by Jack O’Connor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27040">bpo-27040</a>: Add loop.get_exception_handler method</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27041">bpo-27041</a>: asyncio: Add loop.create_future method</p></li>
</ul>
</section>
<section id="id737">
<h3>IDLE<a class="headerlink" href="#id737" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20640">bpo-20640</a>: Add tests for idlelib.configHelpSourceEdit. Patch by Saimadhav
Heblikar.</p></li>
<li><p>In the ‘IDLE-console differences’ section of the IDLE doc, clarify how
running with IDLE affects sys.modules and the standard streams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25507">bpo-25507</a>: fix incorrect change in IOBinding that prevented printing.
Augment IOBinding htest to include all major IOBinding functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25905">bpo-25905</a>: Revert unwanted conversion of ‘ to ’ RIGHT SINGLE QUOTATION
MARK in README.txt and open this and NEWS.txt with ‘ascii’. Re-encode
CREDITS.txt to utf-8 and open it with ‘utf-8’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15348">bpo-15348</a>: Stop the debugger engine (normally in a user process) before
closing the debugger window (running in the IDLE process). This prevents
the RuntimeErrors that were being caught and ignored.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24455">bpo-24455</a>: Prevent IDLE from hanging when a) closing the shell while the
debugger is active (15347); b) closing the debugger with the [X] button
(15348); and c) activating the debugger when already active (24455). The
patch by Mark Roseman does this by making two changes. 1. Suspend and
resume the gui.interaction method with the tcl vwait mechanism intended
for this purpose (instead of root.mainloop & .quit). 2. In gui.run, allow
any existing interaction to terminate first.</p></li>
<li><p>Change ‘The program’ to ‘Your program’ in an IDLE ‘kill program?’ message
to make it clearer that the program referred to is the currently running
user program, not IDLE itself.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24750">bpo-24750</a>: Improve the appearance of the IDLE editor window status bar.
Patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25313">bpo-25313</a>: Change the handling of new built-in text color themes to better
address the compatibility problem introduced by the addition of IDLE Dark.
Consistently use the revised idleConf.CurrentTheme everywhere in idlelib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24782">bpo-24782</a>: Extension configuration is now a tab in the IDLE Preferences
dialog rather than a separate dialog. The former tabs are now a sorted
list. Patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22726">bpo-22726</a>: Re-activate the config dialog help button with some content
about the other buttons and the new IDLE Dark theme.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24820">bpo-24820</a>: IDLE now has an ‘IDLE Dark’ built-in text color theme. It is
more or less IDLE Classic inverted, with a cobalt blue background.
Strings, comments, keywords, … are still green, red, orange, … . To
use it with IDLEs released before November 2015, hit the ‘Save as New
Custom Theme’ button and enter a new name, such as ‘Custom Dark’. The
custom theme will work with any IDLE release, and can be modified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25224">bpo-25224</a>: README.txt is now an idlelib index for IDLE developers and
curious users. The previous user content is now in the IDLE doc chapter.
‘IDLE’ now means ‘Integrated Development and Learning Environment’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24820">bpo-24820</a>: Users can now set breakpoint colors in Settings -> Custom
Highlighting. Original patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24972">bpo-24972</a>: Inactive selection background now matches active selection
background, as configured by users, on all systems. Found items are now
always highlighted on Windows. Initial patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24570">bpo-24570</a>: Idle: make calltip and completion boxes appear on Macs affected
by a tk regression. Initial patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24988">bpo-24988</a>: Idle ScrolledList context menus (used in debugger) now work on
Mac Aqua. Patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24801">bpo-24801</a>: Make right-click for context menu work on Mac Aqua. Patch by
Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25173">bpo-25173</a>: Associate tkinter messageboxes with a specific widget. For Mac
OSX, make them a ‘sheet’. Patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25198">bpo-25198</a>: Enhance the initial html viewer now used for Idle Help.
Properly indent fixed-pitch text (patch by Mark Roseman). Give code
snippet a very Sphinx-like light blueish-gray background. Re-use initial
width and height set by users for shell and editor. When the Table of
Contents (TOC) menu is used, put the section header at the top of the
screen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25225">bpo-25225</a>: Condense and rewrite Idle doc section on text colors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21995">bpo-21995</a>: Explain some differences between IDLE and console Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22820">bpo-22820</a>: Explain need for <em>print</em> when running file from Idle editor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25224">bpo-25224</a>: Doc: augment Idle feature list and no-subprocess section.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25219">bpo-25219</a>: Update doc for Idle command line options. Some were missing and
notes were not correct.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24861">bpo-24861</a>: Most of idlelib is private and subject to change. Use
idleib.idle.* to start Idle. See idlelib.__init__.__doc__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25199">bpo-25199</a>: Idle: add synchronization comments for future maintainers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16893">bpo-16893</a>: Replace help.txt with help.html for Idle doc display. The new
idlelib/help.html is rstripped Doc/build/html/library/idle.html. It looks
better than help.txt and will better document Idle as released. The
tkinter html viewer that works for this file was written by Rose Roseman.
The now unused EditorWindow.HelpDialog class and helt.txt file are
deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24199">bpo-24199</a>: Deprecate unused idlelib.idlever with possible removal in 3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24790">bpo-24790</a>: Remove extraneous code (which also create 2 & 3 conflicts).</p></li>
</ul>
</section>
<section id="id738">
<h3>Documentation<a class="headerlink" href="#id738" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26736">bpo-26736</a>: Used HTTPS for external links in the documentation if possible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6953">bpo-6953</a>: Rework the Readline module documentation to group related
functions together, and add more details such as what underlying Readline
functions and variables are accessed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23606">bpo-23606</a>: Adds note to ctypes documentation regarding cdll.msvcrt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24952">bpo-24952</a>: Clarify the default size argument of stack_size() in the
“threading” and “_thread” modules. Patch from Mattip.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26014">bpo-26014</a>: Update 3.x packaging documentation: * “See also” links to the
new docs are now provided in the legacy pages * links to setuptools
documentation have been updated</p></li>
</ul>
</section>
<section id="id739">
<h3>Tests<a class="headerlink" href="#id739" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21916">bpo-21916</a>: Added tests for the turtle module. Patch by ingrid, Gregory
Loyse and Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26295">bpo-26295</a>: When using “python3 -m test –testdir=TESTDIR”, regrtest
doesn’t add “test.” prefix to test module names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26523">bpo-26523</a>: The multiprocessing thread pool (multiprocessing.dummy.Pool)
was untested.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26015">bpo-26015</a>: Added new tests for pickling iterators of mutable sequences.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26325">bpo-26325</a>: Added test.support.check_no_resource_warning() to check that no
ResourceWarning is emitted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25940">bpo-25940</a>: Changed test_ssl to use its internal local server more. This
avoids relying on svn.python.org, which recently changed root certificate.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25616">bpo-25616</a>: Tests for OrderedDict are extracted from test_collections into
separate file test_ordered_dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25449">bpo-25449</a>: Added tests for OrderedDict subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25188">bpo-25188</a>: Add -P/–pgo to test.regrtest to suppress error output when
running the test suite for the purposes of a PGO build. Initial patch by
Alecsandru Patrascu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22806">bpo-22806</a>: Add <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">test</span> <span class="pre">--list-tests</span></code> command to list tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18174">bpo-18174</a>: <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">test</span> <span class="pre">--huntrleaks</span> <span class="pre">...</span></code> now also checks for leak of
file descriptors. Patch written by Richard Oudkerk.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25260">bpo-25260</a>: Fix <code class="docutils literal notranslate"><span class="pre">python</span> <span class="pre">-m</span> <span class="pre">test</span> <span class="pre">--coverage</span></code> on Windows. Remove the list
of ignored directories.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PCbuild\rt.bat</span></code> now accepts an unlimited number of arguments to pass
along to regrtest.py. Previously there was a limit of 9.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26583">bpo-26583</a>: Skip test_timestamp_overflow in test_import if bytecode files
cannot be written.</p></li>
</ul>
</section>
<section id="id740">
<h3>Build<a class="headerlink" href="#id740" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21277">bpo-21277</a>: Don’t try to link _ctypes with a ffi_convenience library.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26884">bpo-26884</a>: Fix linking extension modules for cross builds. Patch by Xavier
de Gaye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26932">bpo-26932</a>: Fixed support of RTLD_* constants defined as enum values, not
via macros (in particular on Android). Patch by Chi Hsuan Yen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22359">bpo-22359</a>: Disable the rules for running _freeze_importlib and pgen when
cross-compiling. The output of these programs is normally saved with the
source code anyway, and is still regenerated when doing a native build.
Patch by Xavier de Gaye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21668">bpo-21668</a>: Link audioop, _datetime, _ctypes_test modules to libm, except
on Mac OS X. Patch written by Chi Hsuan Yen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25702">bpo-25702</a>: A –with-lto configure option has been added that will enable
link time optimizations at build time during a make profile-opt. Some
compilers and toolchains are known to not produce stable code when using
LTO, be sure to test things thoroughly before relying on it. It can
provide a few % speed up over profile-opt alone.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26624">bpo-26624</a>: Adds validation of ucrtbase[d].dll version with warning for old
versions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17603">bpo-17603</a>: Avoid error about nonexistent fileblocks.o file by using a
lower-level check for st_blocks in struct stat.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26079">bpo-26079</a>: Fixing the build output folder for tix-8.4.3.6. Patch by Bjoern
Thiel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26465">bpo-26465</a>: Update Windows builds to use OpenSSL 1.0.2g.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25348">bpo-25348</a>: Added <code class="docutils literal notranslate"><span class="pre">--pgo</span></code> and <code class="docutils literal notranslate"><span class="pre">--pgo-job</span></code> arguments to
<code class="docutils literal notranslate"><span class="pre">PCbuild\build.bat</span></code> for building with Profile-Guided Optimization. The
old <code class="docutils literal notranslate"><span class="pre">PCbuild\build_pgo.bat</span></code> script is removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25827">bpo-25827</a>: Add support for building with ICC to <code class="docutils literal notranslate"><span class="pre">configure</span></code>, including a
new <code class="docutils literal notranslate"><span class="pre">--with-icc</span></code> flag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25696">bpo-25696</a>: Fix installation of Python on UNIX with make -j9.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24986">bpo-24986</a>: It is now possible to build Python on Windows without errors
when external libraries are not available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24421">bpo-24421</a>: Compile Modules/_math.c once, before building extensions.
Previously it could fail to compile properly if the math and cmath builds
were concurrent.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26465">bpo-26465</a>: Update OS X 10.5+ 32-bit-only installer to build and link with
OpenSSL 1.0.2g.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26268">bpo-26268</a>: Update Windows builds to use OpenSSL 1.0.2f.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25136">bpo-25136</a>: Support Apple Xcode 7’s new textual SDK stub libraries.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24324">bpo-24324</a>: Do not enable unreachable code warnings when using gcc as the
option does not work correctly in older versions of gcc and has been
silently removed as of gcc-4.5.</p></li>
</ul>
</section>
<section id="id741">
<h3>Windows<a class="headerlink" href="#id741" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27053">bpo-27053</a>: Updates make_zip.py to correctly generate library ZIP file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26268">bpo-26268</a>: Update the prepare_ssl.py script to handle OpenSSL releases
that don’t include the contents of the include directory (that is, 1.0.2e
and later).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26071">bpo-26071</a>: bdist_wininst created binaries fail to start and find 32bit
Python</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26073">bpo-26073</a>: Update the list of magic numbers in launcher</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26065">bpo-26065</a>: Excludes venv from library when generating embeddable distro.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25022">bpo-25022</a>: Removed very outdated PC/example_nt/ directory.</p></li>
</ul>
</section>
<section id="id742">
<h3>Tools/Demos<a class="headerlink" href="#id742" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26799">bpo-26799</a>: Fix python-gdb.py: don’t get C types once when the Python code
is loaded, but get C types on demand. The C types can change if
python-gdb.py is loaded before the Python executable. Patch written by
Thomas Ilsche.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26271">bpo-26271</a>: Fix the Freeze tool to properly use flags passed through
configure. Patch by Daniel Shaulov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26489">bpo-26489</a>: Add dictionary unpacking support to Tools/parser/unparse.py.
Patch by Guo Ci Teo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26316">bpo-26316</a>: Fix variable name typo in Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25440">bpo-25440</a>: Fix output of python-config –extension-suffix.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25154">bpo-25154</a>: The pyvenv script has been deprecated in favour of <code class="docutils literal notranslate"><span class="pre">python3</span> <span class="pre">-m</span>
<span class="pre">venv</span></code>.</p></li>
</ul>
</section>
<section id="id743">
<h3>C API<a class="headerlink" href="#id743" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26312">bpo-26312</a>: SystemError is now raised in all programming bugs with using
PyArg_ParseTupleAndKeywords(). RuntimeError did raised before in some
programming bugs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26198">bpo-26198</a>: ValueError is now raised instead of TypeError on buffer
overflow in parsing “es#” and “et#” format units. SystemError is now
raised instead of TypeError on programmatical error in parsing format
string.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-5-final">
<h2>Python 3.5.5 final<a class="headerlink" href="#python-3-5-5-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-02-04</em></p>
<p>There were no new changes in version 3.5.5.</p>
</section>
<section id="python-3-5-5-release-candidate-1">
<h2>Python 3.5.5 release candidate 1<a class="headerlink" href="#python-3-5-5-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2018-01-23</em></p>
<section id="id744">
<h3>Security<a class="headerlink" href="#id744" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32551">bpo-32551</a>: The <code class="docutils literal notranslate"><span class="pre">sys.path[0]</span></code> initialization change for <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29139">bpo-29139</a> caused
a regression by revealing an inconsistency in how sys.path is initialized
when executing <code class="docutils literal notranslate"><span class="pre">__main__</span></code> from a zipfile, directory, or other import
location. This is considered a potential security issue, as it may lead to
privileged processes unexpectedly loading code from user controlled
directories in situations where that was not previously the case. The
interpreter now consistently avoids ever adding the import location’s
parent directory to <code class="docutils literal notranslate"><span class="pre">sys.path</span></code>, and ensures no other <code class="docutils literal notranslate"><span class="pre">sys.path</span></code>
entries are inadvertently modified when inserting the import location
named on the command line. (Originally reported as <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29723">bpo-29723</a> against
Python 3.6rc1, but it was missed at the time that the then upcoming Python
3.5.4 release would also be affected)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30657">bpo-30657</a>: Fixed possible integer overflow in PyBytes_DecodeEscape,
<span class="target" id="index-457"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2017-1000158"><strong>CVE 2017-1000158</strong></a>. Original patch by Jay Bosamiya; rebased to Python 3
by Miro Hrončok.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30947">bpo-30947</a>: Upgrade libexpat embedded copy from version 2.2.1 to 2.2.3 to
get security fixes.</p></li>
</ul>
</section>
<section id="id745">
<h3>Core and Builtins<a class="headerlink" href="#id745" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31095">bpo-31095</a>: Fix potential crash during GC caused by <code class="docutils literal notranslate"><span class="pre">tp_dealloc</span></code> which
doesn’t call <code class="docutils literal notranslate"><span class="pre">PyObject_GC_UnTrack()</span></code>.</p></li>
</ul>
</section>
<section id="id746">
<h3>Library<a class="headerlink" href="#id746" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=32072">bpo-32072</a>: Fixed issues with binary plists: Fixed saving bytearrays.
Identical objects will be saved only once. Equal references will be load
as identical objects. Added support for saving and loading recursive data
structures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=31170">bpo-31170</a>: expat: Update libexpat from 2.2.3 to 2.2.4. Fix copying of
partial characters for UTF-8 input (libexpat bug 115):
<a class="reference external" href="https://github.com/libexpat/libexpat/issues/115">https://github.com/libexpat/libexpat/issues/115</a></p></li>
</ul>
</section>
</section>
<section id="python-3-5-4-final">
<h2>Python 3.5.4 final<a class="headerlink" href="#python-3-5-4-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-08-07</em></p>
<section id="id747">
<h3>Library<a class="headerlink" href="#id747" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30119">bpo-30119</a>: ftplib.FTP.putline() now throws ValueError on commands that
contains CR or LF. Patch by Donghee Na.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-4-release-candidate-1">
<h2>Python 3.5.4 release candidate 1<a class="headerlink" href="#python-3-5-4-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-07-23</em></p>
<section id="id748">
<h3>Security<a class="headerlink" href="#id748" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30730">bpo-30730</a>: Prevent environment variables injection in subprocess on
Windows. Prevent passing other environment variables and command
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30694">bpo-30694</a>: Upgrade expat copy from 2.2.0 to 2.2.1 to get fixes of multiple
security vulnerabilities including: <span class="target" id="index-458"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2017-9233"><strong>CVE 2017-9233</strong></a> (External entity
infinite loop DoS), <span class="target" id="index-459"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-9063"><strong>CVE 2016-9063</strong></a> (Integer overflow, re-fix),
<span class="target" id="index-460"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-0718"><strong>CVE 2016-0718</strong></a> (Fix regression bugs from 2.2.0’s fix to
<span class="target" id="index-461"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-0718"><strong>CVE 2016-0718</strong></a>) and <span class="target" id="index-462"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2012-0876"><strong>CVE 2012-0876</strong></a> (Counter hash flooding with
SipHash). Note: the <span class="target" id="index-463"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-5300"><strong>CVE 2016-5300</strong></a> (Use os-specific entropy sources like
getrandom) doesn’t impact Python, since Python already gets entropy from
the OS to set the expat secret using <code class="docutils literal notranslate"><span class="pre">XML_SetHashSalt()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30500">bpo-30500</a>: Fix urllib.parse.splithost() to correctly parse fragments. For
example, <code class="docutils literal notranslate"><span class="pre">splithost('//127.0.0.1#@evil.com/')</span></code> now correctly returns the
<code class="docutils literal notranslate"><span class="pre">127.0.0.1</span></code> host, instead of treating <code class="docutils literal notranslate"><span class="pre">@evil.com</span></code> as the host in an
authentication (<code class="docutils literal notranslate"><span class="pre">login@host</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29591">bpo-29591</a>: Update expat copy from 2.1.1 to 2.2.0 to get fixes of
<span class="target" id="index-464"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-0718"><strong>CVE 2016-0718</strong></a> and <span class="target" id="index-465"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-4472"><strong>CVE 2016-4472</strong></a>. See
<a class="reference external" href="https://sourceforge.net/p/expat/bugs/537/">https://sourceforge.net/p/expat/bugs/537/</a> for more information.</p></li>
</ul>
</section>
<section id="id749">
<h3>Core and Builtins<a class="headerlink" href="#id749" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30876">bpo-30876</a>: Relative import from unloaded package now reimports the package
instead of failing with SystemError. Relative import from non-package now
fails with ImportError rather than SystemError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30765">bpo-30765</a>: Avoid blocking in pthread_mutex_lock() when
PyThread_acquire_lock() is asked not to block.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27945">bpo-27945</a>: Fixed various segfaults with dict when input collections are
mutated during searching, inserting or comparing. Based on patches by
Duane Griffin and Tim Mitchell.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25794">bpo-25794</a>: Fixed type.__setattr__() and type.__delattr__() for
non-interned attribute names. Based on patch by Eryk Sun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29935">bpo-29935</a>: Fixed error messages in the index() method of tuple, list and
deque when pass indices of wrong type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28876">bpo-28876</a>: <code class="docutils literal notranslate"><span class="pre">bool(range)</span></code> works even if <code class="docutils literal notranslate"><span class="pre">len(range)</span></code> raises
<a class="reference internal" href="../library/exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29600">bpo-29600</a>: Fix wrapping coroutine return values in StopIteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29537">bpo-29537</a>: Restore runtime compatibility with bytecode files generated by
CPython 3.5.0 to 3.5.2, and adjust the eval loop to avoid the problems
that could be caused by the malformed variant of the
BUILD_MAP_UNPACK_WITH_CALL opcode that they may contain. Patch by Petr
Viktorin, Serhiy Storchaka, and Nick Coghlan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28598">bpo-28598</a>: Support __rmod__ for subclasses of str being called before
str.__mod__. Patch by Martijn Pieters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29602">bpo-29602</a>: Fix incorrect handling of signed zeros in complex constructor
for complex subclasses and for inputs having a __complex__ method. Patch
by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29347">bpo-29347</a>: Fixed possibly dereferencing undefined pointers when creating
weakref objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29438">bpo-29438</a>: Fixed use-after-free problem in key sharing dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29319">bpo-29319</a>: Prevent RunMainFromImporter overwriting sys.path[0].</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29337">bpo-29337</a>: Fixed possible BytesWarning when compare the code objects.
Warnings could be emitted at compile time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29478">bpo-29478</a>: If max_line_length=None is specified while using the Compat32
policy, it is no longer ignored. Patch by Mircea Cosbuc.</p></li>
</ul>
</section>
<section id="id750">
<h3>Library<a class="headerlink" href="#id750" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29403">bpo-29403</a>: Fix <code class="docutils literal notranslate"><span class="pre">unittest.mock</span></code>’s autospec to not fail on method-bound
builtin functions. Patch by Aaron Gallagher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30961">bpo-30961</a>: Fix decrementing a borrowed reference in tracemalloc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30886">bpo-30886</a>: Fix multiprocessing.Queue.join_thread(): it now waits until the
thread completes, even if the thread was started by the same process which
created the queue.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29854">bpo-29854</a>: Fix segfault in readline when using readline’s history-size
option. Patch by Nir Soffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30807">bpo-30807</a>: signal.setitimer() may disable the timer when passed a tiny
value. Tiny values (such as 1e-6) are valid non-zero values for
setitimer(), which is specified as taking microsecond-resolution
intervals. However, on some platform, our conversion routine could convert
1e-6 into a zero interval, therefore disabling the timer instead of
(re-)scheduling it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30441">bpo-30441</a>: Fix bug when modifying os.environ while iterating over it</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30532">bpo-30532</a>: Fix email header value parser dropping folding white space in
certain cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29169">bpo-29169</a>: Update zlib to 1.2.11.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30879">bpo-30879</a>: os.listdir() and os.scandir() now emit bytes names when called
with bytes-like argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30746">bpo-30746</a>: Prohibited the ‘=’ character in environment variable names in
<code class="docutils literal notranslate"><span class="pre">os.putenv()</span></code> and <code class="docutils literal notranslate"><span class="pre">os.spawn*()</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29755">bpo-29755</a>: Fixed the lgettext() family of functions in the gettext module.
They now always return bytes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30645">bpo-30645</a>: Fix path calculation in imp.load_package(), fixing it for cases
when a package is only shipped with bytecodes. Patch by Alexandru
Ardelean.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23890">bpo-23890</a>: unittest.TestCase.assertRaises() now manually breaks a
reference cycle to not keep objects alive longer than expected.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30149">bpo-30149</a>: inspect.signature() now supports callables with
variable-argument parameters wrapped with partialmethod. Patch by Donghee
Na.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29931">bpo-29931</a>: Fixed comparison check for ipaddress.ip_interface objects.
Patch by Sanjay Sundaresan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24484">bpo-24484</a>: Avoid race condition in multiprocessing cleanup.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28994">bpo-28994</a>: The traceback no longer displayed for SystemExit raised in a
callback registered by atexit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30508">bpo-30508</a>: Don’t log exceptions if Task/Future “cancel()” method was
called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Updates to typing module: Add generic AsyncContextManager, add
support for ContextManager on all versions. Original PRs by Jelle Zijlstra
and Ivan Levkivskyi</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29870">bpo-29870</a>: Fix ssl sockets leaks when connection is aborted in asyncio/ssl
implementation. Patch by Michaël Sghaïer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29743">bpo-29743</a>: Closing transport during handshake process leaks open socket.
Patch by Nikolay Kim</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27585">bpo-27585</a>: Fix waiter cancellation in asyncio.Lock. Patch by Mathieu
Sornay.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30418">bpo-30418</a>: On Windows, subprocess.Popen.communicate() now also ignore
EINVAL on stdin.write() if the child process is still running but closed
the pipe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30378">bpo-30378</a>: Fix the problem that logging.handlers.SysLogHandler cannot
handle IPv6 addresses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29960">bpo-29960</a>: Preserve generator state when _random.Random.setstate() raises
an exception. Patch by Bryan Olson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30414">bpo-30414</a>: multiprocessing.Queue._feed background running thread do not
break from main loop on exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30003">bpo-30003</a>: Fix handling escape characters in HZ codec. Based on patch by
Ma Lin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30301">bpo-30301</a>: Fix AttributeError when using SimpleQueue.empty() under <em>spawn</em>
and <em>forkserver</em> start methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30329">bpo-30329</a>: imaplib and poplib now catch the Windows socket WSAEINVAL error
(code 10022) on shutdown(SHUT_RDWR): An invalid operation was attempted.
This error occurs sometimes on SSL connections.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30375">bpo-30375</a>: Warnings emitted when compile a regular expression now always
point to the line in the user code. Previously they could point into
inners of the re module if emitted from inside of groups or conditionals.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30048">bpo-30048</a>: Fixed <code class="docutils literal notranslate"><span class="pre">Task.cancel()</span></code> can be ignored when the task is running
coroutine and the coroutine returned without any more <code class="docutils literal notranslate"><span class="pre">await</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29990">bpo-29990</a>: Fix range checking in GB18030 decoder. Original patch by Ma
Lin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26293">bpo-26293</a>: Change resulted because of zipfile breakage. (See also:
<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29094">bpo-29094</a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30243">bpo-30243</a>: Removed the __init__ methods of _json’s scanner and encoder.
Misusing them could cause memory leaks or crashes. Now scanner and
encoder objects are completely initialized in the __new__ methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30185">bpo-30185</a>: Avoid KeyboardInterrupt tracebacks in forkserver helper process
when Ctrl-C is received.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Various updates to typing module: add typing.NoReturn type, use
WrapperDescriptorType, minor bug-fixes. Original PRs by Jim
Fasarakis-Hilliard and Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30205">bpo-30205</a>: Fix getsockname() for unbound AF_UNIX sockets on Linux.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30070">bpo-30070</a>: Fixed leaks and crashes in errors handling in the parser
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30061">bpo-30061</a>: Fixed crashes in IOBase methods __next__() and readlines() when
readline() or __next__() respectively return non-sizeable object. Fixed
possible other errors caused by not checking results of PyObject_Size(),
PySequence_Size(), or PyMapping_Size().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30068">bpo-30068</a>: _io._IOBase.readlines will check if it’s closed first when hint
is present.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29694">bpo-29694</a>: Fixed race condition in pathlib mkdir with flags parents=True.
Patch by Armin Rigo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29692">bpo-29692</a>: Fixed arbitrary unchaining of RuntimeError exceptions in
contextlib.contextmanager. Patch by Siddharth Velankar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29998">bpo-29998</a>: Pickling and copying ImportError now preserves name and path
attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29942">bpo-29942</a>: Fix a crash in itertools.chain.from_iterable when encountering
long runs of empty iterables.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27863">bpo-27863</a>: Fixed multiple crashes in ElementTree caused by race conditions
and wrong types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28699">bpo-28699</a>: Fixed a bug in pools in multiprocessing.pool that raising an
exception at the very first of an iterable may swallow the exception or
make the program hang. Patch by Davin Potts and Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25803">bpo-25803</a>: Avoid incorrect errors raised by Path.mkdir(exist_ok=True) when
the OS gives priority to errors such as EACCES over EEXIST.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29861">bpo-29861</a>: Release references to tasks, their arguments and their results
as soon as they are finished in multiprocessing.Pool.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29884">bpo-29884</a>: faulthandler: Restore the old sigaltstack during teardown.
Patch by Christophe Zeitouny.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25455">bpo-25455</a>: Fixed crashes in repr of recursive buffered file-like objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29800">bpo-29800</a>: Fix crashes in partial.__repr__ if the keys of partial.keywords
are not strings. Patch by Michael Seifert.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29742">bpo-29742</a>: get_extra_info() raises exception if get called on closed ssl
transport. Patch by Nikolay Kim.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8256">bpo-8256</a>: Fixed possible failing or crashing input() if attributes
“encoding” or “errors” of sys.stdin or sys.stdout are not set or are not
strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28298">bpo-28298</a>: Fix a bug that prevented array ‘Q’, ‘L’ and ‘I’ from accepting
big intables (objects that have __int__) as elements. Patch by Oren
Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29615">bpo-29615</a>: SimpleXMLRPCDispatcher no longer chains KeyError (or any other
exception) to exception(s) raised in the dispatched methods. Patch by Petr
Motejlek.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29704">bpo-29704</a>: asyncio.subprocess.SubprocessStreamProtocol no longer closes
before all pipes are closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29703">bpo-29703</a>: Fix asyncio to support instantiation of new event loops in
child processes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29376">bpo-29376</a>: Fix assertion error in threading._DummyThread.is_alive().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29110">bpo-29110</a>: Fix file object leak in aifc.open() when file is given as a
filesystem path and is not in valid AIFF format. Patch by Anthony Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28961">bpo-28961</a>: Fix unittest.mock._Call helper: don’t ignore the name parameter
anymore. Patch written by Jiajun Huang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29532">bpo-29532</a>: Altering a kwarg dictionary passed to functools.partial() no
longer affects a partial object after creation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28556">bpo-28556</a>: Various updates to typing module: typing.Counter,
typing.ChainMap, improved ABC caching, etc. Original PRs by Jelle
Zijlstra, Ivan Levkivskyi, Manuel Krebber, and Łukasz Langa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29100">bpo-29100</a>: Fix datetime.fromtimestamp() regression introduced in Python
3.6.0: check minimum and maximum years.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29519">bpo-29519</a>: Fix weakref spewing exceptions during interpreter shutdown when
used with a rare combination of multiprocessing and custom codecs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29416">bpo-29416</a>: Prevent infinite loop in pathlib.Path.mkdir</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29444">bpo-29444</a>: Fixed out-of-bounds buffer access in the group() method of the
match object. Based on patch by WGH.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29335">bpo-29335</a>: Fix subprocess.Popen.wait() when the child process has exited
to a stopped instead of terminated state (ex: when under ptrace).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29290">bpo-29290</a>: Fix a regression in argparse that help messages would wrap at
non-breaking spaces.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28735">bpo-28735</a>: Fixed the comparison of mock.MagickMock with mock.ANY.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29011">bpo-29011</a>: Fix an important omission by adding Deque to the typing module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29219">bpo-29219</a>: Fixed infinite recursion in the repr of uninitialized
ctypes.CDLL instances.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28969">bpo-28969</a>: Fixed race condition in C implementation of
functools.lru_cache. KeyError could be raised when cached function with
full cache was simultaneously called from different threads with the same
uncached arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29142">bpo-29142</a>: In urllib.request, suffixes in no_proxy environment variable
with leading dots could match related hostnames again (e.g. .b.c matches
a.b.c). Patch by Milan Oberkirch.</p></li>
</ul>
</section>
<section id="id751">
<h3>Documentation<a class="headerlink" href="#id751" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30176">bpo-30176</a>: Add missing attribute related constants in curses
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26985">bpo-26985</a>: Add missing info of code object in inspect documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28929">bpo-28929</a>: Link the documentation to its source file on GitHub.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25008">bpo-25008</a>: Document smtpd.py as effectively deprecated and add a pointer
to aiosmtpd, a third-party asyncio-based replacement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26355">bpo-26355</a>: Add canonical header link on each page to corresponding major
version of the documentation. Patch by Matthias Bussonnier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29349">bpo-29349</a>: Fix Python 2 syntax in code for building the documentation.</p></li>
</ul>
</section>
<section id="id752">
<h3>Tests<a class="headerlink" href="#id752" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30822">bpo-30822</a>: Fix regrtest command line parser to allow passing -u
extralargefile to run test_zipfile64.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30383">bpo-30383</a>: regrtest: Enhance regrtest and backport features from the
master branch. Add options: –coverage, –testdir, –list-tests (list test
files, don’t run them), –list-cases (list test identifiers, don’t run
them, <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30523">bpo-30523</a>), –matchfile (load a list of test filters from a
text file, <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30540">bpo-30540</a>), –slowest (alias to –slow). Enhance output:
add timestamp, test result, currently running tests, “Tests result: xxx”
summary with total duration, etc. Fix reference leak hunting in regrtest,
–huntrleaks: regrtest now warms up caches, create explicitly all internal
singletons which are created on demand to prevent false positives when
checking for reference leaks. (<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30675">bpo-30675</a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30357">bpo-30357</a>: test_thread: setUp() now uses support.threading_setup() and
support.threading_cleanup() to wait until threads complete to avoid random
side effects on following tests. Initial patch written by Grzegorz
Grzywacz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28087">bpo-28087</a>: Skip test_asyncore and test_eintr poll failures on macOS. Skip
some tests of select.poll when running on macOS due to unresolved issues
with the underlying system poll function on some macOS versions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30197">bpo-30197</a>: Enhanced functions swap_attr() and swap_item() in the
test.support module. They now work when delete replaced attribute or item
inside the with statement. The old value of the attribute or item (or
None if it doesn’t exist) now will be assigned to the target of the “as”
clause, if there is one.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29571">bpo-29571</a>: to match the behaviour of the <code class="docutils literal notranslate"><span class="pre">re.LOCALE</span></code> flag,
test_re.test_locale_flag now uses <code class="docutils literal notranslate"><span class="pre">locale.getpreferredencoding(False)</span></code>
to determine the candidate encoding for the test regex (allowing it to
correctly skip the test when the default locale encoding is a multi-byte
encoding)</p></li>
</ul>
</section>
<section id="id753">
<h3>Build<a class="headerlink" href="#id753" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29243">bpo-29243</a>: Prevent unnecessary rebuilding of Python during <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span></code>,
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code> and some other make targets when configured with
<code class="docutils literal notranslate"><span class="pre">--enable-optimizations</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23404">bpo-23404</a>: Don’t regenerate generated files based on file modification
time anymore: the action is now explicit. Replace <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">touch</span></code> with
<code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">regen-all</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29643">bpo-29643</a>: Fix <code class="docutils literal notranslate"><span class="pre">--enable-optimization</span></code> didn’t work.</p></li>
</ul>
</section>
<section id="id754">
<h3>Windows<a class="headerlink" href="#id754" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=30687">bpo-30687</a>: Locate msbuild.exe on Windows when building rather than
vcvarsall.bat</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29392">bpo-29392</a>: Prevent crash when passing invalid arguments into msvcrt
module.</p></li>
</ul>
</section>
<section id="id755">
<h3>C API<a class="headerlink" href="#id755" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27867">bpo-27867</a>: Function PySlice_GetIndicesEx() is replaced with a macro if
Py_LIMITED_API is set to the value between 0x03050400 and 0x03060000 (not
including) or 0x03060100 or higher.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29083">bpo-29083</a>: Fixed the declaration of some public API functions.
PyArg_VaParse() and PyArg_VaParseTupleAndKeywords() were not available in
limited API. PyArg_ValidateKeywordArguments(), PyArg_UnpackTuple() and
Py_BuildValue() were not available in limited API of version < 3.3 when
PY_SSIZE_T_CLEAN is defined.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-3-final">
<h2>Python 3.5.3 final<a class="headerlink" href="#python-3-5-3-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-01-17</em></p>
<p>There were no code changes between 3.5.3rc1 and 3.5.3 final.</p>
</section>
<section id="python-3-5-3-release-candidate-1">
<h2>Python 3.5.3 release candidate 1<a class="headerlink" href="#python-3-5-3-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2017-01-02</em></p>
<section id="id756">
<h3>Security<a class="headerlink" href="#id756" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27278">bpo-27278</a>: Fix os.urandom() implementation using getrandom() on Linux.
Truncate size to INT_MAX and loop until we collected enough random bytes,
instead of casting a directly Py_ssize_t to int.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22636">bpo-22636</a>: Avoid shell injection problems with ctypes.util.find_library().</p></li>
</ul>
</section>
<section id="id757">
<h3>Core and Builtins<a class="headerlink" href="#id757" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29073">bpo-29073</a>: bytearray formatting no longer truncates on first null byte.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28932">bpo-28932</a>: Do not include <sys/random.h> if it does not exist.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28147">bpo-28147</a>: Fix a memory leak in split-table dictionaries: setattr() must
not convert combined table into split table.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25677">bpo-25677</a>: Correct the positioning of the syntax error caret for indented
blocks. Based on patch by Michael Layzell.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29000">bpo-29000</a>: Fixed bytes formatting of octals with zero padding in alternate
form.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28512">bpo-28512</a>: Fixed setting the offset attribute of SyntaxError by
PyErr_SyntaxLocationEx() and PyErr_SyntaxLocationObject().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28991">bpo-28991</a>: functools.lru_cache() was susceptible to an obscure reentrancy
bug caused by a monkey-patched len() function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28648">bpo-28648</a>: Fixed crash in Py_DecodeLocale() in debug build on Mac OS X
when decode astral characters. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19398">bpo-19398</a>: Extra slash no longer added to sys.path components in case of
empty compile-time PYTHONPATH components.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28426">bpo-28426</a>: Fixed potential crash in PyUnicode_AsDecodedObject() in debug
build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23782">bpo-23782</a>: Fixed possible memory leak in _PyTraceback_Add() and exception
loss in PyTraceBack_Here().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28379">bpo-28379</a>: Added sanity checks and tests for PyUnicode_CopyCharacters().
Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28376">bpo-28376</a>: The type of long range iterator is now registered as Iterator.
Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28376">bpo-28376</a>: The constructor of range_iterator now checks that step is not
0. Patch by Oren Milman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26906">bpo-26906</a>: Resolving special methods of uninitialized type now causes
implicit initialization of the type instead of a fail.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18287">bpo-18287</a>: PyType_Ready() now checks that tp_name is not NULL. Original
patch by Niklas Koep.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24098">bpo-24098</a>: Fixed possible crash when AST is changed in process of
compiling it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28350">bpo-28350</a>: String constants with null character no longer interned.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26617">bpo-26617</a>: Fix crash when GC runs during weakref callbacks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27942">bpo-27942</a>: String constants now interned recursively in tuples and
frozensets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21578">bpo-21578</a>: Fixed misleading error message when ImportError called with
invalid keyword args.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28203">bpo-28203</a>: Fix incorrect type in error message from <code class="docutils literal notranslate"><span class="pre">complex(1.0,</span>
<span class="pre">{2:3})</span></code>. Patch by Soumya Sharma.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27955">bpo-27955</a>: Fallback on reading /dev/urandom device when the getrandom()
syscall fails with EPERM, for example when blocked by SECCOMP.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28131">bpo-28131</a>: Fix a regression in zipimport’s compile_source(). zipimport
should use the same optimization level as the interpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25221">bpo-25221</a>: Fix corrupted result from PyLong_FromLong(0) when Python is
compiled with NSMALLPOSINTS = 0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25758">bpo-25758</a>: Prevents zipimport from unnecessarily encoding a filename
(patch by Eryk Sun)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28189">bpo-28189</a>: dictitems_contains no longer swallows compare errors. (Patch by
Xiang Zhang)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27812">bpo-27812</a>: Properly clear out a generator’s frame’s backreference to the
generator to prevent crashes in frame.clear().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27811">bpo-27811</a>: Fix a crash when a coroutine that has not been awaited is
finalized with warnings-as-errors enabled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27587">bpo-27587</a>: Fix another issue found by PVS-Studio: Null pointer check after
use of ‘def’ in _PyState_AddModule(). Initial patch by Christian Heimes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26020">bpo-26020</a>: set literal evaluation order did not match documented
behaviour.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27782">bpo-27782</a>: Multi-phase extension module import now correctly allows the
<code class="docutils literal notranslate"><span class="pre">m_methods</span></code> field to be used to add module level functions to instances
of non-module types returned from <code class="docutils literal notranslate"><span class="pre">Py_create_mod</span></code>. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27936">bpo-27936</a>: The round() function accepted a second None argument for some
types but not for others. Fixed the inconsistency by accepting None for
all numeric types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27487">bpo-27487</a>: Warn if a submodule argument to “python -m” or
runpy.run_module() is found in sys.modules after parent packages are
imported, but before the submodule is executed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27558">bpo-27558</a>: Fix a SystemError in the implementation of “raise” statement.
In a brand new thread, raise a RuntimeError since there is no active
exception to reraise. Patch written by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27419">bpo-27419</a>: Standard __import__() no longer look up “__import__” in globals
or builtins for importing submodules or “from import”. Fixed handling an
error of non-string package name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27083">bpo-27083</a>: Respect the PYTHONCASEOK environment variable under Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27514">bpo-27514</a>: Make having too many statically nested blocks a SyntaxError
instead of SystemError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27473">bpo-27473</a>: Fixed possible integer overflow in bytes and bytearray
concatenations. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27507">bpo-27507</a>: Add integer overflow check in bytearray.extend(). Patch by
Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27581">bpo-27581</a>: Don’t rely on wrapping for overflow check in
PySequence_Tuple(). Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27443">bpo-27443</a>: __length_hint__() of bytearray iterators no longer return a
negative integer for a resized bytearray.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27942">bpo-27942</a>: Fix memory leak in codeobject.c</p></li>
</ul>
</section>
<section id="id758">
<h3>Library<a class="headerlink" href="#id758" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15812">bpo-15812</a>: inspect.getframeinfo() now correctly shows the first line of a
context. Patch by Sam Breese.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29094">bpo-29094</a>: Offsets in a ZIP file created with extern file object and modes
“w” and “x” now are relative to the start of the file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13051">bpo-13051</a>: Fixed recursion errors in large or resized
curses.textpad.Textbox. Based on patch by Tycho Andersen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29119">bpo-29119</a>: Fix weakrefs in the pure python version of
collections.OrderedDict move_to_end() method. Contributed by Andra
Bogildea.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9770">bpo-9770</a>: curses.ascii predicates now work correctly with negative
integers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28427">bpo-28427</a>: old keys should not remove new values from WeakValueDictionary
when collecting from another thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28923">bpo-28923</a>: Remove editor artifacts from Tix.py.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28871">bpo-28871</a>: Fixed a crash when deallocate deep ElementTree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19542">bpo-19542</a>: Fix bugs in WeakValueDictionary.setdefault() and
WeakValueDictionary.pop() when a GC collection happens in another thread.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20191">bpo-20191</a>: Fixed a crash in resource.prlimit() when pass a sequence that
doesn’t own its elements as limits.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28779">bpo-28779</a>: multiprocessing.set_forkserver_preload() would crash the
forkserver process if a preloaded module instantiated some multiprocessing
objects such as locks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28847">bpo-28847</a>: dbm.dumb now supports reading read-only files and no longer
writes the index file when it is not changed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25659">bpo-25659</a>: In ctypes, prevent a crash calling the from_buffer() and
from_buffer_copy() methods on abstract classes like Array.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28732">bpo-28732</a>: Fix crash in os.spawnv() with no elements in args</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28485">bpo-28485</a>: Always raise ValueError for negative
compileall.compile_dir(workers=…) parameter, even when multithreading is
unavailable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28387">bpo-28387</a>: Fixed possible crash in _io.TextIOWrapper deallocator when the
garbage collector is invoked in other thread. Based on patch by Sebastian
Cufre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27517">bpo-27517</a>: LZMA compressor and decompressor no longer raise exceptions if
given empty data twice. Patch by Benjamin Fogle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28549">bpo-28549</a>: Fixed segfault in curses’s addch() with ncurses6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28449">bpo-28449</a>: tarfile.open() with mode “r” or “r:” now tries to open a tar
file with compression before trying to open it without compression.
Otherwise it had 50% chance failed with ignore_zeros=True.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23262">bpo-23262</a>: The webbrowser module now supports Firefox 36+ and derived
browsers. Based on patch by Oleg Broytman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27939">bpo-27939</a>: Fixed bugs in tkinter.ttk.LabeledScale and tkinter.Scale caused
by representing the scale as float value internally in Tk. tkinter.IntVar
now works if float value is set to underlying Tk variable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28255">bpo-28255</a>: calendar.TextCalendar().prmonth() no longer prints a space at
the start of new line after printing a month’s calendar. Patch by Xiang
Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20491">bpo-20491</a>: The textwrap.TextWrapper class now honors non-breaking spaces.
Based on patch by Kaarle Ritvanen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28353">bpo-28353</a>: os.fwalk() no longer fails on broken links.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25464">bpo-25464</a>: Fixed HList.header_exists() in tkinter.tix module by addin a
workaround to Tix library bug.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28488">bpo-28488</a>: shutil.make_archive() no longer add entry “./” to ZIP archive.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24452">bpo-24452</a>: Make webbrowser support Chrome on Mac OS X.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20766">bpo-20766</a>: Fix references leaked by pdb in the handling of SIGINT
handlers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26293">bpo-26293</a>: Fixed writing ZIP files that starts not from the start of the
file. Offsets in ZIP file now are relative to the start of the archive in
conforming to the specification.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28321">bpo-28321</a>: Fixed writing non-BMP characters with binary format in
plistlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28322">bpo-28322</a>: Fixed possible crashes when unpickle itertools objects from
incorrect pickle data. Based on patch by John Leitch.</p></li>
<li><p>Fix possible integer overflows and crashes in the mmap module with unusual
usage patterns.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1703178">bpo-1703178</a>: Fix the ability to pass the –link-objects option to the
distutils build_ext command.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28253">bpo-28253</a>: Fixed calendar functions for extreme months: 0001-01 and
9999-12. Methods itermonthdays() and itermonthdays2() are reimplemented so
that they don’t call itermonthdates() which can cause datetime.date
under/overflow.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28275">bpo-28275</a>: Fixed possible use after free in the decompress() methods of
the LZMADecompressor and BZ2Decompressor classes. Original patch by John
Leitch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27897">bpo-27897</a>: Fixed possible crash in sqlite3.Connection.create_collation()
if pass invalid string-like object as a name. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18893">bpo-18893</a>: Fix invalid exception handling in Lib/ctypes/macholib/dyld.py.
Patch by Madison May.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27611">bpo-27611</a>: Fixed support of default root window in the tkinter.tix module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27348">bpo-27348</a>: In the traceback module, restore the formatting of exception
messages like “Exception: None”. This fixes a regression introduced in
3.5a2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25651">bpo-25651</a>: Allow false values to be used for msg parameter of subTest().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27932">bpo-27932</a>: Prevent memory leak in win32_ver().</p></li>
<li><p>Fix UnboundLocalError in socket._sendfile_use_sendfile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28075">bpo-28075</a>: Check for ERROR_ACCESS_DENIED in Windows implementation of
os.stat(). Patch by Eryk Sun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25270">bpo-25270</a>: Prevent codecs.escape_encode() from raising SystemError when an
empty bytestring is passed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28181">bpo-28181</a>: Get antigravity over HTTPS. Patch by Kaartic Sivaraam.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25895">bpo-25895</a>: Enable WebSocket URL schemes in urllib.parse.urljoin. Patch by
Gergely Imreh and Markus Holtermann.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27599">bpo-27599</a>: Fixed buffer overrun in binascii.b2a_qp() and
binascii.a2b_qp().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19003">bpo-19003</a>: m email.generator now replaces only <code class="docutils literal notranslate"><span class="pre">\r</span></code> and/or <code class="docutils literal notranslate"><span class="pre">\n</span></code> line
endings, per the RFC, instead of all unicode line endings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28019">bpo-28019</a>: itertools.count() no longer rounds non-integer step in range
between 1.0 and 2.0 to 1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25969">bpo-25969</a>: Update the lib2to3 grammar to handle the unpacking
generalizations added in 3.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14977">bpo-14977</a>: mailcap now respects the order of the lines in the mailcap
files (“first match”), as required by RFC 1542. Patch by Michael Lazar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24594">bpo-24594</a>: Validates persist parameter when opening MSI database</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17582">bpo-17582</a>: xml.etree.ElementTree nows preserves whitespaces in attributes
(Patch by Duane Griffin. Reviewed and approved by Stefan Behnel.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28047">bpo-28047</a>: Fixed calculation of line length used for the base64 CTE in the
new email policies.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27445">bpo-27445</a>: Don’t pass str(_charset) to MIMEText.set_payload(). Patch by
Claude Paroz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22450">bpo-22450</a>: urllib now includes an <code class="docutils literal notranslate"><span class="pre">Accept:</span> <span class="pre">*/*</span></code> header among the default
headers. This makes the results of REST API requests more consistent and
predictable especially when proxy servers are involved.</p></li>
<li><p>lib2to3.pgen3.driver.load_grammar() now creates a stable cache file
between runs given the same Grammar.txt input regardless of the hash
randomization setting.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27570">bpo-27570</a>: Avoid zero-length memcpy() etc calls with null source pointers
in the “ctypes” and “array” modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22233">bpo-22233</a>: Break email header lines <em>only</em> on the RFC specified CR and LF
characters, not on arbitrary unicode line breaks. This also fixes a bug
in HTTP header parsing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27988">bpo-27988</a>: Fix email iter_attachments incorrect mutation of payload list.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27691">bpo-27691</a>: Fix ssl module’s parsing of GEN_RID subject alternative name
fields in X.509 certs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27850">bpo-27850</a>: Remove 3DES from ssl module’s default cipher list to counter
measure sweet32 attack (<span class="target" id="index-466"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-2183"><strong>CVE 2016-2183</strong></a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27766">bpo-27766</a>: Add ChaCha20 Poly1305 to ssl module’s default cipher list.
(Required OpenSSL 1.1.0 or LibreSSL).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26470">bpo-26470</a>: Port ssl and hashlib module to OpenSSL 1.1.0.</p></li>
<li><p>Remove support for passing a file descriptor to os.access. It never worked
but previously didn’t raise.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12885">bpo-12885</a>: Fix error when distutils encounters symlink.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27881">bpo-27881</a>: Fixed possible bugs when setting
sqlite3.Connection.isolation_level. Based on patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27861">bpo-27861</a>: Fixed a crash in sqlite3.Connection.cursor() when a factory
creates not a cursor. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19884">bpo-19884</a>: Avoid spurious output on OS X with Gnu Readline.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27706">bpo-27706</a>: Restore deterministic behavior of random.Random().seed() for
string seeds using seeding version 1. Allows sequences of calls to
random() to exactly match those obtained in Python 2. Patch by Nofar
Schnider.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10513">bpo-10513</a>: Fix a regression in Connection.commit(). Statements should not
be reset after a commit.</p></li>
<li><p>A new version of typing.py from <a class="reference external" href="https://github.com/python/typing">https://github.com/python/typing</a>:
Collection (only for 3.6) (<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27598">bpo-27598</a>). Add FrozenSet to __all__
(upstream #261). Fix crash in _get_type_vars() (upstream #259). Remove the
dict constraint in ForwardRef._eval_type (upstream #252).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27539">bpo-27539</a>: Fix unnormalised <code class="docutils literal notranslate"><span class="pre">Fraction.__pow__</span></code> result in the case of
negative exponent and negative base.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21718">bpo-21718</a>: cursor.description is now available for queries using CTEs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2466">bpo-2466</a>: posixpath.ismount now correctly recognizes mount points which
the user does not have permission to access.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27773">bpo-27773</a>: Correct some memory management errors server_hostname in
_ssl.wrap_socket().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26750">bpo-26750</a>: unittest.mock.create_autospec() now works properly for
subclasses of property() and other data descriptors.</p></li>
<li><p>In the curses module, raise an error if window.getstr() or window.instr()
is passed a negative value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27783">bpo-27783</a>: Fix possible usage of uninitialized memory in
operator.methodcaller.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27774">bpo-27774</a>: Fix possible Py_DECREF on unowned object in _sre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27760">bpo-27760</a>: Fix possible integer overflow in binascii.b2a_qp.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27758">bpo-27758</a>: Fix possible integer overflow in the _csv module for large
record lengths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27568">bpo-27568</a>: Prevent HTTPoxy attack (<span class="target" id="index-467"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-1000110"><strong>CVE 2016-1000110</strong></a>). Ignore the
HTTP_PROXY variable when REQUEST_METHOD environment is set, which
indicates that the script is in CGI mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27656">bpo-27656</a>: Do not assume sched.h defines any SCHED_* constants.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27130">bpo-27130</a>: In the “zlib” module, fix handling of large buffers (typically
4 GiB) when compressing and decompressing. Previously, inputs were
limited to 4 GiB, and compression and decompression operations did not
properly handle results of 4 GiB.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27533">bpo-27533</a>: Release GIL in nt._isdir</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17711">bpo-17711</a>: Fixed unpickling by the persistent ID with protocol 0. Original
patch by Alexandre Vassalotti.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27522">bpo-27522</a>: Avoid an unintentional reference cycle in email.feedparser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26844">bpo-26844</a>: Fix error message for imp.find_module() to refer to ‘path’
instead of ‘name’. Patch by Lev Maximov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23804">bpo-23804</a>: Fix SSL zero-length recv() calls to not block and not raise an
error about unclean EOF.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27466">bpo-27466</a>: Change time format returned by http.cookie.time2netscape,
confirming the netscape cookie format and making it consistent with
documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26664">bpo-26664</a>: Fix activate.fish by removing mis-use of <code class="docutils literal notranslate"><span class="pre">$</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22115">bpo-22115</a>: Fixed tracing Tkinter variables: trace_vdelete() with wrong
mode no longer break tracing, trace_vinfo() now always returns a list of
pairs of strings, tracing in the “u” mode now works.</p></li>
<li><p>Fix a scoping issue in importlib.util.LazyLoader which triggered an
UnboundLocalError when lazy-loading a module that was already put into
sys.modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27079">bpo-27079</a>: Fixed curses.ascii functions isblank(), iscntrl() and
ispunct().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26754">bpo-26754</a>: Some functions (compile() etc) accepted a filename argument
encoded as an iterable of integers. Now only strings and byte-like objects
are accepted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27048">bpo-27048</a>: Prevents distutils failing on Windows when environment
variables contain non-ASCII characters</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27330">bpo-27330</a>: Fixed possible leaks in the ctypes module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27238">bpo-27238</a>: Got rid of bare excepts in the turtle module. Original patch
by Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27122">bpo-27122</a>: When an exception is raised within the context being managed by
a contextlib.ExitStack() and one of the exit stack generators catches and
raises it in a chain, do not re-raise the original exception when exiting,
let the new chained one through. This avoids the <span class="target" id="index-468"></span><a class="pep reference external" href="https://peps.python.org/pep-0479/"><strong>PEP 479</strong></a> bug described
in issue25782.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26386">bpo-26386</a>: Fixed ttk.TreeView selection operations with item id’s
containing spaces.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16182">bpo-16182</a>: Fix various functions in the “readline” module to use the
locale encoding, and fix get_begidx() and get_endidx() to return code
point indexes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27392">bpo-27392</a>: Add loop.connect_accepted_socket(). Patch by Jim Fulton.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27930">bpo-27930</a>: Improved behaviour of logging.handlers.QueueListener. Thanks to
Paulo Andrade and Petr Viktorin for the analysis and patch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21201">bpo-21201</a>: Improves readability of multiprocessing error message. Thanks
to Wojciech Walczak for patch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27456">bpo-27456</a>: asyncio: Set TCP_NODELAY by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27906">bpo-27906</a>: Fix socket accept exhaustion during high TCP traffic. Patch by
Kevin Conway.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28174">bpo-28174</a>: Handle when SO_REUSEPORT isn’t properly supported. Patch by
Seth Michael Larson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26654">bpo-26654</a>: Inspect functools.partial in asyncio.Handle.__repr__. Patch by
iceboy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26909">bpo-26909</a>: Fix slow pipes IO in asyncio. Patch by INADA Naoki.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28176">bpo-28176</a>: Fix callbacks race in asyncio.SelectorLoop.sock_connect.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27759">bpo-27759</a>: Fix selectors incorrectly retain invalid file descriptors.
Patch by Mark Williams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28368">bpo-28368</a>: Refuse monitoring processes if the child watcher has no loop
attached. Patch by Vincent Michel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28369">bpo-28369</a>: Raise RuntimeError when transport’s FD is used with add_reader,
add_writer, etc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28370">bpo-28370</a>: Speedup asyncio.StreamReader.readexactly. Patch by Коренберг
Марк.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28371">bpo-28371</a>: Deprecate passing asyncio.Handles to run_in_executor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28372">bpo-28372</a>: Fix asyncio to support formatting of non-python coroutines.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28399">bpo-28399</a>: Remove UNIX socket from FS before binding. Patch by Коренберг
Марк.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27972">bpo-27972</a>: Prohibit Tasks to await on themselves.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26923">bpo-26923</a>: Fix asyncio.Gather to refuse being cancelled once all children
are done. Patch by Johannes Ebke.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26796">bpo-26796</a>: Don’t configure the number of workers for default threadpool
executor. Initial patch by Hans Lawrenz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28600">bpo-28600</a>: Optimize loop.call_soon().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28613">bpo-28613</a>: Fix get_event_loop() return the current loop if called from
coroutines/callbacks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28639">bpo-28639</a>: Fix inspect.isawaitable to always return bool Patch by Justin
Mayfield.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28652">bpo-28652</a>: Make loop methods reject socket kinds they do not support.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28653">bpo-28653</a>: Fix a refleak in functools.lru_cache.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28703">bpo-28703</a>: Fix asyncio.iscoroutinefunction to handle Mock objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24142">bpo-24142</a>: Reading a corrupt config file left the parser in an invalid
state. Original patch by Florian Höch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28990">bpo-28990</a>: Fix SSL hanging if connection is closed before handshake
completed. (Patch by HoHo-Ho)</p></li>
</ul>
</section>
<section id="id759">
<h3>IDLE<a class="headerlink" href="#id759" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15308">bpo-15308</a>: Add ‘interrupt execution’ (^C) to Shell menu. Patch by Roger
Serwy, updated by Bayard Randel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27922">bpo-27922</a>: Stop IDLE tests from ‘flashing’ gui widgets on the screen.</p></li>
<li><p>Add version to title of IDLE help window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25564">bpo-25564</a>: In section on IDLE – console differences, mention that using
exec means that __builtins__ is defined for each statement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27714">bpo-27714</a>: text_textview and test_autocomplete now pass when re-run in the
same process. This occurs when test_idle fails when run with the -w
option but without -jn. Fix warning from test_config.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25507">bpo-25507</a>: IDLE no longer runs buggy code because of its tkinter imports.
Users must include the same imports required to run directly in Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27452">bpo-27452</a>: add line counter and crc to IDLE configHandler test dump.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27365">bpo-27365</a>: Allow non-ascii chars in IDLE NEWS.txt, for contributor names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27245">bpo-27245</a>: IDLE: Cleanly delete custom themes and key bindings.
Previously, when IDLE was started from a console or by import, a cascade
of warnings was emitted. Patch by Serhiy Storchaka.</p></li>
</ul>
</section>
<section id="id760">
<h3>C API<a class="headerlink" href="#id760" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28808">bpo-28808</a>: PyUnicode_CompareWithASCIIString() now never raises exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26754">bpo-26754</a>: PyUnicode_FSDecoder() accepted a filename argument encoded as
an iterable of integers. Now only strings and bytes-like objects are
accepted.</p></li>
</ul>
</section>
<section id="id761">
<h3>Documentation<a class="headerlink" href="#id761" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28513">bpo-28513</a>: Documented command-line interface of zipfile.</p></li>
</ul>
</section>
<section id="id762">
<h3>Tests<a class="headerlink" href="#id762" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28950">bpo-28950</a>: Disallow -j0 to be combined with -T/-l/-M in regrtest command
line arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28666">bpo-28666</a>: Now test.support.rmtree is able to remove unwritable or
unreadable directories.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23839">bpo-23839</a>: Various caches now are cleared before running every test file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28409">bpo-28409</a>: regrtest: fix the parser of command line arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27787">bpo-27787</a>: Call gc.collect() before checking each test for “dangling
threads”, since the dangling threads are weak references.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27369">bpo-27369</a>: In test_pyexpat, avoid testing an error message detail that
changed in Expat 2.2.0.</p></li>
</ul>
</section>
<section id="id763">
<h3>Tools/Demos<a class="headerlink" href="#id763" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27952">bpo-27952</a>: Get Tools/scripts/fixcid.py working with Python 3 and the
current “re” module, avoid invalid Python backslash escapes, and fix a bug
parsing escaped C quote signs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27332">bpo-27332</a>: Fixed the type of the first argument of module-level functions
generated by Argument Clinic. Patch by Petr Viktorin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27418">bpo-27418</a>: Fixed Tools/importbench/importbench.py.</p></li>
</ul>
</section>
<section id="id764">
<h3>Windows<a class="headerlink" href="#id764" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28251">bpo-28251</a>: Improvements to help manuals on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28110">bpo-28110</a>: launcher.msi has different product codes between 32-bit and
64-bit</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25144">bpo-25144</a>: Ensures TargetDir is set before continuing with custom install.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27469">bpo-27469</a>: Adds a shell extension to the launcher so that drag and drop
works correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27309">bpo-27309</a>: Enabled proper Windows styles in python[w].exe manifest.</p></li>
</ul>
</section>
<section id="id765">
<h3>Build<a class="headerlink" href="#id765" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=29080">bpo-29080</a>: Removes hard dependency on hg.exe from PCBuild/build.bat</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23903">bpo-23903</a>: Added missed names to PC/python3.def.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10656">bpo-10656</a>: Fix out-of-tree building on AIX. Patch by Tristan Carel and
Michael Haubenwallner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26359">bpo-26359</a>: Rename –with-optimiations to –enable-optimizations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28444">bpo-28444</a>: Fix missing extensions modules when cross compiling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28248">bpo-28248</a>: Update Windows build and OS X installers to use OpenSSL 1.0.2j.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28258">bpo-28258</a>: Fixed build with Estonian locale (python-config and distclean
targets in Makefile). Patch by Arfrever Frehtes Taifersar Arahesis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26661">bpo-26661</a>: setup.py now detects system libffi with multiarch wrapper.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28066">bpo-28066</a>: Fix the logic that searches build directories for generated
include files when building outside the source tree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15819">bpo-15819</a>: Remove redundant include search directory option for building
outside the source tree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27566">bpo-27566</a>: Fix clean target in freeze makefile (patch by Lisa Roach)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27705">bpo-27705</a>: Update message in validate_ucrtbase.py</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27983">bpo-27983</a>: Cause lack of llvm-profdata tool when using clang as required
for PGO linking to be a configure time error rather than make time when
–with-optimizations is enabled. Also improve our ability to find the
llvm-profdata tool on MacOS and some Linuxes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26307">bpo-26307</a>: The profile-opt build now applies PGO to the built-in modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26359">bpo-26359</a>: Add the –with-optimizations configure flag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27713">bpo-27713</a>: Suppress spurious build warnings when updating importlib’s
bootstrap files. Patch by Xiang Zhang</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25825">bpo-25825</a>: Correct the references to Modules/python.exp and ld_so_aix,
which are required on AIX. This updates references to an installation
path that was changed in 3.2a4, and undoes changed references to the build
tree that were made in 3.5.0a1.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27453">bpo-27453</a>: CPP invocation in configure must use CPPFLAGS. Patch by Chi
Hsuan Yen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27641">bpo-27641</a>: The configure script now inserts comments into the makefile to
prevent the pgen and _freeze_importlib executables from being
cross-compiled.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26662">bpo-26662</a>: Set PYTHON_FOR_GEN in configure as the Python program to be
used for file generation during the build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10910">bpo-10910</a>: Avoid C++ compilation errors on FreeBSD and OS X. Also update
FreedBSD version checks for the original ctype UTF-8 workaround.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=28676">bpo-28676</a>: Prevent missing ‘getentropy’ declaration warning on macOS.
Patch by Gareth Rees.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-2-final">
<h2>Python 3.5.2 final<a class="headerlink" href="#python-3-5-2-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-06-26</em></p>
<section id="id766">
<h3>Core and Builtins<a class="headerlink" href="#id766" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26930">bpo-26930</a>: Update Windows builds to use OpenSSL 1.0.2h.</p></li>
</ul>
</section>
<section id="id767">
<h3>Tests<a class="headerlink" href="#id767" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26867">bpo-26867</a>: Ubuntu’s openssl OP_NO_SSLv3 is forced on by default; fix test.</p></li>
</ul>
</section>
<section id="id768">
<h3>IDLE<a class="headerlink" href="#id768" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27365">bpo-27365</a>: Allow non-ascii in idlelib/NEWS.txt - minimal part for 3.5.2.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-2-release-candidate-1">
<h2>Python 3.5.2 release candidate 1<a class="headerlink" href="#python-3-5-2-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2016-06-12</em></p>
<section id="id769">
<h3>Security<a class="headerlink" href="#id769" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26556">bpo-26556</a>: Update expat to 2.1.1, fixes <span class="target" id="index-469"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2015-1283"><strong>CVE 2015-1283</strong></a>.</p></li>
<li><p>Fix TLS stripping vulnerability in smtplib, <span class="target" id="index-470"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2016-0772"><strong>CVE 2016-0772</strong></a>. Reported by
Team Oststrom.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26839">bpo-26839</a>: On Linux, <a class="reference internal" href="../library/os.html#os.urandom" title="os.urandom"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.urandom()</span></code></a> now calls <code class="docutils literal notranslate"><span class="pre">getrandom()</span></code> with
<code class="docutils literal notranslate"><span class="pre">GRND_NONBLOCK</span></code> to fall back on reading <code class="docutils literal notranslate"><span class="pre">/dev/urandom</span></code> if the urandom
entropy pool is not initialized yet. Patch written by Colm Buckley.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26657">bpo-26657</a>: Fix directory traversal vulnerability with http.server on
Windows. This fixes a regression that was introduced in 3.3.4rc1 and
3.4.0rc1. Based on patch by Philipp Hagemeister.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26313">bpo-26313</a>: ssl.py _load_windows_store_certs fails if windows cert store is
empty. Patch by Baji.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25939">bpo-25939</a>: On Windows open the cert store readonly in
ssl.enum_certificates.</p></li>
</ul>
</section>
<section id="id770">
<h3>Core and Builtins<a class="headerlink" href="#id770" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27066">bpo-27066</a>: Fixed SystemError if a custom opener (for open()) returns a
negative number without setting an exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20041">bpo-20041</a>: Fixed TypeError when frame.f_trace is set to None. Patch by
Xavier de Gaye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26168">bpo-26168</a>: Fixed possible refleaks in failing Py_BuildValue() with the “N”
format unit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26991">bpo-26991</a>: Fix possible refleak when creating a function with annotations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27039">bpo-27039</a>: Fixed bytearray.remove() for values greater than 127. Patch by
Joe Jevnik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23640">bpo-23640</a>: int.from_bytes() no longer bypasses constructors for
subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26811">bpo-26811</a>: gc.get_objects() no longer contains a broken tuple with NULL
pointer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20120">bpo-20120</a>: Use RawConfigParser for .pypirc parsing, removing support for
interpolation unintentionally added with move to Python 3. Behavior no
longer does any interpolation in .pypirc files, matching behavior in
Python 2.7 and Setuptools 19.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26659">bpo-26659</a>: Make the builtin slice type support cycle collection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26718">bpo-26718</a>: super.__init__ no longer leaks memory if called multiple times.
NOTE: A direct call of super.__init__ is not endorsed!</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25339">bpo-25339</a>: PYTHONIOENCODING now has priority over locale in setting the
error handler for stdin and stdout.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26494">bpo-26494</a>: Fixed crash on iterating exhausting iterators. Affected classes
are generic sequence iterators, iterators of str, bytes, bytearray, list,
tuple, set, frozenset, dict, OrderedDict, corresponding views and
os.scandir() iterator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26581">bpo-26581</a>: If coding cookie is specified multiple times on a line in
Python source code file, only the first one is taken to account.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26464">bpo-26464</a>: Fix str.translate() when string is ASCII and first replacements
removes character, but next replacement uses a non-ASCII character or a
string longer than 1 character. Regression introduced in Python 3.5.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22836">bpo-22836</a>: Ensure exception reports from PyErr_Display() and
PyErr_WriteUnraisable() are sensible even when formatting them produces
secondary errors. This affects the reports produced by
sys.__excepthook__() and when __del__() raises an exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26302">bpo-26302</a>: Correct behavior to reject comma as a legal character for
cookie names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4806">bpo-4806</a>: Avoid masking the original TypeError exception when using star
(<code class="docutils literal notranslate"><span class="pre">*</span></code>) unpacking in function calls. Based on patch by Hagen Fürstenau
and Daniel Urban.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27138">bpo-27138</a>: Fix the doc comment for FileFinder.find_spec().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26154">bpo-26154</a>: Add a new private _PyThreadState_UncheckedGet() function to get
the current Python thread state, but don’t issue a fatal error if it is
NULL. This new function must be used instead of accessing directly the
_PyThreadState_Current variable. The variable is no more exposed since
Python 3.5.1 to hide the exact implementation of atomic C types, to avoid
compiler issues.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26194">bpo-26194</a>: Deque.insert() gave odd results for bounded deques that had
reached their maximum size. Now an IndexError will be raised when
attempting to insert into a full deque.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25843">bpo-25843</a>: When compiling code, don’t merge constants if they are equal
but have a different types. For example, <code class="docutils literal notranslate"><span class="pre">f1,</span> <span class="pre">f2</span> <span class="pre">=</span> <span class="pre">lambda:</span> <span class="pre">1,</span> <span class="pre">lambda:</span>
<span class="pre">1.0</span></code> is now correctly compiled to two different functions: <code class="docutils literal notranslate"><span class="pre">f1()</span></code>
returns <code class="docutils literal notranslate"><span class="pre">1</span></code> (<code class="docutils literal notranslate"><span class="pre">int</span></code>) and <code class="docutils literal notranslate"><span class="pre">f2()</span></code> returns <code class="docutils literal notranslate"><span class="pre">1.0</span></code> (<code class="docutils literal notranslate"><span class="pre">int</span></code>), even if
<code class="docutils literal notranslate"><span class="pre">1</span></code> and <code class="docutils literal notranslate"><span class="pre">1.0</span></code> are equal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22995">bpo-22995</a>: [UPDATE] Comment out the one of the pickleability tests in
_PyObject_GetState() due to regressions observed in Cython-based projects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25961">bpo-25961</a>: Disallowed null characters in the type name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25973">bpo-25973</a>: Fix segfault when an invalid nonlocal statement binds a name
starting with two underscores.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22995">bpo-22995</a>: Instances of extension types with a state that aren’t
subclasses of list or dict and haven’t implemented any pickle-related
methods (__reduce__, __reduce_ex__, __getnewargs__, __getnewargs_ex__, or
__getstate__), can no longer be pickled. Including memoryview.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20440">bpo-20440</a>: Massive replacing unsafe attribute setting code with special
macro Py_SETREF.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25766">bpo-25766</a>: Special method __bytes__() now works in str subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25421">bpo-25421</a>: __sizeof__ methods of builtin types now use dynamic basic size.
This allows sys.getsize() to work correctly with their subclasses with
__slots__ defined.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25709">bpo-25709</a>: Fixed problem with in-place string concatenation and utf-8
cache.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27147">bpo-27147</a>: Mention <span class="target" id="index-471"></span><a class="pep reference external" href="https://peps.python.org/pep-0420/"><strong>PEP 420</strong></a> in the importlib docs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24097">bpo-24097</a>: Fixed crash in object.__reduce__() if slot name is freed inside
__getattr__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24731">bpo-24731</a>: Fixed crash on converting objects with special methods
__bytes__, __trunc__, and __float__ returning instances of subclasses of
bytes, int, and float to subclasses of bytes, int, and float
correspondingly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26478">bpo-26478</a>: Fix semantic bugs when using binary operators with dictionary
views and tuples.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26171">bpo-26171</a>: Fix possible integer overflow and heap corruption in
zipimporter.get_data().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25660">bpo-25660</a>: Fix TAB key behaviour in REPL with readline.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25887">bpo-25887</a>: Raise a RuntimeError when a coroutine object is awaited more
than once.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27243">bpo-27243</a>: Update the __aiter__ protocol: instead of returning an
awaitable that resolves to an asynchronous iterator, the asynchronous
iterator should be returned directly. Doing the former will trigger a
PendingDeprecationWarning.</p></li>
</ul>
</section>
<section id="id771">
<h3>Library<a class="headerlink" href="#id771" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21386">bpo-21386</a>: Implement missing IPv4Address.is_global property. It was
documented since 07a5610bae9d. Initial patch by Roger Luethi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20900">bpo-20900</a>: distutils register command now decodes HTTP responses
correctly. Initial patch by ingrid.</p></li>
<li><p>A new version of typing.py provides several new classes and features:
@overload outside stubs, Reversible, DefaultDict, Text, ContextManager,
Type[], NewType(), TYPE_CHECKING, and numerous bug fixes (note that some
of the new features are not yet implemented in mypy or other static
analyzers). Also classes for <span class="target" id="index-472"></span><a class="pep reference external" href="https://peps.python.org/pep-0492/"><strong>PEP 492</strong></a> (Awaitable, AsyncIterable,
AsyncIterator) have been added (in fact they made it into 3.5.1 but were
never mentioned).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25738">bpo-25738</a>: Stop http.server.BaseHTTPRequestHandler.send_error() from
sending a message body for 205 Reset Content. Also, don’t send Content
header fields in responses that don’t have a body. Patch by Susumu
Koshiba.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21313">bpo-21313</a>: Fix the “platform” module to tolerate when sys.version contains
truncated build information.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27164">bpo-27164</a>: In the zlib module, allow decompressing raw Deflate streams
with a predefined zdict. Based on patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24291">bpo-24291</a>: Fix wsgiref.simple_server.WSGIRequestHandler to completely
write data to the client. Previously it could do partial writes and
truncate data. Also, wsgiref.handler.ServerHandler can now handle stdout
doing partial writes, but this is deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26809">bpo-26809</a>: Add <code class="docutils literal notranslate"><span class="pre">__all__</span></code> to <a class="reference internal" href="../library/string.html#module-string" title="string: Common string operations."><code class="xref py py-mod docutils literal notranslate"><span class="pre">string</span></code></a>. Patch by Emanuel Barry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26373">bpo-26373</a>: subprocess.Popen.communicate now correctly ignores
BrokenPipeError when the child process dies before .communicate() is
called in more/all circumstances.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21776">bpo-21776</a>: distutils.upload now correctly handles HTTPError. Initial patch
by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27114">bpo-27114</a>: Fix SSLContext._load_windows_store_certs fails with
PermissionError</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18383">bpo-18383</a>: Avoid creating duplicate filters when using filterwarnings and
simplefilter. Based on patch by Alex Shkop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27057">bpo-27057</a>: Fix os.set_inheritable() on Android, ioctl() is blocked by
SELinux and fails with EACCESS. The function now falls back to fcntl().
Patch written by Michał Bednarski.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27014">bpo-27014</a>: Fix infinite recursion using typing.py. Thanks to Kalle Tuure!</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14132">bpo-14132</a>: Fix urllib.request redirect handling when the target only has a
query string. Original fix by Ján Janech.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17214">bpo-17214</a>: The “urllib.request” module now percent-encodes non-ASCII bytes
found in redirect target URLs. Some servers send Location header fields
with non-ASCII bytes, but “http.client” requires the request target to be
ASCII-encodable, otherwise a UnicodeEncodeError is raised. Based on patch
by Christian Heimes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26892">bpo-26892</a>: Honor debuglevel flag in urllib.request.HTTPHandler. Patch
contributed by Chi Hsuan Yen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22274">bpo-22274</a>: In the subprocess module, allow stderr to be redirected to
stdout even when stdout is not redirected. Patch by Akira Li.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26807">bpo-26807</a>: mock_open ‘files’ no longer error on readline at end of file.
Patch from Yolanda Robla.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25745">bpo-25745</a>: Fixed leaking a userptr in curses panel destructor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26977">bpo-26977</a>: Removed unnecessary, and ignored, call to sum of squares helper
in statistics.pvariance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26881">bpo-26881</a>: The modulefinder module now supports extended opcode arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23815">bpo-23815</a>: Fixed crashes related to directly created instances of types in
_tkinter and curses.panel modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17765">bpo-17765</a>: weakref.ref() no longer silently ignores keyword arguments.
Patch by Georg Brandl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26873">bpo-26873</a>: xmlrpc now raises ResponseError on unsupported type tags
instead of silently return incorrect result.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26711">bpo-26711</a>: Fixed the comparison of plistlib.Data with other types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24114">bpo-24114</a>: Fix an uninitialized variable in <code class="docutils literal notranslate"><span class="pre">ctypes.util</span></code>. The bug only
occurs on SunOS when the ctypes implementation searches for the <code class="docutils literal notranslate"><span class="pre">crle</span></code>
program. Patch by Xiang Zhang. Tested on SunOS by Kees Bos.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26864">bpo-26864</a>: In urllib.request, change the proxy bypass host checking
against no_proxy to be case-insensitive, and to not match unrelated host
names that happen to have a bypassed hostname as a suffix. Patch by Xiang
Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26634">bpo-26634</a>: recursive_repr() now sets __qualname__ of wrapper. Patch by
Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26804">bpo-26804</a>: urllib.request will prefer lower_case proxy environment
variables over UPPER_CASE or Mixed_Case ones. Patch contributed by
Hans-Peter Jansen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26837">bpo-26837</a>: assertSequenceEqual() now correctly outputs non-stringified
differing items (like bytes in the -b mode). This affects
assertListEqual() and assertTupleEqual().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26041">bpo-26041</a>: Remove “will be removed in Python 3.7” from deprecation
messages of platform.dist() and platform.linux_distribution(). Patch by
Kumaripaba Miyurusara Athukorala.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26822">bpo-26822</a>: itemgetter, attrgetter and methodcaller objects no longer
silently ignore keyword arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26733">bpo-26733</a>: Disassembling a class now disassembles class and static
methods. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26801">bpo-26801</a>: Fix error handling in <a class="reference internal" href="../library/shutil.html#shutil.get_terminal_size" title="shutil.get_terminal_size"><code class="xref py py-func docutils literal notranslate"><span class="pre">shutil.get_terminal_size()</span></code></a>, catch
<a class="reference internal" href="../library/exceptions.html#AttributeError" title="AttributeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">AttributeError</span></code></a> instead of <a class="reference internal" href="../library/exceptions.html#NameError" title="NameError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NameError</span></code></a>. Patch written by
Emanuel Barry.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24838">bpo-24838</a>: tarfile’s ustar and gnu formats now correctly calculate name
and link field limits for multibyte character encodings like utf-8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26717">bpo-26717</a>: Stop encoding Latin-1-ized WSGI paths with UTF-8. Patch by
Anthony Sottile.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26735">bpo-26735</a>: Fix <a class="reference internal" href="../library/os.html#os.urandom" title="os.urandom"><code class="xref py py-func docutils literal notranslate"><span class="pre">os.urandom()</span></code></a> on Solaris 11.3 and newer when reading
more than 1,024 bytes: call <code class="docutils literal notranslate"><span class="pre">getrandom()</span></code> multiple times with a limit of
1024 bytes per call.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16329">bpo-16329</a>: Add .webm to mimetypes.types_map. Patch by Giampaolo Rodola’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13952">bpo-13952</a>: Add .csv to mimetypes.types_map. Patch by Geoff Wilson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26709">bpo-26709</a>: Fixed Y2038 problem in loading binary PLists.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23735">bpo-23735</a>: Handle terminal resizing with Readline 6.3+ by installing our
own SIGWINCH handler. Patch by Eric Price.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26586">bpo-26586</a>: In http.server, respond with “413 Request header fields too
large” if there are too many header fields to parse, rather than killing
the connection and raising an unhandled exception. Patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22854">bpo-22854</a>: Change BufferedReader.writable() and BufferedWriter.readable()
to always return False.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25195">bpo-25195</a>: Fix a regression in mock.MagicMock. _Call is a subclass of
tuple (changeset 3603bae63c13 only works for classes) so we need to
implement __ne__ ourselves. Patch by Andrew Plummer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26644">bpo-26644</a>: Raise ValueError rather than SystemError when a negative length
is passed to SSLSocket.recv() or read().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23804">bpo-23804</a>: Fix SSL recv(0) and read(0) methods to return zero bytes
instead of up to 1024.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26616">bpo-26616</a>: Fixed a bug in datetime.astimezone() method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21925">bpo-21925</a>: <a class="reference internal" href="../library/warnings.html#warnings.formatwarning" title="warnings.formatwarning"><code class="xref py py-func docutils literal notranslate"><span class="pre">warnings.formatwarning()</span></code></a> now catches exceptions on
<code class="docutils literal notranslate"><span class="pre">linecache.getline(...)</span></code> to be able to log <a class="reference internal" href="../library/exceptions.html#ResourceWarning" title="ResourceWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ResourceWarning</span></code></a>
emitted late during the Python shutdown process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24266">bpo-24266</a>: Ctrl+C during Readline history search now cancels the search
mode when compiled with Readline 7.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26560">bpo-26560</a>: Avoid potential ValueError in BaseHandler.start_response.
Initial patch by Peter Inglesby.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26569">bpo-26569</a>: Fix <a class="reference internal" href="../library/pyclbr.html#pyclbr.readmodule" title="pyclbr.readmodule"><code class="xref py py-func docutils literal notranslate"><span class="pre">pyclbr.readmodule()</span></code></a> and <a class="reference internal" href="../library/pyclbr.html#pyclbr.readmodule_ex" title="pyclbr.readmodule_ex"><code class="xref py py-func docutils literal notranslate"><span class="pre">pyclbr.readmodule_ex()</span></code></a>
to support importing packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26499">bpo-26499</a>: Account for remaining Content-Length in HTTPResponse.readline()
and read1(). Based on patch by Silent Ghost. Also document that
HTTPResponse now supports these methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25320">bpo-25320</a>: Handle sockets in directories unittest discovery is scanning.
Patch from Victor van den Elzen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16181">bpo-16181</a>: cookiejar.http2time() now returns None if year is higher than
datetime.MAXYEAR.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26513">bpo-26513</a>: Fixes platform module detection of Windows Server</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23718">bpo-23718</a>: Fixed parsing time in week 0 before Jan 1. Original patch by
Tamás Bence Gedai.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20589">bpo-20589</a>: Invoking Path.owner() and Path.group() on Windows now raise
NotImplementedError instead of ImportError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26177">bpo-26177</a>: Fixed the keys() method for Canvas and Scrollbar widgets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15068">bpo-15068</a>: Got rid of excessive buffering in the fileinput module. The
bufsize parameter is no longer used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2202">bpo-2202</a>: Fix UnboundLocalError in
AbstractDigestAuthHandler.get_algorithm_impls. Initial patch by Mathieu
Dupuy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25718">bpo-25718</a>: Fixed pickling and copying the accumulate() iterator with total
is None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26475">bpo-26475</a>: Fixed debugging output for regular expressions with the (?x)
flag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26457">bpo-26457</a>: Fixed the subnets() methods in IP network classes for the case
when resulting prefix length is equal to maximal prefix length. Based on
patch by Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26385">bpo-26385</a>: Remove the file if the internal open() call in
NamedTemporaryFile() fails. Patch by Silent Ghost.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26402">bpo-26402</a>: Fix XML-RPC client to retry when the server shuts down a
persistent connection. This was a regression related to the new
http.client.RemoteDisconnected exception in 3.5.0a4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25913">bpo-25913</a>: Leading <code class="docutils literal notranslate"><span class="pre"><~</span></code> is optional now in base64.a85decode() with
adobe=True. Patch by Swati Jaiswal.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26186">bpo-26186</a>: Remove an invalid type check in importlib.util.LazyLoader.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26367">bpo-26367</a>: importlib.__import__() raises SystemError like
builtins.__import__() when <code class="docutils literal notranslate"><span class="pre">level</span></code> is specified but without an
accompanying package specified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26309">bpo-26309</a>: In the “socketserver” module, shut down the request (closing
the connected socket) when verify_request() returns false. Patch by Aviv
Palivoda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25995">bpo-25995</a>: os.walk() no longer uses FDs proportional to the tree depth.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26117">bpo-26117</a>: The os.scandir() iterator now closes file descriptor not only
when the iteration is finished, but when it was failed with error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25911">bpo-25911</a>: Restored support of bytes paths in os.walk() on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26045">bpo-26045</a>: Add UTF-8 suggestion to error message when posting a
non-Latin-1 string with http.client.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12923">bpo-12923</a>: Reset FancyURLopener’s redirect counter even if there is an
exception. Based on patches by Brian Brazil and Daniel Rocco.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25945">bpo-25945</a>: Fixed a crash when unpickle the functools.partial object with
wrong state. Fixed a leak in failed functools.partial constructor. “args”
and “keywords” attributes of functools.partial have now always types tuple
and dict correspondingly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26202">bpo-26202</a>: copy.deepcopy() now correctly copies range() objects with
non-atomic attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23076">bpo-23076</a>: Path.glob() now raises a ValueError if it’s called with an
invalid pattern. Patch by Thomas Nyberg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19883">bpo-19883</a>: Fixed possible integer overflows in zipimport.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26227">bpo-26227</a>: On Windows, getnameinfo(), gethostbyaddr() and
gethostbyname_ex() functions of the socket module now decode the hostname
from the ANSI code page rather than UTF-8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26147">bpo-26147</a>: xmlrpc now works with strings not encodable with used non-UTF-8
encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25935">bpo-25935</a>: Garbage collector now breaks reference loops with OrderedDict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16620">bpo-16620</a>: Fixed AttributeError in msilib.Directory.glob().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26013">bpo-26013</a>: Added compatibility with broken protocol 2 pickles created in
old Python 3 versions (3.4.3 and lower).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25850">bpo-25850</a>: Use cross-compilation by default for 64-bit Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17633">bpo-17633</a>: Improve zipimport’s support for namespace packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24705">bpo-24705</a>: Fix sysconfig._parse_makefile not expanding ${} vars appearing
before $() vars.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22138">bpo-22138</a>: Fix mock.patch behavior when patching descriptors. Restore
original values after patching. Patch contributed by Sean McCully.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25672">bpo-25672</a>: In the ssl module, enable the SSL_MODE_RELEASE_BUFFERS mode
option if it is safe to do so.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26012">bpo-26012</a>: Don’t traverse into symlinks for <code class="docutils literal notranslate"><span class="pre">**</span></code> pattern in
pathlib.Path.[r]glob().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24120">bpo-24120</a>: Ignore PermissionError when traversing a tree with
pathlib.Path.[r]glob(). Patch by Ulrich Petri.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25447">bpo-25447</a>: fileinput now uses sys.stdin as-is if it does not have a buffer
attribute (restores backward compatibility).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25447">bpo-25447</a>: Copying the lru_cache() wrapper object now always works,
independently from the type of the wrapped object (by returning the
original object unchanged).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24103">bpo-24103</a>: Fixed possible use after free in ElementTree.XMLPullParser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25860">bpo-25860</a>: os.fwalk() no longer skips remaining directories when error
occurs. Original patch by Samson Lee.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25914">bpo-25914</a>: Fixed and simplified OrderedDict.__sizeof__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25902">bpo-25902</a>: Fixed various refcount issues in ElementTree iteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25717">bpo-25717</a>: Restore the previous behaviour of tolerating most fstat()
errors when opening files. This was a regression in 3.5a1, and stopped
anonymous temporary files from working in special cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24903">bpo-24903</a>: Fix regression in number of arguments compileall accepts when
‘-d’ is specified. The check on the number of arguments has been dropped
completely as it never worked correctly anyway.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25764">bpo-25764</a>: In the subprocess module, preserve any exception caused by
fork() failure when preexec_fn is used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6478">bpo-6478</a>: _strptime’s regexp cache now is reset after changing timezone
with time.tzset().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14285">bpo-14285</a>: When executing a package with the “python -m package” option,
and package initialization fails, a proper traceback is now reported. The
“runpy” module now lets exceptions from package initialization pass back
to the caller, rather than raising ImportError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19771">bpo-19771</a>: Also in runpy and the “-m” option, omit the irrelevant message
“… is a package and cannot be directly executed” if the package could
not even be initialized (e.g. due to a bad <code class="docutils literal notranslate"><span class="pre">*.pyc</span></code> file).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25177">bpo-25177</a>: Fixed problem with the mean of very small and very large
numbers. As a side effect, statistics.mean and statistics.variance should
be significantly faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25718">bpo-25718</a>: Fixed copying object with state with boolean value is false.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10131">bpo-10131</a>: Fixed deep copying of minidom documents. Based on patch by
Marian Ganisin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25725">bpo-25725</a>: Fixed a reference leak in pickle.loads() when unpickling
invalid data including tuple instructions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25663">bpo-25663</a>: In the Readline completer, avoid listing duplicate global
names, and search the global namespace before searching builtins.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25688">bpo-25688</a>: Fixed file leak in ElementTree.iterparse() raising an error.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23914">bpo-23914</a>: Fixed SystemError raised by unpickler on broken pickle data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25691">bpo-25691</a>: Fixed crash on deleting ElementTree.Element attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25624">bpo-25624</a>: ZipFile now always writes a ZIP_STORED header for directory
entries. Patch by Dingyuan Wang.</p></li>
<li><p>Skip getaddrinfo if host is already resolved. Patch by A. Jesse Jiryu
Davis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26050">bpo-26050</a>: Add asyncio.StreamReader.readuntil() method. Patch by Марк
Коренберг.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25924">bpo-25924</a>: Avoid unnecessary serialization of getaddrinfo(3) calls on OS X
versions 10.5 or higher. Original patch by A. Jesse Jiryu Davis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26406">bpo-26406</a>: Avoid unnecessary serialization of getaddrinfo(3) calls on
current versions of OpenBSD and NetBSD. Patch by A. Jesse Jiryu Davis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26848">bpo-26848</a>: Fix asyncio/subprocess.communicate() to handle empty input.
Patch by Jack O’Connor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27040">bpo-27040</a>: Add loop.get_exception_handler method</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27041">bpo-27041</a>: asyncio: Add loop.create_future method</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27223">bpo-27223</a>: asyncio: Fix _read_ready and _write_ready to respect
_conn_lost. Patch by Łukasz Langa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22970">bpo-22970</a>: asyncio: Fix inconsistency cancelling Condition.wait. Patch by
David Coles.</p></li>
</ul>
</section>
<section id="id772">
<h3>IDLE<a class="headerlink" href="#id772" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5124">bpo-5124</a>: Paste with text selected now replaces the selection on X11. This
matches how paste works on Windows, Mac, most modern Linux apps, and ttk
widgets. Original patch by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24759">bpo-24759</a>: Make clear in idlelib.idle_test.__init__ that the directory is
a private implementation of test.test_idle and tool for maintainers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27196">bpo-27196</a>: Stop ‘ThemeChanged’ warnings when running IDLE tests. These
persisted after other warnings were suppressed in #20567. Apply Serhiy
Storchaka’s update_idletasks solution to four test files. Record this
additional advice in idle_test/README.txt</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20567">bpo-20567</a>: Revise idle_test/README.txt with advice about avoiding tk
warning messages from tests. Apply advice to several IDLE tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27117">bpo-27117</a>: Make colorizer htest and turtledemo work with dark themes. Move
code for configuring text widget colors to a new function.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26673">bpo-26673</a>: When tk reports font size as 0, change to size 10. Such fonts
on Linux prevented the configuration dialog from opening.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21939">bpo-21939</a>: Add test for IDLE’s percolator. Original patch by Saimadhav
Heblikar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21676">bpo-21676</a>: Add test for IDLE’s replace dialog. Original patch by Saimadhav
Heblikar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18410">bpo-18410</a>: Add test for IDLE’s search dialog. Original patch by Westley
Martínez.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21703">bpo-21703</a>: Add test for IDLE’s undo delegator. Original patch by Saimadhav
Heblikar .</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27044">bpo-27044</a>: Add ConfigDialog.remove_var_callbacks to stop memory leaks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23977">bpo-23977</a>: Add more asserts to test_delegator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20640">bpo-20640</a>: Add tests for idlelib.configHelpSourceEdit. Patch by Saimadhav
Heblikar.</p></li>
<li><p>In the ‘IDLE-console differences’ section of the IDLE doc, clarify how
running with IDLE affects sys.modules and the standard streams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25507">bpo-25507</a>: fix incorrect change in IOBinding that prevented printing.
Augment IOBinding htest to include all major IOBinding functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25905">bpo-25905</a>: Revert unwanted conversion of ‘ to ’ RIGHT SINGLE QUOTATION
MARK in README.txt and open this and NEWS.txt with ‘ascii’. Re-encode
CREDITS.txt to utf-8 and open it with ‘utf-8’.</p></li>
</ul>
</section>
<section id="id773">
<h3>Documentation<a class="headerlink" href="#id773" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19489">bpo-19489</a>: Moved the search box from the sidebar to the header and footer
of each page. Patch by Ammar Askar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24136">bpo-24136</a>: Document the new <span class="target" id="index-473"></span><a class="pep reference external" href="https://peps.python.org/pep-0448/"><strong>PEP 448</strong></a> unpacking syntax of 3.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26736">bpo-26736</a>: Used HTTPS for external links in the documentation if possible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6953">bpo-6953</a>: Rework the Readline module documentation to group related
functions together, and add more details such as what underlying Readline
functions and variables are accessed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23606">bpo-23606</a>: Adds note to ctypes documentation regarding cdll.msvcrt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25500">bpo-25500</a>: Fix documentation to not claim that __import__ is searched for
in the global scope.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26014">bpo-26014</a>: Update 3.x packaging documentation: * “See also” links to the
new docs are now provided in the legacy pages * links to setuptools
documentation have been updated</p></li>
</ul>
</section>
<section id="id774">
<h3>Tests<a class="headerlink" href="#id774" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21916">bpo-21916</a>: Added tests for the turtle module. Patch by ingrid, Gregory
Loyse and Jelle Zijlstra.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26523">bpo-26523</a>: The multiprocessing thread pool (multiprocessing.dummy.Pool)
was untested.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26015">bpo-26015</a>: Added new tests for pickling iterators of mutable sequences.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26325">bpo-26325</a>: Added test.support.check_no_resource_warning() to check that no
ResourceWarning is emitted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25940">bpo-25940</a>: Changed test_ssl to use self-signed.pythontest.net. This
avoids relying on svn.python.org, which recently changed root certificate.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25616">bpo-25616</a>: Tests for OrderedDict are extracted from test_collections into
separate file test_ordered_dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26583">bpo-26583</a>: Skip test_timestamp_overflow in test_import if bytecode files
cannot be written.</p></li>
</ul>
</section>
<section id="id775">
<h3>Build<a class="headerlink" href="#id775" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26884">bpo-26884</a>: Fix linking extension modules for cross builds. Patch by Xavier
de Gaye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22359">bpo-22359</a>: Disable the rules for running _freeze_importlib and pgen when
cross-compiling. The output of these programs is normally saved with the
source code anyway, and is still regenerated when doing a native build.
Patch by Xavier de Gaye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27229">bpo-27229</a>: Fix the cross-compiling pgen rule for in-tree builds. Patch by
Xavier de Gaye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21668">bpo-21668</a>: Link audioop, _datetime, _ctypes_test modules to libm, except
on Mac OS X. Patch written by Xavier de Gaye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25702">bpo-25702</a>: A –with-lto configure option has been added that will enable
link time optimizations at build time during a make profile-opt. Some
compilers and toolchains are known to not produce stable code when using
LTO, be sure to test things thoroughly before relying on it. It can
provide a few % speed up over profile-opt alone.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26624">bpo-26624</a>: Adds validation of ucrtbase[d].dll version with warning for old
versions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17603">bpo-17603</a>: Avoid error about nonexistent fileblocks.o file by using a
lower-level check for st_blocks in struct stat.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26079">bpo-26079</a>: Fixing the build output folder for tix-8.4.3.6. Patch by Bjoern
Thiel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26465">bpo-26465</a>: Update Windows builds to use OpenSSL 1.0.2g.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24421">bpo-24421</a>: Compile Modules/_math.c once, before building extensions.
Previously it could fail to compile properly if the math and cmath builds
were concurrent.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25348">bpo-25348</a>: Added <code class="docutils literal notranslate"><span class="pre">--pgo</span></code> and <code class="docutils literal notranslate"><span class="pre">--pgo-job</span></code> arguments to
<code class="docutils literal notranslate"><span class="pre">PCbuild\build.bat</span></code> for building with Profile-Guided Optimization. The
old <code class="docutils literal notranslate"><span class="pre">PCbuild\build_pgo.bat</span></code> script is now deprecated, and simply calls
<code class="docutils literal notranslate"><span class="pre">PCbuild\build.bat</span> <span class="pre">--pgo</span> <span class="pre">%*</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25827">bpo-25827</a>: Add support for building with ICC to <code class="docutils literal notranslate"><span class="pre">configure</span></code>, including a
new <code class="docutils literal notranslate"><span class="pre">--with-icc</span></code> flag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25696">bpo-25696</a>: Fix installation of Python on UNIX with make -j9.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26930">bpo-26930</a>: Update OS X 10.5+ 32-bit-only installer to build and link with
OpenSSL 1.0.2h.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26268">bpo-26268</a>: Update Windows builds to use OpenSSL 1.0.2f.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25136">bpo-25136</a>: Support Apple Xcode 7’s new textual SDK stub libraries.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24324">bpo-24324</a>: Do not enable unreachable code warnings when using gcc as the
option does not work correctly in older versions of gcc and has been
silently removed as of gcc-4.5.</p></li>
</ul>
</section>
<section id="id776">
<h3>Windows<a class="headerlink" href="#id776" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=27053">bpo-27053</a>: Updates make_zip.py to correctly generate library ZIP file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26268">bpo-26268</a>: Update the prepare_ssl.py script to handle OpenSSL releases
that don’t include the contents of the include directory (that is, 1.0.2e
and later).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26071">bpo-26071</a>: bdist_wininst created binaries fail to start and find 32bit
Python</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26073">bpo-26073</a>: Update the list of magic numbers in launcher</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26065">bpo-26065</a>: Excludes venv from library when generating embeddable distro.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17500">bpo-17500</a>: Remove unused and outdated icons. (See also:
<a class="reference external" href="https://github.com/python/pythondotorg/issues/945">https://github.com/python/pythondotorg/issues/945</a>)</p></li>
</ul>
</section>
<section id="id777">
<h3>Tools/Demos<a class="headerlink" href="#id777" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26799">bpo-26799</a>: Fix python-gdb.py: don’t get C types once when the Python code
is loaded, but get C types on demand. The C types can change if
python-gdb.py is loaded before the Python executable. Patch written by
Thomas Ilsche.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26271">bpo-26271</a>: Fix the Freeze tool to properly use flags passed through
configure. Patch by Daniel Shaulov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26489">bpo-26489</a>: Add dictionary unpacking support to Tools/parser/unparse.py.
Patch by Guo Ci Teo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=26316">bpo-26316</a>: Fix variable name typo in Argument Clinic.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-1-final">
<h2>Python 3.5.1 final<a class="headerlink" href="#python-3-5-1-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-12-06</em></p>
<section id="id778">
<h3>Core and Builtins<a class="headerlink" href="#id778" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25709">bpo-25709</a>: Fixed problem with in-place string concatenation and utf-8
cache.</p></li>
</ul>
</section>
<section id="id779">
<h3>Windows<a class="headerlink" href="#id779" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25715">bpo-25715</a>: Python 3.5.1 installer shows wrong upgrade path and incorrect
logic for launcher detection.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-1-release-candidate-1">
<h2>Python 3.5.1 release candidate 1<a class="headerlink" href="#python-3-5-1-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-11-22</em></p>
<section id="id780">
<h3>Core and Builtins<a class="headerlink" href="#id780" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25630">bpo-25630</a>: Fix a possible segfault during argument parsing in functions
that accept filesystem paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23564">bpo-23564</a>: Fixed a partially broken sanity check in the _posixsubprocess
internals regarding how fds_to_pass were passed to the child. The bug had
no actual impact as subprocess.py already avoided it.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25388">bpo-25388</a>: Fixed tokenizer crash when processing undecodable source code
with a null byte.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25462">bpo-25462</a>: The hash of the key now is calculated only once in most
operations in C implementation of OrderedDict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22995">bpo-22995</a>: Default implementation of __reduce__ and __reduce_ex__ now
rejects builtin types with not defined __new__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25555">bpo-25555</a>: Fix parser and AST: fill lineno and col_offset of “arg” node
when compiling AST from Python objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24802">bpo-24802</a>: Avoid buffer overreads when int(), float(), compile(), exec()
and eval() are passed bytes-like objects. These objects are not
necessarily terminated by a null byte, but the functions assumed they
were.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24726">bpo-24726</a>: Fixed a crash and leaking NULL in repr() of OrderedDict that
was mutated by direct calls of dict methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25449">bpo-25449</a>: Iterating OrderedDict with keys with unstable hash now raises
KeyError in C implementations as well as in Python implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25395">bpo-25395</a>: Fixed crash when highly nested OrderedDict structures were
garbage collected.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25274">bpo-25274</a>: sys.setrecursionlimit() now raises a RecursionError if the new
recursion limit is too low depending at the current recursion depth.
Modify also the “lower-water mark” formula to make it monotonic. This mark
is used to decide when the overflowed flag of the thread state is reset.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24402">bpo-24402</a>: Fix input() to prompt to the redirected stdout when
sys.stdout.fileno() fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24806">bpo-24806</a>: Prevent builtin types that are not allowed to be subclassed
from being subclassed through multiple inheritance.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24848">bpo-24848</a>: Fixed a number of bugs in UTF-7 decoding of misformed data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25280">bpo-25280</a>: Import trace messages emitted in verbose (-v) mode are no
longer formatted twice.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25003">bpo-25003</a>: On Solaris 11.3 or newer, os.urandom() now uses the getrandom()
function instead of the getentropy() function. The getentropy() function
is blocking to generate very good quality entropy, os.urandom() doesn’t
need such high-quality entropy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25182">bpo-25182</a>: The stdprinter (used as sys.stderr before the io module is
imported at startup) now uses the backslashreplace error handler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25131">bpo-25131</a>: Make the line number and column offset of set/dict literals and
comprehensions correspond to the opening brace.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25150">bpo-25150</a>: Hide the private <code class="samp docutils literal notranslate"><span class="pre">_Py_atomic_</span><em><span class="pre">xxx</span></em></code> symbols from the
public Python.h header to fix a compilation error with OpenMP.
PyThreadState_GET() becomes an alias to PyThreadState_Get() to avoid ABI
incompatibilities.</p></li>
</ul>
</section>
<section id="id781">
<h3>Library<a class="headerlink" href="#id781" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25626">bpo-25626</a>: Change three zlib functions to accept sizes that fit in
Py_ssize_t, but internally cap those sizes to UINT_MAX. This resolves a
regression in 3.5 where GzipFile.read() failed to read chunks larger than
2 or 4 GiB. The change affects the zlib.Decompress.decompress()
max_length parameter, the zlib.decompress() bufsize parameter, and the
zlib.Decompress.flush() length parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25583">bpo-25583</a>: Avoid incorrect errors raised by os.makedirs(exist_ok=True)
when the OS gives priority to errors such as EACCES over EEXIST.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25593">bpo-25593</a>: Change semantics of EventLoop.stop() in asyncio.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6973">bpo-6973</a>: When we know a subprocess.Popen process has died, do not allow
the send_signal(), terminate(), or kill() methods to do anything as they
could potentially signal a different process.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25590">bpo-25590</a>: In the Readline completer, only call getattr() once per
attribute.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25498">bpo-25498</a>: Fix a crash when garbage-collecting ctypes objects created by
wrapping a memoryview. This was a regression made in 3.5a1. Based on
patch by Eryksun.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25584">bpo-25584</a>: Added “escape” to the __all__ list in the glob module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25584">bpo-25584</a>: Fixed recursive glob() with patterns starting with <code class="docutils literal notranslate"><span class="pre">**</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25446">bpo-25446</a>: Fix regression in smtplib’s AUTH LOGIN support.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18010">bpo-18010</a>: Fix the pydoc web server’s module search function to handle
exceptions from importing packages.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25554">bpo-25554</a>: Got rid of circular references in regular expression parsing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25510">bpo-25510</a>: fileinput.FileInput.readline() now returns b’’ instead of ‘’ at
the end if the FileInput was opened with binary mode. Patch by Ryosuke
Ito.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25503">bpo-25503</a>: Fixed inspect.getdoc() for inherited docstrings of properties.
Original patch by John Mark Vandenberg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25515">bpo-25515</a>: Always use os.urandom as a source of randomness in uuid.uuid4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21827">bpo-21827</a>: Fixed textwrap.dedent() for the case when largest common
whitespace is a substring of smallest leading whitespace. Based on patch
by Robert Li.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25447">bpo-25447</a>: The lru_cache() wrapper objects now can be copied and pickled
(by returning the original object unchanged).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25390">bpo-25390</a>: typing: Don’t crash on Union[str, Pattern].</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25441">bpo-25441</a>: asyncio: Raise error from drain() when socket is closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25410">bpo-25410</a>: Cleaned up and fixed minor bugs in C implementation of
OrderedDict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25411">bpo-25411</a>: Improved Unicode support in SMTPHandler through better use of
the email package. Thanks to user simon04 for the patch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25407">bpo-25407</a>: Remove mentions of the formatter module being removed in Python
3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25406">bpo-25406</a>: Fixed a bug in C implementation of OrderedDict.move_to_end()
that caused segmentation fault or hang in iterating after moving several
items to the start of ordered dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25364">bpo-25364</a>: zipfile now works in threads disabled builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25328">bpo-25328</a>: smtpd’s SMTPChannel now correctly raises a ValueError if both
decode_data and enable_SMTPUTF8 are set to true.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25316">bpo-25316</a>: distutils raises OSError instead of DistutilsPlatformError when
MSVC is not installed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25380">bpo-25380</a>: Fixed protocol for the STACK_GLOBAL opcode in
pickletools.opcodes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23972">bpo-23972</a>: Updates asyncio datagram create method allowing reuseport and
reuseaddr socket options to be set prior to binding the socket. Mirroring
the existing asyncio create_server method the reuseaddr option for
datagram sockets defaults to True if the O/S is ‘posix’ (except if the
platform is Cygwin). Patch by Chris Laws.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25304">bpo-25304</a>: Add asyncio.run_coroutine_threadsafe(). This lets you submit a
coroutine to a loop from another thread, returning a
concurrent.futures.Future. By Vincent Michel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25232">bpo-25232</a>: Fix CGIRequestHandler to split the query from the URL at the
first question mark (?) rather than the last. Patch from Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24657">bpo-24657</a>: Prevent CGIRequestHandler from collapsing slashes in the query
part of the URL as if it were a path. Patch from Xiang Zhang.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24483">bpo-24483</a>: C implementation of functools.lru_cache() now calculates key’s
hash only once.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22958">bpo-22958</a>: Constructor and update method of weakref.WeakValueDictionary
now accept the self and the dict keyword arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22609">bpo-22609</a>: Constructor of collections.UserDict now accepts the self
keyword argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25111">bpo-25111</a>: Fixed comparison of traceback.FrameSummary.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25262">bpo-25262</a>: Added support for BINBYTES8 opcode in Python implementation of
unpickler. Highest 32 bits of 64-bit size for BINUNICODE8 and BINBYTES8
opcodes no longer silently ignored on 32-bit platforms in C
implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25034">bpo-25034</a>: Fix string.Formatter problem with auto-numbering and nested
format_specs. Patch by Anthon van der Neut.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25233">bpo-25233</a>: Rewrite the guts of asyncio.Queue and asyncio.Semaphore to be
more understandable and correct.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25203">bpo-25203</a>: Failed readline.set_completer_delims() no longer left the
module in inconsistent state.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23600">bpo-23600</a>: Default implementation of tzinfo.fromutc() was returning wrong
results in some cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23329">bpo-23329</a>: Allow the ssl module to be built with older versions of
LibreSSL.</p></li>
<li><p>Prevent overflow in _Unpickler_Read.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25047">bpo-25047</a>: The XML encoding declaration written by Element Tree now
respects the letter case given by the user. This restores the ability to
write encoding names in uppercase like “UTF-8”, which worked in Python 2.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25135">bpo-25135</a>: Make deque_clear() safer by emptying the deque before clearing.
This helps avoid possible reentrancy issues.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19143">bpo-19143</a>: platform module now reads Windows version from kernel32.dll to
avoid compatibility shims.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25092">bpo-25092</a>: Fix datetime.strftime() failure when errno was already set to
EINVAL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23517">bpo-23517</a>: Fix rounding in fromtimestamp() and utcfromtimestamp() methods
of datetime.datetime: microseconds are now rounded to nearest with ties
going to nearest even integer (ROUND_HALF_EVEN), instead of being rounding
towards minus infinity (ROUND_FLOOR). It’s important that these methods
use the same rounding mode than datetime.timedelta to keep the property:
(datetime(1970,1,1) + timedelta(seconds=t)) ==
datetime.utcfromtimestamp(t). It also the rounding mode used by
round(float) for example.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25155">bpo-25155</a>: Fix datetime.datetime.now() and datetime.datetime.utcnow() on
Windows to support date after year 2038. It was a regression introduced in
Python 3.5.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25108">bpo-25108</a>: Omitted internal frames in traceback functions print_stack(),
format_stack(), and extract_stack() called without arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25118">bpo-25118</a>: Fix a regression of Python 3.5.0 in os.waitpid() on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24684">bpo-24684</a>: socket.socket.getaddrinfo() now calls
PyUnicode_AsEncodedString() instead of calling the encode() method of the
host, to handle correctly custom string with an encode() method which
doesn’t return a byte string. The encoder of the IDNA codec is now called
directly instead of calling the encode() method of the string.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25060">bpo-25060</a>: Correctly compute stack usage of the BUILD_MAP opcode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24857">bpo-24857</a>: Comparing call_args to a long sequence now correctly returns a
boolean result instead of raising an exception. Patch by A Kaptur.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23144">bpo-23144</a>: Make sure that HTMLParser.feed() returns all the data, even
when convert_charrefs is True.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24982">bpo-24982</a>: shutil.make_archive() with the “zip” format now adds entries
for directories (including empty directories) in ZIP file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25019">bpo-25019</a>: Fixed a crash caused by setting non-string key of expat parser.
Based on patch by John Leitch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16180">bpo-16180</a>: Exit pdb if file has syntax error, instead of trapping user in
an infinite loop. Patch by Xavier de Gaye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24891">bpo-24891</a>: Fix a race condition at Python startup if the file descriptor
of stdin (0), stdout (1) or stderr (2) is closed while Python is creating
sys.stdin, sys.stdout and sys.stderr objects. These attributes are now set
to None if the creation of the object failed, instead of raising an
OSError exception. Initial patch written by Marco Paolini.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24992">bpo-24992</a>: Fix error handling and a race condition (related to garbage
collection) in collections.OrderedDict constructor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24881">bpo-24881</a>: Fixed setting binary mode in Python implementation of FileIO on
Windows and Cygwin. Patch from Akira Li.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25578">bpo-25578</a>: Fix (another) memory leak in SSLSocket.getpeercer().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25530">bpo-25530</a>: Disable the vulnerable SSLv3 protocol by default when creating
ssl.SSLContext.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25569">bpo-25569</a>: Fix memory leak in SSLSocket.getpeercert().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25471">bpo-25471</a>: Sockets returned from accept() shouldn’t appear to be
nonblocking.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25319">bpo-25319</a>: When threading.Event is reinitialized, the underlying condition
should use a regular lock rather than a recursive lock.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21112">bpo-21112</a>: Fix regression in unittest.expectedFailure on subclasses. Patch
from Berker Peksag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24764">bpo-24764</a>: cgi.FieldStorage.read_multi() now ignores the Content-Length
header in part headers. Patch written by Peter Landry and reviewed by
Pierre Quentel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24913">bpo-24913</a>: Fix overrun error in deque.index(). Found by John Leitch and
Bryce Darling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24774">bpo-24774</a>: Fix docstring in http.server.test. Patch from Chiu-Hsiang Hsu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21159">bpo-21159</a>: Improve message in
configparser.InterpolationMissingOptionError. Patch from Łukasz Langa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20362">bpo-20362</a>: Honour TestCase.longMessage correctly in assertRegex. Patch
from Ilia Kurenkov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23572">bpo-23572</a>: Fixed functools.singledispatch on classes with false
metaclasses. Patch by Ethan Furman.</p></li>
<li><p>asyncio: ensure_future() now accepts awaitable objects.</p></li>
</ul>
</section>
<section id="id782">
<h3>IDLE<a class="headerlink" href="#id782" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15348">bpo-15348</a>: Stop the debugger engine (normally in a user process) before
closing the debugger window (running in the IDLE process). This prevents
the RuntimeErrors that were being caught and ignored.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24455">bpo-24455</a>: Prevent IDLE from hanging when a) closing the shell while the
debugger is active (15347); b) closing the debugger with the [X] button
(15348); and c) activating the debugger when already active (24455). The
patch by Mark Roseman does this by making two changes. 1. Suspend and
resume the gui.interaction method with the tcl vwait mechanism intended
for this purpose (instead of root.mainloop & .quit). 2. In gui.run, allow
any existing interaction to terminate first.</p></li>
<li><p>Change ‘The program’ to ‘Your program’ in an IDLE ‘kill program?’ message
to make it clearer that the program referred to is the currently running
user program, not IDLE itself.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24750">bpo-24750</a>: Improve the appearance of the IDLE editor window status bar.
Patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25313">bpo-25313</a>: Change the handling of new built-in text color themes to better
address the compatibility problem introduced by the addition of IDLE Dark.
Consistently use the revised idleConf.CurrentTheme everywhere in idlelib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24782">bpo-24782</a>: Extension configuration is now a tab in the IDLE Preferences
dialog rather than a separate dialog. The former tabs are now a sorted
list. Patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22726">bpo-22726</a>: Re-activate the config dialog help button with some content
about the other buttons and the new IDLE Dark theme.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24820">bpo-24820</a>: IDLE now has an ‘IDLE Dark’ built-in text color theme. It is
more or less IDLE Classic inverted, with a cobalt blue background.
Strings, comments, keywords, … are still green, red, orange, … . To
use it with IDLEs released before November 2015, hit the ‘Save as New
Custom Theme’ button and enter a new name, such as ‘Custom Dark’. The
custom theme will work with any IDLE release, and can be modified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25224">bpo-25224</a>: README.txt is now an idlelib index for IDLE developers and
curious users. The previous user content is now in the IDLE doc chapter.
‘IDLE’ now means ‘Integrated Development and Learning Environment’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24820">bpo-24820</a>: Users can now set breakpoint colors in Settings -> Custom
Highlighting. Original patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24972">bpo-24972</a>: Inactive selection background now matches active selection
background, as configured by users, on all systems. Found items are now
always highlighted on Windows. Initial patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24570">bpo-24570</a>: Idle: make calltip and completion boxes appear on Macs affected
by a tk regression. Initial patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24988">bpo-24988</a>: Idle ScrolledList context menus (used in debugger) now work on
Mac Aqua. Patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24801">bpo-24801</a>: Make right-click for context menu work on Mac Aqua. Patch by
Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25173">bpo-25173</a>: Associate tkinter messageboxes with a specific widget. For Mac
OSX, make them a ‘sheet’. Patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25198">bpo-25198</a>: Enhance the initial html viewer now used for Idle Help.
Properly indent fixed-pitch text (patch by Mark Roseman). Give code
snippet a very Sphinx-like light blueish-gray background. Re-use initial
width and height set by users for shell and editor. When the Table of
Contents (TOC) menu is used, put the section header at the top of the
screen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25225">bpo-25225</a>: Condense and rewrite Idle doc section on text colors.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21995">bpo-21995</a>: Explain some differences between IDLE and console Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22820">bpo-22820</a>: Explain need for <em>print</em> when running file from Idle editor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25224">bpo-25224</a>: Doc: augment Idle feature list and no-subprocess section.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25219">bpo-25219</a>: Update doc for Idle command line options. Some were missing and
notes were not correct.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24861">bpo-24861</a>: Most of idlelib is private and subject to change. Use
idleib.idle.* to start Idle. See idlelib.__init__.__doc__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25199">bpo-25199</a>: Idle: add synchronization comments for future maintainers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16893">bpo-16893</a>: Replace help.txt with help.html for Idle doc display. The new
idlelib/help.html is rstripped Doc/build/html/library/idle.html. It looks
better than help.txt and will better document Idle as released. The
tkinter html viewer that works for this file was written by Mark Roseman.
The now unused EditorWindow.HelpDialog class and helt.txt file are
deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24199">bpo-24199</a>: Deprecate unused idlelib.idlever with possible removal in 3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24790">bpo-24790</a>: Remove extraneous code (which also create 2 & 3 conflicts).</p></li>
</ul>
</section>
<section id="id783">
<h3>Documentation<a class="headerlink" href="#id783" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22558">bpo-22558</a>: Add remaining doc links to source code for Python-coded
modules. Patch by Yoni Lavi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12067">bpo-12067</a>: Rewrite Comparisons section in the Expressions chapter of the
language reference. Some of the details of comparing mixed types were
incorrect or ambiguous. NotImplemented is only relevant at a lower level
than the Expressions chapter. Added details of comparing range() objects,
and default behaviour and consistency suggestions for user-defined
classes. Patch from Andy Maier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24952">bpo-24952</a>: Clarify the default size argument of stack_size() in the
“threading” and “_thread” modules. Patch from Mattip.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23725">bpo-23725</a>: Overhaul tempfile docs. Note deprecated status of mktemp. Patch
from Zbigniew Jędrzejewski-Szmek.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24808">bpo-24808</a>: Update the types of some PyTypeObject fields. Patch by Joseph
Weston.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22812">bpo-22812</a>: Fix unittest discovery examples. Patch from Pam McA’Nulty.</p></li>
</ul>
</section>
<section id="id784">
<h3>Tests<a class="headerlink" href="#id784" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25449">bpo-25449</a>: Added tests for OrderedDict subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25099">bpo-25099</a>: Make test_compileall not fail when an entry on sys.path cannot
be written to (commonly seen in administrative installs on Windows).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23919">bpo-23919</a>: Prevents assert dialogs appearing in the test suite.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PCbuild\rt.bat</span></code> now accepts an unlimited number of arguments to pass
along to regrtest.py. Previously there was a limit of 9.</p></li>
</ul>
</section>
<section id="id785">
<h3>Build<a class="headerlink" href="#id785" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24915">bpo-24915</a>: Add LLVM support for PGO builds and use the test suite to
generate the profile data. Initial patch by Alecsandru Patrascu of Intel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24910">bpo-24910</a>: Windows MSIs now have unique display names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24986">bpo-24986</a>: It is now possible to build Python on Windows without errors
when external libraries are not available.</p></li>
</ul>
</section>
<section id="id786">
<h3>Windows<a class="headerlink" href="#id786" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25450">bpo-25450</a>: Updates shortcuts to start Python in installation directory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25164">bpo-25164</a>: Changes default all-users install directory to match per-user
directory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25143">bpo-25143</a>: Improves installer error messages for unsupported platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25163">bpo-25163</a>: Display correct directory in installer when using non-default
settings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25361">bpo-25361</a>: Disables use of SSE2 instructions in Windows 32-bit build</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25089">bpo-25089</a>: Adds logging to installer for case where launcher is not
selected on upgrade.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25165">bpo-25165</a>: Windows uninstallation should not remove launcher if other
versions remain</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25112">bpo-25112</a>: py.exe launcher is missing icons</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25102">bpo-25102</a>: Windows installer does not precompile for -O or -OO.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25081">bpo-25081</a>: Makes Back button in installer go back to upgrade page when
upgrading.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25091">bpo-25091</a>: Increases font size of the installer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25126">bpo-25126</a>: Clarifies that the non-web installer will download some
components.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25213">bpo-25213</a>: Restores requestedExecutionLevel to manifest to disable UAC
virtualization.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25022">bpo-25022</a>: Removed very outdated PC/example_nt/ directory.</p></li>
</ul>
</section>
<section id="id787">
<h3>Tools/Demos<a class="headerlink" href="#id787" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25440">bpo-25440</a>: Fix output of python-config –extension-suffix.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-final">
<h2>Python 3.5.0 final<a class="headerlink" href="#python-3-5-0-final" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-09-13</em></p>
<section id="id788">
<h3>Build<a class="headerlink" href="#id788" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25071">bpo-25071</a>: Windows installer should not require TargetDir parameter when
installing quietly.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-release-candidate-4">
<h2>Python 3.5.0 release candidate 4<a class="headerlink" href="#python-3-5-0-release-candidate-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-09-09</em></p>
<section id="id789">
<h3>Library<a class="headerlink" href="#id789" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25029">bpo-25029</a>: Fixes MemoryError in test_strptime.</p></li>
</ul>
</section>
<section id="id790">
<h3>Build<a class="headerlink" href="#id790" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=25027">bpo-25027</a>: Reverts partial-static build options and adds vcruntime140.dll
to Windows installation.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-release-candidate-3">
<h2>Python 3.5.0 release candidate 3<a class="headerlink" href="#python-3-5-0-release-candidate-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-09-07</em></p>
<section id="id791">
<h3>Core and Builtins<a class="headerlink" href="#id791" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24305">bpo-24305</a>: Prevent import subsystem stack frames from being counted by the
warnings.warn(stacklevel=) parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24912">bpo-24912</a>: Prevent __class__ assignment to immutable built-in objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24975">bpo-24975</a>: Fix AST compilation for <span class="target" id="index-474"></span><a class="pep reference external" href="https://peps.python.org/pep-0448/"><strong>PEP 448</strong></a> syntax.</p></li>
</ul>
</section>
<section id="id792">
<h3>Library<a class="headerlink" href="#id792" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24917">bpo-24917</a>: time_strftime() buffer over-read.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24748">bpo-24748</a>: To resolve a compatibility problem found with py2exe and
pywin32, imp.load_dynamic() once again ignores previously loaded modules
to support Python modules replacing themselves with extension modules.
Patch by Petr Viktorin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24635">bpo-24635</a>: Fixed a bug in typing.py where isinstance([], typing.Iterable)
would return True once, then False on subsequent calls.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24989">bpo-24989</a>: Fixed buffer overread in BytesIO.readline() if a position is
set beyond size. Based on patch by John Leitch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24913">bpo-24913</a>: Fix overrun error in deque.index(). Found by John Leitch and
Bryce Darling.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-release-candidate-2">
<h2>Python 3.5.0 release candidate 2<a class="headerlink" href="#python-3-5-0-release-candidate-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-08-25</em></p>
<section id="id793">
<h3>Core and Builtins<a class="headerlink" href="#id793" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24769">bpo-24769</a>: Interpreter now starts properly when dynamic loading is
disabled. Patch by Petr Viktorin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21167">bpo-21167</a>: NAN operations are now handled correctly when python is
compiled with ICC even if -fp-model strict is not specified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24492">bpo-24492</a>: A “package” lacking a __name__ attribute when trying to perform
a <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">..</span> <span class="pre">import</span> <span class="pre">...</span></code> statement will trigger an ImportError instead of
an AttributeError.</p></li>
</ul>
</section>
<section id="id794">
<h3>Library<a class="headerlink" href="#id794" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24847">bpo-24847</a>: Removes vcruntime140.dll dependency from Tcl/Tk.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24839">bpo-24839</a>: platform._syscmd_ver raises DeprecationWarning</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24867">bpo-24867</a>: Fix Task.get_stack() for ‘async def’ coroutines</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-release-candidate-1">
<h2>Python 3.5.0 release candidate 1<a class="headerlink" href="#python-3-5-0-release-candidate-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-08-09</em></p>
<section id="id795">
<h3>Core and Builtins<a class="headerlink" href="#id795" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24667">bpo-24667</a>: Resize odict in all cases that the underlying dict resizes.</p></li>
</ul>
</section>
<section id="id796">
<h3>Library<a class="headerlink" href="#id796" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24824">bpo-24824</a>: Signatures of codecs.encode() and codecs.decode() now are
compatible with pydoc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24634">bpo-24634</a>: Importing uuid should not try to load libc on Windows</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24798">bpo-24798</a>: _msvccompiler.py doesn’t properly support manifests</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4395">bpo-4395</a>: Better testing and documentation of binary operators. Patch by
Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23973">bpo-23973</a>: Update typing.py from GitHub repo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23004">bpo-23004</a>: mock_open() now reads binary data correctly when the type of
read_data is bytes. Initial patch by Aaron Hill.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23888">bpo-23888</a>: Handle fractional time in cookie expiry. Patch by ssh.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23652">bpo-23652</a>: Make it possible to compile the select module against the libc
headers from the Linux Standard Base, which do not include some EPOLL
macros. Patch by Matt Frank.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22932">bpo-22932</a>: Fix timezones in email.utils.formatdate. Patch from Dmitry
Shachnev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23779">bpo-23779</a>: imaplib raises TypeError if authenticator tries to abort. Patch
from Craig Holmquist.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23319">bpo-23319</a>: Fix ctypes.BigEndianStructure, swap correctly bytes. Patch
written by Matthieu Gautier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23254">bpo-23254</a>: Document how to close the TCPServer listening socket. Patch
from Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19450">bpo-19450</a>: Update Windows and OS X installer builds to use SQLite 3.8.11.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17527">bpo-17527</a>: Add PATCH to wsgiref.validator. Patch from Luca Sbardella.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24791">bpo-24791</a>: Fix grammar regression for call syntax: ‘g(*a or b)’.</p></li>
</ul>
</section>
<section id="id797">
<h3>IDLE<a class="headerlink" href="#id797" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23672">bpo-23672</a>: Allow Idle to edit and run files with astral chars in name.
Patch by Mohd Sanad Zaki Rizvi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24745">bpo-24745</a>: Idle editor default font. Switch from Courier to
platform-sensitive TkFixedFont. This should not affect current customized
font selections. If there is a problem, edit
$HOME/.idlerc/config-main.cfg and remove ‘<code class="samp docutils literal notranslate"><span class="pre">font</span><em><span class="pre">xxx</span></em></code>’ entries from
[Editor Window]. Patch by Mark Roseman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21192">bpo-21192</a>: Idle editor. When a file is run, put its name in the restart
bar. Do not print false prompts. Original patch by Adnan Umer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13884">bpo-13884</a>: Idle menus. Remove tearoff lines. Patch by Roger Serwy.</p></li>
</ul>
</section>
<section id="id798">
<h3>Documentation<a class="headerlink" href="#id798" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24129">bpo-24129</a>: Clarify the reference documentation for name resolution. This
includes removing the assumption that readers will be familiar with the
name resolution scheme Python used prior to the introduction of lexical
scoping for function namespaces. Patch by Ivan Levkivskyi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20769">bpo-20769</a>: Improve reload() docs. Patch by Dorian Pula.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23589">bpo-23589</a>: Remove duplicate sentence from the FAQ. Patch by Yongzhi Pan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24729">bpo-24729</a>: Correct IO tutorial to match implementation regarding encoding
parameter to open function.</p></li>
</ul>
</section>
<section id="id799">
<h3>Tests<a class="headerlink" href="#id799" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24751">bpo-24751</a>: When running regrtest with the <code class="docutils literal notranslate"><span class="pre">-w</span></code> command line option, a
test run is no longer marked as a failure if all tests succeed when
re-run.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-beta-4">
<h2>Python 3.5.0 beta 4<a class="headerlink" href="#python-3-5-0-beta-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-07-26</em></p>
<section id="id800">
<h3>Core and Builtins<a class="headerlink" href="#id800" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23573">bpo-23573</a>: Restored optimization of bytes.rfind() and bytearray.rfind()
for single-byte argument on Linux.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24569">bpo-24569</a>: Make <span class="target" id="index-475"></span><a class="pep reference external" href="https://peps.python.org/pep-0448/"><strong>PEP 448</strong></a> dictionary evaluation more consistent.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24583">bpo-24583</a>: Fix crash when set is mutated while being updated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24407">bpo-24407</a>: Fix crash when dict is mutated while being updated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24619">bpo-24619</a>: New approach for tokenizing async/await. As a consequence, it
is now possible to have one-line ‘async def foo(): await ..’ functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24687">bpo-24687</a>: Plug refleak on SyntaxError in function parameters annotations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15944">bpo-15944</a>: memoryview: Allow arbitrary formats when casting to bytes.
Patch by Martin Panter.</p></li>
</ul>
</section>
<section id="id801">
<h3>Library<a class="headerlink" href="#id801" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23441">bpo-23441</a>: rcompleter now prints a tab character instead of displaying
possible completions for an empty word. Initial patch by Martin Sekera.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24683">bpo-24683</a>: Fixed crashes in _json functions called with arguments of
inappropriate type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21697">bpo-21697</a>: shutil.copytree() now correctly handles symbolic links that
point to directories. Patch by Eduardo Seabra and Thomas Kluyver.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14373">bpo-14373</a>: Fixed segmentation fault when gc.collect() is called during
constructing lru_cache (C implementation).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24695">bpo-24695</a>: Fix a regression in traceback.print_exception(). If
exc_traceback is None we shouldn’t print a traceback header like described
in the documentation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24620">bpo-24620</a>: Random.setstate() now validates the value of state last
element.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22485">bpo-22485</a>: Fixed an issue that caused <code class="docutils literal notranslate"><span class="pre">inspect.getsource</span></code> to return
incorrect results on nested functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22153">bpo-22153</a>: Improve unittest docs. Patch from Martin Panter and evilzero.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24580">bpo-24580</a>: Symbolic group references to open group in re patterns now are
explicitly forbidden as well as numeric group references.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24206">bpo-24206</a>: Fixed __eq__ and __ne__ methods of inspect classes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24631">bpo-24631</a>: Fixed regression in the timeit module with multiline setup.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18622">bpo-18622</a>: unittest.mock.mock_open().reset_mock would recurse infinitely.
Patch from Nicola Palumbo and Laurent De Buyst.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23661">bpo-23661</a>: unittest.mock side_effects can now be exceptions again. This
was a regression vs Python 3.4. Patch from Ignacio Rossi</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24608">bpo-24608</a>: chunk.Chunk.read() now always returns bytes, not str.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18684">bpo-18684</a>: Fixed reading out of the buffer in the re module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24259">bpo-24259</a>: tarfile now raises a ReadError if an archive is truncated
inside a data segment.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15014">bpo-15014</a>: SMTP.auth() and SMTP.login() now support RFC 4954’s optional
initial-response argument to the SMTP AUTH command.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24669">bpo-24669</a>: Fix inspect.getsource() for ‘async def’ functions. Patch by Kai
Groner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24688">bpo-24688</a>: ast.get_docstring() for ‘async def’ functions.</p></li>
</ul>
</section>
<section id="id802">
<h3>Build<a class="headerlink" href="#id802" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24603">bpo-24603</a>: Update Windows builds and OS X 10.5 installer to use OpenSSL
1.0.2d.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-beta-3">
<h2>Python 3.5.0 beta 3<a class="headerlink" href="#python-3-5-0-beta-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-07-05</em></p>
<section id="id803">
<h3>Core and Builtins<a class="headerlink" href="#id803" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24467">bpo-24467</a>: Fixed possible buffer over-read in bytearray. The bytearray
object now always allocates place for trailing null byte and it’s buffer
now is always null-terminated.</p></li>
<li><p>Upgrade to Unicode 8.0.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24345">bpo-24345</a>: Add Py_tp_finalize slot for the stable ABI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24400">bpo-24400</a>: Introduce a distinct type for <span class="target" id="index-476"></span><a class="pep reference external" href="https://peps.python.org/pep-0492/"><strong>PEP 492</strong></a> coroutines; add
types.CoroutineType, inspect.getcoroutinestate,
inspect.getcoroutinelocals; coroutines no longer use CO_GENERATOR flag;
sys.set_coroutine_wrapper works only for ‘async def’ coroutines;
inspect.iscoroutine no longer uses collections.abc.Coroutine, it’s
intended to test for pure ‘async def’ coroutines only; add new opcode:
GET_YIELD_FROM_ITER; fix generators wrapper used in types.coroutine to be
instance of collections.abc.Generator; collections.abc.Awaitable and
collections.abc.Coroutine can no longer be used to detect generator-based
coroutines–use inspect.isawaitable instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24450">bpo-24450</a>: Add gi_yieldfrom to generators and cr_await to coroutines.
Contributed by Benno Leslie and Yury Selivanov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19235">bpo-19235</a>: Add new RecursionError exception. Patch by Georg Brandl.</p></li>
</ul>
</section>
<section id="id804">
<h3>Library<a class="headerlink" href="#id804" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21750">bpo-21750</a>: mock_open.read_data can now be read from each instance, as it
could in Python 3.3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24552">bpo-24552</a>: Fix use after free in an error case of the _pickle module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24514">bpo-24514</a>: tarfile now tolerates number fields consisting of only
whitespace.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19176">bpo-19176</a>: Fixed doctype() related bugs in C implementation of
ElementTree. A deprecation warning no longer issued by XMLParser subclass
with default doctype() method. Direct call of doctype() now issues a
warning. Parser’s doctype() now is not called if target’s doctype() is
called. Based on patch by Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20387">bpo-20387</a>: Restore semantic round-trip correctness in tokenize/untokenize
for tab-indented blocks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24456">bpo-24456</a>: Fixed possible buffer over-read in adpcm2lin() and lin2adpcm()
functions of the audioop module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24336">bpo-24336</a>: The contextmanager decorator now works with functions with
keyword arguments called “func” and “self”. Patch by Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24522">bpo-24522</a>: Fix possible integer overflow in json accelerator module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24489">bpo-24489</a>: ensure a previously set C errno doesn’t disturb cmath.polar().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24408">bpo-24408</a>: Fixed AttributeError in measure() and metrics() methods of
tkinter.Font.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14373">bpo-14373</a>: C implementation of functools.lru_cache() now can be used with
methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24347">bpo-24347</a>: Set KeyError if PyDict_GetItemWithError returns NULL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24348">bpo-24348</a>: Drop superfluous incref/decref.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24359">bpo-24359</a>: Check for changed OrderedDict size during iteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24368">bpo-24368</a>: Support keyword arguments in OrderedDict methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24362">bpo-24362</a>: Simplify the C OrderedDict fast nodes resize logic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24377">bpo-24377</a>: Fix a ref leak in OrderedDict.__repr__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24369">bpo-24369</a>: Defend against key-changes during iteration.</p></li>
</ul>
</section>
<section id="id805">
<h3>Tests<a class="headerlink" href="#id805" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24373">bpo-24373</a>: _testmultiphase and xxlimited now use tp_traverse and
tp_finalize to avoid reference leaks encountered when combining tp_dealloc
with PyType_FromSpec (see <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16690">bpo-16690</a> for details)</p></li>
</ul>
</section>
<section id="id806">
<h3>Documentation<a class="headerlink" href="#id806" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24458">bpo-24458</a>: Update documentation to cover multi-phase initialization for
extension modules (PEP 489). Patch by Petr Viktorin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24351">bpo-24351</a>: Clarify what is meant by “identifier” in the context of
string.Template instances.</p></li>
</ul>
</section>
<section id="id807">
<h3>Build<a class="headerlink" href="#id807" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24432">bpo-24432</a>: Update Windows builds and OS X 10.5 installer to use OpenSSL
1.0.2c.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-beta-2">
<h2>Python 3.5.0 beta 2<a class="headerlink" href="#python-3-5-0-beta-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-05-31</em></p>
<section id="id808">
<h3>Core and Builtins<a class="headerlink" href="#id808" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24284">bpo-24284</a>: The startswith and endswith methods of the str class no longer
return True when finding the empty string and the indexes are completely
out of range.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24115">bpo-24115</a>: Update uses of PyObject_IsTrue(), PyObject_Not(),
PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains()
to check for and handle errors correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24328">bpo-24328</a>: Fix importing one character extension modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11205">bpo-11205</a>: In dictionary displays, evaluate the key before the value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24285">bpo-24285</a>: Fixed regression that prevented importing extension modules
from inside packages. Patch by Petr Viktorin.</p></li>
</ul>
</section>
<section id="id809">
<h3>Library<a class="headerlink" href="#id809" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23247">bpo-23247</a>: Fix a crash in the StreamWriter.reset() of CJK codecs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24270">bpo-24270</a>: Add math.isclose() and cmath.isclose() functions as per
<span class="target" id="index-477"></span><a class="pep reference external" href="https://peps.python.org/pep-0485/"><strong>PEP 485</strong></a>. Contributed by Chris Barker and Tal Einat.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5633">bpo-5633</a>: Fixed timeit when the statement is a string and the setup is
not.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24326">bpo-24326</a>: Fixed audioop.ratecv() with non-default weightB argument.
Original patch by David Moore.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16991">bpo-16991</a>: Add a C implementation of OrderedDict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23934">bpo-23934</a>: Fix inspect.signature to fail correctly for builtin types
lacking signature information. Initial patch by James Powell.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-beta-1">
<h2>Python 3.5.0 beta 1<a class="headerlink" href="#python-3-5-0-beta-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-05-24</em></p>
<section id="id810">
<h3>Core and Builtins<a class="headerlink" href="#id810" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24276">bpo-24276</a>: Fixed optimization of property descriptor getter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24268">bpo-24268</a>: PEP 489: Multi-phase extension module initialization. Patch by
Petr Viktorin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23955">bpo-23955</a>: Add pyvenv.cfg option to suppress registry/environment lookup
for generating sys.path on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24257">bpo-24257</a>: Fixed system error in the comparison of faked
types.SimpleNamespace.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22939">bpo-22939</a>: Fixed integer overflow in iterator object. Patch by Clement
Rouault.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23985">bpo-23985</a>: Fix a possible buffer overrun when deleting a slice from the
front of a bytearray and then appending some other bytes data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24102">bpo-24102</a>: Fixed exception type checking in standard error handlers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15027">bpo-15027</a>: The UTF-32 encoder is now 3x to 7x faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23290">bpo-23290</a>: Optimize set_merge() for cases where the target is empty.
(Contributed by Serhiy Storchaka.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2292">bpo-2292</a>: PEP 448: Additional Unpacking Generalizations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24096">bpo-24096</a>: Make warnings.warn_explicit more robust against mutation of the
warnings.filters list.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23996">bpo-23996</a>: Avoid a crash when a delegated generator raises an unnormalized
StopIteration exception. Patch by Stefan Behnel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23910">bpo-23910</a>: Optimize property() getter calls. Patch by Joe Jevnik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23911">bpo-23911</a>: Move path-based importlib bootstrap code to a separate frozen
module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24192">bpo-24192</a>: Fix namespace package imports.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24022">bpo-24022</a>: Fix tokenizer crash when processing undecodable source code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9951">bpo-9951</a>: Added a hex() method to bytes, bytearray, and memoryview.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22906">bpo-22906</a>: PEP 479: Change StopIteration handling inside generators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24017">bpo-24017</a>: PEP 492: Coroutines with async and await syntax.</p></li>
</ul>
</section>
<section id="id811">
<h3>Library<a class="headerlink" href="#id811" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14373">bpo-14373</a>: Added C implementation of functools.lru_cache(). Based on
patches by Matt Joiner and Alexey Kachayev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24230">bpo-24230</a>: The tempfile module now accepts bytes for prefix, suffix and
dir parameters and returns bytes in such situations (matching the os
module APIs).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22189">bpo-22189</a>: collections.UserString now supports __getnewargs__(),
__rmod__(), casefold(), format_map(), isprintable(), and maketrans().
Patch by Joe Jevnik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24244">bpo-24244</a>: Prevents termination when an invalid format string is
encountered on Windows in strftime.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23973">bpo-23973</a>: PEP 484: Add the typing module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23086">bpo-23086</a>: The collections.abc.Sequence() abstract base class added
<em>start</em> and <em>stop</em> parameters to the index() mixin. Patch by Devin
Jeanpierre.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20035">bpo-20035</a>: Replaced the <code class="docutils literal notranslate"><span class="pre">tkinter._fix</span></code> module used for setting up the
Tcl/Tk environment on Windows with a private function in the <code class="docutils literal notranslate"><span class="pre">_tkinter</span></code>
module that makes no permanent changes to the environment.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24257">bpo-24257</a>: Fixed segmentation fault in sqlite3.Row constructor with faked
cursor type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15836">bpo-15836</a>: assertRaises(), assertRaisesRegex(), assertWarns() and
assertWarnsRegex() assertments now check the type of the first argument to
prevent possible user error. Based on patch by Daniel Wagner-Hall.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9858">bpo-9858</a>: Add missing method stubs to _io.RawIOBase. Patch by Laura
Rupprecht.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22955">bpo-22955</a>: attrgetter, itemgetter and methodcaller objects in the operator
module now support pickling. Added readable and evaluable repr for these
objects. Based on patch by Josh Rosenberg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22107">bpo-22107</a>: tempfile.gettempdir() and tempfile.mkdtemp() now try again when
a directory with the chosen name already exists on Windows as well as on
Unix. tempfile.mkstemp() now fails early if parent directory is not valid
(not exists or is a file) on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23780">bpo-23780</a>: Improved error message in os.path.join() with single argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6598">bpo-6598</a>: Increased time precision and random number range in
email.utils.make_msgid() to strengthen the uniqueness of the message ID.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24091">bpo-24091</a>: Fixed various crashes in corner cases in C implementation of
ElementTree.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21931">bpo-21931</a>: msilib.FCICreate() now raises TypeError in the case of a bad
argument instead of a ValueError with a bogus FCI error number. Patch by
Jeffrey Armstrong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13866">bpo-13866</a>: <em>quote_via</em> argument added to urllib.parse.urlencode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20098">bpo-20098</a>: New mangle_from policy option for email, default True for
compat32, but False for all other policies.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24211">bpo-24211</a>: The email library now supports RFC 6532: it can generate
headers using utf-8 instead of encoded words.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16314">bpo-16314</a>: Added support for the LZMA compression in distutils.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21804">bpo-21804</a>: poplib now supports RFC 6856 (UTF8).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18682">bpo-18682</a>: Optimized pprint functions for builtin scalar types.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22027">bpo-22027</a>: smtplib now supports RFC 6531 (SMTPUTF8).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23488">bpo-23488</a>: Random generator objects now consume 2x less memory on 64-bit.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1322">bpo-1322</a>: platform.dist() and platform.linux_distribution() functions are
now deprecated. Initial patch by Vajrasky Kok.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22486">bpo-22486</a>: Added the math.gcd() function. The fractions.gcd() function
now is deprecated. Based on patch by Mark Dickinson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24064">bpo-24064</a>: Property() docstrings are now writeable. (Patch by Berker
Peksag.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22681">bpo-22681</a>: Added support for the koi8_t encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22682">bpo-22682</a>: Added support for the kz1048 encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23796">bpo-23796</a>: peek and read1 methods of BufferedReader now raise ValueError
if they called on a closed object. Patch by John Hergenroeder.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21795">bpo-21795</a>: smtpd now supports the 8BITMIME extension whenever the new
<em>decode_data</em> constructor argument is set to False.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24155">bpo-24155</a>: optimize heapq.heapify() for better cache performance when
heapifying large lists.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21800">bpo-21800</a>: imaplib now supports RFC 5161 (enable), RFC 6855
(utf8/internationalized email) and automatically encodes non-ASCII
usernames and passwords to UTF8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20274">bpo-20274</a>: When calling a _sqlite.Connection, it now complains if passed
any keyword arguments. Previously it silently ignored them.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20274">bpo-20274</a>: Remove ignored and erroneous “kwargs” parameters from three
METH_VARARGS methods on _sqlite.Connection.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24134">bpo-24134</a>: assertRaises(), assertRaisesRegex(), assertWarns() and
assertWarnsRegex() checks now emits a deprecation warning when callable is
None or keyword arguments except msg is passed in the context manager
mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24018">bpo-24018</a>: Add a collections.abc.Generator abstract base class.
Contributed by Stefan Behnel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23880">bpo-23880</a>: Tkinter’s getint() and getdouble() now support Tcl_Obj.
Tkinter’s getdouble() now supports any numbers (in particular int).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22619">bpo-22619</a>: Added negative limit support in the traceback module. Based on
patch by Dmitry Kazakov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24094">bpo-24094</a>: Fix possible crash in json.encode with poorly behaved dict
subclasses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9246">bpo-9246</a>: On POSIX, os.getcwd() now supports paths longer than 1025 bytes.
Patch written by William Orr.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17445">bpo-17445</a>: add difflib.diff_bytes() to support comparison of byte strings
(fixes a regression from Python 2).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23917">bpo-23917</a>: Fall back to sequential compilation when ProcessPoolExecutor
doesn’t exist. Patch by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23008">bpo-23008</a>: Fixed resolving attributes with boolean value is False in
pydoc.</p></li>
<li><p>Fix asyncio issue 235: LifoQueue and PriorityQueue’s put didn’t increment
unfinished tasks (this bug was introduced when JoinableQueue was merged
with Queue).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23908">bpo-23908</a>: os functions now reject paths with embedded null character on
Windows instead of silently truncating them.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23728">bpo-23728</a>: binascii.crc_hqx() could return an integer outside of the range
0-0xffff for empty data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23887">bpo-23887</a>: urllib.error.HTTPError now has a proper repr() representation.
Patch by Berker Peksag.</p></li>
<li><p>asyncio: New event loop APIs: set_task_factory() and get_task_factory().</p></li>
<li><p>asyncio: async() function is deprecated in favour of ensure_future().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24178">bpo-24178</a>: asyncio.Lock, Condition, Semaphore, and BoundedSemaphore
support new ‘async with’ syntax. Contributed by Yury Selivanov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24179">bpo-24179</a>: Support ‘async for’ for asyncio.StreamReader. Contributed by
Yury Selivanov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24184">bpo-24184</a>: Add AsyncIterator and AsyncIterable ABCs to collections.abc.
Contributed by Yury Selivanov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22547">bpo-22547</a>: Implement informative __repr__ for inspect.BoundArguments.
Contributed by Yury Selivanov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24190">bpo-24190</a>: Implement inspect.BoundArgument.apply_defaults() method.
Contributed by Yury Selivanov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20691">bpo-20691</a>: Add ‘follow_wrapped’ argument to
inspect.Signature.from_callable() and inspect.signature(). Contributed by
Yury Selivanov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24248">bpo-24248</a>: Deprecate inspect.Signature.from_function() and
inspect.Signature.from_builtin().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23898">bpo-23898</a>: Fix inspect.classify_class_attrs() to support attributes with
overloaded __eq__ and __bool__. Patch by Mike Bayer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24298">bpo-24298</a>: Fix inspect.signature() to correctly unwrap wrappers around
bound methods.</p></li>
</ul>
</section>
<section id="id812">
<h3>IDLE<a class="headerlink" href="#id812" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23184">bpo-23184</a>: remove unused names and imports in idlelib. Initial patch by Al
Sweigart.</p></li>
</ul>
</section>
<section id="id813">
<h3>Tests<a class="headerlink" href="#id813" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21520">bpo-21520</a>: test_zipfile no longer fails if the word ‘bad’ appears anywhere
in the name of the current directory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9517">bpo-9517</a>: Move script_helper into the support package. Patch by Christie
Wilson.</p></li>
</ul>
</section>
<section id="id814">
<h3>Documentation<a class="headerlink" href="#id814" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22155">bpo-22155</a>: Add File Handlers subsection with createfilehandler to tkinter
doc. Remove obsolete example from FAQ. Patch by Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24029">bpo-24029</a>: Document the name binding behavior for submodule imports.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24077">bpo-24077</a>: Fix typo in man page for -I command option: -s, not -S</p></li>
</ul>
</section>
<section id="id815">
<h3>Tools/Demos<a class="headerlink" href="#id815" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24000">bpo-24000</a>: Improved Argument Clinic’s mapping of converters to legacy
“format units”. Updated the documentation to match.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24001">bpo-24001</a>: Argument Clinic converters now use accept={type} instead of
types={‘type’} to specify the types the converter accepts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23330">bpo-23330</a>: h2py now supports arbitrary filenames in #include.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24031">bpo-24031</a>: make patchcheck now supports git checkouts, too.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-alpha-4">
<h2>Python 3.5.0 alpha 4<a class="headerlink" href="#python-3-5-0-alpha-4" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-04-19</em></p>
<section id="id816">
<h3>Core and Builtins<a class="headerlink" href="#id816" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22980">bpo-22980</a>: Under Linux, GNU/KFreeBSD and the Hurd, C extensions now
include the architecture triplet in the extension name, to make it easy to
test builds for different ABIs in the same working tree. Under OS X, the
extension name now includes <span class="target" id="index-478"></span><a class="pep reference external" href="https://peps.python.org/pep-3149/"><strong>PEP 3149</strong></a>-style information.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22631">bpo-22631</a>: Added Linux-specific socket constant CAN_RAW_FD_FRAMES. Patch
courtesy of Joe Jevnik.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23731">bpo-23731</a>: Implement <span class="target" id="index-479"></span><a class="pep reference external" href="https://peps.python.org/pep-0488/"><strong>PEP 488</strong></a>: removal of .pyo files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23726">bpo-23726</a>: Don’t enable GC for user subclasses of non-GC types that don’t
add any new fields. Patch by Eugene Toder.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23309">bpo-23309</a>: Avoid a deadlock at shutdown if a daemon thread is aborted
while it is holding a lock to a buffered I/O object, and the main thread
tries to use the same I/O object (typically stdout or stderr). A fatal
error is emitted instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22977">bpo-22977</a>: Fixed formatting Windows error messages on Wine. Patch by
Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23466">bpo-23466</a>: %c, %o, %x, and %X in bytes formatting now raise TypeError on
non-integer input.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24044">bpo-24044</a>: Fix possible null pointer dereference in list.sort in out of
memory conditions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21354">bpo-21354</a>: PyCFunction_New function is exposed by python DLL again.</p></li>
</ul>
</section>
<section id="id817">
<h3>Library<a class="headerlink" href="#id817" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23840">bpo-23840</a>: tokenize.open() now closes the temporary binary file on error
to fix a resource warning.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16914">bpo-16914</a>: new debuglevel 2 in smtplib adds timestamps to debug output.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=7159">bpo-7159</a>: urllib.request now supports sending auth credentials
automatically after the first 401. This enhancement is a superset of the
enhancement from <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19494">bpo-19494</a> and supersedes that change.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23703">bpo-23703</a>: Fix a regression in urljoin() introduced in 901e4e52b20a. Patch
by Demian Brecht.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4254">bpo-4254</a>: Adds _curses.update_lines_cols(). Patch by Arnon Yaari</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19933">bpo-19933</a>: Provide default argument for ndigits in round. Patch by
Vajrasky Kok.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23193">bpo-23193</a>: Add a numeric_owner parameter to tarfile.TarFile.extract and
tarfile.TarFile.extractall. Patch by Michael Vogt and Eric Smith.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23342">bpo-23342</a>: Add a subprocess.run() function than returns a CalledProcess
instance for a more consistent API than the existing call* functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21217">bpo-21217</a>: inspect.getsourcelines() now tries to compute the start and end
lines from the code object, fixing an issue when a lambda function is used
as decorator argument. Patch by Thomas Ballinger and Allison Kaptur.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=24521">bpo-24521</a>: Fix possible integer overflows in the pickle module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22931">bpo-22931</a>: Allow ‘[’ and ‘]’ in cookie values.</p></li>
<li><p>The keywords attribute of functools.partial is now always a dictionary.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23811">bpo-23811</a>: Add missing newline to the PyCompileError error message. Patch
by Alex Shkop.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21116">bpo-21116</a>: Avoid blowing memory when allocating a multiprocessing shared
array that’s larger than 50% of the available RAM. Patch by Médéric
Boquien.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22982">bpo-22982</a>: Improve BOM handling when seeking to multiple positions of a
writable text file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23464">bpo-23464</a>: Removed deprecated asyncio JoinableQueue.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23529">bpo-23529</a>: Limit the size of decompressed data when reading from GzipFile,
BZ2File or LZMAFile. This defeats denial of service attacks using
compressed bombs (i.e. compressed payloads which decompress to a huge
size). Patch by Martin Panter and Nikolaus Rath.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21859">bpo-21859</a>: Added Python implementation of io.FileIO.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23865">bpo-23865</a>: close() methods in multiple modules now are idempotent and more
robust at shutdown. If they need to release multiple resources, all are
released even if errors occur.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23400">bpo-23400</a>: Raise same exception on both Python 2 and 3 if sem_open is not
available. Patch by Davin Potts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10838">bpo-10838</a>: The subprocess now module includes SubprocessError and
TimeoutError in its list of exported names for the users wild enough to
use <code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">subprocess</span> <span class="pre">import</span> <span class="pre">*</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23411">bpo-23411</a>: Added DefragResult, ParseResult, SplitResult,
DefragResultBytes, ParseResultBytes, and SplitResultBytes to
urllib.parse.__all__. Patch by Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23881">bpo-23881</a>: urllib.request.ftpwrapper constructor now closes the socket if
the FTP connection failed to fix a ResourceWarning.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23853">bpo-23853</a>: <a class="reference internal" href="../library/socket.html#socket.socket.sendall" title="socket.socket.sendall"><code class="xref py py-meth docutils literal notranslate"><span class="pre">socket.socket.sendall()</span></code></a> does no more reset the socket
timeout each time data is sent successfully. The socket timeout is now the
maximum total duration to send all data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22721">bpo-22721</a>: An order of multiline pprint output of set or dict containing
orderable and non-orderable elements no longer depends on iteration order
of set or dict.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15133">bpo-15133</a>: _tkinter.tkapp.getboolean() now supports Tcl_Obj and always
returns bool. tkinter.BooleanVar now validates input values (accepted
bool, int, str, and Tcl_Obj). tkinter.BooleanVar.get() now always returns
bool.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10590">bpo-10590</a>: xml.sax.parseString() now supports string argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23338">bpo-23338</a>: Fixed formatting ctypes error messages on Cygwin. Patch by
Makoto Kato.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15582">bpo-15582</a>: inspect.getdoc() now follows inheritance chains.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2175">bpo-2175</a>: SAX parsers now support a character stream of InputSource
object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16840">bpo-16840</a>: Tkinter now supports 64-bit integers added in Tcl 8.4 and
arbitrary precision integers added in Tcl 8.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23834">bpo-23834</a>: Fix socket.sendto(), use the C Py_ssize_t type to store the
result of sendto() instead of the C int type.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23618">bpo-23618</a>: <a class="reference internal" href="../library/socket.html#socket.socket.connect" title="socket.socket.connect"><code class="xref py py-meth docutils literal notranslate"><span class="pre">socket.socket.connect()</span></code></a> now waits until the connection
completes instead of raising <a class="reference internal" href="../library/exceptions.html#InterruptedError" title="InterruptedError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InterruptedError</span></code></a> if the connection is
interrupted by signals, signal handlers don’t raise an exception and the
socket is blocking or has a timeout. <a class="reference internal" href="../library/socket.html#socket.socket.connect" title="socket.socket.connect"><code class="xref py py-meth docutils literal notranslate"><span class="pre">socket.socket.connect()</span></code></a> still
raise <a class="reference internal" href="../library/exceptions.html#InterruptedError" title="InterruptedError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">InterruptedError</span></code></a> for non-blocking sockets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21526">bpo-21526</a>: Tkinter now supports new boolean type in Tcl 8.5.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23836">bpo-23836</a>: Fix the faulthandler module to handle reentrant calls to its
signal handlers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23838">bpo-23838</a>: linecache now clears the cache and returns an empty result on
MemoryError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10395">bpo-10395</a>: Added os.path.commonpath(). Implemented in posixpath and
ntpath. Based on patch by Rafik Draoui.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23611">bpo-23611</a>: Serializing more “lookupable” objects (such as unbound methods
or nested classes) now are supported with pickle protocols < 4.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13583">bpo-13583</a>: sqlite3.Row now supports slice indexing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18473">bpo-18473</a>: Fixed 2to3 and 3to2 compatible pickle mappings. Fixed
ambiguous reverse mappings. Added many new mappings. Import mapping is
no longer applied to modules already mapped with full name mapping.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23485">bpo-23485</a>: select.select() is now retried automatically with the
recomputed timeout when interrupted by a signal, except if the signal
handler raises an exception. This change is part of the <span class="target" id="index-480"></span><a class="pep reference external" href="https://peps.python.org/pep-0475/"><strong>PEP 475</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23752">bpo-23752</a>: When built from an existing file descriptor, io.FileIO() now
only calls fstat() once. Before fstat() was called twice, which was not
necessary.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23704">bpo-23704</a>: collections.deque() objects now support __add__, __mul__, and
__imul__().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23171">bpo-23171</a>: csv.Writer.writerow() now supports arbitrary iterables.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23745">bpo-23745</a>: The new email header parser now handles duplicate MIME
parameter names without error, similar to how get_param behaves.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22117">bpo-22117</a>: Fix os.utime(), it now rounds the timestamp towards minus
infinity (-inf) instead of rounding towards zero.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23310">bpo-23310</a>: Fix MagicMock’s initializer to work with __methods__, just like
configure_mock(). Patch by Kasia Jachim.</p></li>
</ul>
</section>
<section id="id818">
<h3>Build<a class="headerlink" href="#id818" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23817">bpo-23817</a>: FreeBSD now uses “1.0” in the SOVERSION as other operating
systems, instead of just “1”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23501">bpo-23501</a>: Argument Clinic now generates code into separate files by
default.</p></li>
</ul>
</section>
<section id="id819">
<h3>Tests<a class="headerlink" href="#id819" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23799">bpo-23799</a>: Added test.support.start_threads() for running and cleaning up
multiple threads.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22390">bpo-22390</a>: test.regrtest now emits a warning if temporary files or
directories are left after running a test.</p></li>
</ul>
</section>
<section id="id820">
<h3>Tools/Demos<a class="headerlink" href="#id820" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18128">bpo-18128</a>: pygettext now uses standard +NNNN format in the
POT-Creation-Date header.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23935">bpo-23935</a>: Argument Clinic’s understanding of format units accepting
bytes, bytearrays, and buffers is now consistent with both the
documentation and the implementation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23944">bpo-23944</a>: Argument Clinic now wraps long impl prototypes at column 78.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20586">bpo-20586</a>: Argument Clinic now ensures that functions without docstrings
have signatures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23492">bpo-23492</a>: Argument Clinic now generates argument parsing code with
PyArg_Parse instead of PyArg_ParseTuple if possible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23500">bpo-23500</a>: Argument Clinic is now smarter about generating the “#ifndef”
(empty) definition of the methoddef macro: it’s only generated once, even
if Argument Clinic processes the same symbol multiple times, and it’s
emitted at the end of all processing rather than immediately after the
first use.</p></li>
</ul>
</section>
<section id="id821">
<h3>C API<a class="headerlink" href="#id821" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23998">bpo-23998</a>: PyImport_ReInitLock() now checks for lock allocation error</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-alpha-3">
<h2>Python 3.5.0 alpha 3<a class="headerlink" href="#python-3-5-0-alpha-3" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-03-28</em></p>
<section id="id822">
<h3>Core and Builtins<a class="headerlink" href="#id822" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23573">bpo-23573</a>: Increased performance of string search operations (str.find,
str.index, str.count, the in operator, str.split, str.partition) with
arguments of different kinds (UCS1, UCS2, UCS4).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23753">bpo-23753</a>: Python doesn’t support anymore platforms without stat() or
fstat(), these functions are always required.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23681">bpo-23681</a>: The -b option now affects comparisons of bytes with int.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23632">bpo-23632</a>: Memoryviews now allow tuple indexing (including for
multi-dimensional memoryviews).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23192">bpo-23192</a>: Fixed generator lambdas. Patch by Bruno Cauet.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23629">bpo-23629</a>: Fix the default __sizeof__ implementation for variable-sized
objects.</p></li>
</ul>
</section>
<section id="id823">
<h3>Library<a class="headerlink" href="#id823" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14260">bpo-14260</a>: The groupindex attribute of regular expression pattern object
now is non-modifiable mapping.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23792">bpo-23792</a>: Ignore KeyboardInterrupt when the pydoc pager is active. This
mimics the behavior of the standard unix pagers, and prevents pipepager
from shutting down while the pager itself is still running.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23775">bpo-23775</a>: pprint() of OrderedDict now outputs the same representation as
repr().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23765">bpo-23765</a>: Removed IsBadStringPtr calls in ctypes</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22364">bpo-22364</a>: Improved some re error messages using regex for hints.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23742">bpo-23742</a>: ntpath.expandvars() no longer loses unbalanced single quotes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21717">bpo-21717</a>: The zipfile.ZipFile.open function now supports ‘x’ (exclusive
creation) mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21802">bpo-21802</a>: The reader in BufferedRWPair now is closed even when closing
writer failed in BufferedRWPair.close().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23622">bpo-23622</a>: Unknown escapes in regular expressions that consist of <code class="docutils literal notranslate"><span class="pre">'\'</span></code>
and ASCII letter now raise a deprecation warning and will be forbidden in
Python 3.6.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23671">bpo-23671</a>: string.Template now allows specifying the “self” parameter as a
keyword argument. string.Formatter now allows specifying the “self” and
the “format_string” parameters as keyword arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23502">bpo-23502</a>: The pprint module now supports mapping proxies.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17530">bpo-17530</a>: pprint now wraps long bytes objects and bytearrays.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22687">bpo-22687</a>: Fixed some corner cases in breaking words in tetxtwrap. Got rid
of quadratic complexity in breaking long words.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4727">bpo-4727</a>: The copy module now uses pickle protocol 4 (PEP 3154) and
supports copying of instances of classes whose __new__ method takes
keyword-only arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23491">bpo-23491</a>: Added a zipapp module to support creating executable zip file
archives of Python code. Registered “.pyz” and “.pyzw” extensions on
Windows for these archives (PEP 441).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23657">bpo-23657</a>: Avoid explicit checks for str in zipapp, adding support for
pathlib.Path objects as arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23688">bpo-23688</a>: Added support of arbitrary bytes-like objects and avoided
unnecessary copying of memoryview in gzip.GzipFile.write(). Original patch
by Wolfgang Maier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23252">bpo-23252</a>: Added support for writing ZIP files to unseekable streams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23647">bpo-23647</a>: Increase imaplib’s MAXLINE to accommodate modern mailbox sizes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23539">bpo-23539</a>: If body is None, http.client.HTTPConnection.request now sets
Content-Length to 0 for PUT, POST, and PATCH headers to avoid 411 errors
from some web servers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22351">bpo-22351</a>: The nntplib.NNTP constructor no longer leaves the connection
and socket open until the garbage collector cleans them up. Patch by
Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23704">bpo-23704</a>: collections.deque() objects now support methods for index(),
insert(), and copy(). This allows deques to be registered as a
MutableSequence and it improves their substitutability for lists.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23715">bpo-23715</a>: <a class="reference internal" href="../library/signal.html#signal.sigwaitinfo" title="signal.sigwaitinfo"><code class="xref py py-func docutils literal notranslate"><span class="pre">signal.sigwaitinfo()</span></code></a> and <a class="reference internal" href="../library/signal.html#signal.sigtimedwait" title="signal.sigtimedwait"><code class="xref py py-func docutils literal notranslate"><span class="pre">signal.sigtimedwait()</span></code></a> are
now retried when interrupted by a signal not in the <em>sigset</em> parameter, if
the signal handler does not raise an exception. signal.sigtimedwait()
recomputes the timeout with a monotonic clock when it is retried.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23001">bpo-23001</a>: Few functions in modules mmap, ossaudiodev, socket, ssl, and
codecs, that accepted only read-only bytes-like object now accept writable
bytes-like object too.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23646">bpo-23646</a>: If time.sleep() is interrupted by a signal, the sleep is now
retried with the recomputed delay, except if the signal handler raises an
exception (PEP 475).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23136">bpo-23136</a>: _strptime now uniformly handles all days in week 0, including
Dec 30 of previous year. Based on patch by Jim Carroll.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23700">bpo-23700</a>: Iterator of NamedTemporaryFile now keeps a reference to
NamedTemporaryFile instance. Patch by Bohuslav Kabrda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22903">bpo-22903</a>: The fake test case created by unittest.loader when it fails
importing a test module is now picklable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22181">bpo-22181</a>: On Linux, os.urandom() now uses the new getrandom() syscall if
available, syscall introduced in the Linux kernel 3.17. It is more
reliable and more secure, because it avoids the need of a file descriptor
and waits until the kernel has enough entropy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2211">bpo-2211</a>: Updated the implementation of the http.cookies.Morsel class.
Setting attributes key, value and coded_value directly now is deprecated.
update() and setdefault() now transform and check keys. Comparing for
equality now takes into account attributes key, value and coded_value.
copy() now returns a Morsel, not a dict. repr() now contains all
attributes. Optimized checking keys and quoting values. Added new tests.
Original patch by Demian Brecht.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18983">bpo-18983</a>: Allow selection of output units in timeit. Patch by Julian
Gindi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23631">bpo-23631</a>: Fix traceback.format_list when a traceback has been mutated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23568">bpo-23568</a>: Add rdivmod support to MagicMock() objects. Patch by Håkan
Lövdahl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2052">bpo-2052</a>: Add charset parameter to HtmlDiff.make_file().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23668">bpo-23668</a>: Support os.truncate and os.ftruncate on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23138">bpo-23138</a>: Fixed parsing cookies with absent keys or values in cookiejar.
Patch by Demian Brecht.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23051">bpo-23051</a>: multiprocessing.Pool methods imap() and imap_unordered() now
handle exceptions raised by an iterator. Patch by Alon Diamant and Davin
Potts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23581">bpo-23581</a>: Add matmul support to MagicMock. Patch by Håkan Lövdahl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23566">bpo-23566</a>: enable(), register(), dump_traceback() and
dump_traceback_later() functions of faulthandler now accept file
descriptors. Patch by Wei Wu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22928">bpo-22928</a>: Disabled HTTP header injections in http.client. Original patch
by Demian Brecht.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23615">bpo-23615</a>: Modules bz2, tarfile and tokenize now can be reloaded with
imp.reload(). Patch by Thomas Kluyver.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23605">bpo-23605</a>: os.walk() now calls os.scandir() instead of os.listdir(). The
usage of os.scandir() reduces the number of calls to os.stat(). Initial
patch written by Ben Hoyt.</p></li>
</ul>
</section>
<section id="id824">
<h3>Build<a class="headerlink" href="#id824" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23585">bpo-23585</a>: make patchcheck will ensure the interpreter is built.</p></li>
</ul>
</section>
<section id="id825">
<h3>Tests<a class="headerlink" href="#id825" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23583">bpo-23583</a>: Added tests for standard IO streams in IDLE.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22289">bpo-22289</a>: Prevent test_urllib2net failures due to ftp connection timeout.</p></li>
</ul>
</section>
<section id="id826">
<h3>Tools/Demos<a class="headerlink" href="#id826" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22826">bpo-22826</a>: The result of open() in Tools/freeze/bkfile.py is now better
compatible with regular files (in particular it now supports the context
management protocol).</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-alpha-2">
<h2>Python 3.5.0 alpha 2<a class="headerlink" href="#python-3-5-0-alpha-2" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-03-09</em></p>
<section id="id827">
<h3>Core and Builtins<a class="headerlink" href="#id827" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23571">bpo-23571</a>: PyObject_Call() and PyCFunction_Call() now raise a SystemError
if a function returns a result and raises an exception. The SystemError is
chained to the previous exception.</p></li>
</ul>
</section>
<section id="id828">
<h3>Library<a class="headerlink" href="#id828" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22524">bpo-22524</a>: New os.scandir() function, part of the <span class="target" id="index-481"></span><a class="pep reference external" href="https://peps.python.org/pep-0471/"><strong>PEP 471</strong></a>:
“os.scandir() function – a better and faster directory iterator”. Patch
written by Ben Hoyt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23103">bpo-23103</a>: Reduced the memory consumption of IPv4Address and IPv6Address.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21793">bpo-21793</a>: BaseHTTPRequestHandler again logs response code as numeric, not
as stringified enum. Patch by Demian Brecht.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23476">bpo-23476</a>: In the ssl module, enable OpenSSL’s X509_V_FLAG_TRUSTED_FIRST
flag on certificate stores when it is available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23576">bpo-23576</a>: Avoid stalling in SSL reads when EOF has been reached in the
SSL layer but the underlying connection hasn’t been closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23504">bpo-23504</a>: Added an __all__ to the types module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23563">bpo-23563</a>: Optimized utility functions in urllib.parse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=7830">bpo-7830</a>: Flatten nested functools.partial.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20204">bpo-20204</a>: Added the __module__ attribute to _tkinter classes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19980">bpo-19980</a>: Improved help() for non-recognized strings. help(‘’) now shows
the help on str. help(‘help’) now shows the help on help(). Original
patch by Mark Lawrence.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23521">bpo-23521</a>: Corrected pure python implementation of timedelta division.
Eliminated OverflowError from <code class="docutils literal notranslate"><span class="pre">timedelta</span> <span class="pre">*</span> <span class="pre">float</span></code> for some floats;
Corrected rounding in timedelta true division.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21619">bpo-21619</a>: Popen objects no longer leave a zombie after exit in the with
statement if the pipe was broken. Patch by Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22936">bpo-22936</a>: Make it possible to show local variables in tracebacks for both
the traceback module and unittest.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15955">bpo-15955</a>: Add an option to limit the output size in bz2.decompress().
Patch by Nikolaus Rath.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6639">bpo-6639</a>: Module-level turtle functions no longer raise TclError after
closing the window.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=814253">bpo-814253</a>: Group references and conditional group references now work in
lookbehind assertions in regular expressions. (See also: <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9179">bpo-9179</a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23215">bpo-23215</a>: Multibyte codecs with custom error handlers that ignores errors
consumed too much memory and raised SystemError or MemoryError. Original
patch by Aleksi Torhamo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5700">bpo-5700</a>: io.FileIO() called flush() after closing the file. flush() was
not called in close() if closefd=False.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23374">bpo-23374</a>: Fixed pydoc failure with non-ASCII files when stdout encoding
differs from file system encoding (e.g. on Mac OS).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23481">bpo-23481</a>: Remove RC4 from the SSL module’s default cipher list.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21548">bpo-21548</a>: Fix pydoc.synopsis() and pydoc.apropos() on modules with empty
docstrings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22885">bpo-22885</a>: Fixed arbitrary code execution vulnerability in the dbm.dumb
module. Original patch by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23239">bpo-23239</a>: ssl.match_hostname() now supports matching of IP addresses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23146">bpo-23146</a>: Fix mishandling of absolute Windows paths with forward slashes
in pathlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23096">bpo-23096</a>: Pickle representation of floats with protocol 0 now is the same
for both Python and C implementations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19105">bpo-19105</a>: pprint now more efficiently uses free space at the right.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14910">bpo-14910</a>: Add allow_abbrev parameter to argparse.ArgumentParser. Patch by
Jonathan Paugh, Steven Bethard, paul j3 and Daniel Eriksson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21717">bpo-21717</a>: tarfile.open() now supports ‘x’ (exclusive creation) mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23344">bpo-23344</a>: marshal.dumps() is now 20-25% faster on average.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20416">bpo-20416</a>: marshal.dumps() with protocols 3 and 4 is now 40-50% faster on
average.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23421">bpo-23421</a>: Fixed compression in tarfile CLI. Patch by wdv4758h.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23367">bpo-23367</a>: Fix possible overflows in the unicodedata module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23361">bpo-23361</a>: Fix possible overflow in Windows subprocess creation code.</p></li>
<li><p>logging.handlers.QueueListener now takes a respect_handler_level keyword
argument which, if set to True, will pass messages to handlers taking
handler levels into account.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19705">bpo-19705</a>: turtledemo now has a visual sorting algorithm demo. Original
patch from Jason Yeo.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23801">bpo-23801</a>: Fix issue where cgi.FieldStorage did not always ignore the
entire preamble to a multipart body.</p></li>
</ul>
</section>
<section id="id829">
<h3>Build<a class="headerlink" href="#id829" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23445">bpo-23445</a>: pydebug builds now use “gcc -Og” where possible, to make the
resulting executable faster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23686">bpo-23686</a>: Update OS X 10.5 installer build to use OpenSSL 1.0.2a.</p></li>
</ul>
</section>
<section id="id830">
<h3>C API<a class="headerlink" href="#id830" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20204">bpo-20204</a>: Deprecation warning is now raised for builtin types without the
__module__ attribute.</p></li>
</ul>
</section>
<section id="id831">
<h3>Windows<a class="headerlink" href="#id831" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23465">bpo-23465</a>: Implement <span class="target" id="index-482"></span><a class="pep reference external" href="https://peps.python.org/pep-0486/"><strong>PEP 486</strong></a> - Make the Python Launcher aware of
virtual environments. Patch by Paul Moore.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23437">bpo-23437</a>: Make user scripts directory versioned on Windows. Patch by Paul
Moore.</p></li>
</ul>
</section>
</section>
<section id="python-3-5-0-alpha-1">
<h2>Python 3.5.0 alpha 1<a class="headerlink" href="#python-3-5-0-alpha-1" title="Link to this heading">¶</a></h2>
<p><em>Release date: 2015-02-08</em></p>
<section id="id832">
<h3>Core and Builtins<a class="headerlink" href="#id832" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23285">bpo-23285</a>: PEP 475 - EINTR handling.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22735">bpo-22735</a>: Fix many edge cases (including crashes) involving custom mro()
implementations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22896">bpo-22896</a>: Avoid using PyObject_AsCharBuffer(), PyObject_AsReadBuffer()
and PyObject_AsWriteBuffer().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21295">bpo-21295</a>: Revert some changes (<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16795">bpo-16795</a>) to AST line numbers and
column offsets that constituted a regression.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22986">bpo-22986</a>: Allow changing an object’s __class__ between a dynamic type and
static type in some cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15859">bpo-15859</a>: PyUnicode_EncodeFSDefault(), PyUnicode_EncodeMBCS() and
PyUnicode_EncodeCodePage() now raise an exception if the object is not a
Unicode object. For PyUnicode_EncodeFSDefault(), it was already the case
on platforms other than Windows. Patch written by Campbell Barton.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21408">bpo-21408</a>: The default __ne__() now returns NotImplemented if __eq__()
returned NotImplemented. Original patch by Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23321">bpo-23321</a>: Fixed a crash in str.decode() when error handler returned
replacement string longer than malformed input data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22286">bpo-22286</a>: The “backslashreplace” error handlers now works with decoding
and translating.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23253">bpo-23253</a>: Delay-load ShellExecute[AW] in os.startfile for reduced startup
overhead on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22038">bpo-22038</a>: pyatomic.h now uses stdatomic.h or GCC built-in functions for
atomic memory access if available. Patch written by Vitor de Lima and
Gustavo Temple.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20284">bpo-20284</a>: %-interpolation (aka printf) formatting added for bytes and
bytearray.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23048">bpo-23048</a>: Fix jumping out of an infinite while loop in the pdb.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20335">bpo-20335</a>: bytes constructor now raises TypeError when encoding or errors
is specified with non-string argument. Based on patch by Renaud Blanch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22834">bpo-22834</a>: If the current working directory ends up being set to a
non-existent directory then import will no longer raise FileNotFoundError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22869">bpo-22869</a>: Move the interpreter startup & shutdown code to a new dedicated
pylifecycle.c module</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22847">bpo-22847</a>: Improve method cache efficiency.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22335">bpo-22335</a>: Fix crash when trying to enlarge a bytearray to 0x7fffffff
bytes on a 32-bit platform.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22653">bpo-22653</a>: Fix an assertion failure in debug mode when doing a reentrant
dict insertion in debug mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22643">bpo-22643</a>: Fix integer overflow in Unicode case operations (upper, lower,
title, swapcase, casefold).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17636">bpo-17636</a>: Circular imports involving relative imports are now supported.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22604">bpo-22604</a>: Fix assertion error in debug mode when dividing a complex
number by (nan+0j).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21052">bpo-21052</a>: Do not raise ImportWarning when sys.path_hooks or sys.meta_path
are set to None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16518">bpo-16518</a>: Use ‘bytes-like object required’ in error messages that
previously used the far more cryptic “‘x’ does not support the buffer
protocol.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22470">bpo-22470</a>: Fixed integer overflow issues in “backslashreplace”,
“xmlcharrefreplace”, and “surrogatepass” error handlers.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22540">bpo-22540</a>: speed up <code class="docutils literal notranslate"><span class="pre">PyObject_IsInstance</span></code> and <code class="docutils literal notranslate"><span class="pre">PyObject_IsSubclass</span></code> in
the common case that the second argument has metaclass <code class="docutils literal notranslate"><span class="pre">type</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18711">bpo-18711</a>: Add a new <code class="docutils literal notranslate"><span class="pre">PyErr_FormatV</span></code> function, similar to
<code class="docutils literal notranslate"><span class="pre">PyErr_Format</span></code> but accepting a <code class="docutils literal notranslate"><span class="pre">va_list</span></code> argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22520">bpo-22520</a>: Fix overflow checking when generating the repr of a unicode
object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22519">bpo-22519</a>: Fix overflow checking in PyBytes_Repr.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22518">bpo-22518</a>: Fix integer overflow issues in latin-1 encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16324">bpo-16324</a>: _charset parameter of MIMEText now also accepts
email.charset.Charset instances. Initial patch by Claude Paroz.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1764286">bpo-1764286</a>: Fix inspect.getsource() to support decorated functions. Patch
by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18554">bpo-18554</a>: os.__all__ includes posix functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21391">bpo-21391</a>: Use os.path.abspath in the shutil module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11471">bpo-11471</a>: avoid generating a JUMP_FORWARD instruction at the end of an
if-block if there is no else-clause. Original patch by Eugene Toder.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22215">bpo-22215</a>: Now ValueError is raised instead of TypeError when str or bytes
argument contains not permitted null character or byte.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22258">bpo-22258</a>: Fix the internal function set_inheritable() on Illumos. This
platform exposes the function <code class="docutils literal notranslate"><span class="pre">ioctl(FIOCLEX)</span></code>, but calling it fails
with errno is ENOTTY: “Inappropriate ioctl for device”. set_inheritable()
now falls back to the slower <code class="docutils literal notranslate"><span class="pre">fcntl()</span></code> (<code class="docutils literal notranslate"><span class="pre">F_GETFD</span></code> and then
<code class="docutils literal notranslate"><span class="pre">F_SETFD</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21389">bpo-21389</a>: Displaying the __qualname__ of the underlying function in the
repr of a bound method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22206">bpo-22206</a>: Using pthread, PyThread_create_key() now sets errno to ENOMEM
and returns -1 (error) on integer overflow.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20184">bpo-20184</a>: Argument Clinic based signature introspection added for 30 of
the builtin functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22116">bpo-22116</a>: C functions and methods (of the ‘builtin_function_or_method’
type) can now be weakref’ed. Patch by Wei Wu.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22077">bpo-22077</a>: Improve index error messages for bytearrays, bytes, lists, and
tuples by adding ‘or slices’. Added ‘, not <typename>’ for bytearrays.
Original patch by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20179">bpo-20179</a>: Apply Argument Clinic to bytes and bytearray. Patch by Tal
Einat.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22082">bpo-22082</a>: Clear interned strings in slotdefs.</p></li>
<li><p>Upgrade Unicode database to Unicode 7.0.0.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21897">bpo-21897</a>: Fix a crash with the f_locals attribute with closure variables
when frame.clear() has been called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21205">bpo-21205</a>: Add a new <code class="docutils literal notranslate"><span class="pre">__qualname__</span></code> attribute to generator, the
qualified name, and use it in the representation of a generator
(<code class="docutils literal notranslate"><span class="pre">repr(gen)</span></code>). The default name of the generator (<code class="docutils literal notranslate"><span class="pre">__name__</span></code>
attribute) is now get from the function instead of the code. Use
<code class="docutils literal notranslate"><span class="pre">gen.gi_code.co_name</span></code> to get the name of the code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21669">bpo-21669</a>: With the aid of heuristics in SyntaxError.__init__, the parser
now attempts to generate more meaningful (or at least more search engine
friendly) error messages when “exec” and “print” are used as statements.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21642">bpo-21642</a>: In the conditional if-else expression, allow an integer written
with no space between itself and the <code class="docutils literal notranslate"><span class="pre">else</span></code> keyword (e.g. <code class="docutils literal notranslate"><span class="pre">True</span> <span class="pre">if</span>
<span class="pre">42else</span> <span class="pre">False</span></code>) to be valid syntax.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21523">bpo-21523</a>: Fix over-pessimistic computation of the stack effect of some
opcodes in the compiler. This also fixes a quadratic compilation time
issue noticeable when compiling code with a large number of “and” and “or”
operators.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21418">bpo-21418</a>: Fix a crash in the builtin function super() when called without
argument and without current frame (ex: embedded Python).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21425">bpo-21425</a>: Fix flushing of standard streams in the interactive
interpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21435">bpo-21435</a>: In rare cases, when running finalizers on objects in cyclic
trash a bad pointer dereference could occur due to a subtle flaw in
internal iteration logic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21377">bpo-21377</a>: PyBytes_Concat() now tries to concatenate in-place when the
first argument has a reference count of 1. Patch by Nikolaus Rath.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20355">bpo-20355</a>: -W command line options now have higher priority than the
PYTHONWARNINGS environment variable. Patch by Arfrever.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21274">bpo-21274</a>: Define PATH_MAX for GNU/Hurd in Python/pythonrun.c.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20904">bpo-20904</a>: Support setting FPU precision on m68k.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21209">bpo-21209</a>: Fix sending tuples to custom generator objects with the yield
from syntax.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21193">bpo-21193</a>: pow(a, b, c) now raises ValueError rather than TypeError when b
is negative. Patch by Josh Rosenberg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21176">bpo-21176</a>: PEP 465: Add the ‘@’ operator for matrix multiplication.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21134">bpo-21134</a>: Fix segfault when str is called on an uninitialized
UnicodeEncodeError, UnicodeDecodeError, or UnicodeTranslateError object.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19537">bpo-19537</a>: Fix PyUnicode_DATA() alignment under m68k. Patch by Andreas
Schwab.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20929">bpo-20929</a>: Add a type cast to avoid shifting a negative number.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20731">bpo-20731</a>: Properly position in source code files even if they are opened
in text mode. Patch by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20637">bpo-20637</a>: Key-sharing now also works for instance dictionaries of
subclasses. Patch by Peter Ingebretson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8297">bpo-8297</a>: Attributes missing from modules now include the module name in
the error text. Original patch by ysj.ray.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19995">bpo-19995</a>: %c, %o, %x, and %X now raise TypeError on non-integer input.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19655">bpo-19655</a>: The ASDL parser - used by the build process to generate code
for managing the Python AST in C - was rewritten. The new parser is self
contained and does not require to carry long the spark.py parser-generator
library; spark.py was removed from the source base.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12546">bpo-12546</a>: Allow <code class="docutils literal notranslate"><span class="pre">\x00</span></code> to be used as a fill character when using str,
int, float, and complex __format__ methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20480">bpo-20480</a>: Add ipaddress.reverse_pointer. Patch by Leon Weber.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13598">bpo-13598</a>: Modify string.Formatter to support auto-numbering of
replacement fields. It now matches the behavior of str.format() in this
regard. Patches by Phil Elson and Ramchandra Apte.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8931">bpo-8931</a>: Make alternate formatting (‘#’) for type ‘c’ raise an exception.
In versions prior to 3.5, ‘#’ with ‘c’ had no effect. Now specifying it is
an error. Patch by Torsten Landschoff.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23165">bpo-23165</a>: Perform overflow checks before allocating memory in the
_Py_char2wchar function.</p></li>
</ul>
</section>
<section id="id833">
<h3>Library<a class="headerlink" href="#id833" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23399">bpo-23399</a>: pyvenv creates relative symlinks where possible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20289">bpo-20289</a>: cgi.FieldStorage() now supports the context management
protocol.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13128">bpo-13128</a>: Print response headers for CONNECT requests when debuglevel >
0. Patch by Demian Brecht.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15381">bpo-15381</a>: Optimized io.BytesIO to make less allocations and copyings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22818">bpo-22818</a>: Splitting on a pattern that could match an empty string now
raises a warning. Patterns that can only match empty strings are now
rejected.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23099">bpo-23099</a>: Closing io.BytesIO with exported buffer is rejected now to
prevent corrupting exported buffer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23326">bpo-23326</a>: Removed __ne__ implementations. Since fixing default __ne__
implementation in <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21408">bpo-21408</a> they are redundant.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23363">bpo-23363</a>: Fix possible overflow in itertools.permutations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23364">bpo-23364</a>: Fix possible overflow in itertools.product.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23366">bpo-23366</a>: Fixed possible integer overflow in itertools.combinations.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23369">bpo-23369</a>: Fixed possible integer overflow in
_json.encode_basestring_ascii.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23353">bpo-23353</a>: Fix the exception handling of generators in
PyEval_EvalFrameEx(). At entry, save or swap the exception state even if
PyEval_EvalFrameEx() is called with throwflag=0. At exit, the exception
state is now always restored or swapped, not only if why is WHY_YIELD or
WHY_RETURN. Patch co-written with Antoine Pitrou.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14099">bpo-14099</a>: Restored support of writing ZIP files to tellable but
non-seekable streams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14099">bpo-14099</a>: Writing to ZipFile and reading multiple ZipExtFiles is
threadsafe now.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19361">bpo-19361</a>: JSON decoder now raises JSONDecodeError instead of ValueError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18518">bpo-18518</a>: timeit now rejects statements which can’t be compiled outside a
function or a loop (e.g. “return” or “break”).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23094">bpo-23094</a>: Fixed readline with frames in Python implementation of pickle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23268">bpo-23268</a>: Fixed bugs in the comparison of ipaddress classes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21408">bpo-21408</a>: Removed incorrect implementations of __ne__() which didn’t
returned NotImplemented if __eq__() returned NotImplemented. The default
__ne__() now works correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19996">bpo-19996</a>: <code class="xref py py-class docutils literal notranslate"><span class="pre">email.feedparser.FeedParser</span></code> now handles (malformed)
headers with no key rather than assuming the body has started.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20188">bpo-20188</a>: Support Application-Layer Protocol Negotiation (ALPN) in the
ssl module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23133">bpo-23133</a>: Pickling of ipaddress objects now produces more compact and
portable representation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23248">bpo-23248</a>: Update ssl error codes from latest OpenSSL git master.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23266">bpo-23266</a>: Much faster implementation of ipaddress.collapse_addresses()
when there are many non-consecutive addresses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23098">bpo-23098</a>: 64-bit dev_t is now supported in the os module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21817">bpo-21817</a>: When an exception is raised in a task submitted to a
ProcessPoolExecutor, the remote traceback is now displayed in the parent
process. Patch by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15955">bpo-15955</a>: Add an option to limit output size when decompressing LZMA
data. Patch by Nikolaus Rath and Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23250">bpo-23250</a>: In the http.cookies module, capitalize “HttpOnly” and “Secure”
as they are written in the standard.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23063">bpo-23063</a>: In the distutils’ check command, fix parsing of reST with code
or code-block directives.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23209">bpo-23209</a>: selectors.BaseSelector.get_key() now raises a RuntimeError if
the selector is closed. And selectors.BaseSelector.close() now clears its
internal reference to the selector mapping to break a reference cycle.
Initial patch written by Martin Richard. (See also: <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23225">bpo-23225</a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17911">bpo-17911</a>: Provide a way to seed the linecache for a PEP-302 module
without actually loading the code.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17911">bpo-17911</a>: Provide a new object API for traceback, including the ability
to not lookup lines at all until the traceback is actually rendered,
without any trace of the original objects being kept alive.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19777">bpo-19777</a>: Provide a home() classmethod on Path objects. Contributed by
Victor Salgado and Mayank Tripathi.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23206">bpo-23206</a>: Make <code class="docutils literal notranslate"><span class="pre">json.dumps(...,</span> <span class="pre">ensure_ascii=False)</span></code> as fast as the
default case of <code class="docutils literal notranslate"><span class="pre">ensure_ascii=True</span></code>. Patch by Naoki Inada.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23185">bpo-23185</a>: Add math.inf and math.nan constants.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23186">bpo-23186</a>: Add ssl.SSLObject.shared_ciphers() and
ssl.SSLSocket.shared_ciphers() to fetch the client’s list ciphers sent at
handshake.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23143">bpo-23143</a>: Remove compatibility with OpenSSLs older than 0.9.8.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23132">bpo-23132</a>: Improve performance and introspection support of comparison
methods created by functool.total_ordering.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19776">bpo-19776</a>: Add an expanduser() method on Path objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23112">bpo-23112</a>: Fix SimpleHTTPServer to correctly carry the query string and
fragment when it redirects to add a trailing slash.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21793">bpo-21793</a>: Added http.HTTPStatus enums (i.e. HTTPStatus.OK,
HTTPStatus.NOT_FOUND). Patch by Demian Brecht.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23093">bpo-23093</a>: In the io, module allow more operations to work on detached
streams.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23111">bpo-23111</a>: In the ftplib, make ssl.PROTOCOL_SSLv23 the default protocol
version.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22585">bpo-22585</a>: On OpenBSD 5.6 and newer, os.urandom() now calls getentropy(),
instead of reading /dev/urandom, to get pseudo-random bytes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19104">bpo-19104</a>: pprint now produces evaluable output for wrapped strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23071">bpo-23071</a>: Added missing names to codecs.__all__. Patch by Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22783">bpo-22783</a>: Pickling now uses the NEWOBJ opcode instead of the NEWOBJ_EX
opcode if possible.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15513">bpo-15513</a>: Added a __sizeof__ implementation for pickle classes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19858">bpo-19858</a>: pickletools.optimize() now aware of the MEMOIZE opcode, can
produce more compact result and no longer produces invalid output if input
data contains MEMOIZE opcodes together with PUT or BINPUT opcodes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22095">bpo-22095</a>: Fixed HTTPConnection.set_tunnel with default port. The port
value in the host header was set to “None”. Patch by Demian Brecht.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23016">bpo-23016</a>: A warning no longer produces an AttributeError when the program
is run with pythonw.exe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21775">bpo-21775</a>: shutil.copytree(): fix crash when copying to VFAT. An exception
handler assumed that OSError objects always have a ‘winerror’ attribute.
That is not the case, so the exception handler itself raised
AttributeError when run on Linux (and, presumably, any other non-Windows
OS). Patch by Greg Ward.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1218234">bpo-1218234</a>: Fix inspect.getsource() to load updated source of reloaded
module. Initial patch by Berker Peksag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21740">bpo-21740</a>: Support wrapped callables in doctest. Patch by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23009">bpo-23009</a>: Make sure selectors.EpollSelector.select() works when no FD is
registered.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22959">bpo-22959</a>: In the constructor of http.client.HTTPSConnection, prefer the
context’s check_hostname attribute over the <em>check_hostname</em> parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22696">bpo-22696</a>: Add function <a class="reference internal" href="../library/sys.html#sys.is_finalizing" title="sys.is_finalizing"><code class="xref py py-func docutils literal notranslate"><span class="pre">sys.is_finalizing()</span></code></a> to know about
interpreter shutdown.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16043">bpo-16043</a>: Add a default limit for the amount of data
xmlrpclib.gzip_decode will return. This resolves <span class="target" id="index-483"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2013-1753"><strong>CVE 2013-1753</strong></a>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14099">bpo-14099</a>: ZipFile.open() no longer reopen the underlying file. Objects
returned by ZipFile.open() can now operate independently of the ZipFile
even if the ZipFile was created by passing in a file-like object as the
first argument to the constructor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22966">bpo-22966</a>: Fix __pycache__ pyc file name clobber when pyc_compile is asked
to compile a source file containing multiple dots in the source file name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21971">bpo-21971</a>: Update turtledemo doc and add module to the index.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21032">bpo-21032</a>: Fixed socket leak if HTTPConnection.getresponse() fails.
Original patch by Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22407">bpo-22407</a>: Deprecated the use of re.LOCALE flag with str patterns or
re.ASCII. It was newer worked.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22902">bpo-22902</a>: The “ip” command is now used on Linux to determine MAC address
in uuid.getnode(). Patch by Bruno Cauet.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22960">bpo-22960</a>: Add a context argument to xmlrpclib.ServerProxy constructor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22389">bpo-22389</a>: Add contextlib.redirect_stderr().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21356">bpo-21356</a>: Make ssl.RAND_egd() optional to support LibreSSL. The
availability of the function is checked during the compilation. Patch
written by Bernard Spil.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22915">bpo-22915</a>: SAX parser now supports files opened with file descriptor or
bytes path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22609">bpo-22609</a>: Constructors and update methods of mapping classes in the
collections module now accept the self keyword argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22940">bpo-22940</a>: Add readline.append_history_file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19676">bpo-19676</a>: Added the “namereplace” error handler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22788">bpo-22788</a>: Add <em>context</em> parameter to logging.handlers.HTTPHandler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22921">bpo-22921</a>: Allow SSLContext to take the <em>hostname</em> parameter even if
OpenSSL doesn’t support SNI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22894">bpo-22894</a>: TestCase.subTest() would cause the test suite to be stopped
when in failfast mode, even in the absence of failures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22796">bpo-22796</a>: HTTP cookie parsing is now stricter, in order to protect
against potential injection attacks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22370">bpo-22370</a>: Windows detection in pathlib is now more robust.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22841">bpo-22841</a>: Reject coroutines in asyncio add_signal_handler(). Patch by
Ludovic.Gasc.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19494">bpo-19494</a>: Added urllib.request.HTTPBasicPriorAuthHandler. Patch by Matej
Cepl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22578">bpo-22578</a>: Added attributes to the re.error class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22849">bpo-22849</a>: Fix possible double free in the io.TextIOWrapper constructor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12728">bpo-12728</a>: Different Unicode characters having the same uppercase but
different lowercase are now matched in case-insensitive regular
expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22821">bpo-22821</a>: Fixed fcntl() with integer argument on 64-bit big-endian
platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21650">bpo-21650</a>: Add an <code class="docutils literal notranslate"><span class="pre">--sort-keys</span></code> option to <code class="docutils literal notranslate"><span class="pre">json.tool</span></code> CLI.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22824">bpo-22824</a>: Updated reprlib output format for sets to use set literals.
Patch contributed by Berker Peksag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22824">bpo-22824</a>: Updated reprlib output format for arrays to display empty
arrays without an unnecessary empty list. Suggested by Serhiy Storchaka.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22406">bpo-22406</a>: Fixed the uu_codec codec incorrectly ported to 3.x. Based on
patch by Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17293">bpo-17293</a>: uuid.getnode() now determines MAC address on AIX using netstat.
Based on patch by Aivars Kalvāns.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22769">bpo-22769</a>: Fixed ttk.Treeview.tag_has() when called without arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22417">bpo-22417</a>: Verify certificates by default in httplib (PEP 476).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22775">bpo-22775</a>: Fixed unpickling of http.cookies.SimpleCookie with protocol 2
and above. Patch by Tim Graham.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22776">bpo-22776</a>: Brought excluded code into the scope of a try block in
SysLogHandler.emit().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22665">bpo-22665</a>: Add missing get_terminal_size and SameFileError to
shutil.__all__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6623">bpo-6623</a>: Remove deprecated Netrc class in the ftplib module. Patch by
Matt Chaput.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17381">bpo-17381</a>: Fixed handling of case-insensitive ranges in regular
expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22410">bpo-22410</a>: Module level functions in the re module now cache compiled
locale-dependent regular expressions taking into account the locale.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22759">bpo-22759</a>: Query methods on pathlib.Path() (exists(), is_dir(), etc.) now
return False when the underlying stat call raises NotADirectoryError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8876">bpo-8876</a>: distutils now falls back to copying files when hard linking
doesn’t work. This allows use with special filesystems such as VirtualBox
shared folders.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22217">bpo-22217</a>: Implemented reprs of classes in the zipfile module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22457">bpo-22457</a>: Honour load_tests in the start_dir of discovery.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18216">bpo-18216</a>: gettext now raises an error when a .mo file has an unsupported
major version number. Patch by Aaron Hill.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13918">bpo-13918</a>: Provide a locale.delocalize() function which can remove
locale-specific number formatting from a string representing a number,
without then converting it to a specific type. Patch by Cédric Krier.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22676">bpo-22676</a>: Make the pickling of global objects which don’t have a
__module__ attribute less slow.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18853">bpo-18853</a>: Fixed ResourceWarning in shlex.__nain__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9351">bpo-9351</a>: Defaults set with set_defaults on an argparse subparser are no
longer ignored when also set on the parent parser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=7559">bpo-7559</a>: unittest test loading ImportErrors are reported as import errors
with their import exception rather than as attribute errors after the
import has already failed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19746">bpo-19746</a>: Make it possible to examine the errors from unittest discovery
without executing the test suite. The new <code class="docutils literal notranslate"><span class="pre">errors</span></code> attribute on
<code class="docutils literal notranslate"><span class="pre">TestLoader</span></code> exposes these non-fatal errors encountered during
discovery.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21991">bpo-21991</a>: Make email.headerregistry’s header ‘params’ attributes be
read-only (MappingProxyType). Previously the dictionary was modifiable
but a new one was created on each access of the attribute.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22638">bpo-22638</a>: SSLv3 is now disabled throughout the standard library. It can
still be enabled by instantiating a SSLContext manually.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22641">bpo-22641</a>: In asyncio, the default SSL context for client connections is
now created using ssl.create_default_context(), for stronger security.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17401">bpo-17401</a>: Include closefd in io.FileIO repr.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21338">bpo-21338</a>: Add silent mode for compileall. quiet parameters of
compile_{dir, file, path} functions now have a multilevel value. Also, -q
option of the CLI now have a multilevel value. Patch by Thomas Kluyver.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20152">bpo-20152</a>: Convert the array and cmath modules to Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18643">bpo-18643</a>: Add socket.socketpair() on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22435">bpo-22435</a>: Fix a file descriptor leak when socketserver bind fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13096">bpo-13096</a>: Fixed segfault in CTypes POINTER handling of large values.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11694">bpo-11694</a>: Raise ConversionError in xdrlib as documented. Patch by Filip
Gruszczyński and Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19380">bpo-19380</a>: Optimized parsing of regular expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=1519638">bpo-1519638</a>: Now unmatched groups are replaced with empty strings in
re.sub() and re.subn().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18615">bpo-18615</a>: sndhdr.what/whathdr now return a namedtuple.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22462">bpo-22462</a>: Fix pyexpat’s creation of a dummy frame to make it appear in
exception tracebacks.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21965">bpo-21965</a>: Add support for in-memory SSL to the ssl module. Patch by
Geert Jansen.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21173">bpo-21173</a>: Fix len() on a WeakKeyDictionary when .clear() was called with
an iterator alive.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11866">bpo-11866</a>: Eliminated race condition in the computation of names for new
threads.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21905">bpo-21905</a>: Avoid RuntimeError in pickle.whichmodule() when sys.modules is
mutated while iterating. Patch by Olivier Grisel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11271">bpo-11271</a>: concurrent.futures.Executor.map() now takes a <em>chunksize</em>
argument to allow batching of tasks in child processes and improve
performance of ProcessPoolExecutor. Patch by Dan O’Reilly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21883">bpo-21883</a>: os.path.join() and os.path.relpath() now raise a TypeError with
more helpful error message for unsupported or mismatched types of
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22219">bpo-22219</a>: The zipfile module CLI now adds entries for directories
(including empty directories) in ZIP file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22449">bpo-22449</a>: In the ssl.SSLContext.load_default_certs, consult the
environmental variables SSL_CERT_DIR and SSL_CERT_FILE on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22508">bpo-22508</a>: The email.__version__ variable has been removed; the email code
is no longer shipped separately from the stdlib, and __version__ hasn’t
been updated in several releases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20076">bpo-20076</a>: Added non derived UTF-8 aliases to locale aliases table.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20079">bpo-20079</a>: Added locales supported in glibc 2.18 to locale alias table.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20218">bpo-20218</a>: Added convenience methods read_text/write_text and read_bytes/
write_bytes to pathlib.Path objects.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22396">bpo-22396</a>: On 32-bit AIX platform, don’t expose os.posix_fadvise() nor
os.posix_fallocate() because their prototypes in system headers are wrong.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22517">bpo-22517</a>: When an io.BufferedRWPair object is deallocated, clear its
weakrefs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22437">bpo-22437</a>: Number of capturing groups in regular expression is no longer
limited by 100.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17442">bpo-17442</a>: InteractiveInterpreter now displays the full chained traceback
in its showtraceback method, to match the built in interactive
interpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23392">bpo-23392</a>: Added tests for marshal C API that works with FILE*.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10510">bpo-10510</a>: distutils register and upload methods now use HTML standards
compliant CRLF line endings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9850">bpo-9850</a>: Fixed macpath.join() for empty first component. Patch by Oleg
Oshmyan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5309">bpo-5309</a>: distutils’ build and build_ext commands now accept a <code class="docutils literal notranslate"><span class="pre">-j</span></code>
option to enable parallel building of extension modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22448">bpo-22448</a>: Improve canceled timer handles cleanup to prevent unbound
memory usage. Patch by Joshua Moore-Oliva.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22427">bpo-22427</a>: TemporaryDirectory no longer attempts to clean up twice when
used in the with statement in generator.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22362">bpo-22362</a>: Forbidden ambiguous octal escapes out of range 0-0o377 in
regular expressions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20912">bpo-20912</a>: Now directories added to ZIP file have correct Unix and MS-DOS
directory attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21866">bpo-21866</a>: ZipFile.close() no longer writes ZIP64 central directory
records if allowZip64 is false.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22278">bpo-22278</a>: Fix urljoin problem with relative urls, a regression observed
after changes to issue22118 were submitted.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22415">bpo-22415</a>: Fixed debugging output of the GROUPREF_EXISTS opcode in the re
module. Removed trailing spaces in debugging output.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22423">bpo-22423</a>: Unhandled exception in thread no longer causes unhandled
AttributeError when sys.stderr is None.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21332">bpo-21332</a>: Ensure that <code class="docutils literal notranslate"><span class="pre">bufsize=1</span></code> in subprocess.Popen() selects line
buffering, rather than block buffering. Patch by Akira Li.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21091">bpo-21091</a>: Fix API bug: email.message.EmailMessage.is_attachment is now a
method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21079">bpo-21079</a>: Fix email.message.EmailMessage.is_attachment to return the
correct result when the header has parameters as well as a value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22247">bpo-22247</a>: Add NNTPError to nntplib.__all__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22366">bpo-22366</a>: urllib.request.urlopen will accept a context object
(SSLContext) as an argument which will then be used for HTTPS connection.
Patch by Alex Gaynor.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4180">bpo-4180</a>: The warnings registries are now reset when the filters are
modified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22419">bpo-22419</a>: Limit the length of incoming HTTP request in wsgiref server to
65536 bytes and send a 414 error code for higher lengths. Patch
contributed by Devin Cook.</p></li>
<li><p>Lax cookie parsing in http.cookies could be a security issue when combined
with non-standard cookie handling in some web browsers. Reported by
Sergey Bobrov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20537">bpo-20537</a>: logging methods now accept an exception instance as well as a
Boolean value or exception tuple. Thanks to Yury Selivanov for the patch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22384">bpo-22384</a>: An exception in Tkinter callback no longer crashes the program
when it is run with pythonw.exe.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22168">bpo-22168</a>: Prevent turtle AttributeError with non-default Canvas on OS X.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21147">bpo-21147</a>: sqlite3 now raises an exception if the request contains a null
character instead of truncating it. Based on patch by Victor Stinner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13968">bpo-13968</a>: The glob module now supports recursive search in subdirectories
using the <code class="docutils literal notranslate"><span class="pre">**</span></code> pattern.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21951">bpo-21951</a>: Fixed a crash in Tkinter on AIX when called Tcl command with
empty string or tuple argument.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21951">bpo-21951</a>: Tkinter now most likely raises MemoryError instead of crash if
the memory allocation fails.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22338">bpo-22338</a>: Fix a crash in the json module on memory allocation failure.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12410">bpo-12410</a>: imaplib.IMAP4 now supports the context management protocol.
Original patch by Tarek Ziadé.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21270">bpo-21270</a>: We now override tuple methods in mock.call objects so that they
can be used as normal call attributes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16662">bpo-16662</a>: <code class="docutils literal notranslate"><span class="pre">load_tests()</span></code> is now unconditionally run when it is present
in a package’s <code class="docutils literal notranslate"><span class="pre">__init__.py</span></code>. <code class="docutils literal notranslate"><span class="pre">TestLoader.loadTestsFromModule()</span></code>
still accepts use_load_tests, but it is deprecated and ignored. A new
keyword-only attribute <code class="docutils literal notranslate"><span class="pre">pattern</span></code> is added and documented. Patch given
by Robert Collins, tweaked by Barry Warsaw.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22226">bpo-22226</a>: First letter no longer is stripped from the “status” key in the
result of Treeview.heading().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19524">bpo-19524</a>: Fixed resource leak in the HTTP connection when an invalid
response is received. Patch by Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20421">bpo-20421</a>: Add a .version() method to SSL sockets exposing the actual
protocol version in use.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19546">bpo-19546</a>: configparser exceptions no longer expose implementation
details. Chained KeyErrors are removed, which leads to cleaner tracebacks.
Patch by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22051">bpo-22051</a>: turtledemo no longer reloads examples to re-run them.
Initialization of variables and gui setup should be done in main(), which
is called each time a demo is run, but not on import.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21933">bpo-21933</a>: Turtledemo users can change the code font size with a menu
selection or control(command) ‘-’ or ‘+’ or control-mousewheel. Original
patch by Lita Cho.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21597">bpo-21597</a>: The separator between the turtledemo text pane and the drawing
canvas can now be grabbed and dragged with a mouse. The code text pane
can be widened to easily view or copy the full width of the text. The
canvas can be widened on small screens. Original patches by Jan Kanis and
Lita Cho.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18132">bpo-18132</a>: Turtledemo buttons no longer disappear when the window is
shrunk. Original patches by Jan Kanis and Lita Cho.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22043">bpo-22043</a>: time.monotonic() is now always available.
<code class="docutils literal notranslate"><span class="pre">threading.Lock.acquire()</span></code>, <code class="docutils literal notranslate"><span class="pre">threading.RLock.acquire()</span></code> and socket
operations now use a monotonic clock, instead of the system clock, when a
timeout is used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21527">bpo-21527</a>: Add a default number of workers to ThreadPoolExecutor equal to
5 times the number of CPUs. Patch by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22216">bpo-22216</a>: smtplib now resets its state more completely after a quit. The
most obvious consequence of the previous behavior was a STARTTLS failure
during a connect/starttls/quit/connect/starttls sequence.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22098">bpo-22098</a>: ctypes’ BigEndianStructure and LittleEndianStructure now define
an empty __slots__ so that subclasses don’t always get an instance dict.
Patch by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22185">bpo-22185</a>: Fix an occasional RuntimeError in threading.Condition.wait()
caused by mutation of the waiters queue without holding the lock. Patch
by Doug Zongker.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22287">bpo-22287</a>: On UNIX, _PyTime_gettimeofday() now uses
clock_gettime(CLOCK_REALTIME) if available. As a side effect, Python now
depends on the librt library on Solaris and on Linux (only with glibc
older than 2.17).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22182">bpo-22182</a>: Use e.args to unpack exceptions correctly in
distutils.file_util.move_file. Patch by Claudiu Popa.</p></li>
<li><p>The webbrowser module now uses subprocess’s start_new_session=True rather
than a potentially risky preexec_fn=os.setsid call.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22042">bpo-22042</a>: signal.set_wakeup_fd(fd) now raises an exception if the file
descriptor is in blocking mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16808">bpo-16808</a>: inspect.stack() now returns a named tuple instead of a tuple.
Patch by Daniel Shahaf.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22236">bpo-22236</a>: Fixed Tkinter images copying operations in NoDefaultRoot mode.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=2527">bpo-2527</a>: Add a <em>globals</em> argument to timeit functions, in order to
override the globals namespace in which the timed code is executed. Patch
by Ben Roberts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22118">bpo-22118</a>: Switch urllib.parse to use RFC 3986 semantics for the
resolution of relative URLs, rather than RFCs 1808 and 2396. Patch by
Demian Brecht.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21549">bpo-21549</a>: Added the “members” parameter to TarFile.list().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19628">bpo-19628</a>: Allow compileall recursion depth to be specified with a -r
option.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15696">bpo-15696</a>: Add a __sizeof__ implementation for mmap objects on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22068">bpo-22068</a>: Avoided reference loops with Variables and Fonts in Tkinter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22165">bpo-22165</a>: SimpleHTTPRequestHandler now supports undecodable file names.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15381">bpo-15381</a>: Optimized line reading in io.BytesIO.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=8797">bpo-8797</a>: Raise HTTPError on failed Basic Authentication immediately.
Initial patch by Sam Bull.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20729">bpo-20729</a>: Restored the use of lazy iterkeys()/itervalues()/iteritems() in
the mailbox module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21448">bpo-21448</a>: Changed FeedParser feed() to avoid <em>O</em>(<em>n</em><sup>2</sup>)
behavior when parsing long line. Original patch by Raymond Hettinger.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22184">bpo-22184</a>: The functools LRU Cache decorator factory now gives an earlier
and clearer error message when the user forgets the required parameters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17923">bpo-17923</a>: glob() patterns ending with a slash no longer match non-dirs on
AIX. Based on patch by Delhallt.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21725">bpo-21725</a>: Added support for RFC 6531 (SMTPUTF8) in smtpd.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22176">bpo-22176</a>: Update the ctypes module’s libffi to v3.1. This release adds
support for the Linux AArch64 and POWERPC ELF ABIv2 little endian
architectures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5411">bpo-5411</a>: Added support for the “xztar” format in the shutil module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21121">bpo-21121</a>: Don’t force 3rd party C extensions to be built with
-Werror=declaration-after-statement.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21975">bpo-21975</a>: Fixed crash when using uninitialized sqlite3.Row (in particular
when unpickling pickled sqlite3.Row). sqlite3.Row is now initialized in
the __new__() method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20170">bpo-20170</a>: Convert posixmodule to use Argument Clinic.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21539">bpo-21539</a>: Add an <em>exists_ok</em> argument to <code class="docutils literal notranslate"><span class="pre">Pathlib.mkdir()</span></code> to mimic
<code class="docutils literal notranslate"><span class="pre">mkdir</span> <span class="pre">-p</span></code> and <code class="docutils literal notranslate"><span class="pre">os.makedirs()</span></code> functionality. When true, ignore
<code class="docutils literal notranslate"><span class="pre">FileExistsErrors</span></code>. Patch by Berker Peksag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22127">bpo-22127</a>: Bypass IDNA for pure-ASCII host names in the socket module (in
particular for numeric IPs).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21047">bpo-21047</a>: set the default value for the <em>convert_charrefs</em> argument of
HTMLParser to True. Patch by Berker Peksag.</p></li>
<li><p>Add an __all__ to html.entities.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15114">bpo-15114</a>: the strict mode and argument of HTMLParser, HTMLParser.error,
and the HTMLParserError exception have been removed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22085">bpo-22085</a>: Dropped support of Tk 8.3 in Tkinter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21580">bpo-21580</a>: Now Tkinter correctly handles bytes arguments passed to Tk. In
particular this allows initializing images from binary data.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22003">bpo-22003</a>: When initialized from a bytes object, io.BytesIO() now defers
making a copy until it is mutated, improving performance and memory use on
some use cases. Patch by David Wilson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22018">bpo-22018</a>: On Windows, signal.set_wakeup_fd() now also supports sockets. A
side effect is that Python depends to the WinSock library.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22054">bpo-22054</a>: Add os.get_blocking() and os.set_blocking() functions to get
and set the blocking mode of a file descriptor (False if the O_NONBLOCK
flag is set, True otherwise). These functions are not available on
Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17172">bpo-17172</a>: Make turtledemo start as active on OS X even when run with
subprocess. Patch by Lita Cho.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21704">bpo-21704</a>: Fix build error for _multiprocessing when semaphores are not
available. Patch by Arfrever Frehtes Taifersar Arahesis.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20173">bpo-20173</a>: Convert sha1, sha256, sha512 and md5 to ArgumentClinic. Patch
by Vajrasky Kok.</p></li>
<li><p>Fix repr(_socket.socket) on Windows 64-bit: don’t fail with OverflowError
on closed socket. repr(socket.socket) already works fine.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22033">bpo-22033</a>: Reprs of most Python implemented classes now contain actual
class name instead of hardcoded one.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21947">bpo-21947</a>: The dis module can now disassemble generator-iterator objects
based on their gi_code attribute. Patch by Clement Rouault.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16133">bpo-16133</a>: The asynchat.async_chat.handle_read() method now ignores
BlockingIOError exceptions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22044">bpo-22044</a>: Fixed premature DECREF in call_tzinfo_method. Patch by Tom
Flanagan.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19884">bpo-19884</a>: readline: Disable the meta modifier key if stdout is not a
terminal to not write the ANSI sequence <code class="docutils literal notranslate"><span class="pre">"\033[1034h"</span></code> into stdout. This
sequence is used on some terminal (ex: TERM=xterm-256color”) to enable
support of 8 bit characters.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4350">bpo-4350</a>: Removed a number of out-of-dated and non-working for a long time
Tkinter methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6167">bpo-6167</a>: Scrollbar.activate() now returns the name of active element if
the argument is not specified. Scrollbar.set() now always accepts only 2
arguments.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15275">bpo-15275</a>: Clean up and speed up the ntpath module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21888">bpo-21888</a>: plistlib’s load() and loads() now work if the fmt parameter is
specified.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22032">bpo-22032</a>: __qualname__ instead of __name__ is now always used to format
fully qualified class names of Python implemented classes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22031">bpo-22031</a>: Reprs now always use hexadecimal format with the “0x” prefix
when contain an id in form “ at 0x…”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22018">bpo-22018</a>: signal.set_wakeup_fd() now raises an OSError instead of a
ValueError on <code class="docutils literal notranslate"><span class="pre">fstat()</span></code> failure.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21044">bpo-21044</a>: tarfile.open() now handles fileobj with an integer ‘name’
attribute. Based on patch by Antoine Pietri.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21966">bpo-21966</a>: Respect -q command-line option when code module is ran.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19076">bpo-19076</a>: Don’t pass the redundant ‘file’ argument to self.error().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16382">bpo-16382</a>: Improve exception message of warnings.warn() for bad category.
Initial patch by Phil Elson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21932">bpo-21932</a>: os.read() now uses a <a class="reference internal" href="../c-api/intro.html#c.Py_ssize_t" title="Py_ssize_t"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_ssize_t()</span></code></a> type instead of
<span class="c-expr sig sig-inline c"><span class="kt">int</span></span> for the size to support reading more than 2 GB at once. On
Windows, the size is truncated to INT_MAX. As any call to os.read(), the
OS may read less bytes than the number of requested bytes.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21942">bpo-21942</a>: Fixed source file viewing in pydoc’s server mode on Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11259">bpo-11259</a>: asynchat.async_chat().set_terminator() now raises a ValueError
if the number of received bytes is negative.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12523">bpo-12523</a>: asynchat.async_chat.push() now raises a TypeError if it doesn’t
get a bytes string</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21707">bpo-21707</a>: Add missing kwonlyargcount argument to
ModuleFinder.replace_paths_in_code().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20639">bpo-20639</a>: calling Path.with_suffix(‘’) allows removing the suffix again.
Patch by July Tikhonov.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21714">bpo-21714</a>: Disallow the construction of invalid paths using
Path.with_name(). Original patch by Antony Lee.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15014">bpo-15014</a>: Added ‘auth’ method to smtplib to make implementing auth
mechanisms simpler, and used it internally in the login method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21151">bpo-21151</a>: Fixed a segfault in the winreg module when <code class="docutils literal notranslate"><span class="pre">None</span></code> is passed
as a <code class="docutils literal notranslate"><span class="pre">REG_BINARY</span></code> value to SetValueEx. Patch by John Ehresman.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21090">bpo-21090</a>: io.FileIO.readall() does not ignore I/O errors anymore. Before,
it ignored I/O errors if at least the first C call read() succeed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=5800">bpo-5800</a>: headers parameter of wsgiref.headers.Headers is now optional.
Initial patch by Pablo Torres Navarrete and SilentGhost.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21781">bpo-21781</a>: ssl.RAND_add() now supports strings longer than 2 GB.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21679">bpo-21679</a>: Prevent extraneous fstat() calls during open(). Patch by
Bohuslav Kabrda.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21863">bpo-21863</a>: cProfile now displays the module name of C extension functions,
in addition to their own name.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11453">bpo-11453</a>: asyncore: emit a ResourceWarning when an unclosed file_wrapper
object is destroyed. The destructor now closes the file if needed. The
close() method can now be called twice: the second call does nothing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21858">bpo-21858</a>: Better handling of Python exceptions in the sqlite3 module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21476">bpo-21476</a>: Make sure the email.parser.BytesParser TextIOWrapper is
discarded after parsing, so the input file isn’t unexpectedly closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20295">bpo-20295</a>: imghdr now recognizes OpenEXR format images.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21729">bpo-21729</a>: Used the “with” statement in the dbm.dumb module to ensure
files closing. Patch by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21491">bpo-21491</a>: socketserver: Fix a race condition in child processes reaping.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21719">bpo-21719</a>: Added the <code class="docutils literal notranslate"><span class="pre">st_file_attributes</span></code> field to os.stat_result on
Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21832">bpo-21832</a>: Require named tuple inputs to be exact strings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21722">bpo-21722</a>: The distutils “upload” command now exits with a non-zero return
code when uploading fails. Patch by Martin Dengler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21723">bpo-21723</a>: asyncio.Queue: support any type of number (ex: float) for the
maximum size. Patch written by Vajrasky Kok.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21711">bpo-21711</a>: support for “site-python” directories has now been removed from
the site module (it was deprecated in 3.4).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17552">bpo-17552</a>: new socket.sendfile() method allowing a file to be sent over a
socket by using high-performance os.sendfile() on UNIX. Patch by Giampaolo
Rodola’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18039">bpo-18039</a>: dbm.dump.open() now always creates a new database when the flag
has the value ‘n’. Patch by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21326">bpo-21326</a>: Add a new is_closed() method to asyncio.BaseEventLoop.
run_forever() and run_until_complete() methods of asyncio.BaseEventLoop
now raise an exception if the event loop was closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21766">bpo-21766</a>: Prevent a security hole in CGIHTTPServer by URL unquoting paths
before checking for a CGI script at that path.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21310">bpo-21310</a>: Fixed possible resource leak in failed open().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21256">bpo-21256</a>: Printout of keyword args should be in deterministic order in a
mock function call. This will help to write better doctests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21677">bpo-21677</a>: Fixed chaining nonnormalized exceptions in io close() methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11709">bpo-11709</a>: Fix the pydoc.help function to not fail when sys.stdin is not a
valid file.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21515">bpo-21515</a>: tempfile.TemporaryFile now uses os.O_TMPFILE flag is available.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13223">bpo-13223</a>: Fix pydoc.writedoc so that the HTML documentation for methods
that use ‘self’ in the example code is generated correctly.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21463">bpo-21463</a>: In urllib.request, fix pruning of the FTP cache.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21618">bpo-21618</a>: The subprocess module could fail to close open fds that were
inherited by the calling process and already higher than POSIX resource
limits would otherwise allow. On systems with a functioning /proc/self/fd
or /dev/fd interface the max is now ignored and all fds are closed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20383">bpo-20383</a>: Introduce importlib.util.module_from_spec() as the preferred
way to create a new module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21552">bpo-21552</a>: Fixed possible integer overflow of too long string lengths in
the tkinter module on 64-bit platforms.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14315">bpo-14315</a>: The zipfile module now ignores extra fields in the central
directory that are too short to be parsed instead of letting a
struct.unpack error bubble up as this “bad data” appears in many real
world zip files in the wild and is ignored by other zip tools.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13742">bpo-13742</a>: Added “key” and “reverse” parameters to heapq.merge(). (First
draft of patch contributed by Simon Sapin.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21402">bpo-21402</a>: tkinter.ttk now works when default root window is not set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=3015">bpo-3015</a>: <code class="docutils literal notranslate"><span class="pre">_tkinter.create()</span></code> now creates <code class="docutils literal notranslate"><span class="pre">tkapp</span></code> object with
<code class="docutils literal notranslate"><span class="pre">wantobjects=1</span></code> by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10203">bpo-10203</a>: sqlite3.Row now truly supports sequence protocol. In
particular it supports reverse() and negative indices. Original patch by
Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18807">bpo-18807</a>: If copying (no symlinks) specified for a venv, then the python
interpreter aliases (python, python3) are now created by copying rather
than symlinking.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20197">bpo-20197</a>: Added support for the WebP image type in the imghdr module.
Patch by Fabrice Aneche and Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21513">bpo-21513</a>: Speedup some properties of IP addresses (IPv4Address,
IPv6Address) such as .is_private or .is_multicast.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21137">bpo-21137</a>: Improve the repr for threading.Lock() and its variants by
showing the “locked” or “unlocked” status. Patch by Berker Peksag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21538">bpo-21538</a>: The plistlib module now supports loading of binary plist files
when reference or offset size is not a power of two.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21455">bpo-21455</a>: Add a default backlog to socket.listen().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21525">bpo-21525</a>: Most Tkinter methods which accepted tuples now accept lists
too.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22166">bpo-22166</a>: With the assistance of a new internal _codecs._forget_codec
helping function, test_codecs now clears the encoding caches to avoid the
appearance of a reference leak</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22236">bpo-22236</a>: Tkinter tests now don’t reuse default root window. New root
window is created for every test class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10744">bpo-10744</a>: Fix <span class="target" id="index-484"></span><a class="pep reference external" href="https://peps.python.org/pep-3118/"><strong>PEP 3118</strong></a> format strings on ctypes objects with a
nontrivial shape.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20826">bpo-20826</a>: Optimize ipaddress.collapse_addresses().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21487">bpo-21487</a>: Optimize ipaddress.summarize_address_range() and
ipaddress.{IPv4Network,IPv6Network}.subnets().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21486">bpo-21486</a>: Optimize parsing of netmasks in ipaddress.IPv4Network and
ipaddress.IPv6Network.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13916">bpo-13916</a>: Disallowed the surrogatepass error handler for non UTF-*
encodings.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20998">bpo-20998</a>: Fixed re.fullmatch() of repeated single character pattern with
ignore case. Original patch by Matthew Barnett.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21075">bpo-21075</a>: fileinput.FileInput now reads bytes from standard stream if
binary mode is specified. Patch by Sam Kimbrel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19775">bpo-19775</a>: Add a samefile() method to pathlib Path objects. Initial patch
by Vajrasky Kok.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21226">bpo-21226</a>: Set up modules properly in PyImport_ExecCodeModuleObject (and
friends).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21398">bpo-21398</a>: Fix a unicode error in the pydoc pager when the documentation
contains characters not encodable to the stdout encoding.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16531">bpo-16531</a>: ipaddress.IPv4Network and ipaddress.IPv6Network now accept an
(address, netmask) tuple argument, so as to easily construct network
objects from existing addresses.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21156">bpo-21156</a>: importlib.abc.InspectLoader.source_to_code() is now a
staticmethod.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21424">bpo-21424</a>: Simplified and optimized heaqp.nlargest() and nmsmallest() to
make fewer tuple comparisons.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21396">bpo-21396</a>: Fix TextIOWrapper(…, write_through=True) to not force a
flush() on the underlying binary stream. Patch by akira.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18314">bpo-18314</a>: Unlink now removes junctions on Windows. Patch by Kim Gräsman</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21088">bpo-21088</a>: Bugfix for curses.window.addch() regression in 3.4.0. In
porting to Argument Clinic, the first two arguments were reversed.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21407">bpo-21407</a>: _decimal: The module now supports function signatures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10650">bpo-10650</a>: Remove the non-standard ‘watchexp’ parameter from the
Decimal.quantize() method in the Python version. It had never been
present in the C version.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21469">bpo-21469</a>: Reduced the risk of false positives in robotparser by checking
to make sure that robots.txt has been read or does not exist prior to
returning True in can_fetch().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19414">bpo-19414</a>: Have the OrderedDict mark deleted links as unusable. This gives
an early failure if the link is deleted during iteration.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21421">bpo-21421</a>: Add __slots__ to the MappingViews ABC. Patch by Josh Rosenberg.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21101">bpo-21101</a>: Eliminate double hashing in the C speed-up code for
collections.Counter().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21321">bpo-21321</a>: itertools.islice() now releases the reference to the source
iterator when the slice is exhausted. Patch by Anton Afanasyev.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21057">bpo-21057</a>: TextIOWrapper now allows the underlying binary stream’s read()
or read1() method to return an arbitrary bytes-like object (such as a
memoryview). Patch by Nikolaus Rath.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20951">bpo-20951</a>: SSLSocket.send() now raises either SSLWantReadError or
SSLWantWriteError on a non-blocking socket if the operation would block.
Previously, it would return 0. Patch by Nikolaus Rath.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13248">bpo-13248</a>: removed previously deprecated asyncore.dispatcher __getattr__
cheap inheritance hack.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9815">bpo-9815</a>: assertRaises now tries to clear references to local variables in
the exception’s traceback.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19940">bpo-19940</a>: ssl.cert_time_to_seconds() now interprets the given time string
in the UTC timezone (as specified in RFC 5280), not the local timezone.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13204">bpo-13204</a>: Calling sys.flags.__new__ would crash the interpreter, now it
raises a TypeError.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19385">bpo-19385</a>: Make operations on a closed dbm.dumb database always raise the
same exception.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21207">bpo-21207</a>: Detect when the os.urandom cached fd has been closed or
replaced, and open it anew.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21291">bpo-21291</a>: subprocess’s Popen.wait() is now thread safe so that multiple
threads may be calling wait() or poll() on a Popen instance at the same
time without losing the Popen.returncode value.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21127">bpo-21127</a>: Path objects can now be instantiated from str subclass
instances (such as <code class="docutils literal notranslate"><span class="pre">numpy.str_</span></code>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15002">bpo-15002</a>: urllib.response object to use _TemporaryFileWrapper (and
_TemporaryFileCloser) facility. Provides a better way to handle file
descriptor close. Patch contributed by Christian Theune.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12220">bpo-12220</a>: mindom now raises a custom ValueError indicating it doesn’t
support spaces in URIs instead of letting a ‘split’ ValueError bubble up.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21068">bpo-21068</a>: The ssl.PROTOCOL* constants are now enum members.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21276">bpo-21276</a>: posixmodule: Don’t define USE_XATTRS on KFreeBSD and the Hurd.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21262">bpo-21262</a>: New method assert_not_called for Mock. It raises AssertionError
if the mock has been called.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21238">bpo-21238</a>: New keyword argument <code class="docutils literal notranslate"><span class="pre">unsafe</span></code> to Mock. It raises
<code class="docutils literal notranslate"><span class="pre">AttributeError</span></code> in case of an attribute startswith assert or assret.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20896">bpo-20896</a>: ssl.get_server_certificate() now uses PROTOCOL_SSLv23, not
PROTOCOL_SSLv3, for maximum compatibility.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21239">bpo-21239</a>: patch.stopall() didn’t work deterministically when the same
name was patched more than once.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21203">bpo-21203</a>: Updated fileConfig and dictConfig to remove inconsistencies.
Thanks to Jure Koren for the patch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21222">bpo-21222</a>: Passing name keyword argument to mock.create_autospec now
works.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21197">bpo-21197</a>: Add lib64 -> lib symlink in venvs on 64-bit non-OS X POSIX.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17498">bpo-17498</a>: Some SMTP servers disconnect after certain errors, violating
strict RFC conformance. Instead of losing the error code when we issue
the subsequent RSET, smtplib now returns the error code and defers raising
the SMTPServerDisconnected error until the next command is issued.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17826">bpo-17826</a>: setting an iterable side_effect on a mock function created by
create_autospec now works. Patch by Kushal Das.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=7776">bpo-7776</a>: Fix <code class="docutils literal notranslate"><span class="pre">Host:</span></code> header and reconnection when using
http.client.HTTPConnection.set_tunnel(). Patch by Nikolaus Rath.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20968">bpo-20968</a>: unittest.mock.MagicMock now supports division. Patch by
Johannes Baiter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21529">bpo-21529</a>: Fix arbitrary memory access in JSONDecoder.raw_decode with a
negative second parameter. Bug reported by Guido Vranken. (See also:
<span class="target" id="index-485"></span><a class="cve reference external" href="https://www.cve.org/CVERecord?id=CVE-2014-4616"><strong>CVE 2014-4616</strong></a>)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21169">bpo-21169</a>: getpass now handles non-ascii characters that the input stream
encoding cannot encode by re-encoding using the replace error handler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21171">bpo-21171</a>: Fixed undocumented filter API of the rot13 codec. Patch by
Berker Peksag.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20539">bpo-20539</a>: Improved math.factorial error message for large positive inputs
and changed exception type (OverflowError -> ValueError) for large
negative inputs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21172">bpo-21172</a>: isinstance check relaxed from dict to collections.Mapping.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21155">bpo-21155</a>: asyncio.EventLoop.create_unix_server() now raises a ValueError
if path and sock are specified at the same time.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21136">bpo-21136</a>: Avoid unnecessary normalization of Fractions resulting from
power and other operations. Patch by Raymond Hettinger.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17621">bpo-17621</a>: Introduce importlib.util.LazyLoader.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21076">bpo-21076</a>: signal module constants were turned into enums. Patch by
Giampaolo Rodola’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20636">bpo-20636</a>: Improved the repr of Tkinter widgets.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19505">bpo-19505</a>: The items, keys, and values views of OrderedDict now support
reverse iteration using reversed().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21149">bpo-21149</a>: Improved thread-safety in logging cleanup during interpreter
shutdown. Thanks to Devin Jeanpierre for the patch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21058">bpo-21058</a>: Fix a leak of file descriptor in
<a class="reference internal" href="../library/tempfile.html#tempfile.NamedTemporaryFile" title="tempfile.NamedTemporaryFile"><code class="xref py py-func docutils literal notranslate"><span class="pre">tempfile.NamedTemporaryFile()</span></code></a>, close the file descriptor if
<a class="reference internal" href="../library/io.html#io.open" title="io.open"><code class="xref py py-func docutils literal notranslate"><span class="pre">io.open()</span></code></a> fails</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21200">bpo-21200</a>: Return None from pkgutil.get_loader() when __spec__ is missing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21013">bpo-21013</a>: Enhance ssl.create_default_context() when used for server side
sockets to provide better security by default.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20145">bpo-20145</a>: <code class="docutils literal notranslate"><span class="pre">assertRaisesRegex</span></code> and <code class="docutils literal notranslate"><span class="pre">assertWarnsRegex</span></code> now raise a
<code class="docutils literal notranslate"><span class="pre">TypeError</span></code> if the second argument is not a string or compiled regex.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20633">bpo-20633</a>: Replace relative import by absolute import.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20980">bpo-20980</a>: Stop wrapping exception when using ThreadPool.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21082">bpo-21082</a>: In os.makedirs, do not set the process-wide umask. Note this
changes behavior of makedirs when exist_ok=True.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20990">bpo-20990</a>: Fix issues found by pyflakes for multiprocessing.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21015">bpo-21015</a>: SSL contexts will now automatically select an elliptic curve
for ECDH key exchange on OpenSSL 1.0.2 and later, and otherwise default to
“prime256v1”.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21000">bpo-21000</a>: Improve the command-line interface of json.tool.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20995">bpo-20995</a>: Enhance default ciphers used by the ssl module to enable better
security and prioritize perfect forward secrecy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20884">bpo-20884</a>: Don’t assume that __file__ is defined on importlib.__init__.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21499">bpo-21499</a>: Ignore __builtins__ in several test_importlib.test_api tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20627">bpo-20627</a>: xmlrpc.client.ServerProxy is now a context manager.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19165">bpo-19165</a>: The formatter module now raises DeprecationWarning instead of
PendingDeprecationWarning.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=13936">bpo-13936</a>: Remove the ability of datetime.time instances to be considered
false in boolean contexts.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18931">bpo-18931</a>: selectors module now supports /dev/poll on Solaris. Patch by
Giampaolo Rodola’.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19977">bpo-19977</a>: When the <code class="docutils literal notranslate"><span class="pre">LC_TYPE</span></code> locale is the POSIX locale (<code class="docutils literal notranslate"><span class="pre">C</span></code> locale),
<a class="reference internal" href="../library/sys.html#sys.stdin" title="sys.stdin"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.stdin</span></code></a> and <a class="reference internal" href="../library/sys.html#sys.stdout" title="sys.stdout"><code class="xref py py-data docutils literal notranslate"><span class="pre">sys.stdout</span></code></a> are now using the
<code class="docutils literal notranslate"><span class="pre">surrogateescape</span></code> error handler, instead of the <code class="docutils literal notranslate"><span class="pre">strict</span></code> error
handler.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20574">bpo-20574</a>: Implement incremental decoder for cp65001 code (Windows code
page 65001, Microsoft UTF-8).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20879">bpo-20879</a>: Delay the initialization of encoding and decoding tables for
base32, ascii85 and base85 codecs in the base64 module, and delay the
initialization of the unquote_to_bytes() table of the urllib.parse module,
to not waste memory if these modules are not used.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19157">bpo-19157</a>: Include the broadcast address in the usable hosts for IPv6 in
ipaddress.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11599">bpo-11599</a>: When an external command (e.g. compiler) fails, distutils now
prints out the whole command line (instead of just the command name) if
the environment variable DISTUTILS_DEBUG is set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4931">bpo-4931</a>: distutils should not produce unhelpful “error: None” messages
anymore. distutils.util.grok_environment_error is kept but doc-deprecated.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20875">bpo-20875</a>: Prevent possible gzip “‘read’ is not defined” NameError. Patch
by Claudiu Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11558">bpo-11558</a>: <code class="docutils literal notranslate"><span class="pre">email.message.Message.attach</span></code> now returns a more useful
error message if <code class="docutils literal notranslate"><span class="pre">attach</span></code> is called on a message for which
<code class="docutils literal notranslate"><span class="pre">is_multipart</span></code> is False.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20283">bpo-20283</a>: RE pattern methods now accept the string keyword parameters as
documented. The pattern and source keyword parameters are left as
deprecated aliases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20778">bpo-20778</a>: Fix modulefinder to work with bytecode-only modules.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20791">bpo-20791</a>: copy.copy() now doesn’t make a copy when the input is a bytes
object. Initial patch by Peter Otten.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19748">bpo-19748</a>: On AIX, time.mktime() now raises an OverflowError for year
outsize range [1902; 2037].</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19573">bpo-19573</a>: inspect.signature: Use enum for parameter kind constants.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20726">bpo-20726</a>: inspect.signature: Make Signature and Parameter picklable.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17373">bpo-17373</a>: Add inspect.Signature.from_callable method.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20378">bpo-20378</a>: Improve repr of inspect.Signature and inspect.Parameter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20816">bpo-20816</a>: Fix inspect.getcallargs() to raise correct TypeError for
missing keyword-only arguments. Patch by Jeremiah Lowin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20817">bpo-20817</a>: Fix inspect.getcallargs() to fail correctly if more than 3
arguments are missing. Patch by Jeremiah Lowin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6676">bpo-6676</a>: Ensure a meaningful exception is raised when attempting to parse
more than one XML document per pyexpat xmlparser instance. (Original
patches by Hirokazu Yamamoto and Amaury Forgeot d’Arc, with suggested
wording by David Gutteridge)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21117">bpo-21117</a>: Fix inspect.signature to better support functools.partial. Due
to the specifics of functools.partial implementation,
positional-or-keyword arguments passed as keyword arguments become
keyword-only.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20334">bpo-20334</a>: inspect.Signature and inspect.Parameter are now hashable.
Thanks to Antony Lee for bug reports and suggestions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15916">bpo-15916</a>: doctest.DocTestSuite returns an empty unittest.TestSuite
instead of raising ValueError if it finds no tests</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21209">bpo-21209</a>: Fix asyncio.tasks.CoroWrapper to workaround a bug in yield-from
implementation in CPythons prior to 3.4.1.</p></li>
<li><p>asyncio: Add gi_{frame,running,code} properties to CoroWrapper (upstream
<a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=163">bpo-163</a>).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21311">bpo-21311</a>: Avoid exception in _osx_support with non-standard compiler
configurations. Patch by John Szakmeister.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11571">bpo-11571</a>: Ensure that the turtle window becomes the topmost window when
launched on OS X.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21801">bpo-21801</a>: Validate that __signature__ is None or an instance of
Signature.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21923">bpo-21923</a>: Prevent AttributeError in
distutils.sysconfig.customize_compiler due to possible uninitialized
_config_vars.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21323">bpo-21323</a>: Fix http.server to again handle scripts in CGI subdirectories,
broken by the fix for security <a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19435">bpo-19435</a>. Patch by Zach Byrne.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22733">bpo-22733</a>: Fix ffi_prep_args not zero-extending argument values correctly
on 64-bit Windows.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23302">bpo-23302</a>: Default to TCP_NODELAY=1 upon establishing an HTTPConnection.
Removed use of hard-coded MSS as it’s an optimization that’s no longer
needed with Nagle disabled.</p></li>
</ul>
</section>
<section id="id834">
<h3>IDLE<a class="headerlink" href="#id834" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20577">bpo-20577</a>: Configuration of the max line length for the FormatParagraph
extension has been moved from the General tab of the Idle preferences
dialog to the FormatParagraph tab of the Config Extensions dialog. Patch
by Tal Einat.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16893">bpo-16893</a>: Update Idle doc chapter to match current Idle and add new
information.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=3068">bpo-3068</a>: Add Idle extension configuration dialog to Options menu. Changes
are written to HOME/.idlerc/config-extensions.cfg. Original patch by Tal
Einat.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16233">bpo-16233</a>: A module browser (File : Class Browser, Alt+C) requires an
editor window with a filename. When Class Browser is requested otherwise,
from a shell, output window, or ‘Untitled’ editor, Idle no longer displays
an error box. It now pops up an Open Module box (Alt+M). If a valid name
is entered and a module is opened, a corresponding browser is also opened.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=4832">bpo-4832</a>: Save As to type Python files automatically adds .py to the name
you enter (even if your system does not display it). Some systems
automatically add .txt when type is Text files.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21986">bpo-21986</a>: Code objects are not normally pickled by the pickle module. To
match this, they are no longer pickled when running under Idle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17390">bpo-17390</a>: Adjust Editor window title; remove ‘Python’, move version to
end.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14105">bpo-14105</a>: Idle debugger breakpoints no longer disappear when inserting or
deleting lines.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17172">bpo-17172</a>: Turtledemo can now be run from Idle. Currently, the entry is on
the Help menu, but it may move to Run. Patch by Ramchandra Apt and Lita
Cho.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21765">bpo-21765</a>: Add support for non-ascii identifiers to HyperParser.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21940">bpo-21940</a>: Add unittest for WidgetRedirector. Initial patch by Saimadhav
Heblikar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18592">bpo-18592</a>: Add unittest for SearchDialogBase. Patch by Phil Webster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21694">bpo-21694</a>: Add unittest for ParenMatch. Patch by Saimadhav Heblikar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21686">bpo-21686</a>: add unittest for HyperParser. Original patch by Saimadhav
Heblikar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=12387">bpo-12387</a>: Add missing upper(lower)case versions of default Windows key
bindings for Idle so Caps Lock does not disable them. Patch by Roger
Serwy.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21695">bpo-21695</a>: Closing a Find-in-files output window while the search is still
in progress no longer closes Idle.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18910">bpo-18910</a>: Add unittest for textView. Patch by Phil Webster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18292">bpo-18292</a>: Add unittest for AutoExpand. Patch by Saihadhav Heblikar.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18409">bpo-18409</a>: Add unittest for AutoComplete. Patch by Phil Webster.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21477">bpo-21477</a>: htest.py - Improve framework, complete set of tests. Patches by
Saimadhav Heblikar</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18104">bpo-18104</a>: Add idlelib/idle_test/htest.py with a few sample tests to begin
consolidating and improving human-validated tests of Idle. Change other
files as needed to work with htest. Running the module as __main__ runs
all tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21139">bpo-21139</a>: Change default paragraph width to 72, the <span class="target" id="index-486"></span><a class="pep reference external" href="https://peps.python.org/pep-0008/"><strong>PEP 8</strong></a>
recommendation.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21284">bpo-21284</a>: Paragraph reformat test passes after user changes reformat
width.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17654">bpo-17654</a>: Ensure IDLE menus are customized properly on OS X for
non-framework builds and for all variants of Tk.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23180">bpo-23180</a>: Rename IDLE “Windows” menu item to “Window”. Patch by Al
Sweigart.</p></li>
</ul>
</section>
<section id="id835">
<h3>Build<a class="headerlink" href="#id835" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15506">bpo-15506</a>: Use standard PKG_PROG_PKG_CONFIG autoconf macro in the
configure script.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22935">bpo-22935</a>: Allow the ssl module to be compiled if openssl doesn’t support
SSL 3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22592">bpo-22592</a>: Drop support of the Borland C compiler to build Python. The
distutils module still supports it to build extensions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22591">bpo-22591</a>: Drop support of MS-DOS, especially of the DJGPP compiler
(MS-DOS port of GCC).</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16537">bpo-16537</a>: Check whether self.extensions is empty in setup.py. Patch by
Jonathan Hosmer.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22359">bpo-22359</a>: Remove incorrect uses of recursive make. Patch by Jonas
Wagner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21958">bpo-21958</a>: Define HAVE_ROUND when building with Visual Studio 2013 and
above. Patch by Zachary Turner.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18093">bpo-18093</a>: the programs that embed the CPython runtime are now in a
separate “Programs” directory, rather than being kept in the Modules
directory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15759">bpo-15759</a>: “make suspicious”, “make linkcheck” and “make doctest” in Doc/
now display special message when and only when there are failures.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21141">bpo-21141</a>: The Windows build process no longer attempts to find Perl,
instead relying on OpenSSL source being configured and ready to build.
The <code class="docutils literal notranslate"><span class="pre">PCbuild\build_ssl.py</span></code> script has been re-written and re-named to
<code class="docutils literal notranslate"><span class="pre">PCbuild\prepare_ssl.py</span></code>, and takes care of configuring OpenSSL source
for both 32 and 64 bit platforms. OpenSSL sources obtained from
svn.python.org will always be pre-configured and ready to build.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21037">bpo-21037</a>: Add a build option to enable AddressSanitizer support.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19962">bpo-19962</a>: The Windows build process now creates “python.bat” in the root
of the source tree, which passes all arguments through to the most
recently built interpreter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21285">bpo-21285</a>: Refactor and fix curses configure check to always search in a
ncursesw directory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15234">bpo-15234</a>: For BerkeleyDB and Sqlite, only add the found library and
include directories if they aren’t already being searched. This avoids an
explicit runtime library dependency.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17861">bpo-17861</a>: Tools/scripts/generate_opcode_h.py automatically regenerates
Include/opcode.h from Lib/opcode.py if the latter gets any change.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20644">bpo-20644</a>: OS X installer build support for documentation build changes in
3.4.1: assume externally supplied sphinx-build is available in /usr/bin.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20022">bpo-20022</a>: Eliminate use of deprecated bundlebuilder in OS X builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=15968">bpo-15968</a>: Incorporated Tcl, Tk, and Tix builds into the Windows build
solution.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17095">bpo-17095</a>: Fix Modules/Setup <em>shared</em> support.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21811">bpo-21811</a>: Anticipated fixes to support OS X versions > 10.9.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21166">bpo-21166</a>: Prevent possible segfaults and other random failures of python
–generate-posix-vars in pybuilddir.txt build target.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18096">bpo-18096</a>: Fix library order returned by python-config.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17219">bpo-17219</a>: Add library build dir for Python extension cross-builds.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22919">bpo-22919</a>: Windows build updated to support VC 14.0 (Visual Studio 2015),
which will be used for the official release.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21236">bpo-21236</a>: Build _msi.pyd with cabinet.lib instead of fci.lib</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17128">bpo-17128</a>: Use private version of OpenSSL for OS X 10.5+ installer.</p></li>
</ul>
</section>
<section id="id836">
<h3>C API<a class="headerlink" href="#id836" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=14203">bpo-14203</a>: Remove obsolete support for view==NULL in PyBuffer_FillInfo(),
bytearray_getbuffer(), bytesiobuf_getbuffer() and array_buffer_getbuf().
All functions now raise BufferError in that case.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22445">bpo-22445</a>: PyBuffer_IsContiguous() now implements precise contiguity
tests, compatible with NumPy’s NPY_RELAXED_STRIDES_CHECKING compilation
flag. Previously the function reported false negatives for corner cases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22079">bpo-22079</a>: PyType_Ready() now checks that statically allocated type has no
dynamically allocated bases.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22453">bpo-22453</a>: Removed non-documented macro PyObject_REPR().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18395">bpo-18395</a>: Rename <code class="docutils literal notranslate"><span class="pre">_Py_char2wchar()</span></code> to <a class="reference internal" href="../c-api/sys.html#c.Py_DecodeLocale" title="Py_DecodeLocale"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_DecodeLocale()</span></code></a>,
rename <code class="docutils literal notranslate"><span class="pre">_Py_wchar2char()</span></code> to <a class="reference internal" href="../c-api/sys.html#c.Py_EncodeLocale" title="Py_EncodeLocale"><code class="xref c c-func docutils literal notranslate"><span class="pre">Py_EncodeLocale()</span></code></a>, and document
these functions.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21233">bpo-21233</a>: Add new C functions: PyMem_RawCalloc(), PyMem_Calloc(),
PyObject_Calloc(), _PyObject_GC_Calloc(). bytes(int) is now using
<code class="docutils literal notranslate"><span class="pre">calloc()</span></code> instead of <code class="docutils literal notranslate"><span class="pre">malloc()</span></code> for large objects which is faster and
use less memory.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20942">bpo-20942</a>: PyImport_ImportFrozenModuleObject() no longer sets __file__ to
match what importlib does; this affects _frozen_importlib as well as any
module loaded using imp.init_frozen().</p></li>
</ul>
</section>
<section id="id837">
<h3>Documentation<a class="headerlink" href="#id837" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19548">bpo-19548</a>: Update the codecs module documentation to better cover the
distinction between text encodings and other codecs, together with other
clarifications. Patch by Martin Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22394">bpo-22394</a>: Doc/Makefile now supports <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">venv</span> <span class="pre">PYTHON=../python</span></code> to
create a venv for generating the documentation, e.g., <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">html</span>
<span class="pre">PYTHON=venv/bin/python3</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21514">bpo-21514</a>: The documentation of the json module now refers to new JSON RFC
7159 instead of obsoleted RFC 4627.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21777">bpo-21777</a>: The binary sequence methods on bytes and bytearray are now
documented explicitly, rather than assuming users will be able to derive
the expected behaviour from the behaviour of the corresponding str
methods.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=6916">bpo-6916</a>: undocument deprecated asynchat.fifo class.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17386">bpo-17386</a>: Expanded functionality of the <code class="docutils literal notranslate"><span class="pre">Doc/make.bat</span></code> script to make
it much more comparable to <code class="docutils literal notranslate"><span class="pre">Doc/Makefile</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21312">bpo-21312</a>: Update the thread_foobar.h template file to include newer
threading APIs. Patch by Jack McCracken.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21043">bpo-21043</a>: Remove the recommendation for specific CA organizations and to
mention the ability to load the OS certificates.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20765">bpo-20765</a>: Add missing documentation for PurePath.with_name() and
PurePath.with_suffix().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19407">bpo-19407</a>: New package installation and distribution guides based on the
Python Packaging Authority tools. Existing guides have been retained as
legacy links from the distutils docs, as they still contain some required
reference material for tool developers that isn’t recorded anywhere else.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19697">bpo-19697</a>: Document cases where __main__.__spec__ is None.</p></li>
</ul>
</section>
<section id="id838">
<h3>Tests<a class="headerlink" href="#id838" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18982">bpo-18982</a>: Add tests for CLI of the calendar module.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19548">bpo-19548</a>: Added some additional checks to test_codecs to ensure that
statements in the updated documentation remain accurate. Patch by Martin
Panter.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22838">bpo-22838</a>: All test_re tests now work with unittest test discovery.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22173">bpo-22173</a>: Update lib2to3 tests to use unittest test discovery.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16000">bpo-16000</a>: Convert test_curses to use unittest.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21456">bpo-21456</a>: Skip two tests in test_urllib2net.py if _ssl module not
present. Patch by Remi Pointel.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20746">bpo-20746</a>: Fix test_pdb to run in refleak mode (-R). Patch by Xavier de
Gaye.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22060">bpo-22060</a>: test_ctypes has been somewhat cleaned up and simplified; it now
uses unittest test discovery to find its tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22104">bpo-22104</a>: regrtest.py no longer holds a reference to the suite of tests
loaded from test modules that don’t define test_main().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22111">bpo-22111</a>: Assorted cleanups in test_imaplib. Patch by Milan Oberkirch.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22002">bpo-22002</a>: Added <code class="docutils literal notranslate"><span class="pre">load_package_tests</span></code> function to test.support and used
it to implement/augment test discovery in test_asyncio, test_email,
test_importlib, test_json, and test_tools.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21976">bpo-21976</a>: Fix test_ssl to accept LibreSSL version strings. Thanks to
William Orr.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21918">bpo-21918</a>: Converted test_tools from a module to a package containing
separate test files for each tested script.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=9554">bpo-9554</a>: Use modern unittest features in test_argparse. Initial patch by
Denver Coneybeare and Radu Voicilas.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20155">bpo-20155</a>: Changed HTTP method names in failing tests in test_httpservers
so that packet filtering software (specifically Windows Base Filtering
Engine) does not interfere with the transaction semantics expected by the
tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19493">bpo-19493</a>: Refactored the ctypes test package to skip tests explicitly
rather than silently.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18492">bpo-18492</a>: All resources are now allowed when tests are not run by
regrtest.py.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21634">bpo-21634</a>: Fix pystone micro-benchmark: use floor division instead of true
division to benchmark integers instead of floating-point numbers. Set
pystone version to 1.2. Patch written by Lennart Regebro.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21605">bpo-21605</a>: Added tests for Tkinter images.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21493">bpo-21493</a>: Added test for ntpath.expanduser(). Original patch by Claudiu
Popa.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=19925">bpo-19925</a>: Added tests for the spwd module. Original patch by Vajrasky
Kok.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21522">bpo-21522</a>: Added Tkinter tests for Listbox.itemconfigure(),
PanedWindow.paneconfigure(), and Menu.entryconfigure().</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17756">bpo-17756</a>: Fix test_code test when run from the installed location.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17752">bpo-17752</a>: Fix distutils tests when run from the installed location.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18604">bpo-18604</a>: Consolidated checks for GUI availability. All platforms now at
least check whether Tk can be instantiated when the GUI resource is
requested.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21275">bpo-21275</a>: Fix a socket test on KFreeBSD.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21223">bpo-21223</a>: Pass test_site/test_startup_imports when some of the extensions
are built as builtins.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20635">bpo-20635</a>: Added tests for Tk geometry managers.</p></li>
<li><p>Add test case for freeze.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20743">bpo-20743</a>: Fix a reference leak in test_tcl.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21097">bpo-21097</a>: Move test_namespace_pkgs into test_importlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21503">bpo-21503</a>: Use test_both() consistently in test_importlib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20939">bpo-20939</a>: Avoid various network test failures due to new redirect of
<a class="reference external" href="http://www.python.org/">http://www.python.org/</a> to <a class="reference external" href="https://www.python.org">https://www.python.org</a>: use
<a class="reference external" href="http://www.example.com">http://www.example.com</a> instead.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20668">bpo-20668</a>: asyncio tests no longer rely on tests.txt file. (Patch by
Vajrasky Kok)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21093">bpo-21093</a>: Prevent failures of ctypes test_macholib on OS X if a copy of
libz exists in $HOME/lib or /usr/local/lib.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22770">bpo-22770</a>: Prevent some Tk segfaults on OS X when running gui tests.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23211">bpo-23211</a>: Workaround test_logging failure on some OS X 10.6 systems.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23345">bpo-23345</a>: Prevent test_ssl failures with large OpenSSL patch level values
(like 0.9.8zc).</p></li>
</ul>
</section>
<section id="id839">
<h3>Tools/Demos<a class="headerlink" href="#id839" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22314">bpo-22314</a>: pydoc now works when the LINES environment variable is set.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22615">bpo-22615</a>: Argument Clinic now supports the “type” argument for the int
converter. This permits using the int converter with enums and typedefs.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20076">bpo-20076</a>: The makelocalealias.py script no longer ignores UTF-8 mapping.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20079">bpo-20079</a>: The makelocalealias.py script now can parse the SUPPORTED file
from glibc sources and supports command line options for source paths.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22201">bpo-22201</a>: Command-line interface of the zipfile module now correctly
extracts ZIP files with directory entries. Patch by Ryan Wilson.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22120">bpo-22120</a>: For functions using an unsigned integer return converter,
Argument Clinic now generates a cast to that type for the comparison to -1
in the generated code. (This suppresses a compilation warning.)</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=18974">bpo-18974</a>: Tools/scripts/diff.py now uses argparse instead of optparse.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21906">bpo-21906</a>: Make Tools/scripts/md5sum.py work in Python 3. Patch by Zachary
Ware.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21629">bpo-21629</a>: Fix Argument Clinic’s “–converters” feature.</p></li>
<li><p>Add support for <code class="docutils literal notranslate"><span class="pre">yield</span> <span class="pre">from</span></code> to 2to3.</p></li>
<li><p>Add support for the <span class="target" id="index-487"></span><a class="pep reference external" href="https://peps.python.org/pep-0465/"><strong>PEP 465</strong></a> matrix multiplication operator to 2to3.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=16047">bpo-16047</a>: Fix module exception list and __file__ handling in freeze.
Patch by Meador Inge.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=11824">bpo-11824</a>: Consider ABI tags in freeze. Patch by Meador Inge.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=20535">bpo-20535</a>: PYTHONWARNING no longer affects the run_tests.py script. Patch
by Arfrever Frehtes Taifersar Arahesis.</p></li>
</ul>
</section>
<section id="id840">
<h3>Windows<a class="headerlink" href="#id840" title="Link to this heading">¶</a></h3>
<ul class="simple">
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=23260">bpo-23260</a>: Update Windows installer</p></li>
<li><p>The bundled version of Tcl/Tk has been updated to 8.6.3. The most visible
result of this change is the addition of new native file dialogs when
running on Windows Vista or newer. See Tcl/Tk’s TIP 432 for more
information. Also, this version of Tcl/Tk includes support for Windows
10.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17896">bpo-17896</a>: The Windows build scripts now expect external library sources
to be in <code class="docutils literal notranslate"><span class="pre">PCbuild\..\externals</span></code> rather than <code class="docutils literal notranslate"><span class="pre">PCbuild\..\..</span></code>.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=17717">bpo-17717</a>: The Windows build scripts now use a copy of NASM pulled from
svn.python.org to build OpenSSL.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=21907">bpo-21907</a>: Improved the batch scripts provided for building Python.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22644">bpo-22644</a>: The bundled version of OpenSSL has been updated to 1.0.1j.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=10747">bpo-10747</a>: Use versioned labels in the Windows start menu. Patch by Olive
Kilburn.</p></li>
<li><p><a class="reference external" href="https://bugs.python.org/issue?@action=redirect&bpo=22980">bpo-22980</a>: .pyd files with a version and platform tag (for example,
“.cp35-win32.pyd”) will now be loaded in preference to those without tags.</p></li>
</ul>
<p><strong>(For information about older versions, consult the HISTORY file.)</strong></p>
</section>
</section>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<div>
<h3><a href="../contents.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Changelog</a><ul>
<li><a class="reference internal" href="#python-3-14-0-final">Python 3.14.0 final</a><ul>
<li><a class="reference internal" href="#macos">macOS</a></li>
<li><a class="reference internal" href="#windows">Windows</a></li>
<li><a class="reference internal" href="#tools-demos">Tools/Demos</a></li>
<li><a class="reference internal" href="#security">Security</a></li>
<li><a class="reference internal" href="#library">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-release-candidate-3">Python 3.14.0 release candidate 3</a><ul>
<li><a class="reference internal" href="#id2">Windows</a></li>
<li><a class="reference internal" href="#id3">Tools/Demos</a></li>
<li><a class="reference internal" href="#id4">Security</a></li>
<li><a class="reference internal" href="#id5">Library</a></li>
<li><a class="reference internal" href="#core-and-builtins">Core and Builtins</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-release-candidate-2">Python 3.14.0 release candidate 2</a><ul>
<li><a class="reference internal" href="#id6">macOS</a></li>
<li><a class="reference internal" href="#id7">Windows</a></li>
<li><a class="reference internal" href="#id8">Library</a></li>
<li><a class="reference internal" href="#documentation">Documentation</a></li>
<li><a class="reference internal" href="#id9">Core and Builtins</a></li>
<li><a class="reference internal" href="#c-api">C API</a></li>
<li><a class="reference internal" href="#build">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-release-candidate-1">Python 3.14.0 release candidate 1</a><ul>
<li><a class="reference internal" href="#id10">Tools/Demos</a></li>
<li><a class="reference internal" href="#id11">Security</a></li>
<li><a class="reference internal" href="#id12">Library</a></li>
<li><a class="reference internal" href="#id13">Core and Builtins</a></li>
<li><a class="reference internal" href="#id14">C API</a></li>
<li><a class="reference internal" href="#id15">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-beta-4">Python 3.14.0 beta 4</a><ul>
<li><a class="reference internal" href="#id16">Tools/Demos</a></li>
<li><a class="reference internal" href="#tests">Tests</a></li>
<li><a class="reference internal" href="#id17">Security</a></li>
<li><a class="reference internal" href="#id18">Library</a></li>
<li><a class="reference internal" href="#id19">Documentation</a></li>
<li><a class="reference internal" href="#id20">Core and Builtins</a></li>
<li><a class="reference internal" href="#id21">C API</a></li>
<li><a class="reference internal" href="#id22">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-beta-3">Python 3.14.0 beta 3</a><ul>
<li><a class="reference internal" href="#id23">Windows</a></li>
<li><a class="reference internal" href="#id24">Tests</a></li>
<li><a class="reference internal" href="#id25">Security</a></li>
<li><a class="reference internal" href="#id26">Library</a></li>
<li><a class="reference internal" href="#id27">Documentation</a></li>
<li><a class="reference internal" href="#id28">Core and Builtins</a></li>
<li><a class="reference internal" href="#id29">C API</a></li>
<li><a class="reference internal" href="#id30">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-beta-2">Python 3.14.0 beta 2</a><ul>
<li><a class="reference internal" href="#id31">Windows</a></li>
<li><a class="reference internal" href="#id32">Tools/Demos</a></li>
<li><a class="reference internal" href="#id33">Tests</a></li>
<li><a class="reference internal" href="#id34">Security</a></li>
<li><a class="reference internal" href="#id35">Library</a></li>
<li><a class="reference internal" href="#id36">Core and Builtins</a></li>
<li><a class="reference internal" href="#id37">C API</a></li>
<li><a class="reference internal" href="#id38">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-beta-1">Python 3.14.0 beta 1</a><ul>
<li><a class="reference internal" href="#id39">Windows</a></li>
<li><a class="reference internal" href="#id40">Tools/Demos</a></li>
<li><a class="reference internal" href="#id41">Tests</a></li>
<li><a class="reference internal" href="#id42">Security</a></li>
<li><a class="reference internal" href="#id43">Library</a></li>
<li><a class="reference internal" href="#idle">IDLE</a></li>
<li><a class="reference internal" href="#id44">Documentation</a></li>
<li><a class="reference internal" href="#id45">Core and Builtins</a></li>
<li><a class="reference internal" href="#id46">C API</a></li>
<li><a class="reference internal" href="#id47">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-7">Python 3.14.0 alpha 7</a><ul>
<li><a class="reference internal" href="#id48">macOS</a></li>
<li><a class="reference internal" href="#id49">Windows</a></li>
<li><a class="reference internal" href="#id50">Tools/Demos</a></li>
<li><a class="reference internal" href="#id51">Tests</a></li>
<li><a class="reference internal" href="#id52">Security</a></li>
<li><a class="reference internal" href="#id53">Library</a></li>
<li><a class="reference internal" href="#id54">Documentation</a></li>
<li><a class="reference internal" href="#id55">Core and Builtins</a></li>
<li><a class="reference internal" href="#id56">C API</a></li>
<li><a class="reference internal" href="#id57">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-6">Python 3.14.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id58">macOS</a></li>
<li><a class="reference internal" href="#id59">Windows</a></li>
<li><a class="reference internal" href="#id60">Tools/Demos</a></li>
<li><a class="reference internal" href="#id61">Tests</a></li>
<li><a class="reference internal" href="#id62">Security</a></li>
<li><a class="reference internal" href="#id63">Library</a></li>
<li><a class="reference internal" href="#id64">Documentation</a></li>
<li><a class="reference internal" href="#id65">Core and Builtins</a></li>
<li><a class="reference internal" href="#id66">C API</a></li>
<li><a class="reference internal" href="#id67">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-5">Python 3.14.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id68">macOS</a></li>
<li><a class="reference internal" href="#id69">Tools/Demos</a></li>
<li><a class="reference internal" href="#id70">Tests</a></li>
<li><a class="reference internal" href="#id71">Security</a></li>
<li><a class="reference internal" href="#id72">Library</a></li>
<li><a class="reference internal" href="#id73">IDLE</a></li>
<li><a class="reference internal" href="#id74">Documentation</a></li>
<li><a class="reference internal" href="#id75">Core and Builtins</a></li>
<li><a class="reference internal" href="#id76">C API</a></li>
<li><a class="reference internal" href="#id77">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-4">Python 3.14.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id78">macOS</a></li>
<li><a class="reference internal" href="#id79">Tools/Demos</a></li>
<li><a class="reference internal" href="#id80">Tests</a></li>
<li><a class="reference internal" href="#id81">Library</a></li>
<li><a class="reference internal" href="#id82">Core and Builtins</a></li>
<li><a class="reference internal" href="#id83">C API</a></li>
<li><a class="reference internal" href="#id84">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-3">Python 3.14.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id85">Windows</a></li>
<li><a class="reference internal" href="#id86">Tools/Demos</a></li>
<li><a class="reference internal" href="#id87">Tests</a></li>
<li><a class="reference internal" href="#id88">Security</a></li>
<li><a class="reference internal" href="#id89">Library</a></li>
<li><a class="reference internal" href="#id90">Documentation</a></li>
<li><a class="reference internal" href="#id91">Core and Builtins</a></li>
<li><a class="reference internal" href="#id92">C API</a></li>
<li><a class="reference internal" href="#id93">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-2">Python 3.14.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id94">Windows</a></li>
<li><a class="reference internal" href="#id95">Tools/Demos</a></li>
<li><a class="reference internal" href="#id96">Tests</a></li>
<li><a class="reference internal" href="#id97">Security</a></li>
<li><a class="reference internal" href="#id98">Library</a></li>
<li><a class="reference internal" href="#id99">Documentation</a></li>
<li><a class="reference internal" href="#id100">Core and Builtins</a></li>
<li><a class="reference internal" href="#id101">C API</a></li>
<li><a class="reference internal" href="#id102">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-14-0-alpha-1">Python 3.14.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id103">macOS</a></li>
<li><a class="reference internal" href="#id104">Windows</a></li>
<li><a class="reference internal" href="#id105">Tools/Demos</a></li>
<li><a class="reference internal" href="#id106">Tests</a></li>
<li><a class="reference internal" href="#id107">Security</a></li>
<li><a class="reference internal" href="#id108">Library</a></li>
<li><a class="reference internal" href="#id109">IDLE</a></li>
<li><a class="reference internal" href="#id110">Documentation</a></li>
<li><a class="reference internal" href="#id111">Core and Builtins</a></li>
<li><a class="reference internal" href="#id112">C API</a></li>
<li><a class="reference internal" href="#id113">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-beta-1">Python 3.13.0 beta 1</a><ul>
<li><a class="reference internal" href="#id114">Security</a></li>
<li><a class="reference internal" href="#id115">Core and Builtins</a></li>
<li><a class="reference internal" href="#id116">Library</a></li>
<li><a class="reference internal" href="#id117">Documentation</a></li>
<li><a class="reference internal" href="#id118">Build</a></li>
<li><a class="reference internal" href="#id119">Windows</a></li>
<li><a class="reference internal" href="#id120">macOS</a></li>
<li><a class="reference internal" href="#id121">IDLE</a></li>
<li><a class="reference internal" href="#id122">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-6">Python 3.13.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id123">Core and Builtins</a></li>
<li><a class="reference internal" href="#id124">Library</a></li>
<li><a class="reference internal" href="#id125">Documentation</a></li>
<li><a class="reference internal" href="#id126">Tests</a></li>
<li><a class="reference internal" href="#id127">Build</a></li>
<li><a class="reference internal" href="#id128">Windows</a></li>
<li><a class="reference internal" href="#id129">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-5">Python 3.13.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id130">Security</a></li>
<li><a class="reference internal" href="#id131">Core and Builtins</a></li>
<li><a class="reference internal" href="#id132">Library</a></li>
<li><a class="reference internal" href="#id133">Documentation</a></li>
<li><a class="reference internal" href="#id134">Tests</a></li>
<li><a class="reference internal" href="#id135">Build</a></li>
<li><a class="reference internal" href="#id136">Windows</a></li>
<li><a class="reference internal" href="#id137">macOS</a></li>
<li><a class="reference internal" href="#id138">IDLE</a></li>
<li><a class="reference internal" href="#id139">Tools/Demos</a></li>
<li><a class="reference internal" href="#id140">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-4">Python 3.13.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id141">Security</a></li>
<li><a class="reference internal" href="#id142">Core and Builtins</a></li>
<li><a class="reference internal" href="#id143">Library</a></li>
<li><a class="reference internal" href="#id144">Documentation</a></li>
<li><a class="reference internal" href="#id145">Tests</a></li>
<li><a class="reference internal" href="#id146">Build</a></li>
<li><a class="reference internal" href="#id147">Windows</a></li>
<li><a class="reference internal" href="#id148">macOS</a></li>
<li><a class="reference internal" href="#id149">IDLE</a></li>
<li><a class="reference internal" href="#id150">Tools/Demos</a></li>
<li><a class="reference internal" href="#id151">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-3">Python 3.13.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id152">Security</a></li>
<li><a class="reference internal" href="#id153">Core and Builtins</a></li>
<li><a class="reference internal" href="#id154">Library</a></li>
<li><a class="reference internal" href="#id155">Documentation</a></li>
<li><a class="reference internal" href="#id156">Tests</a></li>
<li><a class="reference internal" href="#id157">Build</a></li>
<li><a class="reference internal" href="#id158">Windows</a></li>
<li><a class="reference internal" href="#id159">macOS</a></li>
<li><a class="reference internal" href="#id160">IDLE</a></li>
<li><a class="reference internal" href="#id161">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-2">Python 3.13.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id162">Core and Builtins</a></li>
<li><a class="reference internal" href="#id163">Library</a></li>
<li><a class="reference internal" href="#id164">Tests</a></li>
<li><a class="reference internal" href="#id165">Build</a></li>
<li><a class="reference internal" href="#id166">Windows</a></li>
<li><a class="reference internal" href="#id167">macOS</a></li>
<li><a class="reference internal" href="#id168">IDLE</a></li>
<li><a class="reference internal" href="#id169">Tools/Demos</a></li>
<li><a class="reference internal" href="#id170">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-13-0-alpha-1">Python 3.13.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id171">Security</a></li>
<li><a class="reference internal" href="#id172">Core and Builtins</a></li>
<li><a class="reference internal" href="#id173">Library</a></li>
<li><a class="reference internal" href="#id174">Documentation</a></li>
<li><a class="reference internal" href="#id175">Tests</a></li>
<li><a class="reference internal" href="#id176">Build</a></li>
<li><a class="reference internal" href="#id177">Windows</a></li>
<li><a class="reference internal" href="#id178">macOS</a></li>
<li><a class="reference internal" href="#id179">IDLE</a></li>
<li><a class="reference internal" href="#id180">Tools/Demos</a></li>
<li><a class="reference internal" href="#id181">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-beta-1">Python 3.12.0 beta 1</a><ul>
<li><a class="reference internal" href="#id182">Security</a></li>
<li><a class="reference internal" href="#id183">Core and Builtins</a></li>
<li><a class="reference internal" href="#id184">Library</a></li>
<li><a class="reference internal" href="#id185">Documentation</a></li>
<li><a class="reference internal" href="#id186">Tests</a></li>
<li><a class="reference internal" href="#id187">Build</a></li>
<li><a class="reference internal" href="#id188">Windows</a></li>
<li><a class="reference internal" href="#id189">macOS</a></li>
<li><a class="reference internal" href="#id190">IDLE</a></li>
<li><a class="reference internal" href="#id191">Tools/Demos</a></li>
<li><a class="reference internal" href="#id192">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-7">Python 3.12.0 alpha 7</a><ul>
<li><a class="reference internal" href="#id193">Core and Builtins</a></li>
<li><a class="reference internal" href="#id194">Library</a></li>
<li><a class="reference internal" href="#id195">Documentation</a></li>
<li><a class="reference internal" href="#id196">Tests</a></li>
<li><a class="reference internal" href="#id197">Build</a></li>
<li><a class="reference internal" href="#id198">Windows</a></li>
<li><a class="reference internal" href="#id199">Tools/Demos</a></li>
<li><a class="reference internal" href="#id200">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-6">Python 3.12.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id201">Security</a></li>
<li><a class="reference internal" href="#id202">Core and Builtins</a></li>
<li><a class="reference internal" href="#id203">Library</a></li>
<li><a class="reference internal" href="#id204">Documentation</a></li>
<li><a class="reference internal" href="#id205">Tests</a></li>
<li><a class="reference internal" href="#id206">Build</a></li>
<li><a class="reference internal" href="#id207">Windows</a></li>
<li><a class="reference internal" href="#id208">macOS</a></li>
<li><a class="reference internal" href="#id209">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-5">Python 3.12.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id210">Security</a></li>
<li><a class="reference internal" href="#id212">Core and Builtins</a></li>
<li><a class="reference internal" href="#id213">Library</a></li>
<li><a class="reference internal" href="#id214">Documentation</a></li>
<li><a class="reference internal" href="#id215">Tests</a></li>
<li><a class="reference internal" href="#id216">Build</a></li>
<li><a class="reference internal" href="#id217">Windows</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-4">Python 3.12.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id218">Core and Builtins</a></li>
<li><a class="reference internal" href="#id219">Library</a></li>
<li><a class="reference internal" href="#id220">Documentation</a></li>
<li><a class="reference internal" href="#id221">Tests</a></li>
<li><a class="reference internal" href="#id222">Build</a></li>
<li><a class="reference internal" href="#id223">Windows</a></li>
<li><a class="reference internal" href="#id224">macOS</a></li>
<li><a class="reference internal" href="#id225">Tools/Demos</a></li>
<li><a class="reference internal" href="#id226">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-3">Python 3.12.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id227">Security</a></li>
<li><a class="reference internal" href="#id228">Core and Builtins</a></li>
<li><a class="reference internal" href="#id229">Library</a></li>
<li><a class="reference internal" href="#id230">Documentation</a></li>
<li><a class="reference internal" href="#id231">Tests</a></li>
<li><a class="reference internal" href="#id232">Build</a></li>
<li><a class="reference internal" href="#id233">Windows</a></li>
<li><a class="reference internal" href="#id234">macOS</a></li>
<li><a class="reference internal" href="#id235">Tools/Demos</a></li>
<li><a class="reference internal" href="#id236">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-2">Python 3.12.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id237">Security</a></li>
<li><a class="reference internal" href="#id238">Core and Builtins</a></li>
<li><a class="reference internal" href="#id239">Library</a></li>
<li><a class="reference internal" href="#id240">Documentation</a></li>
<li><a class="reference internal" href="#id241">Tests</a></li>
<li><a class="reference internal" href="#id242">Build</a></li>
<li><a class="reference internal" href="#id243">Windows</a></li>
<li><a class="reference internal" href="#id244">macOS</a></li>
<li><a class="reference internal" href="#id245">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-12-0-alpha-1">Python 3.12.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id246">Security</a></li>
<li><a class="reference internal" href="#id247">Core and Builtins</a></li>
<li><a class="reference internal" href="#id248">Library</a></li>
<li><a class="reference internal" href="#id249">Documentation</a></li>
<li><a class="reference internal" href="#id250">Tests</a></li>
<li><a class="reference internal" href="#id251">Build</a></li>
<li><a class="reference internal" href="#id252">Windows</a></li>
<li><a class="reference internal" href="#id253">macOS</a></li>
<li><a class="reference internal" href="#id254">IDLE</a></li>
<li><a class="reference internal" href="#id255">Tools/Demos</a></li>
<li><a class="reference internal" href="#id257">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-beta-1">Python 3.11.0 beta 1</a><ul>
<li><a class="reference internal" href="#id258">Security</a></li>
<li><a class="reference internal" href="#id259">Core and Builtins</a></li>
<li><a class="reference internal" href="#id260">Library</a></li>
<li><a class="reference internal" href="#id261">Documentation</a></li>
<li><a class="reference internal" href="#id262">Tests</a></li>
<li><a class="reference internal" href="#id263">Build</a></li>
<li><a class="reference internal" href="#id264">Windows</a></li>
<li><a class="reference internal" href="#id265">macOS</a></li>
<li><a class="reference internal" href="#id266">Tools/Demos</a></li>
<li><a class="reference internal" href="#id267">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-7">Python 3.11.0 alpha 7</a><ul>
<li><a class="reference internal" href="#id268">Core and Builtins</a></li>
<li><a class="reference internal" href="#id269">Library</a></li>
<li><a class="reference internal" href="#id270">Documentation</a></li>
<li><a class="reference internal" href="#id271">Tests</a></li>
<li><a class="reference internal" href="#id272">Build</a></li>
<li><a class="reference internal" href="#id273">Windows</a></li>
<li><a class="reference internal" href="#id274">macOS</a></li>
<li><a class="reference internal" href="#id275">Tools/Demos</a></li>
<li><a class="reference internal" href="#id276">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-6">Python 3.11.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id277">Core and Builtins</a></li>
<li><a class="reference internal" href="#id278">Library</a></li>
<li><a class="reference internal" href="#id279">Documentation</a></li>
<li><a class="reference internal" href="#id280">Tests</a></li>
<li><a class="reference internal" href="#id281">Build</a></li>
<li><a class="reference internal" href="#id282">Windows</a></li>
<li><a class="reference internal" href="#id283">IDLE</a></li>
<li><a class="reference internal" href="#id284">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-5">Python 3.11.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id285">Core and Builtins</a></li>
<li><a class="reference internal" href="#id286">Library</a></li>
<li><a class="reference internal" href="#id287">Documentation</a></li>
<li><a class="reference internal" href="#id288">Tests</a></li>
<li><a class="reference internal" href="#id289">Build</a></li>
<li><a class="reference internal" href="#id290">Windows</a></li>
<li><a class="reference internal" href="#id291">macOS</a></li>
<li><a class="reference internal" href="#id292">IDLE</a></li>
<li><a class="reference internal" href="#id293">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-4">Python 3.11.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id294">Core and Builtins</a></li>
<li><a class="reference internal" href="#id295">Library</a></li>
<li><a class="reference internal" href="#id296">Documentation</a></li>
<li><a class="reference internal" href="#id297">Tests</a></li>
<li><a class="reference internal" href="#id298">Build</a></li>
<li><a class="reference internal" href="#id299">Windows</a></li>
<li><a class="reference internal" href="#id300">macOS</a></li>
<li><a class="reference internal" href="#id301">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-3">Python 3.11.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id302">Core and Builtins</a></li>
<li><a class="reference internal" href="#id303">Library</a></li>
<li><a class="reference internal" href="#id304">Documentation</a></li>
<li><a class="reference internal" href="#id305">Tests</a></li>
<li><a class="reference internal" href="#id306">Build</a></li>
<li><a class="reference internal" href="#id307">Windows</a></li>
<li><a class="reference internal" href="#id308">macOS</a></li>
<li><a class="reference internal" href="#id309">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-2">Python 3.11.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id310">Core and Builtins</a></li>
<li><a class="reference internal" href="#id311">Library</a></li>
<li><a class="reference internal" href="#id312">Documentation</a></li>
<li><a class="reference internal" href="#id313">Tests</a></li>
<li><a class="reference internal" href="#id314">Build</a></li>
<li><a class="reference internal" href="#id315">Windows</a></li>
<li><a class="reference internal" href="#id316">macOS</a></li>
<li><a class="reference internal" href="#id317">IDLE</a></li>
<li><a class="reference internal" href="#id318">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-11-0-alpha-1">Python 3.11.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id319">Security</a></li>
<li><a class="reference internal" href="#id320">Core and Builtins</a></li>
<li><a class="reference internal" href="#id321">Library</a></li>
<li><a class="reference internal" href="#id322">Documentation</a></li>
<li><a class="reference internal" href="#id323">Tests</a></li>
<li><a class="reference internal" href="#id324">Build</a></li>
<li><a class="reference internal" href="#id325">Windows</a></li>
<li><a class="reference internal" href="#id326">macOS</a></li>
<li><a class="reference internal" href="#id327">IDLE</a></li>
<li><a class="reference internal" href="#id328">Tools/Demos</a></li>
<li><a class="reference internal" href="#id329">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-beta-1">Python 3.10.0 beta 1</a><ul>
<li><a class="reference internal" href="#id330">Security</a></li>
<li><a class="reference internal" href="#id331">Core and Builtins</a></li>
<li><a class="reference internal" href="#id332">Library</a></li>
<li><a class="reference internal" href="#id333">Documentation</a></li>
<li><a class="reference internal" href="#id334">Tests</a></li>
<li><a class="reference internal" href="#id335">Build</a></li>
<li><a class="reference internal" href="#id336">Windows</a></li>
<li><a class="reference internal" href="#id337">macOS</a></li>
<li><a class="reference internal" href="#id338">IDLE</a></li>
<li><a class="reference internal" href="#id339">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-7">Python 3.10.0 alpha 7</a><ul>
<li><a class="reference internal" href="#id340">Security</a></li>
<li><a class="reference internal" href="#id341">Core and Builtins</a></li>
<li><a class="reference internal" href="#id342">Library</a></li>
<li><a class="reference internal" href="#id343">Documentation</a></li>
<li><a class="reference internal" href="#id344">Tests</a></li>
<li><a class="reference internal" href="#id345">Build</a></li>
<li><a class="reference internal" href="#id346">Windows</a></li>
<li><a class="reference internal" href="#id347">IDLE</a></li>
<li><a class="reference internal" href="#id348">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-6">Python 3.10.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id349">Security</a></li>
<li><a class="reference internal" href="#id350">Core and Builtins</a></li>
<li><a class="reference internal" href="#id351">Library</a></li>
<li><a class="reference internal" href="#id352">Documentation</a></li>
<li><a class="reference internal" href="#id353">Tests</a></li>
<li><a class="reference internal" href="#id354">Build</a></li>
<li><a class="reference internal" href="#id355">Windows</a></li>
<li><a class="reference internal" href="#id356">macOS</a></li>
<li><a class="reference internal" href="#id357">IDLE</a></li>
<li><a class="reference internal" href="#id358">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-5">Python 3.10.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id359">Security</a></li>
<li><a class="reference internal" href="#id360">Core and Builtins</a></li>
<li><a class="reference internal" href="#id361">Library</a></li>
<li><a class="reference internal" href="#id362">Documentation</a></li>
<li><a class="reference internal" href="#id363">Tests</a></li>
<li><a class="reference internal" href="#id364">Build</a></li>
<li><a class="reference internal" href="#id365">Windows</a></li>
<li><a class="reference internal" href="#id366">macOS</a></li>
<li><a class="reference internal" href="#id367">IDLE</a></li>
<li><a class="reference internal" href="#id368">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-4">Python 3.10.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id369">Core and Builtins</a></li>
<li><a class="reference internal" href="#id370">Library</a></li>
<li><a class="reference internal" href="#id371">Documentation</a></li>
<li><a class="reference internal" href="#id372">Tests</a></li>
<li><a class="reference internal" href="#id373">Build</a></li>
<li><a class="reference internal" href="#id374">macOS</a></li>
<li><a class="reference internal" href="#id375">Tools/Demos</a></li>
<li><a class="reference internal" href="#id376">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-3">Python 3.10.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id377">Security</a></li>
<li><a class="reference internal" href="#id378">Core and Builtins</a></li>
<li><a class="reference internal" href="#id379">Library</a></li>
<li><a class="reference internal" href="#id380">Documentation</a></li>
<li><a class="reference internal" href="#id381">Tests</a></li>
<li><a class="reference internal" href="#id382">Build</a></li>
<li><a class="reference internal" href="#id383">Windows</a></li>
<li><a class="reference internal" href="#id384">macOS</a></li>
<li><a class="reference internal" href="#id385">IDLE</a></li>
<li><a class="reference internal" href="#id386">Tools/Demos</a></li>
<li><a class="reference internal" href="#id387">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-2">Python 3.10.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id388">Security</a></li>
<li><a class="reference internal" href="#id389">Core and Builtins</a></li>
<li><a class="reference internal" href="#id390">Library</a></li>
<li><a class="reference internal" href="#id391">Documentation</a></li>
<li><a class="reference internal" href="#id392">Tests</a></li>
<li><a class="reference internal" href="#id393">Build</a></li>
<li><a class="reference internal" href="#id394">Windows</a></li>
<li><a class="reference internal" href="#id395">macOS</a></li>
<li><a class="reference internal" href="#id396">IDLE</a></li>
<li><a class="reference internal" href="#id397">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-10-0-alpha-1">Python 3.10.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id398">Security</a></li>
<li><a class="reference internal" href="#id399">Core and Builtins</a></li>
<li><a class="reference internal" href="#id400">Library</a></li>
<li><a class="reference internal" href="#id401">Documentation</a></li>
<li><a class="reference internal" href="#id402">Tests</a></li>
<li><a class="reference internal" href="#id403">Build</a></li>
<li><a class="reference internal" href="#id404">Windows</a></li>
<li><a class="reference internal" href="#id405">macOS</a></li>
<li><a class="reference internal" href="#id406">IDLE</a></li>
<li><a class="reference internal" href="#id407">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-beta-1">Python 3.9.0 beta 1</a><ul>
<li><a class="reference internal" href="#id408">Security</a></li>
<li><a class="reference internal" href="#id409">Core and Builtins</a></li>
<li><a class="reference internal" href="#id410">Library</a></li>
<li><a class="reference internal" href="#id411">Documentation</a></li>
<li><a class="reference internal" href="#id412">Tests</a></li>
<li><a class="reference internal" href="#id413">Build</a></li>
<li><a class="reference internal" href="#id414">Windows</a></li>
<li><a class="reference internal" href="#id415">macOS</a></li>
<li><a class="reference internal" href="#id416">Tools/Demos</a></li>
<li><a class="reference internal" href="#id417">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-6">Python 3.9.0 alpha 6</a><ul>
<li><a class="reference internal" href="#id418">Security</a></li>
<li><a class="reference internal" href="#id419">Core and Builtins</a></li>
<li><a class="reference internal" href="#id420">Library</a></li>
<li><a class="reference internal" href="#id421">Documentation</a></li>
<li><a class="reference internal" href="#id422">Tests</a></li>
<li><a class="reference internal" href="#id423">Build</a></li>
<li><a class="reference internal" href="#id424">Windows</a></li>
<li><a class="reference internal" href="#id425">macOS</a></li>
<li><a class="reference internal" href="#id426">IDLE</a></li>
<li><a class="reference internal" href="#id427">Tools/Demos</a></li>
<li><a class="reference internal" href="#id428">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-5">Python 3.9.0 alpha 5</a><ul>
<li><a class="reference internal" href="#id429">Security</a></li>
<li><a class="reference internal" href="#id430">Core and Builtins</a></li>
<li><a class="reference internal" href="#id431">Library</a></li>
<li><a class="reference internal" href="#id432">Documentation</a></li>
<li><a class="reference internal" href="#id433">Tests</a></li>
<li><a class="reference internal" href="#id434">Build</a></li>
<li><a class="reference internal" href="#id435">Windows</a></li>
<li><a class="reference internal" href="#id436">macOS</a></li>
<li><a class="reference internal" href="#id437">IDLE</a></li>
<li><a class="reference internal" href="#id438">Tools/Demos</a></li>
<li><a class="reference internal" href="#id439">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-4">Python 3.9.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id440">Security</a></li>
<li><a class="reference internal" href="#id441">Core and Builtins</a></li>
<li><a class="reference internal" href="#id442">Library</a></li>
<li><a class="reference internal" href="#id443">Documentation</a></li>
<li><a class="reference internal" href="#id444">Tests</a></li>
<li><a class="reference internal" href="#id445">Build</a></li>
<li><a class="reference internal" href="#id446">Windows</a></li>
<li><a class="reference internal" href="#id447">IDLE</a></li>
<li><a class="reference internal" href="#id448">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-3">Python 3.9.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id449">Core and Builtins</a></li>
<li><a class="reference internal" href="#id450">Library</a></li>
<li><a class="reference internal" href="#id451">Documentation</a></li>
<li><a class="reference internal" href="#id452">Build</a></li>
<li><a class="reference internal" href="#id453">IDLE</a></li>
<li><a class="reference internal" href="#id454">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-2">Python 3.9.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id455">Security</a></li>
<li><a class="reference internal" href="#id456">Core and Builtins</a></li>
<li><a class="reference internal" href="#id457">Library</a></li>
<li><a class="reference internal" href="#id458">Documentation</a></li>
<li><a class="reference internal" href="#id459">Tests</a></li>
<li><a class="reference internal" href="#id460">Build</a></li>
<li><a class="reference internal" href="#id461">Windows</a></li>
<li><a class="reference internal" href="#id462">macOS</a></li>
<li><a class="reference internal" href="#id463">IDLE</a></li>
<li><a class="reference internal" href="#id464">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-9-0-alpha-1">Python 3.9.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id465">Security</a></li>
<li><a class="reference internal" href="#id466">Core and Builtins</a></li>
<li><a class="reference internal" href="#id467">Library</a></li>
<li><a class="reference internal" href="#id468">Documentation</a></li>
<li><a class="reference internal" href="#id469">Tests</a></li>
<li><a class="reference internal" href="#id470">Build</a></li>
<li><a class="reference internal" href="#id471">Windows</a></li>
<li><a class="reference internal" href="#id472">macOS</a></li>
<li><a class="reference internal" href="#id473">IDLE</a></li>
<li><a class="reference internal" href="#id474">Tools/Demos</a></li>
<li><a class="reference internal" href="#id475">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-8-0-beta-1">Python 3.8.0 beta 1</a><ul>
<li><a class="reference internal" href="#id476">Security</a></li>
<li><a class="reference internal" href="#id477">Core and Builtins</a></li>
<li><a class="reference internal" href="#id478">Library</a></li>
<li><a class="reference internal" href="#id479">Documentation</a></li>
<li><a class="reference internal" href="#id480">Tests</a></li>
<li><a class="reference internal" href="#id481">Build</a></li>
<li><a class="reference internal" href="#id482">Windows</a></li>
<li><a class="reference internal" href="#id483">macOS</a></li>
<li><a class="reference internal" href="#id484">IDLE</a></li>
<li><a class="reference internal" href="#id485">Tools/Demos</a></li>
<li><a class="reference internal" href="#id486">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-8-0-alpha-4">Python 3.8.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id487">Security</a></li>
<li><a class="reference internal" href="#id488">Core and Builtins</a></li>
<li><a class="reference internal" href="#id489">Library</a></li>
<li><a class="reference internal" href="#id490">Documentation</a></li>
<li><a class="reference internal" href="#id491">Tests</a></li>
<li><a class="reference internal" href="#id492">Build</a></li>
<li><a class="reference internal" href="#id493">Windows</a></li>
<li><a class="reference internal" href="#id494">macOS</a></li>
<li><a class="reference internal" href="#id495">IDLE</a></li>
<li><a class="reference internal" href="#id496">Tools/Demos</a></li>
<li><a class="reference internal" href="#id497">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-8-0-alpha-3">Python 3.8.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id498">Security</a></li>
<li><a class="reference internal" href="#id499">Core and Builtins</a></li>
<li><a class="reference internal" href="#id500">Library</a></li>
<li><a class="reference internal" href="#id501">Documentation</a></li>
<li><a class="reference internal" href="#id502">Tests</a></li>
<li><a class="reference internal" href="#id503">Build</a></li>
<li><a class="reference internal" href="#id504">Windows</a></li>
<li><a class="reference internal" href="#id505">IDLE</a></li>
<li><a class="reference internal" href="#id506">Tools/Demos</a></li>
<li><a class="reference internal" href="#id507">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-8-0-alpha-2">Python 3.8.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id508">Core and Builtins</a></li>
<li><a class="reference internal" href="#id509">Library</a></li>
<li><a class="reference internal" href="#id510">Documentation</a></li>
<li><a class="reference internal" href="#id511">Tests</a></li>
<li><a class="reference internal" href="#id512">Windows</a></li>
<li><a class="reference internal" href="#id513">IDLE</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-8-0-alpha-1">Python 3.8.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id514">Security</a></li>
<li><a class="reference internal" href="#id515">Core and Builtins</a></li>
<li><a class="reference internal" href="#id516">Library</a></li>
<li><a class="reference internal" href="#id517">Documentation</a></li>
<li><a class="reference internal" href="#id518">Tests</a></li>
<li><a class="reference internal" href="#id519">Build</a></li>
<li><a class="reference internal" href="#id520">Windows</a></li>
<li><a class="reference internal" href="#id521">macOS</a></li>
<li><a class="reference internal" href="#id522">IDLE</a></li>
<li><a class="reference internal" href="#id523">Tools/Demos</a></li>
<li><a class="reference internal" href="#id524">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-final">Python 3.7.0 final</a><ul>
<li><a class="reference internal" href="#id525">Library</a></li>
<li><a class="reference internal" href="#id526">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-release-candidate-1">Python 3.7.0 release candidate 1</a><ul>
<li><a class="reference internal" href="#id527">Core and Builtins</a></li>
<li><a class="reference internal" href="#id528">Library</a></li>
<li><a class="reference internal" href="#id529">Documentation</a></li>
<li><a class="reference internal" href="#id530">Build</a></li>
<li><a class="reference internal" href="#id531">Windows</a></li>
<li><a class="reference internal" href="#id532">IDLE</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-beta-5">Python 3.7.0 beta 5</a><ul>
<li><a class="reference internal" href="#id533">Core and Builtins</a></li>
<li><a class="reference internal" href="#id534">Library</a></li>
<li><a class="reference internal" href="#id535">Documentation</a></li>
<li><a class="reference internal" href="#id536">Tests</a></li>
<li><a class="reference internal" href="#id537">Build</a></li>
<li><a class="reference internal" href="#id538">macOS</a></li>
<li><a class="reference internal" href="#id539">IDLE</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-beta-4">Python 3.7.0 beta 4</a><ul>
<li><a class="reference internal" href="#id540">Core and Builtins</a></li>
<li><a class="reference internal" href="#id541">Library</a></li>
<li><a class="reference internal" href="#id542">Documentation</a></li>
<li><a class="reference internal" href="#id543">Tests</a></li>
<li><a class="reference internal" href="#id544">Build</a></li>
<li><a class="reference internal" href="#id545">Windows</a></li>
<li><a class="reference internal" href="#id546">macOS</a></li>
<li><a class="reference internal" href="#id547">IDLE</a></li>
<li><a class="reference internal" href="#id548">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-beta-3">Python 3.7.0 beta 3</a><ul>
<li><a class="reference internal" href="#id549">Security</a></li>
<li><a class="reference internal" href="#id550">Core and Builtins</a></li>
<li><a class="reference internal" href="#id551">Library</a></li>
<li><a class="reference internal" href="#id552">Documentation</a></li>
<li><a class="reference internal" href="#id553">Tests</a></li>
<li><a class="reference internal" href="#id554">Build</a></li>
<li><a class="reference internal" href="#id555">Windows</a></li>
<li><a class="reference internal" href="#id556">macOS</a></li>
<li><a class="reference internal" href="#id557">IDLE</a></li>
<li><a class="reference internal" href="#id558">Tools/Demos</a></li>
<li><a class="reference internal" href="#id559">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-beta-2">Python 3.7.0 beta 2</a><ul>
<li><a class="reference internal" href="#id560">Security</a></li>
<li><a class="reference internal" href="#id561">Core and Builtins</a></li>
<li><a class="reference internal" href="#id562">Library</a></li>
<li><a class="reference internal" href="#id563">Documentation</a></li>
<li><a class="reference internal" href="#id564">Tests</a></li>
<li><a class="reference internal" href="#id565">Build</a></li>
<li><a class="reference internal" href="#id566">Windows</a></li>
<li><a class="reference internal" href="#id567">macOS</a></li>
<li><a class="reference internal" href="#id568">IDLE</a></li>
<li><a class="reference internal" href="#id569">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-beta-1">Python 3.7.0 beta 1</a><ul>
<li><a class="reference internal" href="#id570">Core and Builtins</a></li>
<li><a class="reference internal" href="#id571">Library</a></li>
<li><a class="reference internal" href="#id572">Documentation</a></li>
<li><a class="reference internal" href="#id573">Tests</a></li>
<li><a class="reference internal" href="#id574">Build</a></li>
<li><a class="reference internal" href="#id575">Windows</a></li>
<li><a class="reference internal" href="#id576">macOS</a></li>
<li><a class="reference internal" href="#id577">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-alpha-4">Python 3.7.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id578">Core and Builtins</a></li>
<li><a class="reference internal" href="#id579">Library</a></li>
<li><a class="reference internal" href="#id580">Documentation</a></li>
<li><a class="reference internal" href="#id581">Tests</a></li>
<li><a class="reference internal" href="#id582">Windows</a></li>
<li><a class="reference internal" href="#id583">Tools/Demos</a></li>
<li><a class="reference internal" href="#id584">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-alpha-3">Python 3.7.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id585">Core and Builtins</a></li>
<li><a class="reference internal" href="#id586">Library</a></li>
<li><a class="reference internal" href="#id587">Documentation</a></li>
<li><a class="reference internal" href="#id588">Tests</a></li>
<li><a class="reference internal" href="#id589">Build</a></li>
<li><a class="reference internal" href="#id590">Windows</a></li>
<li><a class="reference internal" href="#id591">macOS</a></li>
<li><a class="reference internal" href="#id592">IDLE</a></li>
<li><a class="reference internal" href="#id593">Tools/Demos</a></li>
<li><a class="reference internal" href="#id594">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-alpha-2">Python 3.7.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id595">Core and Builtins</a></li>
<li><a class="reference internal" href="#id596">Library</a></li>
<li><a class="reference internal" href="#id597">Documentation</a></li>
<li><a class="reference internal" href="#id598">Build</a></li>
<li><a class="reference internal" href="#id599">IDLE</a></li>
<li><a class="reference internal" href="#id600">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-7-0-alpha-1">Python 3.7.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id601">Security</a></li>
<li><a class="reference internal" href="#id602">Core and Builtins</a></li>
<li><a class="reference internal" href="#id603">Library</a></li>
<li><a class="reference internal" href="#id604">Documentation</a></li>
<li><a class="reference internal" href="#id605">Tests</a></li>
<li><a class="reference internal" href="#id606">Build</a></li>
<li><a class="reference internal" href="#id607">Windows</a></li>
<li><a class="reference internal" href="#id608">IDLE</a></li>
<li><a class="reference internal" href="#id609">Tools/Demos</a></li>
<li><a class="reference internal" href="#id610">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-6-final">Python 3.6.6 final</a></li>
<li><a class="reference internal" href="#python-3-6-6-release-candidate-1">Python 3.6.6 release candidate 1</a><ul>
<li><a class="reference internal" href="#id611">Core and Builtins</a></li>
<li><a class="reference internal" href="#id612">Library</a></li>
<li><a class="reference internal" href="#id613">Documentation</a></li>
<li><a class="reference internal" href="#id614">Tests</a></li>
<li><a class="reference internal" href="#id615">Build</a></li>
<li><a class="reference internal" href="#id616">Windows</a></li>
<li><a class="reference internal" href="#id617">macOS</a></li>
<li><a class="reference internal" href="#id618">IDLE</a></li>
<li><a class="reference internal" href="#id619">Tools/Demos</a></li>
<li><a class="reference internal" href="#id620">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-5-final">Python 3.6.5 final</a><ul>
<li><a class="reference internal" href="#id621">Tests</a></li>
<li><a class="reference internal" href="#id622">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-5-release-candidate-1">Python 3.6.5 release candidate 1</a><ul>
<li><a class="reference internal" href="#id623">Security</a></li>
<li><a class="reference internal" href="#id624">Core and Builtins</a></li>
<li><a class="reference internal" href="#id625">Library</a></li>
<li><a class="reference internal" href="#id626">Documentation</a></li>
<li><a class="reference internal" href="#id627">Tests</a></li>
<li><a class="reference internal" href="#id628">Build</a></li>
<li><a class="reference internal" href="#id629">Windows</a></li>
<li><a class="reference internal" href="#id630">macOS</a></li>
<li><a class="reference internal" href="#id631">IDLE</a></li>
<li><a class="reference internal" href="#id632">Tools/Demos</a></li>
<li><a class="reference internal" href="#id633">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-4-final">Python 3.6.4 final</a></li>
<li><a class="reference internal" href="#python-3-6-4-release-candidate-1">Python 3.6.4 release candidate 1</a><ul>
<li><a class="reference internal" href="#id634">Core and Builtins</a></li>
<li><a class="reference internal" href="#id635">Library</a></li>
<li><a class="reference internal" href="#id636">Documentation</a></li>
<li><a class="reference internal" href="#id637">Tests</a></li>
<li><a class="reference internal" href="#id638">Build</a></li>
<li><a class="reference internal" href="#id639">Windows</a></li>
<li><a class="reference internal" href="#id640">macOS</a></li>
<li><a class="reference internal" href="#id641">IDLE</a></li>
<li><a class="reference internal" href="#id642">Tools/Demos</a></li>
<li><a class="reference internal" href="#id643">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-3-final">Python 3.6.3 final</a><ul>
<li><a class="reference internal" href="#id644">Library</a></li>
<li><a class="reference internal" href="#id645">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-3-release-candidate-1">Python 3.6.3 release candidate 1</a><ul>
<li><a class="reference internal" href="#id646">Security</a></li>
<li><a class="reference internal" href="#id647">Core and Builtins</a></li>
<li><a class="reference internal" href="#id648">Library</a></li>
<li><a class="reference internal" href="#id649">Documentation</a></li>
<li><a class="reference internal" href="#id650">Tests</a></li>
<li><a class="reference internal" href="#id651">Build</a></li>
<li><a class="reference internal" href="#id652">Windows</a></li>
<li><a class="reference internal" href="#id653">IDLE</a></li>
<li><a class="reference internal" href="#id654">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-2-final">Python 3.6.2 final</a></li>
<li><a class="reference internal" href="#python-3-6-2-release-candidate-2">Python 3.6.2 release candidate 2</a><ul>
<li><a class="reference internal" href="#id655">Security</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-2-release-candidate-1">Python 3.6.2 release candidate 1</a><ul>
<li><a class="reference internal" href="#id656">Security</a></li>
<li><a class="reference internal" href="#id657">Core and Builtins</a></li>
<li><a class="reference internal" href="#id658">Library</a></li>
<li><a class="reference internal" href="#id659">IDLE</a></li>
<li><a class="reference internal" href="#id660">C API</a></li>
<li><a class="reference internal" href="#id661">Build</a></li>
<li><a class="reference internal" href="#id662">Documentation</a></li>
<li><a class="reference internal" href="#id663">Tools/Demos</a></li>
<li><a class="reference internal" href="#id664">Tests</a></li>
<li><a class="reference internal" href="#id665">Windows</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-1-final">Python 3.6.1 final</a><ul>
<li><a class="reference internal" href="#id666">Core and Builtins</a></li>
<li><a class="reference internal" href="#id667">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-1-release-candidate-1">Python 3.6.1 release candidate 1</a><ul>
<li><a class="reference internal" href="#id668">Core and Builtins</a></li>
<li><a class="reference internal" href="#id669">Library</a></li>
<li><a class="reference internal" href="#id670">IDLE</a></li>
<li><a class="reference internal" href="#id671">Windows</a></li>
<li><a class="reference internal" href="#id672">C API</a></li>
<li><a class="reference internal" href="#id673">Documentation</a></li>
<li><a class="reference internal" href="#id674">Tests</a></li>
<li><a class="reference internal" href="#id675">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-final">Python 3.6.0 final</a></li>
<li><a class="reference internal" href="#python-3-6-0-release-candidate-2">Python 3.6.0 release candidate 2</a><ul>
<li><a class="reference internal" href="#id676">Core and Builtins</a></li>
<li><a class="reference internal" href="#id677">Tools/Demos</a></li>
<li><a class="reference internal" href="#id678">Windows</a></li>
<li><a class="reference internal" href="#id679">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-release-candidate-1">Python 3.6.0 release candidate 1</a><ul>
<li><a class="reference internal" href="#id680">Core and Builtins</a></li>
<li><a class="reference internal" href="#id681">Library</a></li>
<li><a class="reference internal" href="#id682">C API</a></li>
<li><a class="reference internal" href="#id683">Documentation</a></li>
<li><a class="reference internal" href="#id684">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-beta-4">Python 3.6.0 beta 4</a><ul>
<li><a class="reference internal" href="#id685">Core and Builtins</a></li>
<li><a class="reference internal" href="#id686">Library</a></li>
<li><a class="reference internal" href="#id687">Documentation</a></li>
<li><a class="reference internal" href="#id688">Tests</a></li>
<li><a class="reference internal" href="#id689">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-beta-3">Python 3.6.0 beta 3</a><ul>
<li><a class="reference internal" href="#id690">Core and Builtins</a></li>
<li><a class="reference internal" href="#id691">Library</a></li>
<li><a class="reference internal" href="#id692">Windows</a></li>
<li><a class="reference internal" href="#id693">Build</a></li>
<li><a class="reference internal" href="#id694">Tests</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-beta-2">Python 3.6.0 beta 2</a><ul>
<li><a class="reference internal" href="#id695">Core and Builtins</a></li>
<li><a class="reference internal" href="#id696">Library</a></li>
<li><a class="reference internal" href="#id697">Windows</a></li>
<li><a class="reference internal" href="#id698">C API</a></li>
<li><a class="reference internal" href="#id699">Build</a></li>
<li><a class="reference internal" href="#id700">Tests</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-beta-1">Python 3.6.0 beta 1</a><ul>
<li><a class="reference internal" href="#id701">Core and Builtins</a></li>
<li><a class="reference internal" href="#id702">Library</a></li>
<li><a class="reference internal" href="#id703">IDLE</a></li>
<li><a class="reference internal" href="#id704">C API</a></li>
<li><a class="reference internal" href="#id705">Tests</a></li>
<li><a class="reference internal" href="#id706">Build</a></li>
<li><a class="reference internal" href="#id707">Tools/Demos</a></li>
<li><a class="reference internal" href="#id708">Windows</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-alpha-4">Python 3.6.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id709">Core and Builtins</a></li>
<li><a class="reference internal" href="#id710">Library</a></li>
<li><a class="reference internal" href="#id711">IDLE</a></li>
<li><a class="reference internal" href="#id712">Tests</a></li>
<li><a class="reference internal" href="#id713">Windows</a></li>
<li><a class="reference internal" href="#id714">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-alpha-3">Python 3.6.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id715">Security</a></li>
<li><a class="reference internal" href="#id716">Core and Builtins</a></li>
<li><a class="reference internal" href="#id717">Library</a></li>
<li><a class="reference internal" href="#id718">IDLE</a></li>
<li><a class="reference internal" href="#id719">C API</a></li>
<li><a class="reference internal" href="#id720">Build</a></li>
<li><a class="reference internal" href="#id721">Tools/Demos</a></li>
<li><a class="reference internal" href="#id722">Documentation</a></li>
<li><a class="reference internal" href="#id723">Tests</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-alpha-2">Python 3.6.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id724">Security</a></li>
<li><a class="reference internal" href="#id725">Core and Builtins</a></li>
<li><a class="reference internal" href="#id726">Library</a></li>
<li><a class="reference internal" href="#id727">IDLE</a></li>
<li><a class="reference internal" href="#id728">Documentation</a></li>
<li><a class="reference internal" href="#id729">Tests</a></li>
<li><a class="reference internal" href="#id730">Windows</a></li>
<li><a class="reference internal" href="#id731">Build</a></li>
<li><a class="reference internal" href="#id732">C API</a></li>
<li><a class="reference internal" href="#id733">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-6-0-alpha-1">Python 3.6.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id734">Security</a></li>
<li><a class="reference internal" href="#id735">Core and Builtins</a></li>
<li><a class="reference internal" href="#id736">Library</a></li>
<li><a class="reference internal" href="#id737">IDLE</a></li>
<li><a class="reference internal" href="#id738">Documentation</a></li>
<li><a class="reference internal" href="#id739">Tests</a></li>
<li><a class="reference internal" href="#id740">Build</a></li>
<li><a class="reference internal" href="#id741">Windows</a></li>
<li><a class="reference internal" href="#id742">Tools/Demos</a></li>
<li><a class="reference internal" href="#id743">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-5-final">Python 3.5.5 final</a></li>
<li><a class="reference internal" href="#python-3-5-5-release-candidate-1">Python 3.5.5 release candidate 1</a><ul>
<li><a class="reference internal" href="#id744">Security</a></li>
<li><a class="reference internal" href="#id745">Core and Builtins</a></li>
<li><a class="reference internal" href="#id746">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-4-final">Python 3.5.4 final</a><ul>
<li><a class="reference internal" href="#id747">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-4-release-candidate-1">Python 3.5.4 release candidate 1</a><ul>
<li><a class="reference internal" href="#id748">Security</a></li>
<li><a class="reference internal" href="#id749">Core and Builtins</a></li>
<li><a class="reference internal" href="#id750">Library</a></li>
<li><a class="reference internal" href="#id751">Documentation</a></li>
<li><a class="reference internal" href="#id752">Tests</a></li>
<li><a class="reference internal" href="#id753">Build</a></li>
<li><a class="reference internal" href="#id754">Windows</a></li>
<li><a class="reference internal" href="#id755">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-3-final">Python 3.5.3 final</a></li>
<li><a class="reference internal" href="#python-3-5-3-release-candidate-1">Python 3.5.3 release candidate 1</a><ul>
<li><a class="reference internal" href="#id756">Security</a></li>
<li><a class="reference internal" href="#id757">Core and Builtins</a></li>
<li><a class="reference internal" href="#id758">Library</a></li>
<li><a class="reference internal" href="#id759">IDLE</a></li>
<li><a class="reference internal" href="#id760">C API</a></li>
<li><a class="reference internal" href="#id761">Documentation</a></li>
<li><a class="reference internal" href="#id762">Tests</a></li>
<li><a class="reference internal" href="#id763">Tools/Demos</a></li>
<li><a class="reference internal" href="#id764">Windows</a></li>
<li><a class="reference internal" href="#id765">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-2-final">Python 3.5.2 final</a><ul>
<li><a class="reference internal" href="#id766">Core and Builtins</a></li>
<li><a class="reference internal" href="#id767">Tests</a></li>
<li><a class="reference internal" href="#id768">IDLE</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-2-release-candidate-1">Python 3.5.2 release candidate 1</a><ul>
<li><a class="reference internal" href="#id769">Security</a></li>
<li><a class="reference internal" href="#id770">Core and Builtins</a></li>
<li><a class="reference internal" href="#id771">Library</a></li>
<li><a class="reference internal" href="#id772">IDLE</a></li>
<li><a class="reference internal" href="#id773">Documentation</a></li>
<li><a class="reference internal" href="#id774">Tests</a></li>
<li><a class="reference internal" href="#id775">Build</a></li>
<li><a class="reference internal" href="#id776">Windows</a></li>
<li><a class="reference internal" href="#id777">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-1-final">Python 3.5.1 final</a><ul>
<li><a class="reference internal" href="#id778">Core and Builtins</a></li>
<li><a class="reference internal" href="#id779">Windows</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-1-release-candidate-1">Python 3.5.1 release candidate 1</a><ul>
<li><a class="reference internal" href="#id780">Core and Builtins</a></li>
<li><a class="reference internal" href="#id781">Library</a></li>
<li><a class="reference internal" href="#id782">IDLE</a></li>
<li><a class="reference internal" href="#id783">Documentation</a></li>
<li><a class="reference internal" href="#id784">Tests</a></li>
<li><a class="reference internal" href="#id785">Build</a></li>
<li><a class="reference internal" href="#id786">Windows</a></li>
<li><a class="reference internal" href="#id787">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-final">Python 3.5.0 final</a><ul>
<li><a class="reference internal" href="#id788">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-release-candidate-4">Python 3.5.0 release candidate 4</a><ul>
<li><a class="reference internal" href="#id789">Library</a></li>
<li><a class="reference internal" href="#id790">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-release-candidate-3">Python 3.5.0 release candidate 3</a><ul>
<li><a class="reference internal" href="#id791">Core and Builtins</a></li>
<li><a class="reference internal" href="#id792">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-release-candidate-2">Python 3.5.0 release candidate 2</a><ul>
<li><a class="reference internal" href="#id793">Core and Builtins</a></li>
<li><a class="reference internal" href="#id794">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-release-candidate-1">Python 3.5.0 release candidate 1</a><ul>
<li><a class="reference internal" href="#id795">Core and Builtins</a></li>
<li><a class="reference internal" href="#id796">Library</a></li>
<li><a class="reference internal" href="#id797">IDLE</a></li>
<li><a class="reference internal" href="#id798">Documentation</a></li>
<li><a class="reference internal" href="#id799">Tests</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-beta-4">Python 3.5.0 beta 4</a><ul>
<li><a class="reference internal" href="#id800">Core and Builtins</a></li>
<li><a class="reference internal" href="#id801">Library</a></li>
<li><a class="reference internal" href="#id802">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-beta-3">Python 3.5.0 beta 3</a><ul>
<li><a class="reference internal" href="#id803">Core and Builtins</a></li>
<li><a class="reference internal" href="#id804">Library</a></li>
<li><a class="reference internal" href="#id805">Tests</a></li>
<li><a class="reference internal" href="#id806">Documentation</a></li>
<li><a class="reference internal" href="#id807">Build</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-beta-2">Python 3.5.0 beta 2</a><ul>
<li><a class="reference internal" href="#id808">Core and Builtins</a></li>
<li><a class="reference internal" href="#id809">Library</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-beta-1">Python 3.5.0 beta 1</a><ul>
<li><a class="reference internal" href="#id810">Core and Builtins</a></li>
<li><a class="reference internal" href="#id811">Library</a></li>
<li><a class="reference internal" href="#id812">IDLE</a></li>
<li><a class="reference internal" href="#id813">Tests</a></li>
<li><a class="reference internal" href="#id814">Documentation</a></li>
<li><a class="reference internal" href="#id815">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-alpha-4">Python 3.5.0 alpha 4</a><ul>
<li><a class="reference internal" href="#id816">Core and Builtins</a></li>
<li><a class="reference internal" href="#id817">Library</a></li>
<li><a class="reference internal" href="#id818">Build</a></li>
<li><a class="reference internal" href="#id819">Tests</a></li>
<li><a class="reference internal" href="#id820">Tools/Demos</a></li>
<li><a class="reference internal" href="#id821">C API</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-alpha-3">Python 3.5.0 alpha 3</a><ul>
<li><a class="reference internal" href="#id822">Core and Builtins</a></li>
<li><a class="reference internal" href="#id823">Library</a></li>
<li><a class="reference internal" href="#id824">Build</a></li>
<li><a class="reference internal" href="#id825">Tests</a></li>
<li><a class="reference internal" href="#id826">Tools/Demos</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-alpha-2">Python 3.5.0 alpha 2</a><ul>
<li><a class="reference internal" href="#id827">Core and Builtins</a></li>
<li><a class="reference internal" href="#id828">Library</a></li>
<li><a class="reference internal" href="#id829">Build</a></li>
<li><a class="reference internal" href="#id830">C API</a></li>
<li><a class="reference internal" href="#id831">Windows</a></li>
</ul>
</li>
<li><a class="reference internal" href="#python-3-5-0-alpha-1">Python 3.5.0 alpha 1</a><ul>
<li><a class="reference internal" href="#id832">Core and Builtins</a></li>
<li><a class="reference internal" href="#id833">Library</a></li>
<li><a class="reference internal" href="#id834">IDLE</a></li>
<li><a class="reference internal" href="#id835">Build</a></li>
<li><a class="reference internal" href="#id836">C API</a></li>
<li><a class="reference internal" href="#id837">Documentation</a></li>
<li><a class="reference internal" href="#id838">Tests</a></li>
<li><a class="reference internal" href="#id839">Tools/Demos</a></li>
<li><a class="reference internal" href="#id840">Windows</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="2.0.html"
title="previous chapter">What’s New in Python 2.0</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="../tutorial/index.html"
title="next chapter">The Python Tutorial</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This page</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">Report a bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/main/Doc/whatsnew/changelog.rst?plain=1"
rel="nofollow">Show source
</a>
</li>
</ul>
</div>
</div>
<div id="sidebarbutton" title="Collapse sidebar">
<span>«</span>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="../tutorial/index.html" title="The Python Tutorial"
>next</a> |</li>
<li class="right" >
<a href="2.0.html" title="What’s New in Python 2.0"
>previous</a> |</li>
<li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>
<li><a href="https://www.python.org/">Python</a> »</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.14.0 Documentation</a> »
</li>
<li class="nav-item nav-item-1"><a href="index.html" >What’s New in Python</a> »</li>
<li class="nav-item nav-item-this"><a href="">Changelog</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">
<input type="submit" value="Go">
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="footer">
© <a href="../copyright.html">Copyright</a> 2001 Python Software Foundation.
<br>
This page is licensed under the Python Software Foundation License Version 2.
<br>
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
<br>
See <a href="/license.html">History and License</a> for more information.<br>
<br>
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br>
<br>
Last updated on Oct 07, 2025 (10:02 UTC).
<a href="/bugs.html">Found a bug</a>?
<br>
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>